Pixel Manager for WooCommerce – Track Google Analytics, Google Ads, Facebook and more - Version 1.19.0

Version Description

10.08.2022

  • New: Introduced new diagnostics section in the settings page.
  • Tweak: Refactored documentation URL link compilation.
  • Tweak: Added sanitization for importing settings.
  • Tweak: Improved sanitization for arrays.
  • Tweak: Added sanitization for saving state when purchase pixels have fired.
Download this release

Release Info

Developer alekv
Plugin Icon 128x128 Pixel Manager for WooCommerce – Track Google Analytics, Google Ads, Facebook and more
Version 1.19.0
Comparing to
See all releases

Code changes from version 1.18.1 to 1.19.0

classes/admin/class-admin.php CHANGED
@@ -45,19 +45,6 @@ class Admin
45
  // add_action('wp_ajax_wpm_save_imported_settings', [$this, 'wpm_save_imported_settings']);
46
  }
47
 
48
- public function register_rest_routes()
49
- {
50
- error_log( 'register_rest_routes' );
51
- register_rest_route( 'pmw/v1', '/settings', [
52
- 'methods' => 'GET',
53
- 'callback' => [ $this, 'wpm_save_imported_settings' ],
54
- ] );
55
- register_rest_route( 'myplugin/v1', '/author/(?P<id>\\d+)', [
56
- 'methods' => 'GET',
57
- 'callback' => 'my_awesome_func',
58
- ] );
59
- }
60
-
61
  // public function wpm_save_imported_settings() {
62
  //
63
  // $_post = filter_input_array(INPUT_POST, FILTER_SANITIZE_FULL_SPECIAL_CHARS);
@@ -87,7 +74,7 @@ class Admin
87
  // }
88
  protected function if_is_wpm_admin_page()
89
  {
90
- $_get = filter_input_array( INPUT_GET, FILTER_SANITIZE_FULL_SPECIAL_CHARS );
91
 
92
  if ( !empty($_get['page']) && 'wpm' === $_get['page'] ) {
93
  return true;
@@ -210,6 +197,7 @@ class Admin
210
  $this->add_section_main();
211
  $this->add_section_advanced();
212
  $this->add_section_beta();
 
213
  $this->add_section_support();
214
  $this->add_section_author();
215
  }
@@ -760,6 +748,22 @@ class Admin
760
  }
761
  }
762
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
763
  public function add_section_support()
764
  {
765
  $section_ids = [
@@ -962,9 +966,217 @@ class Admin
962
  // echo '</div>';
963
  }
964
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
965
  public function wpm_plugin_section_support_description()
966
  {
967
  ?>
 
968
  <div style="margin-top:20px">
969
  <h2><?php
970
  esc_html_e( 'Contacting Support', 'woocommerce-google-adwords-conversion-tracking-tag' );
@@ -974,10 +1186,17 @@ class Admin
974
  <?php
975
  $this->support_info_for_freemius();
976
  ?>
 
 
977
  <hr style="border: none;height: 1px; color: #333; background-color: #333;">
 
 
978
  <?php
979
  $this->info_for_translators();
980
  ?>
 
 
 
981
  <div>
982
  <h2><?php
983
  esc_html_e( 'Debug Information', 'woocommerce-google-adwords-conversion-tracking-tag' );
@@ -998,8 +1217,11 @@ class Admin
998
  </div>
999
 
1000
  </div>
 
 
1001
  <hr class="pmw-hr">
1002
 
 
1003
  <div>
1004
  <h2><?php
1005
  esc_html_e( 'Export settings', 'woocommerce-google-adwords-conversion-tracking-tag' );
@@ -1010,7 +1232,7 @@ class Admin
1010
  style="display:block; margin-bottom: 10px; width: 100%;resize: none;color:dimgrey;"
1011
  cols="100%" rows="10"
1012
  readonly><?php
1013
- echo wc_esc_json( json_encode( $this->options ) ) ;
1014
  ?>
1015
  </textarea>
1016
  <button
@@ -1022,9 +1244,11 @@ class Admin
1022
  ?></button>
1023
  </div>
1024
  </div>
 
1025
 
1026
  <hr class="pmw-hr">
1027
 
 
1028
  <div>
1029
  <h2><?php
1030
  esc_html_e( 'Import settings', 'woocommerce-google-adwords-conversion-tracking-tag' );
@@ -1053,10 +1277,10 @@ class Admin
1053
  </pre>
1054
  </div>
1055
  </div>
 
1056
 
1057
  <hr class="pmw-hr">
1058
 
1059
-
1060
  <?php
1061
  }
1062
 
45
  // add_action('wp_ajax_wpm_save_imported_settings', [$this, 'wpm_save_imported_settings']);
46
  }
47
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  // public function wpm_save_imported_settings() {
49
  //
50
  // $_post = filter_input_array(INPUT_POST, FILTER_SANITIZE_FULL_SPECIAL_CHARS);
74
  // }
75
  protected function if_is_wpm_admin_page()
76
  {
77
+ $_get = $this->get_input_vars( INPUT_GET );
78
 
79
  if ( !empty($_get['page']) && 'wpm' === $_get['page'] ) {
80
  return true;
197
  $this->add_section_main();
198
  $this->add_section_advanced();
199
  $this->add_section_beta();
200
+ $this->add_section_diagnostics();
201
  $this->add_section_support();
202
  $this->add_section_author();
203
  }
748
  }
749
  }
750
 
751
+ public function add_section_diagnostics()
752
+ {
753
+ $section_ids = [
754
+ 'title' => esc_html__( 'Diagnostics', 'woocommerce-google-adwords-conversion-tracking-tag' ) . $this->html_beta(),
755
+ 'slug' => 'diagnostics',
756
+ 'settings_name' => 'wpm_plugin_diagnostics_section',
757
+ ];
758
+ $this->output_section_data_field( $section_ids );
759
+ add_settings_section(
760
+ 'wpm_plugin_diagnostics_section',
761
+ esc_html__( 'Diagnostics', 'woocommerce-google-adwords-conversion-tracking-tag' ),
762
+ [ $this, 'wpm_plugin_section_diagnostics_html' ],
763
+ 'wpm_plugin_options_page'
764
+ );
765
+ }
766
+
767
  public function add_section_support()
768
  {
769
  $section_ids = [
966
  // echo '</div>';
967
  }
968
 
969
+ public function wpm_plugin_section_diagnostics_html()
970
+ {
971
+ ?>
972
+ <div style="margin-top:20px">
973
+ <h2>
974
+ <?php
975
+ esc_html_e( 'Payment Gateway Tracking Accuracy Report', 'woocommerce-google-adwords-conversion-tracking-tag' );
976
+ ?>
977
+ <div class="status-icon beta"><?php
978
+ esc_html_e( 'beta', 'woocommerce-google-adwords-conversion-tracking-tag' );
979
+ ?></div>
980
+ </h2>
981
+
982
+ <div style="margin-bottom: 20px">
983
+ <?php
984
+ esc_html_e( "What's this? Follow this link to learn more", 'woocommerce-google-adwords-conversion-tracking-tag' );
985
+ ?>
986
+ :
987
+ <a href="<?php
988
+ echo esc_url( ( new Documentation() )->get_link( 'payment_gateway_tracking_accuracy' ) ) ;
989
+ ?>"
990
+ target="_blank">Documentation Link</a>
991
+ </div>
992
+
993
+ <div>
994
+ <div>
995
+
996
+ <?php
997
+ esc_html_e( 'Available payment gateways', 'woocommerce-google-adwords-conversion-tracking-tag' );
998
+ ?>
999
+ :
1000
+ </div>
1001
+ <div style="margin-top: 10px">
1002
+ <?php
1003
+ foreach ( ( new Debug_Info( $this->options ) )->get_payment_gateways() as $gateway ) {
1004
+ ?>
1005
+ &emsp;
1006
+ <?php
1007
+ esc_html_e( 'id', 'woocommerce-google-adwords-conversion-tracking-tag' );
1008
+ ?>: <?php
1009
+ esc_html_e( $gateway->id );
1010
+ ?>,
1011
+ <?php
1012
+ esc_html_e( 'method_title', 'woocommerce-google-adwords-conversion-tracking-tag' );
1013
+ ?>: <?php
1014
+ esc_html_e( $gateway->method_title );
1015
+ ?>,
1016
+ <?php
1017
+ esc_html_e( 'class', 'woocommerce-google-adwords-conversion-tracking-tag' );
1018
+ ?>: <?php
1019
+ esc_html_e( get_class( $gateway ) );
1020
+ ?>
1021
+ <br>
1022
+ <?php
1023
+ }
1024
+ ?>
1025
+ </div>
1026
+
1027
+ </div>
1028
+ <div style="margin-top: 10px">
1029
+
1030
+ <?php
1031
+ esc_html_e( 'Purchase confirmation page reached per gateway (active and inactive)', 'woocommerce-google-adwords-conversion-tracking-tag' );
1032
+ ?>
1033
+ :
1034
+
1035
+ <table>
1036
+
1037
+ <?php
1038
+ $per_gateway_analysis = ( new Debug_Info( $this->options ) )->get_gateway_analysis_array();
1039
+ $order_count_total = 0;
1040
+ $order_count_measured = 0;
1041
+ ?>
1042
+
1043
+ <tbody>
1044
+ <?php
1045
+ foreach ( $per_gateway_analysis as $gateway_analysis ) {
1046
+ ?>
1047
+ <?php
1048
+ $order_count_total += $gateway_analysis['order_count_total'];
1049
+ $order_count_measured += $gateway_analysis['order_count_measured'];
1050
+ ?>
1051
+ <tr>
1052
+ <td><?php
1053
+ esc_html_e( $gateway_analysis['gateway_id'] );
1054
+ ?></td>
1055
+ <td><?php
1056
+ esc_html_e( $gateway_analysis['order_count_measured'] );
1057
+ ?></td>
1058
+ <td>of</td>
1059
+ <td><?php
1060
+ esc_html_e( $gateway_analysis['order_count_total'] );
1061
+ ?></td>
1062
+ <td>=</td>
1063
+ <td><?php
1064
+ esc_html_e( $gateway_analysis['percentage'] );
1065
+ ?></td>
1066
+ <td><?php
1067
+ $this->get_gateway_accuracy_warning_status( $gateway_analysis['percentage'] );
1068
+ ?></td>
1069
+ </tr>
1070
+ <?php
1071
+ }
1072
+ ?>
1073
+
1074
+ </tbody>
1075
+ </table>
1076
+
1077
+ </div>
1078
+
1079
+ <div style="margin-top: 10px">
1080
+
1081
+ <?php
1082
+ esc_html_e( 'Purchase confirmation page reached per gateway (only active), weighted by frequency', 'woocommerce-google-adwords-conversion-tracking-tag' );
1083
+ ?>
1084
+ :
1085
+ <table>
1086
+
1087
+ <?php
1088
+ $count_active_gateways = count( ( new Debug_Info( $this->options ) )->get_enabled_payment_gateways() );
1089
+ $amount_of_orders_to_analyse = $count_active_gateways * 100;
1090
+ $per_gateway_analysis = ( new Debug_Info( $this->options ) )->get_gateway_analysis_weighted_array( $amount_of_orders_to_analyse );
1091
+ $order_count_total = 0;
1092
+ $order_count_measured = 0;
1093
+ ?>
1094
+
1095
+ <tbody>
1096
+ <?php
1097
+ foreach ( $per_gateway_analysis as $gateway_analysis ) {
1098
+ ?>
1099
+ <?php
1100
+ $order_count_total += $gateway_analysis['order_count_total'];
1101
+ $order_count_measured += $gateway_analysis['order_count_measured'];
1102
+ ?>
1103
+ <tr>
1104
+ <td><?php
1105
+ esc_html_e( $gateway_analysis['gateway_id'] );
1106
+ ?></td>
1107
+ <td><?php
1108
+ esc_html_e( $gateway_analysis['order_count_measured'] );
1109
+ ?></td>
1110
+ <td>of</td>
1111
+ <td><?php
1112
+ esc_html_e( $gateway_analysis['order_count_total'] );
1113
+ ?></td>
1114
+ <td>=</td>
1115
+ <td><?php
1116
+ esc_html_e( $gateway_analysis['percentage'] );
1117
+ ?></td>
1118
+ <td><?php
1119
+ $this->get_gateway_accuracy_warning_status( $gateway_analysis['percentage'] );
1120
+ ?></td>
1121
+ </tr>
1122
+ <?php
1123
+ }
1124
+ ?>
1125
+ <tr>
1126
+ <td>Total</td>
1127
+ <td><?php
1128
+ esc_html_e( $order_count_measured );
1129
+ ?></td>
1130
+ <td>of</td>
1131
+ <td><?php
1132
+ esc_html_e( $order_count_total );
1133
+ ?></td>
1134
+ <td>=</td>
1135
+ <td>
1136
+ <?php
1137
+ $percent = round( $order_count_measured / $order_count_total * 100 );
1138
+
1139
+ if ( $order_count_total > 0 ) {
1140
+ esc_html_e( $percent . '%' );
1141
+ } else {
1142
+ echo '0%' ;
1143
+ }
1144
+
1145
+ ?>
1146
+ <td><?php
1147
+ $this->get_gateway_accuracy_warning_status( $percent );
1148
+ ?></td>
1149
+
1150
+ </tr>
1151
+ </tbody>
1152
+ </table>
1153
+ </div>
1154
+
1155
+ </div>
1156
+ <hr style="border: none;height: 1px; color: #333; background-color: #333;">
1157
+
1158
+ <?php
1159
+ }
1160
+
1161
+ private function get_gateway_accuracy_warning_status( $percent )
1162
+ {
1163
+
1164
+ if ( $percent > 0 && $percent < 90 ) {
1165
+ echo '<span style="color:red">warning</span>' ;
1166
+ } elseif ( $percent >= 90 && $percent < 95 ) {
1167
+ echo '<span style="color:orange">monitor</span>' ;
1168
+ } elseif ( 0 !== $percent ) {
1169
+ echo '<span style="color:green">good</span>' ;
1170
+ } else {
1171
+ echo '' ;
1172
+ }
1173
+
1174
+ }
1175
+
1176
  public function wpm_plugin_section_support_description()
1177
  {
1178
  ?>
1179
+ <!-- Contacting Support -->
1180
  <div style="margin-top:20px">
1181
  <h2><?php
1182
  esc_html_e( 'Contacting Support', 'woocommerce-google-adwords-conversion-tracking-tag' );
1186
  <?php
1187
  $this->support_info_for_freemius();
1188
  ?>
1189
+ <!-- Contacting Support -->
1190
+
1191
  <hr style="border: none;height: 1px; color: #333; background-color: #333;">
1192
+
1193
+ <!-- Info for translators -->
1194
  <?php
1195
  $this->info_for_translators();
1196
  ?>
1197
+ <!-- Info for translators -->
1198
+
1199
+ <!-- Debug Info -->
1200
  <div>
1201
  <h2><?php
1202
  esc_html_e( 'Debug Information', 'woocommerce-google-adwords-conversion-tracking-tag' );
1217
  </div>
1218
 
1219
  </div>
1220
+ <!-- Debug Info -->
1221
+
1222
  <hr class="pmw-hr">
1223
 
1224
+ <!-- Export Settings -->
1225
  <div>
1226
  <h2><?php
1227
  esc_html_e( 'Export settings', 'woocommerce-google-adwords-conversion-tracking-tag' );
1232
  style="display:block; margin-bottom: 10px; width: 100%;resize: none;color:dimgrey;"
1233
  cols="100%" rows="10"
1234
  readonly><?php
1235
+ echo wc_esc_json( wp_json_encode( $this->options ) ) ;
1236
  ?>
1237
  </textarea>
1238
  <button
1244
  ?></button>
1245
  </div>
1246
  </div>
1247
+ <!-- Export Settings -->
1248
 
1249
  <hr class="pmw-hr">
1250
 
1251
+ <!-- Import Settings -->
1252
  <div>
1253
  <h2><?php
1254
  esc_html_e( 'Import settings', 'woocommerce-google-adwords-conversion-tracking-tag' );
1277
  </pre>
1278
  </div>
1279
  </div>
1280
+ <!-- Import Settings -->
1281
 
1282
  <hr class="pmw-hr">
1283
 
 
1284
  <?php
1285
  }
1286
 
classes/admin/class-ask-for-rating.php CHANGED
@@ -2,12 +2,16 @@
2
 
3
  namespace WCPM\Classes\Admin;
4
 
 
 
5
  if (!defined('ABSPATH')) {
6
  exit; // Exit if accessed directly
7
  }
8
 
9
  class Ask_For_Rating {
10
 
 
 
11
  private $option_name = WPM_DB_RATINGS;
12
 
13
  public function __construct() {
@@ -38,7 +42,7 @@ class Ask_For_Rating {
38
  // server side php ajax handler for the admin rating notice
39
  public function ajax_rating_notice_handler() {
40
 
41
- $_post = filter_input_array(INPUT_POST, FILTER_SANITIZE_FULL_SPECIAL_CHARS);
42
 
43
  $set = $_post['set'];
44
 
2
 
3
  namespace WCPM\Classes\Admin;
4
 
5
+ use WCPM\Classes\Pixels\Trait_Shop;
6
+
7
  if (!defined('ABSPATH')) {
8
  exit; // Exit if accessed directly
9
  }
10
 
11
  class Ask_For_Rating {
12
 
13
+ use Trait_Shop;
14
+
15
  private $option_name = WPM_DB_RATINGS;
16
 
17
  public function __construct() {
42
  // server side php ajax handler for the admin rating notice
43
  public function ajax_rating_notice_handler() {
44
 
45
+ $_post = $this->get_input_vars(INPUT_POST);
46
 
47
  $set = $_post['set'];
48
 
classes/admin/class-debug-info.php CHANGED
@@ -97,9 +97,9 @@ class Debug_Info {
97
  // $html .= 'wc_get_page_permalink(\'checkout\'): ' . wc_get_page_permalink('checkout') . PHP_EOL;
98
 
99
  $html .= PHP_EOL . '## WooCommerce Payment Gateways ##' . PHP_EOL . PHP_EOL;
100
- $html .= 'Active payment gateways: ' . PHP_EOL;
101
 
102
- foreach ($this->get_enabled_payment_gateways() as $gateway) {
103
 
104
  $html .= "\t";
105
  $html .= 'id: ' . $gateway->id . ', ';
@@ -108,9 +108,12 @@ class Debug_Info {
108
  $html .= PHP_EOL;
109
  }
110
 
111
- $html .= PHP_EOL . 'Purchase confirmation page reached per gateway' . PHP_EOL;
112
  $html .= $this->get_gateway_analysis();
113
 
 
 
 
114
  // $html .= PHP_EOL;
115
 
116
  $html .= PHP_EOL . '## Theme ##' . PHP_EOL . PHP_EOL;
@@ -167,7 +170,7 @@ class Debug_Info {
167
  return $html;
168
  }
169
 
170
- private function get_gateway_analysis() {
171
 
172
  $per_gateway_analysis = $this->get_gateway_analysis_array();
173
 
@@ -195,6 +198,45 @@ class Debug_Info {
195
  $html .= PHP_EOL;
196
  }
197
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
198
  $html .= "\t" . $order_count_measured . "\t" . ' of ' . "\t" . $order_count_total . "\t" . ' = ';
199
 
200
  if ($order_count_total > 0) {
@@ -210,24 +252,79 @@ class Debug_Info {
210
  return $html;
211
  }
212
 
213
- private function get_gateway_analysis_array() {
 
 
 
214
 
215
  $analysis = [];
216
 
217
- foreach ($this->get_enabled_payment_gateways() as $gateway) {
218
 
219
- $gateway_orders = $this->get_last_orders_by_gateway_id($gateway->id, 100);
220
 
221
  $analysis[] = [
222
- 'gateway_id' => $gateway->id,
223
  'order_count_total' => count($gateway_orders),
224
  'order_count_measured' => $this->get_count_of_measured_orders($gateway_orders),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
225
  ];
226
  }
227
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
228
  return $analysis;
229
  }
230
 
 
 
 
 
231
  private function get_count_of_measured_orders( $orders ) {
232
 
233
  $count = 0;
@@ -312,7 +409,7 @@ class Debug_Info {
312
  }
313
  }
314
 
315
- private function get_enabled_payment_gateways() {
316
 
317
  $gateways = WC()->payment_gateways->get_available_payment_gateways();
318
 
@@ -330,26 +427,55 @@ class Debug_Info {
330
  return $enabled_gateways;
331
  }
332
 
333
- private function get_last_orders_by_gateway_id( $gateway_id, $limit = 100 ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
334
  // Get most recent order IDs in date descending order.
335
- $query = new WC_Order_Query([
336
- 'payment_method' => $gateway_id,
337
- 'limit' => $limit,
338
- 'type' => 'shop_order',
339
- 'orderby' => 'date',
340
- 'order' => 'DESC',
341
- 'meta_key' => '_wpm_process_through_wpm',
342
- 'meta_value' => true,
343
- 'meta_compare' => '=',
344
- 'return' => 'ids',
345
- ]);
346
 
347
- try {
348
- return $query->get_orders();
349
- } catch (\Exception $e) {
350
- error_log($e);
351
- return [];
352
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
353
  }
354
  }
355
 
97
  // $html .= 'wc_get_page_permalink(\'checkout\'): ' . wc_get_page_permalink('checkout') . PHP_EOL;
98
 
99
  $html .= PHP_EOL . '## WooCommerce Payment Gateways ##' . PHP_EOL . PHP_EOL;
100
+ $html .= 'Available payment gateways: ' . PHP_EOL;
101
 
102
+ foreach ($this->get_payment_gateways() as $gateway) {
103
 
104
  $html .= "\t";
105
  $html .= 'id: ' . $gateway->id . ', ';
108
  $html .= PHP_EOL;
109
  }
110
 
111
+ $html .= PHP_EOL . 'Purchase confirmation page reached per gateway (active and inactive):' . PHP_EOL;
112
  $html .= $this->get_gateway_analysis();
113
 
114
+ $html .= PHP_EOL . 'Purchase confirmation page reached per gateway only active and weighted by frequency:' . PHP_EOL;
115
+ $html .= $this->get_gateway_analysis_weighted();
116
+
117
  // $html .= PHP_EOL;
118
 
119
  $html .= PHP_EOL . '## Theme ##' . PHP_EOL . PHP_EOL;
170
  return $html;
171
  }
172
 
173
+ public function get_gateway_analysis() {
174
 
175
  $per_gateway_analysis = $this->get_gateway_analysis_array();
176
 
198
  $html .= PHP_EOL;
199
  }
200
 
201
+ // $html .= "\t" . $order_count_measured . "\t" . ' of ' . "\t" . $order_count_total . "\t" . ' = ';
202
+ //
203
+ // if ($order_count_total > 0) {
204
+ // $html .= round($order_count_measured / $order_count_total * 100);
205
+ // } else {
206
+ // $html .= '0';
207
+ // }
208
+ //
209
+ // $html .= '%' . "\t" . 'total';
210
+
211
+ return $html;
212
+ }
213
+
214
+ public function get_gateway_analysis_weighted() {
215
+
216
+ $count_active_gateways = count(( new Debug_Info($this->options) )->get_enabled_payment_gateways());
217
+
218
+ $per_gateway_analysis = $this->get_gateway_analysis_weighted_array($count_active_gateways * 100);
219
+
220
+ $html = '';
221
+
222
+ $order_count_total = 0;
223
+ $order_count_measured = 0;
224
+
225
+ foreach ($per_gateway_analysis as $analysis) {
226
+
227
+ $order_count_total += $analysis['order_count_total'];
228
+ $order_count_measured += $analysis['order_count_measured'];
229
+
230
+ $html .= "\t";
231
+ $html .= $analysis['order_count_measured'] . "\t" . ' of ' . "\t";
232
+ $html .= $analysis['order_count_total'] . "\t" . ' = ';
233
+ $html .= $analysis['percentage'] . '%';
234
+ $html .= "\t";
235
+ $html .= 'for ' . $analysis['gateway_id'];
236
+
237
+ $html .= PHP_EOL;
238
+ }
239
+
240
  $html .= "\t" . $order_count_measured . "\t" . ' of ' . "\t" . $order_count_total . "\t" . ' = ';
241
 
242
  if ($order_count_total > 0) {
252
  return $html;
253
  }
254
 
255
+ public function get_gateway_analysis_array() {
256
+
257
+ // error_log(print_r($this->get_pmw_tracked_payment_methods(), true));
258
+ // error_log(print_r($this->get_enabled_payment_gateways(), true));
259
 
260
  $analysis = [];
261
 
262
+ foreach ($this->get_pmw_tracked_payment_methods() as $gateway) {
263
 
264
+ $gateway_orders = $this->get_last_orders_by_gateway_id($gateway, 100);
265
 
266
  $analysis[] = [
267
+ 'gateway_id' => $gateway,
268
  'order_count_total' => count($gateway_orders),
269
  'order_count_measured' => $this->get_count_of_measured_orders($gateway_orders),
270
+ 'percentage' => $this->get_percentage($this->get_count_of_measured_orders($gateway_orders), count($gateway_orders)),
271
+ ];
272
+ }
273
+
274
+ return $analysis;
275
+ }
276
+
277
+ public function get_gateway_analysis_weighted_array( $limit ) {
278
+
279
+ $analysis = [];
280
+ $orders = $this->get_pmw_tracked_orders($limit);
281
+ $enabled_gateways = $this->get_enabled_payment_gateways();
282
+
283
+ // Prep array with all gateway IDs
284
+ $gateway_ids = array_map(function ( $gateway ) {
285
+ return $gateway->id;
286
+ }, $enabled_gateways);
287
+
288
+ // Prep analysis array with all gateways
289
+ foreach ($gateway_ids as $gateway_id) {
290
+ $analysis[$gateway_id] = [
291
+ 'gateway_id' => $gateway_id,
292
+ 'order_count_total' => 0,
293
+ 'order_count_measured' => 0,
294
+ 'percentage' => 0,
295
  ];
296
  }
297
 
298
+ // Analyse all orders
299
+ foreach ($orders as $order) {
300
+
301
+ if (in_array($order->get_payment_method(), $gateway_ids)) {
302
+
303
+ $analysis[$order->get_payment_method()]['order_count_total']++;
304
+
305
+ if (get_post_meta($order->get_id(), '_wpm_conversion_pixel_fired', true)) {
306
+ $analysis[$order->get_payment_method()]['order_count_measured']++;
307
+ }
308
+ }
309
+ }
310
+
311
+ // Calculate percentage for each gateway
312
+ foreach ($analysis as $gateway_id => $gateway_analysis) {
313
+ $analysis[$gateway_id]['percentage'] = $this->get_percentage($gateway_analysis['order_count_measured'], $gateway_analysis['order_count_total']);
314
+ }
315
+
316
+ // Sort analysis by order_count_total descending
317
+ usort($analysis, function ( $a, $b ) {
318
+ return $b['order_count_total'] - $a['order_count_total'];
319
+ });
320
+
321
  return $analysis;
322
  }
323
 
324
+ private function get_percentage( $counter, $denominator ) {
325
+ return $denominator > 0 ? round($counter / $denominator * 100) : 0;
326
+ }
327
+
328
  private function get_count_of_measured_orders( $orders ) {
329
 
330
  $count = 0;
409
  }
410
  }
411
 
412
+ public function get_enabled_payment_gateways() {
413
 
414
  $gateways = WC()->payment_gateways->get_available_payment_gateways();
415
 
427
  return $enabled_gateways;
428
  }
429
 
430
+ public function get_payment_gateways() {
431
+
432
+ return WC()->payment_gateways->get_available_payment_gateways();
433
+ }
434
+
435
+ private function get_last_orders_by_gateway_id( $gateway_id, $limit ) {
436
+ // Get most recent order IDs in date descending order, filtered by gateway_id.
437
+
438
+ // TODO include custom order statutes that have been added with a pmw filter
439
+
440
+ return wc_get_orders([
441
+ 'payment_method' => $gateway_id,
442
+ 'limit' => $limit,
443
+ 'type' => 'shop_order',
444
+ 'orderby' => 'date',
445
+ 'order' => 'DESC',
446
+ 'status' => ['completed', 'processing', 'on-hold', 'pending'],
447
+ 'meta_key' => '_wpm_process_through_wpm',
448
+ 'meta_value' => true,
449
+ 'meta_compare' => '=',
450
+ 'return' => 'ids',
451
+ ]);
452
+ }
453
+
454
+ private function get_pmw_tracked_orders( $limit ) {
455
  // Get most recent order IDs in date descending order.
 
 
 
 
 
 
 
 
 
 
 
456
 
457
+ // TODO include custom order statutes that have been added with a pmw filter
458
+
459
+ return wc_get_orders([
460
+ 'limit' => $limit,
461
+ 'type' => 'shop_order',
462
+ 'orderby' => 'ID',
463
+ 'order' => 'DESC',
464
+ 'status' => ['completed', 'processing', 'on-hold', 'pending'],
465
+ 'meta_key' => '_wpm_process_through_wpm',
466
+ 'meta_value' => true,
467
+ 'meta_compare' => '=',
468
+ 'return' => 'objects',
469
+ ]);
470
+ }
471
+
472
+ // Get paymeent methods that have been used on all orders directly from database
473
+ private function get_pmw_tracked_payment_methods() {
474
+ global $wpdb;
475
+
476
+ return $wpdb->get_col(
477
+ "SELECT DISTINCT meta_value FROM {$wpdb->prefix}postmeta WHERE `meta_key` = '_payment_method' AND meta_value != ''"
478
+ );
479
  }
480
  }
481
 
classes/admin/class-documentation.php CHANGED
@@ -10,33 +10,60 @@ class Documentation {
10
 
11
  public function get_link( $key = 'default' ) {
12
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  $documentation_links = [
14
  'default' => [
15
  'default' => '/docs/wpm/',
16
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/'],
17
  'script_blockers' => [
18
- 'default' => '/docs/wpm/setup/script-blockers/?utm_source=woocommerce-plugin&utm_medium=documentation-link&utm_campaign=pixel-manager-for-woocommerce-docs&utm_content=script-blocker-error',
19
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/script-blockers/'],
20
  'google_analytics_universal_property' => [
21
- 'default' => '/docs/wpm/plugin-configuration/google-analytics?utm_source=woocommerce-plugin&utm_medium=documentation-link&utm_campaign=pixel-manager-for-woocommerce-docs&utm_content=google-analytics-property-id',
22
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/google-analytics/'],
23
  'google_analytics_4_id' => [
24
- 'default' => '/docs/wpm/plugin-configuration/google-analytics?utm_source=woocommerce-plugin&utm_medium=documentation-link&utm_campaign=pixel-manager-for-woocommerce-docs&utm_content=google-analytics-4-id#connect-an-existing-google-analytics-4-property',
25
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/google-analytics/#section-3'],
26
  'google_ads_conversion_id' => [
27
- 'default' => '/docs/wpm/plugin-configuration/google-ads?utm_source=woocommerce-plugin&utm_medium=documentation-link&utm_campaign=pixel-manager-for-woocommerce-docs&utm_content=google-ads-configure-the-plugin#configure-the-plugin',
28
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/google-ads/#section-2'],
29
  'google_ads_conversion_label' => [
30
- 'default' => '/docs/wpm/plugin-configuration/google-ads?utm_source=woocommerce-plugin&utm_medium=documentation-link&utm_campaign=pixel-manager-for-woocommerce-docs&utm_content=google-ads-configure-the-plugin#configure-the-plugin',
31
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/google-ads/#section-2'],
32
  'google_optimize_container_id' => [
33
- 'default' => '/docs/wpm/plugin-configuration/google-optimize?utm_source=woocommerce-plugin&utm_medium=documentation-link&utm_campaign=pixel-manager-for-woocommerce-docs&utm_content=google-optimize',
34
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/google-optimize/'],
35
  'facebook_pixel_id' => [
36
- 'default' => '/docs/wpm/plugin-configuration/meta?utm_source=woocommerce-plugin&utm_medium=documentation-link&utm_campaign=pixel-manager-for-woocommerce-docs&utm_content=facebook-pixel-id#find-the-pixel-id',
37
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/facebook/#find-the-pixel-id'],
38
  'bing_uet_tag_id' => [
39
- 'default' => '/docs/wpm/plugin-configuration/microsoft-advertising?utm_source=woocommerce-plugin&utm_medium=documentation-link&utm_campaign=pixel-manager-for-woocommerce-docs&utm_content=microsoft-advertising-uet-tag-id#setting-up-the-uet-tag',
40
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/microsoft-advertising-bing-ads/#section-1'],
41
  'twitter_pixel_id' => [
42
  'default' => '/docs/wpm/plugin-configuration/twitter',
@@ -51,92 +78,87 @@ class Documentation {
51
  'default' => '/docs/wpm/plugin-configuration/tiktok',
52
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/tiktok/'],
53
  'hotjar_site_id' => [
54
- 'default' => '/docs/wpm/plugin-configuration/hotjar?utm_source=woocommerce-plugin&utm_medium=documentation-link&utm_campaign=pixel-manager-for-woocommerce-docs&utm_content=hotjar-site-id#hotjar-site-id',
55
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/hotjar/#section-1'],
56
  'google_gtag_deactivation' => [
57
  'default' => '/docs/wpm/faq/&utm_medium=documentation-link&utm_campaign=pixel-manager-for-woocommerce-docs&utm_content=gtag-js#google-tag-assistant-reports-multiple-installations-of-global-site-tag-gtagjs-detected-what-shall-i-do',
58
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/'],
59
  'google_consent_mode' => [
60
- 'default' => '/docs/wpm/consent-management/google-consent-mode?utm_source=woocommerce-plugin&utm_medium=documentation-link&utm_campaign=pixel-manager-for-woocommerce-docs&utm_content=google-consent-mode',
61
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/consent-management/google-consent-mode/'],
62
  'google_consent_regions' => [
63
- 'default' => '/docs/wpm/consent-management/google-consent-mode?utm_source=woocommerce-plugin&utm_medium=documentation-link&utm_campaign=pixel-manager-for-woocommerce-docs&utm_content=google-consent-mode-regions#regions',
64
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/consent-management/google-consent-mode/#section-3'],
65
  'google_analytics_eec' => [
66
  'default' => '/docs/wpm/plugin-configuration/google-analytics#enhanced-e-commerce-funnel-setup',
67
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/google-analytics/#section-5'],
68
  'google_analytics_4_api_secret' => [
69
- 'default' => '/docs/wpm/plugin-configuration/google-analytics?utm_source=woocommerce-plugin&utm_medium=documentation-link&utm_campaign=pixel-manager-for-woocommerce-docs&utm_content=google-analytics-4-api-secret#ga4-api-secret',
70
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/google-analytics/#section-4'],
71
  'google_ads_enhanced_conversions' => [
72
- 'default' => '/docs/wpm/plugin-configuration/google-ads?utm_source=woocommerce-plugin&utm_medium=documentation-link&utm_campaign=pixel-manager-for-woocommerce-docs&utm_content=google-ads-enhanced-conversions#enhanced-conversions',
73
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/google-ads/#section-5'],
74
  'google_ads_phone_conversion_number' => [
75
- 'default' => '/docs/wpm/plugin-configuration/google-ads?utm_source=woocommerce-plugin&utm_medium=documentation-link&utm_campaign=pixel-manager-for-woocommerce-docs&utm_content=google-ads-phone-conversion-number#phone-conversion-number',
76
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/google-ads/#section-4'],
77
  'google_ads_phone_conversion_label' => [
78
- 'default' => '/docs/wpm/plugin-configuration/google-ads?utm_source=woocommerce-plugin&utm_medium=documentation-link&utm_campaign=pixel-manager-for-woocommerce-docs&utm_content=google-ads-phone-conversion-number#phone-conversion-number',
79
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/google-ads/#section-4'],
80
  'explicit_consent_mode' => [
81
  'default' => '/docs/wpm/consent-management/overview/#explicit-consent-mode',
82
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/consent-management/overview/#section-1'],
83
  'facebook_capi_token' => [
84
- 'default' => '/docs/wpm/plugin-configuration/meta?utm_source=woocommerce-plugin&utm_medium=documentation-link&utm_campaign=pixel-manager-for-woocommerce-docs&utm_content=facebook-capi-token#facebook-conversion-api-capi',
85
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/facebook/#section-4'],
86
  'facebook_capi_user_transparency_process_anonymous_hits' => [
87
- 'default' => '/docs/wpm/plugin-configuration/meta?utm_source=woocommerce-plugin&utm_medium=documentation-link&utm_campaign=pixel-manager-for-woocommerce-docs&utm_content=facebook-capi-transparency-settings#user-transparency-settings',
88
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/facebook/#section-5'],
89
  'facebook_capi_user_transparency_send_additional_client_identifiers' => [
90
- 'default' => '/docs/wpm/plugin-configuration/meta?utm_source=woocommerce-plugin&utm_medium=documentation-link&utm_campaign=pixel-manager-for-woocommerce-docs&utm_content=facebook-capi-transparency-settings#user-transparency-settings',
91
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/facebook/#section-5'],
92
  'facebook_microdata' => [
93
- 'default' => '/docs/wpm/plugin-configuration/meta?utm_source=woocommerce-plugin&utm_medium=documentation-link&utm_campaign=pixel-manager-for-woocommerce-docs&utm_content=facebook-microdata#microdata-tags-for-catalogues',
94
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/facebook/#section-8'],
95
  'maximum_compatibility_mode' => [
96
- 'default' => '/docs/wpm/plugin-configuration/general-settings/?utm_source=woocommerce-plugin&utm_medium=documentation-link&utm_campaign=pixel-manager-for-woocommerce-docs&utm_content=maximum-compatibility-mode#maximum-compatibility-mode',
97
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/'],
98
  'google_ads_dynamic_remarketing' => [
99
- 'default' => '/docs/wpm/plugin-configuration/dynamic-remarketing?utm_source=woocommerce-plugin&utm_medium=documentation-link&utm_campaign=pixel-manager-for-woocommerce-docs&utm_content=dynamic-remarketing',
100
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/dynamic-remarketing/'],
101
  'variations_output' => [
102
- 'default' => '/docs/wpm/plugin-configuration/dynamic-remarketing?utm_source=woocommerce-plugin&utm_medium=documentation-link&utm_campaign=pixel-manager-for-woocommerce-docs&utm_content=dynamic-remarketing',
103
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/dynamic-remarketing/'],
104
  'aw_merchant_id' => [
105
- 'default' => '/docs/wpm/plugin-configuration/google-ads/?utm_source=woocommerce-plugin&utm_medium=documentation-link&utm_campaign=pixel-manager-for-woocommerce-docs&utm_content=conversion-cart-data#conversion-cart-data',
106
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/google-ads/#section-3'],
107
  'custom_thank_you' => [
108
  'default' => '/docs/wpm/troubleshooting/#wc-custom-thank-you',
109
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/troubleshooting/#wc-custom-thank-you'],
110
  'the_dismiss_button_doesnt_work_why' => [
111
- 'default' => '/docs/wpm/faq/?utm_source=woocommerce-plugin&utm_medium=documentation-link&utm_campaign=wpp-pixel-manager-docs&utm_content=dismiss-button-info#the-dismiss-button-doesnt-work-why',
112
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/faq/#section-10'],
113
  'wp-rocket-javascript-concatenation' => [
114
- 'default' => '/docs/wpm/troubleshooting?utm_source=woocommerce-plugin&utm_medium=documentation-link&utm_campaign=pixel-manager-for-woocommerce-docs&utm_content=wp-rocket-javascript-concatenation-error',
115
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/'],
116
  'litespeed-cache-inline-javascript-after-dom-ready' => [
117
- 'default' => '/docs/wpm/troubleshooting?utm_source=woocommerce-plugin&utm_medium=documentation-link&utm_campaign=pixel-manager-for-woocommerce-docs&utm_content=litespeed-inline-js-dom-ready-error',
118
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/'],
119
  'payment-gateways' => [
120
- 'default' => '/docs/wpm/setup/requirements?utm_source=woocommerce-plugin&utm_medium=documentation-link&utm_campaign=pixel-manager-for-woocommerce-docs&utm_content=paypal-standard-warning#payment-gateways',
121
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/requirements/#payment-gateways'],
122
  'test_order' => [
123
  'default' => '/docs/wpm/testing#test-order',
124
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/testing/'],
 
 
 
125
  ];
126
 
127
- if (array_key_exists($key, $documentation_links)) {
128
-
129
- // Change to wcm through gulp for the wcm distribution
130
- $doc_host_url = 'default';
131
 
132
- return $this->get_documentation_host() . $documentation_links[$key][$doc_host_url];
 
133
  } else {
134
- error_log('wpm documentation key "' . $key . '" not available');
135
- return $this->get_documentation_host() . $documentation_links['default'];
136
  }
137
  }
138
-
139
- private function get_documentation_host() {
140
- return 'https://sweetcode.com';
141
- }
142
  }
10
 
11
  public function get_link( $key = 'default' ) {
12
 
13
+ // Change to wcm through gulp for the wcm distribution
14
+ $doc_host_url = 'default';
15
+
16
+ $url = $this->get_documentation_host() . $this->get_documentation_path($key, $doc_host_url);
17
+
18
+ return $this->add_utm_parameters($url, $key);
19
+ }
20
+
21
+ private function add_utm_parameters( $url, $key ) {
22
+
23
+ $url_parts = explode('#', $url);
24
+
25
+ $url = $url_parts[0] . '?utm_source=woocommerce-plugin&utm_medium=documentation-link&utm_campaign=' . str_replace('_', '-', $key);
26
+
27
+ if (count($url_parts) === 2) {
28
+ $url .= '#' . $url_parts[1];
29
+ }
30
+
31
+ return $url;
32
+ }
33
+
34
+ private function get_documentation_host() {
35
+ return 'https://sweetcode.com';
36
+ }
37
+
38
+ private function get_documentation_path( $key = 'default', $doc_host_url = 'default' ) {
39
+
40
  $documentation_links = [
41
  'default' => [
42
  'default' => '/docs/wpm/',
43
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/'],
44
  'script_blockers' => [
45
+ 'default' => '/docs/wpm/setup/script-blockers/',
46
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/script-blockers/'],
47
  'google_analytics_universal_property' => [
48
+ 'default' => '/docs/wpm/plugin-configuration/google-analytics',
49
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/google-analytics/'],
50
  'google_analytics_4_id' => [
51
+ 'default' => '/docs/wpm/plugin-configuration/google-analytics#connect-an-existing-google-analytics-4-property',
52
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/google-analytics/#section-3'],
53
  'google_ads_conversion_id' => [
54
+ 'default' => '/docs/wpm/plugin-configuration/google-ads#configure-the-plugin',
55
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/google-ads/#section-2'],
56
  'google_ads_conversion_label' => [
57
+ 'default' => '/docs/wpm/plugin-configuration/google-ads#configure-the-plugin',
58
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/google-ads/#section-2'],
59
  'google_optimize_container_id' => [
60
+ 'default' => '/docs/wpm/plugin-configuration/google-optimize',
61
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/google-optimize/'],
62
  'facebook_pixel_id' => [
63
+ 'default' => '/docs/wpm/plugin-configuration/meta#find-the-pixel-id',
64
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/facebook/#find-the-pixel-id'],
65
  'bing_uet_tag_id' => [
66
+ 'default' => '/docs/wpm/plugin-configuration/microsoft-advertising#setting-up-the-uet-tag',
67
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/microsoft-advertising-bing-ads/#section-1'],
68
  'twitter_pixel_id' => [
69
  'default' => '/docs/wpm/plugin-configuration/twitter',
78
  'default' => '/docs/wpm/plugin-configuration/tiktok',
79
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/tiktok/'],
80
  'hotjar_site_id' => [
81
+ 'default' => '/docs/wpm/plugin-configuration/hotjar#hotjar-site-id',
82
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/hotjar/#section-1'],
83
  'google_gtag_deactivation' => [
84
  'default' => '/docs/wpm/faq/&utm_medium=documentation-link&utm_campaign=pixel-manager-for-woocommerce-docs&utm_content=gtag-js#google-tag-assistant-reports-multiple-installations-of-global-site-tag-gtagjs-detected-what-shall-i-do',
85
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/'],
86
  'google_consent_mode' => [
87
+ 'default' => '/docs/wpm/consent-management/google-consent-mode',
88
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/consent-management/google-consent-mode/'],
89
  'google_consent_regions' => [
90
+ 'default' => '/docs/wpm/consent-management/google-consent-mode#regions',
91
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/consent-management/google-consent-mode/#section-3'],
92
  'google_analytics_eec' => [
93
  'default' => '/docs/wpm/plugin-configuration/google-analytics#enhanced-e-commerce-funnel-setup',
94
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/google-analytics/#section-5'],
95
  'google_analytics_4_api_secret' => [
96
+ 'default' => '/docs/wpm/plugin-configuration/google-analytics#ga4-api-secret',
97
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/google-analytics/#section-4'],
98
  'google_ads_enhanced_conversions' => [
99
+ 'default' => '/docs/wpm/plugin-configuration/google-ads#enhanced-conversions',
100
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/google-ads/#section-5'],
101
  'google_ads_phone_conversion_number' => [
102
+ 'default' => '/docs/wpm/plugin-configuration/google-ads#phone-conversion-number',
103
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/google-ads/#section-4'],
104
  'google_ads_phone_conversion_label' => [
105
+ 'default' => '/docs/wpm/plugin-configuration/google-ads#phone-conversion-number',
106
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/google-ads/#section-4'],
107
  'explicit_consent_mode' => [
108
  'default' => '/docs/wpm/consent-management/overview/#explicit-consent-mode',
109
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/consent-management/overview/#section-1'],
110
  'facebook_capi_token' => [
111
+ 'default' => '/docs/wpm/plugin-configuration/meta#facebook-conversion-api-capi',
112
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/facebook/#section-4'],
113
  'facebook_capi_user_transparency_process_anonymous_hits' => [
114
+ 'default' => '/docs/wpm/plugin-configuration/meta#user-transparency-settings',
115
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/facebook/#section-5'],
116
  'facebook_capi_user_transparency_send_additional_client_identifiers' => [
117
+ 'default' => '/docs/wpm/plugin-configuration/meta#user-transparency-settings',
118
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/facebook/#section-5'],
119
  'facebook_microdata' => [
120
+ 'default' => '/docs/wpm/plugin-configuration/meta#microdata-tags-for-catalogues',
121
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/facebook/#section-8'],
122
  'maximum_compatibility_mode' => [
123
+ 'default' => '/docs/wpm/plugin-configuration/general-settings/#maximum-compatibility-mode',
124
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/'],
125
  'google_ads_dynamic_remarketing' => [
126
+ 'default' => '/docs/wpm/plugin-configuration/dynamic-remarketing',
127
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/dynamic-remarketing/'],
128
  'variations_output' => [
129
+ 'default' => '/docs/wpm/plugin-configuration/dynamic-remarketing',
130
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/dynamic-remarketing/'],
131
  'aw_merchant_id' => [
132
+ 'default' => '/docs/wpm/plugin-configuration/google-ads/#conversion-cart-data',
133
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/pmw-plugin-configuration/google-ads/#section-3'],
134
  'custom_thank_you' => [
135
  'default' => '/docs/wpm/troubleshooting/#wc-custom-thank-you',
136
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/troubleshooting/#wc-custom-thank-you'],
137
  'the_dismiss_button_doesnt_work_why' => [
138
+ 'default' => '/docs/wpm/faq/#the-dismiss-button-doesnt-work-why',
139
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/faq/#section-10'],
140
  'wp-rocket-javascript-concatenation' => [
141
+ 'default' => '/docs/wpm/troubleshooting',
142
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/'],
143
  'litespeed-cache-inline-javascript-after-dom-ready' => [
144
+ 'default' => '/docs/wpm/troubleshooting',
145
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/'],
146
  'payment-gateways' => [
147
+ 'default' => '/docs/wpm/setup/requirements#payment-gateways',
148
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/requirements/#payment-gateways'],
149
  'test_order' => [
150
  'default' => '/docs/wpm/testing#test-order',
151
  'wcm' => '/document/pixel-manager-pro-for-woocommerce/testing/'],
152
+ 'payment_gateway_tracking_accuracy' => [
153
+ 'default' => '/docs/wpm/diagnostics/#payment-gateway-tracking-accuracy-report',
154
+ 'wcm' => 'document/pixel-manager-pro-for-woocommerce/diagnostics/#payment-gateway-tracking-accuracy-report'],
155
  ];
156
 
 
 
 
 
157
 
158
+ if (array_key_exists($key, $documentation_links)) {
159
+ return $documentation_links[$key][$doc_host_url];
160
  } else {
161
+ return $documentation_links['default'][$doc_host_url];
 
162
  }
163
  }
 
 
 
 
164
  }
classes/admin/class-environment-check.php CHANGED
@@ -2,12 +2,16 @@
2
 
3
  namespace WCPM\Classes\Admin;
4
 
 
 
5
  if (!defined('ABSPATH')) {
6
  exit; // Exit if accessed directly
7
  }
8
 
9
  class Environment_Check {
10
 
 
 
11
  public $notifications;
12
  private $documentation;
13
  private $order_redirect = null;
@@ -393,7 +397,7 @@ class Environment_Check {
393
 
394
  public function ajax_environment_check_handler() {
395
 
396
- $_post = filter_input_array(INPUT_POST, FILTER_SANITIZE_FULL_SPECIAL_CHARS);
397
 
398
  if (isset($_post['set'])) {
399
 
@@ -657,7 +661,7 @@ class Environment_Check {
657
 
658
  public function is_hosting_cloudways() {
659
 
660
- $_server = filter_input_array(INPUT_SERVER, FILTER_SANITIZE_FULL_SPECIAL_CHARS);
661
 
662
  if ($_server && array_key_exists('cw_allowed_ip', $_server)) {
663
  return true;
2
 
3
  namespace WCPM\Classes\Admin;
4
 
5
+ use WCPM\Classes\Pixels\Trait_Shop;
6
+
7
  if (!defined('ABSPATH')) {
8
  exit; // Exit if accessed directly
9
  }
10
 
11
  class Environment_Check {
12
 
13
+ use Trait_Shop;
14
+
15
  public $notifications;
16
  private $documentation;
17
  private $order_redirect = null;
397
 
398
  public function ajax_environment_check_handler() {
399
 
400
+ $_post = $this->get_input_vars(INPUT_POST);
401
 
402
  if (isset($_post['set'])) {
403
 
661
 
662
  public function is_hosting_cloudways() {
663
 
664
+ $_server = $this->get_input_vars(INPUT_SERVER);
665
 
666
  if ($_server && array_key_exists('cw_allowed_ip', $_server)) {
667
  return true;
classes/pixels/class-pixel-manager.php CHANGED
@@ -186,6 +186,7 @@ class Pixel_Manager
186
  'methods' => 'POST',
187
  'callback' => function ( $request ) {
188
  $product_ids = $request->get_json_params();
 
189
 
190
  if ( !$product_ids ) {
191
  wp_send_json_error( 'No product ids provided' );
@@ -201,10 +202,12 @@ class Pixel_Manager
201
  register_rest_route( 'pmw/v1', '/pixels-fired/', [
202
  'methods' => 'POST',
203
  'callback' => function ( $request ) {
204
- $order_id = $request->get_json_params();
 
 
205
 
206
- if ( $order_id ) {
207
- $this->save_conversion_pixels_fired_status( $order_id );
208
  wp_send_json_success();
209
  } else {
210
  wp_send_json_error( 'No order ID provided' );
@@ -217,13 +220,56 @@ class Pixel_Manager
217
  ] );
218
  }
219
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
220
  public function capture_ajax_server_to_server_event()
221
  {
222
- $_post = filter_input_array( INPUT_POST, FILTER_SANITIZE_FULL_SPECIAL_CHARS );
223
  $this->process_server_to_server_event( $_post['data'] );
224
  wp_send_json_success();
225
  }
226
 
 
 
 
 
 
 
227
  public function process_server_to_server_event( $data )
228
  {
229
  // Send Facebook CAPI event
@@ -235,6 +281,8 @@ class Pixel_Manager
235
  public function wpm_save_imported_settings( $request )
236
  {
237
  $options = $request->get_params();
 
 
238
  // Validate imported options
239
 
240
  if ( $this->validations->validate_imported_options( $options ) ) {
@@ -243,7 +291,7 @@ class Pixel_Manager
243
  'message' => 'Options saved',
244
  ] );
245
  } else {
246
- error_log( 'Invalid Options. Options not saved' );
247
  wp_send_json_error( [
248
  'message' => 'Invalid options',
249
  ] );
@@ -460,7 +508,8 @@ class Pixel_Manager
460
  */
461
 
462
  if ( $this->environment_check->is_woocommerce_active() ) {
463
- $data = array_merge( $data, $this->get_order_data() );
 
464
  $data['shop'] = $this->get_shop_data();
465
  }
466
 
@@ -631,15 +680,23 @@ class Pixel_Manager
631
  ];
632
  }
633
 
634
- protected function get_order_data()
635
  {
636
  if ( !$this->wpm_is_order_received_page() ) {
637
- return [];
638
  }
639
  $order = $this->get_order_from_order_received_page();
640
- if ( $order && !$this->can_order_confirmation_be_processed( $order ) ) {
641
- return [];
 
 
 
642
  }
 
 
 
 
 
643
  $data = [];
644
 
645
  if ( $order ) {
@@ -923,7 +980,7 @@ class Pixel_Manager
923
 
924
  public function ajax_pmw_get_product_ids()
925
  {
926
- $_post = filter_input_array( INPUT_POST, FILTER_SANITIZE_FULL_SPECIAL_CHARS );
927
  $product_ids = explode( ',', $_post['productIds'] );
928
 
929
  if ( !$product_ids ) {
@@ -958,10 +1015,10 @@ class Pixel_Manager
958
 
959
  public function ajax_purchase_pixels_fired_handler()
960
  {
961
- $_post = filter_input_array( INPUT_POST, FILTER_SANITIZE_FULL_SPECIAL_CHARS );
962
 
963
- if ( isset( $_post['order_id'] ) ) {
964
- $this->save_conversion_pixels_fired_status( $_post['order_id'] );
965
  wp_send_json_success();
966
  } else {
967
  wp_send_json_error();
@@ -969,9 +1026,9 @@ class Pixel_Manager
969
 
970
  }
971
 
972
- public function save_conversion_pixels_fired_status( $order_id )
973
  {
974
- $order_id = filter_var( $order_id, FILTER_SANITIZE_FULL_SPECIAL_CHARS );
975
  update_post_meta( $order_id, '_wpm_conversion_pixel_fired', true );
976
  }
977
 
186
  'methods' => 'POST',
187
  'callback' => function ( $request ) {
188
  $product_ids = $request->get_json_params();
189
+ $product_ids = $this->generic_sanitization( $product_ids );
190
 
191
  if ( !$product_ids ) {
192
  wp_send_json_error( 'No product ids provided' );
202
  register_rest_route( 'pmw/v1', '/pixels-fired/', [
203
  'methods' => 'POST',
204
  'callback' => function ( $request ) {
205
+ $data = $request->get_json_params();
206
+ $order_id = filter_var( $data['order_id'], FILTER_SANITIZE_NUMBER_INT );
207
+ $source = filter_var( $data['source'], FILTER_SANITIZE_STRING );
208
 
209
+ if ( $order_id && $source ) {
210
+ $this->save_conversion_pixels_fired_status( $order_id, $source );
211
  wp_send_json_success();
212
  } else {
213
  wp_send_json_error( 'No order ID provided' );
220
  ] );
221
  }
222
 
223
+ private function get_order_details_for_acr( $data )
224
+ {
225
+ // If order ID or order key is not provided, return error
226
+ if ( !isset( $data['order_id'] ) || !isset( $data['order_key'] ) ) {
227
+ wp_send_json_error( 'No order ID or order key provided' );
228
+ }
229
+ $order_id = filter_var( $data['order_id'], FILTER_SANITIZE_NUMBER_INT );
230
+ $order_key = filter_var( $data['order_key'], FILTER_SANITIZE_STRING );
231
+ $order = wc_get_order( $order_id );
232
+ // if order is not found, return error
233
+ if ( !$order ) {
234
+ wp_send_json_error( 'Order not found' );
235
+ }
236
+ // If order key doesn't match, return error
237
+ if ( $order->get_order_key() !== $order_key ) {
238
+ wp_send_json_error( 'Order key does not match' );
239
+ }
240
+ if ( !$this->is_order_eligible_for_acr( $order ) ) {
241
+ wp_send_json_error( 'Order is not eligible for ACR' );
242
+ }
243
+ // Return the order details for the wpmDataLayer with the provided ID
244
+ wp_send_json_success( $this->get_order_data( $order ) );
245
+ }
246
+
247
+ private function is_order_eligible_for_acr( $order )
248
+ {
249
+ // If order is in status failed, cancelled or refunded or on-hold, return false
250
+ // https://stackoverflow.com/a/59869889
251
+ if ( $order->get_status() === 'failed' || $order->get_status() === 'cancelled' || $order->get_status() === 'refunded' || $order->get_status() === 'on-hold' || $order->get_status() === 'pending' ) {
252
+ return false;
253
+ }
254
+ if ( $this->has_conversion_pixel_already_fired( $order ) ) {
255
+ return false;
256
+ }
257
+ return true;
258
+ }
259
+
260
  public function capture_ajax_server_to_server_event()
261
  {
262
+ $_post = $this->get_input_vars( INPUT_POST );
263
  $this->process_server_to_server_event( $_post['data'] );
264
  wp_send_json_success();
265
  }
266
 
267
+ public function get_acr_order_data_ajax()
268
+ {
269
+ $_post = $this->get_input_vars( INPUT_POST );
270
+ $this->get_order_details_for_acr( $_post['data'] );
271
+ }
272
+
273
  public function process_server_to_server_event( $data )
274
  {
275
  // Send Facebook CAPI event
281
  public function wpm_save_imported_settings( $request )
282
  {
283
  $options = $request->get_params();
284
+ // Sanitize nested array $options
285
+ $options = $this->generic_sanitization( $options );
286
  // Validate imported options
287
 
288
  if ( $this->validations->validate_imported_options( $options ) ) {
291
  'message' => 'Options saved',
292
  ] );
293
  } else {
294
+ // wc_get_logger()->debug('Invalid Options. Options not saved', ['source' => 'wpm']);
295
  wp_send_json_error( [
296
  'message' => 'Invalid options',
297
  ] );
508
  */
509
 
510
  if ( $this->environment_check->is_woocommerce_active() ) {
511
+ $data = $this->add_order_data( $data );
512
+ // $data = array_merge($data, $this->get_order_data());
513
  $data['shop'] = $this->get_shop_data();
514
  }
515
 
680
  ];
681
  }
682
 
683
+ protected function add_order_data( $data )
684
  {
685
  if ( !$this->wpm_is_order_received_page() ) {
686
+ return array_merge( $data, [] );
687
  }
688
  $order = $this->get_order_from_order_received_page();
689
+ if ( !$order ) {
690
+ return array_merge( $data, [] );
691
+ }
692
+ if ( !$this->can_order_confirmation_be_processed( $order ) ) {
693
+ return array_merge( $data, [] );
694
  }
695
+ return array_merge( $data, $this->get_order_data( $order ) );
696
+ }
697
+
698
+ protected function get_order_data( $order )
699
+ {
700
  $data = [];
701
 
702
  if ( $order ) {
980
 
981
  public function ajax_pmw_get_product_ids()
982
  {
983
+ $_post = $this->get_input_vars( INPUT_POST );
984
  $product_ids = explode( ',', $_post['productIds'] );
985
 
986
  if ( !$product_ids ) {
1015
 
1016
  public function ajax_purchase_pixels_fired_handler()
1017
  {
1018
+ $_post = $this->get_input_vars( INPUT_POST );
1019
 
1020
+ if ( isset( $_post['order_id'] ) && isset( $_post['source'] ) ) {
1021
+ $this->save_conversion_pixels_fired_status( $_post['order_id'], $_post['source'] );
1022
  wp_send_json_success();
1023
  } else {
1024
  wp_send_json_error();
1026
 
1027
  }
1028
 
1029
+ public function save_conversion_pixels_fired_status( $order_id, $source = 'thankyou_page' )
1030
  {
1031
+ update_post_meta( $order_id, '_wpm_conversion_pixel_trigger', $source );
1032
  update_post_meta( $order_id, '_wpm_conversion_pixel_fired', true );
1033
  }
1034
 
classes/pixels/trait-shop.php CHANGED
@@ -105,7 +105,7 @@ trait Trait_Shop
105
 
106
  protected function is_valid_order_key_in_url()
107
  {
108
- $_get = filter_input_array( INPUT_GET, FILTER_SANITIZE_FULL_SPECIAL_CHARS );
109
 
110
  if ( isset( $_get['key'] ) && wc_get_order_id_by_order_key( $_get['key'] ) ) {
111
  return true;
@@ -159,19 +159,18 @@ trait Trait_Shop
159
 
160
  protected function get_order_with_url_order_key()
161
  {
162
- $_get = filter_input_array( INPUT_GET, FILTER_SANITIZE_FULL_SPECIAL_CHARS );
163
 
164
  if ( isset( $_get['key'] ) ) {
165
  $order_key = $_get['key'];
 
 
 
166
  return wc_get_order( wc_get_order_id_by_order_key( $order_key ) );
167
  } else {
168
  wc_get_logger()->debug( 'WooCommerce couldn\'t retrieve the order ID from order key in the URL', [
169
  'source' => 'wpm',
170
  ] );
171
- $order_key = ( $_get['key'] ? $_get['key'] : '' );
172
- wc_get_logger()->debug( 'URL order key: ' . $order_key, [
173
- 'source' => 'wpm',
174
- ] );
175
  return false;
176
  }
177
 
@@ -484,7 +483,7 @@ trait Trait_Shop
484
 
485
  protected function is_browser_on_shop()
486
  {
487
- $_server = filter_input_array( INPUT_SERVER, FILTER_SANITIZE_FULL_SPECIAL_CHARS );
488
  // error_log(print_r($_server, true));
489
  // error_log(print_r($_server['HTTP_HOST'], true));
490
  // error_log('get_site_url(): ' . parse_url(get_site_url(), PHP_URL_HOST));
@@ -547,7 +546,7 @@ trait Trait_Shop
547
 
548
  protected function is_nodedupe_parameter_set()
549
  {
550
- $_get = filter_input_array( INPUT_GET, FILTER_SANITIZE_FULL_SPECIAL_CHARS );
551
 
552
  if ( isset( $_get['nodedupe'] ) ) {
553
  return true;
@@ -565,7 +564,7 @@ trait Trait_Shop
565
  The conversion pixels have not been fired. Possible reasons:
566
  - The user role has been disabled for tracking.
567
  - The order payment has failed.
568
- - The pixels have already been fired. To prevent double counting the pixels are only fired once.
569
 
570
  If you want to test the order you have two options:
571
  - Turn off order duplication prevention in the advanced settings
@@ -595,5 +594,25 @@ trait Trait_Shop
595
  {
596
  return filter_var( $email, FILTER_VALIDATE_EMAIL );
597
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
598
 
599
  }
105
 
106
  protected function is_valid_order_key_in_url()
107
  {
108
+ $_get = $this->get_input_vars( INPUT_GET );
109
 
110
  if ( isset( $_get['key'] ) && wc_get_order_id_by_order_key( $_get['key'] ) ) {
111
  return true;
159
 
160
  protected function get_order_with_url_order_key()
161
  {
162
+ $_get = $this->get_input_vars( INPUT_GET );
163
 
164
  if ( isset( $_get['key'] ) ) {
165
  $order_key = $_get['key'];
166
+ wc_get_logger()->debug( 'URL order key: ' . $order_key, [
167
+ 'source' => 'wpm',
168
+ ] );
169
  return wc_get_order( wc_get_order_id_by_order_key( $order_key ) );
170
  } else {
171
  wc_get_logger()->debug( 'WooCommerce couldn\'t retrieve the order ID from order key in the URL', [
172
  'source' => 'wpm',
173
  ] );
 
 
 
 
174
  return false;
175
  }
176
 
483
 
484
  protected function is_browser_on_shop()
485
  {
486
+ $_server = $this->get_input_vars( INPUT_SERVER );
487
  // error_log(print_r($_server, true));
488
  // error_log(print_r($_server['HTTP_HOST'], true));
489
  // error_log('get_site_url(): ' . parse_url(get_site_url(), PHP_URL_HOST));
546
 
547
  protected function is_nodedupe_parameter_set()
548
  {
549
+ $_get = $this->get_input_vars( INPUT_GET );
550
 
551
  if ( isset( $_get['nodedupe'] ) ) {
552
  return true;
564
  The conversion pixels have not been fired. Possible reasons:
565
  - The user role has been disabled for tracking.
566
  - The order payment has failed.
567
+ - The pixels have already been fired. To prevent double counting, the pixels are only fired once.
568
 
569
  If you want to test the order you have two options:
570
  - Turn off order duplication prevention in the advanced settings
594
  {
595
  return filter_var( $email, FILTER_VALIDATE_EMAIL );
596
  }
597
+
598
+ protected function get_input_vars( $type )
599
+ {
600
+ $input_vars = filter_input_array( $type, FILTER_SANITIZE_FULL_SPECIAL_CHARS );
601
+ return $this->generic_sanitization( $input_vars );
602
+ }
603
+
604
+ protected function generic_sanitization( $input )
605
+ {
606
+
607
+ if ( is_array( $input ) ) {
608
+ array_walk_recursive( $input, function ( &$value, $key ) {
609
+ $value = filter_var( $value, FILTER_SANITIZE_FULL_SPECIAL_CHARS );
610
+ } );
611
+ } else {
612
+ $input = filter_var( $input, FILTER_SANITIZE_FULL_SPECIAL_CHARS );
613
+ }
614
+
615
+ return $input;
616
+ }
617
 
618
  }
js/public/wpm-public.p1.min.js CHANGED
@@ -1,2 +1,2 @@
1
- (()=>{var __webpack_modules__={4749:(e,t,o)=>{var r=o(2856),a=o(7406),n=TypeError;e.exports=function(e){if(r(e))return e;throw n(a(e)+" is not a function")}},1342:(e,t,o)=>{var r=o(1286),a=o(8810),n=o(7872).f,i=r("unscopables"),l=Array.prototype;null==l[i]&&n(l,i,{configurable:!0,value:a(null)}),e.exports=function(e){l[i][e]=!0}},448:(e,t,o)=>{var r=o(6873),a=String,n=TypeError;e.exports=function(e){if(r(e))return e;throw n(a(e)+" is not an object")}},5071:(e,t,o)=>{var r=o(5185),a=o(873),n=o(918),i=function(e){return function(t,o,i){var l,s=r(t),d=n(s),c=a(i,d);if(e&&o!=o){for(;d>c;)if((l=s[c++])!=l)return!0}else for(;d>c;c++)if((e||c in s)&&s[c]===o)return e||c||0;return!e&&-1}};e.exports={includes:i(!0),indexOf:i(!1)}},5248:(e,t,o)=>{var r=o(547),a=r({}.toString),n=r("".slice);e.exports=function(e){return n(a(e),8,-1)}},632:(e,t,o)=>{var r=o(3208),a=o(5313),n=o(8688),i=o(7872);e.exports=function(e,t,o){for(var l=a(t),s=i.f,d=n.f,c=0;c<l.length;c++){var u=l[c];r(e,u)||o&&r(o,u)||s(e,u,d(t,u))}}},2357:(e,t,o)=>{var r=o(414),a=o(7872),n=o(6730);e.exports=r?function(e,t,o){return a.f(e,t,n(1,o))}:function(e,t,o){return e[t]=o,e}},6730:e=>{e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},4279:(e,t,o)=>{var r=o(2856),a=o(7872),n=o(1998),i=o(7942);e.exports=function(e,t,o,l){l||(l={});var s=l.enumerable,d=void 0!==l.name?l.name:t;if(r(o)&&n(o,d,l),l.global)s?e[t]=o:i(t,o);else{try{l.unsafe?e[t]&&(s=!0):delete e[t]}catch(e){}s?e[t]=o:a.f(e,t,{value:o,enumerable:!1,configurable:!l.nonConfigurable,writable:!l.nonWritable})}return e}},7942:(e,t,o)=>{var r=o(5433),a=Object.defineProperty;e.exports=function(e,t){try{a(r,e,{value:t,configurable:!0,writable:!0})}catch(o){r[e]=t}return t}},414:(e,t,o)=>{var r=o(2933);e.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},2388:(e,t,o)=>{var r=o(5433),a=o(6873),n=r.document,i=a(n)&&a(n.createElement);e.exports=function(e){return i?n.createElement(e):{}}},5575:(e,t,o)=>{var r=o(1272);e.exports=r("navigator","userAgent")||""},5723:(e,t,o)=>{var r,a,n=o(5433),i=o(5575),l=n.process,s=n.Deno,d=l&&l.versions||s&&s.version,c=d&&d.v8;c&&(a=(r=c.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!a&&i&&(!(r=i.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=i.match(/Chrome\/(\d+)/))&&(a=+r[1]),e.exports=a},5604:e=>{e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},4429:(e,t,o)=>{var r=o(5433),a=o(8688).f,n=o(2357),i=o(4279),l=o(7942),s=o(632),d=o(1476);e.exports=function(e,t){var o,c,u,p,m,g=e.target,w=e.global,y=e.stat;if(o=w?r:y?r[g]||l(g,{}):(r[g]||{}).prototype)for(c in t){if(p=t[c],u=e.dontCallGetSet?(m=a(o,c))&&m.value:o[c],!d(w?c:g+(y?".":"#")+c,e.forced)&&void 0!==u){if(typeof p==typeof u)continue;s(p,u)}(e.sham||u&&u.sham)&&n(p,"sham",!0),i(o,c,p,e)}}},2933:e=>{e.exports=function(e){try{return!!e()}catch(e){return!0}}},3001:(e,t,o)=>{var r=o(2933);e.exports=!r((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))},3573:(e,t,o)=>{var r=o(3001),a=Function.prototype.call;e.exports=r?a.bind(a):function(){return a.apply(a,arguments)}},4081:(e,t,o)=>{var r=o(414),a=o(3208),n=Function.prototype,i=r&&Object.getOwnPropertyDescriptor,l=a(n,"name"),s=l&&"something"===function(){}.name,d=l&&(!r||r&&i(n,"name").configurable);e.exports={EXISTS:l,PROPER:s,CONFIGURABLE:d}},547:(e,t,o)=>{var r=o(3001),a=Function.prototype,n=a.bind,i=a.call,l=r&&n.bind(i,i);e.exports=r?function(e){return e&&l(e)}:function(e){return e&&function(){return i.apply(e,arguments)}}},1272:(e,t,o)=>{var r=o(5433),a=o(2856),n=function(e){return a(e)?e:void 0};e.exports=function(e,t){return arguments.length<2?n(r[e]):r[e]&&r[e][t]}},9345:(e,t,o)=>{var r=o(4749);e.exports=function(e,t){var o=e[t];return null==o?void 0:r(o)}},5433:(e,t,o)=>{var r=function(e){return e&&e.Math==Math&&e};e.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof o.g&&o.g)||function(){return this}()||Function("return this")()},3208:(e,t,o)=>{var r=o(547),a=o(4021),n=r({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,t){return n(a(e),t)}},7557:e=>{e.exports={}},6383:(e,t,o)=>{var r=o(1272);e.exports=r("document","documentElement")},5841:(e,t,o)=>{var r=o(414),a=o(2933),n=o(2388);e.exports=!r&&!a((function(){return 7!=Object.defineProperty(n("div"),"a",{get:function(){return 7}}).a}))},8946:(e,t,o)=>{var r=o(547),a=o(2933),n=o(5248),i=Object,l=r("".split);e.exports=a((function(){return!i("z").propertyIsEnumerable(0)}))?function(e){return"String"==n(e)?l(e,""):i(e)}:i},2009:(e,t,o)=>{var r=o(547),a=o(2856),n=o(3479),i=r(Function.toString);a(n.inspectSource)||(n.inspectSource=function(e){return i(e)}),e.exports=n.inspectSource},418:(e,t,o)=>{var r,a,n,i=o(3829),l=o(5433),s=o(547),d=o(6873),c=o(2357),u=o(3208),p=o(3479),m=o(8607),g=o(7557),w="Object already initialized",y=l.TypeError,v=l.WeakMap;if(i||p.state){var f=p.state||(p.state=new v),_=s(f.get),h=s(f.has),L=s(f.set);r=function(e,t){if(h(f,e))throw new y(w);return t.facade=e,L(f,e,t),t},a=function(e){return _(f,e)||{}},n=function(e){return h(f,e)}}else{var b=m("state");g[b]=!0,r=function(e,t){if(u(e,b))throw new y(w);return t.facade=e,c(e,b,t),t},a=function(e){return u(e,b)?e[b]:{}},n=function(e){return u(e,b)}}e.exports={set:r,get:a,has:n,enforce:function(e){return n(e)?a(e):r(e,{})},getterFor:function(e){return function(t){var o;if(!d(t)||(o=a(t)).type!==e)throw y("Incompatible receiver, "+e+" required");return o}}}},2856:e=>{e.exports=function(e){return"function"==typeof e}},1476:(e,t,o)=>{var r=o(2933),a=o(2856),n=/#|\.prototype\./,i=function(e,t){var o=s[l(e)];return o==c||o!=d&&(a(t)?r(t):!!t)},l=i.normalize=function(e){return String(e).replace(n,".").toLowerCase()},s=i.data={},d=i.NATIVE="N",c=i.POLYFILL="P";e.exports=i},6873:(e,t,o)=>{var r=o(2856);e.exports=function(e){return"object"==typeof e?null!==e:r(e)}},2390:e=>{e.exports=!1},9650:(e,t,o)=>{var r=o(1272),a=o(2856),n=o(7012),i=o(8951),l=Object;e.exports=i?function(e){return"symbol"==typeof e}:function(e){var t=r("Symbol");return a(t)&&n(t.prototype,l(e))}},918:(e,t,o)=>{var r=o(9262);e.exports=function(e){return r(e.length)}},1998:(e,t,o)=>{var r=o(2933),a=o(2856),n=o(3208),i=o(414),l=o(4081).CONFIGURABLE,s=o(2009),d=o(418),c=d.enforce,u=d.get,p=Object.defineProperty,m=i&&!r((function(){return 8!==p((function(){}),"length",{value:8}).length})),g=String(String).split("String"),w=e.exports=function(e,t,o){"Symbol("===String(t).slice(0,7)&&(t="["+String(t).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),o&&o.getter&&(t="get "+t),o&&o.setter&&(t="set "+t),(!n(e,"name")||l&&e.name!==t)&&(i?p(e,"name",{value:t,configurable:!0}):e.name=t),m&&o&&n(o,"arity")&&e.length!==o.arity&&p(e,"length",{value:o.arity});try{o&&n(o,"constructor")&&o.constructor?i&&p(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(e){}var r=c(e);return n(r,"source")||(r.source=g.join("string"==typeof t?t:"")),e};Function.prototype.toString=w((function(){return a(this)&&u(this).source||s(this)}),"toString")},1190:e=>{var t=Math.ceil,o=Math.floor;e.exports=Math.trunc||function(e){var r=+e;return(r>0?o:t)(r)}},6634:(e,t,o)=>{var r=o(5723),a=o(2933);e.exports=!!Object.getOwnPropertySymbols&&!a((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},3829:(e,t,o)=>{var r=o(5433),a=o(2856),n=o(2009),i=r.WeakMap;e.exports=a(i)&&/native code/.test(n(i))},8810:(e,t,o)=>{var r,a=o(448),n=o(21),i=o(5604),l=o(7557),s=o(6383),d=o(2388),c=o(8607)("IE_PROTO"),u=function(){},p=function(e){return"<script>"+e+"<\/script>"},m=function(e){e.write(p("")),e.close();var t=e.parentWindow.Object;return e=null,t},g=function(){try{r=new ActiveXObject("htmlfile")}catch(e){}var e,t;g="undefined"!=typeof document?document.domain&&r?m(r):((t=d("iframe")).style.display="none",s.appendChild(t),t.src=String("javascript:"),(e=t.contentWindow.document).open(),e.write(p("document.F=Object")),e.close(),e.F):m(r);for(var o=i.length;o--;)delete g.prototype[i[o]];return g()};l[c]=!0,e.exports=Object.create||function(e,t){var o;return null!==e?(u.prototype=a(e),o=new u,u.prototype=null,o[c]=e):o=g(),void 0===t?o:n.f(o,t)}},21:(e,t,o)=>{var r=o(414),a=o(8272),n=o(7872),i=o(448),l=o(5185),s=o(8454);t.f=r&&!a?Object.defineProperties:function(e,t){i(e);for(var o,r=l(t),a=s(t),d=a.length,c=0;d>c;)n.f(e,o=a[c++],r[o]);return e}},7872:(e,t,o)=>{var r=o(414),a=o(5841),n=o(8272),i=o(448),l=o(29),s=TypeError,d=Object.defineProperty,c=Object.getOwnPropertyDescriptor;t.f=r?n?function(e,t,o){if(i(e),t=l(t),i(o),"function"==typeof e&&"prototype"===t&&"value"in o&&"writable"in o&&!o.writable){var r=c(e,t);r&&r.writable&&(e[t]=o.value,o={configurable:"configurable"in o?o.configurable:r.configurable,enumerable:"enumerable"in o?o.enumerable:r.enumerable,writable:!1})}return d(e,t,o)}:d:function(e,t,o){if(i(e),t=l(t),i(o),a)try{return d(e,t,o)}catch(e){}if("get"in o||"set"in o)throw s("Accessors not supported");return"value"in o&&(e[t]=o.value),e}},8688:(e,t,o)=>{var r=o(414),a=o(3573),n=o(4017),i=o(6730),l=o(5185),s=o(29),d=o(3208),c=o(5841),u=Object.getOwnPropertyDescriptor;t.f=r?u:function(e,t){if(e=l(e),t=s(t),c)try{return u(e,t)}catch(e){}if(d(e,t))return i(!a(n.f,e,t),e[t])}},7839:(e,t,o)=>{var r=o(209),a=o(5604).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,a)}},6824:(e,t)=>{t.f=Object.getOwnPropertySymbols},7012:(e,t,o)=>{var r=o(547);e.exports=r({}.isPrototypeOf)},209:(e,t,o)=>{var r=o(547),a=o(3208),n=o(5185),i=o(5071).indexOf,l=o(7557),s=r([].push);e.exports=function(e,t){var o,r=n(e),d=0,c=[];for(o in r)!a(l,o)&&a(r,o)&&s(c,o);for(;t.length>d;)a(r,o=t[d++])&&(~i(c,o)||s(c,o));return c}},8454:(e,t,o)=>{var r=o(209),a=o(5604);e.exports=Object.keys||function(e){return r(e,a)}},4017:(e,t)=>{"use strict";var o={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,a=r&&!o.call({1:2},1);t.f=a?function(e){var t=r(this,e);return!!t&&t.enumerable}:o},542:(e,t,o)=>{var r=o(3573),a=o(2856),n=o(6873),i=TypeError;e.exports=function(e,t){var o,l;if("string"===t&&a(o=e.toString)&&!n(l=r(o,e)))return l;if(a(o=e.valueOf)&&!n(l=r(o,e)))return l;if("string"!==t&&a(o=e.toString)&&!n(l=r(o,e)))return l;throw i("Can't convert object to primitive value")}},5313:(e,t,o)=>{var r=o(1272),a=o(547),n=o(7839),i=o(6824),l=o(448),s=a([].concat);e.exports=r("Reflect","ownKeys")||function(e){var t=n.f(l(e)),o=i.f;return o?s(t,o(e)):t}},4630:e=>{var t=TypeError;e.exports=function(e){if(null==e)throw t("Can't call method on "+e);return e}},8607:(e,t,o)=>{var r=o(3062),a=o(5834),n=r("keys");e.exports=function(e){return n[e]||(n[e]=a(e))}},3479:(e,t,o)=>{var r=o(5433),a=o(7942),n="__core-js_shared__",i=r[n]||a(n,{});e.exports=i},3062:(e,t,o)=>{var r=o(2390),a=o(3479);(e.exports=function(e,t){return a[e]||(a[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.24.1",mode:r?"pure":"global",copyright:"© 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.24.1/LICENSE",source:"https://github.com/zloirock/core-js"})},873:(e,t,o)=>{var r=o(7219),a=Math.max,n=Math.min;e.exports=function(e,t){var o=r(e);return o<0?a(o+t,0):n(o,t)}},5185:(e,t,o)=>{var r=o(8946),a=o(4630);e.exports=function(e){return r(a(e))}},7219:(e,t,o)=>{var r=o(1190);e.exports=function(e){var t=+e;return t!=t||0===t?0:r(t)}},9262:(e,t,o)=>{var r=o(7219),a=Math.min;e.exports=function(e){return e>0?a(r(e),9007199254740991):0}},4021:(e,t,o)=>{var r=o(4630),a=Object;e.exports=function(e){return a(r(e))}},9984:(e,t,o)=>{var r=o(3573),a=o(6873),n=o(9650),i=o(9345),l=o(542),s=o(1286),d=TypeError,c=s("toPrimitive");e.exports=function(e,t){if(!a(e)||n(e))return e;var o,s=i(e,c);if(s){if(void 0===t&&(t="default"),o=r(s,e,t),!a(o)||n(o))return o;throw d("Can't convert object to primitive value")}return void 0===t&&(t="number"),l(e,t)}},29:(e,t,o)=>{var r=o(9984),a=o(9650);e.exports=function(e){var t=r(e,"string");return a(t)?t:t+""}},7406:e=>{var t=String;e.exports=function(e){try{return t(e)}catch(e){return"Object"}}},5834:(e,t,o)=>{var r=o(547),a=0,n=Math.random(),i=r(1..toString);e.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+i(++a+n,36)}},8951:(e,t,o)=>{var r=o(6634);e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},8272:(e,t,o)=>{var r=o(414),a=o(2933);e.exports=r&&a((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},1286:(e,t,o)=>{var r=o(5433),a=o(3062),n=o(3208),i=o(5834),l=o(6634),s=o(8951),d=a("wks"),c=r.Symbol,u=c&&c.for,p=s?c:c&&c.withoutSetter||i;e.exports=function(e){if(!n(d,e)||!l&&"string"!=typeof d[e]){var t="Symbol."+e;l&&n(c,e)?d[e]=c[e]:d[e]=s&&u?u(t):p(t)}return d[e]}},3647:(e,t,o)=>{"use strict";o(3647);var r=o(4429),a=o(5071).includes,n=o(2933),i=o(1342);r({target:"Array",proto:!0,forced:n((function(){return!Array(1).includes()}))},{includes:function(e){return a(this,e,arguments.length>1?arguments[1]:void 0)}}),i("includes")},164:()=>{jQuery(document).on("wpmLoadPixels",(()=>{var e,t,o,r,a,n;null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(o=t.facebook)||void 0===o||!o.pixel_id||null!==(r=wpmDataLayer)&&void 0!==r&&null!==(a=r.pixels)&&void 0!==a&&null!==(n=a.facebook)&&void 0!==n&&n.loaded||wpm.canIFire("ads","facebook-ads")&&wpm.loadFacebookPixel()})),jQuery(document).on("wpmClientSideAddToCart",((e,t)=>{try{var o,r,a;if(null===(o=wpmDataLayer)||void 0===o||null===(r=o.pixels)||void 0===r||null===(a=r.facebook)||void 0===a||!a.loaded)return;fbq("track","AddToCart",t.facebook.custom_data,{eventID:t.facebook.event_id})}catch(e){console.error(e)}})),jQuery(document).on("wpmClientSideBeginCheckout",((e,t)=>{try{var o,r,a;if(null===(o=wpmDataLayer)||void 0===o||null===(r=o.pixels)||void 0===r||null===(a=r.facebook)||void 0===a||!a.loaded)return;fbq("track","InitiateCheckout",t.facebook.custom_data,{eventID:t.facebook.event_id})}catch(e){console.error(e)}})),jQuery(document).on("wpmClientSideAddToWishlist",((e,t)=>{try{var o,r,a;if(null===(o=wpmDataLayer)||void 0===o||null===(r=o.pixels)||void 0===r||null===(a=r.facebook)||void 0===a||!a.loaded)return;fbq("track","AddToWishlist",t.facebook.custom_data,{eventID:t.facebook.event_id})}catch(e){console.error(e)}})),jQuery(document).on("wpmClientSideViewItem",((e,t)=>{try{var o,r,a;if(null===(o=wpmDataLayer)||void 0===o||null===(r=o.pixels)||void 0===r||null===(a=r.facebook)||void 0===a||!a.loaded)return;fbq("track","ViewContent",t.facebook.custom_data,{eventID:t.facebook.event_id})}catch(e){console.error(e)}})),jQuery(document).on("wpmClientSideSearch",((e,t)=>{try{var o,r,a;if(null===(o=wpmDataLayer)||void 0===o||null===(r=o.pixels)||void 0===r||null===(a=r.facebook)||void 0===a||!a.loaded)return;fbq("track","Search",t.facebook.custom_data,{eventID:t.facebook.event_id})}catch(e){console.error(e)}})),jQuery(document).on("wpmLoadAlways",(()=>{try{var e,t,o;if(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(o=t.facebook)||void 0===o||!o.loaded)return;wpm.setFbUserData()}catch(e){console.error(e)}})),jQuery(document).on("wpmClientSideOrderReceivedPage",((e,t)=>{try{var o,r,a;if(null===(o=wpmDataLayer)||void 0===o||null===(r=o.pixels)||void 0===r||null===(a=r.facebook)||void 0===a||!a.loaded)return;fbq("track","Purchase",t.facebook.custom_data,{eventID:t.facebook.event_id})}catch(e){console.error(e)}}))},7746:()=>{!function(e,t,o){let r;e.loadFacebookPixel=()=>{try{wpmDataLayer.pixels.facebook.loaded=!0,t=window,o=document,r="script",t.fbq||(a=t.fbq=function(){a.callMethod?a.callMethod.apply(a,arguments):a.queue.push(arguments)},t._fbq||(t._fbq=a),a.push=a,a.loaded=!0,a.version="2.0",a.queue=[],(n=o.createElement(r)).async=!0,n.src="https://connect.facebook.net/en_US/fbevents.js",(i=o.getElementsByTagName(r)[0]).parentNode.insertBefore(n,i));let l={};e.isFbpSet()&&(l={...e.getUserIdentifiersForFb()}),fbq("init",wpmDataLayer.pixels.facebook.pixel_id,l),fbq("track","PageView")}catch(r){console.error(r)}var t,o,r,a,n,i},e.getUserIdentifiersForFb=()=>{var e,t,o,r,a,n,i,l,s,d,c,u,p,m,g,w,y,v,f,_,h,L,b,D,k,x,C,j,S,I,O,P,E,Q,T,F,A,V,R,q,M,G,N,W;let U={};return null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.user)&&void 0!==t&&t.id&&(U.external_id=wpmDataLayer.user.id),null!==(o=wpmDataLayer)&&void 0!==o&&null!==(r=o.order)&&void 0!==r&&r.user_id&&(U.external_id=wpmDataLayer.order.user_id),null!==(a=wpmDataLayer)&&void 0!==a&&null!==(n=a.user)&&void 0!==n&&null!==(i=n.facebook)&&void 0!==i&&i.email&&(U.em=wpmDataLayer.user.facebook.email),null!==(l=wpmDataLayer)&&void 0!==l&&null!==(s=l.order)&&void 0!==s&&s.billing_email_hashed&&(U.em=wpmDataLayer.order.billing_email_hashed),null!==(d=wpmDataLayer)&&void 0!==d&&null!==(c=d.user)&&void 0!==c&&null!==(u=c.facebook)&&void 0!==u&&u.first_name&&(U.fn=wpmDataLayer.user.facebook.first_name),null!==(p=wpmDataLayer)&&void 0!==p&&null!==(m=p.order)&&void 0!==m&&m.billing_first_name&&(U.fn=wpmDataLayer.order.billing_first_name.toLowerCase()),null!==(g=wpmDataLayer)&&void 0!==g&&null!==(w=g.user)&&void 0!==w&&null!==(y=w.facebook)&&void 0!==y&&y.last_name&&(U.ln=wpmDataLayer.user.facebook.last_name),null!==(v=wpmDataLayer)&&void 0!==v&&null!==(f=v.order)&&void 0!==f&&f.billing_last_name&&(U.ln=wpmDataLayer.order.billing_last_name.toLowerCase()),null!==(_=wpmDataLayer)&&void 0!==_&&null!==(h=_.user)&&void 0!==h&&null!==(L=h.facebook)&&void 0!==L&&L.phone&&(U.ph=wpmDataLayer.user.facebook.phone),null!==(b=wpmDataLayer)&&void 0!==b&&null!==(D=b.order)&&void 0!==D&&D.billing_phone&&(U.ph=wpmDataLayer.order.billing_phone.replace("+","")),null!==(k=wpmDataLayer)&&void 0!==k&&null!==(x=k.user)&&void 0!==x&&null!==(C=x.facebook)&&void 0!==C&&C.city&&(U.ct=wpmDataLayer.user.facebook.city),null!==(j=wpmDataLayer)&&void 0!==j&&null!==(S=j.order)&&void 0!==S&&S.billing_city&&(U.ct=wpmDataLayer.order.billing_city.toLowerCase().replace(/ /g,"")),null!==(I=wpmDataLayer)&&void 0!==I&&null!==(O=I.user)&&void 0!==O&&null!==(P=O.facebook)&&void 0!==P&&P.state&&(U.st=wpmDataLayer.user.facebook.state),null!==(E=wpmDataLayer)&&void 0!==E&&null!==(Q=E.order)&&void 0!==Q&&Q.billing_state&&(U.st=wpmDataLayer.order.billing_state.toLowerCase().replace(/[a-zA-Z]{2}-/,"")),null!==(T=wpmDataLayer)&&void 0!==T&&null!==(F=T.user)&&void 0!==F&&null!==(A=F.facebook)&&void 0!==A&&A.postcode&&(U.zp=wpmDataLayer.user.facebook.postcode),null!==(V=wpmDataLayer)&&void 0!==V&&null!==(R=V.order)&&void 0!==R&&R.billing_postcode&&(U.zp=wpmDataLayer.order.billing_postcode),null!==(q=wpmDataLayer)&&void 0!==q&&null!==(M=q.user)&&void 0!==M&&null!==(G=M.facebook)&&void 0!==G&&G.country&&(U.country=wpmDataLayer.user.facebook.country),null!==(N=wpmDataLayer)&&void 0!==N&&null!==(W=N.order)&&void 0!==W&&W.billing_country&&(U.country=wpmDataLayer.order.billing_country.toLowerCase()),U},e.getFbRandomEventId=()=>(Math.random()+1).toString(36).substring(2),e.getFbUserData=()=>(r={...r,...e.getFbUserDataFromBrowser()},r),e.setFbUserData=()=>{r=e.getFbUserDataFromBrowser()},e.getFbUserDataFromBrowser=()=>{var t,o;let r={};return e.getCookie("_fbp")&&e.isValidFbp(e.getCookie("_fbp"))&&(r.fbp=e.getCookie("_fbp")),e.getCookie("_fbc")&&e.isValidFbc(e.getCookie("_fbc"))&&(r.fbc=e.getCookie("_fbc")),null!==(t=wpmDataLayer)&&void 0!==t&&null!==(o=t.user)&&void 0!==o&&o.id&&(r.external_id=wpmDataLayer.user.id),navigator.userAgent&&(r.client_user_agent=navigator.userAgent),r},e.isFbpSet=()=>!!e.getCookie("_fbp"),e.isValidFbp=e=>new RegExp(/^fb\.[0-2]\.\d{13}\.\d{8,20}$/).test(e),e.isValidFbc=e=>new RegExp(/^fb\.[0-2]\.\d{13}\.[\da-zA-Z_-]{8,}/).test(e),e.fbGetProductDataForCapiEvent=e=>({content_type:"product",content_name:e.name,content_ids:[e.dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type]],value:parseFloat(e.quantity*e.price),currency:e.currency}),e.facebookContentIds=()=>{let e=[];for(const[r,a]of Object.entries(wpmDataLayer.order.items)){var t,o;null!==(t=wpmDataLayer)&&void 0!==t&&null!==(o=t.general)&&void 0!==o&&o.variationsOutput&&0!==a.variation_id?e.push(String(wpmDataLayer.products[a.variation_id].dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type])):e.push(String(wpmDataLayer.products[a.id].dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type]))}return e},e.trackCustomFacebookEvent=function(t){let r=arguments.length>1&&arguments[1]!==o?arguments[1]:{};try{var a,n,i;if(null===(a=wpmDataLayer)||void 0===a||null===(n=a.pixels)||void 0===n||null===(i=n.facebook)||void 0===i||!i.loaded)return;let o=e.getFbRandomEventId();fbq("trackCustom",t,r,{eventID:o}),jQuery(document).trigger("wpmFbCapiEvent",{event_name:t,event_id:o,user_data:e.getFbUserData(),event_source_url:window.location.href,custom_data:r})}catch(e){console.error(e)}},e.fbGetContentIdsFromCart=()=>{let e=[];for(const t in wpmDataLayer.cart)e.push(wpmDataLayer.products[t].dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type]);return e}}(window.wpm=window.wpm||{},jQuery)},5012:(e,t,o)=>{o(7746),o(164)},165:()=>{jQuery(document).on("wpmViewItemList",(function(e,t){try{var o,r,a,n,i,l,s,d,c,u,p,m,g;if(jQuery.isEmptyObject(null===(o=wpmDataLayer)||void 0===o||null===(r=o.pixels)||void 0===r||null===(a=r.google)||void 0===a||null===(n=a.ads)||void 0===n?void 0:n.conversionIds))return;if(null===(i=wpmDataLayer)||void 0===i||null===(l=i.pixels)||void 0===l||null===(s=l.google)||void 0===s||null===(d=s.ads)||void 0===d||null===(c=d.dynamic_remarketing)||void 0===c||!c.status)return;if(!wpm.googleConfigConditionsMet("ads"))return;if(null!==(u=wpmDataLayer)&&void 0!==u&&null!==(p=u.general)&&void 0!==p&&p.variationsOutput&&t.isVariable&&!1===wpmDataLayer.pixels.google.ads.dynamic_remarketing.send_events_with_parent_ids)return;if(!t)return;let e={send_to:wpm.getGoogleAdsConversionIdentifiers(),items:[{id:t.dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type],google_business_vertical:wpmDataLayer.pixels.google.ads.google_business_vertical}]};null!==(m=wpmDataLayer)&&void 0!==m&&null!==(g=m.user)&&void 0!==g&&g.id&&(e.user_id=wpmDataLayer.user.id),wpm.gtagLoaded().then((function(){gtag("event","view_item_list",e)}))}catch(e){console.error(e)}})),jQuery(document).on("wpmAddToCart",(function(e,t){try{var o,r,a,n,i,l,s,d,c,u,p;if(jQuery.isEmptyObject(null===(o=wpmDataLayer)||void 0===o||null===(r=o.pixels)||void 0===r||null===(a=r.google)||void 0===a||null===(n=a.ads)||void 0===n?void 0:n.conversionIds))return;if(null===(i=wpmDataLayer)||void 0===i||null===(l=i.pixels)||void 0===l||null===(s=l.google)||void 0===s||null===(d=s.ads)||void 0===d||null===(c=d.dynamic_remarketing)||void 0===c||!c.status)return;if(!wpm.googleConfigConditionsMet("ads"))return;let e={send_to:wpm.getGoogleAdsConversionIdentifiers(),value:t.quantity*t.price,items:[{id:t.dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type],quantity:t.quantity,price:t.price,google_business_vertical:wpmDataLayer.pixels.google.ads.google_business_vertical}]};null!==(u=wpmDataLayer)&&void 0!==u&&null!==(p=u.user)&&void 0!==p&&p.id&&(e.user_id=wpmDataLayer.user.id),wpm.gtagLoaded().then((function(){gtag("event","add_to_cart",e)}))}catch(e){console.error(e)}})),jQuery(document).on("wpmViewItem",(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;try{var o,r,a,n,i,l,s,d,c,u,p;if(jQuery.isEmptyObject(null===(o=wpmDataLayer)||void 0===o||null===(r=o.pixels)||void 0===r||null===(a=r.google)||void 0===a||null===(n=a.ads)||void 0===n?void 0:n.conversionIds))return;if(null===(i=wpmDataLayer)||void 0===i||null===(l=i.pixels)||void 0===l||null===(s=l.google)||void 0===s||null===(d=s.ads)||void 0===d||null===(c=d.dynamic_remarketing)||void 0===c||!c.status)return;if(!wpm.googleConfigConditionsMet("ads"))return;let e={send_to:wpm.getGoogleAdsConversionIdentifiers()};t&&(e.value=(t.quantity?t.quantity:1)*t.price,e.items=[{id:t.dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type],quantity:t.quantity?t.quantity:1,price:t.price,google_business_vertical:wpmDataLayer.pixels.google.ads.google_business_vertical}]),null!==(u=wpmDataLayer)&&void 0!==u&&null!==(p=u.user)&&void 0!==p&&p.id&&(e.user_id=wpmDataLayer.user.id),wpm.gtagLoaded().then((function(){gtag("event","view_item",e)}))}catch(e){console.error(e)}})),jQuery(document).on("wpmSearch",(function(){try{var e,t,o,r,a,n,i,l,s,d,c;if(jQuery.isEmptyObject(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(o=t.google)||void 0===o||null===(r=o.ads)||void 0===r?void 0:r.conversionIds))return;if(null===(a=wpmDataLayer)||void 0===a||null===(n=a.pixels)||void 0===n||null===(i=n.google)||void 0===i||null===(l=i.ads)||void 0===l||null===(s=l.dynamic_remarketing)||void 0===s||!s.status)return;if(!wpm.googleConfigConditionsMet("ads"))return;let m=[];for(const[e,t]of Object.entries(wpmDataLayer.products)){var u,p;if(null!==(u=wpmDataLayer)&&void 0!==u&&null!==(p=u.general)&&void 0!==p&&p.variationsOutput&&t.isVariable&&!1===wpmDataLayer.pixels.google.ads.dynamic_remarketing.send_events_with_parent_ids)return;m.push({id:t.dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type],google_business_vertical:wpmDataLayer.pixels.google.ads.google_business_vertical})}let g={send_to:wpm.getGoogleAdsConversionIdentifiers(),items:m};null!==(d=wpmDataLayer)&&void 0!==d&&null!==(c=d.user)&&void 0!==c&&c.id&&(g.user_id=wpmDataLayer.user.id),wpm.gtagLoaded().then((function(){gtag("event","view_search_results",g)}))}catch(e){console.error(e)}})),jQuery(document).on("wpmOrderReceivedPage",(function(){try{var e,t,o,r,a,n,i,l,s,d,c;if(jQuery.isEmptyObject(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(o=t.google)||void 0===o||null===(r=o.ads)||void 0===r?void 0:r.conversionIds))return;if(null===(a=wpmDataLayer)||void 0===a||null===(n=a.pixels)||void 0===n||null===(i=n.google)||void 0===i||null===(l=i.ads)||void 0===l||null===(s=l.dynamic_remarketing)||void 0===s||!s.status)return;if(!wpm.googleConfigConditionsMet("ads"))return;let u={send_to:wpm.getGoogleAdsConversionIdentifiers(),value:wpmDataLayer.order.value_filtered,items:wpm.getGoogleAdsDynamicRemarketingOrderItems()};null!==(d=wpmDataLayer)&&void 0!==d&&null!==(c=d.user)&&void 0!==c&&c.id&&(u.user_id=wpmDataLayer.user.id),wpm.gtagLoaded().then((function(){gtag("event","purchase",u)}))}catch(e){console.error(e)}})),jQuery(document).on("wpmLogin",(function(){try{var e,t,o,r,a,n,i,l,s,d,c;if(jQuery.isEmptyObject(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(o=t.google)||void 0===o||null===(r=o.ads)||void 0===r?void 0:r.conversionIds))return;if(null===(a=wpmDataLayer)||void 0===a||null===(n=a.pixels)||void 0===n||null===(i=n.google)||void 0===i||null===(l=i.ads)||void 0===l||null===(s=l.dynamic_remarketing)||void 0===s||!s.status)return;if(!wpm.googleConfigConditionsMet("ads"))return;let u={send_to:wpm.getGoogleAdsConversionIdentifiers()};null!==(d=wpmDataLayer)&&void 0!==d&&null!==(c=d.user)&&void 0!==c&&c.id&&(u.user_id=wpmDataLayer.user.id),wpm.gtagLoaded().then((function(){gtag("event","login",u)}))}catch(e){console.error(e)}})),jQuery(document).on("wpmOrderReceivedPage",(function(){try{var e,t,o,r,a,n;if(jQuery.isEmptyObject(wpm.getGoogleAdsConversionIdentifiersWithLabel()))return;if(!wpm.googleConfigConditionsMet("ads"))return;let i={},l={};i={send_to:wpm.getGoogleAdsConversionIdentifiersWithLabel(),transaction_id:wpmDataLayer.order.number,value:wpmDataLayer.order.value_filtered,currency:wpmDataLayer.order.currency,new_customer:wpmDataLayer.order.new_customer},null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.order)&&void 0!==t&&t.clv_order_value_filtered&&(i.customer_lifetime_value=wpmDataLayer.order.clv_order_value_filtered),null!==(o=wpmDataLayer)&&void 0!==o&&null!==(r=o.user)&&void 0!==r&&r.id&&(i.user_id=wpmDataLayer.user.id),null!==(a=wpmDataLayer)&&void 0!==a&&null!==(n=a.order)&&void 0!==n&&n.aw_merchant_id&&(l={discount:wpmDataLayer.order.discount,aw_merchant_id:wpmDataLayer.order.aw_merchant_id,aw_feed_country:wpmDataLayer.order.aw_feed_country,aw_feed_language:wpmDataLayer.order.aw_feed_language,items:wpm.getGoogleAdsRegularOrderItems()}),wpm.gtagLoaded().then((function(){gtag("event","conversion",{...i,...l})}))}catch(e){console.error(e)}}))},9042:()=>{!function(e,t,o){e.getGoogleAdsConversionIdentifiersWithLabel=function(){var e,t,o,r;let a=[];if(null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.pixels)&&void 0!==t&&null!==(o=t.google)&&void 0!==o&&null!==(r=o.ads)&&void 0!==r&&r.conversionIds)for(const[e,t]of Object.entries(wpmDataLayer.pixels.google.ads.conversionIds))t&&a.push(e+"/"+t);return a},e.getGoogleAdsConversionIdentifiers=function(){let e=[];for(const[t,o]of Object.entries(wpmDataLayer.pixels.google.ads.conversionIds))e.push(t);return e},e.getGoogleAdsRegularOrderItems=function(){let e=[];for(const[r,a]of Object.entries(wpmDataLayer.order.items)){var t,o;let r;r={quantity:a.quantity,price:a.price},null!==(t=wpmDataLayer)&&void 0!==t&&null!==(o=t.general)&&void 0!==o&&o.variationsOutput&&0!==a.variation_id?(r.id=String(wpmDataLayer.products[a.variation_id].dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type]),e.push(r)):(r.id=String(wpmDataLayer.products[a.id].dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type]),e.push(r))}return e},e.getGoogleAdsDynamicRemarketingOrderItems=function(){let e=[];for(const[r,a]of Object.entries(wpmDataLayer.order.items)){var t,o;let r;r={quantity:a.quantity,price:a.price,google_business_vertical:wpmDataLayer.pixels.google.ads.google_business_vertical},null!==(t=wpmDataLayer)&&void 0!==t&&null!==(o=t.general)&&void 0!==o&&o.variationsOutput&&0!==a.variation_id?(r.id=String(wpmDataLayer.products[a.variation_id].dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type]),e.push(r)):(r.id=String(wpmDataLayer.products[a.id].dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type]),e.push(r))}return e}}(window.wpm=window.wpm||{},jQuery)},5190:(e,t,o)=>{o(9042),o(165)},3625:()=>{jQuery(document).on("wpmOrderReceivedPage",(function(){try{var e,t,o,r,a,n,i,l,s,d;if(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(o=t.google)||void 0===o||null===(r=o.analytics)||void 0===r||null===(a=r.universal)||void 0===a||!a.property_id)return;if(null!==(n=wpmDataLayer)&&void 0!==n&&null!==(i=n.pixels)&&void 0!==i&&null!==(l=i.google)&&void 0!==l&&null!==(s=l.analytics)&&void 0!==s&&null!==(d=s.universal)&&void 0!==d&&d.mp_active)return;if(!wpm.googleConfigConditionsMet("analytics"))return;wpm.gtagLoaded().then((function(){gtag("event","purchase",{send_to:[wpmDataLayer.pixels.google.analytics.universal.property_id],transaction_id:wpmDataLayer.order.number,affiliation:wpmDataLayer.order.affiliation,currency:wpmDataLayer.order.currency,value:wpmDataLayer.order.value_regular,discount:wpmDataLayer.order.discount,tax:wpmDataLayer.order.tax,shipping:wpmDataLayer.order.shipping,coupon:wpmDataLayer.order.coupon,items:wpm.getGAUAOrderItems()})}))}catch(e){console.error(e)}}))},6019:()=>{!function(e,t,o){e.getGAUAOrderItems=function(){let t=[];for(const[a,n]of Object.entries(wpmDataLayer.order.items)){var o,r;let a;a={quantity:n.quantity,price:n.price,name:n.name,currency:wpmDataLayer.order.currency,category:wpmDataLayer.products[n.id].category.join("/")},null!==(o=wpmDataLayer)&&void 0!==o&&null!==(r=o.general)&&void 0!==r&&r.variationsOutput&&0!==n.variation_id?(a.id=String(wpmDataLayer.products[n.variation_id].dyn_r_ids[wpmDataLayer.pixels.google.analytics.id_type]),a.variant=wpmDataLayer.products[n.variation_id].variant_name,a.brand=wpmDataLayer.products[n.variation_id].brand):(a.id=String(wpmDataLayer.products[n.id].dyn_r_ids[wpmDataLayer.pixels.google.analytics.id_type]),a.brand=wpmDataLayer.products[n.id].brand),a=e.ga3AddListNameToProduct(a),t.push(a)}return t},e.ga3AddListNameToProduct=function(e){let t=arguments.length>1&&arguments[1]!==o?arguments[1]:null;return e.list_name=wpmDataLayer.shop.list_name,t&&(e.list_position=t),e}}(window.wpm=window.wpm||{},jQuery)},562:(e,t,o)=>{o(6019),o(3625)},7572:()=>{jQuery(document).on("wpmOrderReceivedPage",(function(){try{var e,t,o,r,a,n,i,l,s,d;if(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(o=t.google)||void 0===o||null===(r=o.analytics)||void 0===r||null===(a=r.ga4)||void 0===a||!a.measurement_id)return;if(null!==(n=wpmDataLayer)&&void 0!==n&&null!==(i=n.pixels)&&void 0!==i&&null!==(l=i.google)&&void 0!==l&&null!==(s=l.analytics)&&void 0!==s&&null!==(d=s.ga4)&&void 0!==d&&d.mp_active)return;if(!wpm.googleConfigConditionsMet("analytics"))return;wpm.gtagLoaded().then((function(){gtag("event","purchase",{send_to:[wpmDataLayer.pixels.google.analytics.ga4.measurement_id],transaction_id:wpmDataLayer.order.number,affiliation:wpmDataLayer.order.affiliation,currency:wpmDataLayer.order.currency,value:wpmDataLayer.order.value_regular,discount:wpmDataLayer.order.discount,tax:wpmDataLayer.order.tax,shipping:wpmDataLayer.order.shipping,coupon:wpmDataLayer.order.coupon,items:wpm.getGA4OrderItems()})}))}catch(e){console.error(e)}}))},6228:()=>{!function(e,t,o){e.getGA4OrderItems=function(){let e=[];for(const[r,a]of Object.entries(wpmDataLayer.order.items)){var t,o;let r;r={quantity:a.quantity,price:a.price,item_name:a.name,currency:wpmDataLayer.order.currency,item_category:wpmDataLayer.products[a.id].category.join("/")},null!==(t=wpmDataLayer)&&void 0!==t&&null!==(o=t.general)&&void 0!==o&&o.variationsOutput&&0!==a.variation_id?(r.item_id=String(wpmDataLayer.products[a.variation_id].dyn_r_ids[wpmDataLayer.pixels.google.analytics.id_type]),r.item_variant=wpmDataLayer.products[a.variation_id].variant_name,r.item_brand=wpmDataLayer.products[a.variation_id].brand):(r.item_id=String(wpmDataLayer.products[a.id].dyn_r_ids[wpmDataLayer.pixels.google.analytics.id_type]),r.item_brand=wpmDataLayer.products[a.id].brand),e.push(r)}return e}}(window.wpm=window.wpm||{},jQuery)},8522:(e,t,o)=>{o(6228),o(7572)},6774:(e,t,o)=>{o(562),o(8522)},9294:()=>{jQuery(document).on("wpmLoadPixels",(function(){var e,t,o;void 0===(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(o=t.google)||void 0===o?void 0:o.state)&&(wpm.canGoogleLoad()?wpm.loadGoogle():wpm.logPreventedPixelLoading("google","analytics / ads"))}))},9860:(e,t,o)=>{"use strict";o.r(t),o(3647),function(e,t,o){e.googleConfigConditionsMet=function(t){var o,r,a,n;return!(null===(o=wpmDataLayer)||void 0===o||null===(r=o.pixels)||void 0===r||null===(a=r.google)||void 0===a||null===(n=a.consent_mode)||void 0===n||!n.active)||("category"===e.getConsentValues().mode?!0===e.getConsentValues().categories[t]:"pixel"===e.getConsentValues().mode&&e.getConsentValues().pixels.includes("google-"+t))},e.getVisitorConsentStatusAndUpdateGoogleConsentSettings=function(t){return"category"===e.getConsentValues().mode?(e.getConsentValues().categories.analytics&&(t.analytics_storage="granted"),e.getConsentValues().categories.ads&&(t.ad_storage="granted")):"pixel"===e.getConsentValues().mode&&(t.analytics_storage=e.getConsentValues().pixels.includes("google-analytics")?"granted":"denied",t.ad_storage=e.getConsentValues().pixels.includes("google-ads")?"granted":"denied"),t},e.updateGoogleConsentMode=function(){let e=!(arguments.length>0&&arguments[0]!==o)||arguments[0],t=!(arguments.length>1&&arguments[1]!==o)||arguments[1];try{if(!window.gtag||!wpmDataLayer.shop.cookie_consent_mgmt.explicit_consent)return;gtag("consent","update",{analytics_storage:e?"granted":"denied",ad_storage:t?"granted":"denied"})}catch(e){console.error(e)}},e.fireGtagGoogleAds=function(){try{var e,t,o,r,a,n,i,l,s,d,c,u,p,m,g,w,y,v,f,_,h,L,b;if(wpmDataLayer.pixels.google.ads.state="loading",null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.pixels)&&void 0!==t&&null!==(o=t.google)&&void 0!==o&&null!==(r=o.ads)&&void 0!==r&&null!==(a=r.enhanced_conversions)&&void 0!==a&&a.active)for(const[e,t]of Object.entries(wpmDataLayer.pixels.google.ads.conversionIds))gtag("config",e,{allow_enhanced_conversions:!0});else for(const[e,t]of Object.entries(wpmDataLayer.pixels.google.ads.conversionIds))gtag("config",e);null!==(n=wpmDataLayer)&&void 0!==n&&null!==(i=n.pixels)&&void 0!==i&&null!==(l=i.google)&&void 0!==l&&null!==(s=l.ads)&&void 0!==s&&s.conversionIds&&null!==(d=wpmDataLayer)&&void 0!==d&&null!==(c=d.pixels)&&void 0!==c&&null!==(u=c.google)&&void 0!==u&&null!==(p=u.ads)&&void 0!==p&&p.phone_conversion_label&&null!==(m=wpmDataLayer)&&void 0!==m&&null!==(g=m.pixels)&&void 0!==g&&null!==(w=g.google)&&void 0!==w&&null!==(y=w.ads)&&void 0!==y&&y.phone_conversion_number&&gtag("config",Object.keys(wpmDataLayer.pixels.google.ads.conversionIds)[0]+"/"+wpmDataLayer.pixels.google.ads.phone_conversion_label,{phone_conversion_number:wpmDataLayer.pixels.google.ads.phone_conversion_number}),null!==(v=wpmDataLayer)&&void 0!==v&&null!==(f=v.shop)&&void 0!==f&&f.page_type&&"order_received_page"===wpmDataLayer.shop.page_type&&null!==(_=wpmDataLayer)&&void 0!==_&&null!==(h=_.order)&&void 0!==h&&null!==(L=h.google)&&void 0!==L&&null!==(b=L.ads)&&void 0!==b&&b.enhanced_conversion_data&&gtag("set","user_data",wpmDataLayer.order.google.ads.enhanced_conversion_data),wpmDataLayer.pixels.google.ads.state="ready"}catch(e){console.error(e)}},e.fireGtagGoogleAnalyticsUA=function(){try{wpmDataLayer.pixels.google.analytics.universal.state="loading",gtag("config",wpmDataLayer.pixels.google.analytics.universal.property_id,wpmDataLayer.pixels.google.analytics.universal.parameters),wpmDataLayer.pixels.google.analytics.universal.state="ready"}catch(e){console.error(e)}},e.fireGtagGoogleAnalyticsGA4=function(){try{var e,t,o,r,a;wpmDataLayer.pixels.google.analytics.ga4.state="loading";let n=wpmDataLayer.pixels.google.analytics.ga4.parameters;null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.pixels)&&void 0!==t&&null!==(o=t.google)&&void 0!==o&&null!==(r=o.analytics)&&void 0!==r&&null!==(a=r.ga4)&&void 0!==a&&a.debug_mode&&(n.debug_mode=!0),gtag("config",wpmDataLayer.pixels.google.analytics.ga4.measurement_id,n),wpmDataLayer.pixels.google.analytics.ga4.state="ready"}catch(e){console.error(e)}},e.isGoogleActive=function(){var e,t,o,r,a,n,i,l,s,d,c,u,p,m;return!(!(null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.pixels)&&void 0!==t&&null!==(o=t.google)&&void 0!==o&&null!==(r=o.analytics)&&void 0!==r&&null!==(a=r.universal)&&void 0!==a&&a.property_id||null!==(n=wpmDataLayer)&&void 0!==n&&null!==(i=n.pixels)&&void 0!==i&&null!==(l=i.google)&&void 0!==l&&null!==(s=l.analytics)&&void 0!==s&&null!==(d=s.ga4)&&void 0!==d&&d.measurement_id)&&jQuery.isEmptyObject(null===(c=wpmDataLayer)||void 0===c||null===(u=c.pixels)||void 0===u||null===(p=u.google)||void 0===p||null===(m=p.ads)||void 0===m?void 0:m.conversionIds))},e.getGoogleGtagId=function(){var e,t,o,r,a,n,i,l,s,d;return null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.pixels)&&void 0!==t&&null!==(o=t.google)&&void 0!==o&&null!==(r=o.analytics)&&void 0!==r&&null!==(a=r.universal)&&void 0!==a&&a.property_id?wpmDataLayer.pixels.google.analytics.universal.property_id:null!==(n=wpmDataLayer)&&void 0!==n&&null!==(i=n.pixels)&&void 0!==i&&null!==(l=i.google)&&void 0!==l&&null!==(s=l.analytics)&&void 0!==s&&null!==(d=s.ga4)&&void 0!==d&&d.measurement_id?wpmDataLayer.pixels.google.analytics.ga4.measurement_id:Object.keys(wpmDataLayer.pixels.google.ads.conversionIds)[0]},e.loadGoogle=function(){e.isGoogleActive()&&(wpmDataLayer.pixels.google.state="loading",e.loadScriptAndCacheIt("https://www.googletagmanager.com/gtag/js?id="+e.getGoogleGtagId()).then((function(t,o){try{var r,a,n,i,l,s,d,c,u,p,m,g,w,y,v,f,_,h,L,b,D,k;if(window.dataLayer=window.dataLayer||[],window.gtag=function(){dataLayer.push(arguments)},null!==(r=wpmDataLayer)&&void 0!==r&&null!==(a=r.pixels)&&void 0!==a&&null!==(n=a.google)&&void 0!==n&&null!==(i=n.consent_mode)&&void 0!==i&&i.active){var x,C,j,S;let t={ad_storage:wpmDataLayer.pixels.google.consent_mode.ad_storage,analytics_storage:wpmDataLayer.pixels.google.consent_mode.analytics_storage,wait_for_update:wpmDataLayer.pixels.google.consent_mode.wait_for_update};null!==(x=wpmDataLayer)&&void 0!==x&&null!==(C=x.pixels)&&void 0!==C&&null!==(j=C.google)&&void 0!==j&&null!==(S=j.consent_mode)&&void 0!==S&&S.region&&(t.region=wpmDataLayer.pixels.google.consent_mode.region),t=e.getVisitorConsentStatusAndUpdateGoogleConsentSettings(t),gtag("consent","default",t),gtag("set","ads_data_redaction",wpmDataLayer.pixels.google.consent_mode.ads_data_redaction),gtag("set","url_passthrough",wpmDataLayer.pixels.google.consent_mode.url_passthrough)}null!==(l=wpmDataLayer)&&void 0!==l&&null!==(s=l.pixels)&&void 0!==s&&null!==(d=s.google)&&void 0!==d&&null!==(c=d.linker)&&void 0!==c&&c.settings&&gtag("set","linker",wpmDataLayer.pixels.google.linker.settings),gtag("js",new Date),jQuery.isEmptyObject(null===(u=wpmDataLayer)||void 0===u||null===(p=u.pixels)||void 0===p||null===(m=p.google)||void 0===m||null===(g=m.ads)||void 0===g?void 0:g.conversionIds)||(e.googleConfigConditionsMet("ads")?e.fireGtagGoogleAds():e.logPreventedPixelLoading("google-ads","ads")),null!==(w=wpmDataLayer)&&void 0!==w&&null!==(y=w.pixels)&&void 0!==y&&null!==(v=y.google)&&void 0!==v&&null!==(f=v.analytics)&&void 0!==f&&null!==(_=f.universal)&&void 0!==_&&_.property_id&&(e.googleConfigConditionsMet("analytics")?e.fireGtagGoogleAnalyticsUA():e.logPreventedPixelLoading("google-universal-analytics","analytics")),null!==(h=wpmDataLayer)&&void 0!==h&&null!==(L=h.pixels)&&void 0!==L&&null!==(b=L.google)&&void 0!==b&&null!==(D=b.analytics)&&void 0!==D&&null!==(k=D.ga4)&&void 0!==k&&k.measurement_id&&(e.googleConfigConditionsMet("analytics")?e.fireGtagGoogleAnalyticsGA4():e.logPreventedPixelLoading("ga4","analytics")),wpmDataLayer.pixels.google.state="ready"}catch(e){console.error(e)}})))},e.canGoogleLoad=function(){var t,o,r,a;return!(null===(t=wpmDataLayer)||void 0===t||null===(o=t.pixels)||void 0===o||null===(r=o.google)||void 0===r||null===(a=r.consent_mode)||void 0===a||!a.active)||("category"===e.getConsentValues().mode?!(!e.getConsentValues().categories.ads&&!e.getConsentValues().categories.analytics):"pixel"===e.getConsentValues().mode?e.getConsentValues().pixels.includes("google-ads")||e.getConsentValues().pixels.includes("google-analytics"):(console.error("Couldn't find a valid load condition for Google mode in wpmConsentValues"),!1))},e.gtagLoaded=function(){return new Promise((function(e,t){var o,r,a;void 0===(null===(o=wpmDataLayer)||void 0===o||null===(r=o.pixels)||void 0===r||null===(a=r.google)||void 0===a?void 0:a.state)&&t();let n=0;!function o(){var r,a,i;return"ready"===(null===(r=wpmDataLayer)||void 0===r||null===(a=r.pixels)||void 0===a||null===(i=a.google)||void 0===i?void 0:i.state)?e():n>=5e3?t():(n+=200,void setTimeout(o,200))}()}))}}(window.wpm=window.wpm||{},jQuery)},1580:(e,t,o)=>{o(9860),o(9294)},8069:(e,t,o)=>{o(1580),o(5190),o(6774),o(3463)},1945:()=>{jQuery(document).on("wpmLoadPixels",(function(){var e,t,o,r,a,n,i,l;null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(o=t.google)||void 0===o||null===(r=o.optimize)||void 0===r||!r.container_id||null!==(a=wpmDataLayer)&&void 0!==a&&null!==(n=a.pixels)&&void 0!==n&&null!==(i=n.google)&&void 0!==i&&null!==(l=i.optimize)&&void 0!==l&&l.loaded||wpm.canIFire("analytics","google-optimize")&&wpm.load_google_optimize_pixel()}))},8962:()=>{!function(e,t,o){e.load_google_optimize_pixel=function(){try{wpmDataLayer.pixels.google.optimize.loaded=!0,e.loadScriptAndCacheIt("https://www.googleoptimize.com/optimize.js?id="+wpmDataLayer.pixels.google.optimize.container_id)}catch(e){console.error(e)}}}(window.wpm=window.wpm||{},jQuery)},3463:(e,t,o)=>{o(8962),o(1945)},2300:()=>{jQuery(document).on("wpmLoadPixels",(function(){var e,t,o,r,a,n,i,l,s;null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(o=t.hotjar)||void 0===o||!o.site_id||null!==(r=wpmDataLayer)&&void 0!==r&&null!==(a=r.pixels)&&void 0!==a&&null!==(n=a.hotjar)&&void 0!==n&&n.loaded||!wpm.canIFire("analytics","hotjar")||null!==(i=wpmDataLayer)&&void 0!==i&&null!==(l=i.pixels)&&void 0!==l&&null!==(s=l.hotjar)&&void 0!==s&&s.loaded||wpm.load_hotjar_pixel()}))},2376:()=>{!function(e,t,o){e.load_hotjar_pixel=function(){try{wpmDataLayer.pixels.hotjar.loaded=!0,e=window,t=document,e.hj=e.hj||function(){(e.hj.q=e.hj.q||[]).push(arguments)},e._hjSettings={hjid:wpmDataLayer.pixels.hotjar.site_id,hjsv:6},o=t.getElementsByTagName("head")[0],(r=t.createElement("script")).async=1,r.src="https://static.hotjar.com/c/hotjar-"+e._hjSettings.hjid+".js?sv="+e._hjSettings.hjsv,o.appendChild(r)}catch(e){console.error(e)}var e,t,o,r}}(window.wpm=window.wpm||{},jQuery)},8787:(e,t,o)=>{o(2376),o(2300)},473:(e,t,o)=>{"use strict";o.r(t),o(3647),function(e,t,o){let r=()=>{let t=e.getCookie("cmplz_statistics"),o=e.getCookie("cmplz_marketing");return!(!e.getCookie("cmplz_consent_status")&&!e.getCookie("cmplz_banner-status"))&&{analytics:"allow"===t,ads:"allow"===o,visitorHasChosen:!0}},a=()=>{let t=e.getCookie("cookielawinfo-checkbox-analytics")||e.getCookie("cookielawinfo-checkbox-analytiques"),o=e.getCookie("cookielawinfo-checkbox-advertisement")||e.getCookie("cookielawinfo-checkbox-performance")||e.getCookie("cookielawinfo-checkbox-publicite"),r=e.getCookie("CookieLawInfoConsent");return!(!t&&!o)&&{analytics:"yes"===t,ads:"yes"===o,visitorHasChosen:!!r}},n={categories:{},pixels:[],mode:"category",visitorHasChosen:!1};e.getConsentValues=()=>n,e.setConsentValueCategories=function(){let e=arguments.length>0&&arguments[0]!==o&&arguments[0],t=arguments.length>1&&arguments[1]!==o&&arguments[1];n.categories.analytics=e,n.categories.ads=t},e.updateConsentCookieValues=function(){let t,i=arguments.length>0&&arguments[0]!==o?arguments[0]:null,l=arguments.length>1&&arguments[1]!==o?arguments[1]:null,s=arguments.length>2&&arguments[2]!==o&&arguments[2];if(i||l)i&&(n.categories.analytics=!!i),l&&(n.categories.ads=!!l);else if(t=e.getCookie("CookieConsent"))t=decodeURI(t),n.categories.analytics=t.indexOf("statistics:true")>=0,n.categories.ads=t.indexOf("marketing:true")>=0,n.visitorHasChosen=!0;else if(t=e.getCookie("CookieScriptConsent"))t=JSON.parse(t),"reject"===t.action?(n.categories.analytics=!1,n.categories.ads=!1):2===t.categories.length?(n.categories.analytics=!0,n.categories.ads=!0):(n.categories.analytics=t.categories.indexOf("performance")>=0,n.categories.ads=t.categories.indexOf("targeting")>=0),n.visitorHasChosen=!0;else if(t=e.getCookie("borlabs-cookie")){var d,c,u,p,m,g,w,y;t=decodeURI(t),t=JSON.parse(t),n.categories.analytics=!(null===(d=t)||void 0===d||null===(c=d.consents)||void 0===c||!c.statistics),n.categories.ads=!(null===(u=t)||void 0===u||null===(p=u.consents)||void 0===p||!p.marketing),n.visitorHasChosen=!0,n.pixels=[...(null===(m=t)||void 0===m||null===(g=m.consents)||void 0===g?void 0:g.statistics)||[],...(null===(w=t)||void 0===w||null===(y=w.consents)||void 0===y?void 0:y.marketing)||[]],n.mode="pixel"}else(t=r())?(n.categories.analytics=!0===t.analytics,n.categories.ads=!0===t.ads,n.visitorHasChosen=t.visitorHasChosen):(t=e.getCookie("cookie_notice_accepted"))?(n.categories.analytics=!0,n.categories.ads=!0,n.visitorHasChosen=!0):(t=e.getCookie("hu-consent"))?(t=JSON.parse(t),n.categories.analytics=!!t.categories[3],n.categories.ads=!!t.categories[4],n.visitorHasChosen=!0):(t=a())?(n.categories.analytics=!0===t.analytics,n.categories.ads=!0===t.ads,n.visitorHasChosen=!0===t.visitorHasChosen):(t=e.getCookie("moove_gdpr_popup"))?(t=JSON.parse(t),n.categories.analytics="1"===t.thirdparty,n.categories.ads="1"===t.advanced,n.visitorHasChosen=!0):(n.categories.analytics=!s,n.categories.ads=!s)},e.updateConsentCookieValues(),e.setConsentDefaultValuesToExplicit=()=>{n.categories={analytics:!1,ads:!1}},e.canIFire=(t,o)=>{let r;return"category"===n.mode?r=!!n.categories[t]:"pixel"===n.mode?(r=n.pixels.includes(o),!1===r&&"microsoft-ads"===o&&(r=n.pixels.includes("bing-ads"))):(console.error("Couldn't find a valid consent mode in wpmConsentValues"),r=!1),!!r||(e.logPreventedPixelLoading(o,t),!1)},e.logPreventedPixelLoading=(e,t)=>{var o,r,a;null!==(o=wpmDataLayer)&&void 0!==o&&null!==(r=o.shop)&&void 0!==r&&null!==(a=r.cookie_consent_mgmt)&&void 0!==a&&a.explicit_consent?console.log('Pixel Manager for WooCommerce: The "'+e+" (category: "+t+')" pixel has not fired because you have not given consent for it yet. (WPM is in explicit consent mode.)'):console.log('Pixel Manager for WooCommerce: The "'+e+" (category: "+t+')" pixel has not fired because you have removed consent for this pixel. (WPM is in implicit consent mode.)')},e.scriptTagObserver=new MutationObserver((o=>{o.forEach((o=>{let{addedNodes:r}=o;[...r].forEach((o=>{t(o).data("wpm-cookie-category")&&(e.shouldScriptBeActive(o)?e.unblockScript(o):e.blockScript(o))}))}))})),e.scriptTagObserver.observe(document.head,{childList:!0,subtree:!0}),document.addEventListener("DOMContentLoaded",(()=>e.scriptTagObserver.disconnect())),e.shouldScriptBeActive=e=>{var o,r,a,i;return!((wpmDataLayer.shop.cookie_consent_mgmt.explicit_consent||n.visitorHasChosen)&&("category"!==n.mode||!t(e).data("wpm-cookie-category").split(",").some((e=>n.categories[e])))&&("pixel"!==n.mode||!n.pixels.includes(t(e).data("wpm-pixel-name")))&&("pixel"!==n.mode||"google"!==t(e).data("wpm-pixel-name")||!["google-analytics","google-ads"].some((e=>n.pixels.includes(e))))&&(null===(o=wpmDataLayer)||void 0===o||null===(r=o.pixels)||void 0===r||null===(a=r.google)||void 0===a||null===(i=a.consent_mode)||void 0===i||!i.active||"google"!==t(e).data("wpm-pixel-name")))},e.unblockScript=function(e){let r=arguments.length>1&&arguments[1]!==o&&arguments[1];r&&t(e).remove();let a=t(e).data("wpm-src");a&&t(e).attr("src",a),e.type="text/javascript",r&&t(e).appendTo("head"),document.dispatchEvent(new Event("wpmPreLoadPixels"))},e.blockScript=function(e){let r=arguments.length>1&&arguments[1]!==o&&arguments[1];r&&t(e).remove(),t(e).attr("src")&&t(e).removeAttr("src"),e.type="blocked/javascript",r&&t(e).appendTo("head")},e.unblockAllScripts=function(){document.dispatchEvent(new Event("wpmPreLoadPixels"))},e.unblockSelectedPixels=()=>{document.dispatchEvent(new Event("wpmPreLoadPixels"))},document.addEventListener("borlabs-cookie-consent-saved",(()=>{e.updateConsentCookieValues(),"pixel"===n.mode?(e.unblockSelectedPixels(),e.updateGoogleConsentMode(n.pixels.includes("google-analytics"),n.pixels.includes("google-ads"))):(e.unblockAllScripts(n.categories.analytics,n.categories.ads),e.updateGoogleConsentMode(n.categories.analytics,n.categories.ads))})),document.addEventListener("CookiebotOnAccept",(()=>{Cookiebot.consent.statistics&&(n.categories.analytics=!0),Cookiebot.consent.marketing&&(n.categories.ads=!0),e.unblockAllScripts(n.categories.analytics,n.categories.ads),e.updateGoogleConsentMode(n.categories.analytics,n.categories.ads)}),!1),document.addEventListener("CookieScriptAccept",(t=>{t.detail.categories.includes("performance")&&(n.categories.analytics=!0),t.detail.categories.includes("targeting")&&(n.categories.ads=!0),e.unblockAllScripts(n.categories.analytics,n.categories.ads),e.updateGoogleConsentMode(n.categories.analytics,n.categories.ads)})),document.addEventListener("CookieScriptAcceptAll",(()=>{e.unblockAllScripts(!0,!0),e.updateGoogleConsentMode(!0,!0)})),e.cmplzStatusChange=t=>{t.detail.categories.includes("statistics")&&e.updateConsentCookieValues(!0,null),t.detail.categories.includes("marketing")&&e.updateConsentCookieValues(null,!0),e.unblockAllScripts(n.categories.analytics,n.categories.ads),e.updateGoogleConsentMode(n.categories.analytics,n.categories.ads)},document.addEventListener("cmplzStatusChange",e.cmplzStatusChange),document.addEventListener("cmplz_status_change",e.cmplzStatusChange),document.addEventListener("setCookieNotice",(()=>{e.updateConsentCookieValues(),e.unblockAllScripts(n.categories.analytics,n.categories.ads),e.updateGoogleConsentMode(n.categories.analytics,n.categories.ads)})),e.huObserver=new MutationObserver((t=>{t.forEach((t=>{let{addedNodes:o}=t;[...o].forEach((t=>{"hu"===t.id&&document.querySelector(".hu-cookies-save").addEventListener("click",(()=>{e.updateConsentCookieValues(),e.unblockAllScripts(n.categories.analytics,n.categories.ads),e.updateGoogleConsentMode(n.categories.analytics,n.categories.ads)}))}))}))})),window.hu&&e.huObserver.observe(document.documentElement||document.body,{childList:!0,subtree:!0}),e.explicitConsentStateAlreadySet=()=>{if(n.explicitConsentStateAlreadySet)return!0;n.explicitConsentStateAlreadySet=!0}}(window.wpm=window.wpm||{},jQuery)},3299:(e,t,o)=>{"use strict";o.r(t),o(3647),jQuery(document).on("click",".remove_from_cart_button, .remove",(e=>{try{let t=new URL(jQuery(e.currentTarget).attr("href")),o=wpm.getProductIdByCartItemKeyUrl(t);wpm.removeProductFromCart(o)}catch(e){console.error(e)}})),jQuery(document).on("click",".add_to_cart_button:not(.product_type_variable), .ajax_add_to_cart, .single_add_to_cart_button",(e=>{try{let t,o=1;"product"===wpmDataLayer.shop.page_type?(void 0!==jQuery(e.currentTarget).attr("href")&&jQuery(e.currentTarget).attr("href").includes("add-to-cart")&&(t=jQuery(e.currentTarget).data("product_id"),wpm.addProductToCart(t,o)),"simple"===wpmDataLayer.shop.product_type&&(o=Number(jQuery(".input-text.qty").val()),o||0===o||(o=1),t=jQuery(e.currentTarget).val(),wpm.addProductToCart(t,o)),["variable","variable-subscription"].indexOf(wpmDataLayer.shop.product_type)>=0&&(o=Number(jQuery(".input-text.qty").val()),o||0===o||(o=1),t=jQuery("[name='variation_id']").val(),wpm.addProductToCart(t,o)),"grouped"===wpmDataLayer.shop.product_type&&jQuery(".woocommerce-grouped-product-list-item").each(((e,r)=>{o=Number(jQuery(r).find(".input-text.qty").val()),o||0===o||(o=1);let a=jQuery(r).attr("class");t=wpm.getPostIdFromString(a),wpm.addProductToCart(t,o)})),"bundle"===wpmDataLayer.shop.product_type&&(o=Number(jQuery(".input-text.qty").val()),o||0===o||(o=1),t=jQuery("input[name=add-to-cart]").val(),wpm.addProductToCart(t,o))):(t=jQuery(e.currentTarget).data("product_id"),wpm.addProductToCart(t,o))}catch(e){console.error(e)}})),jQuery(document).one("click","a:not(.add_to_cart_button, .ajax_add_to_cart, .single_add_to_cart_button)",(e=>{try{if(jQuery(e.target).closest("a").attr("href")){let t=jQuery(e.target).closest("a").attr("href");if(t.includes("add-to-cart=")){let e=t.match(/(add-to-cart=)(\d+)/);e&&wpm.addProductToCart(e[2],1)}}}catch(e){console.error(e)}})),jQuery(document).on("click",".woocommerce-LoopProduct-link, .wc-block-grid__product, .product, .product-small, .type-product",(e=>{try{let t=jQuery(e.currentTarget).nextAll(".wpmProductId:first").data("id");if(t){if(t=wpm.getIdBasedOndVariationsOutputSetting(t),!t)throw Error("Wasn't able to retrieve a productId");if(wpmDataLayer.products&&wpmDataLayer.products[t]){let e=wpm.getProductDetailsFormattedForEvent(t);jQuery(document).trigger("wpmSelectContentGaUa",e),jQuery(document).trigger("wpmSelectItem",e)}}}catch(e){console.error(e)}})),jQuery(document).one("click",[".checkout-button",".cart-checkout-button",".button.checkout",".xoo-wsc-ft-btn-checkout",".elementor-button--checkout"].join(","),(()=>{jQuery(document).trigger("wpmBeginCheckout")})),jQuery(document).on("input","#billing_email",(e=>{wpm.isEmail(jQuery(e.currentTarget).val())&&(wpm.fireCheckoutProgress(2),wpm.emailSelected=!0)})),jQuery(document).on("click",".wc_payment_methods",(()=>{!1===wpm.paymentMethodSelected&&wpm.fireCheckoutProgress(3),wpm.fireCheckoutOption(3,jQuery("input[name='payment_method']:checked").val()),wpm.paymentMethodSelected=!0})),jQuery(document).one("click","#place_order",(()=>{!1===wpm.emailSelected&&wpm.fireCheckoutProgress(2),!1===wpm.paymentMethodSelected&&(wpm.fireCheckoutProgress(3),wpm.fireCheckoutOption(3,jQuery("input[name='payment_method']:checked").val())),wpm.fireCheckoutProgress(4)})),jQuery(document).on("click","[name='update_cart']",(e=>{try{jQuery(".cart_item").each(((e,t)=>{let o=new URL(jQuery(t).find(".product-remove").find("a").attr("href")),r=wpm.getProductIdByCartItemKeyUrl(o),a=jQuery(t).find(".qty").val();0===a?wpm.removeProductFromCart(r):a<wpmDataLayer.cart[r].quantity?wpm.removeProductFromCart(r,wpmDataLayer.cart[r].quantity-a):a>wpmDataLayer.cart[r].quantity&&wpm.addProductToCart(r,a-wpmDataLayer.cart[r].quantity)}))}catch(e){console.error(e),wpm.getCartItemsFromBackend()}})),jQuery((function(){jQuery(".add_to_wishlist,.wl-add-to").on("click",(e=>{try{let t;if(jQuery(e.currentTarget).data("productid")?t=jQuery(e.currentTarget).data("productid"):jQuery(e.currentTarget).data("product-id")&&(t=jQuery(e.currentTarget).data("product-id")),!t)throw Error("Wasn't able to retrieve a productId");let o=wpm.getProductDetailsFormattedForEvent(t);jQuery(document).trigger("wpmAddToWishlist",o)}catch(e){console.error(e)}}))})),jQuery(document).on("updated_cart_totals",(()=>{jQuery(document).trigger("wpmViewCart")})),jQuery((()=>{jQuery(".single_variation_wrap").on("show_variation",((e,t)=>{try{let e=wpm.getIdBasedOndVariationsOutputSetting(t.variation_id);if(!e)throw Error("Wasn't able to retrieve a productId");wpm.triggerViewItemEventPrep(e)}catch(e){console.error(e)}}))})),jQuery(document).on("wpmLoad",(()=>{try{wpm.doesWooCommerceCartExist()&&wpm.getCartItems()}catch(e){console.error(e)}})),jQuery(document).on("wpmLoad",(()=>{wpmDataLayer.products=wpmDataLayer.products||{};let e=wpm.getAddToCartLinkProductIds();wpm.getProductsFromBackend(e)})),jQuery(document).on("wpmLoad",(()=>{if(!wpm.getCookie("wpmReferrer")&&document.referrer){let e=new URL(document.referrer).hostname;e!==window.location.host&&wpm.setCookie("wpmReferrer",e)}})),jQuery(document).on("wpmLoad",(()=>{try{var e;if("undefined"!=typeof wpmDataLayer&&(null===(e=wpmDataLayer)||void 0===e||!e.wpmLoadFired)){var t,o,r;if(jQuery(document).trigger("wpmLoadAlways"),null!==(t=wpmDataLayer)&&void 0!==t&&t.shop)if("product"===wpmDataLayer.shop.page_type&&"variable"!==wpmDataLayer.shop.product_type&&wpm.getMainProductIdFromProductPage()){let e=wpm.getProductDataForViewItemEvent(wpm.getMainProductIdFromProductPage());jQuery(document).trigger("wpmViewItem",e)}else"product_category"===wpmDataLayer.shop.page_type?jQuery(document).trigger("wpmCategory"):"search"===wpmDataLayer.shop.page_type?jQuery(document).trigger("wpmSearch"):"cart"===wpmDataLayer.shop.page_type?jQuery(document).trigger("wpmViewCart"):"order_received_page"===wpmDataLayer.shop.page_type&&wpmDataLayer.order?wpm.isOrderIdStored(wpmDataLayer.order.id)||(jQuery(document).trigger("wpmOrderReceivedPage"),wpm.writeOrderIdToStorage(wpmDataLayer.order.id)):jQuery(document).trigger("wpmEverywhereElse");else jQuery(document).trigger("wpmEverywhereElse");null!==(o=wpmDataLayer)&&void 0!==o&&null!==(r=o.user)&&void 0!==r&&r.id&&!wpm.hasLoginEventFired()&&(jQuery(document).trigger("wpmLogin"),wpm.setLoginEventFired()),wpmDataLayer.wpmLoadFired=!0}}catch(e){console.error(e)}})),jQuery(document).on("wpmLoad",(async()=>{window.sessionStorage&&window.sessionStorage.getItem("_pmw_endpoint_available")&&!JSON.parse(window.sessionStorage.getItem("_pmw_endpoint_available"))&&console.error("Pixel Manager for WooCommerce: REST endpoint is not available. Using admin-ajax.php instead.")})),jQuery(document).on("wpmPreLoadPixels",(()=>{var e,t,o;null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.shop)&&void 0!==t&&null!==(o=t.cookie_consent_mgmt)&&void 0!==o&&o.explicit_consent&&!wpm.explicitConsentStateAlreadySet()&&wpm.updateConsentCookieValues(null,null,!0),jQuery(document).trigger("wpmLoadPixels",{})})),jQuery(document).on("wpmAddToCart",((e,t)=>{var o,r,a;let n={event:"addToCart",product:t};null!==(o=wpmDataLayer)&&void 0!==o&&null!==(r=o.pixels)&&void 0!==r&&null!==(a=r.facebook)&&void 0!==a&&a.loaded&&(n.facebook={event_name:"AddToCart",event_id:wpm.getFbRandomEventId(),user_data:wpm.getFbUserData(),event_source_url:window.location.href,custom_data:wpm.fbGetProductDataForCapiEvent(t)}),jQuery(document).trigger("wpmClientSideAddToCart",n),"function"==typeof wpm.sendEventPayloadToServer&&wpm.sendEventPayloadToServer(n)})),jQuery(document).on("wpmBeginCheckout",(()=>{var e,t,o;let r={event:"beginCheckout"};var a;null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.pixels)&&void 0!==t&&null!==(o=t.facebook)&&void 0!==o&&o.loaded&&(r.facebook={event_name:"InitiateCheckout",event_id:wpm.getFbRandomEventId(),user_data:wpm.getFbUserData(),event_source_url:window.location.href,custom_data:{}},null!==(a=wpmDataLayer)&&void 0!==a&&a.cart&&!jQuery.isEmptyObject(wpmDataLayer.cart)&&(r.facebook.custom_data={content_type:"product",content_ids:wpm.fbGetContentIdsFromCart(),value:wpm.getCartValue(),currency:wpmDataLayer.shop.currency})),jQuery(document).trigger("wpmClientSideBeginCheckout",r),"function"==typeof wpm.sendEventPayloadToServer&&wpm.sendEventPayloadToServer(r)})),jQuery(document).on("wpmAddToWishlist",((e,t)=>{var o,r,a;let n={event:"addToWishlist",product:t};null!==(o=wpmDataLayer)&&void 0!==o&&null!==(r=o.pixels)&&void 0!==r&&null!==(a=r.facebook)&&void 0!==a&&a.loaded&&(n.facebook={event_name:"AddToWishlist",event_id:wpm.getFbRandomEventId(),user_data:wpm.getFbUserData(),event_source_url:window.location.href,custom_data:wpm.fbGetProductDataForCapiEvent(t)}),jQuery(document).trigger("wpmClientSideAddToWishlist",n),"function"==typeof wpm.sendEventPayloadToServer&&wpm.sendEventPayloadToServer(n)})),jQuery(document).on("wpmViewItem",(function(e){var t,o,r;let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n={event:"viewItem",product:a};null!==(t=wpmDataLayer)&&void 0!==t&&null!==(o=t.pixels)&&void 0!==o&&null!==(r=o.facebook)&&void 0!==r&&r.loaded&&(n.facebook={event_name:"ViewContent",event_id:wpm.getFbRandomEventId(),user_data:wpm.getFbUserData(),event_source_url:window.location.href,custom_data:{}},a&&(n.facebook.custom_data=wpm.fbGetProductDataForCapiEvent(a))),jQuery(document).trigger("wpmClientSideViewItem",n),"function"==typeof wpm.sendEventPayloadToServer&&wpm.sendEventPayloadToServer(n)})),jQuery(document).on("wpmSearch",(()=>{var e,t,o;let r={event:"search"};null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.pixels)&&void 0!==t&&null!==(o=t.facebook)&&void 0!==o&&o.loaded&&(r.facebook={event_name:"Search",event_id:wpm.getFbRandomEventId(),user_data:wpm.getFbUserData(),event_source_url:window.location.href,custom_data:{search_string:wpm.getSearchTermFromUrl()}}),jQuery(document).trigger("wpmClientSideSearch",r),"function"==typeof wpm.sendEventPayloadToServer&&wpm.sendEventPayloadToServer(r)})),jQuery(document).on("wpmOrderReceivedPage",(()=>{var e,t,o;let r={event:"orderReceived"};null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.pixels)&&void 0!==t&&null!==(o=t.facebook)&&void 0!==o&&o.loaded&&(r.facebook={event_name:"Purchase",event_id:wpmDataLayer.order.id,user_data:wpm.getFbUserData(),event_source_url:window.location.href,custom_data:{content_type:"product",value:wpmDataLayer.order.value_filtered,currency:wpmDataLayer.order.currency,content_ids:wpm.facebookContentIds()}}),jQuery(document).trigger("wpmClientSideOrderReceivedPage",r)}))},9584:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__);var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(3647);(function(wpm,$,undefined){const wpmDeduper={keyName:"_wpm_order_ids",cookieExpiresDays:365},wpmRestSettings={cookiePmwRestEndpointAvailable:"_pmw_endpoint_available",restEndpointPost:"pmw/v1/test/post/",restFails:0,restFailsThreshold:10};function checkCookie(){return""!==wpm.getCookie(wpmDeduper.keyName)}wpm.emailSelected=!1,wpm.paymentMethodSelected=!1,wpm.useRestEndpoint=()=>wpm.isSessionStorageAvailable()&&wpm.isRestEndpointAvailable()&&wpm.isBelowRestErrorThreshold(),wpm.isBelowRestErrorThreshold=()=>window.sessionStorage.getItem(wpmRestSettings.restFails)<=wpmRestSettings.restFailsThreshold,wpm.isRestEndpointAvailable=async()=>window.sessionStorage.getItem(wpmRestSettings.cookiePmwRestEndpointAvailable)?JSON.parse(window.sessionStorage.getItem(wpmRestSettings.cookiePmwRestEndpointAvailable)):await wpm.testEndpoint(),wpm.isSessionStorageAvailable=()=>!!window.sessionStorage,wpm.testEndpoint=async function(){let e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:wpm.root+wpmRestSettings.restEndpointPost,t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:wpmRestSettings.cookiePmwRestEndpointAvailable,o=await fetch(e,{method:"POST",mode:"cors",cache:"no-cache",keepalive:!0});return 200===o.status?(window.sessionStorage.setItem(t,JSON.stringify(!0)),!0):404===o.status||0===o.status?(window.sessionStorage.setItem(t,JSON.stringify(!1)),!1):void 0},wpm.isWpmRestEndpointAvailable=function(){let e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:wpmRestSettings.cookiePmwRestEndpointAvailable;return!!wpm.getCookie(e)},wpm.writeOrderIdToStorage=function(e){if(window.Storage)if(null===localStorage.getItem(wpmDeduper.keyName)){let t=[];t.push(e),window.localStorage.setItem(wpmDeduper.keyName,JSON.stringify(t))}else{let t=JSON.parse(localStorage.getItem(wpmDeduper.keyName));t.includes(e)||(t.push(e),window.localStorage.setItem(wpmDeduper.keyName,JSON.stringify(t)))}else{let t=new Date;t.setDate(t.getDate()+wpmDeduper.cookieExpiresDays);let o=[];checkCookie()&&(o=JSON.parse(wpm.getCookie(wpmDeduper.keyName))),o.includes(e)||(o.push(e),document.cookie=wpmDeduper.keyName+"="+JSON.stringify(o)+";expires="+t.toUTCString())}"function"==typeof wpm.storeOrderIdOnServer&&wpmDataLayer.orderDeduplication&&wpm.storeOrderIdOnServer(e)},wpm.isOrderIdStored=e=>wpmDataLayer.orderDeduplication?window.Storage?null!==localStorage.getItem(wpmDeduper.keyName)&&JSON.parse(localStorage.getItem(wpmDeduper.keyName)).includes(e):!!checkCookie()&&JSON.parse(wpm.getCookie(wpmDeduper.keyName)).includes(e):(console.log("order duplication prevention: off"),!1),wpm.isEmail=e=>/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e),wpm.removeProductFromCart=function(e){let t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;try{if(!e)throw Error("Wasn't able to retrieve a productId");if(!(e=wpm.getIdBasedOndVariationsOutputSetting(e)))throw Error("Wasn't able to retrieve a productId");let o;if(o=null==t?wpmDataLayer.cart[e].quantity:t,wpmDataLayer.cart[e]){let r=wpm.getProductDetailsFormattedForEvent(e,o);jQuery(document).trigger("wpmRemoveFromCart",r),null==t||wpmDataLayer.cart[e].quantity===t?(delete wpmDataLayer.cart[e],sessionStorage&&sessionStorage.setItem("wpmDataLayerCart",JSON.stringify(wpmDataLayer.cart))):(wpmDataLayer.cart[e].quantity=wpmDataLayer.cart[e].quantity-o,sessionStorage&&sessionStorage.setItem("wpmDataLayerCart",JSON.stringify(wpmDataLayer.cart)))}}catch(e){console.error(e)}},wpm.getIdBasedOndVariationsOutputSetting=e=>{try{var t,o;return null!==(t=wpmDataLayer)&&void 0!==t&&null!==(o=t.general)&&void 0!==o&&o.variationsOutput?e:wpmDataLayer.products[e].isVariation?wpmDataLayer.products[e].parentId:e}catch(e){console.error(e)}},wpm.addProductToCart=(e,t)=>{try{var o;if(!e)throw Error("Wasn't able to retrieve a productId");if(!(e=wpm.getIdBasedOndVariationsOutputSetting(e)))throw Error("Wasn't able to retrieve a productId");if(null!==(o=wpmDataLayer)&&void 0!==o&&o.products[e]){var r;let o=wpm.getProductDetailsFormattedForEvent(e,t);jQuery(document).trigger("wpmAddToCart",o),null!==(r=wpmDataLayer)&&void 0!==r&&r.cart[e]?wpmDataLayer.cart[e].quantity=wpmDataLayer.cart[e].quantity+t:("cart"in wpmDataLayer||(wpmDataLayer.cart={}),wpmDataLayer.cart[e]=wpm.getProductDetailsFormattedForEvent(e,t)),sessionStorage&&sessionStorage.setItem("wpmDataLayerCart",JSON.stringify(wpmDataLayer.cart))}}catch(e){console.error(e),wpm.getCartItemsFromBackend()}},wpm.getCartItems=()=>{sessionStorage?sessionStorage.getItem("wpmDataLayerCart")&&"order_received_page"!==wpmDataLayer.shop.page_type?wpm.saveCartObjectToDataLayer(JSON.parse(sessionStorage.getItem("wpmDataLayerCart"))):sessionStorage.setItem("wpmDataLayerCart",JSON.stringify({})):wpm.getCartItemsFromBackend()},wpm.getCartItemsFromBackend=()=>{try{fetch(wpm.ajax_url,{method:"POST",cache:"no-cache",body:new URLSearchParams({action:"pmw_get_cart_items"}),keepalive:!0}).then((e=>{if(e.ok)return e.json();throw Error("Error getting cart items from backend")})).then((e=>{if(!e.success)throw Error("Error getting cart items from backend");e.data.cart||(e.data.cart={}),wpm.saveCartObjectToDataLayer(e.data.cart),sessionStorage&&sessionStorage.setItem("wpmDataLayerCart",JSON.stringify(e.data.cart))}))}catch(e){console.error(e)}},wpm.getProductsFromBackend=async e=>{var t;if(null!==(t=wpmDataLayer)&&void 0!==t&&t.products&&(e=e.filter((e=>!wpmDataLayer.products.hasOwnProperty(e)))),e&&0!==e.length){try{let t;if(t=await wpm.isRestEndpointAvailable()?await fetch(wpm.root+"pmw/v1/products/",{method:"POST",cache:"no-cache",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}):await fetch(wpm.ajax_url,{method:"POST",cache:"no-cache",body:new URLSearchParams({action:"pmw_get_product_ids",productIds:e})}),t.ok){let e=await t.json();e.success&&(wpmDataLayer.products=Object.assign({},wpmDataLayer.products,e.data))}else console.error("Error getting products from backend")}catch(e){console.error(e)}return!0}},wpm.saveCartObjectToDataLayer=e=>{wpmDataLayer.cart=e,wpmDataLayer.products=Object.assign({},wpmDataLayer.products,e)},wpm.triggerViewItemEventPrep=async e=>{wpmDataLayer.products&&wpmDataLayer.products[e]||await wpm.getProductsFromBackend([e]),wpm.triggerViewItemEvent(e)},wpm.triggerViewItemEvent=e=>{let t=wpm.getProductDetailsFormattedForEvent(e);jQuery(document).trigger("wpmViewItem",t)},wpm.triggerViewItemEventNoProduct=()=>{jQuery(document).trigger("wpmViewItem")},wpm.fireCheckoutOption=function(e){let t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null,o=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null,r={step:e,checkout_option:t,value:o};jQuery(document).trigger("wpmFireCheckoutOption",r)},wpm.fireCheckoutProgress=e=>{let t={step:e};jQuery(document).trigger("wpmFireCheckoutProgress",t)},wpm.getPostIdFromString=e=>{try{return e.match(/(post-)(\d+)/)[2]}catch(e){console.error(e)}},wpm.triggerViewItemList=e=>{if(!e)throw Error("Wasn't able to retrieve a productId");if(!(e=wpm.getIdBasedOndVariationsOutputSetting(e)))throw Error("Wasn't able to retrieve a productId");jQuery(document).trigger("wpmViewItemList",wpm.getProductDataForViewItemEvent(e))},wpm.getProductDataForViewItemEvent=e=>{if(!e)throw Error("Wasn't able to retrieve a productId");try{if(wpmDataLayer.products[e])return wpm.getProductDetailsFormattedForEvent(e)}catch(e){console.error(e)}},wpm.getMainProductIdFromProductPage=()=>{try{return["simple","variable","grouped","composite","bundle"].indexOf(wpmDataLayer.shop.product_type)>=0&&jQuery(".wpmProductId:first").data("id")}catch(e){console.error(e)}},wpm.viewItemListTriggerTestMode=e=>{jQuery(e).css({position:"relative"}),jQuery(e).append('<div id="viewItemListTriggerOverlay"></div>'),jQuery(e).find("#viewItemListTriggerOverlay").css({"z-index":"10",display:"block",position:"absolute",height:"100%",top:"0",left:"0",right:"0",opacity:wpmDataLayer.viewItemListTrigger.opacity,"background-color":wpmDataLayer.viewItemListTrigger.backgroundColor})},wpm.getSearchTermFromUrl=()=>{try{return new URLSearchParams(window.location.search).get("s")}catch(e){console.error(e)}};let ioTimeouts={},io;wpm.observerCallback=(e,t)=>{e.forEach((e=>{try{let o,r=jQuery(e.target).data("ioid");if(o=jQuery(e.target).next(".wpmProductId").length?jQuery(e.target).next(".wpmProductId").data("id"):jQuery(e.target).find(".wpmProductId").data("id"),!o)throw Error("wpmProductId element not found");e.isIntersecting?ioTimeouts[r]=setTimeout((()=>{wpm.triggerViewItemList(o),wpmDataLayer.viewItemListTrigger.testMode&&wpm.viewItemListTriggerTestMode(e.target),!1===wpmDataLayer.viewItemListTrigger.repeat&&t.unobserve(e.target)}),wpmDataLayer.viewItemListTrigger.timeout):(clearTimeout(ioTimeouts[r]),wpmDataLayer.viewItemListTrigger.testMode&&jQuery(e.target).find("#viewItemListTriggerOverlay").remove())}catch(e){console.error(e)}}))};let ioid=0,allIoElementsToWatch,getAllElementsToWatch=()=>{allIoElementsToWatch=jQuery(".wpmProductId").map((function(e,t){return jQuery(t).parent().hasClass("type-product")||jQuery(t).parent().hasClass("product")||jQuery(t).parent().hasClass("product-item-inner")?jQuery(t).parent():jQuery(t).prev().hasClass("wc-block-grid__product")||jQuery(t).prev().hasClass("product")||jQuery(t).prev().hasClass("product-small")||jQuery(t).prev().hasClass("woocommerce-LoopProduct-link")?jQuery(this).prev():jQuery(t).closest(".product").length?jQuery(t).closest(".product"):void 0}))};wpm.startIntersectionObserverToWatch=()=>{try{wpm.urlHasParameter("vildemomode")&&(wpmDataLayer.viewItemListTrigger.testMode=!0),io=new IntersectionObserver(wpm.observerCallback,{threshold:wpmDataLayer.viewItemListTrigger.threshold}),getAllElementsToWatch(),allIoElementsToWatch.each(((e,t)=>{jQuery(t[0]).data("ioid",ioid++),io.observe(t[0])}))}catch(e){console.error(e)}},wpm.startProductsMutationObserverToWatch=()=>{try{let e=jQuery(".wpmProductId:eq(0)").parents().has(jQuery(".wpmProductId:eq(1)").parents()).first();e.length&&productsMutationObserver.observe(e[0],{attributes:!0,childList:!0,characterData:!0})}catch(e){console.error(e)}};let productsMutationObserver=new MutationObserver((e=>{e.forEach((e=>{let t=e.addedNodes;null!==t&&jQuery(t).each((function(){(jQuery(this).hasClass("type-product")||jQuery(this).hasClass("product-small")||jQuery(this).hasClass("wc-block-grid__product"))&&hasWpmProductIdElement(this)&&(jQuery(this).data("ioid",ioid++),io.observe(this))}))}))})),hasWpmProductIdElement=e=>!(!jQuery(e).find(".wpmProductId").length&&!jQuery(e).siblings(".wpmProductId").length);wpm.setCookie=function(e){let t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"",o=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;if(o){let r=new Date;r.setTime(r.getTime()+24*o*60*60*1e3);let a="expires="+r.toUTCString();document.cookie=e+"="+t+";"+a+";path=/"}else document.cookie=e+"="+t+";path=/"},wpm.getCookie=e=>{let t=e+"=",o=decodeURIComponent(document.cookie).split(";");for(let e=0;e<o.length;e++){let r=o[e];for(;" "==r.charAt(0);)r=r.substring(1);if(0==r.indexOf(t))return r.substring(t.length,r.length)}return""},wpm.getWpmSessionData=()=>{if(window.sessionStorage){let e=window.sessionStorage.getItem("_wpm");return null!==e?JSON.parse(e):{}}return{}},wpm.setWpmSessionData=e=>{window.sessionStorage&&window.sessionStorage.setItem("_wpm",JSON.stringify(e))},wpm.storeOrderIdOnServer=async e=>{try{let t;t=await wpm.isRestEndpointAvailable()?await fetch(wpm.root+"pmw/v1/pixels-fired/",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),keepalive:!0,cache:"no-cache"}):await fetch(wpm.ajax_url,{method:"POST",body:new URLSearchParams({action:"pmw_purchase_pixels_fired",order_id:e}),keepalive:!0}),t.ok?console.log("wpm.storeOrderIdOnServer success"):console.error("wpm.storeOrderIdOnServer error")}catch(e){console.error(e)}},wpm.getProductIdByCartItemKeyUrl=e=>{let t,o=new URLSearchParams(e.search).get("remove_item");return t=0===wpmDataLayer.cartItemKeys[o].variation_id?wpmDataLayer.cartItemKeys[o].product_id:wpmDataLayer.cartItemKeys[o].variation_id,t},wpm.getAddToCartLinkProductIds=()=>jQuery("a").map((function(){let e=jQuery(this).attr("href");if(e&&e.includes("?add-to-cart=")){let t=e.match(/(add-to-cart=)(\d+)/);if(t)return t[2]}})).get(),wpm.getProductDetailsFormattedForEvent=function(e){let t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:1,o={id:e.toString(),dyn_r_ids:wpmDataLayer.products[e].dyn_r_ids,name:wpmDataLayer.products[e].name,list_name:wpmDataLayer.shop.list_name,brand:wpmDataLayer.products[e].brand,category:wpmDataLayer.products[e].category,variant:wpmDataLayer.products[e].variant,list_position:wpmDataLayer.products[e].position,quantity:t,price:wpmDataLayer.products[e].price,currency:wpmDataLayer.shop.currency,isVariable:wpmDataLayer.products[e].isVariable,isVariation:wpmDataLayer.products[e].isVariation,parentId:wpmDataLayer.products[e].parentId};return o.isVariation&&(o.parentId_dyn_r_ids=wpmDataLayer.products[e].parentId_dyn_r_ids),o},wpm.setReferrerToCookie=()=>{wpm.getCookie("wpmReferrer")||wpm.setCookie("wpmReferrer",document.referrer)},wpm.getReferrerFromCookie=()=>wpm.getCookie("wpmReferrer")?wpm.getCookie("wpmReferrer"):null,wpm.getClidFromBrowser=function(){let e,t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"gclid";return e={gclid:"_gcl_aw",dclid:"_gcl_dc"},wpm.getCookie(e[t])?wpm.getCookie(e[t]).match(/(GCL.[\d]*.)(.*)/)[2]:""},wpm.getUserAgent=()=>navigator.userAgent,wpm.getViewPort=()=>({width:Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),height:Math.max(document.documentElement.clientHeight||0,window.innerHeight||0)}),wpm.version=()=>{console.log(wpmDataLayer.version)},wpm.loadScriptAndCacheIt=url=>fetch(url,{method:"GET",cache:"default",keepalive:!0}).then((e=>{if(e.ok)return e.text();throw new Error("Network response was not ok: "+url)})).then((script=>{eval(script)})).catch((e=>{console.error(e)})),wpm.getOrderItemPrice=e=>(e.total+e.total_tax)/e.quantity,wpm.hasLoginEventFired=()=>{let e=wpm.getWpmSessionData();return null==e?void 0:e.loginEventFired},wpm.setLoginEventFired=()=>{let e=wpm.getWpmSessionData();e.loginEventFired=!0,wpm.setWpmSessionData(e)},wpm.wpmDataLayerExists=()=>new Promise((e=>{!function t(){if("undefined"!=typeof wpmDataLayer)return e();setTimeout(t,50)}()})),wpm.jQueryExists=()=>new Promise((e=>{!function t(){if("undefined"!=typeof jQuery)return e();setTimeout(t,100)}()})),wpm.pageLoaded=()=>new Promise((e=>{!function t(){if("complete"===document.readyState)return e();setTimeout(t,50)}()})),wpm.pageReady=()=>new Promise((e=>{!function t(){if("interactive"===document.readyState||"complete"===document.readyState)return e();setTimeout(t,50)}()})),wpm.isMiniCartActive=()=>{if(window.sessionStorage){for(const[e,t]of Object.entries(window.sessionStorage))if(e.includes("wc_fragments"))return!0;return!1}return!1},wpm.doesWooCommerceCartExist=()=>document.cookie.includes("woocommerce_items_in_cart"),wpm.urlHasParameter=e=>new URLSearchParams(window.location.search).has(e),wpm.hashAsync=(e,t)=>crypto.subtle.digest(e,new TextEncoder("utf-8").encode(t)).then((e=>Array.prototype.map.call(new Uint8Array(e),(e=>("00"+e.toString(16)).slice(-2))).join(""))),wpm.getCartValue=()=>{var e;let t=0;if(null!==(e=wpmDataLayer)&&void 0!==e&&e.cart)for(const e in wpmDataLayer.cart){let o=wpmDataLayer.cart[e];t+=o.quantity*o.price}return t}})(window.wpm=window.wpm||{},jQuery)},3534:(e,t,o)=>{o(9584),o(473)},7207:()=>{wpm.wpmDataLayerExists().then((function(){console.log("Pixel Manager for WooCommerce: "+(wpmDataLayer.version.pro?"Pro":"Free")+" Version "+wpmDataLayer.version.number+" loaded"),document.dispatchEvent(new Event("wpmPreLoadPixels"))})).then((function(){wpm.pageLoaded().then((function(){document.dispatchEvent(new Event("wpmLoad"))}))})),wpm.pageReady().then((function(){wpm.wpmDataLayerExists().then((function(){wpm.startIntersectionObserverToWatch(),wpm.startProductsMutationObserverToWatch()}))}))}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var o=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](o,o.exports,__webpack_require__),o.exports}__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__(3534),wpm.jQueryExists().then((function(){__webpack_require__(3299),__webpack_require__(8069),__webpack_require__(5012),__webpack_require__(8787),__webpack_require__(7207)}))})();
2
  //# sourceMappingURL=wpm-public.p1.min.js.map
1
+ (()=>{var __webpack_modules__={4749:(e,t,o)=>{var r=o(2856),a=o(7406),n=TypeError;e.exports=function(e){if(r(e))return e;throw n(a(e)+" is not a function")}},1342:(e,t,o)=>{var r=o(1286),a=o(8810),n=o(7872).f,i=r("unscopables"),l=Array.prototype;null==l[i]&&n(l,i,{configurable:!0,value:a(null)}),e.exports=function(e){l[i][e]=!0}},448:(e,t,o)=>{var r=o(6873),a=String,n=TypeError;e.exports=function(e){if(r(e))return e;throw n(a(e)+" is not an object")}},5071:(e,t,o)=>{var r=o(5185),a=o(873),n=o(918),i=function(e){return function(t,o,i){var l,s=r(t),d=n(s),c=a(i,d);if(e&&o!=o){for(;d>c;)if((l=s[c++])!=l)return!0}else for(;d>c;c++)if((e||c in s)&&s[c]===o)return e||c||0;return!e&&-1}};e.exports={includes:i(!0),indexOf:i(!1)}},5248:(e,t,o)=>{var r=o(547),a=r({}.toString),n=r("".slice);e.exports=function(e){return n(a(e),8,-1)}},632:(e,t,o)=>{var r=o(3208),a=o(5313),n=o(8688),i=o(7872);e.exports=function(e,t,o){for(var l=a(t),s=i.f,d=n.f,c=0;c<l.length;c++){var u=l[c];r(e,u)||o&&r(o,u)||s(e,u,d(t,u))}}},2357:(e,t,o)=>{var r=o(414),a=o(7872),n=o(6730);e.exports=r?function(e,t,o){return a.f(e,t,n(1,o))}:function(e,t,o){return e[t]=o,e}},6730:e=>{e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},4279:(e,t,o)=>{var r=o(2856),a=o(7872),n=o(1998),i=o(7942);e.exports=function(e,t,o,l){l||(l={});var s=l.enumerable,d=void 0!==l.name?l.name:t;if(r(o)&&n(o,d,l),l.global)s?e[t]=o:i(t,o);else{try{l.unsafe?e[t]&&(s=!0):delete e[t]}catch(e){}s?e[t]=o:a.f(e,t,{value:o,enumerable:!1,configurable:!l.nonConfigurable,writable:!l.nonWritable})}return e}},7942:(e,t,o)=>{var r=o(5433),a=Object.defineProperty;e.exports=function(e,t){try{a(r,e,{value:t,configurable:!0,writable:!0})}catch(o){r[e]=t}return t}},414:(e,t,o)=>{var r=o(2933);e.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},2388:(e,t,o)=>{var r=o(5433),a=o(6873),n=r.document,i=a(n)&&a(n.createElement);e.exports=function(e){return i?n.createElement(e):{}}},5575:(e,t,o)=>{var r=o(1272);e.exports=r("navigator","userAgent")||""},5723:(e,t,o)=>{var r,a,n=o(5433),i=o(5575),l=n.process,s=n.Deno,d=l&&l.versions||s&&s.version,c=d&&d.v8;c&&(a=(r=c.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!a&&i&&(!(r=i.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=i.match(/Chrome\/(\d+)/))&&(a=+r[1]),e.exports=a},5604:e=>{e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},4429:(e,t,o)=>{var r=o(5433),a=o(8688).f,n=o(2357),i=o(4279),l=o(7942),s=o(632),d=o(1476);e.exports=function(e,t){var o,c,u,p,m,g=e.target,w=e.global,y=e.stat;if(o=w?r:y?r[g]||l(g,{}):(r[g]||{}).prototype)for(c in t){if(p=t[c],u=e.dontCallGetSet?(m=a(o,c))&&m.value:o[c],!d(w?c:g+(y?".":"#")+c,e.forced)&&void 0!==u){if(typeof p==typeof u)continue;s(p,u)}(e.sham||u&&u.sham)&&n(p,"sham",!0),i(o,c,p,e)}}},2933:e=>{e.exports=function(e){try{return!!e()}catch(e){return!0}}},3001:(e,t,o)=>{var r=o(2933);e.exports=!r((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))},3573:(e,t,o)=>{var r=o(3001),a=Function.prototype.call;e.exports=r?a.bind(a):function(){return a.apply(a,arguments)}},4081:(e,t,o)=>{var r=o(414),a=o(3208),n=Function.prototype,i=r&&Object.getOwnPropertyDescriptor,l=a(n,"name"),s=l&&"something"===function(){}.name,d=l&&(!r||r&&i(n,"name").configurable);e.exports={EXISTS:l,PROPER:s,CONFIGURABLE:d}},547:(e,t,o)=>{var r=o(3001),a=Function.prototype,n=a.bind,i=a.call,l=r&&n.bind(i,i);e.exports=r?function(e){return e&&l(e)}:function(e){return e&&function(){return i.apply(e,arguments)}}},1272:(e,t,o)=>{var r=o(5433),a=o(2856),n=function(e){return a(e)?e:void 0};e.exports=function(e,t){return arguments.length<2?n(r[e]):r[e]&&r[e][t]}},9345:(e,t,o)=>{var r=o(4749);e.exports=function(e,t){var o=e[t];return null==o?void 0:r(o)}},5433:(e,t,o)=>{var r=function(e){return e&&e.Math==Math&&e};e.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof o.g&&o.g)||function(){return this}()||Function("return this")()},3208:(e,t,o)=>{var r=o(547),a=o(4021),n=r({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,t){return n(a(e),t)}},7557:e=>{e.exports={}},6383:(e,t,o)=>{var r=o(1272);e.exports=r("document","documentElement")},5841:(e,t,o)=>{var r=o(414),a=o(2933),n=o(2388);e.exports=!r&&!a((function(){return 7!=Object.defineProperty(n("div"),"a",{get:function(){return 7}}).a}))},8946:(e,t,o)=>{var r=o(547),a=o(2933),n=o(5248),i=Object,l=r("".split);e.exports=a((function(){return!i("z").propertyIsEnumerable(0)}))?function(e){return"String"==n(e)?l(e,""):i(e)}:i},2009:(e,t,o)=>{var r=o(547),a=o(2856),n=o(3479),i=r(Function.toString);a(n.inspectSource)||(n.inspectSource=function(e){return i(e)}),e.exports=n.inspectSource},418:(e,t,o)=>{var r,a,n,i=o(3829),l=o(5433),s=o(547),d=o(6873),c=o(2357),u=o(3208),p=o(3479),m=o(8607),g=o(7557),w="Object already initialized",y=l.TypeError,v=l.WeakMap;if(i||p.state){var f=p.state||(p.state=new v),_=s(f.get),h=s(f.has),L=s(f.set);r=function(e,t){if(h(f,e))throw new y(w);return t.facade=e,L(f,e,t),t},a=function(e){return _(f,e)||{}},n=function(e){return h(f,e)}}else{var b=m("state");g[b]=!0,r=function(e,t){if(u(e,b))throw new y(w);return t.facade=e,c(e,b,t),t},a=function(e){return u(e,b)?e[b]:{}},n=function(e){return u(e,b)}}e.exports={set:r,get:a,has:n,enforce:function(e){return n(e)?a(e):r(e,{})},getterFor:function(e){return function(t){var o;if(!d(t)||(o=a(t)).type!==e)throw y("Incompatible receiver, "+e+" required");return o}}}},2856:e=>{e.exports=function(e){return"function"==typeof e}},1476:(e,t,o)=>{var r=o(2933),a=o(2856),n=/#|\.prototype\./,i=function(e,t){var o=s[l(e)];return o==c||o!=d&&(a(t)?r(t):!!t)},l=i.normalize=function(e){return String(e).replace(n,".").toLowerCase()},s=i.data={},d=i.NATIVE="N",c=i.POLYFILL="P";e.exports=i},6873:(e,t,o)=>{var r=o(2856);e.exports=function(e){return"object"==typeof e?null!==e:r(e)}},2390:e=>{e.exports=!1},9650:(e,t,o)=>{var r=o(1272),a=o(2856),n=o(7012),i=o(8951),l=Object;e.exports=i?function(e){return"symbol"==typeof e}:function(e){var t=r("Symbol");return a(t)&&n(t.prototype,l(e))}},918:(e,t,o)=>{var r=o(9262);e.exports=function(e){return r(e.length)}},1998:(e,t,o)=>{var r=o(2933),a=o(2856),n=o(3208),i=o(414),l=o(4081).CONFIGURABLE,s=o(2009),d=o(418),c=d.enforce,u=d.get,p=Object.defineProperty,m=i&&!r((function(){return 8!==p((function(){}),"length",{value:8}).length})),g=String(String).split("String"),w=e.exports=function(e,t,o){"Symbol("===String(t).slice(0,7)&&(t="["+String(t).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),o&&o.getter&&(t="get "+t),o&&o.setter&&(t="set "+t),(!n(e,"name")||l&&e.name!==t)&&(i?p(e,"name",{value:t,configurable:!0}):e.name=t),m&&o&&n(o,"arity")&&e.length!==o.arity&&p(e,"length",{value:o.arity});try{o&&n(o,"constructor")&&o.constructor?i&&p(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(e){}var r=c(e);return n(r,"source")||(r.source=g.join("string"==typeof t?t:"")),e};Function.prototype.toString=w((function(){return a(this)&&u(this).source||s(this)}),"toString")},1190:e=>{var t=Math.ceil,o=Math.floor;e.exports=Math.trunc||function(e){var r=+e;return(r>0?o:t)(r)}},6634:(e,t,o)=>{var r=o(5723),a=o(2933);e.exports=!!Object.getOwnPropertySymbols&&!a((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},3829:(e,t,o)=>{var r=o(5433),a=o(2856),n=o(2009),i=r.WeakMap;e.exports=a(i)&&/native code/.test(n(i))},8810:(e,t,o)=>{var r,a=o(448),n=o(21),i=o(5604),l=o(7557),s=o(6383),d=o(2388),c=o(8607)("IE_PROTO"),u=function(){},p=function(e){return"<script>"+e+"<\/script>"},m=function(e){e.write(p("")),e.close();var t=e.parentWindow.Object;return e=null,t},g=function(){try{r=new ActiveXObject("htmlfile")}catch(e){}var e,t;g="undefined"!=typeof document?document.domain&&r?m(r):((t=d("iframe")).style.display="none",s.appendChild(t),t.src=String("javascript:"),(e=t.contentWindow.document).open(),e.write(p("document.F=Object")),e.close(),e.F):m(r);for(var o=i.length;o--;)delete g.prototype[i[o]];return g()};l[c]=!0,e.exports=Object.create||function(e,t){var o;return null!==e?(u.prototype=a(e),o=new u,u.prototype=null,o[c]=e):o=g(),void 0===t?o:n.f(o,t)}},21:(e,t,o)=>{var r=o(414),a=o(8272),n=o(7872),i=o(448),l=o(5185),s=o(8454);t.f=r&&!a?Object.defineProperties:function(e,t){i(e);for(var o,r=l(t),a=s(t),d=a.length,c=0;d>c;)n.f(e,o=a[c++],r[o]);return e}},7872:(e,t,o)=>{var r=o(414),a=o(5841),n=o(8272),i=o(448),l=o(29),s=TypeError,d=Object.defineProperty,c=Object.getOwnPropertyDescriptor;t.f=r?n?function(e,t,o){if(i(e),t=l(t),i(o),"function"==typeof e&&"prototype"===t&&"value"in o&&"writable"in o&&!o.writable){var r=c(e,t);r&&r.writable&&(e[t]=o.value,o={configurable:"configurable"in o?o.configurable:r.configurable,enumerable:"enumerable"in o?o.enumerable:r.enumerable,writable:!1})}return d(e,t,o)}:d:function(e,t,o){if(i(e),t=l(t),i(o),a)try{return d(e,t,o)}catch(e){}if("get"in o||"set"in o)throw s("Accessors not supported");return"value"in o&&(e[t]=o.value),e}},8688:(e,t,o)=>{var r=o(414),a=o(3573),n=o(4017),i=o(6730),l=o(5185),s=o(29),d=o(3208),c=o(5841),u=Object.getOwnPropertyDescriptor;t.f=r?u:function(e,t){if(e=l(e),t=s(t),c)try{return u(e,t)}catch(e){}if(d(e,t))return i(!a(n.f,e,t),e[t])}},7839:(e,t,o)=>{var r=o(209),a=o(5604).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,a)}},6824:(e,t)=>{t.f=Object.getOwnPropertySymbols},7012:(e,t,o)=>{var r=o(547);e.exports=r({}.isPrototypeOf)},209:(e,t,o)=>{var r=o(547),a=o(3208),n=o(5185),i=o(5071).indexOf,l=o(7557),s=r([].push);e.exports=function(e,t){var o,r=n(e),d=0,c=[];for(o in r)!a(l,o)&&a(r,o)&&s(c,o);for(;t.length>d;)a(r,o=t[d++])&&(~i(c,o)||s(c,o));return c}},8454:(e,t,o)=>{var r=o(209),a=o(5604);e.exports=Object.keys||function(e){return r(e,a)}},4017:(e,t)=>{"use strict";var o={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,a=r&&!o.call({1:2},1);t.f=a?function(e){var t=r(this,e);return!!t&&t.enumerable}:o},542:(e,t,o)=>{var r=o(3573),a=o(2856),n=o(6873),i=TypeError;e.exports=function(e,t){var o,l;if("string"===t&&a(o=e.toString)&&!n(l=r(o,e)))return l;if(a(o=e.valueOf)&&!n(l=r(o,e)))return l;if("string"!==t&&a(o=e.toString)&&!n(l=r(o,e)))return l;throw i("Can't convert object to primitive value")}},5313:(e,t,o)=>{var r=o(1272),a=o(547),n=o(7839),i=o(6824),l=o(448),s=a([].concat);e.exports=r("Reflect","ownKeys")||function(e){var t=n.f(l(e)),o=i.f;return o?s(t,o(e)):t}},4630:e=>{var t=TypeError;e.exports=function(e){if(null==e)throw t("Can't call method on "+e);return e}},8607:(e,t,o)=>{var r=o(3062),a=o(5834),n=r("keys");e.exports=function(e){return n[e]||(n[e]=a(e))}},3479:(e,t,o)=>{var r=o(5433),a=o(7942),n="__core-js_shared__",i=r[n]||a(n,{});e.exports=i},3062:(e,t,o)=>{var r=o(2390),a=o(3479);(e.exports=function(e,t){return a[e]||(a[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.24.1",mode:r?"pure":"global",copyright:"© 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.24.1/LICENSE",source:"https://github.com/zloirock/core-js"})},873:(e,t,o)=>{var r=o(7219),a=Math.max,n=Math.min;e.exports=function(e,t){var o=r(e);return o<0?a(o+t,0):n(o,t)}},5185:(e,t,o)=>{var r=o(8946),a=o(4630);e.exports=function(e){return r(a(e))}},7219:(e,t,o)=>{var r=o(1190);e.exports=function(e){var t=+e;return t!=t||0===t?0:r(t)}},9262:(e,t,o)=>{var r=o(7219),a=Math.min;e.exports=function(e){return e>0?a(r(e),9007199254740991):0}},4021:(e,t,o)=>{var r=o(4630),a=Object;e.exports=function(e){return a(r(e))}},9984:(e,t,o)=>{var r=o(3573),a=o(6873),n=o(9650),i=o(9345),l=o(542),s=o(1286),d=TypeError,c=s("toPrimitive");e.exports=function(e,t){if(!a(e)||n(e))return e;var o,s=i(e,c);if(s){if(void 0===t&&(t="default"),o=r(s,e,t),!a(o)||n(o))return o;throw d("Can't convert object to primitive value")}return void 0===t&&(t="number"),l(e,t)}},29:(e,t,o)=>{var r=o(9984),a=o(9650);e.exports=function(e){var t=r(e,"string");return a(t)?t:t+""}},7406:e=>{var t=String;e.exports=function(e){try{return t(e)}catch(e){return"Object"}}},5834:(e,t,o)=>{var r=o(547),a=0,n=Math.random(),i=r(1..toString);e.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+i(++a+n,36)}},8951:(e,t,o)=>{var r=o(6634);e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},8272:(e,t,o)=>{var r=o(414),a=o(2933);e.exports=r&&a((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},1286:(e,t,o)=>{var r=o(5433),a=o(3062),n=o(3208),i=o(5834),l=o(6634),s=o(8951),d=a("wks"),c=r.Symbol,u=c&&c.for,p=s?c:c&&c.withoutSetter||i;e.exports=function(e){if(!n(d,e)||!l&&"string"!=typeof d[e]){var t="Symbol."+e;l&&n(c,e)?d[e]=c[e]:d[e]=s&&u?u(t):p(t)}return d[e]}},3647:(e,t,o)=>{"use strict";o(3647);var r=o(4429),a=o(5071).includes,n=o(2933),i=o(1342);r({target:"Array",proto:!0,forced:n((function(){return!Array(1).includes()}))},{includes:function(e){return a(this,e,arguments.length>1?arguments[1]:void 0)}}),i("includes")},164:()=>{jQuery(document).on("wpmLoadPixels",(()=>{var e,t,o,r,a,n;null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(o=t.facebook)||void 0===o||!o.pixel_id||null!==(r=wpmDataLayer)&&void 0!==r&&null!==(a=r.pixels)&&void 0!==a&&null!==(n=a.facebook)&&void 0!==n&&n.loaded||wpm.canIFire("ads","facebook-ads")&&wpm.loadFacebookPixel()})),jQuery(document).on("wpmClientSideAddToCart",((e,t)=>{try{var o,r,a;if(null===(o=wpmDataLayer)||void 0===o||null===(r=o.pixels)||void 0===r||null===(a=r.facebook)||void 0===a||!a.loaded)return;fbq("track","AddToCart",t.facebook.custom_data,{eventID:t.facebook.event_id})}catch(e){console.error(e)}})),jQuery(document).on("wpmClientSideBeginCheckout",((e,t)=>{try{var o,r,a;if(null===(o=wpmDataLayer)||void 0===o||null===(r=o.pixels)||void 0===r||null===(a=r.facebook)||void 0===a||!a.loaded)return;fbq("track","InitiateCheckout",t.facebook.custom_data,{eventID:t.facebook.event_id})}catch(e){console.error(e)}})),jQuery(document).on("wpmClientSideAddToWishlist",((e,t)=>{try{var o,r,a;if(null===(o=wpmDataLayer)||void 0===o||null===(r=o.pixels)||void 0===r||null===(a=r.facebook)||void 0===a||!a.loaded)return;fbq("track","AddToWishlist",t.facebook.custom_data,{eventID:t.facebook.event_id})}catch(e){console.error(e)}})),jQuery(document).on("wpmClientSideViewItem",((e,t)=>{try{var o,r,a;if(null===(o=wpmDataLayer)||void 0===o||null===(r=o.pixels)||void 0===r||null===(a=r.facebook)||void 0===a||!a.loaded)return;fbq("track","ViewContent",t.facebook.custom_data,{eventID:t.facebook.event_id})}catch(e){console.error(e)}})),jQuery(document).on("wpmClientSideSearch",((e,t)=>{try{var o,r,a;if(null===(o=wpmDataLayer)||void 0===o||null===(r=o.pixels)||void 0===r||null===(a=r.facebook)||void 0===a||!a.loaded)return;fbq("track","Search",t.facebook.custom_data,{eventID:t.facebook.event_id})}catch(e){console.error(e)}})),jQuery(document).on("wpmLoadAlways",(()=>{try{var e,t,o;if(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(o=t.facebook)||void 0===o||!o.loaded)return;wpm.setFbUserData()}catch(e){console.error(e)}})),jQuery(document).on("wpmClientSideOrderReceivedPage",((e,t)=>{try{var o,r,a;if(null===(o=wpmDataLayer)||void 0===o||null===(r=o.pixels)||void 0===r||null===(a=r.facebook)||void 0===a||!a.loaded)return;fbq("track","Purchase",t.facebook.custom_data,{eventID:t.facebook.event_id})}catch(e){console.error(e)}}))},7746:()=>{!function(e,t,o){let r;e.loadFacebookPixel=()=>{try{wpmDataLayer.pixels.facebook.loaded=!0,t=window,o=document,r="script",t.fbq||(a=t.fbq=function(){a.callMethod?a.callMethod.apply(a,arguments):a.queue.push(arguments)},t._fbq||(t._fbq=a),a.push=a,a.loaded=!0,a.version="2.0",a.queue=[],(n=o.createElement(r)).async=!0,n.src="https://connect.facebook.net/en_US/fbevents.js",(i=o.getElementsByTagName(r)[0]).parentNode.insertBefore(n,i));let l={};e.isFbpSet()&&(l={...e.getUserIdentifiersForFb()}),fbq("init",wpmDataLayer.pixels.facebook.pixel_id,l),fbq("track","PageView")}catch(r){console.error(r)}var t,o,r,a,n,i},e.getUserIdentifiersForFb=()=>{var e,t,o,r,a,n,i,l,s,d,c,u,p,m,g,w,y,v,f,_,h,L,b,D,k,x,C,j,S,I,O,P,E,Q,T,F,A,V,R,q,M,G,N,W;let U={};return null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.user)&&void 0!==t&&t.id&&(U.external_id=wpmDataLayer.user.id),null!==(o=wpmDataLayer)&&void 0!==o&&null!==(r=o.order)&&void 0!==r&&r.user_id&&(U.external_id=wpmDataLayer.order.user_id),null!==(a=wpmDataLayer)&&void 0!==a&&null!==(n=a.user)&&void 0!==n&&null!==(i=n.facebook)&&void 0!==i&&i.email&&(U.em=wpmDataLayer.user.facebook.email),null!==(l=wpmDataLayer)&&void 0!==l&&null!==(s=l.order)&&void 0!==s&&s.billing_email_hashed&&(U.em=wpmDataLayer.order.billing_email_hashed),null!==(d=wpmDataLayer)&&void 0!==d&&null!==(c=d.user)&&void 0!==c&&null!==(u=c.facebook)&&void 0!==u&&u.first_name&&(U.fn=wpmDataLayer.user.facebook.first_name),null!==(p=wpmDataLayer)&&void 0!==p&&null!==(m=p.order)&&void 0!==m&&m.billing_first_name&&(U.fn=wpmDataLayer.order.billing_first_name.toLowerCase()),null!==(g=wpmDataLayer)&&void 0!==g&&null!==(w=g.user)&&void 0!==w&&null!==(y=w.facebook)&&void 0!==y&&y.last_name&&(U.ln=wpmDataLayer.user.facebook.last_name),null!==(v=wpmDataLayer)&&void 0!==v&&null!==(f=v.order)&&void 0!==f&&f.billing_last_name&&(U.ln=wpmDataLayer.order.billing_last_name.toLowerCase()),null!==(_=wpmDataLayer)&&void 0!==_&&null!==(h=_.user)&&void 0!==h&&null!==(L=h.facebook)&&void 0!==L&&L.phone&&(U.ph=wpmDataLayer.user.facebook.phone),null!==(b=wpmDataLayer)&&void 0!==b&&null!==(D=b.order)&&void 0!==D&&D.billing_phone&&(U.ph=wpmDataLayer.order.billing_phone.replace("+","")),null!==(k=wpmDataLayer)&&void 0!==k&&null!==(x=k.user)&&void 0!==x&&null!==(C=x.facebook)&&void 0!==C&&C.city&&(U.ct=wpmDataLayer.user.facebook.city),null!==(j=wpmDataLayer)&&void 0!==j&&null!==(S=j.order)&&void 0!==S&&S.billing_city&&(U.ct=wpmDataLayer.order.billing_city.toLowerCase().replace(/ /g,"")),null!==(I=wpmDataLayer)&&void 0!==I&&null!==(O=I.user)&&void 0!==O&&null!==(P=O.facebook)&&void 0!==P&&P.state&&(U.st=wpmDataLayer.user.facebook.state),null!==(E=wpmDataLayer)&&void 0!==E&&null!==(Q=E.order)&&void 0!==Q&&Q.billing_state&&(U.st=wpmDataLayer.order.billing_state.toLowerCase().replace(/[a-zA-Z]{2}-/,"")),null!==(T=wpmDataLayer)&&void 0!==T&&null!==(F=T.user)&&void 0!==F&&null!==(A=F.facebook)&&void 0!==A&&A.postcode&&(U.zp=wpmDataLayer.user.facebook.postcode),null!==(V=wpmDataLayer)&&void 0!==V&&null!==(R=V.order)&&void 0!==R&&R.billing_postcode&&(U.zp=wpmDataLayer.order.billing_postcode),null!==(q=wpmDataLayer)&&void 0!==q&&null!==(M=q.user)&&void 0!==M&&null!==(G=M.facebook)&&void 0!==G&&G.country&&(U.country=wpmDataLayer.user.facebook.country),null!==(N=wpmDataLayer)&&void 0!==N&&null!==(W=N.order)&&void 0!==W&&W.billing_country&&(U.country=wpmDataLayer.order.billing_country.toLowerCase()),U},e.getFbRandomEventId=()=>(Math.random()+1).toString(36).substring(2),e.getFbUserData=()=>(r={...r,...e.getFbUserDataFromBrowser()},r),e.setFbUserData=()=>{r=e.getFbUserDataFromBrowser()},e.getFbUserDataFromBrowser=()=>{var t,o;let r={};return e.getCookie("_fbp")&&e.isValidFbp(e.getCookie("_fbp"))&&(r.fbp=e.getCookie("_fbp")),e.getCookie("_fbc")&&e.isValidFbc(e.getCookie("_fbc"))&&(r.fbc=e.getCookie("_fbc")),null!==(t=wpmDataLayer)&&void 0!==t&&null!==(o=t.user)&&void 0!==o&&o.id&&(r.external_id=wpmDataLayer.user.id),navigator.userAgent&&(r.client_user_agent=navigator.userAgent),r},e.isFbpSet=()=>!!e.getCookie("_fbp"),e.isValidFbp=e=>new RegExp(/^fb\.[0-2]\.\d{13}\.\d{8,20}$/).test(e),e.isValidFbc=e=>new RegExp(/^fb\.[0-2]\.\d{13}\.[\da-zA-Z_-]{8,}/).test(e),e.fbGetProductDataForCapiEvent=e=>({content_type:"product",content_name:e.name,content_ids:[e.dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type]],value:parseFloat(e.quantity*e.price),currency:e.currency}),e.facebookContentIds=()=>{let e=[];for(const[r,a]of Object.entries(wpmDataLayer.order.items)){var t,o;null!==(t=wpmDataLayer)&&void 0!==t&&null!==(o=t.general)&&void 0!==o&&o.variationsOutput&&0!==a.variation_id?e.push(String(wpmDataLayer.products[a.variation_id].dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type])):e.push(String(wpmDataLayer.products[a.id].dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type]))}return e},e.trackCustomFacebookEvent=function(t){let r=arguments.length>1&&arguments[1]!==o?arguments[1]:{};try{var a,n,i;if(null===(a=wpmDataLayer)||void 0===a||null===(n=a.pixels)||void 0===n||null===(i=n.facebook)||void 0===i||!i.loaded)return;let o=e.getFbRandomEventId();fbq("trackCustom",t,r,{eventID:o}),jQuery(document).trigger("wpmFbCapiEvent",{event_name:t,event_id:o,user_data:e.getFbUserData(),event_source_url:window.location.href,custom_data:r})}catch(e){console.error(e)}},e.fbGetContentIdsFromCart=()=>{let e=[];for(const t in wpmDataLayer.cart)e.push(wpmDataLayer.products[t].dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type]);return e}}(window.wpm=window.wpm||{},jQuery)},5012:(e,t,o)=>{o(7746),o(164)},165:()=>{jQuery(document).on("wpmViewItemList",(function(e,t){try{var o,r,a,n,i,l,s,d,c,u,p,m,g;if(jQuery.isEmptyObject(null===(o=wpmDataLayer)||void 0===o||null===(r=o.pixels)||void 0===r||null===(a=r.google)||void 0===a||null===(n=a.ads)||void 0===n?void 0:n.conversionIds))return;if(null===(i=wpmDataLayer)||void 0===i||null===(l=i.pixels)||void 0===l||null===(s=l.google)||void 0===s||null===(d=s.ads)||void 0===d||null===(c=d.dynamic_remarketing)||void 0===c||!c.status)return;if(!wpm.googleConfigConditionsMet("ads"))return;if(null!==(u=wpmDataLayer)&&void 0!==u&&null!==(p=u.general)&&void 0!==p&&p.variationsOutput&&t.isVariable&&!1===wpmDataLayer.pixels.google.ads.dynamic_remarketing.send_events_with_parent_ids)return;if(!t)return;let e={send_to:wpm.getGoogleAdsConversionIdentifiers(),items:[{id:t.dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type],google_business_vertical:wpmDataLayer.pixels.google.ads.google_business_vertical}]};null!==(m=wpmDataLayer)&&void 0!==m&&null!==(g=m.user)&&void 0!==g&&g.id&&(e.user_id=wpmDataLayer.user.id),wpm.gtagLoaded().then((function(){gtag("event","view_item_list",e)}))}catch(e){console.error(e)}})),jQuery(document).on("wpmAddToCart",(function(e,t){try{var o,r,a,n,i,l,s,d,c,u,p;if(jQuery.isEmptyObject(null===(o=wpmDataLayer)||void 0===o||null===(r=o.pixels)||void 0===r||null===(a=r.google)||void 0===a||null===(n=a.ads)||void 0===n?void 0:n.conversionIds))return;if(null===(i=wpmDataLayer)||void 0===i||null===(l=i.pixels)||void 0===l||null===(s=l.google)||void 0===s||null===(d=s.ads)||void 0===d||null===(c=d.dynamic_remarketing)||void 0===c||!c.status)return;if(!wpm.googleConfigConditionsMet("ads"))return;let e={send_to:wpm.getGoogleAdsConversionIdentifiers(),value:t.quantity*t.price,items:[{id:t.dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type],quantity:t.quantity,price:t.price,google_business_vertical:wpmDataLayer.pixels.google.ads.google_business_vertical}]};null!==(u=wpmDataLayer)&&void 0!==u&&null!==(p=u.user)&&void 0!==p&&p.id&&(e.user_id=wpmDataLayer.user.id),wpm.gtagLoaded().then((function(){gtag("event","add_to_cart",e)}))}catch(e){console.error(e)}})),jQuery(document).on("wpmViewItem",(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;try{var o,r,a,n,i,l,s,d,c,u,p;if(jQuery.isEmptyObject(null===(o=wpmDataLayer)||void 0===o||null===(r=o.pixels)||void 0===r||null===(a=r.google)||void 0===a||null===(n=a.ads)||void 0===n?void 0:n.conversionIds))return;if(null===(i=wpmDataLayer)||void 0===i||null===(l=i.pixels)||void 0===l||null===(s=l.google)||void 0===s||null===(d=s.ads)||void 0===d||null===(c=d.dynamic_remarketing)||void 0===c||!c.status)return;if(!wpm.googleConfigConditionsMet("ads"))return;let e={send_to:wpm.getGoogleAdsConversionIdentifiers()};t&&(e.value=(t.quantity?t.quantity:1)*t.price,e.items=[{id:t.dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type],quantity:t.quantity?t.quantity:1,price:t.price,google_business_vertical:wpmDataLayer.pixels.google.ads.google_business_vertical}]),null!==(u=wpmDataLayer)&&void 0!==u&&null!==(p=u.user)&&void 0!==p&&p.id&&(e.user_id=wpmDataLayer.user.id),wpm.gtagLoaded().then((function(){gtag("event","view_item",e)}))}catch(e){console.error(e)}})),jQuery(document).on("wpmSearch",(function(){try{var e,t,o,r,a,n,i,l,s,d,c;if(jQuery.isEmptyObject(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(o=t.google)||void 0===o||null===(r=o.ads)||void 0===r?void 0:r.conversionIds))return;if(null===(a=wpmDataLayer)||void 0===a||null===(n=a.pixels)||void 0===n||null===(i=n.google)||void 0===i||null===(l=i.ads)||void 0===l||null===(s=l.dynamic_remarketing)||void 0===s||!s.status)return;if(!wpm.googleConfigConditionsMet("ads"))return;let m=[];for(const[e,t]of Object.entries(wpmDataLayer.products)){var u,p;if(null!==(u=wpmDataLayer)&&void 0!==u&&null!==(p=u.general)&&void 0!==p&&p.variationsOutput&&t.isVariable&&!1===wpmDataLayer.pixels.google.ads.dynamic_remarketing.send_events_with_parent_ids)return;m.push({id:t.dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type],google_business_vertical:wpmDataLayer.pixels.google.ads.google_business_vertical})}let g={send_to:wpm.getGoogleAdsConversionIdentifiers(),items:m};null!==(d=wpmDataLayer)&&void 0!==d&&null!==(c=d.user)&&void 0!==c&&c.id&&(g.user_id=wpmDataLayer.user.id),wpm.gtagLoaded().then((function(){gtag("event","view_search_results",g)}))}catch(e){console.error(e)}})),jQuery(document).on("wpmOrderReceivedPage",(function(){try{var e,t,o,r,a,n,i,l,s,d,c;if(jQuery.isEmptyObject(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(o=t.google)||void 0===o||null===(r=o.ads)||void 0===r?void 0:r.conversionIds))return;if(null===(a=wpmDataLayer)||void 0===a||null===(n=a.pixels)||void 0===n||null===(i=n.google)||void 0===i||null===(l=i.ads)||void 0===l||null===(s=l.dynamic_remarketing)||void 0===s||!s.status)return;if(!wpm.googleConfigConditionsMet("ads"))return;let u={send_to:wpm.getGoogleAdsConversionIdentifiers(),value:wpmDataLayer.order.value_filtered,items:wpm.getGoogleAdsDynamicRemarketingOrderItems()};null!==(d=wpmDataLayer)&&void 0!==d&&null!==(c=d.user)&&void 0!==c&&c.id&&(u.user_id=wpmDataLayer.user.id),wpm.gtagLoaded().then((function(){gtag("event","purchase",u)}))}catch(e){console.error(e)}})),jQuery(document).on("wpmLogin",(function(){try{var e,t,o,r,a,n,i,l,s,d,c;if(jQuery.isEmptyObject(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(o=t.google)||void 0===o||null===(r=o.ads)||void 0===r?void 0:r.conversionIds))return;if(null===(a=wpmDataLayer)||void 0===a||null===(n=a.pixels)||void 0===n||null===(i=n.google)||void 0===i||null===(l=i.ads)||void 0===l||null===(s=l.dynamic_remarketing)||void 0===s||!s.status)return;if(!wpm.googleConfigConditionsMet("ads"))return;let u={send_to:wpm.getGoogleAdsConversionIdentifiers()};null!==(d=wpmDataLayer)&&void 0!==d&&null!==(c=d.user)&&void 0!==c&&c.id&&(u.user_id=wpmDataLayer.user.id),wpm.gtagLoaded().then((function(){gtag("event","login",u)}))}catch(e){console.error(e)}})),jQuery(document).on("wpmOrderReceivedPage",(function(){try{var e,t,o,r,a,n;if(jQuery.isEmptyObject(wpm.getGoogleAdsConversionIdentifiersWithLabel()))return;if(!wpm.googleConfigConditionsMet("ads"))return;let i={},l={};i={send_to:wpm.getGoogleAdsConversionIdentifiersWithLabel(),transaction_id:wpmDataLayer.order.number,value:wpmDataLayer.order.value_filtered,currency:wpmDataLayer.order.currency,new_customer:wpmDataLayer.order.new_customer},null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.order)&&void 0!==t&&t.clv_order_value_filtered&&(i.customer_lifetime_value=wpmDataLayer.order.clv_order_value_filtered),null!==(o=wpmDataLayer)&&void 0!==o&&null!==(r=o.user)&&void 0!==r&&r.id&&(i.user_id=wpmDataLayer.user.id),null!==(a=wpmDataLayer)&&void 0!==a&&null!==(n=a.order)&&void 0!==n&&n.aw_merchant_id&&(l={discount:wpmDataLayer.order.discount,aw_merchant_id:wpmDataLayer.order.aw_merchant_id,aw_feed_country:wpmDataLayer.order.aw_feed_country,aw_feed_language:wpmDataLayer.order.aw_feed_language,items:wpm.getGoogleAdsRegularOrderItems()}),wpm.gtagLoaded().then((function(){gtag("event","conversion",{...i,...l})}))}catch(e){console.error(e)}}))},9042:()=>{!function(e,t,o){e.getGoogleAdsConversionIdentifiersWithLabel=function(){var e,t,o,r;let a=[];if(null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.pixels)&&void 0!==t&&null!==(o=t.google)&&void 0!==o&&null!==(r=o.ads)&&void 0!==r&&r.conversionIds)for(const[e,t]of Object.entries(wpmDataLayer.pixels.google.ads.conversionIds))t&&a.push(e+"/"+t);return a},e.getGoogleAdsConversionIdentifiers=function(){let e=[];for(const[t,o]of Object.entries(wpmDataLayer.pixels.google.ads.conversionIds))e.push(t);return e},e.getGoogleAdsRegularOrderItems=function(){let e=[];for(const[r,a]of Object.entries(wpmDataLayer.order.items)){var t,o;let r;r={quantity:a.quantity,price:a.price},null!==(t=wpmDataLayer)&&void 0!==t&&null!==(o=t.general)&&void 0!==o&&o.variationsOutput&&0!==a.variation_id?(r.id=String(wpmDataLayer.products[a.variation_id].dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type]),e.push(r)):(r.id=String(wpmDataLayer.products[a.id].dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type]),e.push(r))}return e},e.getGoogleAdsDynamicRemarketingOrderItems=function(){let e=[];for(const[r,a]of Object.entries(wpmDataLayer.order.items)){var t,o;let r;r={quantity:a.quantity,price:a.price,google_business_vertical:wpmDataLayer.pixels.google.ads.google_business_vertical},null!==(t=wpmDataLayer)&&void 0!==t&&null!==(o=t.general)&&void 0!==o&&o.variationsOutput&&0!==a.variation_id?(r.id=String(wpmDataLayer.products[a.variation_id].dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type]),e.push(r)):(r.id=String(wpmDataLayer.products[a.id].dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type]),e.push(r))}return e}}(window.wpm=window.wpm||{},jQuery)},5190:(e,t,o)=>{o(9042),o(165)},3625:()=>{jQuery(document).on("wpmOrderReceivedPage",(function(){try{var e,t,o,r,a,n,i,l,s,d;if(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(o=t.google)||void 0===o||null===(r=o.analytics)||void 0===r||null===(a=r.universal)||void 0===a||!a.property_id)return;if(null!==(n=wpmDataLayer)&&void 0!==n&&null!==(i=n.pixels)&&void 0!==i&&null!==(l=i.google)&&void 0!==l&&null!==(s=l.analytics)&&void 0!==s&&null!==(d=s.universal)&&void 0!==d&&d.mp_active)return;if(!wpm.googleConfigConditionsMet("analytics"))return;wpm.gtagLoaded().then((function(){gtag("event","purchase",{send_to:[wpmDataLayer.pixels.google.analytics.universal.property_id],transaction_id:wpmDataLayer.order.number,affiliation:wpmDataLayer.order.affiliation,currency:wpmDataLayer.order.currency,value:wpmDataLayer.order.value_regular,discount:wpmDataLayer.order.discount,tax:wpmDataLayer.order.tax,shipping:wpmDataLayer.order.shipping,coupon:wpmDataLayer.order.coupon,items:wpm.getGAUAOrderItems()})}))}catch(e){console.error(e)}}))},6019:()=>{!function(e,t,o){e.getGAUAOrderItems=function(){let t=[];for(const[a,n]of Object.entries(wpmDataLayer.order.items)){var o,r;let a;a={quantity:n.quantity,price:n.price,name:n.name,currency:wpmDataLayer.order.currency,category:wpmDataLayer.products[n.id].category.join("/")},null!==(o=wpmDataLayer)&&void 0!==o&&null!==(r=o.general)&&void 0!==r&&r.variationsOutput&&0!==n.variation_id?(a.id=String(wpmDataLayer.products[n.variation_id].dyn_r_ids[wpmDataLayer.pixels.google.analytics.id_type]),a.variant=wpmDataLayer.products[n.variation_id].variant_name,a.brand=wpmDataLayer.products[n.variation_id].brand):(a.id=String(wpmDataLayer.products[n.id].dyn_r_ids[wpmDataLayer.pixels.google.analytics.id_type]),a.brand=wpmDataLayer.products[n.id].brand),a=e.ga3AddListNameToProduct(a),t.push(a)}return t},e.ga3AddListNameToProduct=function(e){let t=arguments.length>1&&arguments[1]!==o?arguments[1]:null;return e.list_name=wpmDataLayer.shop.list_name,t&&(e.list_position=t),e}}(window.wpm=window.wpm||{},jQuery)},562:(e,t,o)=>{o(6019),o(3625)},7572:()=>{jQuery(document).on("wpmOrderReceivedPage",(function(){try{var e,t,o,r,a,n,i,l,s,d;if(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(o=t.google)||void 0===o||null===(r=o.analytics)||void 0===r||null===(a=r.ga4)||void 0===a||!a.measurement_id)return;if(null!==(n=wpmDataLayer)&&void 0!==n&&null!==(i=n.pixels)&&void 0!==i&&null!==(l=i.google)&&void 0!==l&&null!==(s=l.analytics)&&void 0!==s&&null!==(d=s.ga4)&&void 0!==d&&d.mp_active)return;if(!wpm.googleConfigConditionsMet("analytics"))return;wpm.gtagLoaded().then((function(){gtag("event","purchase",{send_to:[wpmDataLayer.pixels.google.analytics.ga4.measurement_id],transaction_id:wpmDataLayer.order.number,affiliation:wpmDataLayer.order.affiliation,currency:wpmDataLayer.order.currency,value:wpmDataLayer.order.value_regular,discount:wpmDataLayer.order.discount,tax:wpmDataLayer.order.tax,shipping:wpmDataLayer.order.shipping,coupon:wpmDataLayer.order.coupon,items:wpm.getGA4OrderItems()})}))}catch(e){console.error(e)}}))},6228:()=>{!function(e,t,o){e.getGA4OrderItems=function(){let e=[];for(const[r,a]of Object.entries(wpmDataLayer.order.items)){var t,o;let r;r={quantity:a.quantity,price:a.price,item_name:a.name,currency:wpmDataLayer.order.currency,item_category:wpmDataLayer.products[a.id].category.join("/")},null!==(t=wpmDataLayer)&&void 0!==t&&null!==(o=t.general)&&void 0!==o&&o.variationsOutput&&0!==a.variation_id?(r.item_id=String(wpmDataLayer.products[a.variation_id].dyn_r_ids[wpmDataLayer.pixels.google.analytics.id_type]),r.item_variant=wpmDataLayer.products[a.variation_id].variant_name,r.item_brand=wpmDataLayer.products[a.variation_id].brand):(r.item_id=String(wpmDataLayer.products[a.id].dyn_r_ids[wpmDataLayer.pixels.google.analytics.id_type]),r.item_brand=wpmDataLayer.products[a.id].brand),e.push(r)}return e}}(window.wpm=window.wpm||{},jQuery)},8522:(e,t,o)=>{o(6228),o(7572)},6774:(e,t,o)=>{o(562),o(8522)},9294:()=>{jQuery(document).on("wpmLoadPixels",(function(){var e,t,o;void 0===(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(o=t.google)||void 0===o?void 0:o.state)&&(wpm.canGoogleLoad()?wpm.loadGoogle():wpm.logPreventedPixelLoading("google","analytics / ads"))}))},9860:(e,t,o)=>{"use strict";o.r(t),o(3647),function(e,t,o){e.googleConfigConditionsMet=function(t){var o,r,a,n;return!(null===(o=wpmDataLayer)||void 0===o||null===(r=o.pixels)||void 0===r||null===(a=r.google)||void 0===a||null===(n=a.consent_mode)||void 0===n||!n.active)||("category"===e.getConsentValues().mode?!0===e.getConsentValues().categories[t]:"pixel"===e.getConsentValues().mode&&e.getConsentValues().pixels.includes("google-"+t))},e.getVisitorConsentStatusAndUpdateGoogleConsentSettings=function(t){return"category"===e.getConsentValues().mode?(e.getConsentValues().categories.analytics&&(t.analytics_storage="granted"),e.getConsentValues().categories.ads&&(t.ad_storage="granted")):"pixel"===e.getConsentValues().mode&&(t.analytics_storage=e.getConsentValues().pixels.includes("google-analytics")?"granted":"denied",t.ad_storage=e.getConsentValues().pixels.includes("google-ads")?"granted":"denied"),t},e.updateGoogleConsentMode=function(){let e=!(arguments.length>0&&arguments[0]!==o)||arguments[0],t=!(arguments.length>1&&arguments[1]!==o)||arguments[1];try{if(!window.gtag||!wpmDataLayer.shop.cookie_consent_mgmt.explicit_consent)return;gtag("consent","update",{analytics_storage:e?"granted":"denied",ad_storage:t?"granted":"denied"})}catch(e){console.error(e)}},e.fireGtagGoogleAds=function(){try{var e,t,o,r,a,n,i,l,s,d,c,u,p,m,g,w,y,v,f,_,h,L,b;if(wpmDataLayer.pixels.google.ads.state="loading",null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.pixels)&&void 0!==t&&null!==(o=t.google)&&void 0!==o&&null!==(r=o.ads)&&void 0!==r&&null!==(a=r.enhanced_conversions)&&void 0!==a&&a.active)for(const[e,t]of Object.entries(wpmDataLayer.pixels.google.ads.conversionIds))gtag("config",e,{allow_enhanced_conversions:!0});else for(const[e,t]of Object.entries(wpmDataLayer.pixels.google.ads.conversionIds))gtag("config",e);null!==(n=wpmDataLayer)&&void 0!==n&&null!==(i=n.pixels)&&void 0!==i&&null!==(l=i.google)&&void 0!==l&&null!==(s=l.ads)&&void 0!==s&&s.conversionIds&&null!==(d=wpmDataLayer)&&void 0!==d&&null!==(c=d.pixels)&&void 0!==c&&null!==(u=c.google)&&void 0!==u&&null!==(p=u.ads)&&void 0!==p&&p.phone_conversion_label&&null!==(m=wpmDataLayer)&&void 0!==m&&null!==(g=m.pixels)&&void 0!==g&&null!==(w=g.google)&&void 0!==w&&null!==(y=w.ads)&&void 0!==y&&y.phone_conversion_number&&gtag("config",Object.keys(wpmDataLayer.pixels.google.ads.conversionIds)[0]+"/"+wpmDataLayer.pixels.google.ads.phone_conversion_label,{phone_conversion_number:wpmDataLayer.pixels.google.ads.phone_conversion_number}),null!==(v=wpmDataLayer)&&void 0!==v&&null!==(f=v.shop)&&void 0!==f&&f.page_type&&"order_received_page"===wpmDataLayer.shop.page_type&&null!==(_=wpmDataLayer)&&void 0!==_&&null!==(h=_.order)&&void 0!==h&&null!==(L=h.google)&&void 0!==L&&null!==(b=L.ads)&&void 0!==b&&b.enhanced_conversion_data&&gtag("set","user_data",wpmDataLayer.order.google.ads.enhanced_conversion_data),wpmDataLayer.pixels.google.ads.state="ready"}catch(e){console.error(e)}},e.fireGtagGoogleAnalyticsUA=function(){try{wpmDataLayer.pixels.google.analytics.universal.state="loading",gtag("config",wpmDataLayer.pixels.google.analytics.universal.property_id,wpmDataLayer.pixels.google.analytics.universal.parameters),wpmDataLayer.pixels.google.analytics.universal.state="ready"}catch(e){console.error(e)}},e.fireGtagGoogleAnalyticsGA4=function(){try{var e,t,o,r,a;wpmDataLayer.pixels.google.analytics.ga4.state="loading";let n=wpmDataLayer.pixels.google.analytics.ga4.parameters;null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.pixels)&&void 0!==t&&null!==(o=t.google)&&void 0!==o&&null!==(r=o.analytics)&&void 0!==r&&null!==(a=r.ga4)&&void 0!==a&&a.debug_mode&&(n.debug_mode=!0),gtag("config",wpmDataLayer.pixels.google.analytics.ga4.measurement_id,n),wpmDataLayer.pixels.google.analytics.ga4.state="ready"}catch(e){console.error(e)}},e.isGoogleActive=function(){var e,t,o,r,a,n,i,l,s,d,c,u,p,m;return!(!(null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.pixels)&&void 0!==t&&null!==(o=t.google)&&void 0!==o&&null!==(r=o.analytics)&&void 0!==r&&null!==(a=r.universal)&&void 0!==a&&a.property_id||null!==(n=wpmDataLayer)&&void 0!==n&&null!==(i=n.pixels)&&void 0!==i&&null!==(l=i.google)&&void 0!==l&&null!==(s=l.analytics)&&void 0!==s&&null!==(d=s.ga4)&&void 0!==d&&d.measurement_id)&&jQuery.isEmptyObject(null===(c=wpmDataLayer)||void 0===c||null===(u=c.pixels)||void 0===u||null===(p=u.google)||void 0===p||null===(m=p.ads)||void 0===m?void 0:m.conversionIds))},e.getGoogleGtagId=function(){var e,t,o,r,a,n,i,l,s,d;return null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.pixels)&&void 0!==t&&null!==(o=t.google)&&void 0!==o&&null!==(r=o.analytics)&&void 0!==r&&null!==(a=r.universal)&&void 0!==a&&a.property_id?wpmDataLayer.pixels.google.analytics.universal.property_id:null!==(n=wpmDataLayer)&&void 0!==n&&null!==(i=n.pixels)&&void 0!==i&&null!==(l=i.google)&&void 0!==l&&null!==(s=l.analytics)&&void 0!==s&&null!==(d=s.ga4)&&void 0!==d&&d.measurement_id?wpmDataLayer.pixels.google.analytics.ga4.measurement_id:Object.keys(wpmDataLayer.pixels.google.ads.conversionIds)[0]},e.loadGoogle=function(){e.isGoogleActive()&&(wpmDataLayer.pixels.google.state="loading",e.loadScriptAndCacheIt("https://www.googletagmanager.com/gtag/js?id="+e.getGoogleGtagId()).then((function(t,o){try{var r,a,n,i,l,s,d,c,u,p,m,g,w,y,v,f,_,h,L,b,D,k;if(window.dataLayer=window.dataLayer||[],window.gtag=function(){dataLayer.push(arguments)},null!==(r=wpmDataLayer)&&void 0!==r&&null!==(a=r.pixels)&&void 0!==a&&null!==(n=a.google)&&void 0!==n&&null!==(i=n.consent_mode)&&void 0!==i&&i.active){var x,C,j,S;let t={ad_storage:wpmDataLayer.pixels.google.consent_mode.ad_storage,analytics_storage:wpmDataLayer.pixels.google.consent_mode.analytics_storage,wait_for_update:wpmDataLayer.pixels.google.consent_mode.wait_for_update};null!==(x=wpmDataLayer)&&void 0!==x&&null!==(C=x.pixels)&&void 0!==C&&null!==(j=C.google)&&void 0!==j&&null!==(S=j.consent_mode)&&void 0!==S&&S.region&&(t.region=wpmDataLayer.pixels.google.consent_mode.region),t=e.getVisitorConsentStatusAndUpdateGoogleConsentSettings(t),gtag("consent","default",t),gtag("set","ads_data_redaction",wpmDataLayer.pixels.google.consent_mode.ads_data_redaction),gtag("set","url_passthrough",wpmDataLayer.pixels.google.consent_mode.url_passthrough)}null!==(l=wpmDataLayer)&&void 0!==l&&null!==(s=l.pixels)&&void 0!==s&&null!==(d=s.google)&&void 0!==d&&null!==(c=d.linker)&&void 0!==c&&c.settings&&gtag("set","linker",wpmDataLayer.pixels.google.linker.settings),gtag("js",new Date),jQuery.isEmptyObject(null===(u=wpmDataLayer)||void 0===u||null===(p=u.pixels)||void 0===p||null===(m=p.google)||void 0===m||null===(g=m.ads)||void 0===g?void 0:g.conversionIds)||(e.googleConfigConditionsMet("ads")?e.fireGtagGoogleAds():e.logPreventedPixelLoading("google-ads","ads")),null!==(w=wpmDataLayer)&&void 0!==w&&null!==(y=w.pixels)&&void 0!==y&&null!==(v=y.google)&&void 0!==v&&null!==(f=v.analytics)&&void 0!==f&&null!==(_=f.universal)&&void 0!==_&&_.property_id&&(e.googleConfigConditionsMet("analytics")?e.fireGtagGoogleAnalyticsUA():e.logPreventedPixelLoading("google-universal-analytics","analytics")),null!==(h=wpmDataLayer)&&void 0!==h&&null!==(L=h.pixels)&&void 0!==L&&null!==(b=L.google)&&void 0!==b&&null!==(D=b.analytics)&&void 0!==D&&null!==(k=D.ga4)&&void 0!==k&&k.measurement_id&&(e.googleConfigConditionsMet("analytics")?e.fireGtagGoogleAnalyticsGA4():e.logPreventedPixelLoading("ga4","analytics")),wpmDataLayer.pixels.google.state="ready"}catch(e){console.error(e)}})))},e.canGoogleLoad=function(){var t,o,r,a;return!(null===(t=wpmDataLayer)||void 0===t||null===(o=t.pixels)||void 0===o||null===(r=o.google)||void 0===r||null===(a=r.consent_mode)||void 0===a||!a.active)||("category"===e.getConsentValues().mode?!(!e.getConsentValues().categories.ads&&!e.getConsentValues().categories.analytics):"pixel"===e.getConsentValues().mode?e.getConsentValues().pixels.includes("google-ads")||e.getConsentValues().pixels.includes("google-analytics"):(console.error("Couldn't find a valid load condition for Google mode in wpmConsentValues"),!1))},e.gtagLoaded=function(){return new Promise((function(e,t){var o,r,a;void 0===(null===(o=wpmDataLayer)||void 0===o||null===(r=o.pixels)||void 0===r||null===(a=r.google)||void 0===a?void 0:a.state)&&t();let n=0;!function o(){var r,a,i;return"ready"===(null===(r=wpmDataLayer)||void 0===r||null===(a=r.pixels)||void 0===a||null===(i=a.google)||void 0===i?void 0:i.state)?e():n>=5e3?t():(n+=200,void setTimeout(o,200))}()}))}}(window.wpm=window.wpm||{},jQuery)},1580:(e,t,o)=>{o(9860),o(9294)},8069:(e,t,o)=>{o(1580),o(5190),o(6774),o(3463)},1945:()=>{jQuery(document).on("wpmLoadPixels",(function(){var e,t,o,r,a,n,i,l;null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(o=t.google)||void 0===o||null===(r=o.optimize)||void 0===r||!r.container_id||null!==(a=wpmDataLayer)&&void 0!==a&&null!==(n=a.pixels)&&void 0!==n&&null!==(i=n.google)&&void 0!==i&&null!==(l=i.optimize)&&void 0!==l&&l.loaded||wpm.canIFire("analytics","google-optimize")&&wpm.load_google_optimize_pixel()}))},8962:()=>{!function(e,t,o){e.load_google_optimize_pixel=function(){try{wpmDataLayer.pixels.google.optimize.loaded=!0,e.loadScriptAndCacheIt("https://www.googleoptimize.com/optimize.js?id="+wpmDataLayer.pixels.google.optimize.container_id)}catch(e){console.error(e)}}}(window.wpm=window.wpm||{},jQuery)},3463:(e,t,o)=>{o(8962),o(1945)},2300:()=>{jQuery(document).on("wpmLoadPixels",(function(){var e,t,o,r,a,n,i,l,s;null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(o=t.hotjar)||void 0===o||!o.site_id||null!==(r=wpmDataLayer)&&void 0!==r&&null!==(a=r.pixels)&&void 0!==a&&null!==(n=a.hotjar)&&void 0!==n&&n.loaded||!wpm.canIFire("analytics","hotjar")||null!==(i=wpmDataLayer)&&void 0!==i&&null!==(l=i.pixels)&&void 0!==l&&null!==(s=l.hotjar)&&void 0!==s&&s.loaded||wpm.load_hotjar_pixel()}))},2376:()=>{!function(e,t,o){e.load_hotjar_pixel=function(){try{wpmDataLayer.pixels.hotjar.loaded=!0,e=window,t=document,e.hj=e.hj||function(){(e.hj.q=e.hj.q||[]).push(arguments)},e._hjSettings={hjid:wpmDataLayer.pixels.hotjar.site_id,hjsv:6},o=t.getElementsByTagName("head")[0],(r=t.createElement("script")).async=1,r.src="https://static.hotjar.com/c/hotjar-"+e._hjSettings.hjid+".js?sv="+e._hjSettings.hjsv,o.appendChild(r)}catch(e){console.error(e)}var e,t,o,r}}(window.wpm=window.wpm||{},jQuery)},8787:(e,t,o)=>{o(2376),o(2300)},473:(e,t,o)=>{"use strict";o.r(t),o(3647),function(e,t,o){let r=()=>{let t=e.getCookie("cmplz_statistics"),o=e.getCookie("cmplz_marketing");return!(!e.getCookie("cmplz_consent_status")&&!e.getCookie("cmplz_banner-status"))&&{analytics:"allow"===t,ads:"allow"===o,visitorHasChosen:!0}},a=()=>{let t=e.getCookie("cookielawinfo-checkbox-analytics")||e.getCookie("cookielawinfo-checkbox-analytiques"),o=e.getCookie("cookielawinfo-checkbox-advertisement")||e.getCookie("cookielawinfo-checkbox-performance")||e.getCookie("cookielawinfo-checkbox-publicite"),r=e.getCookie("CookieLawInfoConsent");return!(!t&&!o)&&{analytics:"yes"===t,ads:"yes"===o,visitorHasChosen:!!r}},n={categories:{},pixels:[],mode:"category",visitorHasChosen:!1};e.getConsentValues=()=>n,e.setConsentValueCategories=function(){let e=arguments.length>0&&arguments[0]!==o&&arguments[0],t=arguments.length>1&&arguments[1]!==o&&arguments[1];n.categories.analytics=e,n.categories.ads=t},e.updateConsentCookieValues=function(){let t,i=arguments.length>0&&arguments[0]!==o?arguments[0]:null,l=arguments.length>1&&arguments[1]!==o?arguments[1]:null,s=arguments.length>2&&arguments[2]!==o&&arguments[2];if(i||l)i&&(n.categories.analytics=!!i),l&&(n.categories.ads=!!l);else if(t=e.getCookie("CookieConsent"))t=decodeURI(t),n.categories.analytics=t.indexOf("statistics:true")>=0,n.categories.ads=t.indexOf("marketing:true")>=0,n.visitorHasChosen=!0;else if(t=e.getCookie("CookieScriptConsent"))t=JSON.parse(t),"reject"===t.action?(n.categories.analytics=!1,n.categories.ads=!1):2===t.categories.length?(n.categories.analytics=!0,n.categories.ads=!0):(n.categories.analytics=t.categories.indexOf("performance")>=0,n.categories.ads=t.categories.indexOf("targeting")>=0),n.visitorHasChosen=!0;else if(t=e.getCookie("borlabs-cookie")){var d,c,u,p,m,g,w,y;t=decodeURI(t),t=JSON.parse(t),n.categories.analytics=!(null===(d=t)||void 0===d||null===(c=d.consents)||void 0===c||!c.statistics),n.categories.ads=!(null===(u=t)||void 0===u||null===(p=u.consents)||void 0===p||!p.marketing),n.visitorHasChosen=!0,n.pixels=[...(null===(m=t)||void 0===m||null===(g=m.consents)||void 0===g?void 0:g.statistics)||[],...(null===(w=t)||void 0===w||null===(y=w.consents)||void 0===y?void 0:y.marketing)||[]],n.mode="pixel"}else(t=r())?(n.categories.analytics=!0===t.analytics,n.categories.ads=!0===t.ads,n.visitorHasChosen=t.visitorHasChosen):(t=e.getCookie("cookie_notice_accepted"))?(n.categories.analytics=!0,n.categories.ads=!0,n.visitorHasChosen=!0):(t=e.getCookie("hu-consent"))?(t=JSON.parse(t),n.categories.analytics=!!t.categories[3],n.categories.ads=!!t.categories[4],n.visitorHasChosen=!0):(t=a())?(n.categories.analytics=!0===t.analytics,n.categories.ads=!0===t.ads,n.visitorHasChosen=!0===t.visitorHasChosen):(t=e.getCookie("moove_gdpr_popup"))?(t=JSON.parse(t),n.categories.analytics="1"===t.thirdparty,n.categories.ads="1"===t.advanced,n.visitorHasChosen=!0):(n.categories.analytics=!s,n.categories.ads=!s)},e.updateConsentCookieValues(),e.setConsentDefaultValuesToExplicit=()=>{n.categories={analytics:!1,ads:!1}},e.canIFire=(t,o)=>{let r;return"category"===n.mode?r=!!n.categories[t]:"pixel"===n.mode?(r=n.pixels.includes(o),!1===r&&"microsoft-ads"===o&&(r=n.pixels.includes("bing-ads"))):(console.error("Couldn't find a valid consent mode in wpmConsentValues"),r=!1),!!r||(e.logPreventedPixelLoading(o,t),!1)},e.logPreventedPixelLoading=(e,t)=>{var o,r,a;null!==(o=wpmDataLayer)&&void 0!==o&&null!==(r=o.shop)&&void 0!==r&&null!==(a=r.cookie_consent_mgmt)&&void 0!==a&&a.explicit_consent?console.log('Pixel Manager for WooCommerce: The "'+e+" (category: "+t+')" pixel has not fired because you have not given consent for it yet. (WPM is in explicit consent mode.)'):console.log('Pixel Manager for WooCommerce: The "'+e+" (category: "+t+')" pixel has not fired because you have removed consent for this pixel. (WPM is in implicit consent mode.)')},e.scriptTagObserver=new MutationObserver((o=>{o.forEach((o=>{let{addedNodes:r}=o;[...r].forEach((o=>{t(o).data("wpm-cookie-category")&&(e.shouldScriptBeActive(o)?e.unblockScript(o):e.blockScript(o))}))}))})),e.scriptTagObserver.observe(document.head,{childList:!0,subtree:!0}),document.addEventListener("DOMContentLoaded",(()=>e.scriptTagObserver.disconnect())),e.shouldScriptBeActive=e=>{var o,r,a,i;return!((wpmDataLayer.shop.cookie_consent_mgmt.explicit_consent||n.visitorHasChosen)&&("category"!==n.mode||!t(e).data("wpm-cookie-category").split(",").some((e=>n.categories[e])))&&("pixel"!==n.mode||!n.pixels.includes(t(e).data("wpm-pixel-name")))&&("pixel"!==n.mode||"google"!==t(e).data("wpm-pixel-name")||!["google-analytics","google-ads"].some((e=>n.pixels.includes(e))))&&(null===(o=wpmDataLayer)||void 0===o||null===(r=o.pixels)||void 0===r||null===(a=r.google)||void 0===a||null===(i=a.consent_mode)||void 0===i||!i.active||"google"!==t(e).data("wpm-pixel-name")))},e.unblockScript=function(e){let r=arguments.length>1&&arguments[1]!==o&&arguments[1];r&&t(e).remove();let a=t(e).data("wpm-src");a&&t(e).attr("src",a),e.type="text/javascript",r&&t(e).appendTo("head"),document.dispatchEvent(new Event("wpmPreLoadPixels"))},e.blockScript=function(e){let r=arguments.length>1&&arguments[1]!==o&&arguments[1];r&&t(e).remove(),t(e).attr("src")&&t(e).removeAttr("src"),e.type="blocked/javascript",r&&t(e).appendTo("head")},e.unblockAllScripts=function(){document.dispatchEvent(new Event("wpmPreLoadPixels"))},e.unblockSelectedPixels=()=>{document.dispatchEvent(new Event("wpmPreLoadPixels"))},document.addEventListener("borlabs-cookie-consent-saved",(()=>{e.updateConsentCookieValues(),"pixel"===n.mode?(e.unblockSelectedPixels(),e.updateGoogleConsentMode(n.pixels.includes("google-analytics"),n.pixels.includes("google-ads"))):(e.unblockAllScripts(n.categories.analytics,n.categories.ads),e.updateGoogleConsentMode(n.categories.analytics,n.categories.ads))})),document.addEventListener("CookiebotOnAccept",(()=>{Cookiebot.consent.statistics&&(n.categories.analytics=!0),Cookiebot.consent.marketing&&(n.categories.ads=!0),e.unblockAllScripts(n.categories.analytics,n.categories.ads),e.updateGoogleConsentMode(n.categories.analytics,n.categories.ads)}),!1),document.addEventListener("CookieScriptAccept",(t=>{t.detail.categories.includes("performance")&&(n.categories.analytics=!0),t.detail.categories.includes("targeting")&&(n.categories.ads=!0),e.unblockAllScripts(n.categories.analytics,n.categories.ads),e.updateGoogleConsentMode(n.categories.analytics,n.categories.ads)})),document.addEventListener("CookieScriptAcceptAll",(()=>{e.unblockAllScripts(!0,!0),e.updateGoogleConsentMode(!0,!0)})),e.cmplzStatusChange=t=>{t.detail.categories.includes("statistics")&&e.updateConsentCookieValues(!0,null),t.detail.categories.includes("marketing")&&e.updateConsentCookieValues(null,!0),e.unblockAllScripts(n.categories.analytics,n.categories.ads),e.updateGoogleConsentMode(n.categories.analytics,n.categories.ads)},document.addEventListener("cmplzStatusChange",e.cmplzStatusChange),document.addEventListener("cmplz_status_change",e.cmplzStatusChange),document.addEventListener("setCookieNotice",(()=>{e.updateConsentCookieValues(),e.unblockAllScripts(n.categories.analytics,n.categories.ads),e.updateGoogleConsentMode(n.categories.analytics,n.categories.ads)})),e.huObserver=new MutationObserver((t=>{t.forEach((t=>{let{addedNodes:o}=t;[...o].forEach((t=>{"hu"===t.id&&document.querySelector(".hu-cookies-save").addEventListener("click",(()=>{e.updateConsentCookieValues(),e.unblockAllScripts(n.categories.analytics,n.categories.ads),e.updateGoogleConsentMode(n.categories.analytics,n.categories.ads)}))}))}))})),window.hu&&e.huObserver.observe(document.documentElement||document.body,{childList:!0,subtree:!0}),e.explicitConsentStateAlreadySet=()=>{if(n.explicitConsentStateAlreadySet)return!0;n.explicitConsentStateAlreadySet=!0}}(window.wpm=window.wpm||{},jQuery)},3299:(e,t,o)=>{"use strict";o.r(t),o(3647),jQuery(document).on("click",".remove_from_cart_button, .remove",(e=>{try{let t=new URL(jQuery(e.currentTarget).attr("href")),o=wpm.getProductIdByCartItemKeyUrl(t);wpm.removeProductFromCart(o)}catch(e){console.error(e)}})),jQuery(document).on("click",".add_to_cart_button:not(.product_type_variable), .ajax_add_to_cart, .single_add_to_cart_button",(e=>{try{let t,o=1;"product"===wpmDataLayer.shop.page_type?(void 0!==jQuery(e.currentTarget).attr("href")&&jQuery(e.currentTarget).attr("href").includes("add-to-cart")&&(t=jQuery(e.currentTarget).data("product_id"),wpm.addProductToCart(t,o)),"simple"===wpmDataLayer.shop.product_type&&(o=Number(jQuery(".input-text.qty").val()),o||0===o||(o=1),t=jQuery(e.currentTarget).val(),wpm.addProductToCart(t,o)),["variable","variable-subscription"].indexOf(wpmDataLayer.shop.product_type)>=0&&(o=Number(jQuery(".input-text.qty").val()),o||0===o||(o=1),t=jQuery("[name='variation_id']").val(),wpm.addProductToCart(t,o)),"grouped"===wpmDataLayer.shop.product_type&&jQuery(".woocommerce-grouped-product-list-item").each(((e,r)=>{o=Number(jQuery(r).find(".input-text.qty").val()),o||0===o||(o=1);let a=jQuery(r).attr("class");t=wpm.getPostIdFromString(a),wpm.addProductToCart(t,o)})),"bundle"===wpmDataLayer.shop.product_type&&(o=Number(jQuery(".input-text.qty").val()),o||0===o||(o=1),t=jQuery("input[name=add-to-cart]").val(),wpm.addProductToCart(t,o))):(t=jQuery(e.currentTarget).data("product_id"),wpm.addProductToCart(t,o))}catch(e){console.error(e)}})),jQuery(document).one("click","a:not(.add_to_cart_button, .ajax_add_to_cart, .single_add_to_cart_button)",(e=>{try{if(jQuery(e.target).closest("a").attr("href")){let t=jQuery(e.target).closest("a").attr("href");if(t.includes("add-to-cart=")){let e=t.match(/(add-to-cart=)(\d+)/);e&&wpm.addProductToCart(e[2],1)}}}catch(e){console.error(e)}})),jQuery(document).on("click",".woocommerce-LoopProduct-link, .wc-block-grid__product, .product, .product-small, .type-product",(e=>{try{let t=jQuery(e.currentTarget).nextAll(".wpmProductId:first").data("id");if(t){if(t=wpm.getIdBasedOndVariationsOutputSetting(t),!t)throw Error("Wasn't able to retrieve a productId");if(wpmDataLayer.products&&wpmDataLayer.products[t]){let e=wpm.getProductDetailsFormattedForEvent(t);jQuery(document).trigger("wpmSelectContentGaUa",e),jQuery(document).trigger("wpmSelectItem",e)}}}catch(e){console.error(e)}})),jQuery(document).one("click",[".checkout-button",".cart-checkout-button",".button.checkout",".xoo-wsc-ft-btn-checkout",".elementor-button--checkout"].join(","),(()=>{jQuery(document).trigger("wpmBeginCheckout")})),jQuery(document).on("input","#billing_email",(e=>{wpm.isEmail(jQuery(e.currentTarget).val())&&(wpm.fireCheckoutProgress(2),wpm.emailSelected=!0)})),jQuery(document).on("click",".wc_payment_methods",(()=>{!1===wpm.paymentMethodSelected&&wpm.fireCheckoutProgress(3),wpm.fireCheckoutOption(3,jQuery("input[name='payment_method']:checked").val()),wpm.paymentMethodSelected=!0})),jQuery(document).one("click","#place_order",(()=>{!1===wpm.emailSelected&&wpm.fireCheckoutProgress(2),!1===wpm.paymentMethodSelected&&(wpm.fireCheckoutProgress(3),wpm.fireCheckoutOption(3,jQuery("input[name='payment_method']:checked").val())),wpm.fireCheckoutProgress(4)})),jQuery(document).on("click","[name='update_cart']",(e=>{try{jQuery(".cart_item").each(((e,t)=>{let o=new URL(jQuery(t).find(".product-remove").find("a").attr("href")),r=wpm.getProductIdByCartItemKeyUrl(o),a=jQuery(t).find(".qty").val();0===a?wpm.removeProductFromCart(r):a<wpmDataLayer.cart[r].quantity?wpm.removeProductFromCart(r,wpmDataLayer.cart[r].quantity-a):a>wpmDataLayer.cart[r].quantity&&wpm.addProductToCart(r,a-wpmDataLayer.cart[r].quantity)}))}catch(e){console.error(e),wpm.getCartItemsFromBackend()}})),jQuery((function(){jQuery(".add_to_wishlist,.wl-add-to").on("click",(e=>{try{let t;if(jQuery(e.currentTarget).data("productid")?t=jQuery(e.currentTarget).data("productid"):jQuery(e.currentTarget).data("product-id")&&(t=jQuery(e.currentTarget).data("product-id")),!t)throw Error("Wasn't able to retrieve a productId");let o=wpm.getProductDetailsFormattedForEvent(t);jQuery(document).trigger("wpmAddToWishlist",o)}catch(e){console.error(e)}}))})),jQuery(document).on("updated_cart_totals",(()=>{jQuery(document).trigger("wpmViewCart")})),jQuery((()=>{jQuery(".single_variation_wrap").on("show_variation",((e,t)=>{try{let e=wpm.getIdBasedOndVariationsOutputSetting(t.variation_id);if(!e)throw Error("Wasn't able to retrieve a productId");wpm.triggerViewItemEventPrep(e)}catch(e){console.error(e)}}))})),jQuery(document).on("wpmLoad",(()=>{try{wpm.doesWooCommerceCartExist()&&wpm.getCartItems()}catch(e){console.error(e)}})),jQuery(document).on("wpmLoad",(()=>{wpmDataLayer.products=wpmDataLayer.products||{};let e=wpm.getAddToCartLinkProductIds();wpm.getProductsFromBackend(e)})),jQuery(document).on("wpmLoad",(()=>{if(!wpm.getCookie("wpmReferrer")&&document.referrer){let e=new URL(document.referrer).hostname;e!==window.location.host&&wpm.setCookie("wpmReferrer",e)}})),jQuery(document).on("wpmLoad",(()=>{try{var e;if("undefined"!=typeof wpmDataLayer&&(null===(e=wpmDataLayer)||void 0===e||!e.wpmLoadFired)){var t,o,r;if(jQuery(document).trigger("wpmLoadAlways"),null!==(t=wpmDataLayer)&&void 0!==t&&t.shop)if("product"===wpmDataLayer.shop.page_type&&"variable"!==wpmDataLayer.shop.product_type&&wpm.getMainProductIdFromProductPage()){let e=wpm.getProductDataForViewItemEvent(wpm.getMainProductIdFromProductPage());jQuery(document).trigger("wpmViewItem",e)}else"product_category"===wpmDataLayer.shop.page_type?jQuery(document).trigger("wpmCategory"):"search"===wpmDataLayer.shop.page_type?jQuery(document).trigger("wpmSearch"):"cart"===wpmDataLayer.shop.page_type?jQuery(document).trigger("wpmViewCart"):"order_received_page"===wpmDataLayer.shop.page_type&&wpmDataLayer.order?wpm.isOrderIdStored(wpmDataLayer.order.id)||(jQuery(document).trigger("wpmOrderReceivedPage"),wpm.writeOrderIdToStorage(wpmDataLayer.order.id),"function"==typeof wpm.acrRemoveCookie&&wpm.acrRemoveCookie()):jQuery(document).trigger("wpmEverywhereElse");else jQuery(document).trigger("wpmEverywhereElse");null!==(o=wpmDataLayer)&&void 0!==o&&null!==(r=o.user)&&void 0!==r&&r.id&&!wpm.hasLoginEventFired()&&(jQuery(document).trigger("wpmLogin"),wpm.setLoginEventFired()),wpmDataLayer.wpmLoadFired=!0}}catch(e){console.error(e)}})),jQuery(document).on("wpmLoad",(async()=>{window.sessionStorage&&window.sessionStorage.getItem("_pmw_endpoint_available")&&!JSON.parse(window.sessionStorage.getItem("_pmw_endpoint_available"))&&console.error("Pixel Manager for WooCommerce: REST endpoint is not available. Using admin-ajax.php instead.")})),jQuery(document).on("wpmPreLoadPixels",(()=>{var e,t,o;null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.shop)&&void 0!==t&&null!==(o=t.cookie_consent_mgmt)&&void 0!==o&&o.explicit_consent&&!wpm.explicitConsentStateAlreadySet()&&wpm.updateConsentCookieValues(null,null,!0),jQuery(document).trigger("wpmLoadPixels",{})})),jQuery(document).on("wpmAddToCart",((e,t)=>{var o,r,a;let n={event:"addToCart",product:t};null!==(o=wpmDataLayer)&&void 0!==o&&null!==(r=o.pixels)&&void 0!==r&&null!==(a=r.facebook)&&void 0!==a&&a.loaded&&(n.facebook={event_name:"AddToCart",event_id:wpm.getFbRandomEventId(),user_data:wpm.getFbUserData(),event_source_url:window.location.href,custom_data:wpm.fbGetProductDataForCapiEvent(t)}),jQuery(document).trigger("wpmClientSideAddToCart",n),"function"==typeof wpm.sendEventPayloadToServer&&wpm.sendEventPayloadToServer(n)})),jQuery(document).on("wpmBeginCheckout",(()=>{var e,t,o;let r={event:"beginCheckout"};var a;null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.pixels)&&void 0!==t&&null!==(o=t.facebook)&&void 0!==o&&o.loaded&&(r.facebook={event_name:"InitiateCheckout",event_id:wpm.getFbRandomEventId(),user_data:wpm.getFbUserData(),event_source_url:window.location.href,custom_data:{}},null!==(a=wpmDataLayer)&&void 0!==a&&a.cart&&!jQuery.isEmptyObject(wpmDataLayer.cart)&&(r.facebook.custom_data={content_type:"product",content_ids:wpm.fbGetContentIdsFromCart(),value:wpm.getCartValue(),currency:wpmDataLayer.shop.currency})),jQuery(document).trigger("wpmClientSideBeginCheckout",r),"function"==typeof wpm.sendEventPayloadToServer&&wpm.sendEventPayloadToServer(r)})),jQuery(document).on("wpmAddToWishlist",((e,t)=>{var o,r,a;let n={event:"addToWishlist",product:t};null!==(o=wpmDataLayer)&&void 0!==o&&null!==(r=o.pixels)&&void 0!==r&&null!==(a=r.facebook)&&void 0!==a&&a.loaded&&(n.facebook={event_name:"AddToWishlist",event_id:wpm.getFbRandomEventId(),user_data:wpm.getFbUserData(),event_source_url:window.location.href,custom_data:wpm.fbGetProductDataForCapiEvent(t)}),jQuery(document).trigger("wpmClientSideAddToWishlist",n),"function"==typeof wpm.sendEventPayloadToServer&&wpm.sendEventPayloadToServer(n)})),jQuery(document).on("wpmViewItem",(function(e){var t,o,r;let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n={event:"viewItem",product:a};null!==(t=wpmDataLayer)&&void 0!==t&&null!==(o=t.pixels)&&void 0!==o&&null!==(r=o.facebook)&&void 0!==r&&r.loaded&&(n.facebook={event_name:"ViewContent",event_id:wpm.getFbRandomEventId(),user_data:wpm.getFbUserData(),event_source_url:window.location.href,custom_data:{}},a&&(n.facebook.custom_data=wpm.fbGetProductDataForCapiEvent(a))),jQuery(document).trigger("wpmClientSideViewItem",n),"function"==typeof wpm.sendEventPayloadToServer&&wpm.sendEventPayloadToServer(n)})),jQuery(document).on("wpmSearch",(()=>{var e,t,o;let r={event:"search"};null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.pixels)&&void 0!==t&&null!==(o=t.facebook)&&void 0!==o&&o.loaded&&(r.facebook={event_name:"Search",event_id:wpm.getFbRandomEventId(),user_data:wpm.getFbUserData(),event_source_url:window.location.href,custom_data:{search_string:wpm.getSearchTermFromUrl()}}),jQuery(document).trigger("wpmClientSideSearch",r),"function"==typeof wpm.sendEventPayloadToServer&&wpm.sendEventPayloadToServer(r)})),jQuery(document).on("wpmOrderReceivedPage",(()=>{var e,t,o;let r={event:"orderReceived"};null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.pixels)&&void 0!==t&&null!==(o=t.facebook)&&void 0!==o&&o.loaded&&(r.facebook={event_name:"Purchase",event_id:wpmDataLayer.order.id,user_data:wpm.getFbUserData(),event_source_url:window.location.href,custom_data:{content_type:"product",value:wpmDataLayer.order.value_filtered,currency:wpmDataLayer.order.currency,content_ids:wpm.facebookContentIds()}}),jQuery(document).trigger("wpmClientSideOrderReceivedPage",r)}))},9584:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__);var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(3647);(function(wpm,$,undefined){const wpmDeduper={keyName:"_wpm_order_ids",cookieExpiresDays:365},wpmRestSettings={cookiePmwRestEndpointAvailable:"_pmw_endpoint_available",restEndpointPost:"pmw/v1/test/post/",restFails:0,restFailsThreshold:10};function checkCookie(){return""!==wpm.getCookie(wpmDeduper.keyName)}wpm.emailSelected=!1,wpm.paymentMethodSelected=!1,wpm.useRestEndpoint=()=>wpm.isSessionStorageAvailable()&&wpm.isRestEndpointAvailable()&&wpm.isBelowRestErrorThreshold(),wpm.isBelowRestErrorThreshold=()=>window.sessionStorage.getItem(wpmRestSettings.restFails)<=wpmRestSettings.restFailsThreshold,wpm.isRestEndpointAvailable=async()=>window.sessionStorage.getItem(wpmRestSettings.cookiePmwRestEndpointAvailable)?JSON.parse(window.sessionStorage.getItem(wpmRestSettings.cookiePmwRestEndpointAvailable)):await wpm.testEndpoint(),wpm.isSessionStorageAvailable=()=>!!window.sessionStorage,wpm.testEndpoint=async function(){let e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:wpm.root+wpmRestSettings.restEndpointPost,t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:wpmRestSettings.cookiePmwRestEndpointAvailable,o=await fetch(e,{method:"POST",mode:"cors",cache:"no-cache",keepalive:!0});return 200===o.status?(window.sessionStorage.setItem(t,JSON.stringify(!0)),!0):404===o.status||0===o.status?(window.sessionStorage.setItem(t,JSON.stringify(!1)),!1):void 0},wpm.isWpmRestEndpointAvailable=function(){let e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:wpmRestSettings.cookiePmwRestEndpointAvailable;return!!wpm.getCookie(e)},wpm.writeOrderIdToStorage=function(e){let t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"thankyou_page";if(window.Storage)if(null===localStorage.getItem(wpmDeduper.keyName)){let t=[];t.push(e),window.localStorage.setItem(wpmDeduper.keyName,JSON.stringify(t))}else{let t=JSON.parse(localStorage.getItem(wpmDeduper.keyName));t.includes(e)||(t.push(e),window.localStorage.setItem(wpmDeduper.keyName,JSON.stringify(t)))}else{let t=new Date;t.setDate(t.getDate()+wpmDeduper.cookieExpiresDays);let o=[];checkCookie()&&(o=JSON.parse(wpm.getCookie(wpmDeduper.keyName))),o.includes(e)||(o.push(e),document.cookie=wpmDeduper.keyName+"="+JSON.stringify(o)+";expires="+t.toUTCString())}"function"==typeof wpm.storeOrderIdOnServer&&wpmDataLayer.orderDeduplication&&wpm.storeOrderIdOnServer(e,t)},wpm.isOrderIdStored=e=>wpmDataLayer.orderDeduplication?window.Storage?null!==localStorage.getItem(wpmDeduper.keyName)&&JSON.parse(localStorage.getItem(wpmDeduper.keyName)).includes(e):!!checkCookie()&&JSON.parse(wpm.getCookie(wpmDeduper.keyName)).includes(e):(console.log("order duplication prevention: off"),!1),wpm.isEmail=e=>/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e),wpm.removeProductFromCart=function(e){let t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;try{if(!e)throw Error("Wasn't able to retrieve a productId");if(!(e=wpm.getIdBasedOndVariationsOutputSetting(e)))throw Error("Wasn't able to retrieve a productId");let o;if(o=null==t?wpmDataLayer.cart[e].quantity:t,wpmDataLayer.cart[e]){let r=wpm.getProductDetailsFormattedForEvent(e,o);jQuery(document).trigger("wpmRemoveFromCart",r),null==t||wpmDataLayer.cart[e].quantity===t?(delete wpmDataLayer.cart[e],sessionStorage&&sessionStorage.setItem("wpmDataLayerCart",JSON.stringify(wpmDataLayer.cart))):(wpmDataLayer.cart[e].quantity=wpmDataLayer.cart[e].quantity-o,sessionStorage&&sessionStorage.setItem("wpmDataLayerCart",JSON.stringify(wpmDataLayer.cart)))}}catch(e){console.error(e)}},wpm.getIdBasedOndVariationsOutputSetting=e=>{try{var t,o;return null!==(t=wpmDataLayer)&&void 0!==t&&null!==(o=t.general)&&void 0!==o&&o.variationsOutput?e:wpmDataLayer.products[e].isVariation?wpmDataLayer.products[e].parentId:e}catch(e){console.error(e)}},wpm.addProductToCart=(e,t)=>{try{var o;if(!e)throw Error("Wasn't able to retrieve a productId");if(!(e=wpm.getIdBasedOndVariationsOutputSetting(e)))throw Error("Wasn't able to retrieve a productId");if(null!==(o=wpmDataLayer)&&void 0!==o&&o.products[e]){var r;let o=wpm.getProductDetailsFormattedForEvent(e,t);jQuery(document).trigger("wpmAddToCart",o),null!==(r=wpmDataLayer)&&void 0!==r&&r.cart[e]?wpmDataLayer.cart[e].quantity=wpmDataLayer.cart[e].quantity+t:("cart"in wpmDataLayer||(wpmDataLayer.cart={}),wpmDataLayer.cart[e]=wpm.getProductDetailsFormattedForEvent(e,t)),sessionStorage&&sessionStorage.setItem("wpmDataLayerCart",JSON.stringify(wpmDataLayer.cart))}}catch(e){console.error(e),wpm.getCartItemsFromBackend()}},wpm.getCartItems=()=>{sessionStorage?sessionStorage.getItem("wpmDataLayerCart")&&"order_received_page"!==wpmDataLayer.shop.page_type?wpm.saveCartObjectToDataLayer(JSON.parse(sessionStorage.getItem("wpmDataLayerCart"))):sessionStorage.setItem("wpmDataLayerCart",JSON.stringify({})):wpm.getCartItemsFromBackend()},wpm.getCartItemsFromBackend=()=>{try{fetch(wpm.ajax_url,{method:"POST",cache:"no-cache",body:new URLSearchParams({action:"pmw_get_cart_items"}),keepalive:!0}).then((e=>{if(e.ok)return e.json();throw Error("Error getting cart items from backend")})).then((e=>{if(!e.success)throw Error("Error getting cart items from backend");e.data.cart||(e.data.cart={}),wpm.saveCartObjectToDataLayer(e.data.cart),sessionStorage&&sessionStorage.setItem("wpmDataLayerCart",JSON.stringify(e.data.cart))}))}catch(e){console.error(e)}},wpm.getProductsFromBackend=async e=>{var t;if(null!==(t=wpmDataLayer)&&void 0!==t&&t.products&&(e=e.filter((e=>!wpmDataLayer.products.hasOwnProperty(e)))),e&&0!==e.length){try{let t;if(t=await wpm.isRestEndpointAvailable()?await fetch(wpm.root+"pmw/v1/products/",{method:"POST",cache:"no-cache",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}):await fetch(wpm.ajax_url,{method:"POST",cache:"no-cache",body:new URLSearchParams({action:"pmw_get_product_ids",productIds:e})}),t.ok){let e=await t.json();e.success&&(wpmDataLayer.products=Object.assign({},wpmDataLayer.products,e.data))}else console.error("Error getting products from backend")}catch(e){console.error(e)}return!0}},wpm.saveCartObjectToDataLayer=e=>{wpmDataLayer.cart=e,wpmDataLayer.products=Object.assign({},wpmDataLayer.products,e)},wpm.triggerViewItemEventPrep=async e=>{wpmDataLayer.products&&wpmDataLayer.products[e]||await wpm.getProductsFromBackend([e]),wpm.triggerViewItemEvent(e)},wpm.triggerViewItemEvent=e=>{let t=wpm.getProductDetailsFormattedForEvent(e);jQuery(document).trigger("wpmViewItem",t)},wpm.triggerViewItemEventNoProduct=()=>{jQuery(document).trigger("wpmViewItem")},wpm.fireCheckoutOption=function(e){let t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null,o=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null,r={step:e,checkout_option:t,value:o};jQuery(document).trigger("wpmFireCheckoutOption",r)},wpm.fireCheckoutProgress=e=>{let t={step:e};jQuery(document).trigger("wpmFireCheckoutProgress",t)},wpm.getPostIdFromString=e=>{try{return e.match(/(post-)(\d+)/)[2]}catch(e){console.error(e)}},wpm.triggerViewItemList=e=>{if(!e)throw Error("Wasn't able to retrieve a productId");if(!(e=wpm.getIdBasedOndVariationsOutputSetting(e)))throw Error("Wasn't able to retrieve a productId");jQuery(document).trigger("wpmViewItemList",wpm.getProductDataForViewItemEvent(e))},wpm.getProductDataForViewItemEvent=e=>{if(!e)throw Error("Wasn't able to retrieve a productId");try{if(wpmDataLayer.products[e])return wpm.getProductDetailsFormattedForEvent(e)}catch(e){console.error(e)}},wpm.getMainProductIdFromProductPage=()=>{try{return["simple","variable","grouped","composite","bundle"].indexOf(wpmDataLayer.shop.product_type)>=0&&jQuery(".wpmProductId:first").data("id")}catch(e){console.error(e)}},wpm.viewItemListTriggerTestMode=e=>{jQuery(e).css({position:"relative"}),jQuery(e).append('<div id="viewItemListTriggerOverlay"></div>'),jQuery(e).find("#viewItemListTriggerOverlay").css({"z-index":"10",display:"block",position:"absolute",height:"100%",top:"0",left:"0",right:"0",opacity:wpmDataLayer.viewItemListTrigger.opacity,"background-color":wpmDataLayer.viewItemListTrigger.backgroundColor})},wpm.getSearchTermFromUrl=()=>{try{return new URLSearchParams(window.location.search).get("s")}catch(e){console.error(e)}};let ioTimeouts={},io;wpm.observerCallback=(e,t)=>{e.forEach((e=>{try{let o,r=jQuery(e.target).data("ioid");if(o=jQuery(e.target).next(".wpmProductId").length?jQuery(e.target).next(".wpmProductId").data("id"):jQuery(e.target).find(".wpmProductId").data("id"),!o)throw Error("wpmProductId element not found");e.isIntersecting?ioTimeouts[r]=setTimeout((()=>{wpm.triggerViewItemList(o),wpmDataLayer.viewItemListTrigger.testMode&&wpm.viewItemListTriggerTestMode(e.target),!1===wpmDataLayer.viewItemListTrigger.repeat&&t.unobserve(e.target)}),wpmDataLayer.viewItemListTrigger.timeout):(clearTimeout(ioTimeouts[r]),wpmDataLayer.viewItemListTrigger.testMode&&jQuery(e.target).find("#viewItemListTriggerOverlay").remove())}catch(e){console.error(e)}}))};let ioid=0,allIoElementsToWatch,getAllElementsToWatch=()=>{allIoElementsToWatch=jQuery(".wpmProductId").map((function(e,t){return jQuery(t).parent().hasClass("type-product")||jQuery(t).parent().hasClass("product")||jQuery(t).parent().hasClass("product-item-inner")?jQuery(t).parent():jQuery(t).prev().hasClass("wc-block-grid__product")||jQuery(t).prev().hasClass("product")||jQuery(t).prev().hasClass("product-small")||jQuery(t).prev().hasClass("woocommerce-LoopProduct-link")?jQuery(this).prev():jQuery(t).closest(".product").length?jQuery(t).closest(".product"):void 0}))};wpm.startIntersectionObserverToWatch=()=>{try{wpm.urlHasParameter("vildemomode")&&(wpmDataLayer.viewItemListTrigger.testMode=!0),io=new IntersectionObserver(wpm.observerCallback,{threshold:wpmDataLayer.viewItemListTrigger.threshold}),getAllElementsToWatch(),allIoElementsToWatch.each(((e,t)=>{jQuery(t[0]).data("ioid",ioid++),io.observe(t[0])}))}catch(e){console.error(e)}},wpm.startProductsMutationObserverToWatch=()=>{try{let e=jQuery(".wpmProductId:eq(0)").parents().has(jQuery(".wpmProductId:eq(1)").parents()).first();e.length&&productsMutationObserver.observe(e[0],{attributes:!0,childList:!0,characterData:!0})}catch(e){console.error(e)}};let productsMutationObserver=new MutationObserver((e=>{e.forEach((e=>{let t=e.addedNodes;null!==t&&jQuery(t).each((function(){(jQuery(this).hasClass("type-product")||jQuery(this).hasClass("product-small")||jQuery(this).hasClass("wc-block-grid__product"))&&hasWpmProductIdElement(this)&&(jQuery(this).data("ioid",ioid++),io.observe(this))}))}))})),hasWpmProductIdElement=e=>!(!jQuery(e).find(".wpmProductId").length&&!jQuery(e).siblings(".wpmProductId").length);wpm.setCookie=function(e){let t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"",o=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;if(o){let r=new Date;r.setTime(r.getTime()+24*o*60*60*1e3);let a="expires="+r.toUTCString();document.cookie=e+"="+t+";"+a+";path=/"}else document.cookie=e+"="+t+";path=/"},wpm.getCookie=e=>{let t=e+"=",o=decodeURIComponent(document.cookie).split(";");for(let e=0;e<o.length;e++){let r=o[e];for(;" "==r.charAt(0);)r=r.substring(1);if(0==r.indexOf(t))return r.substring(t.length,r.length)}return""},wpm.deleteCookie=e=>{wpm.setCookie(e,"",-1)},wpm.getWpmSessionData=()=>{if(window.sessionStorage){let e=window.sessionStorage.getItem("_wpm");return null!==e?JSON.parse(e):{}}return{}},wpm.setWpmSessionData=e=>{window.sessionStorage&&window.sessionStorage.setItem("_wpm",JSON.stringify(e))},wpm.storeOrderIdOnServer=async(e,t)=>{try{let o;o=await wpm.isRestEndpointAvailable()?await fetch(wpm.root+"pmw/v1/pixels-fired/",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({order_id:e,source:t}),keepalive:!0,cache:"no-cache"}):await fetch(wpm.ajax_url,{method:"POST",body:new URLSearchParams({action:"pmw_purchase_pixels_fired",order_id:e,source:t}),keepalive:!0}),o.ok?console.log("wpm.storeOrderIdOnServer success"):console.error("wpm.storeOrderIdOnServer error")}catch(e){console.error(e)}},wpm.getProductIdByCartItemKeyUrl=e=>{let t,o=new URLSearchParams(e.search).get("remove_item");return t=0===wpmDataLayer.cartItemKeys[o].variation_id?wpmDataLayer.cartItemKeys[o].product_id:wpmDataLayer.cartItemKeys[o].variation_id,t},wpm.getAddToCartLinkProductIds=()=>jQuery("a").map((function(){let e=jQuery(this).attr("href");if(e&&e.includes("?add-to-cart=")){let t=e.match(/(add-to-cart=)(\d+)/);if(t)return t[2]}})).get(),wpm.getProductDetailsFormattedForEvent=function(e){let t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:1,o={id:e.toString(),dyn_r_ids:wpmDataLayer.products[e].dyn_r_ids,name:wpmDataLayer.products[e].name,list_name:wpmDataLayer.shop.list_name,brand:wpmDataLayer.products[e].brand,category:wpmDataLayer.products[e].category,variant:wpmDataLayer.products[e].variant,list_position:wpmDataLayer.products[e].position,quantity:t,price:wpmDataLayer.products[e].price,currency:wpmDataLayer.shop.currency,isVariable:wpmDataLayer.products[e].isVariable,isVariation:wpmDataLayer.products[e].isVariation,parentId:wpmDataLayer.products[e].parentId};return o.isVariation&&(o.parentId_dyn_r_ids=wpmDataLayer.products[e].parentId_dyn_r_ids),o},wpm.setReferrerToCookie=()=>{wpm.getCookie("wpmReferrer")||wpm.setCookie("wpmReferrer",document.referrer)},wpm.getReferrerFromCookie=()=>wpm.getCookie("wpmReferrer")?wpm.getCookie("wpmReferrer"):null,wpm.getClidFromBrowser=function(){let e,t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"gclid";return e={gclid:"_gcl_aw",dclid:"_gcl_dc"},wpm.getCookie(e[t])?wpm.getCookie(e[t]).match(/(GCL.[\d]*.)(.*)/)[2]:""},wpm.getUserAgent=()=>navigator.userAgent,wpm.getViewPort=()=>({width:Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),height:Math.max(document.documentElement.clientHeight||0,window.innerHeight||0)}),wpm.version=()=>{console.log(wpmDataLayer.version)},wpm.loadScriptAndCacheIt=url=>fetch(url,{method:"GET",cache:"default",keepalive:!0}).then((e=>{if(e.ok)return e.text();throw new Error("Network response was not ok: "+url)})).then((script=>{eval(script)})).catch((e=>{console.error(e)})),wpm.getOrderItemPrice=e=>(e.total+e.total_tax)/e.quantity,wpm.hasLoginEventFired=()=>{let e=wpm.getWpmSessionData();return null==e?void 0:e.loginEventFired},wpm.setLoginEventFired=()=>{let e=wpm.getWpmSessionData();e.loginEventFired=!0,wpm.setWpmSessionData(e)},wpm.wpmDataLayerExists=()=>new Promise((e=>{!function t(){if("undefined"!=typeof wpmDataLayer)return e();setTimeout(t,50)}()})),wpm.jQueryExists=()=>new Promise((e=>{!function t(){if("undefined"!=typeof jQuery)return e();setTimeout(t,100)}()})),wpm.pageLoaded=()=>new Promise((e=>{!function t(){if("complete"===document.readyState)return e();setTimeout(t,50)}()})),wpm.pageReady=()=>new Promise((e=>{!function t(){if("interactive"===document.readyState||"complete"===document.readyState)return e();setTimeout(t,50)}()})),wpm.isMiniCartActive=()=>{if(window.sessionStorage){for(const[e,t]of Object.entries(window.sessionStorage))if(e.includes("wc_fragments"))return!0;return!1}return!1},wpm.doesWooCommerceCartExist=()=>document.cookie.includes("woocommerce_items_in_cart"),wpm.urlHasParameter=e=>new URLSearchParams(window.location.search).has(e),wpm.hashAsync=(e,t)=>crypto.subtle.digest(e,new TextEncoder("utf-8").encode(t)).then((e=>Array.prototype.map.call(new Uint8Array(e),(e=>("00"+e.toString(16)).slice(-2))).join(""))),wpm.getCartValue=()=>{var e;let t=0;if(null!==(e=wpmDataLayer)&&void 0!==e&&e.cart)for(const e in wpmDataLayer.cart){let o=wpmDataLayer.cart[e];t+=o.quantity*o.price}return t}})(window.wpm=window.wpm||{},jQuery)},3534:(e,t,o)=>{o(9584),o(473)},7207:()=>{wpm.wpmDataLayerExists().then((function(){console.log("Pixel Manager for WooCommerce: "+(wpmDataLayer.version.pro?"Pro":"Free")+" Version "+wpmDataLayer.version.number+" loaded"),document.dispatchEvent(new Event("wpmPreLoadPixels"))})).then((function(){wpm.pageLoaded().then((function(){document.dispatchEvent(new Event("wpmLoad"))}))})),wpm.pageReady().then((function(){wpm.wpmDataLayerExists().then((function(){wpm.startIntersectionObserverToWatch(),wpm.startProductsMutationObserverToWatch()}))}))}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var o=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](o,o.exports,__webpack_require__),o.exports}__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__(3534),wpm.jQueryExists().then((function(){__webpack_require__(3299),__webpack_require__(8069),__webpack_require__(5012),__webpack_require__(8787),__webpack_require__(7207)}))})();
2
  //# sourceMappingURL=wpm-public.p1.min.js.map
js/public/wpm-public.p1.min.js.br CHANGED
Binary file
js/public/wpm-public.p1.min.js.gz CHANGED
Binary file
js/public/wpm-public.p1.min.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"wpm-public.p1.min.js","mappings":"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","sources":["webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/a-callable.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/add-to-unscopables.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/an-object.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/array-includes.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/classof-raw.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/create-property-descriptor.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/define-built-in.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/define-global-property.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/descriptors.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/document-create-element.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/engine-user-agent.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/engine-v8-version.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/enum-bug-keys.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/export.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/fails.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/function-bind-native.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/function-call.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/function-name.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/function-uncurry-this.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/get-built-in.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/get-method.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/global.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/has-own-property.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/hidden-keys.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/html.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/ie8-dom-define.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/indexed-object.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/inspect-source.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/internal-state.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/is-callable.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/is-forced.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/is-object.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/is-pure.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/is-symbol.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/length-of-array-like.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/make-built-in.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/math-trunc.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/native-symbol.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/native-weak-map.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/object-create.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/object-define-properties.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/object-define-property.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/object-keys-internal.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/object-keys.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/own-keys.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/require-object-coercible.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/shared-key.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/shared-store.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/shared.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/to-absolute-index.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/to-indexed-object.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/to-length.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/to-object.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/to-primitive.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/to-property-key.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/try-to-string.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/uid.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/well-known-symbol.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/modules/es.array.includes.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/facebook/event_listeners.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/facebook/functions.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/facebook/loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/ads/event_listeners.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/ads/functions.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/ads/loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/analytics/ga3/event_listeners.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/analytics/ga3/functions.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/analytics/ga3/loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/analytics/ga4/event_listeners.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/analytics/ga4/functions.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/analytics/ga4/loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/analytics/loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/base/event_listeners.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/base/functions.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/base/loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/optimize/event_listeners.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/optimize/functions.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/optimize/loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/hotjar/event_listeners.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/hotjar/functions.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/hotjar/loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/wpm/cookie_consent.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/wpm/event_listeners.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/wpm/functions.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/wpm/functions_loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/wpm/init.js","webpack://Pixel-Manager-for-WooCommerce/webpack/bootstrap","webpack://Pixel-Manager-for-WooCommerce/webpack/runtime/global","webpack://Pixel-Manager-for-WooCommerce/webpack/runtime/make namespace object","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/main.js"],"sourcesContent":["var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es-x/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es-x/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es-x/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es-x/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es-x/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es-x/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es-x/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.24.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.24.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","/**\n * All event listeners\n *\n * https://developers.facebook.com/docs/meta-pixel/reference\n * */\n\n// Load pixel event\njQuery(document).on(\"wpmLoadPixels\", () => {\n\n\tif (wpmDataLayer?.pixels?.facebook?.pixel_id && !wpmDataLayer?.pixels?.facebook?.loaded) {\n\t\tif (wpm.canIFire(\"ads\", \"facebook-ads\")) wpm.loadFacebookPixel()\n\t}\n})\n\n// AddToCart event\n// https://developers.facebook.com/docs/meta-pixel/reference\njQuery(document).on(\"wpmClientSideAddToCart\", (event, payload) => {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\tfbq(\"track\", \"AddToCart\", payload.facebook.custom_data, {\n\t\t\teventID: payload.facebook.event_id,\n\t\t})\n\t} catch (error) {\n\t\tconsole.error(error)\n\t}\n})\n\n// InitiateCheckout event\n// https://developers.facebook.com/docs/meta-pixel/reference\njQuery(document).on(\"wpmClientSideBeginCheckout\", (event, payload) => {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\tfbq(\"track\", \"InitiateCheckout\", payload.facebook.custom_data, {\n\t\t\teventID: payload.facebook.event_id,\n\t\t})\n\t} catch (error) {\n\t\tconsole.error(error)\n\t}\n})\n\n// AddToWishlist event\n// https://developers.facebook.com/docs/meta-pixel/reference\njQuery(document).on(\"wpmClientSideAddToWishlist\", (event, payload) => {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\tfbq(\"track\", \"AddToWishlist\", payload.facebook.custom_data, {\n\t\t\teventID: payload.facebook.event_id,\n\t\t})\n\t} catch (error) {\n\t\tconsole.error(error)\n\t}\n})\n\n// ViewContent event\n// https://developers.facebook.com/docs/meta-pixel/reference\njQuery(document).on(\"wpmClientSideViewItem\", (event, payload) => {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\tfbq(\"track\", \"ViewContent\", payload.facebook.custom_data, {\n\t\t\teventID: payload.facebook.event_id,\n\t\t})\n\t} catch (error) {\n\t\tconsole.error(error)\n\t}\n})\n\n\n// view search event\n// https://developers.facebook.com/docs/meta-pixel/reference\njQuery(document).on(\"wpmClientSideSearch\", (event, payload) => {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\tfbq(\"track\", \"Search\", payload.facebook.custom_data, {\n\t\t\teventID: payload.facebook.event_id,\n\t\t})\n\t} catch (error) {\n\t\tconsole.error(error)\n\t}\n})\n\n// load always event\njQuery(document).on(\"wpmLoadAlways\", () => {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\twpm.setFbUserData()\n\t} catch (error) {\n\t\tconsole.error(error)\n\t}\n})\n\n// view order received page event\n// https://developers.facebook.com/docs/meta-pixel/reference\njQuery(document).on(\"wpmClientSideOrderReceivedPage\", (event, payload) => {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\tfbq(\"track\", \"Purchase\", payload.facebook.custom_data, {\n\t\t\teventID: payload.facebook.event_id,\n\t\t})\n\t} catch (error) {\n\t\tconsole.error(error)\n\t}\n})\n","/**\n * Add functions for Facebook\n * */\n\n(function (wpm, $, undefined) {\n\n\tlet fbUserData\n\n\twpm.loadFacebookPixel = () => {\n\n\t\ttry {\n\t\t\twpmDataLayer.pixels.facebook.loaded = true\n\n\t\t\t// @formatter:off\n\t\t\t!function(f,b,e,v,n,t,s)\n\t\t\t{if(f.fbq)return;n=f.fbq=function(){n.callMethod?\n\t\t\t\tn.callMethod.apply(n,arguments):n.queue.push(arguments)};\n\t\t\t\tif(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';\n\t\t\t\tn.queue=[];t=b.createElement(e);t.async=!0;\n\t\t\t\tt.src=v;s=b.getElementsByTagName(e)[0];\n\t\t\t\ts.parentNode.insertBefore(t,s)}(window, document,'script',\n\t\t\t\t'https://connect.facebook.net/en_US/fbevents.js');\n\t\t\t// @formatter:on\n\n\t\t\tlet data = {}\n\n\t\t\t// Add user identifiers to data,\n\t\t\t// and only if fbp was set\n\t\t\tif (wpm.isFbpSet()) {\n\t\t\t\tdata = {...wpm.getUserIdentifiersForFb()}\n\t\t\t}\n\n\t\t\tfbq(\"init\", wpmDataLayer.pixels.facebook.pixel_id, data)\n\t\t\tfbq(\"track\", \"PageView\")\n\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\t// https://developers.facebook.com/docs/meta-pixel/advanced/advanced-matching\n\twpm.getUserIdentifiersForFb = () => {\n\n\t\tlet data = {}\n\n\t\t// external ID\n\t\tif (wpmDataLayer?.user?.id) data.external_id = wpmDataLayer.user.id\n\t\tif (wpmDataLayer?.order?.user_id) data.external_id = wpmDataLayer.order.user_id\n\n\t\t// email\n\t\tif (wpmDataLayer?.user?.facebook?.email) data.em = wpmDataLayer.user.facebook.email\n\t\tif (wpmDataLayer?.order?.billing_email_hashed) data.em = wpmDataLayer.order.billing_email_hashed\n\n\t\t// first name\n\t\tif (wpmDataLayer?.user?.facebook?.first_name) data.fn = wpmDataLayer.user.facebook.first_name\n\t\tif (wpmDataLayer?.order?.billing_first_name) data.fn = wpmDataLayer.order.billing_first_name.toLowerCase()\n\n\t\t// last name\n\t\tif (wpmDataLayer?.user?.facebook?.last_name) data.ln = wpmDataLayer.user.facebook.last_name\n\t\tif (wpmDataLayer?.order?.billing_last_name) data.ln = wpmDataLayer.order.billing_last_name.toLowerCase()\n\n\t\t// phone\n\t\tif (wpmDataLayer?.user?.facebook?.phone) data.ph = wpmDataLayer.user.facebook.phone\n\t\tif (wpmDataLayer?.order?.billing_phone) data.ph = wpmDataLayer.order.billing_phone.replace(\"+\", \"\")\n\n\t\t// city\n\t\tif (wpmDataLayer?.user?.facebook?.city) data.ct = wpmDataLayer.user.facebook.city\n\t\tif (wpmDataLayer?.order?.billing_city) data.ct = wpmDataLayer.order.billing_city.toLowerCase().replace(/ /g, \"\")\n\n\t\t// state\n\t\tif (wpmDataLayer?.user?.facebook?.state) data.st = wpmDataLayer.user.facebook.state\n\t\tif (wpmDataLayer?.order?.billing_state) data.st = wpmDataLayer.order.billing_state.toLowerCase().replace(/[a-zA-Z]{2}-/, \"\")\n\n\t\t// postcode\n\t\tif (wpmDataLayer?.user?.facebook?.postcode) data.zp = wpmDataLayer.user.facebook.postcode\n\t\tif (wpmDataLayer?.order?.billing_postcode) data.zp = wpmDataLayer.order.billing_postcode\n\n\t\t// country\n\t\tif (wpmDataLayer?.user?.facebook?.country) data.country = wpmDataLayer.user.facebook.country\n\t\tif (wpmDataLayer?.order?.billing_country) data.country = wpmDataLayer.order.billing_country.toLowerCase()\n\n\t\treturn data\n\t}\n\n\twpm.getFbRandomEventId = () => (Math.random() + 1).toString(36).substring(2)\n\n\twpm.getFbUserData = () => {\n\n\t\t/**\n\t\t * We need to cache the FB user data for InitiateCheckout\n\t\t * where getting the user data from the browser is too slow\n\t\t * using wpm.getCookie().\n\t\t *\n\t\t * And we need the object merge because the ViewContent hit happens too fast\n\t\t * after adding a variation to the cart because the function to cache\n\t\t * the user data is too slow.\n\t\t *\n\t\t * But we can get the user_data using wpm.getCookie()\n\t\t * because we don't move away from the page and can wait for the browser\n\t\t * to get it.\n\t\t *\n\t\t * Also, the merge ensures that new data will be added to fbUserData if new\n\t\t * data is being added later, like user ID, or fbc.\n\t\t */\n\n\t\tfbUserData = {...fbUserData, ...wpm.getFbUserDataFromBrowser()}\n\n\t\treturn fbUserData\n\t}\n\n\twpm.setFbUserData = () => {\n\t\tfbUserData = wpm.getFbUserDataFromBrowser()\n\t}\n\n\twpm.getFbUserDataFromBrowser = () => {\n\n\t\tlet\n\t\t\tdata = {}\n\n\t\tif (wpm.getCookie(\"_fbp\") && wpm.isValidFbp(wpm.getCookie(\"_fbp\"))) {\n\t\t\tdata.fbp = wpm.getCookie(\"_fbp\")\n\t\t}\n\n\t\tif (wpm.getCookie(\"_fbc\") && wpm.isValidFbc(wpm.getCookie(\"_fbc\"))) {\n\t\t\tdata.fbc = wpm.getCookie(\"_fbc\")\n\t\t}\n\n\t\tif (wpmDataLayer?.user?.id) {\n\t\t\tdata.external_id = wpmDataLayer.user.id\n\t\t}\n\n\t\tif (navigator.userAgent) {\n\t\t\tdata.client_user_agent = navigator.userAgent\n\t\t}\n\n\t\treturn data\n\t}\n\n\twpm.isFbpSet = () => {\n\t\treturn !!wpm.getCookie(\"_fbp\")\n\t}\n\n\t// https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/fbp-and-fbc/\n\twpm.isValidFbp = fbp => {\n\n\t\tlet re = new RegExp(/^fb\\.[0-2]\\.\\d{13}\\.\\d{8,20}$/)\n\n\t\treturn re.test(fbp)\n\t}\n\n\t// https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/fbp-and-fbc/\n\twpm.isValidFbc = fbc => {\n\n\t\tlet re = new RegExp(/^fb\\.[0-2]\\.\\d{13}\\.[\\da-zA-Z_-]{8,}/)\n\n\t\treturn re.test(fbc)\n\t}\n\n\t// wpm.fbViewContent = (product = null) => {\n\t//\n\t// \ttry {\n\t// \t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\t//\n\t// \t\tlet eventId = wpm.getFbRandomEventId()\n\t//\n\t// \t\tlet data = {}\n\t//\n\t// \t\tif (product) {\n\t// \t\t\tdata.content_type = \"product\"\n\t// \t\t\tdata.content_name = product.name\n\t// \t\t\t// data.content_category = product.category\n\t// \t\t\tdata.content_ids = product.dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type]\n\t// \t\t\tdata.currency = wpmDataLayer.shop.currency\n\t// \t\t\tdata.value = product.price\n\t// \t\t}\n\t//\n\t// \t\tfbq(\"track\", \"ViewContent\", data, {\n\t// \t\t\teventID: eventId,\n\t// \t\t})\n\t//\n\t// \t\tlet capiData = {\n\t// \t\t\tevent_name : \"ViewContent\",\n\t// \t\t\tevent_id : eventId,\n\t// \t\t\tuser_data : wpm.getFbUserData(),\n\t// \t\t\tevent_source_url: window.location.href,\n\t// \t\t}\n\t//\n\t// \t\tif (product) {\n\t// \t\t\tproduct[\"currency\"] = wpmDataLayer.shop.currency\n\t// \t\t\tcapiData.custom_data = wpm.fbGetProductDataForCapiEvent(product)\n\t// \t\t}\n\t//\n\t// \t\tjQuery(document).trigger(\"wpmFbCapiEvent\", capiData)\n\t// \t} catch (e) {\n\t// \t\tconsole.error(e)\n\t// \t}\n\t// }\n\n\twpm.fbGetProductDataForCapiEvent = product => {\n\t\treturn {\n\t\t\tcontent_type: \"product\",\n\t\t\tcontent_name: product.name,\n\t\t\tcontent_ids : [\n\t\t\t\tproduct.dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type],\n\t\t\t],\n\t\t\tvalue : parseFloat(product.quantity * product.price),\n\t\t\tcurrency : product.currency,\n\t\t}\n\t}\n\n\twpm.facebookContentIds = () => {\n\t\tlet prodIds = []\n\n\t\tfor (const [key, item] of Object.entries(wpmDataLayer.order.items)) {\n\n\t\t\tif (wpmDataLayer?.general?.variationsOutput && 0 !== item.variation_id) {\n\t\t\t\tprodIds.push(String(wpmDataLayer.products[item.variation_id].dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type]))\n\t\t\t} else {\n\t\t\t\tprodIds.push(String(wpmDataLayer.products[item.id].dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type]))\n\t\t\t}\n\t\t}\n\n\t\treturn prodIds\n\t}\n\n\twpm.trackCustomFacebookEvent = (eventName, customData = {}) => {\n\t\ttry {\n\t\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\t\tlet eventId = wpm.getFbRandomEventId()\n\n\t\t\tfbq(\"trackCustom\", eventName, customData, {\n\t\t\t\teventID: eventId,\n\t\t\t})\n\n\t\t\tjQuery(document).trigger(\"wpmFbCapiEvent\", {\n\t\t\t\tevent_name : eventName,\n\t\t\t\tevent_id : eventId,\n\t\t\t\tuser_data : wpm.getFbUserData(),\n\t\t\t\tevent_source_url: window.location.href,\n\t\t\t\tcustom_data : customData,\n\t\t\t})\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.fbGetContentIdsFromCart = () => {\n\n\t\tlet content_ids = []\n\n\t\tfor(const key in wpmDataLayer.cart){\n\t\t\tcontent_ids.push(wpmDataLayer.products[key].dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type])\n\t\t}\n\t\t\n\t\treturn content_ids\n\t}\n\n}(window.wpm = window.wpm || {}, jQuery));\n","/**\n * Facebook loader\n */\n\nrequire(\"./functions\")\nrequire(\"./event_listeners\")\n\n// #if process.env.TIER === 'premium'\n// require(\"./functions_premium\")\n// require(\"./event_listeners_premium\")\n// #endif\n\n","/**\n * Load Google Ads event listeners\n * */\n\n// view_item_list event\njQuery(document).on(\"wpmViewItemList\", function (event, product) {\n\n\ttry {\n\t\tif (jQuery.isEmptyObject(wpmDataLayer?.pixels?.google?.ads?.conversionIds)) return\n\t\tif (!wpmDataLayer?.pixels?.google?.ads?.dynamic_remarketing?.status) return\n\t\tif (!wpm.googleConfigConditionsMet(\"ads\")) return\n\n\n\t\tif (\n\t\t\twpmDataLayer?.general?.variationsOutput &&\n\t\t\tproduct.isVariable &&\n\t\t\twpmDataLayer.pixels.google.ads.dynamic_remarketing.send_events_with_parent_ids === false\n\t\t) return\n\n\t\t// try to prevent that WC sends cached hits to Google\n\t\tif (!product) return\n\n\t\tlet data = {\n\t\t\tsend_to: wpm.getGoogleAdsConversionIdentifiers(),\n\t\t\titems : [{\n\t\t\t\tid : product.dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type],\n\t\t\t\tgoogle_business_vertical: wpmDataLayer.pixels.google.ads.google_business_vertical,\n\t\t\t}],\n\t\t}\n\n\t\tif (wpmDataLayer?.user?.id) {\n\t\t\tdata.user_id = wpmDataLayer.user.id\n\t\t}\n\n\t\twpm.gtagLoaded().then(function () {\n\t\t\tgtag(\"event\", \"view_item_list\", data)\n\t\t})\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// add_to_cart event\njQuery(document).on(\"wpmAddToCart\", function (event, product) {\n\n\ttry {\n\t\tif (jQuery.isEmptyObject(wpmDataLayer?.pixels?.google?.ads?.conversionIds)) return\n\t\tif (!wpmDataLayer?.pixels?.google?.ads?.dynamic_remarketing?.status) return\n\t\tif (!wpm.googleConfigConditionsMet(\"ads\")) return\n\n\t\tlet data = {\n\t\t\tsend_to: wpm.getGoogleAdsConversionIdentifiers(),\n\t\t\tvalue : product.quantity * product.price,\n\t\t\titems : [{\n\t\t\t\tid : product.dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type],\n\t\t\t\tquantity : product.quantity,\n\t\t\t\tprice : product.price,\n\t\t\t\tgoogle_business_vertical: wpmDataLayer.pixels.google.ads.google_business_vertical,\n\t\t\t}],\n\t\t}\n\n\t\tif (wpmDataLayer?.user?.id) {\n\t\t\tdata.user_id = wpmDataLayer.user.id\n\t\t}\n\n\t\twpm.gtagLoaded().then(function () {\n\t\t\tgtag(\"event\", \"add_to_cart\", data)\n\t\t})\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// view_item event\njQuery(document).on(\"wpmViewItem\", (event, product = null) => {\n\n\ttry {\n\t\tif (jQuery.isEmptyObject(wpmDataLayer?.pixels?.google?.ads?.conversionIds)) return\n\t\tif (!wpmDataLayer?.pixels?.google?.ads?.dynamic_remarketing?.status) return\n\t\tif (!wpm.googleConfigConditionsMet(\"ads\")) return\n\n\t\tlet data = {\n\t\t\tsend_to: wpm.getGoogleAdsConversionIdentifiers(),\n\t\t}\n\n\t\tif (product) {\n\t\t\tdata.value = (product.quantity ? product.quantity : 1) * product.price\n\t\t\tdata.items = [{\n\t\t\t\tid : product.dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type],\n\t\t\t\tquantity : (product.quantity ? product.quantity : 1),\n\t\t\t\tprice : product.price,\n\t\t\t\tgoogle_business_vertical: wpmDataLayer.pixels.google.ads.google_business_vertical,\n\t\t\t}]\n\t\t}\n\n\t\tif (wpmDataLayer?.user?.id) {\n\t\t\tdata.user_id = wpmDataLayer.user.id\n\t\t}\n\n\t\twpm.gtagLoaded().then(function () {\n\t\t\tgtag(\"event\", \"view_item\", data)\n\t\t})\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n\n// view search event\njQuery(document).on(\"wpmSearch\", function () {\n\n\ttry {\n\t\tif (jQuery.isEmptyObject(wpmDataLayer?.pixels?.google?.ads?.conversionIds)) return\n\t\tif (!wpmDataLayer?.pixels?.google?.ads?.dynamic_remarketing?.status) return\n\t\tif (!wpm.googleConfigConditionsMet(\"ads\")) return\n\n\n\t\tlet products = []\n\n\t\tfor (const [key, product] of Object.entries(wpmDataLayer.products)) {\n\n\t\t\tif (\n\t\t\t\twpmDataLayer?.general?.variationsOutput &&\n\t\t\t\tproduct.isVariable &&\n\t\t\t\twpmDataLayer.pixels.google.ads.dynamic_remarketing.send_events_with_parent_ids === false\n\t\t\t) return\n\n\t\t\tproducts.push({\n\t\t\t\tid : product.dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type],\n\t\t\t\tgoogle_business_vertical: wpmDataLayer.pixels.google.ads.google_business_vertical,\n\t\t\t})\n\t\t}\n\n\t\t// console.log(products);\n\n\t\tlet data = {\n\t\t\tsend_to: wpm.getGoogleAdsConversionIdentifiers(),\n\t\t\t// value : 1 * product.price,\n\t\t\titems: products,\n\t\t}\n\n\t\tif (wpmDataLayer?.user?.id) {\n\t\t\tdata.user_id = wpmDataLayer.user.id\n\t\t}\n\n\t\twpm.gtagLoaded().then(function () {\n\t\t\tgtag(\"event\", \"view_search_results\", data)\n\t\t})\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n\n// view order received page event\n// TODO distinguish with or without cart data active\njQuery(document).on(\"wpmOrderReceivedPage\", function () {\n\n\ttry {\n\t\tif (jQuery.isEmptyObject(wpmDataLayer?.pixels?.google?.ads?.conversionIds)) return\n\t\tif (!wpmDataLayer?.pixels?.google?.ads?.dynamic_remarketing?.status) return\n\t\tif (!wpm.googleConfigConditionsMet(\"ads\")) return\n\n\t\tlet data = {\n\t\t\tsend_to: wpm.getGoogleAdsConversionIdentifiers(),\n\t\t\tvalue : wpmDataLayer.order.value_filtered,\n\t\t\titems : wpm.getGoogleAdsDynamicRemarketingOrderItems(),\n\t\t}\n\n\t\tif (wpmDataLayer?.user?.id) {\n\t\t\tdata.user_id = wpmDataLayer.user.id\n\t\t}\n\n\t\twpm.gtagLoaded().then(function () {\n\t\t\tgtag(\"event\", \"purchase\", data)\n\t\t})\n\n\t\t// console.log(wpm.getGoogleAdsDynamicRemarketingOrderItems())\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// user log in event\njQuery(document).on(\"wpmLogin\", function () {\n\n\ttry {\n\t\tif (jQuery.isEmptyObject(wpmDataLayer?.pixels?.google?.ads?.conversionIds)) return\n\t\tif (!wpmDataLayer?.pixels?.google?.ads?.dynamic_remarketing?.status) return\n\t\tif (!wpm.googleConfigConditionsMet(\"ads\")) return\n\n\t\tlet data = {\n\t\t\tsend_to: wpm.getGoogleAdsConversionIdentifiers(),\n\t\t}\n\n\t\tif (wpmDataLayer?.user?.id) {\n\t\t\tdata.user_id = wpmDataLayer.user.id\n\t\t}\n\n\t\twpm.gtagLoaded().then(function () {\n\t\t\tgtag(\"event\", \"login\", data)\n\t\t})\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// conversion event\n// new_customer parameter: https://support.google.com/google-ads/answer/9917012\njQuery(document).on(\"wpmOrderReceivedPage\", function () {\n\n\ttry {\n\t\tif (jQuery.isEmptyObject(wpm.getGoogleAdsConversionIdentifiersWithLabel())) return\n\t\tif (!wpm.googleConfigConditionsMet(\"ads\")) return\n\n\t\tlet data_basic = {}\n\t\tlet data_with_cart = {}\n\n\t\tdata_basic = {\n\t\t\tsend_to : wpm.getGoogleAdsConversionIdentifiersWithLabel(),\n\t\t\ttransaction_id: wpmDataLayer.order.number,\n\t\t\tvalue : wpmDataLayer.order.value_filtered,\n\t\t\tcurrency : wpmDataLayer.order.currency,\n\t\t\tnew_customer : wpmDataLayer.order.new_customer,\n\t\t}\n\n\t\tif (wpmDataLayer?.order?.clv_order_value_filtered) {\n\t\t\tdata_basic.customer_lifetime_value = wpmDataLayer.order.clv_order_value_filtered\n\t\t}\n\n\t\tif (wpmDataLayer?.user?.id) {\n\t\t\tdata_basic.user_id = wpmDataLayer.user.id\n\t\t}\n\n\t\tif (wpmDataLayer?.order?.aw_merchant_id) {\n\t\t\tdata_with_cart = {\n\t\t\t\tdiscount : wpmDataLayer.order.discount,\n\t\t\t\taw_merchant_id : wpmDataLayer.order.aw_merchant_id,\n\t\t\t\taw_feed_country : wpmDataLayer.order.aw_feed_country,\n\t\t\t\taw_feed_language: wpmDataLayer.order.aw_feed_language,\n\t\t\t\titems : wpm.getGoogleAdsRegularOrderItems(),\n\t\t\t}\n\t\t}\n\n\t\twpm.gtagLoaded().then(function () {\n\t\t\tgtag(\"event\", \"conversion\", {...data_basic, ...data_with_cart})\n\t\t})\n\n\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n","/**\n * Load Google Ads functions\n * */\n\n(function (wpm, $, undefined) {\n\n\n\twpm.getGoogleAdsConversionIdentifiersWithLabel = function () {\n\n\t\tlet conversionIdentifiers = []\n\n\t\tif (wpmDataLayer?.pixels?.google?.ads?.conversionIds) {\n\t\t\tfor (const [key, item] of Object.entries(wpmDataLayer.pixels.google.ads.conversionIds)) {\n\t\t\t\tif (item) {\n\t\t\t\t\tconversionIdentifiers.push(key + \"/\" + item)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn conversionIdentifiers\n\t}\n\n\twpm.getGoogleAdsConversionIdentifiers = function () {\n\n\t\tlet conversionIdentifiers = []\n\n\t\tfor (const [key, item] of Object.entries(wpmDataLayer.pixels.google.ads.conversionIds)) {\n\t\t\tconversionIdentifiers.push(key)\n\t\t}\n\n\t\treturn conversionIdentifiers\n\t}\n\n\twpm.getGoogleAdsRegularOrderItems = function () {\n\n\t\tlet orderItems = []\n\n\t\tfor (const [key, item] of Object.entries(wpmDataLayer.order.items)) {\n\n\t\t\tlet orderItem\n\n\t\t\torderItem = {\n\t\t\t\tquantity: item.quantity,\n\t\t\t\tprice : item.price,\n\t\t\t}\n\n\t\t\tif (wpmDataLayer?.general?.variationsOutput && 0 !== item.variation_id) {\n\n\t\t\t\torderItem.id = String(wpmDataLayer.products[item.variation_id].dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type])\n\t\t\t\torderItems.push(orderItem)\n\t\t\t} else {\n\n\t\t\t\torderItem.id = String(wpmDataLayer.products[item.id].dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type])\n\t\t\t\torderItems.push(orderItem)\n\t\t\t}\n\t\t}\n\n\t\treturn orderItems\n\t}\n\n\twpm.getGoogleAdsDynamicRemarketingOrderItems = function () {\n\n\t\tlet orderItems = []\n\n\t\tfor (const [key, item] of Object.entries(wpmDataLayer.order.items)) {\n\n\t\t\tlet orderItem\n\n\t\t\torderItem = {\n\t\t\t\tquantity : item.quantity,\n\t\t\t\tprice : item.price,\n\t\t\t\tgoogle_business_vertical: wpmDataLayer.pixels.google.ads.google_business_vertical,\n\t\t\t}\n\n\t\t\tif (wpmDataLayer?.general?.variationsOutput && 0 !== item.variation_id) {\n\n\t\t\t\torderItem.id = String(wpmDataLayer.products[item.variation_id].dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type])\n\t\t\t\torderItems.push(orderItem)\n\t\t\t} else {\n\n\t\t\t\torderItem.id = String(wpmDataLayer.products[item.id].dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type])\n\t\t\t\torderItems.push(orderItem)\n\t\t\t}\n\t\t}\n\n\t\treturn orderItems\n\t}\n\n}(window.wpm = window.wpm || {}, jQuery))\n","/**\n * Load Google Ads\n */\n\n\nrequire(\"./functions\")\nrequire(\"./event_listeners\")\n","/**\n * Load Google Universal Analytics (GA3) event listeners\n * */\n\n\n// view order received page event\njQuery(document).on(\"wpmOrderReceivedPage\", function () {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.google?.analytics?.universal?.property_id) return\n\t\tif (wpmDataLayer?.pixels?.google?.analytics?.universal?.mp_active) return\n\t\tif (!wpm.googleConfigConditionsMet(\"analytics\")) return\n\n\t\twpm.gtagLoaded().then(function () {\n\t\t\tgtag(\"event\", \"purchase\", {\n\t\t\t\tsend_to : [wpmDataLayer.pixels.google.analytics.universal.property_id],\n\t\t\t\ttransaction_id: wpmDataLayer.order.number,\n\t\t\t\taffiliation : wpmDataLayer.order.affiliation,\n\t\t\t\tcurrency : wpmDataLayer.order.currency,\n\t\t\t\tvalue : wpmDataLayer.order.value_regular,\n\t\t\t\tdiscount : wpmDataLayer.order.discount,\n\t\t\t\ttax : wpmDataLayer.order.tax,\n\t\t\t\tshipping : wpmDataLayer.order.shipping,\n\t\t\t\tcoupon : wpmDataLayer.order.coupon,\n\t\t\t\titems : wpm.getGAUAOrderItems(),\n\t\t\t})\n\t\t})\n\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n","/**\n * Add functions for Google Analytics Universal\n * */\n\n(function (wpm, $, undefined) {\n\n\twpm.getGAUAOrderItems = function () {\n\n\t\t// \"id\" : \"34\",\n\t\t// \"name\" : \"Hoodie\",\n\t\t// \"brand\" : \"\",\n\t\t// \"category\" : \"Hoodies\",\n\t\t// \"list_position\": 1,\n\t\t// \"price\" : 45,\n\t\t// \"quantity\" : 1,\n\t\t// \"variant\" : \"Color: blue | Logo: yes\"\n\n\n\t\tlet orderItems = []\n\n\t\tfor (const [key, item] of Object.entries(wpmDataLayer.order.items)) {\n\n\t\t\tlet orderItem\n\n\t\t\torderItem = {\n\t\t\t\tquantity: item.quantity,\n\t\t\t\tprice : item.price,\n\t\t\t\tname : item.name,\n\t\t\t\tcurrency: wpmDataLayer.order.currency,\n\t\t\t\tcategory: wpmDataLayer.products[item.id].category.join(\"/\"),\n\t\t\t}\n\n\t\t\tif (wpmDataLayer?.general?.variationsOutput && 0 !== item.variation_id) {\n\n\t\t\t\torderItem.id = String(wpmDataLayer.products[item.variation_id].dyn_r_ids[wpmDataLayer.pixels.google.analytics.id_type])\n\t\t\t\torderItem.variant = wpmDataLayer.products[item.variation_id].variant_name\n\t\t\t\torderItem.brand = wpmDataLayer.products[item.variation_id].brand\n\t\t\t} else {\n\n\t\t\t\torderItem.id = String(wpmDataLayer.products[item.id].dyn_r_ids[wpmDataLayer.pixels.google.analytics.id_type])\n\t\t\t\torderItem.brand = wpmDataLayer.products[item.id].brand\n\t\t\t}\n\n\t\t\torderItem = wpm.ga3AddListNameToProduct(orderItem)\n\n\t\t\torderItems.push(orderItem)\n\t\t}\n\n\t\treturn orderItems\n\t}\n\n\twpm.ga3AddListNameToProduct = function (item_data, productPosition = null) {\n\n\t\t// if (wpm.ga3CanProductListBeSet(item_data.id)) {\n\t\t// \titem_data.listname = wpmDataLayer.shop.list_name\n\t\t//\n\t\t// \tif (productPosition) {\n\t\t// \t\titem_data.list_position = productPosition\n\t\t// \t}\n\t\t// }\n\n\t\titem_data.list_name = wpmDataLayer.shop.list_name\n\n\t\tif (productPosition) {\n\t\t\titem_data.list_position = productPosition\n\t\t}\n\n\t\treturn item_data\n\t}\n\n}(window.wpm = window.wpm || {}, jQuery))\n","/**\n * Google Universal Analytics (GA3) loader\n */\n\nrequire(\"./functions\")\nrequire(\"./event_listeners\")\n\n// #if process.env.TIER === 'premium'\n// require(\"./functions_premium\")\n// require(\"./event_listeners_premium\")\n// #endif\n","/**\n * Load GA4 event listeners\n * */\n\n\n// view order received page event\njQuery(document).on(\"wpmOrderReceivedPage\", function () {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.google?.analytics?.ga4?.measurement_id) return\n\t\tif (wpmDataLayer?.pixels?.google?.analytics?.ga4?.mp_active) return\n\t\tif (!wpm.googleConfigConditionsMet(\"analytics\")) return\n\n\t\twpm.gtagLoaded().then(function () {\n\t\t\tgtag(\"event\", \"purchase\", {\n\t\t\t\tsend_to : [wpmDataLayer.pixels.google.analytics.ga4.measurement_id],\n\t\t\t\ttransaction_id: wpmDataLayer.order.number,\n\t\t\t\taffiliation : wpmDataLayer.order.affiliation,\n\t\t\t\tcurrency : wpmDataLayer.order.currency,\n\t\t\t\tvalue : wpmDataLayer.order.value_regular,\n\t\t\t\tdiscount : wpmDataLayer.order.discount,\n\t\t\t\ttax : wpmDataLayer.order.tax,\n\t\t\t\tshipping : wpmDataLayer.order.shipping,\n\t\t\t\tcoupon : wpmDataLayer.order.coupon,\n\t\t\t\titems : wpm.getGA4OrderItems(),\n\t\t\t})\n\t\t})\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n","/**\n * Load GA4 functions\n * */\n\n(function (wpm, $, undefined) {\n\n\twpm.getGA4OrderItems = function () {\n\n\t\t// \"item_id\" : \"34\",\n\t\t// \"item_name\" : \"Hoodie\",\n\t\t// \"quantity\" : 1,\n\t\t// \"item_brand\" : \"\",\n\t\t// \"item_variant\" : \"Color: blue | Logo: yes\",\n\t\t// \"price\" : 45,\n\t\t// \"currency\" : \"CHF\",\n\t\t// \"item_category\": \"Hoodies\"\n\n\n\t\tlet orderItems = []\n\n\t\tfor (const [key, item] of Object.entries(wpmDataLayer.order.items)) {\n\n\t\t\tlet orderItem\n\n\t\t\torderItem = {\n\t\t\t\tquantity : item.quantity,\n\t\t\t\tprice : item.price,\n\t\t\t\titem_name : item.name,\n\t\t\t\tcurrency : wpmDataLayer.order.currency,\n\t\t\t\titem_category: wpmDataLayer.products[item.id].category.join(\"/\"),\n\t\t\t}\n\n\t\t\tif (wpmDataLayer?.general?.variationsOutput && 0 !== item.variation_id) {\n\n\t\t\t\torderItem.item_id = String(wpmDataLayer.products[item.variation_id].dyn_r_ids[wpmDataLayer.pixels.google.analytics.id_type])\n\t\t\t\torderItem.item_variant = wpmDataLayer.products[item.variation_id].variant_name\n\t\t\t\torderItem.item_brand = wpmDataLayer.products[item.variation_id].brand\n\t\t\t} else {\n\n\t\t\t\torderItem.item_id = String(wpmDataLayer.products[item.id].dyn_r_ids[wpmDataLayer.pixels.google.analytics.id_type])\n\t\t\t\torderItem.item_brand = wpmDataLayer.products[item.id].brand\n\t\t\t}\n\n\t\t\torderItems.push(orderItem)\n\t\t}\n\n\t\treturn orderItems\n\t}\n\n}(window.wpm = window.wpm || {}, jQuery))\n","/**\n * GA4 loader\n */\n\nrequire(\"./functions\")\nrequire(\"./event_listeners\")\n\n// #if process.env.TIER === 'premium'\n// require(\"./functions_premium\")\n// require(\"./event_listeners_premium\")\n// #endif\n","/**\n * Google Analytics loader\n */\n\nrequire(\"./ga3/loader\")\nrequire(\"./ga4/loader\")\n","/**\n * Load Google base event listeners\n */\n\n// Pixel load event listener\njQuery(document).on(\"wpmLoadPixels\", function () {\n\n\tif (typeof wpmDataLayer?.pixels?.google?.state === \"undefined\") {\n\t\tif (wpm.canGoogleLoad()) {\n\t\t\twpm.loadGoogle()\n\t\t} else {\n\t\t\twpm.logPreventedPixelLoading(\"google\", \"analytics / ads\")\n\t\t}\n\t}\n})\n","/**\n * Load Google base functions\n */\n\n(function (wpm, $, undefined) {\n\n\twpm.googleConfigConditionsMet = function (type) {\n\n\t\t// always returns true if Google Consent Mode is active\n\t\tif (wpmDataLayer?.pixels?.google?.consent_mode?.active) {\n\t\t\treturn true\n\t\t} else if (wpm.getConsentValues().mode === \"category\") {\n\t\t\treturn wpm.getConsentValues().categories[type] === true\n\t\t} else if (wpm.getConsentValues().mode === \"pixel\") {\n\t\t\treturn wpm.getConsentValues().pixels.includes(\"google-\" + type)\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\n\twpm.getVisitorConsentStatusAndUpdateGoogleConsentSettings = function (google_consent_settings) {\n\n\t\tif (wpm.getConsentValues().mode === \"category\") {\n\n\t\t\tif (wpm.getConsentValues().categories.analytics) google_consent_settings.analytics_storage = \"granted\"\n\t\t\tif (wpm.getConsentValues().categories.ads) google_consent_settings.ad_storage = \"granted\"\n\t\t} else if ((wpm.getConsentValues().mode === \"pixel\")) {\n\n\t\t\tgoogle_consent_settings.analytics_storage = wpm.getConsentValues().pixels.includes(\"google-analytics\") ? \"granted\" : \"denied\"\n\t\t\tgoogle_consent_settings.ad_storage = wpm.getConsentValues().pixels.includes(\"google-ads\") ? \"granted\" : \"denied\"\n\t\t}\n\n\t\treturn google_consent_settings\n\t}\n\n\twpm.updateGoogleConsentMode = function (analytics = true, ads = true) {\n\n\t\ttry {\n\t\t\tif (\n\t\t\t\t!window.gtag ||\n\t\t\t\t!wpmDataLayer.shop.cookie_consent_mgmt.explicit_consent\n\t\t\t) return\n\n\t\t\tgtag(\"consent\", \"update\", {\n\t\t\t\tanalytics_storage: analytics ? \"granted\" : \"denied\",\n\t\t\t\tad_storage : ads ? \"granted\" : \"denied\",\n\t\t\t})\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.fireGtagGoogleAds = function () {\n\t\ttry {\n\t\t\twpmDataLayer.pixels.google.ads.state = \"loading\"\n\n\t\t\tif (wpmDataLayer?.pixels?.google?.ads?.enhanced_conversions?.active) {\n\t\t\t\tfor (const [key, item] of Object.entries(wpmDataLayer.pixels.google.ads.conversionIds)) {\n\t\t\t\t\tgtag(\"config\", key, {\"allow_enhanced_conversions\": true})\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (const [key, item] of Object.entries(wpmDataLayer.pixels.google.ads.conversionIds)) {\n\t\t\t\t\tgtag(\"config\", key)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (wpmDataLayer?.pixels?.google?.ads?.conversionIds && wpmDataLayer?.pixels?.google?.ads?.phone_conversion_label && wpmDataLayer?.pixels?.google?.ads?.phone_conversion_number) {\n\t\t\t\tgtag(\"config\", Object.keys(wpmDataLayer.pixels.google.ads.conversionIds)[0] + \"/\" + wpmDataLayer.pixels.google.ads.phone_conversion_label, {\n\t\t\t\t\tphone_conversion_number: wpmDataLayer.pixels.google.ads.phone_conversion_number,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// ! enhanced_conversion_data needs to set on the window object\n\t\t\t// https://support.google.com/google-ads/answer/9888145#zippy=%2Cvalidate-your-implementation-using-chrome-developer-tools\n\t\t\tif (wpmDataLayer?.shop?.page_type && \"order_received_page\" === wpmDataLayer.shop.page_type && wpmDataLayer?.order?.google?.ads?.enhanced_conversion_data) {\n\t\t\t\t// window.enhanced_conversion_data = wpmDataLayer.order.google.ads.enhanced_conversion_data\n\n\t\t\t\tgtag(\"set\", \"user_data\", wpmDataLayer.order.google.ads.enhanced_conversion_data)\n\t\t\t}\n\n\t\t\twpmDataLayer.pixels.google.ads.state = \"ready\"\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.fireGtagGoogleAnalyticsUA = function () {\n\n\t\ttry {\n\t\t\twpmDataLayer.pixels.google.analytics.universal.state = \"loading\"\n\n\t\t\tgtag(\"config\", wpmDataLayer.pixels.google.analytics.universal.property_id, wpmDataLayer.pixels.google.analytics.universal.parameters)\n\t\t\twpmDataLayer.pixels.google.analytics.universal.state = \"ready\"\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.fireGtagGoogleAnalyticsGA4 = function () {\n\n\t\ttry {\n\t\t\twpmDataLayer.pixels.google.analytics.ga4.state = \"loading\"\n\n\t\t\tlet parameters = wpmDataLayer.pixels.google.analytics.ga4.parameters\n\n\t\t\tif (wpmDataLayer?.pixels?.google?.analytics?.ga4?.debug_mode) {\n\t\t\t\tparameters.debug_mode = true\n\t\t\t}\n\n\t\t\tgtag(\"config\", wpmDataLayer.pixels.google.analytics.ga4.measurement_id, parameters)\n\n\t\t\twpmDataLayer.pixels.google.analytics.ga4.state = \"ready\"\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.isGoogleActive = function () {\n\n\t\tif (\n\t\t\twpmDataLayer?.pixels?.google?.analytics?.universal?.property_id ||\n\t\t\twpmDataLayer?.pixels?.google?.analytics?.ga4?.measurement_id ||\n\t\t\t!jQuery.isEmptyObject(wpmDataLayer?.pixels?.google?.ads?.conversionIds)\n\t\t) {\n\t\t\treturn true\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\n\twpm.getGoogleGtagId = function () {\n\n\t\tif (wpmDataLayer?.pixels?.google?.analytics?.universal?.property_id) {\n\t\t\treturn wpmDataLayer.pixels.google.analytics.universal.property_id\n\t\t} else if (wpmDataLayer?.pixels?.google?.analytics?.ga4?.measurement_id) {\n\t\t\treturn wpmDataLayer.pixels.google.analytics.ga4.measurement_id\n\t\t} else {\n\t\t\treturn Object.keys(wpmDataLayer.pixels.google.ads.conversionIds)[0]\n\t\t}\n\t}\n\n\n\twpm.loadGoogle = function () {\n\n\t\tif (wpm.isGoogleActive()) {\n\n\t\t\twpmDataLayer.pixels.google.state = \"loading\"\n\n\t\t\twpm.loadScriptAndCacheIt(\"https://www.googletagmanager.com/gtag/js?id=\" + wpm.getGoogleGtagId())\n\t\t\t\t.then(function (script, textStatus) {\n\n\t\t\t\t\ttry {\n\n\t\t\t\t\t\t// Initiate Google dataLayer and gtag\n\t\t\t\t\t\twindow.dataLayer = window.dataLayer || []\n\t\t\t\t\t\twindow.gtag = function gtag() {\n\t\t\t\t\t\t\tdataLayer.push(arguments)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Google Consent Mode\n\t\t\t\t\t\tif (wpmDataLayer?.pixels?.google?.consent_mode?.active) {\n\n\t\t\t\t\t\t\tlet google_consent_settings = {\n\t\t\t\t\t\t\t\t\"ad_storage\" : wpmDataLayer.pixels.google.consent_mode.ad_storage,\n\t\t\t\t\t\t\t\t\"analytics_storage\": wpmDataLayer.pixels.google.consent_mode.analytics_storage,\n\t\t\t\t\t\t\t\t\"wait_for_update\" : wpmDataLayer.pixels.google.consent_mode.wait_for_update,\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (wpmDataLayer?.pixels?.google?.consent_mode?.region) {\n\t\t\t\t\t\t\t\tgoogle_consent_settings.region = wpmDataLayer.pixels.google.consent_mode.region\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tgoogle_consent_settings = wpm.getVisitorConsentStatusAndUpdateGoogleConsentSettings(google_consent_settings)\n\n\t\t\t\t\t\t\tgtag(\"consent\", \"default\", google_consent_settings)\n\t\t\t\t\t\t\tgtag(\"set\", \"ads_data_redaction\", wpmDataLayer.pixels.google.consent_mode.ads_data_redaction)\n\t\t\t\t\t\t\tgtag(\"set\", \"url_passthrough\", wpmDataLayer.pixels.google.consent_mode.url_passthrough)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Google Linker\n\t\t\t\t\t\t// https://developers.google.com/gtagjs/devguide/linker\n\t\t\t\t\t\tif (wpmDataLayer?.pixels?.google?.linker?.settings) {\n\t\t\t\t\t\t\tgtag(\"set\", \"linker\", wpmDataLayer.pixels.google.linker.settings)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tgtag(\"js\", new Date())\n\n\t\t\t\t\t\t// Google Ads loader\n\t\t\t\t\t\tif (!jQuery.isEmptyObject(wpmDataLayer?.pixels?.google?.ads?.conversionIds)) { // Only run if the pixel has set up\n\t\t\t\t\t\t\tif (wpm.googleConfigConditionsMet(\"ads\")) { \t\t\t\t\t\t\t// Only run if cookie consent has been given\n\t\t\t\t\t\t\t\twpm.fireGtagGoogleAds()\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\twpm.logPreventedPixelLoading(\"google-ads\", \"ads\")\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Google Universal Analytics loader\n\t\t\t\t\t\tif (wpmDataLayer?.pixels?.google?.analytics?.universal?.property_id) { \t\t// Only run if the pixel has set up\n\n\t\t\t\t\t\t\tif (wpm.googleConfigConditionsMet(\"analytics\")) {\t\t\t\t\t\t// Only run if cookie consent has been given\n\t\t\t\t\t\t\t\twpm.fireGtagGoogleAnalyticsUA()\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\twpm.logPreventedPixelLoading(\"google-universal-analytics\", \"analytics\")\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// GA4 loader\n\t\t\t\t\t\tif (wpmDataLayer?.pixels?.google?.analytics?.ga4?.measurement_id) { \t\t\t// Only run if the pixel has set up\n\n\t\t\t\t\t\t\tif (wpm.googleConfigConditionsMet(\"analytics\")) {\t\t\t\t\t\t// Only run if cookie consent has been given\n\t\t\t\t\t\t\t\twpm.fireGtagGoogleAnalyticsGA4()\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\twpm.logPreventedPixelLoading(\"ga4\", \"analytics\")\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\twpmDataLayer.pixels.google.state = \"ready\"\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tconsole.error(e)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t}\n\t}\n\n\twpm.canGoogleLoad = function () {\n\n\t\tif (wpmDataLayer?.pixels?.google?.consent_mode?.active) {\n\t\t\treturn true\n\t\t} else if (\"category\" === wpm.getConsentValues().mode) {\n\t\t\treturn !!(wpm.getConsentValues().categories[\"ads\"] || wpm.getConsentValues().categories[\"analytics\"])\n\t\t} else if (\"pixel\" === wpm.getConsentValues().mode) {\n\t\t\treturn wpm.getConsentValues().pixels.includes(\"google-ads\") || wpm.getConsentValues().pixels.includes(\"google-analytics\")\n\t\t} else {\n\t\t\tconsole.error(\"Couldn't find a valid load condition for Google mode in wpmConsentValues\")\n\t\t\treturn false\n\t\t}\n\t}\n\n\twpm.gtagLoaded = function () {\n\t\treturn new Promise(function (resolve, reject) {\n\n\t\t\tif (typeof wpmDataLayer?.pixels?.google?.state === \"undefined\") reject()\n\n\t\t\tlet startTime = 0\n\t\t\tlet timeout = 5000\n\t\t\tlet frequency = 200;\n\n\t\t\t(function wait() {\n\t\t\t\tif (wpmDataLayer?.pixels?.google?.state === \"ready\") return resolve()\n\t\t\t\tif (startTime >= timeout) return reject()\n\t\t\t\tstartTime += frequency\n\t\t\t\tsetTimeout(wait, frequency)\n\t\t\t})()\n\t\t})\n\t}\n\n\n}(window.wpm = window.wpm || {}, jQuery))\n","/**\n * Load Google base\n */\n\n// Load base\nrequire(\"./functions\")\nrequire(\"./event_listeners\")\n\n// #if process.env.TIER === 'premium'\n// require(\"./functions_premium\")\n// require(\"./event_listeners_premium\")\n// #endif\n","/**\n * Load Google\n */\n\n// Load base\nrequire(\"./base/loader\")\n\n//Load additional Google libraries\nrequire(\"./ads/loader\")\nrequire(\"./analytics/loader\")\nrequire(\"./optimize/loader\")\n\n\n","/**\n * Load Google Optimize event listeners\n */\n\njQuery(document).on(\"wpmLoadPixels\", function () {\n\n\tif (wpmDataLayer?.pixels?.google?.optimize?.container_id && !wpmDataLayer?.pixels?.google?.optimize?.loaded) {\n\t\tif (wpm.canIFire(\"analytics\", \"google-optimize\")) wpm.load_google_optimize_pixel()\n\t}\n})\n","/**\n * Load Google Optimize functions\n */\n\n\n(function (wpm, $, undefined) {\n\n\twpm.load_google_optimize_pixel = function () {\n\n\t\ttry {\n\t\t\twpmDataLayer.pixels.google.optimize.loaded = true\n\n\t\t\twpm.loadScriptAndCacheIt(\"https://www.googleoptimize.com/optimize.js?id=\" + wpmDataLayer.pixels.google.optimize.container_id)\n\t\t\t// .then(function (script, textStatus) {\n\t\t\t// \t\tconsole.log('Google Optimize loaded')\n\t\t\t// });\n\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n}(window.wpm = window.wpm || {}, jQuery));\n","/**\n * Load Google Optimize\n */\n\nrequire(\"./functions\")\nrequire(\"./event_listeners\")\n","/**\n * Load Hotjar event listeners\n */\n\n// Pixel load event listener\njQuery(document).on(\"wpmLoadPixels\", function () {\n\n\tif (wpmDataLayer?.pixels?.hotjar?.site_id && !wpmDataLayer?.pixels?.hotjar?.loaded) {\n\t\tif (wpm.canIFire(\"analytics\", \"hotjar\") && !wpmDataLayer?.pixels?.hotjar?.loaded) wpm.load_hotjar_pixel()\n\t}\n})\n","/**\n * Load Hotjar functions\n */\n\n(function (wpm, $, undefined) {\n\n\twpm.load_hotjar_pixel = function () {\n\n\t\ttry {\n\t\t\twpmDataLayer.pixels.hotjar.loaded = true;\n\n\t\t\t// @formatter:off\n\t\t\t(function(h,o,t,j,a,r){\n\t\t\t\th.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};\n\t\t\t\th._hjSettings={hjid:wpmDataLayer.pixels.hotjar.site_id,hjsv:6};\n\t\t\t\ta=o.getElementsByTagName('head')[0];\n\t\t\t\tr=o.createElement('script');r.async=1;\n\t\t\t\tr.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;\n\t\t\t\ta.appendChild(r);\n\t\t\t})(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');\n\t\t\t// @formatter:on\n\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n}(window.wpm = window.wpm || {}, jQuery));\n","/**\n * Hotjar loader\n */\n\nrequire(\"./functions\")\nrequire(\"./event_listeners\")\n","/**\n * Consent Mode functions\n */\n\n(function (wpm, $, undefined) {\n\n\n\t/**\n\t * Handle Cookie Management Platforms\n\t */\n\n\tlet getComplianzCookies = () => {\n\n\t\tlet cmplz_statistics = wpm.getCookie(\"cmplz_statistics\")\n\t\tlet cmplz_marketing = wpm.getCookie(\"cmplz_marketing\")\n\t\tlet cmplz_consent_status = wpm.getCookie(\"cmplz_consent_status\") || wpm.getCookie(\"cmplz_banner-status\")\n\n\t\tif (cmplz_consent_status) {\n\t\t\treturn {\n\t\t\t\tanalytics : cmplz_statistics === \"allow\",\n\t\t\t\tads : cmplz_marketing === \"allow\",\n\t\t\t\tvisitorHasChosen: true,\n\t\t\t}\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tlet getCookieLawInfoCookies = () => {\n\n\t\tlet analyticsCookie = wpm.getCookie(\"cookielawinfo-checkbox-analytics\") || wpm.getCookie(\"cookielawinfo-checkbox-analytiques\")\n\t\tlet adsCookie = wpm.getCookie(\"cookielawinfo-checkbox-advertisement\") || wpm.getCookie(\"cookielawinfo-checkbox-performance\") || wpm.getCookie(\"cookielawinfo-checkbox-publicite\")\n\t\tlet visitorHasChosen = wpm.getCookie(\"CookieLawInfoConsent\")\n\n\t\tif (analyticsCookie || adsCookie) {\n\n\t\t\treturn {\n\t\t\t\tanalytics : analyticsCookie === \"yes\",\n\t\t\t\tads : adsCookie === \"yes\",\n\t\t\t\tvisitorHasChosen: !!visitorHasChosen,\n\t\t\t}\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\n\n\tlet\n\t\twpmConsentValues = {}\n\twpmConsentValues.categories = {}\n\twpmConsentValues.pixels = []\n\twpmConsentValues.mode = \"category\"\n\twpmConsentValues.visitorHasChosen = false\n\n\twpm.getConsentValues = () => wpmConsentValues\n\n\twpm.setConsentValueCategories = (analytics = false, ads = false) => {\n\t\twpmConsentValues.categories.analytics = analytics\n\t\twpmConsentValues.categories.ads = ads\n\t}\n\n\twpm.updateConsentCookieValues = (analytics = null, ads = null, explicitConsent = false) => {\n\n\t\t// ad_storage\n\t\t// analytics_storage\n\t\t// functionality_storage\n\t\t// personalization_storage\n\t\t// security_storage\n\n\t\tlet cookie\n\n\t\tif (analytics || ads) {\n\n\t\t\tif (analytics) {\n\t\t\t\twpmConsentValues.categories.analytics = !!analytics\n\t\t\t}\n\t\t\tif (ads) {\n\t\t\t\twpmConsentValues.categories.ads = !!ads\n\t\t\t}\n\n\t\t} else if (cookie = wpm.getCookie(\"CookieConsent\")) {\n\n\t\t\t// Cookiebot\n\t\t\t// https://wordpress.org/plugins/cookiebot/\n\t\t\tcookie = decodeURI(cookie)\n\n\t\t\twpmConsentValues.categories.analytics = cookie.indexOf(\"statistics:true\") >= 0\n\t\t\twpmConsentValues.categories.ads = cookie.indexOf(\"marketing:true\") >= 0\n\t\t\twpmConsentValues.visitorHasChosen = true\n\n\t\t} else if (cookie = wpm.getCookie(\"CookieScriptConsent\")) {\n\n\t\t\t// Cookie Script\n\t\t\t// https://wordpress.org/plugins/cookie-script-com/\n\n\t\t\tcookie = JSON.parse(cookie)\n\n\t\t\tif (cookie.action === \"reject\") {\n\t\t\t\twpmConsentValues.categories.analytics = false\n\t\t\t\twpmConsentValues.categories.ads = false\n\t\t\t} else if (cookie.categories.length === 2) {\n\t\t\t\twpmConsentValues.categories.analytics = true\n\t\t\t\twpmConsentValues.categories.ads = true\n\t\t\t} else {\n\t\t\t\twpmConsentValues.categories.analytics = cookie.categories.indexOf(\"performance\") >= 0\n\t\t\t\twpmConsentValues.categories.ads = cookie.categories.indexOf(\"targeting\") >= 0\n\t\t\t}\n\n\t\t\twpmConsentValues.visitorHasChosen = true\n\n\t\t} else if (cookie = wpm.getCookie(\"borlabs-cookie\")) {\n\n\t\t\t// Borlabs Cookie\n\t\t\t// https://borlabs.io/borlabs-cookie/\n\n\t\t\tcookie = decodeURI(cookie)\n\t\t\tcookie = JSON.parse(cookie)\n\n\t\t\twpmConsentValues.categories.analytics = !!cookie?.consents?.statistics\n\t\t\twpmConsentValues.categories.ads = !!cookie?.consents?.marketing\n\t\t\twpmConsentValues.visitorHasChosen = true\n\t\t\twpmConsentValues.pixels = [...cookie?.consents?.statistics || [], ...cookie?.consents?.marketing || []]\n\t\t\twpmConsentValues.mode = \"pixel\"\n\n\t\t} else if (cookie = getComplianzCookies()) {\n\n\t\t\t// Complianz Cookie\n\t\t\t// https://wordpress.org/plugins/complianz-gdpr/\n\n\t\t\twpmConsentValues.categories.analytics = cookie.analytics === true\n\t\t\twpmConsentValues.categories.ads = cookie.ads === true\n\t\t\twpmConsentValues.visitorHasChosen = cookie.visitorHasChosen\n\n\t\t} else if (cookie = wpm.getCookie(\"cookie_notice_accepted\")) {\n\n\t\t\t// Cookie Compliance (free version)\n\t\t\t// https://wordpress.org/plugins/cookie-notice/\n\n\t\t\twpmConsentValues.categories.analytics = true\n\t\t\twpmConsentValues.categories.ads = true\n\t\t\twpmConsentValues.visitorHasChosen = true\n\n\t\t} else if (cookie = wpm.getCookie(\"hu-consent\")) {\n\n\t\t\t// Cookie Compliance (pro version)\n\t\t\t// https://wordpress.org/plugins/cookie-notice/\n\n\t\t\tcookie = JSON.parse(cookie)\n\n\t\t\twpmConsentValues.categories.analytics = !!cookie.categories[\"3\"]\n\t\t\twpmConsentValues.categories.ads = !!cookie.categories[\"4\"]\n\t\t\twpmConsentValues.visitorHasChosen = true\n\n\t\t} else if (cookie = getCookieLawInfoCookies()) {\n\n\t\t\t// CookieYes, GDPR Cookie Consent (Cookie Law Info)\n\t\t\t// https://wordpress.org/plugins/cookie-law-info/\n\n\t\t\twpmConsentValues.categories.analytics = cookie.analytics === true\n\t\t\twpmConsentValues.categories.ads = cookie.ads === true\n\t\t\twpmConsentValues.visitorHasChosen = cookie.visitorHasChosen === true\n\n\t\t} else if (cookie = wpm.getCookie(\"moove_gdpr_popup\")) {\n\n\t\t\t// GDPR Cookie Compliance Plugin by Moove Agency\n\t\t\t// https://wordpress.org/plugins/gdpr-cookie-compliance/\n\t\t\t// TODO write documentation on how to set up the plugin in order for this to work properly\n\n\t\t\tcookie = JSON.parse(cookie)\n\n\t\t\twpmConsentValues.categories.analytics = cookie.thirdparty === \"1\"\n\t\t\twpmConsentValues.categories.ads = cookie.advanced === \"1\"\n\t\t\twpmConsentValues.visitorHasChosen = true\n\n\t\t} else {\n\t\t\t// consentValues.categories.analytics = true\n\t\t\t// consentValues.categories.ads = true\n\n\t\t\twpmConsentValues.categories.analytics = !explicitConsent\n\t\t\twpmConsentValues.categories.ads = !explicitConsent\n\t\t}\n\t}\n\n\twpm.updateConsentCookieValues()\n\n\twpm.setConsentDefaultValuesToExplicit = () => {\n\t\twpmConsentValues.categories = {\n\t\t\tanalytics: false,\n\t\t\tads : false,\n\t\t}\n\t}\n\n\twpm.canIFire = (category, pixelName) => {\n\n\t\tlet canIFireMode\n\n\t\tif (\"category\" === wpmConsentValues.mode) {\n\t\t\tcanIFireMode = !!wpmConsentValues.categories[category]\n\t\t} else if (\"pixel\" === wpmConsentValues.mode) {\n\t\t\tcanIFireMode = wpmConsentValues.pixels.includes(pixelName)\n\n\t\t\t// If a user sets \"bing-ads\" in Borlabs Cookie instead of\n\t\t\t// \"microsoft-ads\" in the Borlabs settings, we need to check\n\t\t\t// for that too.\n\t\t\tif (false === canIFireMode && \"microsoft-ads\" === pixelName) {\n\t\t\t\tcanIFireMode = wpmConsentValues.pixels.includes(\"bing-ads\")\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.error(\"Couldn't find a valid consent mode in wpmConsentValues\")\n\t\t\tcanIFireMode = false\n\t\t}\n\n\t\tif (canIFireMode) {\n\t\t\treturn true\n\t\t} else {\n\t\t\tif (true || wpm.urlHasParameter(\"debugConsentMode\")) {\n\t\t\t\twpm.logPreventedPixelLoading(pixelName, category)\n\t\t\t}\n\n\t\t\treturn false\n\t\t}\n\t}\n\n\twpm.logPreventedPixelLoading = (pixelName, category) => {\n\n\t\tif (wpmDataLayer?.shop?.cookie_consent_mgmt?.explicit_consent) {\n\t\t\tconsole.log(\"Pixel Manager for WooCommerce: The \\\"\" + pixelName + \" (category: \" + category + \")\\\" pixel has not fired because you have not given consent for it yet. (WPM is in explicit consent mode.)\")\n\t\t} else {\n\t\t\tconsole.log(\"Pixel Manager for WooCommerce: The \\\"\" + pixelName + \" (category: \" + category + \")\\\" pixel has not fired because you have removed consent for this pixel. (WPM is in implicit consent mode.)\")\n\t\t}\n\t}\n\n\t/**\n\t * Runs through each script in <head> and blocks / unblocks it according to the plugin settings\n\t * and user consent.\n\t */\n\n\t// https://stackoverflow.com/q/65453565/4688612\n\twpm.scriptTagObserver = new MutationObserver((mutations) => {\n\t\tmutations.forEach(({addedNodes}) => {\n\t\t\t[...addedNodes]\n\t\t\t\t.forEach(node => {\n\n\t\t\t\t\tif ($(node).data(\"wpm-cookie-category\")) {\n\n\t\t\t\t\t\t// If the pixel category has been approved > unblock\n\t\t\t\t\t\t// If the pixel belongs to more than one category, then unblock if one of the categories has been approved\n\t\t\t\t\t\t// If no category has been approved, but the Google Consent Mode is active, then only unblock the Google scripts\n\n\t\t\t\t\t\tif (wpm.shouldScriptBeActive(node)) {\n\t\t\t\t\t\t\twpm.unblockScript(node)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\twpm.blockScript(node)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t})\n\t})\n\n\twpm.scriptTagObserver.observe(document.head, {childList: true, subtree: true})\n\t// jQuery(document).on(\"DOMContentLoaded\", () => wpm.scriptTagObserver.disconnect())\n\tdocument.addEventListener(\"DOMContentLoaded\", () => wpm.scriptTagObserver.disconnect())\n\n\twpm.shouldScriptBeActive = node => {\n\n\t\tif (\n\t\t\twpmDataLayer.shop.cookie_consent_mgmt.explicit_consent ||\n\t\t\twpmConsentValues.visitorHasChosen\n\t\t) {\n\n\t\t\tif (wpmConsentValues.mode === \"category\" && $(node).data(\"wpm-cookie-category\").split(\",\").some(element => wpmConsentValues.categories[element])) {\n\t\t\t\treturn true\n\t\t\t} else if (wpmConsentValues.mode === \"pixel\" && wpmConsentValues.pixels.includes($(node).data(\"wpm-pixel-name\"))) {\n\t\t\t\treturn true\n\t\t\t} else if (wpmConsentValues.mode === \"pixel\" && $(node).data(\"wpm-pixel-name\") === \"google\" && [\"google-analytics\", \"google-ads\"].some(element => wpmConsentValues.pixels.includes(element))) {\n\t\t\t\treturn true\n\t\t\t} else if (wpmDataLayer?.pixels?.google?.consent_mode?.active && $(node).data(\"wpm-pixel-name\") === \"google\") {\n\t\t\t\treturn true\n\t\t\t} else {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\treturn true\n\t\t}\n\t}\n\n\n\twpm.unblockScript = (scriptNode, removeAttach = false) => {\n\n\t\tif (removeAttach) $(scriptNode).remove()\n\n\t\tlet wpmSrc = $(scriptNode).data(\"wpm-src\")\n\t\tif (wpmSrc) $(scriptNode).attr(\"src\", wpmSrc)\n\n\t\tscriptNode.type = \"text/javascript\"\n\n\t\tif (removeAttach) $(scriptNode).appendTo(\"head\")\n\n\t\t// jQuery(document).trigger(\"wpmPreLoadPixels\")\n\t\tdocument.dispatchEvent(new Event(\"wpmPreLoadPixels\"))\n\t}\n\n\twpm.blockScript = (scriptNode, removeAttach = false) => {\n\n\t\tif (removeAttach) $(scriptNode).remove()\n\n\t\tif ($(scriptNode).attr(\"src\")) $(scriptNode).removeAttr(\"src\")\n\t\tscriptNode.type = \"blocked/javascript\"\n\n\t\tif (removeAttach) $(scriptNode).appendTo(\"head\")\n\t}\n\n\twpm.unblockAllScripts = (analytics = true, ads = true) => {\n\t\t// jQuery(document).trigger(\"wpmPreLoadPixels\")\n\t\tdocument.dispatchEvent(new Event(\"wpmPreLoadPixels\"))\n\t}\n\n\twpm.unblockSelectedPixels = () => {\n\t\t// jQuery(document).trigger(\"wpmPreLoadPixels\")\n\t\tdocument.dispatchEvent(new Event(\"wpmPreLoadPixels\"))\n\t}\n\n\n\t/**\n\t * Block or unblock scripts for each CMP immediately after cookie consent has been updated\n\t * by the visitor.\n\t */\n\n\t// Borlabs Cookie\n\t// If visitor accepts cookies in Borlabs Cookie unblock the scripts\n\t// jQuery(document).on(\"borlabs-cookie-consent-saved\", () => {\n\tdocument.addEventListener(\"borlabs-cookie-consent-saved\", () => {\n\t\twpm.updateConsentCookieValues()\n\n\t\tif (wpmConsentValues.mode === \"pixel\") {\n\n\t\t\twpm.unblockSelectedPixels()\n\t\t\twpm.updateGoogleConsentMode(wpmConsentValues.pixels.includes(\"google-analytics\"), wpmConsentValues.pixels.includes(\"google-ads\"))\n\t\t} else {\n\n\t\t\twpm.unblockAllScripts(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t\t\twpm.updateGoogleConsentMode(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t\t}\n\t})\n\n\t// Cookiebot\n\t// If visitor accepts cookies in Cookiebot unblock the scripts\n\t// https://www.cookiebot.com/en/developer/\n\t// jQuery(document).on(\"CookiebotOnAccept\", () => {\n\tdocument.addEventListener(\"CookiebotOnAccept\", () => {\n\t\tif (Cookiebot.consent.statistics) wpmConsentValues.categories.analytics = true\n\t\tif (Cookiebot.consent.marketing) wpmConsentValues.categories.ads = true\n\n\t\twpm.unblockAllScripts(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t\twpm.updateGoogleConsentMode(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\n\t}, false)\n\n\t/**\n\t * Cookie Script\n\t * If visitor accepts cookies in Cookie Script unblock the scripts\n\t * https://support.cookie-script.com/article/20-custom-events\n\t */\n\t// jQuery(document).on(\"CookieScriptAccept\", e => {\n\tdocument.addEventListener(\"CookieScriptAccept\", e => {\n\n\t\tif (e.detail.categories.includes(\"performance\")) wpmConsentValues.categories.analytics = true\n\t\tif (e.detail.categories.includes(\"targeting\")) wpmConsentValues.categories.ads = true\n\n\t\twpm.unblockAllScripts(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t\twpm.updateGoogleConsentMode(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t})\n\n\t/**\n\t * Cookie Script\n\t * If visitor accepts cookies in Cookie Script unblock the scripts\n\t * https://support.cookie-script.com/\n\t */\n\t// jQuery(document).on(\"CookieScriptAcceptAll\", () => {\n\tdocument.addEventListener(\"CookieScriptAcceptAll\", () => {\n\n\t\twpm.unblockAllScripts(true, true)\n\t\twpm.updateGoogleConsentMode(true, true)\n\t})\n\n\t/**\n\t * Complianz Cookie\n\t *\n\t * If visitor accepts cookies in Complianz unblock the scripts\n\t */\n\n\twpm.cmplzStatusChange = (cmplzConsentData) => {\n\n\t\tif (cmplzConsentData.detail.categories.includes(\"statistics\")) wpm.updateConsentCookieValues(true, null)\n\t\tif (cmplzConsentData.detail.categories.includes(\"marketing\")) wpm.updateConsentCookieValues(null, true)\n\n\t\twpm.unblockAllScripts(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t\twpm.updateGoogleConsentMode(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t}\n\n\t// jQuery(document).on(\"cmplzStatusChange\", wpm.cmplzStatusChange)\n\tdocument.addEventListener(\"cmplzStatusChange\", wpm.cmplzStatusChange)\n\t// jQuery(document).on(\"cmplz_status_change\", wpm.cmplzStatusChange)\n\tdocument.addEventListener(\"cmplz_status_change\", wpm.cmplzStatusChange)\n\n\t// Cookie Compliance by hu-manity.co (free and pro)\n\t// If visitor accepts cookies in Cookie Notice by hu-manity.co unblock the scripts (free version)\n\t// https://wordpress.org/support/topic/events-on-consent-change/#post-15202792\n\t// jQuery(document).on(\"setCookieNotice\", () => {\n\tdocument.addEventListener(\"setCookieNotice\", () => {\n\t\twpm.updateConsentCookieValues()\n\n\t\twpm.unblockAllScripts(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t\twpm.updateGoogleConsentMode(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t})\n\n\t/**\n\t * Cookie Compliance by hu-manity.co (free and pro)\n\t * If visitor accepts cookies in Cookie Notice by hu-manity.co unblock the scripts (pro version)\n\t * https://wordpress.org/support/topic/events-on-consent-change/#post-15202792\n\t * Because Cookie Notice has no documented API or event that is being triggered on consent save or update\n\t * we have to solve this by using a mutation observer.\n\t *\n\t * @type {MutationObserver}\n\t */\n\n\twpm.huObserver = new MutationObserver(mutations => {\n\t\tmutations.forEach(({addedNodes}) => {\n\t\t\t[...addedNodes]\n\t\t\t\t.forEach(node => {\n\n\t\t\t\t\tif (node.id === \"hu\") {\n\n\t\t\t\t\t\t// jQuery(\".hu-cookies-save\").on(\"click\", function () {\n\t\t\t\t\t\t// jQuery(\".hu-cookies-save\") in pure JavaScript\n\t\t\t\t\t\tdocument.querySelector(\".hu-cookies-save\").addEventListener(\"click\", () => {\n\t\t\t\t\t\t\twpm.updateConsentCookieValues()\n\t\t\t\t\t\t\twpm.unblockAllScripts(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t\t\t\t\t\t\twpm.updateGoogleConsentMode(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t})\n\t})\n\n\tif (window.hu) {\n\t\twpm.huObserver.observe(document.documentElement || document.body, {childList: true, subtree: true})\n\t}\n\n\twpm.explicitConsentStateAlreadySet = () => {\n\n\t\tif (wpmConsentValues.explicitConsentStateAlreadySet) {\n\t\t\treturn true\n\t\t} else {\n\t\t\twpmConsentValues.explicitConsentStateAlreadySet = true\n\t\t}\n\t}\n\n\n}(window.wpm = window.wpm || {}, jQuery))\n","/**\n * Register event listeners\n */\n\n// remove_from_cart event\n// jQuery('.remove_from_cart_button, .remove').on('click', function (e) {\njQuery(document).on(\"click\", \".remove_from_cart_button, .remove\", (event) => {\n\n\ttry {\n\n\t\tlet url = new URL(jQuery(event.currentTarget).attr(\"href\"))\n\t\tlet productId = wpm.getProductIdByCartItemKeyUrl(url)\n\n\t\twpm.removeProductFromCart(productId)\n\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n\n// add_to_cart event\njQuery(document).on(\"click\", \".add_to_cart_button:not(.product_type_variable), .ajax_add_to_cart, .single_add_to_cart_button\", (event) => {\n\n\ttry {\n\n\t\tlet quantity = 1,\n\t\t\tproductId\n\n\t\t// Only process on product pages\n\t\tif (wpmDataLayer.shop.page_type === \"product\") {\n\n\t\t\t// First process related and upsell products\n\t\t\tif (typeof jQuery(event.currentTarget).attr(\"href\") !== \"undefined\" && jQuery(event.currentTarget).attr(\"href\").includes(\"add-to-cart\")) {\n\n\t\t\t\tproductId = jQuery(event.currentTarget).data(\"product_id\")\n\n\t\t\t\twpm.addProductToCart(productId, quantity)\n\t\t\t}\n\n\t\t\t// If is simple product\n\t\t\tif (wpmDataLayer.shop.product_type === \"simple\") {\n\n\t\t\t\tquantity = Number(jQuery(\".input-text.qty\").val())\n\t\t\t\tif (!quantity && quantity !== 0) quantity = 1\n\t\t\t\tproductId = jQuery(event.currentTarget).val()\n\n\t\t\t\twpm.addProductToCart(productId, quantity)\n\t\t\t}\n\n\t\t\t// If is variable product or variable-subscription\n\t\t\tif ([\"variable\", \"variable-subscription\"].indexOf(wpmDataLayer.shop.product_type) >= 0) {\n\n\t\t\t\tquantity = Number(jQuery(\".input-text.qty\").val())\n\t\t\t\tif (!quantity && quantity !== 0) quantity = 1\n\t\t\t\tproductId = jQuery(\"[name='variation_id']\").val()\n\n\t\t\t\twpm.addProductToCart(productId, quantity)\n\t\t\t}\n\n\t\t\t// If is grouped product\n\t\t\tif (wpmDataLayer.shop.product_type === \"grouped\") {\n\n\t\t\t\tjQuery(\".woocommerce-grouped-product-list-item\").each( (index, element) => {\n\n\t\t\t\t\tquantity = Number(jQuery(element).find(\".input-text.qty\").val())\n\t\t\t\t\tif (!quantity && quantity !== 0) quantity = 1\n\t\t\t\t\tlet classes = jQuery(element).attr(\"class\")\n\t\t\t\t\tproductId = wpm.getPostIdFromString(classes)\n\n\t\t\t\t\twpm.addProductToCart(productId, quantity)\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// If is bundle product\n\t\t\tif (wpmDataLayer.shop.product_type === \"bundle\") {\n\n\t\t\t\tquantity = Number(jQuery(\".input-text.qty\").val())\n\t\t\t\tif (!quantity && quantity !== 0) quantity = 1\n\t\t\t\tproductId = jQuery(\"input[name=add-to-cart]\").val()\n\n\t\t\t\twpm.addProductToCart(productId, quantity)\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tproductId = jQuery(event.currentTarget).data(\"product_id\")\n\t\t\twpm.addProductToCart(productId, quantity)\n\t\t}\n\n\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n\n/**\n * If someone clicks anywhere on a custom /?add-to-cart=123 link\n * trigger the add to cart event\n */\n// jQuery('a:not(.add_to_cart_button, .ajax_add_to_cart, .single_add_to_cart_button)').one('click', function (event) {\njQuery(document).one(\"click\", \"a:not(.add_to_cart_button, .ajax_add_to_cart, .single_add_to_cart_button)\", (event) => {\n\n\ttry {\n\t\tif (jQuery(event.target).closest(\"a\").attr(\"href\")) {\n\n\t\t\tlet href = jQuery(event.target).closest(\"a\").attr(\"href\")\n\n\t\t\tif (href.includes(\"add-to-cart=\")) {\n\n\t\t\t\tlet matches = href.match(/(add-to-cart=)(\\d+)/)\n\t\t\t\tif (matches) wpm.addProductToCart(matches[2], 1)\n\t\t\t}\n\t\t}\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// select_content GA UA event\n// select_item GA 4 event\n// jQuery(document).on('click', '.woocommerce-LoopProduct-link, .wc-block-grid__product, .product-small.box', function (e) {\n// jQuery('.woocommerce-LoopProduct-link, .wc-block-grid__product, .product, .product-small, .type-product').on('click', function (e) {\njQuery(document).on(\"click\", \".woocommerce-LoopProduct-link, .wc-block-grid__product, .product, .product-small, .type-product\", (event) => {\n\n\ttry {\n\n\t\t/**\n\t\t * On some pages the event fires multiple times, and on product pages\n\t\t * even on page load. Using e.stopPropagation helps to prevent this,\n\t\t * but I don't know why. We don't even have to use this, since only a real\n\t\t * product click yields a valid productId. So we filter the invalid click\n\t\t * events out later down in the code. I'll keep it that way because this is\n\t\t * the most compatible way across shops.\n\t\t *\n\t\t * e.stopPropagation();\n\t\t * */\n\n\t\tlet productId = jQuery(event.currentTarget).nextAll(\".wpmProductId:first\").data(\"id\")\n\n\t\t/**\n\t\t * On product pages, for some reason, the click event is triggered on the main product on page load.\n\t\t * In that case no ID is found. But we can discard it, since we only want to trigger the event on\n\t\t * related products, which are found below.\n\t\t */\n\n\t\tif (productId) {\n\n\t\t\tproductId = wpm.getIdBasedOndVariationsOutputSetting(productId)\n\n\t\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\t\tif (wpmDataLayer.products && wpmDataLayer.products[productId]) {\n\n\t\t\t\tlet product = wpm.getProductDetailsFormattedForEvent(productId)\n\n\t\t\t\tjQuery(document).trigger(\"wpmSelectContentGaUa\", product)\n\t\t\t\tjQuery(document).trigger(\"wpmSelectItem\", product)\n\t\t\t}\n\t\t}\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// begin_checkout event\nlet checkoutButtonClasses = [\n\t\".checkout-button\",\n\t\".cart-checkout-button\",\n\t\".button.checkout\",\n\t\".xoo-wsc-ft-btn-checkout\", // https://xootix.com/side-cart-for-woocommerce/\n\t\".elementor-button--checkout\",\n]\n\njQuery(document).one(\"click\", checkoutButtonClasses.join(\",\"), () => {\n\tjQuery(document).trigger(\"wpmBeginCheckout\")\n})\n\n\n// checkout_progress event\n// track checkout option event: entered valid billing email\njQuery(document).on(\"input\", \"#billing_email\", (event) => {\n\n\tif (wpm.isEmail(jQuery(event.currentTarget).val())) {\n\t\t// wpm.fireCheckoutOption(2);\n\t\twpm.fireCheckoutProgress(2)\n\t\twpm.emailSelected = true\n\t}\n})\n\n// track checkout option event: purchase click\njQuery(document).on(\"click\", \".wc_payment_methods\", () => {\n\n\tif (false === wpm.paymentMethodSelected) {\n\t\twpm.fireCheckoutProgress(3)\n\t}\n\n\twpm.fireCheckoutOption(3, jQuery(\"input[name='payment_method']:checked\").val())\n\twpm.paymentMethodSelected = true\n})\n\n// track checkout option event: purchase click\n// jQuery('#place_order').one('click', function () {\njQuery(document).one(\"click\", \"#place_order\", () => {\n\n\tif (false === wpm.emailSelected) {\n\t\twpm.fireCheckoutProgress(2)\n\t}\n\n\tif (false === wpm.paymentMethodSelected) {\n\t\twpm.fireCheckoutProgress(3)\n\t\twpm.fireCheckoutOption(3, jQuery(\"input[name='payment_method']:checked\").val())\n\t}\n\n\twpm.fireCheckoutProgress(4)\n})\n\n// update cart event\n// jQuery(\"[name='update_cart']\").on('click', function (e) {\njQuery(document).on(\"click\", \"[name='update_cart']\", (event) => {\n\n\ttry {\n\t\tjQuery(\".cart_item\").each((index, element) => {\n\n\t\t\tlet url = new URL(jQuery(element).find(\".product-remove\").find(\"a\").attr(\"href\"))\n\t\t\tlet productId = wpm.getProductIdByCartItemKeyUrl(url)\n\n\n\t\t\tlet quantity = jQuery(element).find(\".qty\").val()\n\n\t\t\tif (quantity === 0) {\n\t\t\t\twpm.removeProductFromCart(productId)\n\t\t\t} else if (quantity < wpmDataLayer.cart[productId].quantity) {\n\t\t\t\twpm.removeProductFromCart(productId, wpmDataLayer.cart[productId].quantity - quantity)\n\t\t\t} else if (quantity > wpmDataLayer.cart[productId].quantity) {\n\t\t\t\twpm.addProductToCart(productId, quantity - wpmDataLayer.cart[productId].quantity)\n\t\t\t}\n\t\t})\n\t} catch (e) {\n\t\tconsole.error(e)\n\t\twpm.getCartItemsFromBackend()\n\t}\n})\n\n\n// add_to_wishlist\njQuery(function () {\n\n\tjQuery(\".add_to_wishlist,.wl-add-to\").on(\"click\", event => {\n\n\t\ttry {\n\n\t\t\tlet productId\n\n\t\t\tif (jQuery(event.currentTarget).data(\"productid\")) { // for the WooCommerce wishlist plugin\n\n\t\t\t\tproductId = jQuery(event.currentTarget).data(\"productid\")\n\t\t\t} else if (jQuery(event.currentTarget).data(\"product-id\")) { // for the YITH wishlist plugin\n\n\t\t\t\tproductId = jQuery(event.currentTarget).data(\"product-id\")\n\t\t\t}\n\n\t\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\t\tlet product = wpm.getProductDetailsFormattedForEvent(productId)\n\n\n\t\t\tjQuery(document).trigger(\"wpmAddToWishlist\", product)\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t})\n})\n\njQuery(document).on(\"updated_cart_totals\", () => {\n\tjQuery(document).trigger(\"wpmViewCart\")\n})\n\n\n/**\n * Called when the user selects all the required dropdowns / attributes\n *\n * Has to be hooked after document ready !\n *\n * https://stackoverflow.com/a/27849208/4688612\n * https://stackoverflow.com/a/65065335/4688612\n */\n\njQuery(() => {\n\n\tjQuery(\".single_variation_wrap\").on(\"show_variation\", (event, variation) => {\n\n\t\ttry {\n\t\t\tlet productId = wpm.getIdBasedOndVariationsOutputSetting(variation.variation_id)\n\n\t\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\t\twpm.triggerViewItemEventPrep(productId)\n\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t})\n})\n\n\n/**\n * Called on variable products when no selection has been done yet\n * or when the visitor deselects his choice.\n *\n * Has to be hooked after document ready !\n */\n\n// jQuery(function () {\n//\n// \tjQuery(\".single_variation_wrap\").on(\"hide_variation\", function () {\n//\n// \t\ttry {\n// \t\t\tlet classes = jQuery(\"body\").attr(\"class\")\n// \t\t\tlet productId = classes.match(/(postid-)(\\d+)/)[2]\n//\n// \t\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n//\n// \t\t\t/**\n// \t\t\t * If we have a variable product with no preset,\n// \t\t\t * and variations output is enabled,\n// \t\t\t * then we send a viewItem event with the first\n// \t\t\t * variation we find for the parent.\n// \t\t\t * If variations output is disabled,\n// \t\t\t * we just send the parent ID.\n// \t\t\t *\n// \t\t\t * And if Facebook microdata is active, use the\n// \t\t\t * microdata product ID.\n// \t\t\t */\n//\n// \t\t\tif (\n// \t\t\t\t\"variable\" === wpmDataLayer.shop.product_type &&\n// \t\t\t\twpmDataLayer?.general?.variationsOutput\n// \t\t\t) {\n// \t\t\t\tfor (const [key, product] of Object.entries(wpmDataLayer.products)) {\n// \t\t\t\t\tif (\"parentId\" in product) {\n//\n// \t\t\t\t\t\tproductId = product.id\n// \t\t\t\t\t\tbreak\n// \t\t\t\t\t}\n// \t\t\t\t}\n//\n// \t\t\t\tif (wpmDataLayer?.pixels?.facebook?.microdata_product_id) {\n// \t\t\t\t\tproductId = wpmDataLayer.pixels.facebook.microdata_product_id\n// \t\t\t\t}\n// \t\t\t}\n//\n// \t\t\t// console.log(\"hmm\")\n// \t\t\twpm.triggerViewItemEventPrep(productId)\n//\n// \t\t} catch (e) {\n// \t\t\tconsole.error(e)\n// \t\t}\n// \t})\n// })\n\n// jQuery(function () {\n//\n// \tjQuery(\".single_variation_wrap\").on(\"hide_variation\", function () {\n// \t\tjQuery(document).trigger(\"wpmviewitem\")\n// \t})\n// })\n\n\n/**\n * Set up wpm events\n */\n\n// populate the wpmDataLayer with the cart items\njQuery(document).on(\"wpmLoad\", () => {\n\n\ttry {\n\t\t// When a new session is initiated there are no items in the cart,\n\t\t// so we can save the call to get the cart items\n\t\tif (wpm.doesWooCommerceCartExist()) wpm.getCartItems()\n\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// get all add-to-cart= products from backend\njQuery(document).on(\"wpmLoad\", () => {\n\n\twpmDataLayer.products = wpmDataLayer.products || {}\n\n\t// scan page for add-to-cart= links\n\tlet productIds = wpm.getAddToCartLinkProductIds()\n\n\twpm.getProductsFromBackend(productIds)\n})\n\n/**\n * Save the referrer into a cookie\n */\n\njQuery(document).on(\"wpmLoad\", () => {\n\n\t// can't use session storage as we can't read it from the server\n\tif (!wpm.getCookie(\"wpmReferrer\")) {\n\n\t\tif (document.referrer) {\n\t\t\tlet referrerUrl = new URL(document.referrer)\n\t\t\tlet referrerHostname = referrerUrl.hostname\n\n\t\t\tif (referrerHostname !== window.location.host) {\n\t\t\t\twpm.setCookie(\"wpmReferrer\", referrerHostname)\n\t\t\t}\n\t\t}\n\t}\n})\n\n\n/**\n * Create our own load event in order to better handle script flow execution when JS \"optimizers\" shuffle the code.\n */\n\njQuery(document).on(\"wpmLoad\", () => {\n\t// document.addEventListener(\"wpmLoad\", function () {\n\ttry {\n\t\tif (typeof wpmDataLayer != \"undefined\" && !wpmDataLayer?.wpmLoadFired) {\n\n\t\t\tjQuery(document).trigger(\"wpmLoadAlways\")\n\n\t\t\tif (wpmDataLayer?.shop) {\n\t\t\t\tif (\n\t\t\t\t\t\"product\" === wpmDataLayer.shop.page_type &&\n\t\t\t\t\t\"variable\" !== wpmDataLayer.shop.product_type &&\n\t\t\t\t\twpm.getMainProductIdFromProductPage()\n\t\t\t\t) {\n\t\t\t\t\tlet product = wpm.getProductDataForViewItemEvent(wpm.getMainProductIdFromProductPage())\n\t\t\t\t\tjQuery(document).trigger(\"wpmViewItem\", product)\n\t\t\t\t} else if (\"product_category\" === wpmDataLayer.shop.page_type) {\n\t\t\t\t\tjQuery(document).trigger(\"wpmCategory\")\n\t\t\t\t} else if (\"search\" === wpmDataLayer.shop.page_type) {\n\t\t\t\t\tjQuery(document).trigger(\"wpmSearch\")\n\t\t\t\t} else if (\"cart\" === wpmDataLayer.shop.page_type) {\n\t\t\t\t\tjQuery(document).trigger(\"wpmViewCart\")\n\t\t\t\t} else if (\"order_received_page\" === wpmDataLayer.shop.page_type && wpmDataLayer.order) {\n\t\t\t\t\tif (!wpm.isOrderIdStored(wpmDataLayer.order.id)) {\n\t\t\t\t\t\tjQuery(document).trigger(\"wpmOrderReceivedPage\")\n\t\t\t\t\t\twpm.writeOrderIdToStorage(wpmDataLayer.order.id)\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tjQuery(document).trigger(\"wpmEverywhereElse\")\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tjQuery(document).trigger(\"wpmEverywhereElse\")\n\t\t\t}\n\n\t\t\tif (wpmDataLayer?.user?.id && !wpm.hasLoginEventFired()) {\n\t\t\t\tjQuery(document).trigger(\"wpmLogin\")\n\t\t\t\twpm.setLoginEventFired()\n\t\t\t}\n\n\t\t\t// /**\n\t\t\t// * Load mini cart fragments into a wpm session storage key,\n\t\t\t// * after the document load event.\n\t\t\t// */\n\t\t\t// jQuery(document).ajaxSend(function (event, jqxhr, settings) {\n\t\t\t// \t// console.log('settings.url: ' + settings.url);\n\t\t\t//\n\t\t\t// \tif (settings.url.includes(\"get_refreshed_fragments\") && sessionStorage) {\n\t\t\t// \t\tif (!sessionStorage.getItem(\"wpmMiniCartActive\")) {\n\t\t\t// \t\t\tsessionStorage.setItem(\"wpmMiniCartActive\", JSON.stringify(true))\n\t\t\t// \t\t}\n\t\t\t// \t}\n\t\t\t// })\n\n\t\t\twpmDataLayer.wpmLoadFired = true\n\t\t}\n\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\njQuery(document).on(\"wpmLoad\", async () => {\n\n\tif (\n\t\twindow.sessionStorage &&\n\t\twindow.sessionStorage.getItem(\"_pmw_endpoint_available\") &&\n\t\t!JSON.parse(window.sessionStorage.getItem(\"_pmw_endpoint_available\"))\n\t) {\n\t\tconsole.error(\"Pixel Manager for WooCommerce: REST endpoint is not available. Using admin-ajax.php instead.\")\n\t}\n})\n\n\n/**\n * Load all pixels\n */\njQuery(document).on(\"wpmPreLoadPixels\", () => {\n\n\tif (wpmDataLayer?.shop?.cookie_consent_mgmt?.explicit_consent && !wpm.explicitConsentStateAlreadySet()) {\n\t\twpm.updateConsentCookieValues(null, null, true)\n\t}\n\n\tjQuery(document).trigger(\"wpmLoadPixels\", {})\n})\n\n\n/**\n * All ecommerce events\n */\n\njQuery(document).on(\"wpmAddToCart\", (event, product) => {\n\n\t/**\n\t * Prepare the payload\n\t */\n\n\tlet payload = {\n\t\tevent : \"addToCart\",\n\t\tproduct: product,\n\t}\n\n\t// If Facebook pixel is loaded, add Facebook server to server event data to the payload\n\tif (wpmDataLayer?.pixels?.facebook?.loaded) {\n\t\tpayload.facebook = {\n\t\t\tevent_name : \"AddToCart\",\n\t\t\tevent_id : wpm.getFbRandomEventId(),\n\t\t\tuser_data : wpm.getFbUserData(),\n\t\t\tevent_source_url: window.location.href,\n\t\t\tcustom_data : wpm.fbGetProductDataForCapiEvent(product),\n\t\t}\n\t}\n\n\t/**\n\t * Process the client-to-server event\n\t */\n\n\tjQuery(document).trigger(\"wpmClientSideAddToCart\", payload)\n\n\t/**\n\t * Process the server-to-server event\n\t */\n\n\t// If function wpm.isServerToServerEnabled() exists, then run it\n\tif (typeof wpm.sendEventPayloadToServer === \"function\") {\n\t\twpm.sendEventPayloadToServer(payload)\n\t}\n})\n\njQuery(document).on(\"wpmBeginCheckout\", () => {\n\n\t/**\n\t * Prepare the payload\n\t */\n\n\tlet payload = {\n\t\tevent: \"beginCheckout\",\n\t}\n\n\tif (wpmDataLayer?.pixels?.facebook?.loaded) {\n\t\tpayload.facebook = {\n\t\t\tevent_name : \"InitiateCheckout\",\n\t\t\tevent_id : wpm.getFbRandomEventId(),\n\t\t\tuser_data : wpm.getFbUserData(),\n\t\t\tevent_source_url: window.location.href,\n\t\t\tcustom_data : {},\n\t\t}\n\n\t\tif (wpmDataLayer?.cart && !jQuery.isEmptyObject(wpmDataLayer.cart)) {\n\t\t\tpayload.facebook.custom_data = {\n\t\t\t\tcontent_type: \"product\",\n\t\t\t\tcontent_ids : wpm.fbGetContentIdsFromCart(),\n\t\t\t\tvalue : wpm.getCartValue(),\n\t\t\t\tcurrency : wpmDataLayer.shop.currency,\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Process the client-to-server event\n\t */\n\n\tjQuery(document).trigger(\"wpmClientSideBeginCheckout\", payload)\n\n\t/**\n\t * Process the server-to-server event\n\t */\n\n\t// If function wpm.isServerToServerEnabled() exists, then run it\n\tif (typeof wpm.sendEventPayloadToServer === \"function\") {\n\t\twpm.sendEventPayloadToServer(payload)\n\t}\n})\n\njQuery(document).on(\"wpmAddToWishlist\", (event, product) => {\n\n\t/**\n\t * Prepare the payload\n\t */\n\n\tlet payload = {\n\t\tevent : \"addToWishlist\",\n\t\tproduct: product,\n\t}\n\n\tif (wpmDataLayer?.pixels?.facebook?.loaded) {\n\t\tpayload.facebook = {\n\t\t\tevent_name : \"AddToWishlist\",\n\t\t\tevent_id : wpm.getFbRandomEventId(),\n\t\t\tuser_data : wpm.getFbUserData(),\n\t\t\tevent_source_url: window.location.href,\n\t\t\tcustom_data : wpm.fbGetProductDataForCapiEvent(product),\n\t\t}\n\t}\n\n\t/**\n\t * Process the client-to-server event\n\t */\n\n\tjQuery(document).trigger(\"wpmClientSideAddToWishlist\", payload)\n\n\t/**\n\t * Process the server-to-server event\n\t */\n\n\t// If function wpm.isServerToServerEnabled() exists, then run it\n\tif (typeof wpm.sendEventPayloadToServer === \"function\") {\n\t\twpm.sendEventPayloadToServer(payload)\n\t}\n})\n\njQuery(document).on(\"wpmViewItem\", (event, product = null) => {\n\n\t/**\n\t * Prepare the payload\n\t */\n\n\tlet payload = {\n\t\tevent : \"viewItem\",\n\t\tproduct: product,\n\t}\n\n\tif (wpmDataLayer?.pixels?.facebook?.loaded) {\n\t\tpayload.facebook = {\n\t\t\tevent_name : \"ViewContent\",\n\t\t\tevent_id : wpm.getFbRandomEventId(),\n\t\t\tuser_data : wpm.getFbUserData(),\n\t\t\tevent_source_url: window.location.href,\n\t\t\tcustom_data : {},\n\t\t}\n\n\t\tif (product) {\n\t\t\tpayload.facebook.custom_data = wpm.fbGetProductDataForCapiEvent(product)\n\t\t}\n\t}\n\n\t/**\n\t * Process the client-to-server event\n\t */\n\n\tjQuery(document).trigger(\"wpmClientSideViewItem\", payload)\n\n\t/**\n\t * Process the server-to-server event\n\t */\n\n\t// If function wpm.isServerToServerEnabled() exists, then run it\n\tif (typeof wpm.sendEventPayloadToServer === \"function\") {\n\t\twpm.sendEventPayloadToServer(payload)\n\t}\n})\n\njQuery(document).on(\"wpmSearch\", () => {\n\n\t/**\n\t * Prepare the payload\n\t */\n\n\tlet payload = {\n\t\tevent: \"search\",\n\t}\n\n\tif (wpmDataLayer?.pixels?.facebook?.loaded) {\n\t\tpayload.facebook = {\n\t\t\tevent_name : \"Search\",\n\t\t\tevent_id : wpm.getFbRandomEventId(),\n\t\t\tuser_data : wpm.getFbUserData(),\n\t\t\tevent_source_url: window.location.href,\n\t\t\tcustom_data : {\n\t\t\t\tsearch_string: wpm.getSearchTermFromUrl(),\n\t\t\t},\n\t\t}\n\t}\n\n\t/**\n\t * Process the client-to-server event\n\t */\n\n\tjQuery(document).trigger(\"wpmClientSideSearch\", payload)\n\n\t/**\n\t * Process the server-to-server event\n\t */\n\n\t// If function wpm.isServerToServerEnabled() exists, then run it\n\tif (typeof wpm.sendEventPayloadToServer === \"function\") {\n\t\twpm.sendEventPayloadToServer(payload)\n\t}\n})\n\njQuery(document).on(\"wpmOrderReceivedPage\", () => {\n\n\t/**\n\t * Prepare the payload\n\t */\n\n\tlet payload = {\n\t\tevent: \"orderReceived\",\n\t}\n\n\tif (wpmDataLayer?.pixels?.facebook?.loaded) {\n\t\tpayload.facebook = {\n\t\t\tevent_name : \"Purchase\",\n\t\t\tevent_id : wpmDataLayer.order.id,\n\t\t\tuser_data : wpm.getFbUserData(),\n\t\t\tevent_source_url: window.location.href,\n\t\t\tcustom_data : {\n\t\t\t\tcontent_type: \"product\",\n\t\t\t\tvalue : wpmDataLayer.order.value_filtered,\n\t\t\t\tcurrency : wpmDataLayer.order.currency,\n\t\t\t\tcontent_ids : wpm.facebookContentIds(),\n\t\t\t},\n\t\t}\n\t}\n\n\t/**\n\t * Process the client-to-server event\n\t */\n\n\tjQuery(document).trigger(\"wpmClientSideOrderReceivedPage\", payload)\n\n\t/**\n\t * Process the server-to-server event\n\t */\n\n\t// ! No server-to-server event is sent for this event because it is compiled and sent from the server directly\n})\n\n\n\n\n\n","/**\n * Create a wpm namespace under which all functions are declared\n */\n\n// https://stackoverflow.com/a/5947280/4688612\n\n(function (wpm, $, undefined) {\n\n\tconst wpmDeduper = {\n\t\tkeyName : \"_wpm_order_ids\",\n\t\tcookieExpiresDays: 365,\n\t}\n\n\tconst wpmRestSettings = {\n\t\t// cookiesAvailable : '_wpm_cookies_are_available',\n\t\tcookiePmwRestEndpointAvailable: \"_pmw_endpoint_available\",\n\t\trestEndpointPost : \"pmw/v1/test/post/\",\n\t\trestFails : 0,\n\t\trestFailsThreshold : 10,\n\t}\n\n\twpm.emailSelected = false\n\twpm.paymentMethodSelected = false\n\n\t// wpm.checkIfCookiesAvailable = function () {\n\t//\n\t// // read the cookie if previously set, if it is return true, otherwise continue\n\t// if (wpm.getCookie(wpmRestSettings.cookiesAvailable)) {\n\t// return true;\n\t// }\n\t//\n\t// // set the cookie for the session\n\t// Cookies.set(wpmRestSettings.cookiesAvailable, true);\n\t//\n\t// // read cookie, true if ok, false if not ok\n\t// return !!wpm.getCookie(wpmRestSettings.cookiesAvailable);\n\t// }\n\n\twpm.useRestEndpoint = () => {\n\n\t\t// only if sessionStorage is available\n\n\t\t// only if REST API endpoint is generally accessible\n\t\t// check in sessionStorage if we checked before and return answer\n\t\t// otherwise check if the endpoint is available, save answer in sessionStorage and return answer\n\n\t\t// only if not too many REST API errors happened\n\n\t\treturn wpm.isSessionStorageAvailable() &&\n\t\t\twpm.isRestEndpointAvailable() &&\n\t\t\twpm.isBelowRestErrorThreshold()\n\t}\n\n\twpm.isBelowRestErrorThreshold = () => window.sessionStorage.getItem(wpmRestSettings.restFails) <= wpmRestSettings.restFailsThreshold\n\n\twpm.isRestEndpointAvailable = async () => {\n\n\t\tif (window.sessionStorage.getItem(wpmRestSettings.cookiePmwRestEndpointAvailable)) {\n\t\t\treturn JSON.parse(window.sessionStorage.getItem(wpmRestSettings.cookiePmwRestEndpointAvailable))\n\t\t} else {\n\t\t\treturn await wpm.testEndpoint()\n\t\t}\n\t}\n\n\twpm.isSessionStorageAvailable = () => !!window.sessionStorage\n\n\t// Test the endpoint by sending a POST request\n\twpm.testEndpoint = async (\n\t\turl = wpm.root + wpmRestSettings.restEndpointPost,\n\t\tcookieName = wpmRestSettings.cookiePmwRestEndpointAvailable,\n\t) => {\n\n\t\tlet response = await fetch(url, {\n\t\t\tmethod : \"POST\",\n\t\t\tmode : \"cors\",\n\t\t\tcache : \"no-cache\",\n\t\t\tkeepalive: true,\n\t\t})\n\n\t\tif (response.status === 200) {\n\t\t\twindow.sessionStorage.setItem(cookieName, JSON.stringify(true))\n\t\t\treturn true\n\t\t} else if (response.status === 404) {\n\t\t\twindow.sessionStorage.setItem(cookieName, JSON.stringify(false))\n\t\t\treturn false\n\t\t} else if (response.status === 0) {\n\t\t\twindow.sessionStorage.setItem(cookieName, JSON.stringify(false))\n\t\t\treturn false\n\t\t}\n\t}\n\n\twpm.isWpmRestEndpointAvailable = (cookieName = wpmRestSettings.cookiePmwRestEndpointAvailable) => !!wpm.getCookie(cookieName)\n\n\twpm.writeOrderIdToStorage = (orderId, expireDays = 365) => {\n\n\t\t// save the order ID in the browser storage\n\n\t\tif (!window.Storage) {\n\t\t\tlet expiresDate = new Date()\n\t\t\texpiresDate.setDate(expiresDate.getDate() + wpmDeduper.cookieExpiresDays)\n\n\t\t\tlet ids = []\n\t\t\tif (checkCookie()) {\n\t\t\t\tids = JSON.parse(wpm.getCookie(wpmDeduper.keyName))\n\t\t\t}\n\n\t\t\tif (!ids.includes(orderId)) {\n\t\t\t\tids.push(orderId)\n\t\t\t\tdocument.cookie = wpmDeduper.keyName + \"=\" + JSON.stringify(ids) + \";expires=\" + expiresDate.toUTCString()\n\t\t\t}\n\n\t\t} else {\n\t\t\tif (localStorage.getItem(wpmDeduper.keyName) === null) {\n\t\t\t\tlet ids = []\n\t\t\t\tids.push(orderId)\n\t\t\t\twindow.localStorage.setItem(wpmDeduper.keyName, JSON.stringify(ids))\n\n\t\t\t} else {\n\t\t\t\tlet ids = JSON.parse(localStorage.getItem(wpmDeduper.keyName))\n\t\t\t\tif (!ids.includes(orderId)) {\n\t\t\t\t\tids.push(orderId)\n\t\t\t\t\twindow.localStorage.setItem(wpmDeduper.keyName, JSON.stringify(ids))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (typeof wpm.storeOrderIdOnServer === \"function\" && wpmDataLayer.orderDeduplication) {\n\t\t\twpm.storeOrderIdOnServer(orderId)\n\t\t}\n\t}\n\n\tfunction checkCookie() {\n\t\tlet key = wpm.getCookie(wpmDeduper.keyName)\n\t\treturn key !== \"\"\n\t}\n\n\twpm.isOrderIdStored = orderId => {\n\n\t\tif (wpmDataLayer.orderDeduplication) {\n\n\t\t\tif (!window.Storage) {\n\n\t\t\t\tif (checkCookie()) {\n\t\t\t\t\tlet ids = JSON.parse(wpm.getCookie(wpmDeduper.keyName))\n\t\t\t\t\treturn ids.includes(orderId)\n\t\t\t\t} else {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (localStorage.getItem(wpmDeduper.keyName) !== null) {\n\t\t\t\t\tlet ids = JSON.parse(localStorage.getItem(wpmDeduper.keyName))\n\t\t\t\t\treturn ids.includes(orderId)\n\t\t\t\t} else {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.log(\"order duplication prevention: off\")\n\t\t\treturn false\n\t\t}\n\t}\n\n\twpm.isEmail = email => {\n\n\t\t// https://emailregex.com/\n\n\t\tlet regex = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n\n\t\treturn regex.test(email)\n\t}\n\n\twpm.removeProductFromCart = (productId, quantityToRemove = null) => {\n\n\t\ttry {\n\n\t\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\t\tproductId = wpm.getIdBasedOndVariationsOutputSetting(productId)\n\n\t\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\t\tlet quantity\n\n\t\t\tif (quantityToRemove == null) {\n\t\t\t\tquantity = wpmDataLayer.cart[productId].quantity\n\t\t\t} else {\n\t\t\t\tquantity = quantityToRemove\n\t\t\t}\n\n\t\t\tif (wpmDataLayer.cart[productId]) {\n\n\t\t\t\tlet product = wpm.getProductDetailsFormattedForEvent(productId, quantity)\n\n\t\t\t\tjQuery(document).trigger(\"wpmRemoveFromCart\", product)\n\n\t\t\t\tif (quantityToRemove == null || wpmDataLayer.cart[productId].quantity === quantityToRemove) {\n\n\t\t\t\t\tdelete wpmDataLayer.cart[productId]\n\n\t\t\t\t\tif (sessionStorage) sessionStorage.setItem(\"wpmDataLayerCart\", JSON.stringify(wpmDataLayer.cart))\n\t\t\t\t} else {\n\n\t\t\t\t\twpmDataLayer.cart[productId].quantity = wpmDataLayer.cart[productId].quantity - quantity\n\n\t\t\t\t\tif (sessionStorage) sessionStorage.setItem(\"wpmDataLayerCart\", JSON.stringify(wpmDataLayer.cart))\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t\t// console.log('getting cart from back end');\n\t\t\t// wpm.getCartItemsFromBackend();\n\t\t\t// console.log('getting cart from back end done');\n\t\t}\n\t}\n\n\twpm.getIdBasedOndVariationsOutputSetting = productId => {\n\n\t\ttry {\n\t\t\tif (wpmDataLayer?.general?.variationsOutput) {\n\n\t\t\t\treturn productId\n\t\t\t} else {\n\t\t\t\tif (wpmDataLayer.products[productId].isVariation) {\n\n\t\t\t\t\treturn wpmDataLayer.products[productId].parentId\n\t\t\t\t} else {\n\n\t\t\t\t\treturn productId\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\t// add_to_cart\n\twpm.addProductToCart = (productId, quantity) => {\n\n\t\ttry {\n\n\t\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\t\tproductId = wpm.getIdBasedOndVariationsOutputSetting(productId)\n\n\t\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\t\tif (wpmDataLayer?.products[productId]) {\n\n\t\t\t\tlet product = wpm.getProductDetailsFormattedForEvent(productId, quantity)\n\n\t\t\t\tjQuery(document).trigger(\"wpmAddToCart\", product)\n\n\t\t\t\t// add product to cart wpmDataLayer['cart']\n\n\t\t\t\t// if the product already exists in the object, only add the additional quantity\n\t\t\t\t// otherwise create that product object in the wpmDataLayer['cart']\n\t\t\t\tif (wpmDataLayer?.cart[productId]) {\n\n\t\t\t\t\twpmDataLayer.cart[productId].quantity = wpmDataLayer.cart[productId].quantity + quantity\n\t\t\t\t} else {\n\n\t\t\t\t\tif (!(\"cart\" in wpmDataLayer)) wpmDataLayer.cart = {}\n\n\t\t\t\t\twpmDataLayer.cart[productId] = wpm.getProductDetailsFormattedForEvent(productId, quantity)\n\t\t\t\t}\n\n\t\t\t\tif (sessionStorage) sessionStorage.setItem(\"wpmDataLayerCart\", JSON.stringify(wpmDataLayer.cart))\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\n\t\t\t// fallback if wpmDataLayer.cart and wpmDataLayer.products got out of sync in case cart caching has an issue\n\t\t\twpm.getCartItemsFromBackend()\n\t\t}\n\t}\n\n\twpm.getCartItems = () => {\n\n\t\tif (sessionStorage) {\n\t\t\tif (!sessionStorage.getItem(\"wpmDataLayerCart\") || wpmDataLayer.shop.page_type === \"order_received_page\") {\n\t\t\t\tsessionStorage.setItem(\"wpmDataLayerCart\", JSON.stringify({}))\n\t\t\t} else {\n\t\t\t\twpm.saveCartObjectToDataLayer(JSON.parse(sessionStorage.getItem(\"wpmDataLayerCart\")))\n\t\t\t}\n\t\t} else {\n\t\t\twpm.getCartItemsFromBackend()\n\t\t}\n\t}\n\n\t// get all cart items from the backend\n\twpm.getCartItemsFromBackend = () => {\n\t\ttry {\n\n\t\t\t/**\n\t\t\t * Can't use a REST API endpoint, as the cart session will not be loaded if the\n\t\t\t * endpoint is called.\n\t\t\t *\n\t\t\t * https://wordpress.org/support/topic/wc-cart-is-null-in-custom-rest-api/#post-11442843\n\t\t\t */\n\n\t\t\t/**\n\t\t\t * Get the cart items from the backend the data object using fetch API\n\t\t\t * and log success or error messages\n\t\t\t * and url encoded data\n\t\t\t */\n\t\t\tfetch(wpm.ajax_url, {\n\t\t\t\tmethod : \"POST\",\n\t\t\t\tcache : \"no-cache\",\n\t\t\t\tbody : new URLSearchParams({action: \"pmw_get_cart_items\"}),\n\t\t\t\tkeepalive: true,\n\t\t\t})\n\t\t\t\t.then(response => {\n\t\t\t\t\tif (response.ok) {\n\t\t\t\t\t\treturn response.json()\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow Error(\"Error getting cart items from backend\")\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.then(data => {\n\n\t\t\t\t\tif (data.success) {\n\n\t\t\t\t\t\tif (!data.data[\"cart\"]) data.data[\"cart\"] = {}\n\n\t\t\t\t\t\twpm.saveCartObjectToDataLayer(data.data[\"cart\"])\n\n\t\t\t\t\t\tif (sessionStorage) sessionStorage.setItem(\"wpmDataLayerCart\", JSON.stringify(data.data[\"cart\"]))\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow Error(\"Error getting cart items from backend\")\n\t\t\t\t\t}\n\t\t\t\t})\n\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\t// get productIds from the backend\n\twpm.getProductsFromBackend = async productIds => {\n\n\t\tif (wpmDataLayer?.products) {\n\t\t\t// reduce productIds by products already in the dataLayer\n\t\t\tproductIds = productIds.filter(item => !wpmDataLayer.products.hasOwnProperty(item))\n\t\t}\n\n\t\t// if no products IDs are in the object, don't try to get anything from the server\n\t\tif (!productIds || productIds.length === 0) return\n\n\t\ttry {\n\n\t\t\tlet response\n\n\t\t\tif (await wpm.isRestEndpointAvailable()) {\n\t\t\t\tresponse = await fetch(wpm.root + \"pmw/v1/products/\", {\n\t\t\t\t\tmethod : \"POST\",\n\t\t\t\t\tcache : \"no-cache\",\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\t\t},\n\t\t\t\t\tbody : JSON.stringify(productIds),\n\t\t\t\t})\n\t\t\t} else {\n\n\t\t\t\t// Get the product details from the backend the data object using fetch API\n\t\t\t\t// and log success or error messages\n\t\t\t\t// and url encoded data\n\t\t\t\tresponse = await fetch(wpm.ajax_url, {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\tcache : \"no-cache\",\n\t\t\t\t\tbody : new URLSearchParams({\n\t\t\t\t\t\taction : \"pmw_get_product_ids\",\n\t\t\t\t\t\tproductIds: productIds,\n\t\t\t\t\t}),\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (response.ok) {\n\t\t\t\tlet responseData = await response.json()\n\t\t\t\tif (responseData.success) {\n\t\t\t\t\twpmDataLayer.products = Object.assign({}, wpmDataLayer.products, responseData.data)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconsole.error(\"Error getting products from backend\")\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\n\t\treturn true\n\t}\n\n\twpm.saveCartObjectToDataLayer = cartObject => {\n\n\t\twpmDataLayer.cart = cartObject\n\t\twpmDataLayer.products = Object.assign({}, wpmDataLayer.products, cartObject)\n\t}\n\n\twpm.triggerViewItemEventPrep = async productId => {\n\n\t\tif (wpmDataLayer.products && wpmDataLayer.products[productId]) {\n\n\t\t\twpm.triggerViewItemEvent(productId)\n\t\t} else {\n\t\t\tawait wpm.getProductsFromBackend([productId])\n\t\t\twpm.triggerViewItemEvent(productId)\n\t\t}\n\t}\n\n\twpm.triggerViewItemEvent = productId => {\n\n\t\tlet product = wpm.getProductDetailsFormattedForEvent(productId)\n\n\t\tjQuery(document).trigger(\"wpmViewItem\", product)\n\t}\n\n\twpm.triggerViewItemEventNoProduct = () => {\n\t\tjQuery(document).trigger(\"wpmViewItem\")\n\t}\n\n\twpm.fireCheckoutOption = (step, checkout_option = null, value = null) => {\n\n\t\tlet data = {\n\t\t\tstep : step,\n\t\t\tcheckout_option: checkout_option,\n\t\t\tvalue : value,\n\t\t}\n\n\t\tjQuery(document).trigger(\"wpmFireCheckoutOption\", data)\n\t}\n\n\twpm.fireCheckoutProgress = step => {\n\n\t\tlet data = {\n\t\t\tstep: step,\n\t\t}\n\n\t\tjQuery(document).trigger(\"wpmFireCheckoutProgress\", data)\n\t}\n\n\twpm.getPostIdFromString = string => {\n\n\t\ttry {\n\t\t\treturn string.match(/(post-)(\\d+)/)[2]\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.triggerViewItemList = productId => {\n\n\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\tproductId = wpm.getIdBasedOndVariationsOutputSetting(productId)\n\n\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\tjQuery(document).trigger(\"wpmViewItemList\", wpm.getProductDataForViewItemEvent(productId))\n\t}\n\n\twpm.getProductDataForViewItemEvent = productId => {\n\n\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\ttry {\n\t\t\tif (wpmDataLayer.products[productId]) {\n\n\t\t\t\treturn wpm.getProductDetailsFormattedForEvent(productId)\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.getMainProductIdFromProductPage = () => {\n\n\t\ttry {\n\t\t\tif ([\"simple\", \"variable\", \"grouped\", \"composite\", \"bundle\"].indexOf(wpmDataLayer.shop.product_type) >= 0) {\n\t\t\t\treturn jQuery(\".wpmProductId:first\").data(\"id\")\n\t\t\t} else {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.viewItemListTriggerTestMode = target => {\n\n\t\tjQuery(target).css({\"position\": \"relative\"})\n\t\tjQuery(target).append(\"<div id=\\\"viewItemListTriggerOverlay\\\"></div>\")\n\t\tjQuery(target).find(\"#viewItemListTriggerOverlay\").css({\n\t\t\t\"z-index\" : \"10\",\n\t\t\t\"display\" : \"block\",\n\t\t\t\"position\" : \"absolute\",\n\t\t\t\"height\" : \"100%\",\n\t\t\t\"top\" : \"0\",\n\t\t\t\"left\" : \"0\",\n\t\t\t\"right\" : \"0\",\n\t\t\t\"opacity\" : wpmDataLayer.viewItemListTrigger.opacity,\n\t\t\t\"background-color\": wpmDataLayer.viewItemListTrigger.backgroundColor,\n\t\t})\n\t}\n\n\twpm.getSearchTermFromUrl = () => {\n\n\t\ttry {\n\t\t\tlet urlParameters = new URLSearchParams(window.location.search)\n\t\t\treturn urlParameters.get(\"s\")\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\t// we need this to track timeouts for intersection observers\n\tlet ioTimeouts = {}\n\n\twpm.observerCallback = (entries, observer) => {\n\n\t\tentries.forEach((entry) => {\n\n\t\t\ttry {\n\t\t\t\tlet productId\n\n\t\t\t\tlet elementId = jQuery(entry.target).data(\"ioid\")\n\n\t\t\t\t// Get the productId from next element, if wpmProductId is a sibling, like in Gutenberg blocks\n\t\t\t\t// otherwise go search in children, like in regular WC loop items\n\t\t\t\tif (jQuery(entry.target).next(\".wpmProductId\").length) {\n\t\t\t\t\t// console.log('test 1');\n\t\t\t\t\tproductId = jQuery(entry.target).next(\".wpmProductId\").data(\"id\")\n\t\t\t\t} else {\n\t\t\t\t\tproductId = jQuery(entry.target).find(\".wpmProductId\").data(\"id\")\n\t\t\t\t}\n\n\n\t\t\t\tif (!productId) throw Error(\"wpmProductId element not found\")\n\n\t\t\t\tif (entry.isIntersecting) {\n\n\t\t\t\t\tioTimeouts[elementId] = setTimeout(() => {\n\n\t\t\t\t\t\twpm.triggerViewItemList(productId)\n\t\t\t\t\t\tif (wpmDataLayer.viewItemListTrigger.testMode) wpm.viewItemListTriggerTestMode(entry.target)\n\t\t\t\t\t\tif (wpmDataLayer.viewItemListTrigger.repeat === false) observer.unobserve(entry.target)\n\t\t\t\t\t}, wpmDataLayer.viewItemListTrigger.timeout)\n\n\t\t\t\t} else {\n\n\t\t\t\t\tclearTimeout(ioTimeouts[elementId])\n\t\t\t\t\tif (wpmDataLayer.viewItemListTrigger.testMode) jQuery(entry.target).find(\"#viewItemListTriggerOverlay\").remove()\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(e)\n\t\t\t}\n\t\t})\n\t}\n\n\t// fire view_item_list only on products that have become visible\n\tlet io\n\tlet ioid = 0\n\tlet allIoElementsToWatch\n\n\tlet getAllElementsToWatch = () => {\n\n\t\tallIoElementsToWatch = jQuery(\".wpmProductId\")\n\t\t\t.map(function (i, elem) {\n\n\t\t\t\tif (\n\t\t\t\t\tjQuery(elem).parent().hasClass(\"type-product\") ||\n\t\t\t\t\tjQuery(elem).parent().hasClass(\"product\") ||\n\t\t\t\t\tjQuery(elem).parent().hasClass(\"product-item-inner\")\n\t\t\t\t) {\n\t\t\t\t\treturn jQuery(elem).parent()\n\t\t\t\t} else if (\n\t\t\t\t\tjQuery(elem).prev().hasClass(\"wc-block-grid__product\") ||\n\t\t\t\t\tjQuery(elem).prev().hasClass(\"product\") ||\n\t\t\t\t\tjQuery(elem).prev().hasClass(\"product-small\") ||\n\t\t\t\t\tjQuery(elem).prev().hasClass(\"woocommerce-LoopProduct-link\")\n\t\t\t\t) {\n\t\t\t\t\treturn jQuery(this).prev()\n\t\t\t\t} else if (jQuery(elem).closest(\".product\").length) {\n\t\t\t\t\treturn jQuery(elem).closest(\".product\")\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\twpm.startIntersectionObserverToWatch = () => {\n\n\t\ttry {\n\t\t\t// enable view_item_list test mode from browser\n\t\t\tif (wpm.urlHasParameter(\"vildemomode\")) wpmDataLayer.viewItemListTrigger.testMode = true\n\n\t\t\t// set up intersection observer\n\t\t\tio = new IntersectionObserver(wpm.observerCallback, {\n\t\t\t\tthreshold: wpmDataLayer.viewItemListTrigger.threshold,\n\t\t\t})\n\n\t\t\tgetAllElementsToWatch()\n\n\t\t\tallIoElementsToWatch.each((i, elem) => {\n\n\t\t\t\tjQuery(elem[0]).data(\"ioid\", ioid++)\n\n\t\t\t\tio.observe(elem[0])\n\t\t\t})\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\t// watch DOM for new lazy loaded products and add them to the intersection observer\n\twpm.startProductsMutationObserverToWatch = () => {\n\n\t\ttry {\n\t\t\t// Pass in the target node, as well as the observer options\n\n\t\t\t// selects the most common parent node\n\t\t\t// https://stackoverflow.com/a/7648323/4688612\n\t\t\tlet productsNode = jQuery(\".wpmProductId:eq(0)\").parents().has(jQuery(\".wpmProductId:eq(1)\").parents()).first()\n\n\t\t\tif (productsNode.length) {\n\t\t\t\tproductsMutationObserver.observe(productsNode[0], {\n\t\t\t\t\tattributes : true,\n\t\t\t\t\tchildList : true,\n\t\t\t\t\tcharacterData: true,\n\t\t\t\t})\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\t// Create an observer instance\n\tlet productsMutationObserver = new MutationObserver(mutations => {\n\n\t\tmutations.forEach(mutation => {\n\t\t\tlet newNodes = mutation.addedNodes // DOM NodeList\n\t\t\tif (newNodes !== null) { // If there are new nodes added\n\t\t\t\tlet nodes = jQuery(newNodes) // jQuery set\n\t\t\t\tnodes.each(function () {\n\t\t\t\t\tif (\n\t\t\t\t\t\tjQuery(this).hasClass(\"type-product\") ||\n\t\t\t\t\t\tjQuery(this).hasClass(\"product-small\") ||\n\t\t\t\t\t\tjQuery(this).hasClass(\"wc-block-grid__product\")\n\t\t\t\t\t) {\n\t\t\t\t\t\t// check if the node has a child or sibling wpmProductId\n\t\t\t\t\t\t// if yes add it to the intersectionObserver\n\t\t\t\t\t\tif (hasWpmProductIdElement(this)) {\n\t\t\t\t\t\t\tjQuery(this).data(\"ioid\", ioid++)\n\t\t\t\t\t\t\tio.observe(this)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t})\n\n\tlet hasWpmProductIdElement = elem =>\n\t\t!!(jQuery(elem).find(\".wpmProductId\").length ||\n\t\t\tjQuery(elem).siblings(\".wpmProductId\").length)\n\n\twpm.setCookie = (cookieName, cookieValue = \"\", expiryDays = null) => {\n\n\t\tif (expiryDays) {\n\n\t\t\tlet d = new Date()\n\t\t\td.setTime(d.getTime() + (expiryDays * 24 * 60 * 60 * 1000))\n\t\t\tlet expires = \"expires=\" + d.toUTCString()\n\t\t\tdocument.cookie = cookieName + \"=\" + cookieValue + \";\" + expires + \";path=/\"\n\t\t} else {\n\t\t\tdocument.cookie = cookieName + \"=\" + cookieValue + \";path=/\"\n\t\t}\n\t}\n\n\twpm.getCookie = cookieName => {\n\n\t\tlet name = cookieName + \"=\"\n\t\tlet decodedCookie = decodeURIComponent(document.cookie)\n\t\tlet ca = decodedCookie.split(\";\")\n\n\t\tfor (let i = 0; i < ca.length; i++) {\n\n\t\t\tlet c = ca[i]\n\n\t\t\twhile (c.charAt(0) == \" \") {\n\t\t\t\tc = c.substring(1)\n\t\t\t}\n\n\t\t\tif (c.indexOf(name) == 0) {\n\t\t\t\treturn c.substring(name.length, c.length)\n\t\t\t}\n\t\t}\n\n\t\treturn \"\"\n\t}\n\n\twpm.getWpmSessionData = () => {\n\n\t\tif (window.sessionStorage) {\n\n\t\t\tlet data = window.sessionStorage.getItem(\"_wpm\")\n\n\t\t\tif (data !== null) {\n\t\t\t\treturn JSON.parse(data)\n\t\t\t} else {\n\t\t\t\treturn {}\n\t\t\t}\n\t\t} else {\n\t\t\treturn {}\n\t\t}\n\t}\n\n\twpm.setWpmSessionData = data => {\n\t\tif (window.sessionStorage) {\n\t\t\twindow.sessionStorage.setItem(\"_wpm\", JSON.stringify(data))\n\t\t}\n\t}\n\n\twpm.storeOrderIdOnServer = async orderId => {\n\n\t\ttry {\n\n\t\t\tlet response\n\n\t\t\tif (await wpm.isRestEndpointAvailable()) {\n\n\t\t\t\tresponse = await fetch(wpm.root + \"pmw/v1/pixels-fired/\", {\n\t\t\t\t\tmethod : \"POST\",\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\t\t},\n\t\t\t\t\tbody : JSON.stringify(orderId),\n\t\t\t\t\tkeepalive: true,\n\t\t\t\t\tcache\t: \"no-cache\",\n\t\t\t\t})\n\n\t\t\t} else {\n\t\t\t\t// save the state in the database\n\n\t\t\t\t// Send the data object with ajax request\n\t\t\t\t// and log success or error using fetch API and url encoded\n\t\t\t\tresponse = await fetch(wpm.ajax_url, {\n\t\t\t\t\tmethod : \"POST\",\n\t\t\t\t\tbody : new URLSearchParams({\n\t\t\t\t\t\taction : \"pmw_purchase_pixels_fired\",\n\t\t\t\t\t\torder_id: orderId,\n\t\t\t\t\t}),\n\t\t\t\t\tkeepalive: true,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (response.ok) {\n\t\t\t\tconsole.log(\"wpm.storeOrderIdOnServer success\")\n\t\t\t} else {\n\t\t\t\tconsole.error(\"wpm.storeOrderIdOnServer error\")\n\t\t\t}\n\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.getProductIdByCartItemKeyUrl = url => {\n\n\t\tlet searchParams = new URLSearchParams(url.search)\n\t\tlet cartItemKey = searchParams.get(\"remove_item\")\n\n\t\tlet productId\n\n\t\tif (wpmDataLayer.cartItemKeys[cartItemKey][\"variation_id\"] === 0) {\n\t\t\tproductId = wpmDataLayer.cartItemKeys[cartItemKey][\"product_id\"]\n\t\t} else {\n\t\t\tproductId = wpmDataLayer.cartItemKeys[cartItemKey][\"variation_id\"]\n\t\t}\n\n\t\treturn productId\n\t}\n\n\twpm.getAddToCartLinkProductIds = () =>\n\t\tjQuery(\"a\").map(function () {\n\t\t\tlet href = jQuery(this).attr(\"href\")\n\n\t\t\tif (href && href.includes(\"?add-to-cart=\")) {\n\t\t\t\tlet matches = href.match(/(add-to-cart=)(\\d+)/)\n\t\t\t\tif (matches) return matches[2]\n\t\t\t}\n\t\t}).get()\n\n\twpm.getProductDetailsFormattedForEvent = (productId, quantity = 1) => {\n\n\t\tlet product = {\n\t\t\tid : productId.toString(),\n\t\t\tdyn_r_ids : wpmDataLayer.products[productId].dyn_r_ids,\n\t\t\tname : wpmDataLayer.products[productId].name,\n\t\t\tlist_name : wpmDataLayer.shop.list_name,\n\t\t\tbrand : wpmDataLayer.products[productId].brand,\n\t\t\tcategory : wpmDataLayer.products[productId].category,\n\t\t\tvariant : wpmDataLayer.products[productId].variant,\n\t\t\tlist_position: wpmDataLayer.products[productId].position,\n\t\t\tquantity : quantity,\n\t\t\tprice : wpmDataLayer.products[productId].price,\n\t\t\tcurrency : wpmDataLayer.shop.currency,\n\t\t\tisVariable : wpmDataLayer.products[productId].isVariable,\n\t\t\tisVariation : wpmDataLayer.products[productId].isVariation,\n\t\t\tparentId : wpmDataLayer.products[productId].parentId,\n\t\t}\n\n\t\tif (product.isVariation) product[\"parentId_dyn_r_ids\"] = wpmDataLayer.products[productId].parentId_dyn_r_ids\n\n\t\treturn product\n\t}\n\n\twpm.setReferrerToCookie = () => {\n\n\t\t// can't use session storage as we can't read it from the server\n\t\tif (!wpm.getCookie(\"wpmReferrer\")) {\n\t\t\twpm.setCookie(\"wpmReferrer\", document.referrer)\n\t\t}\n\t}\n\n\twpm.getReferrerFromCookie = () => {\n\n\t\tif (wpm.getCookie(\"wpmReferrer\")) {\n\t\t\treturn wpm.getCookie(\"wpmReferrer\")\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t}\n\n\twpm.getClidFromBrowser = (clidId = \"gclid\") => {\n\n\t\tlet clidCookieId\n\n\t\tclidCookieId = {\n\t\t\tgclid: \"_gcl_aw\",\n\t\t\tdclid: \"_gcl_dc\",\n\t\t}\n\n\t\tif (wpm.getCookie(clidCookieId[clidId])) {\n\n\t\t\tlet clidCookie = wpm.getCookie(clidCookieId[clidId])\n\t\t\tlet matches = clidCookie.match(/(GCL.[\\d]*.)(.*)/)\n\t\t\treturn matches[2]\n\t\t} else {\n\t\t\treturn \"\"\n\t\t}\n\t}\n\n\twpm.getUserAgent = () => navigator.userAgent\n\n\twpm.getViewPort = () => ({\n\t\twidth : Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0),\n\t\theight: Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0),\n\t})\n\n\n\twpm.version = () => {\n\t\tconsole.log(wpmDataLayer.version)\n\t}\n\n\t// https://api.jquery.com/jquery.getscript/\n\twpm.loadScriptAndCacheIt = url => {\n\n\t\t// Get and load the script using fetch API, if possible from cache, and return it without using eval\n\t\treturn fetch(url, {\n\t\t\tmethod : \"GET\",\n\t\t\tcache : \"default\",\n\t\t\tkeepalive: true,\n\t\t})\n\t\t\t.then(response => {\n\t\t\t\tif (response.ok) {\n\t\t\t\t\t// console.log(\"response\", response)\n\t\t\t\t\treturn response.text()\n\t\t\t\t\t// console.log(\"wpm.loadScriptAndCacheIt success: \" + url)\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(\"Network response was not ok: \" + url)\n\t\t\t\t}\n\t\t\t})\n\t\t\t.then(script => {\n\t\t\t\t// Execute the script\n\t\t\t\t// console.error(\"executing script: \" + script)\n\t\t\t\teval(script)\n\t\t\t\t// console.log(\"executed script: \" + script)\n\t\t\t})\n\t\t\t.catch(e => {\n\t\t\t\tconsole.error(e)\n\t\t\t})\n\t}\n\n\twpm.getOrderItemPrice = orderItem => (orderItem.total + orderItem.total_tax) / orderItem.quantity\n\n\twpm.hasLoginEventFired = () => {\n\t\tlet data = wpm.getWpmSessionData()\n\t\treturn data?.loginEventFired\n\t}\n\n\twpm.setLoginEventFired = () => {\n\t\tlet data = wpm.getWpmSessionData()\n\t\tdata[\"loginEventFired\"] = true\n\t\twpm.setWpmSessionData(data)\n\t}\n\n\twpm.wpmDataLayerExists = () => new Promise(resolve => {\n\t\t(function waitForVar() {\n\t\t\tif (typeof wpmDataLayer !== \"undefined\") return resolve()\n\t\t\tsetTimeout(waitForVar, 50)\n\t\t})()\n\t})\n\n\twpm.jQueryExists = () => new Promise(resolve => {\n\t\t(function waitForjQuery() {\n\t\t\tif (typeof jQuery !== \"undefined\") return resolve()\n\t\t\tsetTimeout(waitForjQuery, 100)\n\t\t})()\n\t})\n\n\twpm.pageLoaded = () => new Promise(resolve => {\n\t\t(function waitForVar() {\n\t\t\tif (\"complete\" === document.readyState) return resolve()\n\t\t\tsetTimeout(waitForVar, 50)\n\t\t})()\n\t})\n\n\twpm.pageReady = () => {\n\t\treturn new Promise(resolve => {\n\t\t\t(function waitForVar() {\n\t\t\t\tif (\"interactive\" === document.readyState || \"complete\" === document.readyState) return resolve()\n\t\t\t\tsetTimeout(waitForVar, 50)\n\t\t\t})()\n\t\t})\n\t}\n\n\twpm.isMiniCartActive = () => {\n\t\tif (window.sessionStorage) {\n\t\t\tfor (const [key, value] of Object.entries(window.sessionStorage)) {\n\t\t\t\tif (key.includes(\"wc_fragments\")) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\n\twpm.doesWooCommerceCartExist = () => document.cookie.includes(\"woocommerce_items_in_cart\")\n\n\twpm.urlHasParameter = parameter => {\n\t\tlet urlParams = new URLSearchParams(window.location.search)\n\t\treturn urlParams.has(parameter)\n\t}\n\n\t// https://stackoverflow.com/a/60606893/4688612\n\twpm.hashAsync = (algo, str) => {\n\t\treturn crypto.subtle.digest(algo, new TextEncoder(\"utf-8\").encode(str)).then(buf => {\n\t\t\treturn Array.prototype.map.call(new Uint8Array(buf), x => ((\"00\" + x.toString(16)).slice(-2))).join(\"\")\n\t\t})\n\t}\n\n\twpm.getCartValue = () => {\n\n\t\tlet value = 0\n\n\t\tif (wpmDataLayer?.cart) {\n\n\t\t\tfor (const key in wpmDataLayer.cart) {\n\t\t\t\t// content_ids.push(wpmDataLayer.products[key].dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type])\n\n\t\t\t\tlet product = wpmDataLayer.cart[key]\n\n\t\t\t\tvalue += product.quantity * product.price\n\t\t\t}\n\t\t}\n\n\t\treturn value\n\t}\n\n}(window.wpm = window.wpm || {}, jQuery))\n","/**\n * Load all WPM functions\n *\n * Ignore event listeners. They need to be loaded after\n * we made sure that jQuery has been loaded.\n */\n\nrequire(\"./functions\")\nrequire(\"./cookie_consent\")\n\n// #if process.env.TIER === 'premium'\n// require(\"./functions_premium\")\n// #endif\n","/**\n * After WPM is loaded\n * we first check if wpmDataLayer is loaded,\n * and as soon as it is, we load the pixels,\n * and as soon as the page load is complete,\n * we fire the wpmLoad event.\n *\n * @param {{pro:bool}} wpmDataLayer.version\n *\n * https://stackoverflow.com/a/25868457/4688612\n * https://stackoverflow.com/a/44093516/4688612\n */\n\nwpm.wpmDataLayerExists()\n\t.then(function () {\n\t\tconsole.log(\"Pixel Manager for WooCommerce: \" + (wpmDataLayer.version.pro ? \"Pro\" : \"Free\") +\" Version \" + wpmDataLayer.version.number + \" loaded\")\n\n\t\tdocument.dispatchEvent(new Event(\"wpmPreLoadPixels\"))\n\t})\n\t.then(function () {\n\t\twpm.pageLoaded().then(function () {\n\t\t\tdocument.dispatchEvent(new Event(\"wpmLoad\"))\n\t\t})\n\t})\n\n\n\n/**\n * Run when page is ready\n *\n */\n\nwpm.pageReady().then(function () {\n\n\t/**\n\t * Run as soon as wpm namespace is loaded\n\t */\n\n\twpm.wpmDataLayerExists()\n\t\t.then(function () {\n\t\t\t// watch for products visible in viewport\n\t\t\twpm.startIntersectionObserverToWatch()\n\n\t\t\t// watch for lazy loaded products\n\t\t\twpm.startProductsMutationObserverToWatch()\n\t\t})\n})\n\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * Load all essential scripts first\n */\n\nrequire(\"./wpm/functions_loader\")\n\n// Only load the event listeners after jQuery has been loaded for sure\nwpm.jQueryExists().then(function () {\n\n\trequire(\"./wpm/event_listeners\")\n\n\trequire(\"./google/loader\")\n\trequire(\"./facebook/loader\")\n\trequire(\"./hotjar/loader\")\n\n\t/**\n\t * Load all premium scripts\n\t */\n\n\t// #if process.env.TIER === 'premium'\n// \trequire(\"./microsoft-ads/loader\")\n// \trequire(\"./pinterest/loader\")\n// \trequire(\"./snapchat/loader\")\n// \trequire(\"./tiktok/loader\")\n// \trequire(\"./twitter/loader\")\n\t// #endif\n\n\n\t/**\n\t * Initiate WPM.\n\t *\n\t * It makes sure that the script flow gets executed correctly,\n\t * no matter how JS \"optimizers\" shuffle the code.\n\t */\n\n\trequire(\"./wpm/init\")\n})\n\n"],"names":["isCallable","require","tryToString","$TypeError","TypeError","module","exports","argument","wellKnownSymbol","create","defineProperty","UNSCOPABLES","ArrayPrototype","Array","prototype","undefined","configurable","value","key","isObject","$String","String","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","el","fromIndex","O","length","index","includes","indexOf","uncurryThis","toString","stringSlice","slice","it","hasOwn","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","target","source","exceptions","keys","f","getOwnPropertyDescriptor","i","DESCRIPTORS","createPropertyDescriptor","object","bitmap","enumerable","writable","makeBuiltIn","defineGlobalProperty","options","simple","name","global","unsafe","error","nonConfigurable","nonWritable","Object","fails","get","document","EXISTS","createElement","getBuiltIn","match","version","userAgent","process","Deno","versions","v8","split","createNonEnumerableProperty","defineBuiltIn","copyConstructorProperties","isForced","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","sham","exec","test","bind","hasOwnProperty","NATIVE_BIND","call","Function","apply","arguments","FunctionPrototype","getDescriptor","PROPER","CONFIGURABLE","fn","aFunction","namespace","method","aCallable","V","P","func","check","Math","globalThis","window","self","this","toObject","a","classof","$Object","propertyIsEnumerable","store","functionToString","inspectSource","set","has","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","state","wmget","wmhas","wmset","metadata","facade","STATE","enforce","getterFor","TYPE","type","replacement","feature","detection","data","normalize","POLYFILL","NATIVE","string","replace","toLowerCase","isPrototypeOf","USE_SYMBOL_AS_UID","$Symbol","toLength","obj","CONFIGURABLE_FUNCTION_NAME","InternalStateModule","enforceInternalState","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","getter","setter","arity","constructor","join","ceil","floor","trunc","x","n","V8_VERSION","getOwnPropertySymbols","symbol","Symbol","activeXDocument","anObject","definePropertiesModule","enumBugKeys","html","documentCreateElement","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","domain","style","display","appendChild","src","contentWindow","open","F","Properties","result","V8_PROTOTYPE_DEFINE_BUG","objectKeys","defineProperties","props","IE8_DOM_DEFINE","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","Attributes","current","propertyIsEnumerableModule","internalObjectKeys","concat","getOwnPropertyNames","push","names","$propertyIsEnumerable","NASHORN_BUG","input","pref","val","valueOf","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","uid","SHARED","IS_PURE","mode","copyright","license","toIntegerOrInfinity","max","min","integer","IndexedObject","requireObjectCoercible","number","isSymbol","getMethod","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","toPrimitive","id","postfix","random","NATIVE_SYMBOL","iterator","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","description","$","$includes","addToUnscopables","proto","jQuery","on","wpmDataLayer","pixels","facebook","pixel_id","loaded","wpm","canIFire","loadFacebookPixel","event","payload","fbq","custom_data","eventID","event_id","console","setFbUserData","fbUserData","b","e","callMethod","queue","_fbq","t","async","s","getElementsByTagName","parentNode","insertBefore","isFbpSet","getUserIdentifiersForFb","user","external_id","order","user_id","email","em","billing_email_hashed","first_name","billing_first_name","last_name","ln","billing_last_name","phone","ph","billing_phone","city","ct","billing_city","st","billing_state","postcode","zp","billing_postcode","country","billing_country","getFbRandomEventId","substring","getFbUserData","getFbUserDataFromBrowser","getCookie","isValidFbp","fbp","isValidFbc","fbc","navigator","client_user_agent","RegExp","fbGetProductDataForCapiEvent","product","content_type","content_name","content_ids","dyn_r_ids","dynamic_remarketing","id_type","parseFloat","quantity","price","currency","facebookContentIds","prodIds","item","entries","items","general","variationsOutput","variation_id","products","trackCustomFacebookEvent","eventName","customData","eventId","trigger","event_name","user_data","event_source_url","location","href","fbGetContentIdsFromCart","cart","isEmptyObject","google","ads","conversionIds","status","googleConfigConditionsMet","isVariable","send_events_with_parent_ids","send_to","getGoogleAdsConversionIdentifiers","google_business_vertical","gtagLoaded","then","gtag","value_filtered","getGoogleAdsDynamicRemarketingOrderItems","getGoogleAdsConversionIdentifiersWithLabel","data_basic","data_with_cart","transaction_id","new_customer","clv_order_value_filtered","customer_lifetime_value","aw_merchant_id","discount","aw_feed_country","aw_feed_language","getGoogleAdsRegularOrderItems","conversionIdentifiers","orderItems","orderItem","analytics","universal","property_id","mp_active","affiliation","value_regular","tax","shipping","coupon","getGAUAOrderItems","category","variant","variant_name","brand","ga3AddListNameToProduct","item_data","productPosition","list_name","shop","list_position","ga4","measurement_id","getGA4OrderItems","item_name","item_category","item_id","item_variant","item_brand","canGoogleLoad","loadGoogle","logPreventedPixelLoading","consent_mode","active","getConsentValues","categories","getVisitorConsentStatusAndUpdateGoogleConsentSettings","google_consent_settings","analytics_storage","ad_storage","updateGoogleConsentMode","cookie_consent_mgmt","explicit_consent","fireGtagGoogleAds","enhanced_conversions","phone_conversion_label","phone_conversion_number","page_type","enhanced_conversion_data","fireGtagGoogleAnalyticsUA","parameters","fireGtagGoogleAnalyticsGA4","debug_mode","isGoogleActive","getGoogleGtagId","loadScriptAndCacheIt","script","textStatus","dataLayer","wait_for_update","region","ads_data_redaction","url_passthrough","linker","settings","Date","Promise","resolve","reject","startTime","wait","setTimeout","optimize","container_id","load_google_optimize_pixel","hotjar","site_id","load_hotjar_pixel","h","o","hj","q","_hjSettings","hjid","hjsv","r","getComplianzCookies","cmplz_statistics","cmplz_marketing","visitorHasChosen","getCookieLawInfoCookies","analyticsCookie","adsCookie","wpmConsentValues","setConsentValueCategories","updateConsentCookieValues","cookie","explicitConsent","decodeURI","JSON","parse","action","consents","statistics","marketing","thirdparty","advanced","setConsentDefaultValuesToExplicit","pixelName","canIFireMode","log","scriptTagObserver","MutationObserver","mutations","forEach","addedNodes","node","shouldScriptBeActive","unblockScript","blockScript","observe","head","childList","subtree","addEventListener","disconnect","some","element","scriptNode","removeAttach","remove","wpmSrc","attr","appendTo","dispatchEvent","Event","removeAttr","unblockAllScripts","unblockSelectedPixels","Cookiebot","consent","detail","cmplzStatusChange","cmplzConsentData","huObserver","querySelector","hu","documentElement","body","explicitConsentStateAlreadySet","url","URL","currentTarget","productId","getProductIdByCartItemKeyUrl","removeProductFromCart","addProductToCart","product_type","Number","each","find","classes","getPostIdFromString","one","closest","matches","nextAll","getIdBasedOndVariationsOutputSetting","Error","getProductDetailsFormattedForEvent","isEmail","fireCheckoutProgress","emailSelected","paymentMethodSelected","fireCheckoutOption","getCartItemsFromBackend","variation","triggerViewItemEventPrep","doesWooCommerceCartExist","getCartItems","productIds","getAddToCartLinkProductIds","getProductsFromBackend","referrer","referrerHostname","hostname","host","setCookie","wpmLoadFired","getMainProductIdFromProductPage","getProductDataForViewItemEvent","isOrderIdStored","writeOrderIdToStorage","hasLoginEventFired","setLoginEventFired","sessionStorage","getItem","sendEventPayloadToServer","getCartValue","search_string","getSearchTermFromUrl","wpmDeduper","keyName","cookieExpiresDays","wpmRestSettings","cookiePmwRestEndpointAvailable","restEndpointPost","restFails","restFailsThreshold","checkCookie","useRestEndpoint","isSessionStorageAvailable","isRestEndpointAvailable","isBelowRestErrorThreshold","testEndpoint","root","cookieName","response","fetch","cache","keepalive","setItem","stringify","isWpmRestEndpointAvailable","orderId","Storage","localStorage","ids","expiresDate","setDate","getDate","toUTCString","storeOrderIdOnServer","orderDeduplication","quantityToRemove","isVariation","parentId","saveCartObjectToDataLayer","ajax_url","URLSearchParams","ok","json","success","filter","headers","responseData","assign","cartObject","triggerViewItemEvent","triggerViewItemEventNoProduct","step","checkout_option","triggerViewItemList","viewItemListTriggerTestMode","css","append","viewItemListTrigger","opacity","backgroundColor","search","ioTimeouts","io","observerCallback","observer","entry","elementId","next","isIntersecting","testMode","repeat","unobserve","timeout","clearTimeout","ioid","allIoElementsToWatch","getAllElementsToWatch","map","elem","parent","hasClass","prev","startIntersectionObserverToWatch","urlHasParameter","IntersectionObserver","threshold","startProductsMutationObserverToWatch","productsNode","parents","first","productsMutationObserver","attributes","characterData","mutation","newNodes","hasWpmProductIdElement","siblings","cookieValue","expiryDays","d","setTime","getTime","expires","ca","decodeURIComponent","c","charAt","getWpmSessionData","setWpmSessionData","order_id","cartItemKey","cartItemKeys","position","parentId_dyn_r_ids","setReferrerToCookie","getReferrerFromCookie","getClidFromBrowser","clidCookieId","clidId","gclid","dclid","getUserAgent","getViewPort","width","clientWidth","innerWidth","height","clientHeight","innerHeight","text","eval","catch","getOrderItemPrice","total","total_tax","loginEventFired","wpmDataLayerExists","waitForVar","jQueryExists","waitForjQuery","pageLoaded","readyState","pageReady","isMiniCartActive","parameter","hashAsync","algo","str","crypto","subtle","digest","TextEncoder","encode","buf","Uint8Array","pro","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","g","toStringTag"],"sourceRoot":""}
1
+ {"version":3,"file":"wpm-public.p1.min.js","mappings":"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","sources":["webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/a-callable.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/add-to-unscopables.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/an-object.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/array-includes.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/classof-raw.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/create-property-descriptor.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/define-built-in.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/define-global-property.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/descriptors.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/document-create-element.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/engine-user-agent.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/engine-v8-version.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/enum-bug-keys.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/export.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/fails.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/function-bind-native.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/function-call.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/function-name.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/function-uncurry-this.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/get-built-in.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/get-method.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/global.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/has-own-property.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/hidden-keys.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/html.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/ie8-dom-define.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/indexed-object.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/inspect-source.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/internal-state.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/is-callable.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/is-forced.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/is-object.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/is-pure.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/is-symbol.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/length-of-array-like.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/make-built-in.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/math-trunc.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/native-symbol.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/native-weak-map.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/object-create.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/object-define-properties.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/object-define-property.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/object-keys-internal.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/object-keys.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/own-keys.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/require-object-coercible.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/shared-key.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/shared-store.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/shared.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/to-absolute-index.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/to-indexed-object.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/to-length.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/to-object.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/to-primitive.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/to-property-key.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/try-to-string.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/uid.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/well-known-symbol.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/modules/es.array.includes.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/facebook/event_listeners.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/facebook/functions.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/facebook/loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/ads/event_listeners.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/ads/functions.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/ads/loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/analytics/ga3/event_listeners.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/analytics/ga3/functions.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/analytics/ga3/loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/analytics/ga4/event_listeners.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/analytics/ga4/functions.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/analytics/ga4/loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/analytics/loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/base/event_listeners.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/base/functions.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/base/loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/optimize/event_listeners.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/optimize/functions.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/optimize/loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/hotjar/event_listeners.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/hotjar/functions.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/hotjar/loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/wpm/cookie_consent.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/wpm/event_listeners.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/wpm/functions.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/wpm/functions_loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/wpm/init.js","webpack://Pixel-Manager-for-WooCommerce/webpack/bootstrap","webpack://Pixel-Manager-for-WooCommerce/webpack/runtime/global","webpack://Pixel-Manager-for-WooCommerce/webpack/runtime/make namespace object","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/main.js"],"sourcesContent":["var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es-x/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es-x/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es-x/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es-x/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es-x/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es-x/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es-x/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.24.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.24.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","/**\n * All event listeners\n *\n * https://developers.facebook.com/docs/meta-pixel/reference\n * */\n\n// Load pixel event\njQuery(document).on(\"wpmLoadPixels\", () => {\n\n\tif (wpmDataLayer?.pixels?.facebook?.pixel_id && !wpmDataLayer?.pixels?.facebook?.loaded) {\n\t\tif (wpm.canIFire(\"ads\", \"facebook-ads\")) wpm.loadFacebookPixel()\n\t}\n})\n\n// AddToCart event\n// https://developers.facebook.com/docs/meta-pixel/reference\njQuery(document).on(\"wpmClientSideAddToCart\", (event, payload) => {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\tfbq(\"track\", \"AddToCart\", payload.facebook.custom_data, {\n\t\t\teventID: payload.facebook.event_id,\n\t\t})\n\t} catch (error) {\n\t\tconsole.error(error)\n\t}\n})\n\n// InitiateCheckout event\n// https://developers.facebook.com/docs/meta-pixel/reference\njQuery(document).on(\"wpmClientSideBeginCheckout\", (event, payload) => {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\tfbq(\"track\", \"InitiateCheckout\", payload.facebook.custom_data, {\n\t\t\teventID: payload.facebook.event_id,\n\t\t})\n\t} catch (error) {\n\t\tconsole.error(error)\n\t}\n})\n\n// AddToWishlist event\n// https://developers.facebook.com/docs/meta-pixel/reference\njQuery(document).on(\"wpmClientSideAddToWishlist\", (event, payload) => {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\tfbq(\"track\", \"AddToWishlist\", payload.facebook.custom_data, {\n\t\t\teventID: payload.facebook.event_id,\n\t\t})\n\t} catch (error) {\n\t\tconsole.error(error)\n\t}\n})\n\n// ViewContent event\n// https://developers.facebook.com/docs/meta-pixel/reference\njQuery(document).on(\"wpmClientSideViewItem\", (event, payload) => {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\tfbq(\"track\", \"ViewContent\", payload.facebook.custom_data, {\n\t\t\teventID: payload.facebook.event_id,\n\t\t})\n\t} catch (error) {\n\t\tconsole.error(error)\n\t}\n})\n\n\n// view search event\n// https://developers.facebook.com/docs/meta-pixel/reference\njQuery(document).on(\"wpmClientSideSearch\", (event, payload) => {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\tfbq(\"track\", \"Search\", payload.facebook.custom_data, {\n\t\t\teventID: payload.facebook.event_id,\n\t\t})\n\t} catch (error) {\n\t\tconsole.error(error)\n\t}\n})\n\n// load always event\njQuery(document).on(\"wpmLoadAlways\", () => {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\twpm.setFbUserData()\n\t} catch (error) {\n\t\tconsole.error(error)\n\t}\n})\n\n// view order received page event\n// https://developers.facebook.com/docs/meta-pixel/reference\njQuery(document).on(\"wpmClientSideOrderReceivedPage\", (event, payload) => {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\tfbq(\"track\", \"Purchase\", payload.facebook.custom_data, {\n\t\t\teventID: payload.facebook.event_id,\n\t\t})\n\t} catch (error) {\n\t\tconsole.error(error)\n\t}\n})\n","/**\n * Add functions for Facebook\n * */\n\n(function (wpm, $, undefined) {\n\n\tlet fbUserData\n\n\twpm.loadFacebookPixel = () => {\n\n\t\ttry {\n\t\t\twpmDataLayer.pixels.facebook.loaded = true\n\n\t\t\t// @formatter:off\n\t\t\t!function(f,b,e,v,n,t,s)\n\t\t\t{if(f.fbq)return;n=f.fbq=function(){n.callMethod?\n\t\t\t\tn.callMethod.apply(n,arguments):n.queue.push(arguments)};\n\t\t\t\tif(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';\n\t\t\t\tn.queue=[];t=b.createElement(e);t.async=!0;\n\t\t\t\tt.src=v;s=b.getElementsByTagName(e)[0];\n\t\t\t\ts.parentNode.insertBefore(t,s)}(window, document,'script',\n\t\t\t\t'https://connect.facebook.net/en_US/fbevents.js');\n\t\t\t// @formatter:on\n\n\t\t\tlet data = {}\n\n\t\t\t// Add user identifiers to data,\n\t\t\t// and only if fbp was set\n\t\t\tif (wpm.isFbpSet()) {\n\t\t\t\tdata = {...wpm.getUserIdentifiersForFb()}\n\t\t\t}\n\n\t\t\tfbq(\"init\", wpmDataLayer.pixels.facebook.pixel_id, data)\n\t\t\tfbq(\"track\", \"PageView\")\n\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\t// https://developers.facebook.com/docs/meta-pixel/advanced/advanced-matching\n\twpm.getUserIdentifiersForFb = () => {\n\n\t\tlet data = {}\n\n\t\t// external ID\n\t\tif (wpmDataLayer?.user?.id) data.external_id = wpmDataLayer.user.id\n\t\tif (wpmDataLayer?.order?.user_id) data.external_id = wpmDataLayer.order.user_id\n\n\t\t// email\n\t\tif (wpmDataLayer?.user?.facebook?.email) data.em = wpmDataLayer.user.facebook.email\n\t\tif (wpmDataLayer?.order?.billing_email_hashed) data.em = wpmDataLayer.order.billing_email_hashed\n\n\t\t// first name\n\t\tif (wpmDataLayer?.user?.facebook?.first_name) data.fn = wpmDataLayer.user.facebook.first_name\n\t\tif (wpmDataLayer?.order?.billing_first_name) data.fn = wpmDataLayer.order.billing_first_name.toLowerCase()\n\n\t\t// last name\n\t\tif (wpmDataLayer?.user?.facebook?.last_name) data.ln = wpmDataLayer.user.facebook.last_name\n\t\tif (wpmDataLayer?.order?.billing_last_name) data.ln = wpmDataLayer.order.billing_last_name.toLowerCase()\n\n\t\t// phone\n\t\tif (wpmDataLayer?.user?.facebook?.phone) data.ph = wpmDataLayer.user.facebook.phone\n\t\tif (wpmDataLayer?.order?.billing_phone) data.ph = wpmDataLayer.order.billing_phone.replace(\"+\", \"\")\n\n\t\t// city\n\t\tif (wpmDataLayer?.user?.facebook?.city) data.ct = wpmDataLayer.user.facebook.city\n\t\tif (wpmDataLayer?.order?.billing_city) data.ct = wpmDataLayer.order.billing_city.toLowerCase().replace(/ /g, \"\")\n\n\t\t// state\n\t\tif (wpmDataLayer?.user?.facebook?.state) data.st = wpmDataLayer.user.facebook.state\n\t\tif (wpmDataLayer?.order?.billing_state) data.st = wpmDataLayer.order.billing_state.toLowerCase().replace(/[a-zA-Z]{2}-/, \"\")\n\n\t\t// postcode\n\t\tif (wpmDataLayer?.user?.facebook?.postcode) data.zp = wpmDataLayer.user.facebook.postcode\n\t\tif (wpmDataLayer?.order?.billing_postcode) data.zp = wpmDataLayer.order.billing_postcode\n\n\t\t// country\n\t\tif (wpmDataLayer?.user?.facebook?.country) data.country = wpmDataLayer.user.facebook.country\n\t\tif (wpmDataLayer?.order?.billing_country) data.country = wpmDataLayer.order.billing_country.toLowerCase()\n\n\t\treturn data\n\t}\n\n\twpm.getFbRandomEventId = () => (Math.random() + 1).toString(36).substring(2)\n\n\twpm.getFbUserData = () => {\n\n\t\t/**\n\t\t * We need to cache the FB user data for InitiateCheckout\n\t\t * where getting the user data from the browser is too slow\n\t\t * using wpm.getCookie().\n\t\t *\n\t\t * And we need the object merge because the ViewContent hit happens too fast\n\t\t * after adding a variation to the cart because the function to cache\n\t\t * the user data is too slow.\n\t\t *\n\t\t * But we can get the user_data using wpm.getCookie()\n\t\t * because we don't move away from the page and can wait for the browser\n\t\t * to get it.\n\t\t *\n\t\t * Also, the merge ensures that new data will be added to fbUserData if new\n\t\t * data is being added later, like user ID, or fbc.\n\t\t */\n\n\t\tfbUserData = {...fbUserData, ...wpm.getFbUserDataFromBrowser()}\n\n\t\treturn fbUserData\n\t}\n\n\twpm.setFbUserData = () => {\n\t\tfbUserData = wpm.getFbUserDataFromBrowser()\n\t}\n\n\twpm.getFbUserDataFromBrowser = () => {\n\n\t\tlet\n\t\t\tdata = {}\n\n\t\tif (wpm.getCookie(\"_fbp\") && wpm.isValidFbp(wpm.getCookie(\"_fbp\"))) {\n\t\t\tdata.fbp = wpm.getCookie(\"_fbp\")\n\t\t}\n\n\t\tif (wpm.getCookie(\"_fbc\") && wpm.isValidFbc(wpm.getCookie(\"_fbc\"))) {\n\t\t\tdata.fbc = wpm.getCookie(\"_fbc\")\n\t\t}\n\n\t\tif (wpmDataLayer?.user?.id) {\n\t\t\tdata.external_id = wpmDataLayer.user.id\n\t\t}\n\n\t\tif (navigator.userAgent) {\n\t\t\tdata.client_user_agent = navigator.userAgent\n\t\t}\n\n\t\treturn data\n\t}\n\n\twpm.isFbpSet = () => {\n\t\treturn !!wpm.getCookie(\"_fbp\")\n\t}\n\n\t// https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/fbp-and-fbc/\n\twpm.isValidFbp = fbp => {\n\n\t\tlet re = new RegExp(/^fb\\.[0-2]\\.\\d{13}\\.\\d{8,20}$/)\n\n\t\treturn re.test(fbp)\n\t}\n\n\t// https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/fbp-and-fbc/\n\twpm.isValidFbc = fbc => {\n\n\t\tlet re = new RegExp(/^fb\\.[0-2]\\.\\d{13}\\.[\\da-zA-Z_-]{8,}/)\n\n\t\treturn re.test(fbc)\n\t}\n\n\t// wpm.fbViewContent = (product = null) => {\n\t//\n\t// \ttry {\n\t// \t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\t//\n\t// \t\tlet eventId = wpm.getFbRandomEventId()\n\t//\n\t// \t\tlet data = {}\n\t//\n\t// \t\tif (product) {\n\t// \t\t\tdata.content_type = \"product\"\n\t// \t\t\tdata.content_name = product.name\n\t// \t\t\t// data.content_category = product.category\n\t// \t\t\tdata.content_ids = product.dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type]\n\t// \t\t\tdata.currency = wpmDataLayer.shop.currency\n\t// \t\t\tdata.value = product.price\n\t// \t\t}\n\t//\n\t// \t\tfbq(\"track\", \"ViewContent\", data, {\n\t// \t\t\teventID: eventId,\n\t// \t\t})\n\t//\n\t// \t\tlet capiData = {\n\t// \t\t\tevent_name : \"ViewContent\",\n\t// \t\t\tevent_id : eventId,\n\t// \t\t\tuser_data : wpm.getFbUserData(),\n\t// \t\t\tevent_source_url: window.location.href,\n\t// \t\t}\n\t//\n\t// \t\tif (product) {\n\t// \t\t\tproduct[\"currency\"] = wpmDataLayer.shop.currency\n\t// \t\t\tcapiData.custom_data = wpm.fbGetProductDataForCapiEvent(product)\n\t// \t\t}\n\t//\n\t// \t\tjQuery(document).trigger(\"wpmFbCapiEvent\", capiData)\n\t// \t} catch (e) {\n\t// \t\tconsole.error(e)\n\t// \t}\n\t// }\n\n\twpm.fbGetProductDataForCapiEvent = product => {\n\t\treturn {\n\t\t\tcontent_type: \"product\",\n\t\t\tcontent_name: product.name,\n\t\t\tcontent_ids : [\n\t\t\t\tproduct.dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type],\n\t\t\t],\n\t\t\tvalue : parseFloat(product.quantity * product.price),\n\t\t\tcurrency : product.currency,\n\t\t}\n\t}\n\n\twpm.facebookContentIds = () => {\n\t\tlet prodIds = []\n\n\t\tfor (const [key, item] of Object.entries(wpmDataLayer.order.items)) {\n\n\t\t\tif (wpmDataLayer?.general?.variationsOutput && 0 !== item.variation_id) {\n\t\t\t\tprodIds.push(String(wpmDataLayer.products[item.variation_id].dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type]))\n\t\t\t} else {\n\t\t\t\tprodIds.push(String(wpmDataLayer.products[item.id].dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type]))\n\t\t\t}\n\t\t}\n\n\t\treturn prodIds\n\t}\n\n\twpm.trackCustomFacebookEvent = (eventName, customData = {}) => {\n\t\ttry {\n\t\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\t\tlet eventId = wpm.getFbRandomEventId()\n\n\t\t\tfbq(\"trackCustom\", eventName, customData, {\n\t\t\t\teventID: eventId,\n\t\t\t})\n\n\t\t\tjQuery(document).trigger(\"wpmFbCapiEvent\", {\n\t\t\t\tevent_name : eventName,\n\t\t\t\tevent_id : eventId,\n\t\t\t\tuser_data : wpm.getFbUserData(),\n\t\t\t\tevent_source_url: window.location.href,\n\t\t\t\tcustom_data : customData,\n\t\t\t})\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.fbGetContentIdsFromCart = () => {\n\n\t\tlet content_ids = []\n\n\t\tfor(const key in wpmDataLayer.cart){\n\t\t\tcontent_ids.push(wpmDataLayer.products[key].dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type])\n\t\t}\n\t\t\n\t\treturn content_ids\n\t}\n\n}(window.wpm = window.wpm || {}, jQuery));\n","/**\n * Facebook loader\n */\n\nrequire(\"./functions\")\nrequire(\"./event_listeners\")\n\n// #if process.env.TIER === 'premium'\n// require(\"./functions_premium\")\n// require(\"./event_listeners_premium\")\n// #endif\n\n","/**\n * Load Google Ads event listeners\n * */\n\n// view_item_list event\njQuery(document).on(\"wpmViewItemList\", function (event, product) {\n\n\ttry {\n\t\tif (jQuery.isEmptyObject(wpmDataLayer?.pixels?.google?.ads?.conversionIds)) return\n\t\tif (!wpmDataLayer?.pixels?.google?.ads?.dynamic_remarketing?.status) return\n\t\tif (!wpm.googleConfigConditionsMet(\"ads\")) return\n\n\n\t\tif (\n\t\t\twpmDataLayer?.general?.variationsOutput &&\n\t\t\tproduct.isVariable &&\n\t\t\twpmDataLayer.pixels.google.ads.dynamic_remarketing.send_events_with_parent_ids === false\n\t\t) return\n\n\t\t// try to prevent that WC sends cached hits to Google\n\t\tif (!product) return\n\n\t\tlet data = {\n\t\t\tsend_to: wpm.getGoogleAdsConversionIdentifiers(),\n\t\t\titems : [{\n\t\t\t\tid : product.dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type],\n\t\t\t\tgoogle_business_vertical: wpmDataLayer.pixels.google.ads.google_business_vertical,\n\t\t\t}],\n\t\t}\n\n\t\tif (wpmDataLayer?.user?.id) {\n\t\t\tdata.user_id = wpmDataLayer.user.id\n\t\t}\n\n\t\twpm.gtagLoaded().then(function () {\n\t\t\tgtag(\"event\", \"view_item_list\", data)\n\t\t})\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// add_to_cart event\njQuery(document).on(\"wpmAddToCart\", function (event, product) {\n\n\ttry {\n\t\tif (jQuery.isEmptyObject(wpmDataLayer?.pixels?.google?.ads?.conversionIds)) return\n\t\tif (!wpmDataLayer?.pixels?.google?.ads?.dynamic_remarketing?.status) return\n\t\tif (!wpm.googleConfigConditionsMet(\"ads\")) return\n\n\t\tlet data = {\n\t\t\tsend_to: wpm.getGoogleAdsConversionIdentifiers(),\n\t\t\tvalue : product.quantity * product.price,\n\t\t\titems : [{\n\t\t\t\tid : product.dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type],\n\t\t\t\tquantity : product.quantity,\n\t\t\t\tprice : product.price,\n\t\t\t\tgoogle_business_vertical: wpmDataLayer.pixels.google.ads.google_business_vertical,\n\t\t\t}],\n\t\t}\n\n\t\tif (wpmDataLayer?.user?.id) {\n\t\t\tdata.user_id = wpmDataLayer.user.id\n\t\t}\n\n\t\twpm.gtagLoaded().then(function () {\n\t\t\tgtag(\"event\", \"add_to_cart\", data)\n\t\t})\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// view_item event\njQuery(document).on(\"wpmViewItem\", (event, product = null) => {\n\n\ttry {\n\t\tif (jQuery.isEmptyObject(wpmDataLayer?.pixels?.google?.ads?.conversionIds)) return\n\t\tif (!wpmDataLayer?.pixels?.google?.ads?.dynamic_remarketing?.status) return\n\t\tif (!wpm.googleConfigConditionsMet(\"ads\")) return\n\n\t\tlet data = {\n\t\t\tsend_to: wpm.getGoogleAdsConversionIdentifiers(),\n\t\t}\n\n\t\tif (product) {\n\t\t\tdata.value = (product.quantity ? product.quantity : 1) * product.price\n\t\t\tdata.items = [{\n\t\t\t\tid : product.dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type],\n\t\t\t\tquantity : (product.quantity ? product.quantity : 1),\n\t\t\t\tprice : product.price,\n\t\t\t\tgoogle_business_vertical: wpmDataLayer.pixels.google.ads.google_business_vertical,\n\t\t\t}]\n\t\t}\n\n\t\tif (wpmDataLayer?.user?.id) {\n\t\t\tdata.user_id = wpmDataLayer.user.id\n\t\t}\n\n\t\twpm.gtagLoaded().then(function () {\n\t\t\tgtag(\"event\", \"view_item\", data)\n\t\t})\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n\n// view search event\njQuery(document).on(\"wpmSearch\", function () {\n\n\ttry {\n\t\tif (jQuery.isEmptyObject(wpmDataLayer?.pixels?.google?.ads?.conversionIds)) return\n\t\tif (!wpmDataLayer?.pixels?.google?.ads?.dynamic_remarketing?.status) return\n\t\tif (!wpm.googleConfigConditionsMet(\"ads\")) return\n\n\n\t\tlet products = []\n\n\t\tfor (const [key, product] of Object.entries(wpmDataLayer.products)) {\n\n\t\t\tif (\n\t\t\t\twpmDataLayer?.general?.variationsOutput &&\n\t\t\t\tproduct.isVariable &&\n\t\t\t\twpmDataLayer.pixels.google.ads.dynamic_remarketing.send_events_with_parent_ids === false\n\t\t\t) return\n\n\t\t\tproducts.push({\n\t\t\t\tid : product.dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type],\n\t\t\t\tgoogle_business_vertical: wpmDataLayer.pixels.google.ads.google_business_vertical,\n\t\t\t})\n\t\t}\n\n\t\t// console.log(products);\n\n\t\tlet data = {\n\t\t\tsend_to: wpm.getGoogleAdsConversionIdentifiers(),\n\t\t\t// value : 1 * product.price,\n\t\t\titems: products,\n\t\t}\n\n\t\tif (wpmDataLayer?.user?.id) {\n\t\t\tdata.user_id = wpmDataLayer.user.id\n\t\t}\n\n\t\twpm.gtagLoaded().then(function () {\n\t\t\tgtag(\"event\", \"view_search_results\", data)\n\t\t})\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n\n// view order received page event\n// TODO distinguish with or without cart data active\njQuery(document).on(\"wpmOrderReceivedPage\", function () {\n\n\ttry {\n\t\tif (jQuery.isEmptyObject(wpmDataLayer?.pixels?.google?.ads?.conversionIds)) return\n\t\tif (!wpmDataLayer?.pixels?.google?.ads?.dynamic_remarketing?.status) return\n\t\tif (!wpm.googleConfigConditionsMet(\"ads\")) return\n\n\t\tlet data = {\n\t\t\tsend_to: wpm.getGoogleAdsConversionIdentifiers(),\n\t\t\tvalue : wpmDataLayer.order.value_filtered,\n\t\t\titems : wpm.getGoogleAdsDynamicRemarketingOrderItems(),\n\t\t}\n\n\t\tif (wpmDataLayer?.user?.id) {\n\t\t\tdata.user_id = wpmDataLayer.user.id\n\t\t}\n\n\t\twpm.gtagLoaded().then(function () {\n\t\t\tgtag(\"event\", \"purchase\", data)\n\t\t})\n\n\t\t// console.log(wpm.getGoogleAdsDynamicRemarketingOrderItems())\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// user log in event\njQuery(document).on(\"wpmLogin\", function () {\n\n\ttry {\n\t\tif (jQuery.isEmptyObject(wpmDataLayer?.pixels?.google?.ads?.conversionIds)) return\n\t\tif (!wpmDataLayer?.pixels?.google?.ads?.dynamic_remarketing?.status) return\n\t\tif (!wpm.googleConfigConditionsMet(\"ads\")) return\n\n\t\tlet data = {\n\t\t\tsend_to: wpm.getGoogleAdsConversionIdentifiers(),\n\t\t}\n\n\t\tif (wpmDataLayer?.user?.id) {\n\t\t\tdata.user_id = wpmDataLayer.user.id\n\t\t}\n\n\t\twpm.gtagLoaded().then(function () {\n\t\t\tgtag(\"event\", \"login\", data)\n\t\t})\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// conversion event\n// new_customer parameter: https://support.google.com/google-ads/answer/9917012\njQuery(document).on(\"wpmOrderReceivedPage\", function () {\n\n\ttry {\n\t\tif (jQuery.isEmptyObject(wpm.getGoogleAdsConversionIdentifiersWithLabel())) return\n\t\tif (!wpm.googleConfigConditionsMet(\"ads\")) return\n\n\t\tlet data_basic = {}\n\t\tlet data_with_cart = {}\n\n\t\tdata_basic = {\n\t\t\tsend_to : wpm.getGoogleAdsConversionIdentifiersWithLabel(),\n\t\t\ttransaction_id: wpmDataLayer.order.number,\n\t\t\tvalue : wpmDataLayer.order.value_filtered,\n\t\t\tcurrency : wpmDataLayer.order.currency,\n\t\t\tnew_customer : wpmDataLayer.order.new_customer,\n\t\t}\n\n\t\tif (wpmDataLayer?.order?.clv_order_value_filtered) {\n\t\t\tdata_basic.customer_lifetime_value = wpmDataLayer.order.clv_order_value_filtered\n\t\t}\n\n\t\tif (wpmDataLayer?.user?.id) {\n\t\t\tdata_basic.user_id = wpmDataLayer.user.id\n\t\t}\n\n\t\tif (wpmDataLayer?.order?.aw_merchant_id) {\n\t\t\tdata_with_cart = {\n\t\t\t\tdiscount : wpmDataLayer.order.discount,\n\t\t\t\taw_merchant_id : wpmDataLayer.order.aw_merchant_id,\n\t\t\t\taw_feed_country : wpmDataLayer.order.aw_feed_country,\n\t\t\t\taw_feed_language: wpmDataLayer.order.aw_feed_language,\n\t\t\t\titems : wpm.getGoogleAdsRegularOrderItems(),\n\t\t\t}\n\t\t}\n\n\t\twpm.gtagLoaded().then(function () {\n\t\t\tgtag(\"event\", \"conversion\", {...data_basic, ...data_with_cart})\n\t\t})\n\n\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n","/**\n * Load Google Ads functions\n * */\n\n(function (wpm, $, undefined) {\n\n\n\twpm.getGoogleAdsConversionIdentifiersWithLabel = function () {\n\n\t\tlet conversionIdentifiers = []\n\n\t\tif (wpmDataLayer?.pixels?.google?.ads?.conversionIds) {\n\t\t\tfor (const [key, item] of Object.entries(wpmDataLayer.pixels.google.ads.conversionIds)) {\n\t\t\t\tif (item) {\n\t\t\t\t\tconversionIdentifiers.push(key + \"/\" + item)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn conversionIdentifiers\n\t}\n\n\twpm.getGoogleAdsConversionIdentifiers = function () {\n\n\t\tlet conversionIdentifiers = []\n\n\t\tfor (const [key, item] of Object.entries(wpmDataLayer.pixels.google.ads.conversionIds)) {\n\t\t\tconversionIdentifiers.push(key)\n\t\t}\n\n\t\treturn conversionIdentifiers\n\t}\n\n\twpm.getGoogleAdsRegularOrderItems = function () {\n\n\t\tlet orderItems = []\n\n\t\tfor (const [key, item] of Object.entries(wpmDataLayer.order.items)) {\n\n\t\t\tlet orderItem\n\n\t\t\torderItem = {\n\t\t\t\tquantity: item.quantity,\n\t\t\t\tprice : item.price,\n\t\t\t}\n\n\t\t\tif (wpmDataLayer?.general?.variationsOutput && 0 !== item.variation_id) {\n\n\t\t\t\torderItem.id = String(wpmDataLayer.products[item.variation_id].dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type])\n\t\t\t\torderItems.push(orderItem)\n\t\t\t} else {\n\n\t\t\t\torderItem.id = String(wpmDataLayer.products[item.id].dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type])\n\t\t\t\torderItems.push(orderItem)\n\t\t\t}\n\t\t}\n\n\t\treturn orderItems\n\t}\n\n\twpm.getGoogleAdsDynamicRemarketingOrderItems = function () {\n\n\t\tlet orderItems = []\n\n\t\tfor (const [key, item] of Object.entries(wpmDataLayer.order.items)) {\n\n\t\t\tlet orderItem\n\n\t\t\torderItem = {\n\t\t\t\tquantity : item.quantity,\n\t\t\t\tprice : item.price,\n\t\t\t\tgoogle_business_vertical: wpmDataLayer.pixels.google.ads.google_business_vertical,\n\t\t\t}\n\n\t\t\tif (wpmDataLayer?.general?.variationsOutput && 0 !== item.variation_id) {\n\n\t\t\t\torderItem.id = String(wpmDataLayer.products[item.variation_id].dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type])\n\t\t\t\torderItems.push(orderItem)\n\t\t\t} else {\n\n\t\t\t\torderItem.id = String(wpmDataLayer.products[item.id].dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type])\n\t\t\t\torderItems.push(orderItem)\n\t\t\t}\n\t\t}\n\n\t\treturn orderItems\n\t}\n\n}(window.wpm = window.wpm || {}, jQuery))\n","/**\n * Load Google Ads\n */\n\n\nrequire(\"./functions\")\nrequire(\"./event_listeners\")\n","/**\n * Load Google Universal Analytics (GA3) event listeners\n * */\n\n\n// view order received page event\njQuery(document).on(\"wpmOrderReceivedPage\", function () {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.google?.analytics?.universal?.property_id) return\n\t\tif (wpmDataLayer?.pixels?.google?.analytics?.universal?.mp_active) return\n\t\tif (!wpm.googleConfigConditionsMet(\"analytics\")) return\n\n\t\twpm.gtagLoaded().then(function () {\n\t\t\tgtag(\"event\", \"purchase\", {\n\t\t\t\tsend_to : [wpmDataLayer.pixels.google.analytics.universal.property_id],\n\t\t\t\ttransaction_id: wpmDataLayer.order.number,\n\t\t\t\taffiliation : wpmDataLayer.order.affiliation,\n\t\t\t\tcurrency : wpmDataLayer.order.currency,\n\t\t\t\tvalue : wpmDataLayer.order.value_regular,\n\t\t\t\tdiscount : wpmDataLayer.order.discount,\n\t\t\t\ttax : wpmDataLayer.order.tax,\n\t\t\t\tshipping : wpmDataLayer.order.shipping,\n\t\t\t\tcoupon : wpmDataLayer.order.coupon,\n\t\t\t\titems : wpm.getGAUAOrderItems(),\n\t\t\t})\n\t\t})\n\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n","/**\n * Add functions for Google Analytics Universal\n * */\n\n(function (wpm, $, undefined) {\n\n\twpm.getGAUAOrderItems = function () {\n\n\t\t// \"id\" : \"34\",\n\t\t// \"name\" : \"Hoodie\",\n\t\t// \"brand\" : \"\",\n\t\t// \"category\" : \"Hoodies\",\n\t\t// \"list_position\": 1,\n\t\t// \"price\" : 45,\n\t\t// \"quantity\" : 1,\n\t\t// \"variant\" : \"Color: blue | Logo: yes\"\n\n\n\t\tlet orderItems = []\n\n\t\tfor (const [key, item] of Object.entries(wpmDataLayer.order.items)) {\n\n\t\t\tlet orderItem\n\n\t\t\torderItem = {\n\t\t\t\tquantity: item.quantity,\n\t\t\t\tprice : item.price,\n\t\t\t\tname : item.name,\n\t\t\t\tcurrency: wpmDataLayer.order.currency,\n\t\t\t\tcategory: wpmDataLayer.products[item.id].category.join(\"/\"),\n\t\t\t}\n\n\t\t\tif (wpmDataLayer?.general?.variationsOutput && 0 !== item.variation_id) {\n\n\t\t\t\torderItem.id = String(wpmDataLayer.products[item.variation_id].dyn_r_ids[wpmDataLayer.pixels.google.analytics.id_type])\n\t\t\t\torderItem.variant = wpmDataLayer.products[item.variation_id].variant_name\n\t\t\t\torderItem.brand = wpmDataLayer.products[item.variation_id].brand\n\t\t\t} else {\n\n\t\t\t\torderItem.id = String(wpmDataLayer.products[item.id].dyn_r_ids[wpmDataLayer.pixels.google.analytics.id_type])\n\t\t\t\torderItem.brand = wpmDataLayer.products[item.id].brand\n\t\t\t}\n\n\t\t\torderItem = wpm.ga3AddListNameToProduct(orderItem)\n\n\t\t\torderItems.push(orderItem)\n\t\t}\n\n\t\treturn orderItems\n\t}\n\n\twpm.ga3AddListNameToProduct = function (item_data, productPosition = null) {\n\n\t\t// if (wpm.ga3CanProductListBeSet(item_data.id)) {\n\t\t// \titem_data.listname = wpmDataLayer.shop.list_name\n\t\t//\n\t\t// \tif (productPosition) {\n\t\t// \t\titem_data.list_position = productPosition\n\t\t// \t}\n\t\t// }\n\n\t\titem_data.list_name = wpmDataLayer.shop.list_name\n\n\t\tif (productPosition) {\n\t\t\titem_data.list_position = productPosition\n\t\t}\n\n\t\treturn item_data\n\t}\n\n}(window.wpm = window.wpm || {}, jQuery))\n","/**\n * Google Universal Analytics (GA3) loader\n */\n\nrequire(\"./functions\")\nrequire(\"./event_listeners\")\n\n// #if process.env.TIER === 'premium'\n// require(\"./functions_premium\")\n// require(\"./event_listeners_premium\")\n// #endif\n","/**\n * Load GA4 event listeners\n * */\n\n\n// view order received page event\njQuery(document).on(\"wpmOrderReceivedPage\", function () {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.google?.analytics?.ga4?.measurement_id) return\n\t\tif (wpmDataLayer?.pixels?.google?.analytics?.ga4?.mp_active) return\n\t\tif (!wpm.googleConfigConditionsMet(\"analytics\")) return\n\n\t\twpm.gtagLoaded().then(function () {\n\t\t\tgtag(\"event\", \"purchase\", {\n\t\t\t\tsend_to : [wpmDataLayer.pixels.google.analytics.ga4.measurement_id],\n\t\t\t\ttransaction_id: wpmDataLayer.order.number,\n\t\t\t\taffiliation : wpmDataLayer.order.affiliation,\n\t\t\t\tcurrency : wpmDataLayer.order.currency,\n\t\t\t\tvalue : wpmDataLayer.order.value_regular,\n\t\t\t\tdiscount : wpmDataLayer.order.discount,\n\t\t\t\ttax : wpmDataLayer.order.tax,\n\t\t\t\tshipping : wpmDataLayer.order.shipping,\n\t\t\t\tcoupon : wpmDataLayer.order.coupon,\n\t\t\t\titems : wpm.getGA4OrderItems(),\n\t\t\t})\n\t\t})\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n","/**\n * Load GA4 functions\n * */\n\n(function (wpm, $, undefined) {\n\n\twpm.getGA4OrderItems = function () {\n\n\t\t// \"item_id\" : \"34\",\n\t\t// \"item_name\" : \"Hoodie\",\n\t\t// \"quantity\" : 1,\n\t\t// \"item_brand\" : \"\",\n\t\t// \"item_variant\" : \"Color: blue | Logo: yes\",\n\t\t// \"price\" : 45,\n\t\t// \"currency\" : \"CHF\",\n\t\t// \"item_category\": \"Hoodies\"\n\n\n\t\tlet orderItems = []\n\n\t\tfor (const [key, item] of Object.entries(wpmDataLayer.order.items)) {\n\n\t\t\tlet orderItem\n\n\t\t\torderItem = {\n\t\t\t\tquantity : item.quantity,\n\t\t\t\tprice : item.price,\n\t\t\t\titem_name : item.name,\n\t\t\t\tcurrency : wpmDataLayer.order.currency,\n\t\t\t\titem_category: wpmDataLayer.products[item.id].category.join(\"/\"),\n\t\t\t}\n\n\t\t\tif (wpmDataLayer?.general?.variationsOutput && 0 !== item.variation_id) {\n\n\t\t\t\torderItem.item_id = String(wpmDataLayer.products[item.variation_id].dyn_r_ids[wpmDataLayer.pixels.google.analytics.id_type])\n\t\t\t\torderItem.item_variant = wpmDataLayer.products[item.variation_id].variant_name\n\t\t\t\torderItem.item_brand = wpmDataLayer.products[item.variation_id].brand\n\t\t\t} else {\n\n\t\t\t\torderItem.item_id = String(wpmDataLayer.products[item.id].dyn_r_ids[wpmDataLayer.pixels.google.analytics.id_type])\n\t\t\t\torderItem.item_brand = wpmDataLayer.products[item.id].brand\n\t\t\t}\n\n\t\t\torderItems.push(orderItem)\n\t\t}\n\n\t\treturn orderItems\n\t}\n\n}(window.wpm = window.wpm || {}, jQuery))\n","/**\n * GA4 loader\n */\n\nrequire(\"./functions\")\nrequire(\"./event_listeners\")\n\n// #if process.env.TIER === 'premium'\n// require(\"./functions_premium\")\n// require(\"./event_listeners_premium\")\n// #endif\n","/**\n * Google Analytics loader\n */\n\nrequire(\"./ga3/loader\")\nrequire(\"./ga4/loader\")\n","/**\n * Load Google base event listeners\n */\n\n// Pixel load event listener\njQuery(document).on(\"wpmLoadPixels\", function () {\n\n\tif (typeof wpmDataLayer?.pixels?.google?.state === \"undefined\") {\n\t\tif (wpm.canGoogleLoad()) {\n\t\t\twpm.loadGoogle()\n\t\t} else {\n\t\t\twpm.logPreventedPixelLoading(\"google\", \"analytics / ads\")\n\t\t}\n\t}\n})\n","/**\n * Load Google base functions\n */\n\n(function (wpm, $, undefined) {\n\n\twpm.googleConfigConditionsMet = function (type) {\n\n\t\t// always returns true if Google Consent Mode is active\n\t\tif (wpmDataLayer?.pixels?.google?.consent_mode?.active) {\n\t\t\treturn true\n\t\t} else if (wpm.getConsentValues().mode === \"category\") {\n\t\t\treturn wpm.getConsentValues().categories[type] === true\n\t\t} else if (wpm.getConsentValues().mode === \"pixel\") {\n\t\t\treturn wpm.getConsentValues().pixels.includes(\"google-\" + type)\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\n\twpm.getVisitorConsentStatusAndUpdateGoogleConsentSettings = function (google_consent_settings) {\n\n\t\tif (wpm.getConsentValues().mode === \"category\") {\n\n\t\t\tif (wpm.getConsentValues().categories.analytics) google_consent_settings.analytics_storage = \"granted\"\n\t\t\tif (wpm.getConsentValues().categories.ads) google_consent_settings.ad_storage = \"granted\"\n\t\t} else if ((wpm.getConsentValues().mode === \"pixel\")) {\n\n\t\t\tgoogle_consent_settings.analytics_storage = wpm.getConsentValues().pixels.includes(\"google-analytics\") ? \"granted\" : \"denied\"\n\t\t\tgoogle_consent_settings.ad_storage = wpm.getConsentValues().pixels.includes(\"google-ads\") ? \"granted\" : \"denied\"\n\t\t}\n\n\t\treturn google_consent_settings\n\t}\n\n\twpm.updateGoogleConsentMode = function (analytics = true, ads = true) {\n\n\t\ttry {\n\t\t\tif (\n\t\t\t\t!window.gtag ||\n\t\t\t\t!wpmDataLayer.shop.cookie_consent_mgmt.explicit_consent\n\t\t\t) return\n\n\t\t\tgtag(\"consent\", \"update\", {\n\t\t\t\tanalytics_storage: analytics ? \"granted\" : \"denied\",\n\t\t\t\tad_storage : ads ? \"granted\" : \"denied\",\n\t\t\t})\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.fireGtagGoogleAds = function () {\n\t\ttry {\n\t\t\twpmDataLayer.pixels.google.ads.state = \"loading\"\n\n\t\t\tif (wpmDataLayer?.pixels?.google?.ads?.enhanced_conversions?.active) {\n\t\t\t\tfor (const [key, item] of Object.entries(wpmDataLayer.pixels.google.ads.conversionIds)) {\n\t\t\t\t\tgtag(\"config\", key, {\"allow_enhanced_conversions\": true})\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (const [key, item] of Object.entries(wpmDataLayer.pixels.google.ads.conversionIds)) {\n\t\t\t\t\tgtag(\"config\", key)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (wpmDataLayer?.pixels?.google?.ads?.conversionIds && wpmDataLayer?.pixels?.google?.ads?.phone_conversion_label && wpmDataLayer?.pixels?.google?.ads?.phone_conversion_number) {\n\t\t\t\tgtag(\"config\", Object.keys(wpmDataLayer.pixels.google.ads.conversionIds)[0] + \"/\" + wpmDataLayer.pixels.google.ads.phone_conversion_label, {\n\t\t\t\t\tphone_conversion_number: wpmDataLayer.pixels.google.ads.phone_conversion_number,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// ! enhanced_conversion_data needs to set on the window object\n\t\t\t// https://support.google.com/google-ads/answer/9888145#zippy=%2Cvalidate-your-implementation-using-chrome-developer-tools\n\t\t\tif (wpmDataLayer?.shop?.page_type && \"order_received_page\" === wpmDataLayer.shop.page_type && wpmDataLayer?.order?.google?.ads?.enhanced_conversion_data) {\n\t\t\t\t// window.enhanced_conversion_data = wpmDataLayer.order.google.ads.enhanced_conversion_data\n\n\t\t\t\tgtag(\"set\", \"user_data\", wpmDataLayer.order.google.ads.enhanced_conversion_data)\n\t\t\t}\n\n\t\t\twpmDataLayer.pixels.google.ads.state = \"ready\"\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.fireGtagGoogleAnalyticsUA = function () {\n\n\t\ttry {\n\t\t\twpmDataLayer.pixels.google.analytics.universal.state = \"loading\"\n\n\t\t\tgtag(\"config\", wpmDataLayer.pixels.google.analytics.universal.property_id, wpmDataLayer.pixels.google.analytics.universal.parameters)\n\t\t\twpmDataLayer.pixels.google.analytics.universal.state = \"ready\"\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.fireGtagGoogleAnalyticsGA4 = function () {\n\n\t\ttry {\n\t\t\twpmDataLayer.pixels.google.analytics.ga4.state = \"loading\"\n\n\t\t\tlet parameters = wpmDataLayer.pixels.google.analytics.ga4.parameters\n\n\t\t\tif (wpmDataLayer?.pixels?.google?.analytics?.ga4?.debug_mode) {\n\t\t\t\tparameters.debug_mode = true\n\t\t\t}\n\n\t\t\tgtag(\"config\", wpmDataLayer.pixels.google.analytics.ga4.measurement_id, parameters)\n\n\t\t\twpmDataLayer.pixels.google.analytics.ga4.state = \"ready\"\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.isGoogleActive = function () {\n\n\t\tif (\n\t\t\twpmDataLayer?.pixels?.google?.analytics?.universal?.property_id ||\n\t\t\twpmDataLayer?.pixels?.google?.analytics?.ga4?.measurement_id ||\n\t\t\t!jQuery.isEmptyObject(wpmDataLayer?.pixels?.google?.ads?.conversionIds)\n\t\t) {\n\t\t\treturn true\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\n\twpm.getGoogleGtagId = function () {\n\n\t\tif (wpmDataLayer?.pixels?.google?.analytics?.universal?.property_id) {\n\t\t\treturn wpmDataLayer.pixels.google.analytics.universal.property_id\n\t\t} else if (wpmDataLayer?.pixels?.google?.analytics?.ga4?.measurement_id) {\n\t\t\treturn wpmDataLayer.pixels.google.analytics.ga4.measurement_id\n\t\t} else {\n\t\t\treturn Object.keys(wpmDataLayer.pixels.google.ads.conversionIds)[0]\n\t\t}\n\t}\n\n\n\twpm.loadGoogle = function () {\n\n\t\tif (wpm.isGoogleActive()) {\n\n\t\t\twpmDataLayer.pixels.google.state = \"loading\"\n\n\t\t\twpm.loadScriptAndCacheIt(\"https://www.googletagmanager.com/gtag/js?id=\" + wpm.getGoogleGtagId())\n\t\t\t\t.then(function (script, textStatus) {\n\n\t\t\t\t\ttry {\n\n\t\t\t\t\t\t// Initiate Google dataLayer and gtag\n\t\t\t\t\t\twindow.dataLayer = window.dataLayer || []\n\t\t\t\t\t\twindow.gtag = function gtag() {\n\t\t\t\t\t\t\tdataLayer.push(arguments)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Google Consent Mode\n\t\t\t\t\t\tif (wpmDataLayer?.pixels?.google?.consent_mode?.active) {\n\n\t\t\t\t\t\t\tlet google_consent_settings = {\n\t\t\t\t\t\t\t\t\"ad_storage\" : wpmDataLayer.pixels.google.consent_mode.ad_storage,\n\t\t\t\t\t\t\t\t\"analytics_storage\": wpmDataLayer.pixels.google.consent_mode.analytics_storage,\n\t\t\t\t\t\t\t\t\"wait_for_update\" : wpmDataLayer.pixels.google.consent_mode.wait_for_update,\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (wpmDataLayer?.pixels?.google?.consent_mode?.region) {\n\t\t\t\t\t\t\t\tgoogle_consent_settings.region = wpmDataLayer.pixels.google.consent_mode.region\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tgoogle_consent_settings = wpm.getVisitorConsentStatusAndUpdateGoogleConsentSettings(google_consent_settings)\n\n\t\t\t\t\t\t\tgtag(\"consent\", \"default\", google_consent_settings)\n\t\t\t\t\t\t\tgtag(\"set\", \"ads_data_redaction\", wpmDataLayer.pixels.google.consent_mode.ads_data_redaction)\n\t\t\t\t\t\t\tgtag(\"set\", \"url_passthrough\", wpmDataLayer.pixels.google.consent_mode.url_passthrough)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Google Linker\n\t\t\t\t\t\t// https://developers.google.com/gtagjs/devguide/linker\n\t\t\t\t\t\tif (wpmDataLayer?.pixels?.google?.linker?.settings) {\n\t\t\t\t\t\t\tgtag(\"set\", \"linker\", wpmDataLayer.pixels.google.linker.settings)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tgtag(\"js\", new Date())\n\n\t\t\t\t\t\t// Google Ads loader\n\t\t\t\t\t\tif (!jQuery.isEmptyObject(wpmDataLayer?.pixels?.google?.ads?.conversionIds)) { // Only run if the pixel has set up\n\t\t\t\t\t\t\tif (wpm.googleConfigConditionsMet(\"ads\")) { \t\t\t\t\t\t\t// Only run if cookie consent has been given\n\t\t\t\t\t\t\t\twpm.fireGtagGoogleAds()\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\twpm.logPreventedPixelLoading(\"google-ads\", \"ads\")\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Google Universal Analytics loader\n\t\t\t\t\t\tif (wpmDataLayer?.pixels?.google?.analytics?.universal?.property_id) { \t\t// Only run if the pixel has set up\n\n\t\t\t\t\t\t\tif (wpm.googleConfigConditionsMet(\"analytics\")) {\t\t\t\t\t\t// Only run if cookie consent has been given\n\t\t\t\t\t\t\t\twpm.fireGtagGoogleAnalyticsUA()\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\twpm.logPreventedPixelLoading(\"google-universal-analytics\", \"analytics\")\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// GA4 loader\n\t\t\t\t\t\tif (wpmDataLayer?.pixels?.google?.analytics?.ga4?.measurement_id) { \t\t\t// Only run if the pixel has set up\n\n\t\t\t\t\t\t\tif (wpm.googleConfigConditionsMet(\"analytics\")) {\t\t\t\t\t\t// Only run if cookie consent has been given\n\t\t\t\t\t\t\t\twpm.fireGtagGoogleAnalyticsGA4()\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\twpm.logPreventedPixelLoading(\"ga4\", \"analytics\")\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\twpmDataLayer.pixels.google.state = \"ready\"\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tconsole.error(e)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t}\n\t}\n\n\twpm.canGoogleLoad = function () {\n\n\t\tif (wpmDataLayer?.pixels?.google?.consent_mode?.active) {\n\t\t\treturn true\n\t\t} else if (\"category\" === wpm.getConsentValues().mode) {\n\t\t\treturn !!(wpm.getConsentValues().categories[\"ads\"] || wpm.getConsentValues().categories[\"analytics\"])\n\t\t} else if (\"pixel\" === wpm.getConsentValues().mode) {\n\t\t\treturn wpm.getConsentValues().pixels.includes(\"google-ads\") || wpm.getConsentValues().pixels.includes(\"google-analytics\")\n\t\t} else {\n\t\t\tconsole.error(\"Couldn't find a valid load condition for Google mode in wpmConsentValues\")\n\t\t\treturn false\n\t\t}\n\t}\n\n\twpm.gtagLoaded = function () {\n\t\treturn new Promise(function (resolve, reject) {\n\n\t\t\tif (typeof wpmDataLayer?.pixels?.google?.state === \"undefined\") reject()\n\n\t\t\tlet startTime = 0\n\t\t\tlet timeout = 5000\n\t\t\tlet frequency = 200;\n\n\t\t\t(function wait() {\n\t\t\t\tif (wpmDataLayer?.pixels?.google?.state === \"ready\") return resolve()\n\t\t\t\tif (startTime >= timeout) return reject()\n\t\t\t\tstartTime += frequency\n\t\t\t\tsetTimeout(wait, frequency)\n\t\t\t})()\n\t\t})\n\t}\n\n\n}(window.wpm = window.wpm || {}, jQuery))\n","/**\n * Load Google base\n */\n\n// Load base\nrequire(\"./functions\")\nrequire(\"./event_listeners\")\n\n// #if process.env.TIER === 'premium'\n// require(\"./functions_premium\")\n// require(\"./event_listeners_premium\")\n// #endif\n","/**\n * Load Google\n */\n\n// Load base\nrequire(\"./base/loader\")\n\n//Load additional Google libraries\nrequire(\"./ads/loader\")\nrequire(\"./analytics/loader\")\nrequire(\"./optimize/loader\")\n\n\n","/**\n * Load Google Optimize event listeners\n */\n\njQuery(document).on(\"wpmLoadPixels\", function () {\n\n\tif (wpmDataLayer?.pixels?.google?.optimize?.container_id && !wpmDataLayer?.pixels?.google?.optimize?.loaded) {\n\t\tif (wpm.canIFire(\"analytics\", \"google-optimize\")) wpm.load_google_optimize_pixel()\n\t}\n})\n","/**\n * Load Google Optimize functions\n */\n\n\n(function (wpm, $, undefined) {\n\n\twpm.load_google_optimize_pixel = function () {\n\n\t\ttry {\n\t\t\twpmDataLayer.pixels.google.optimize.loaded = true\n\n\t\t\twpm.loadScriptAndCacheIt(\"https://www.googleoptimize.com/optimize.js?id=\" + wpmDataLayer.pixels.google.optimize.container_id)\n\t\t\t// .then(function (script, textStatus) {\n\t\t\t// \t\tconsole.log('Google Optimize loaded')\n\t\t\t// });\n\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n}(window.wpm = window.wpm || {}, jQuery));\n","/**\n * Load Google Optimize\n */\n\nrequire(\"./functions\")\nrequire(\"./event_listeners\")\n","/**\n * Load Hotjar event listeners\n */\n\n// Pixel load event listener\njQuery(document).on(\"wpmLoadPixels\", function () {\n\n\tif (wpmDataLayer?.pixels?.hotjar?.site_id && !wpmDataLayer?.pixels?.hotjar?.loaded) {\n\t\tif (wpm.canIFire(\"analytics\", \"hotjar\") && !wpmDataLayer?.pixels?.hotjar?.loaded) wpm.load_hotjar_pixel()\n\t}\n})\n","/**\n * Load Hotjar functions\n */\n\n(function (wpm, $, undefined) {\n\n\twpm.load_hotjar_pixel = function () {\n\n\t\ttry {\n\t\t\twpmDataLayer.pixels.hotjar.loaded = true;\n\n\t\t\t// @formatter:off\n\t\t\t(function(h,o,t,j,a,r){\n\t\t\t\th.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};\n\t\t\t\th._hjSettings={hjid:wpmDataLayer.pixels.hotjar.site_id,hjsv:6};\n\t\t\t\ta=o.getElementsByTagName('head')[0];\n\t\t\t\tr=o.createElement('script');r.async=1;\n\t\t\t\tr.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;\n\t\t\t\ta.appendChild(r);\n\t\t\t})(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');\n\t\t\t// @formatter:on\n\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n}(window.wpm = window.wpm || {}, jQuery));\n","/**\n * Hotjar loader\n */\n\nrequire(\"./functions\")\nrequire(\"./event_listeners\")\n","/**\n * Consent Mode functions\n */\n\n(function (wpm, $, undefined) {\n\n\n\t/**\n\t * Handle Cookie Management Platforms\n\t */\n\n\tlet getComplianzCookies = () => {\n\n\t\tlet cmplz_statistics = wpm.getCookie(\"cmplz_statistics\")\n\t\tlet cmplz_marketing = wpm.getCookie(\"cmplz_marketing\")\n\t\tlet cmplz_consent_status = wpm.getCookie(\"cmplz_consent_status\") || wpm.getCookie(\"cmplz_banner-status\")\n\n\t\tif (cmplz_consent_status) {\n\t\t\treturn {\n\t\t\t\tanalytics : cmplz_statistics === \"allow\",\n\t\t\t\tads : cmplz_marketing === \"allow\",\n\t\t\t\tvisitorHasChosen: true,\n\t\t\t}\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tlet getCookieLawInfoCookies = () => {\n\n\t\tlet analyticsCookie = wpm.getCookie(\"cookielawinfo-checkbox-analytics\") || wpm.getCookie(\"cookielawinfo-checkbox-analytiques\")\n\t\tlet adsCookie = wpm.getCookie(\"cookielawinfo-checkbox-advertisement\") || wpm.getCookie(\"cookielawinfo-checkbox-performance\") || wpm.getCookie(\"cookielawinfo-checkbox-publicite\")\n\t\tlet visitorHasChosen = wpm.getCookie(\"CookieLawInfoConsent\")\n\n\t\tif (analyticsCookie || adsCookie) {\n\n\t\t\treturn {\n\t\t\t\tanalytics : analyticsCookie === \"yes\",\n\t\t\t\tads : adsCookie === \"yes\",\n\t\t\t\tvisitorHasChosen: !!visitorHasChosen,\n\t\t\t}\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\n\n\tlet\n\t\twpmConsentValues = {}\n\twpmConsentValues.categories = {}\n\twpmConsentValues.pixels = []\n\twpmConsentValues.mode = \"category\"\n\twpmConsentValues.visitorHasChosen = false\n\n\twpm.getConsentValues = () => wpmConsentValues\n\n\twpm.setConsentValueCategories = (analytics = false, ads = false) => {\n\t\twpmConsentValues.categories.analytics = analytics\n\t\twpmConsentValues.categories.ads = ads\n\t}\n\n\twpm.updateConsentCookieValues = (analytics = null, ads = null, explicitConsent = false) => {\n\n\t\t// ad_storage\n\t\t// analytics_storage\n\t\t// functionality_storage\n\t\t// personalization_storage\n\t\t// security_storage\n\n\t\tlet cookie\n\n\t\tif (analytics || ads) {\n\n\t\t\tif (analytics) {\n\t\t\t\twpmConsentValues.categories.analytics = !!analytics\n\t\t\t}\n\t\t\tif (ads) {\n\t\t\t\twpmConsentValues.categories.ads = !!ads\n\t\t\t}\n\n\t\t} else if (cookie = wpm.getCookie(\"CookieConsent\")) {\n\n\t\t\t// Cookiebot\n\t\t\t// https://wordpress.org/plugins/cookiebot/\n\t\t\tcookie = decodeURI(cookie)\n\n\t\t\twpmConsentValues.categories.analytics = cookie.indexOf(\"statistics:true\") >= 0\n\t\t\twpmConsentValues.categories.ads = cookie.indexOf(\"marketing:true\") >= 0\n\t\t\twpmConsentValues.visitorHasChosen = true\n\n\t\t} else if (cookie = wpm.getCookie(\"CookieScriptConsent\")) {\n\n\t\t\t// Cookie Script\n\t\t\t// https://wordpress.org/plugins/cookie-script-com/\n\n\t\t\tcookie = JSON.parse(cookie)\n\n\t\t\tif (cookie.action === \"reject\") {\n\t\t\t\twpmConsentValues.categories.analytics = false\n\t\t\t\twpmConsentValues.categories.ads = false\n\t\t\t} else if (cookie.categories.length === 2) {\n\t\t\t\twpmConsentValues.categories.analytics = true\n\t\t\t\twpmConsentValues.categories.ads = true\n\t\t\t} else {\n\t\t\t\twpmConsentValues.categories.analytics = cookie.categories.indexOf(\"performance\") >= 0\n\t\t\t\twpmConsentValues.categories.ads = cookie.categories.indexOf(\"targeting\") >= 0\n\t\t\t}\n\n\t\t\twpmConsentValues.visitorHasChosen = true\n\n\t\t} else if (cookie = wpm.getCookie(\"borlabs-cookie\")) {\n\n\t\t\t// Borlabs Cookie\n\t\t\t// https://borlabs.io/borlabs-cookie/\n\n\t\t\tcookie = decodeURI(cookie)\n\t\t\tcookie = JSON.parse(cookie)\n\n\t\t\twpmConsentValues.categories.analytics = !!cookie?.consents?.statistics\n\t\t\twpmConsentValues.categories.ads = !!cookie?.consents?.marketing\n\t\t\twpmConsentValues.visitorHasChosen = true\n\t\t\twpmConsentValues.pixels = [...cookie?.consents?.statistics || [], ...cookie?.consents?.marketing || []]\n\t\t\twpmConsentValues.mode = \"pixel\"\n\n\t\t} else if (cookie = getComplianzCookies()) {\n\n\t\t\t// Complianz Cookie\n\t\t\t// https://wordpress.org/plugins/complianz-gdpr/\n\n\t\t\twpmConsentValues.categories.analytics = cookie.analytics === true\n\t\t\twpmConsentValues.categories.ads = cookie.ads === true\n\t\t\twpmConsentValues.visitorHasChosen = cookie.visitorHasChosen\n\n\t\t} else if (cookie = wpm.getCookie(\"cookie_notice_accepted\")) {\n\n\t\t\t// Cookie Compliance (free version)\n\t\t\t// https://wordpress.org/plugins/cookie-notice/\n\n\t\t\twpmConsentValues.categories.analytics = true\n\t\t\twpmConsentValues.categories.ads = true\n\t\t\twpmConsentValues.visitorHasChosen = true\n\n\t\t} else if (cookie = wpm.getCookie(\"hu-consent\")) {\n\n\t\t\t// Cookie Compliance (pro version)\n\t\t\t// https://wordpress.org/plugins/cookie-notice/\n\n\t\t\tcookie = JSON.parse(cookie)\n\n\t\t\twpmConsentValues.categories.analytics = !!cookie.categories[\"3\"]\n\t\t\twpmConsentValues.categories.ads = !!cookie.categories[\"4\"]\n\t\t\twpmConsentValues.visitorHasChosen = true\n\n\t\t} else if (cookie = getCookieLawInfoCookies()) {\n\n\t\t\t// CookieYes, GDPR Cookie Consent (Cookie Law Info)\n\t\t\t// https://wordpress.org/plugins/cookie-law-info/\n\n\t\t\twpmConsentValues.categories.analytics = cookie.analytics === true\n\t\t\twpmConsentValues.categories.ads = cookie.ads === true\n\t\t\twpmConsentValues.visitorHasChosen = cookie.visitorHasChosen === true\n\n\t\t} else if (cookie = wpm.getCookie(\"moove_gdpr_popup\")) {\n\n\t\t\t// GDPR Cookie Compliance Plugin by Moove Agency\n\t\t\t// https://wordpress.org/plugins/gdpr-cookie-compliance/\n\t\t\t// TODO write documentation on how to set up the plugin in order for this to work properly\n\n\t\t\tcookie = JSON.parse(cookie)\n\n\t\t\twpmConsentValues.categories.analytics = cookie.thirdparty === \"1\"\n\t\t\twpmConsentValues.categories.ads = cookie.advanced === \"1\"\n\t\t\twpmConsentValues.visitorHasChosen = true\n\n\t\t} else {\n\t\t\t// consentValues.categories.analytics = true\n\t\t\t// consentValues.categories.ads = true\n\n\t\t\twpmConsentValues.categories.analytics = !explicitConsent\n\t\t\twpmConsentValues.categories.ads = !explicitConsent\n\t\t}\n\t}\n\n\twpm.updateConsentCookieValues()\n\n\twpm.setConsentDefaultValuesToExplicit = () => {\n\t\twpmConsentValues.categories = {\n\t\t\tanalytics: false,\n\t\t\tads : false,\n\t\t}\n\t}\n\n\twpm.canIFire = (category, pixelName) => {\n\n\t\tlet canIFireMode\n\n\t\tif (\"category\" === wpmConsentValues.mode) {\n\t\t\tcanIFireMode = !!wpmConsentValues.categories[category]\n\t\t} else if (\"pixel\" === wpmConsentValues.mode) {\n\t\t\tcanIFireMode = wpmConsentValues.pixels.includes(pixelName)\n\n\t\t\t// If a user sets \"bing-ads\" in Borlabs Cookie instead of\n\t\t\t// \"microsoft-ads\" in the Borlabs settings, we need to check\n\t\t\t// for that too.\n\t\t\tif (false === canIFireMode && \"microsoft-ads\" === pixelName) {\n\t\t\t\tcanIFireMode = wpmConsentValues.pixels.includes(\"bing-ads\")\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.error(\"Couldn't find a valid consent mode in wpmConsentValues\")\n\t\t\tcanIFireMode = false\n\t\t}\n\n\t\tif (canIFireMode) {\n\t\t\treturn true\n\t\t} else {\n\t\t\tif (true || wpm.urlHasParameter(\"debugConsentMode\")) {\n\t\t\t\twpm.logPreventedPixelLoading(pixelName, category)\n\t\t\t}\n\n\t\t\treturn false\n\t\t}\n\t}\n\n\twpm.logPreventedPixelLoading = (pixelName, category) => {\n\n\t\tif (wpmDataLayer?.shop?.cookie_consent_mgmt?.explicit_consent) {\n\t\t\tconsole.log(\"Pixel Manager for WooCommerce: The \\\"\" + pixelName + \" (category: \" + category + \")\\\" pixel has not fired because you have not given consent for it yet. (WPM is in explicit consent mode.)\")\n\t\t} else {\n\t\t\tconsole.log(\"Pixel Manager for WooCommerce: The \\\"\" + pixelName + \" (category: \" + category + \")\\\" pixel has not fired because you have removed consent for this pixel. (WPM is in implicit consent mode.)\")\n\t\t}\n\t}\n\n\t/**\n\t * Runs through each script in <head> and blocks / unblocks it according to the plugin settings\n\t * and user consent.\n\t */\n\n\t// https://stackoverflow.com/q/65453565/4688612\n\twpm.scriptTagObserver = new MutationObserver((mutations) => {\n\t\tmutations.forEach(({addedNodes}) => {\n\t\t\t[...addedNodes]\n\t\t\t\t.forEach(node => {\n\n\t\t\t\t\tif ($(node).data(\"wpm-cookie-category\")) {\n\n\t\t\t\t\t\t// If the pixel category has been approved > unblock\n\t\t\t\t\t\t// If the pixel belongs to more than one category, then unblock if one of the categories has been approved\n\t\t\t\t\t\t// If no category has been approved, but the Google Consent Mode is active, then only unblock the Google scripts\n\n\t\t\t\t\t\tif (wpm.shouldScriptBeActive(node)) {\n\t\t\t\t\t\t\twpm.unblockScript(node)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\twpm.blockScript(node)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t})\n\t})\n\n\twpm.scriptTagObserver.observe(document.head, {childList: true, subtree: true})\n\t// jQuery(document).on(\"DOMContentLoaded\", () => wpm.scriptTagObserver.disconnect())\n\tdocument.addEventListener(\"DOMContentLoaded\", () => wpm.scriptTagObserver.disconnect())\n\n\twpm.shouldScriptBeActive = node => {\n\n\t\tif (\n\t\t\twpmDataLayer.shop.cookie_consent_mgmt.explicit_consent ||\n\t\t\twpmConsentValues.visitorHasChosen\n\t\t) {\n\n\t\t\tif (wpmConsentValues.mode === \"category\" && $(node).data(\"wpm-cookie-category\").split(\",\").some(element => wpmConsentValues.categories[element])) {\n\t\t\t\treturn true\n\t\t\t} else if (wpmConsentValues.mode === \"pixel\" && wpmConsentValues.pixels.includes($(node).data(\"wpm-pixel-name\"))) {\n\t\t\t\treturn true\n\t\t\t} else if (wpmConsentValues.mode === \"pixel\" && $(node).data(\"wpm-pixel-name\") === \"google\" && [\"google-analytics\", \"google-ads\"].some(element => wpmConsentValues.pixels.includes(element))) {\n\t\t\t\treturn true\n\t\t\t} else if (wpmDataLayer?.pixels?.google?.consent_mode?.active && $(node).data(\"wpm-pixel-name\") === \"google\") {\n\t\t\t\treturn true\n\t\t\t} else {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\treturn true\n\t\t}\n\t}\n\n\n\twpm.unblockScript = (scriptNode, removeAttach = false) => {\n\n\t\tif (removeAttach) $(scriptNode).remove()\n\n\t\tlet wpmSrc = $(scriptNode).data(\"wpm-src\")\n\t\tif (wpmSrc) $(scriptNode).attr(\"src\", wpmSrc)\n\n\t\tscriptNode.type = \"text/javascript\"\n\n\t\tif (removeAttach) $(scriptNode).appendTo(\"head\")\n\n\t\t// jQuery(document).trigger(\"wpmPreLoadPixels\")\n\t\tdocument.dispatchEvent(new Event(\"wpmPreLoadPixels\"))\n\t}\n\n\twpm.blockScript = (scriptNode, removeAttach = false) => {\n\n\t\tif (removeAttach) $(scriptNode).remove()\n\n\t\tif ($(scriptNode).attr(\"src\")) $(scriptNode).removeAttr(\"src\")\n\t\tscriptNode.type = \"blocked/javascript\"\n\n\t\tif (removeAttach) $(scriptNode).appendTo(\"head\")\n\t}\n\n\twpm.unblockAllScripts = (analytics = true, ads = true) => {\n\t\t// jQuery(document).trigger(\"wpmPreLoadPixels\")\n\t\tdocument.dispatchEvent(new Event(\"wpmPreLoadPixels\"))\n\t}\n\n\twpm.unblockSelectedPixels = () => {\n\t\t// jQuery(document).trigger(\"wpmPreLoadPixels\")\n\t\tdocument.dispatchEvent(new Event(\"wpmPreLoadPixels\"))\n\t}\n\n\n\t/**\n\t * Block or unblock scripts for each CMP immediately after cookie consent has been updated\n\t * by the visitor.\n\t */\n\n\t// Borlabs Cookie\n\t// If visitor accepts cookies in Borlabs Cookie unblock the scripts\n\t// jQuery(document).on(\"borlabs-cookie-consent-saved\", () => {\n\tdocument.addEventListener(\"borlabs-cookie-consent-saved\", () => {\n\t\twpm.updateConsentCookieValues()\n\n\t\tif (wpmConsentValues.mode === \"pixel\") {\n\n\t\t\twpm.unblockSelectedPixels()\n\t\t\twpm.updateGoogleConsentMode(wpmConsentValues.pixels.includes(\"google-analytics\"), wpmConsentValues.pixels.includes(\"google-ads\"))\n\t\t} else {\n\n\t\t\twpm.unblockAllScripts(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t\t\twpm.updateGoogleConsentMode(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t\t}\n\t})\n\n\t// Cookiebot\n\t// If visitor accepts cookies in Cookiebot unblock the scripts\n\t// https://www.cookiebot.com/en/developer/\n\t// jQuery(document).on(\"CookiebotOnAccept\", () => {\n\tdocument.addEventListener(\"CookiebotOnAccept\", () => {\n\t\tif (Cookiebot.consent.statistics) wpmConsentValues.categories.analytics = true\n\t\tif (Cookiebot.consent.marketing) wpmConsentValues.categories.ads = true\n\n\t\twpm.unblockAllScripts(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t\twpm.updateGoogleConsentMode(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\n\t}, false)\n\n\t/**\n\t * Cookie Script\n\t * If visitor accepts cookies in Cookie Script unblock the scripts\n\t * https://support.cookie-script.com/article/20-custom-events\n\t */\n\t// jQuery(document).on(\"CookieScriptAccept\", e => {\n\tdocument.addEventListener(\"CookieScriptAccept\", e => {\n\n\t\tif (e.detail.categories.includes(\"performance\")) wpmConsentValues.categories.analytics = true\n\t\tif (e.detail.categories.includes(\"targeting\")) wpmConsentValues.categories.ads = true\n\n\t\twpm.unblockAllScripts(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t\twpm.updateGoogleConsentMode(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t})\n\n\t/**\n\t * Cookie Script\n\t * If visitor accepts cookies in Cookie Script unblock the scripts\n\t * https://support.cookie-script.com/\n\t */\n\t// jQuery(document).on(\"CookieScriptAcceptAll\", () => {\n\tdocument.addEventListener(\"CookieScriptAcceptAll\", () => {\n\n\t\twpm.unblockAllScripts(true, true)\n\t\twpm.updateGoogleConsentMode(true, true)\n\t})\n\n\t/**\n\t * Complianz Cookie\n\t *\n\t * If visitor accepts cookies in Complianz unblock the scripts\n\t */\n\n\twpm.cmplzStatusChange = (cmplzConsentData) => {\n\n\t\tif (cmplzConsentData.detail.categories.includes(\"statistics\")) wpm.updateConsentCookieValues(true, null)\n\t\tif (cmplzConsentData.detail.categories.includes(\"marketing\")) wpm.updateConsentCookieValues(null, true)\n\n\t\twpm.unblockAllScripts(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t\twpm.updateGoogleConsentMode(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t}\n\n\t// jQuery(document).on(\"cmplzStatusChange\", wpm.cmplzStatusChange)\n\tdocument.addEventListener(\"cmplzStatusChange\", wpm.cmplzStatusChange)\n\t// jQuery(document).on(\"cmplz_status_change\", wpm.cmplzStatusChange)\n\tdocument.addEventListener(\"cmplz_status_change\", wpm.cmplzStatusChange)\n\n\t// Cookie Compliance by hu-manity.co (free and pro)\n\t// If visitor accepts cookies in Cookie Notice by hu-manity.co unblock the scripts (free version)\n\t// https://wordpress.org/support/topic/events-on-consent-change/#post-15202792\n\t// jQuery(document).on(\"setCookieNotice\", () => {\n\tdocument.addEventListener(\"setCookieNotice\", () => {\n\t\twpm.updateConsentCookieValues()\n\n\t\twpm.unblockAllScripts(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t\twpm.updateGoogleConsentMode(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t})\n\n\t/**\n\t * Cookie Compliance by hu-manity.co (free and pro)\n\t * If visitor accepts cookies in Cookie Notice by hu-manity.co unblock the scripts (pro version)\n\t * https://wordpress.org/support/topic/events-on-consent-change/#post-15202792\n\t * Because Cookie Notice has no documented API or event that is being triggered on consent save or update\n\t * we have to solve this by using a mutation observer.\n\t *\n\t * @type {MutationObserver}\n\t */\n\n\twpm.huObserver = new MutationObserver(mutations => {\n\t\tmutations.forEach(({addedNodes}) => {\n\t\t\t[...addedNodes]\n\t\t\t\t.forEach(node => {\n\n\t\t\t\t\tif (node.id === \"hu\") {\n\n\t\t\t\t\t\t// jQuery(\".hu-cookies-save\").on(\"click\", function () {\n\t\t\t\t\t\t// jQuery(\".hu-cookies-save\") in pure JavaScript\n\t\t\t\t\t\tdocument.querySelector(\".hu-cookies-save\").addEventListener(\"click\", () => {\n\t\t\t\t\t\t\twpm.updateConsentCookieValues()\n\t\t\t\t\t\t\twpm.unblockAllScripts(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t\t\t\t\t\t\twpm.updateGoogleConsentMode(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t})\n\t})\n\n\tif (window.hu) {\n\t\twpm.huObserver.observe(document.documentElement || document.body, {childList: true, subtree: true})\n\t}\n\n\twpm.explicitConsentStateAlreadySet = () => {\n\n\t\tif (wpmConsentValues.explicitConsentStateAlreadySet) {\n\t\t\treturn true\n\t\t} else {\n\t\t\twpmConsentValues.explicitConsentStateAlreadySet = true\n\t\t}\n\t}\n\n\n}(window.wpm = window.wpm || {}, jQuery))\n","/**\n * Register event listeners\n */\n\n// remove_from_cart event\n// jQuery('.remove_from_cart_button, .remove').on('click', function (e) {\njQuery(document).on(\"click\", \".remove_from_cart_button, .remove\", (event) => {\n\n\ttry {\n\n\t\tlet url = new URL(jQuery(event.currentTarget).attr(\"href\"))\n\t\tlet productId = wpm.getProductIdByCartItemKeyUrl(url)\n\n\t\twpm.removeProductFromCart(productId)\n\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n\n// add_to_cart event\njQuery(document).on(\"click\", \".add_to_cart_button:not(.product_type_variable), .ajax_add_to_cart, .single_add_to_cart_button\", (event) => {\n\n\ttry {\n\n\t\tlet quantity = 1,\n\t\t\tproductId\n\n\t\t// Only process on product pages\n\t\tif (wpmDataLayer.shop.page_type === \"product\") {\n\n\t\t\t// First process related and upsell products\n\t\t\tif (typeof jQuery(event.currentTarget).attr(\"href\") !== \"undefined\" && jQuery(event.currentTarget).attr(\"href\").includes(\"add-to-cart\")) {\n\n\t\t\t\tproductId = jQuery(event.currentTarget).data(\"product_id\")\n\n\t\t\t\twpm.addProductToCart(productId, quantity)\n\t\t\t}\n\n\t\t\t// If is simple product\n\t\t\tif (wpmDataLayer.shop.product_type === \"simple\") {\n\n\t\t\t\tquantity = Number(jQuery(\".input-text.qty\").val())\n\t\t\t\tif (!quantity && quantity !== 0) quantity = 1\n\t\t\t\tproductId = jQuery(event.currentTarget).val()\n\n\t\t\t\twpm.addProductToCart(productId, quantity)\n\t\t\t}\n\n\t\t\t// If is variable product or variable-subscription\n\t\t\tif ([\"variable\", \"variable-subscription\"].indexOf(wpmDataLayer.shop.product_type) >= 0) {\n\n\t\t\t\tquantity = Number(jQuery(\".input-text.qty\").val())\n\t\t\t\tif (!quantity && quantity !== 0) quantity = 1\n\t\t\t\tproductId = jQuery(\"[name='variation_id']\").val()\n\n\t\t\t\twpm.addProductToCart(productId, quantity)\n\t\t\t}\n\n\t\t\t// If is grouped product\n\t\t\tif (wpmDataLayer.shop.product_type === \"grouped\") {\n\n\t\t\t\tjQuery(\".woocommerce-grouped-product-list-item\").each((index, element) => {\n\n\t\t\t\t\tquantity = Number(jQuery(element).find(\".input-text.qty\").val())\n\t\t\t\t\tif (!quantity && quantity !== 0) quantity = 1\n\t\t\t\t\tlet classes = jQuery(element).attr(\"class\")\n\t\t\t\t\tproductId = wpm.getPostIdFromString(classes)\n\n\t\t\t\t\twpm.addProductToCart(productId, quantity)\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// If is bundle product\n\t\t\tif (wpmDataLayer.shop.product_type === \"bundle\") {\n\n\t\t\t\tquantity = Number(jQuery(\".input-text.qty\").val())\n\t\t\t\tif (!quantity && quantity !== 0) quantity = 1\n\t\t\t\tproductId = jQuery(\"input[name=add-to-cart]\").val()\n\n\t\t\t\twpm.addProductToCart(productId, quantity)\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tproductId = jQuery(event.currentTarget).data(\"product_id\")\n\t\t\twpm.addProductToCart(productId, quantity)\n\t\t}\n\n\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n\n/**\n * If someone clicks anywhere on a custom /?add-to-cart=123 link\n * trigger the add to cart event\n */\n// jQuery('a:not(.add_to_cart_button, .ajax_add_to_cart, .single_add_to_cart_button)').one('click', function (event) {\njQuery(document).one(\"click\", \"a:not(.add_to_cart_button, .ajax_add_to_cart, .single_add_to_cart_button)\", (event) => {\n\n\ttry {\n\t\tif (jQuery(event.target).closest(\"a\").attr(\"href\")) {\n\n\t\t\tlet href = jQuery(event.target).closest(\"a\").attr(\"href\")\n\n\t\t\tif (href.includes(\"add-to-cart=\")) {\n\n\t\t\t\tlet matches = href.match(/(add-to-cart=)(\\d+)/)\n\t\t\t\tif (matches) wpm.addProductToCart(matches[2], 1)\n\t\t\t}\n\t\t}\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// select_content GA UA event\n// select_item GA 4 event\n// jQuery(document).on('click', '.woocommerce-LoopProduct-link, .wc-block-grid__product, .product-small.box', function (e) {\n// jQuery('.woocommerce-LoopProduct-link, .wc-block-grid__product, .product, .product-small, .type-product').on('click', function (e) {\njQuery(document).on(\"click\", \".woocommerce-LoopProduct-link, .wc-block-grid__product, .product, .product-small, .type-product\", (event) => {\n\n\ttry {\n\n\t\t/**\n\t\t * On some pages the event fires multiple times, and on product pages\n\t\t * even on page load. Using e.stopPropagation helps to prevent this,\n\t\t * but I don't know why. We don't even have to use this, since only a real\n\t\t * product click yields a valid productId. So we filter the invalid click\n\t\t * events out later down in the code. I'll keep it that way because this is\n\t\t * the most compatible way across shops.\n\t\t *\n\t\t * e.stopPropagation();\n\t\t * */\n\n\t\tlet productId = jQuery(event.currentTarget).nextAll(\".wpmProductId:first\").data(\"id\")\n\n\t\t/**\n\t\t * On product pages, for some reason, the click event is triggered on the main product on page load.\n\t\t * In that case no ID is found. But we can discard it, since we only want to trigger the event on\n\t\t * related products, which are found below.\n\t\t */\n\n\t\tif (productId) {\n\n\t\t\tproductId = wpm.getIdBasedOndVariationsOutputSetting(productId)\n\n\t\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\t\tif (wpmDataLayer.products && wpmDataLayer.products[productId]) {\n\n\t\t\t\tlet product = wpm.getProductDetailsFormattedForEvent(productId)\n\n\t\t\t\tjQuery(document).trigger(\"wpmSelectContentGaUa\", product)\n\t\t\t\tjQuery(document).trigger(\"wpmSelectItem\", product)\n\t\t\t}\n\t\t}\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// begin_checkout event\nlet checkoutButtonClasses = [\n\t\".checkout-button\",\n\t\".cart-checkout-button\",\n\t\".button.checkout\",\n\t\".xoo-wsc-ft-btn-checkout\", // https://xootix.com/side-cart-for-woocommerce/\n\t\".elementor-button--checkout\",\n]\n\njQuery(document).one(\"click\", checkoutButtonClasses.join(\",\"), () => {\n\tjQuery(document).trigger(\"wpmBeginCheckout\")\n})\n\n\n// checkout_progress event\n// track checkout option event: entered valid billing email\njQuery(document).on(\"input\", \"#billing_email\", (event) => {\n\n\tif (wpm.isEmail(jQuery(event.currentTarget).val())) {\n\t\t// wpm.fireCheckoutOption(2);\n\t\twpm.fireCheckoutProgress(2)\n\t\twpm.emailSelected = true\n\t}\n})\n\n// track checkout option event: purchase click\njQuery(document).on(\"click\", \".wc_payment_methods\", () => {\n\n\tif (false === wpm.paymentMethodSelected) {\n\t\twpm.fireCheckoutProgress(3)\n\t}\n\n\twpm.fireCheckoutOption(3, jQuery(\"input[name='payment_method']:checked\").val())\n\twpm.paymentMethodSelected = true\n})\n\n// track checkout option event: purchase click\n// jQuery('#place_order').one('click', function () {\njQuery(document).one(\"click\", \"#place_order\", () => {\n\n\tif (false === wpm.emailSelected) {\n\t\twpm.fireCheckoutProgress(2)\n\t}\n\n\tif (false === wpm.paymentMethodSelected) {\n\t\twpm.fireCheckoutProgress(3)\n\t\twpm.fireCheckoutOption(3, jQuery(\"input[name='payment_method']:checked\").val())\n\t}\n\n\twpm.fireCheckoutProgress(4)\n})\n\n// update cart event\n// jQuery(\"[name='update_cart']\").on('click', function (e) {\njQuery(document).on(\"click\", \"[name='update_cart']\", (event) => {\n\n\ttry {\n\t\tjQuery(\".cart_item\").each((index, element) => {\n\n\t\t\tlet url = new URL(jQuery(element).find(\".product-remove\").find(\"a\").attr(\"href\"))\n\t\t\tlet productId = wpm.getProductIdByCartItemKeyUrl(url)\n\n\n\t\t\tlet quantity = jQuery(element).find(\".qty\").val()\n\n\t\t\tif (quantity === 0) {\n\t\t\t\twpm.removeProductFromCart(productId)\n\t\t\t} else if (quantity < wpmDataLayer.cart[productId].quantity) {\n\t\t\t\twpm.removeProductFromCart(productId, wpmDataLayer.cart[productId].quantity - quantity)\n\t\t\t} else if (quantity > wpmDataLayer.cart[productId].quantity) {\n\t\t\t\twpm.addProductToCart(productId, quantity - wpmDataLayer.cart[productId].quantity)\n\t\t\t}\n\t\t})\n\t} catch (e) {\n\t\tconsole.error(e)\n\t\twpm.getCartItemsFromBackend()\n\t}\n})\n\n\n// add_to_wishlist\njQuery(function () {\n\n\tjQuery(\".add_to_wishlist,.wl-add-to\").on(\"click\", event => {\n\n\t\ttry {\n\n\t\t\tlet productId\n\n\t\t\tif (jQuery(event.currentTarget).data(\"productid\")) { // for the WooCommerce wishlist plugin\n\n\t\t\t\tproductId = jQuery(event.currentTarget).data(\"productid\")\n\t\t\t} else if (jQuery(event.currentTarget).data(\"product-id\")) { // for the YITH wishlist plugin\n\n\t\t\t\tproductId = jQuery(event.currentTarget).data(\"product-id\")\n\t\t\t}\n\n\t\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\t\tlet product = wpm.getProductDetailsFormattedForEvent(productId)\n\n\n\t\t\tjQuery(document).trigger(\"wpmAddToWishlist\", product)\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t})\n})\n\njQuery(document).on(\"updated_cart_totals\", () => {\n\tjQuery(document).trigger(\"wpmViewCart\")\n})\n\n\n/**\n * Called when the user selects all the required dropdowns / attributes\n *\n * Has to be hooked after document ready !\n *\n * https://stackoverflow.com/a/27849208/4688612\n * https://stackoverflow.com/a/65065335/4688612\n */\n\njQuery(() => {\n\n\tjQuery(\".single_variation_wrap\").on(\"show_variation\", (event, variation) => {\n\n\t\ttry {\n\t\t\tlet productId = wpm.getIdBasedOndVariationsOutputSetting(variation.variation_id)\n\n\t\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\t\twpm.triggerViewItemEventPrep(productId)\n\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t})\n})\n\n\n/**\n * Called on variable products when no selection has been done yet\n * or when the visitor deselects his choice.\n *\n * Has to be hooked after document ready !\n */\n\n// jQuery(function () {\n//\n// \tjQuery(\".single_variation_wrap\").on(\"hide_variation\", function () {\n//\n// \t\ttry {\n// \t\t\tlet classes = jQuery(\"body\").attr(\"class\")\n// \t\t\tlet productId = classes.match(/(postid-)(\\d+)/)[2]\n//\n// \t\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n//\n// \t\t\t/**\n// \t\t\t * If we have a variable product with no preset,\n// \t\t\t * and variations output is enabled,\n// \t\t\t * then we send a viewItem event with the first\n// \t\t\t * variation we find for the parent.\n// \t\t\t * If variations output is disabled,\n// \t\t\t * we just send the parent ID.\n// \t\t\t *\n// \t\t\t * And if Facebook microdata is active, use the\n// \t\t\t * microdata product ID.\n// \t\t\t */\n//\n// \t\t\tif (\n// \t\t\t\t\"variable\" === wpmDataLayer.shop.product_type &&\n// \t\t\t\twpmDataLayer?.general?.variationsOutput\n// \t\t\t) {\n// \t\t\t\tfor (const [key, product] of Object.entries(wpmDataLayer.products)) {\n// \t\t\t\t\tif (\"parentId\" in product) {\n//\n// \t\t\t\t\t\tproductId = product.id\n// \t\t\t\t\t\tbreak\n// \t\t\t\t\t}\n// \t\t\t\t}\n//\n// \t\t\t\tif (wpmDataLayer?.pixels?.facebook?.microdata_product_id) {\n// \t\t\t\t\tproductId = wpmDataLayer.pixels.facebook.microdata_product_id\n// \t\t\t\t}\n// \t\t\t}\n//\n// \t\t\t// console.log(\"hmm\")\n// \t\t\twpm.triggerViewItemEventPrep(productId)\n//\n// \t\t} catch (e) {\n// \t\t\tconsole.error(e)\n// \t\t}\n// \t})\n// })\n\n// jQuery(function () {\n//\n// \tjQuery(\".single_variation_wrap\").on(\"hide_variation\", function () {\n// \t\tjQuery(document).trigger(\"wpmviewitem\")\n// \t})\n// })\n\n\n/**\n * Set up wpm events\n */\n\n// populate the wpmDataLayer with the cart items\njQuery(document).on(\"wpmLoad\", () => {\n\n\ttry {\n\t\t// When a new session is initiated there are no items in the cart,\n\t\t// so we can save the call to get the cart items\n\t\tif (wpm.doesWooCommerceCartExist()) wpm.getCartItems()\n\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// get all add-to-cart= products from backend\njQuery(document).on(\"wpmLoad\", () => {\n\n\twpmDataLayer.products = wpmDataLayer.products || {}\n\n\t// scan page for add-to-cart= links\n\tlet productIds = wpm.getAddToCartLinkProductIds()\n\n\twpm.getProductsFromBackend(productIds)\n})\n\n/**\n * Save the referrer into a cookie\n */\n\njQuery(document).on(\"wpmLoad\", () => {\n\n\t// can't use session storage as we can't read it from the server\n\tif (!wpm.getCookie(\"wpmReferrer\")) {\n\n\t\tif (document.referrer) {\n\t\t\tlet referrerUrl = new URL(document.referrer)\n\t\t\tlet referrerHostname = referrerUrl.hostname\n\n\t\t\tif (referrerHostname !== window.location.host) {\n\t\t\t\twpm.setCookie(\"wpmReferrer\", referrerHostname)\n\t\t\t}\n\t\t}\n\t}\n})\n\n\n/**\n * Create our own load event in order to better handle script flow execution when JS \"optimizers\" shuffle the code.\n */\n\njQuery(document).on(\"wpmLoad\", () => {\n\t// document.addEventListener(\"wpmLoad\", function () {\n\ttry {\n\t\tif (typeof wpmDataLayer != \"undefined\" && !wpmDataLayer?.wpmLoadFired) {\n\n\t\t\tjQuery(document).trigger(\"wpmLoadAlways\")\n\n\t\t\tif (wpmDataLayer?.shop) {\n\t\t\t\tif (\n\t\t\t\t\t\"product\" === wpmDataLayer.shop.page_type &&\n\t\t\t\t\t\"variable\" !== wpmDataLayer.shop.product_type &&\n\t\t\t\t\twpm.getMainProductIdFromProductPage()\n\t\t\t\t) {\n\t\t\t\t\tlet product = wpm.getProductDataForViewItemEvent(wpm.getMainProductIdFromProductPage())\n\t\t\t\t\tjQuery(document).trigger(\"wpmViewItem\", product)\n\t\t\t\t} else if (\"product_category\" === wpmDataLayer.shop.page_type) {\n\t\t\t\t\tjQuery(document).trigger(\"wpmCategory\")\n\t\t\t\t} else if (\"search\" === wpmDataLayer.shop.page_type) {\n\t\t\t\t\tjQuery(document).trigger(\"wpmSearch\")\n\t\t\t\t} else if (\"cart\" === wpmDataLayer.shop.page_type) {\n\t\t\t\t\tjQuery(document).trigger(\"wpmViewCart\")\n\t\t\t\t} else if (\"order_received_page\" === wpmDataLayer.shop.page_type && wpmDataLayer.order) {\n\t\t\t\t\tif (!wpm.isOrderIdStored(wpmDataLayer.order.id)) {\n\t\t\t\t\t\tjQuery(document).trigger(\"wpmOrderReceivedPage\")\n\t\t\t\t\t\twpm.writeOrderIdToStorage(wpmDataLayer.order.id)\n\t\t\t\t\t\tif (typeof wpm.acrRemoveCookie === \"function\") wpm.acrRemoveCookie()\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tjQuery(document).trigger(\"wpmEverywhereElse\")\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tjQuery(document).trigger(\"wpmEverywhereElse\")\n\t\t\t}\n\n\t\t\tif (wpmDataLayer?.user?.id && !wpm.hasLoginEventFired()) {\n\t\t\t\tjQuery(document).trigger(\"wpmLogin\")\n\t\t\t\twpm.setLoginEventFired()\n\t\t\t}\n\n\t\t\t// /**\n\t\t\t// * Load mini cart fragments into a wpm session storage key,\n\t\t\t// * after the document load event.\n\t\t\t// */\n\t\t\t// jQuery(document).ajaxSend(function (event, jqxhr, settings) {\n\t\t\t// \t// console.log('settings.url: ' + settings.url);\n\t\t\t//\n\t\t\t// \tif (settings.url.includes(\"get_refreshed_fragments\") && sessionStorage) {\n\t\t\t// \t\tif (!sessionStorage.getItem(\"wpmMiniCartActive\")) {\n\t\t\t// \t\t\tsessionStorage.setItem(\"wpmMiniCartActive\", JSON.stringify(true))\n\t\t\t// \t\t}\n\t\t\t// \t}\n\t\t\t// })\n\n\t\t\twpmDataLayer.wpmLoadFired = true\n\t\t}\n\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\njQuery(document).on(\"wpmLoad\", async () => {\n\n\tif (\n\t\twindow.sessionStorage &&\n\t\twindow.sessionStorage.getItem(\"_pmw_endpoint_available\") &&\n\t\t!JSON.parse(window.sessionStorage.getItem(\"_pmw_endpoint_available\"))\n\t) {\n\t\tconsole.error(\"Pixel Manager for WooCommerce: REST endpoint is not available. Using admin-ajax.php instead.\")\n\t}\n})\n\n\n/**\n * Load all pixels\n */\njQuery(document).on(\"wpmPreLoadPixels\", () => {\n\n\tif (wpmDataLayer?.shop?.cookie_consent_mgmt?.explicit_consent && !wpm.explicitConsentStateAlreadySet()) {\n\t\twpm.updateConsentCookieValues(null, null, true)\n\t}\n\n\tjQuery(document).trigger(\"wpmLoadPixels\", {})\n})\n\n\n/**\n * All ecommerce events\n */\n\njQuery(document).on(\"wpmAddToCart\", (event, product) => {\n\n\t/**\n\t * Prepare the payload\n\t */\n\n\tlet payload = {\n\t\tevent : \"addToCart\",\n\t\tproduct: product,\n\t}\n\n\t// If Facebook pixel is loaded, add Facebook server to server event data to the payload\n\tif (wpmDataLayer?.pixels?.facebook?.loaded) {\n\t\tpayload.facebook = {\n\t\t\tevent_name : \"AddToCart\",\n\t\t\tevent_id : wpm.getFbRandomEventId(),\n\t\t\tuser_data : wpm.getFbUserData(),\n\t\t\tevent_source_url: window.location.href,\n\t\t\tcustom_data : wpm.fbGetProductDataForCapiEvent(product),\n\t\t}\n\t}\n\n\t/**\n\t * Process the client-to-server event\n\t */\n\n\tjQuery(document).trigger(\"wpmClientSideAddToCart\", payload)\n\n\t/**\n\t * Process the server-to-server event\n\t */\n\n\t// If function wpm.isServerToServerEnabled() exists, then run it\n\tif (typeof wpm.sendEventPayloadToServer === \"function\") {\n\t\twpm.sendEventPayloadToServer(payload)\n\t}\n})\n\njQuery(document).on(\"wpmBeginCheckout\", () => {\n\n\t/**\n\t * Prepare the payload\n\t */\n\n\tlet payload = {\n\t\tevent: \"beginCheckout\",\n\t}\n\n\tif (wpmDataLayer?.pixels?.facebook?.loaded) {\n\t\tpayload.facebook = {\n\t\t\tevent_name : \"InitiateCheckout\",\n\t\t\tevent_id : wpm.getFbRandomEventId(),\n\t\t\tuser_data : wpm.getFbUserData(),\n\t\t\tevent_source_url: window.location.href,\n\t\t\tcustom_data : {},\n\t\t}\n\n\t\tif (wpmDataLayer?.cart && !jQuery.isEmptyObject(wpmDataLayer.cart)) {\n\t\t\tpayload.facebook.custom_data = {\n\t\t\t\tcontent_type: \"product\",\n\t\t\t\tcontent_ids : wpm.fbGetContentIdsFromCart(),\n\t\t\t\tvalue : wpm.getCartValue(),\n\t\t\t\tcurrency : wpmDataLayer.shop.currency,\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Process the client-to-server event\n\t */\n\n\tjQuery(document).trigger(\"wpmClientSideBeginCheckout\", payload)\n\n\t/**\n\t * Process the server-to-server event\n\t */\n\n\t// If function wpm.isServerToServerEnabled() exists, then run it\n\tif (typeof wpm.sendEventPayloadToServer === \"function\") {\n\t\twpm.sendEventPayloadToServer(payload)\n\t}\n})\n\njQuery(document).on(\"wpmAddToWishlist\", (event, product) => {\n\n\t/**\n\t * Prepare the payload\n\t */\n\n\tlet payload = {\n\t\tevent : \"addToWishlist\",\n\t\tproduct: product,\n\t}\n\n\tif (wpmDataLayer?.pixels?.facebook?.loaded) {\n\t\tpayload.facebook = {\n\t\t\tevent_name : \"AddToWishlist\",\n\t\t\tevent_id : wpm.getFbRandomEventId(),\n\t\t\tuser_data : wpm.getFbUserData(),\n\t\t\tevent_source_url: window.location.href,\n\t\t\tcustom_data : wpm.fbGetProductDataForCapiEvent(product),\n\t\t}\n\t}\n\n\t/**\n\t * Process the client-to-server event\n\t */\n\n\tjQuery(document).trigger(\"wpmClientSideAddToWishlist\", payload)\n\n\t/**\n\t * Process the server-to-server event\n\t */\n\n\t// If function wpm.isServerToServerEnabled() exists, then run it\n\tif (typeof wpm.sendEventPayloadToServer === \"function\") {\n\t\twpm.sendEventPayloadToServer(payload)\n\t}\n})\n\njQuery(document).on(\"wpmViewItem\", (event, product = null) => {\n\n\t/**\n\t * Prepare the payload\n\t */\n\n\tlet payload = {\n\t\tevent : \"viewItem\",\n\t\tproduct: product,\n\t}\n\n\tif (wpmDataLayer?.pixels?.facebook?.loaded) {\n\t\tpayload.facebook = {\n\t\t\tevent_name : \"ViewContent\",\n\t\t\tevent_id : wpm.getFbRandomEventId(),\n\t\t\tuser_data : wpm.getFbUserData(),\n\t\t\tevent_source_url: window.location.href,\n\t\t\tcustom_data : {},\n\t\t}\n\n\t\tif (product) {\n\t\t\tpayload.facebook.custom_data = wpm.fbGetProductDataForCapiEvent(product)\n\t\t}\n\t}\n\n\t/**\n\t * Process the client-to-server event\n\t */\n\n\tjQuery(document).trigger(\"wpmClientSideViewItem\", payload)\n\n\t/**\n\t * Process the server-to-server event\n\t */\n\n\t// If function wpm.isServerToServerEnabled() exists, then run it\n\tif (typeof wpm.sendEventPayloadToServer === \"function\") {\n\t\twpm.sendEventPayloadToServer(payload)\n\t}\n})\n\njQuery(document).on(\"wpmSearch\", () => {\n\n\t/**\n\t * Prepare the payload\n\t */\n\n\tlet payload = {\n\t\tevent: \"search\",\n\t}\n\n\tif (wpmDataLayer?.pixels?.facebook?.loaded) {\n\t\tpayload.facebook = {\n\t\t\tevent_name : \"Search\",\n\t\t\tevent_id : wpm.getFbRandomEventId(),\n\t\t\tuser_data : wpm.getFbUserData(),\n\t\t\tevent_source_url: window.location.href,\n\t\t\tcustom_data : {\n\t\t\t\tsearch_string: wpm.getSearchTermFromUrl(),\n\t\t\t},\n\t\t}\n\t}\n\n\t/**\n\t * Process the client-to-server event\n\t */\n\n\tjQuery(document).trigger(\"wpmClientSideSearch\", payload)\n\n\t/**\n\t * Process the server-to-server event\n\t */\n\n\t// If function wpm.isServerToServerEnabled() exists, then run it\n\tif (typeof wpm.sendEventPayloadToServer === \"function\") {\n\t\twpm.sendEventPayloadToServer(payload)\n\t}\n})\n\njQuery(document).on(\"wpmOrderReceivedPage\", () => {\n\n\t/**\n\t * Prepare the payload\n\t */\n\n\tlet payload = {\n\t\tevent: \"orderReceived\",\n\t}\n\n\tif (wpmDataLayer?.pixels?.facebook?.loaded) {\n\t\tpayload.facebook = {\n\t\t\tevent_name : \"Purchase\",\n\t\t\tevent_id : wpmDataLayer.order.id,\n\t\t\tuser_data : wpm.getFbUserData(),\n\t\t\tevent_source_url: window.location.href,\n\t\t\tcustom_data : {\n\t\t\t\tcontent_type: \"product\",\n\t\t\t\tvalue : wpmDataLayer.order.value_filtered,\n\t\t\t\tcurrency : wpmDataLayer.order.currency,\n\t\t\t\tcontent_ids : wpm.facebookContentIds(),\n\t\t\t},\n\t\t}\n\t}\n\n\t/**\n\t * Process the client-to-server event\n\t */\n\n\tjQuery(document).trigger(\"wpmClientSideOrderReceivedPage\", payload)\n\n\t/**\n\t * Process the server-to-server event\n\t */\n\n\t// ! No server-to-server event is sent for this event because it is compiled and sent from the server directly\n})\n\n\n\n\n\n","/**\n * Create a wpm namespace under which all functions are declared\n */\n\n// https://stackoverflow.com/a/5947280/4688612\n\n(function (wpm, $, undefined) {\n\n\tconst wpmDeduper = {\n\t\tkeyName : \"_wpm_order_ids\",\n\t\tcookieExpiresDays: 365,\n\t}\n\n\tconst wpmRestSettings = {\n\t\t// cookiesAvailable : '_wpm_cookies_are_available',\n\t\tcookiePmwRestEndpointAvailable: \"_pmw_endpoint_available\",\n\t\trestEndpointPost : \"pmw/v1/test/post/\",\n\t\trestFails : 0,\n\t\trestFailsThreshold : 10,\n\t}\n\n\twpm.emailSelected = false\n\twpm.paymentMethodSelected = false\n\n\t// wpm.checkIfCookiesAvailable = function () {\n\t//\n\t// // read the cookie if previously set, if it is return true, otherwise continue\n\t// if (wpm.getCookie(wpmRestSettings.cookiesAvailable)) {\n\t// return true;\n\t// }\n\t//\n\t// // set the cookie for the session\n\t// Cookies.set(wpmRestSettings.cookiesAvailable, true);\n\t//\n\t// // read cookie, true if ok, false if not ok\n\t// return !!wpm.getCookie(wpmRestSettings.cookiesAvailable);\n\t// }\n\n\twpm.useRestEndpoint = () => {\n\n\t\t// only if sessionStorage is available\n\n\t\t// only if REST API endpoint is generally accessible\n\t\t// check in sessionStorage if we checked before and return answer\n\t\t// otherwise check if the endpoint is available, save answer in sessionStorage and return answer\n\n\t\t// only if not too many REST API errors happened\n\n\t\treturn wpm.isSessionStorageAvailable() &&\n\t\t\twpm.isRestEndpointAvailable() &&\n\t\t\twpm.isBelowRestErrorThreshold()\n\t}\n\n\twpm.isBelowRestErrorThreshold = () => window.sessionStorage.getItem(wpmRestSettings.restFails) <= wpmRestSettings.restFailsThreshold\n\n\twpm.isRestEndpointAvailable = async () => {\n\n\t\tif (window.sessionStorage.getItem(wpmRestSettings.cookiePmwRestEndpointAvailable)) {\n\t\t\treturn JSON.parse(window.sessionStorage.getItem(wpmRestSettings.cookiePmwRestEndpointAvailable))\n\t\t} else {\n\t\t\treturn await wpm.testEndpoint()\n\t\t}\n\t}\n\n\twpm.isSessionStorageAvailable = () => !!window.sessionStorage\n\n\t// Test the endpoint by sending a POST request\n\twpm.testEndpoint = async (\n\t\turl = wpm.root + wpmRestSettings.restEndpointPost,\n\t\tcookieName = wpmRestSettings.cookiePmwRestEndpointAvailable,\n\t) => {\n\n\t\tlet response = await fetch(url, {\n\t\t\tmethod : \"POST\",\n\t\t\tmode : \"cors\",\n\t\t\tcache : \"no-cache\",\n\t\t\tkeepalive: true,\n\t\t})\n\n\t\tif (response.status === 200) {\n\t\t\twindow.sessionStorage.setItem(cookieName, JSON.stringify(true))\n\t\t\treturn true\n\t\t} else if (response.status === 404) {\n\t\t\twindow.sessionStorage.setItem(cookieName, JSON.stringify(false))\n\t\t\treturn false\n\t\t} else if (response.status === 0) {\n\t\t\twindow.sessionStorage.setItem(cookieName, JSON.stringify(false))\n\t\t\treturn false\n\t\t}\n\t}\n\n\twpm.isWpmRestEndpointAvailable = (cookieName = wpmRestSettings.cookiePmwRestEndpointAvailable) => !!wpm.getCookie(cookieName)\n\n\twpm.writeOrderIdToStorage = (orderId, source = \"thankyou_page\", expireDays = 365) => {\n\n\t\t// save the order ID in the browser storage\n\n\t\tif (!window.Storage) {\n\t\t\tlet expiresDate = new Date()\n\t\t\texpiresDate.setDate(expiresDate.getDate() + wpmDeduper.cookieExpiresDays)\n\n\t\t\tlet ids = []\n\t\t\tif (checkCookie()) {\n\t\t\t\tids = JSON.parse(wpm.getCookie(wpmDeduper.keyName))\n\t\t\t}\n\n\t\t\tif (!ids.includes(orderId)) {\n\t\t\t\tids.push(orderId)\n\t\t\t\tdocument.cookie = wpmDeduper.keyName + \"=\" + JSON.stringify(ids) + \";expires=\" + expiresDate.toUTCString()\n\t\t\t}\n\n\t\t} else {\n\t\t\tif (localStorage.getItem(wpmDeduper.keyName) === null) {\n\t\t\t\tlet ids = []\n\t\t\t\tids.push(orderId)\n\t\t\t\twindow.localStorage.setItem(wpmDeduper.keyName, JSON.stringify(ids))\n\n\t\t\t} else {\n\t\t\t\tlet ids = JSON.parse(localStorage.getItem(wpmDeduper.keyName))\n\t\t\t\tif (!ids.includes(orderId)) {\n\t\t\t\t\tids.push(orderId)\n\t\t\t\t\twindow.localStorage.setItem(wpmDeduper.keyName, JSON.stringify(ids))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (typeof wpm.storeOrderIdOnServer === \"function\" && wpmDataLayer.orderDeduplication) {\n\t\t\twpm.storeOrderIdOnServer(orderId, source)\n\t\t}\n\t}\n\n\tfunction checkCookie() {\n\t\tlet key = wpm.getCookie(wpmDeduper.keyName)\n\t\treturn key !== \"\"\n\t}\n\n\twpm.isOrderIdStored = orderId => {\n\n\t\tif (wpmDataLayer.orderDeduplication) {\n\n\t\t\tif (!window.Storage) {\n\n\t\t\t\tif (checkCookie()) {\n\t\t\t\t\tlet ids = JSON.parse(wpm.getCookie(wpmDeduper.keyName))\n\t\t\t\t\treturn ids.includes(orderId)\n\t\t\t\t} else {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (localStorage.getItem(wpmDeduper.keyName) !== null) {\n\t\t\t\t\tlet ids = JSON.parse(localStorage.getItem(wpmDeduper.keyName))\n\t\t\t\t\treturn ids.includes(orderId)\n\t\t\t\t} else {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.log(\"order duplication prevention: off\")\n\t\t\treturn false\n\t\t}\n\t}\n\n\twpm.isEmail = email => {\n\n\t\t// https://emailregex.com/\n\n\t\tlet regex = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n\n\t\treturn regex.test(email)\n\t}\n\n\twpm.removeProductFromCart = (productId, quantityToRemove = null) => {\n\n\t\ttry {\n\n\t\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\t\tproductId = wpm.getIdBasedOndVariationsOutputSetting(productId)\n\n\t\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\t\tlet quantity\n\n\t\t\tif (quantityToRemove == null) {\n\t\t\t\tquantity = wpmDataLayer.cart[productId].quantity\n\t\t\t} else {\n\t\t\t\tquantity = quantityToRemove\n\t\t\t}\n\n\t\t\tif (wpmDataLayer.cart[productId]) {\n\n\t\t\t\tlet product = wpm.getProductDetailsFormattedForEvent(productId, quantity)\n\n\t\t\t\tjQuery(document).trigger(\"wpmRemoveFromCart\", product)\n\n\t\t\t\tif (quantityToRemove == null || wpmDataLayer.cart[productId].quantity === quantityToRemove) {\n\n\t\t\t\t\tdelete wpmDataLayer.cart[productId]\n\n\t\t\t\t\tif (sessionStorage) sessionStorage.setItem(\"wpmDataLayerCart\", JSON.stringify(wpmDataLayer.cart))\n\t\t\t\t} else {\n\n\t\t\t\t\twpmDataLayer.cart[productId].quantity = wpmDataLayer.cart[productId].quantity - quantity\n\n\t\t\t\t\tif (sessionStorage) sessionStorage.setItem(\"wpmDataLayerCart\", JSON.stringify(wpmDataLayer.cart))\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t\t// console.log('getting cart from back end');\n\t\t\t// wpm.getCartItemsFromBackend();\n\t\t\t// console.log('getting cart from back end done');\n\t\t}\n\t}\n\n\twpm.getIdBasedOndVariationsOutputSetting = productId => {\n\n\t\ttry {\n\t\t\tif (wpmDataLayer?.general?.variationsOutput) {\n\n\t\t\t\treturn productId\n\t\t\t} else {\n\t\t\t\tif (wpmDataLayer.products[productId].isVariation) {\n\n\t\t\t\t\treturn wpmDataLayer.products[productId].parentId\n\t\t\t\t} else {\n\n\t\t\t\t\treturn productId\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\t// add_to_cart\n\twpm.addProductToCart = (productId, quantity) => {\n\n\t\ttry {\n\n\t\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\t\tproductId = wpm.getIdBasedOndVariationsOutputSetting(productId)\n\n\t\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\t\tif (wpmDataLayer?.products[productId]) {\n\n\t\t\t\tlet product = wpm.getProductDetailsFormattedForEvent(productId, quantity)\n\n\t\t\t\tjQuery(document).trigger(\"wpmAddToCart\", product)\n\n\t\t\t\t// add product to cart wpmDataLayer['cart']\n\n\t\t\t\t// if the product already exists in the object, only add the additional quantity\n\t\t\t\t// otherwise create that product object in the wpmDataLayer['cart']\n\t\t\t\tif (wpmDataLayer?.cart[productId]) {\n\n\t\t\t\t\twpmDataLayer.cart[productId].quantity = wpmDataLayer.cart[productId].quantity + quantity\n\t\t\t\t} else {\n\n\t\t\t\t\tif (!(\"cart\" in wpmDataLayer)) wpmDataLayer.cart = {}\n\n\t\t\t\t\twpmDataLayer.cart[productId] = wpm.getProductDetailsFormattedForEvent(productId, quantity)\n\t\t\t\t}\n\n\t\t\t\tif (sessionStorage) sessionStorage.setItem(\"wpmDataLayerCart\", JSON.stringify(wpmDataLayer.cart))\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\n\t\t\t// fallback if wpmDataLayer.cart and wpmDataLayer.products got out of sync in case cart caching has an issue\n\t\t\twpm.getCartItemsFromBackend()\n\t\t}\n\t}\n\n\twpm.getCartItems = () => {\n\n\t\tif (sessionStorage) {\n\t\t\tif (!sessionStorage.getItem(\"wpmDataLayerCart\") || wpmDataLayer.shop.page_type === \"order_received_page\") {\n\t\t\t\tsessionStorage.setItem(\"wpmDataLayerCart\", JSON.stringify({}))\n\t\t\t} else {\n\t\t\t\twpm.saveCartObjectToDataLayer(JSON.parse(sessionStorage.getItem(\"wpmDataLayerCart\")))\n\t\t\t}\n\t\t} else {\n\t\t\twpm.getCartItemsFromBackend()\n\t\t}\n\t}\n\n\t// get all cart items from the backend\n\twpm.getCartItemsFromBackend = () => {\n\t\ttry {\n\n\t\t\t/**\n\t\t\t * Can't use a REST API endpoint, as the cart session will not be loaded if the\n\t\t\t * endpoint is called.\n\t\t\t *\n\t\t\t * https://wordpress.org/support/topic/wc-cart-is-null-in-custom-rest-api/#post-11442843\n\t\t\t */\n\n\t\t\t/**\n\t\t\t * Get the cart items from the backend the data object using fetch API\n\t\t\t * and log success or error messages\n\t\t\t * and url encoded data\n\t\t\t */\n\t\t\tfetch(wpm.ajax_url, {\n\t\t\t\tmethod : \"POST\",\n\t\t\t\tcache : \"no-cache\",\n\t\t\t\tbody : new URLSearchParams({action: \"pmw_get_cart_items\"}),\n\t\t\t\tkeepalive: true,\n\t\t\t})\n\t\t\t\t.then(response => {\n\t\t\t\t\tif (response.ok) {\n\t\t\t\t\t\treturn response.json()\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow Error(\"Error getting cart items from backend\")\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.then(data => {\n\n\t\t\t\t\tif (data.success) {\n\n\t\t\t\t\t\tif (!data.data[\"cart\"]) data.data[\"cart\"] = {}\n\n\t\t\t\t\t\twpm.saveCartObjectToDataLayer(data.data[\"cart\"])\n\n\t\t\t\t\t\tif (sessionStorage) sessionStorage.setItem(\"wpmDataLayerCart\", JSON.stringify(data.data[\"cart\"]))\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow Error(\"Error getting cart items from backend\")\n\t\t\t\t\t}\n\t\t\t\t})\n\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\t// get productIds from the backend\n\twpm.getProductsFromBackend = async productIds => {\n\n\t\tif (wpmDataLayer?.products) {\n\t\t\t// reduce productIds by products already in the dataLayer\n\t\t\tproductIds = productIds.filter(item => !wpmDataLayer.products.hasOwnProperty(item))\n\t\t}\n\n\t\t// if no products IDs are in the object, don't try to get anything from the server\n\t\tif (!productIds || productIds.length === 0) return\n\n\t\ttry {\n\n\t\t\tlet response\n\n\t\t\tif (await wpm.isRestEndpointAvailable()) {\n\t\t\t\tresponse = await fetch(wpm.root + \"pmw/v1/products/\", {\n\t\t\t\t\tmethod : \"POST\",\n\t\t\t\t\tcache : \"no-cache\",\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\t\t},\n\t\t\t\t\tbody : JSON.stringify(productIds),\n\t\t\t\t})\n\t\t\t} else {\n\n\t\t\t\t// Get the product details from the backend the data object using fetch API\n\t\t\t\t// and log success or error messages\n\t\t\t\t// and url encoded data\n\t\t\t\tresponse = await fetch(wpm.ajax_url, {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\tcache : \"no-cache\",\n\t\t\t\t\tbody : new URLSearchParams({\n\t\t\t\t\t\taction : \"pmw_get_product_ids\",\n\t\t\t\t\t\tproductIds: productIds,\n\t\t\t\t\t}),\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (response.ok) {\n\t\t\t\tlet responseData = await response.json()\n\t\t\t\tif (responseData.success) {\n\t\t\t\t\twpmDataLayer.products = Object.assign({}, wpmDataLayer.products, responseData.data)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconsole.error(\"Error getting products from backend\")\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\n\t\treturn true\n\t}\n\n\twpm.saveCartObjectToDataLayer = cartObject => {\n\n\t\twpmDataLayer.cart = cartObject\n\t\twpmDataLayer.products = Object.assign({}, wpmDataLayer.products, cartObject)\n\t}\n\n\twpm.triggerViewItemEventPrep = async productId => {\n\n\t\tif (wpmDataLayer.products && wpmDataLayer.products[productId]) {\n\n\t\t\twpm.triggerViewItemEvent(productId)\n\t\t} else {\n\t\t\tawait wpm.getProductsFromBackend([productId])\n\t\t\twpm.triggerViewItemEvent(productId)\n\t\t}\n\t}\n\n\twpm.triggerViewItemEvent = productId => {\n\n\t\tlet product = wpm.getProductDetailsFormattedForEvent(productId)\n\n\t\tjQuery(document).trigger(\"wpmViewItem\", product)\n\t}\n\n\twpm.triggerViewItemEventNoProduct = () => {\n\t\tjQuery(document).trigger(\"wpmViewItem\")\n\t}\n\n\twpm.fireCheckoutOption = (step, checkout_option = null, value = null) => {\n\n\t\tlet data = {\n\t\t\tstep : step,\n\t\t\tcheckout_option: checkout_option,\n\t\t\tvalue : value,\n\t\t}\n\n\t\tjQuery(document).trigger(\"wpmFireCheckoutOption\", data)\n\t}\n\n\twpm.fireCheckoutProgress = step => {\n\n\t\tlet data = {\n\t\t\tstep: step,\n\t\t}\n\n\t\tjQuery(document).trigger(\"wpmFireCheckoutProgress\", data)\n\t}\n\n\twpm.getPostIdFromString = string => {\n\n\t\ttry {\n\t\t\treturn string.match(/(post-)(\\d+)/)[2]\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.triggerViewItemList = productId => {\n\n\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\tproductId = wpm.getIdBasedOndVariationsOutputSetting(productId)\n\n\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\tjQuery(document).trigger(\"wpmViewItemList\", wpm.getProductDataForViewItemEvent(productId))\n\t}\n\n\twpm.getProductDataForViewItemEvent = productId => {\n\n\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\ttry {\n\t\t\tif (wpmDataLayer.products[productId]) {\n\n\t\t\t\treturn wpm.getProductDetailsFormattedForEvent(productId)\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.getMainProductIdFromProductPage = () => {\n\n\t\ttry {\n\t\t\tif ([\"simple\", \"variable\", \"grouped\", \"composite\", \"bundle\"].indexOf(wpmDataLayer.shop.product_type) >= 0) {\n\t\t\t\treturn jQuery(\".wpmProductId:first\").data(\"id\")\n\t\t\t} else {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.viewItemListTriggerTestMode = target => {\n\n\t\tjQuery(target).css({\"position\": \"relative\"})\n\t\tjQuery(target).append(\"<div id=\\\"viewItemListTriggerOverlay\\\"></div>\")\n\t\tjQuery(target).find(\"#viewItemListTriggerOverlay\").css({\n\t\t\t\"z-index\" : \"10\",\n\t\t\t\"display\" : \"block\",\n\t\t\t\"position\" : \"absolute\",\n\t\t\t\"height\" : \"100%\",\n\t\t\t\"top\" : \"0\",\n\t\t\t\"left\" : \"0\",\n\t\t\t\"right\" : \"0\",\n\t\t\t\"opacity\" : wpmDataLayer.viewItemListTrigger.opacity,\n\t\t\t\"background-color\": wpmDataLayer.viewItemListTrigger.backgroundColor,\n\t\t})\n\t}\n\n\twpm.getSearchTermFromUrl = () => {\n\n\t\ttry {\n\t\t\tlet urlParameters = new URLSearchParams(window.location.search)\n\t\t\treturn urlParameters.get(\"s\")\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\t// we need this to track timeouts for intersection observers\n\tlet ioTimeouts = {}\n\n\twpm.observerCallback = (entries, observer) => {\n\n\t\tentries.forEach((entry) => {\n\n\t\t\ttry {\n\t\t\t\tlet productId\n\n\t\t\t\tlet elementId = jQuery(entry.target).data(\"ioid\")\n\n\t\t\t\t// Get the productId from next element, if wpmProductId is a sibling, like in Gutenberg blocks\n\t\t\t\t// otherwise go search in children, like in regular WC loop items\n\t\t\t\tif (jQuery(entry.target).next(\".wpmProductId\").length) {\n\t\t\t\t\t// console.log('test 1');\n\t\t\t\t\tproductId = jQuery(entry.target).next(\".wpmProductId\").data(\"id\")\n\t\t\t\t} else {\n\t\t\t\t\tproductId = jQuery(entry.target).find(\".wpmProductId\").data(\"id\")\n\t\t\t\t}\n\n\n\t\t\t\tif (!productId) throw Error(\"wpmProductId element not found\")\n\n\t\t\t\tif (entry.isIntersecting) {\n\n\t\t\t\t\tioTimeouts[elementId] = setTimeout(() => {\n\n\t\t\t\t\t\twpm.triggerViewItemList(productId)\n\t\t\t\t\t\tif (wpmDataLayer.viewItemListTrigger.testMode) wpm.viewItemListTriggerTestMode(entry.target)\n\t\t\t\t\t\tif (wpmDataLayer.viewItemListTrigger.repeat === false) observer.unobserve(entry.target)\n\t\t\t\t\t}, wpmDataLayer.viewItemListTrigger.timeout)\n\n\t\t\t\t} else {\n\n\t\t\t\t\tclearTimeout(ioTimeouts[elementId])\n\t\t\t\t\tif (wpmDataLayer.viewItemListTrigger.testMode) jQuery(entry.target).find(\"#viewItemListTriggerOverlay\").remove()\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(e)\n\t\t\t}\n\t\t})\n\t}\n\n\t// fire view_item_list only on products that have become visible\n\tlet io\n\tlet ioid = 0\n\tlet allIoElementsToWatch\n\n\tlet getAllElementsToWatch = () => {\n\n\t\tallIoElementsToWatch = jQuery(\".wpmProductId\")\n\t\t\t.map(function (i, elem) {\n\n\t\t\t\tif (\n\t\t\t\t\tjQuery(elem).parent().hasClass(\"type-product\") ||\n\t\t\t\t\tjQuery(elem).parent().hasClass(\"product\") ||\n\t\t\t\t\tjQuery(elem).parent().hasClass(\"product-item-inner\")\n\t\t\t\t) {\n\t\t\t\t\treturn jQuery(elem).parent()\n\t\t\t\t} else if (\n\t\t\t\t\tjQuery(elem).prev().hasClass(\"wc-block-grid__product\") ||\n\t\t\t\t\tjQuery(elem).prev().hasClass(\"product\") ||\n\t\t\t\t\tjQuery(elem).prev().hasClass(\"product-small\") ||\n\t\t\t\t\tjQuery(elem).prev().hasClass(\"woocommerce-LoopProduct-link\")\n\t\t\t\t) {\n\t\t\t\t\treturn jQuery(this).prev()\n\t\t\t\t} else if (jQuery(elem).closest(\".product\").length) {\n\t\t\t\t\treturn jQuery(elem).closest(\".product\")\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\twpm.startIntersectionObserverToWatch = () => {\n\n\t\ttry {\n\t\t\t// enable view_item_list test mode from browser\n\t\t\tif (wpm.urlHasParameter(\"vildemomode\")) wpmDataLayer.viewItemListTrigger.testMode = true\n\n\t\t\t// set up intersection observer\n\t\t\tio = new IntersectionObserver(wpm.observerCallback, {\n\t\t\t\tthreshold: wpmDataLayer.viewItemListTrigger.threshold,\n\t\t\t})\n\n\t\t\tgetAllElementsToWatch()\n\n\t\t\tallIoElementsToWatch.each((i, elem) => {\n\n\t\t\t\tjQuery(elem[0]).data(\"ioid\", ioid++)\n\n\t\t\t\tio.observe(elem[0])\n\t\t\t})\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\t// watch DOM for new lazy loaded products and add them to the intersection observer\n\twpm.startProductsMutationObserverToWatch = () => {\n\n\t\ttry {\n\t\t\t// Pass in the target node, as well as the observer options\n\n\t\t\t// selects the most common parent node\n\t\t\t// https://stackoverflow.com/a/7648323/4688612\n\t\t\tlet productsNode = jQuery(\".wpmProductId:eq(0)\").parents().has(jQuery(\".wpmProductId:eq(1)\").parents()).first()\n\n\t\t\tif (productsNode.length) {\n\t\t\t\tproductsMutationObserver.observe(productsNode[0], {\n\t\t\t\t\tattributes : true,\n\t\t\t\t\tchildList : true,\n\t\t\t\t\tcharacterData: true,\n\t\t\t\t})\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\t// Create an observer instance\n\tlet productsMutationObserver = new MutationObserver(mutations => {\n\n\t\tmutations.forEach(mutation => {\n\t\t\tlet newNodes = mutation.addedNodes // DOM NodeList\n\t\t\tif (newNodes !== null) { // If there are new nodes added\n\t\t\t\tlet nodes = jQuery(newNodes) // jQuery set\n\t\t\t\tnodes.each(function () {\n\t\t\t\t\tif (\n\t\t\t\t\t\tjQuery(this).hasClass(\"type-product\") ||\n\t\t\t\t\t\tjQuery(this).hasClass(\"product-small\") ||\n\t\t\t\t\t\tjQuery(this).hasClass(\"wc-block-grid__product\")\n\t\t\t\t\t) {\n\t\t\t\t\t\t// check if the node has a child or sibling wpmProductId\n\t\t\t\t\t\t// if yes add it to the intersectionObserver\n\t\t\t\t\t\tif (hasWpmProductIdElement(this)) {\n\t\t\t\t\t\t\tjQuery(this).data(\"ioid\", ioid++)\n\t\t\t\t\t\t\tio.observe(this)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t})\n\n\tlet hasWpmProductIdElement = elem =>\n\t\t!!(jQuery(elem).find(\".wpmProductId\").length ||\n\t\t\tjQuery(elem).siblings(\".wpmProductId\").length)\n\n\twpm.setCookie = (cookieName, cookieValue = \"\", expiryDays = null) => {\n\n\t\tif (expiryDays) {\n\n\t\t\tlet d = new Date()\n\t\t\td.setTime(d.getTime() + (expiryDays * 24 * 60 * 60 * 1000))\n\t\t\tlet expires = \"expires=\" + d.toUTCString()\n\t\t\tdocument.cookie = cookieName + \"=\" + cookieValue + \";\" + expires + \";path=/\"\n\t\t} else {\n\t\t\tdocument.cookie = cookieName + \"=\" + cookieValue + \";path=/\"\n\t\t}\n\t}\n\n\twpm.getCookie = cookieName => {\n\n\t\tlet name = cookieName + \"=\"\n\t\tlet decodedCookie = decodeURIComponent(document.cookie)\n\t\tlet ca = decodedCookie.split(\";\")\n\n\t\tfor (let i = 0; i < ca.length; i++) {\n\n\t\t\tlet c = ca[i]\n\n\t\t\twhile (c.charAt(0) == \" \") {\n\t\t\t\tc = c.substring(1)\n\t\t\t}\n\n\t\t\tif (c.indexOf(name) == 0) {\n\t\t\t\treturn c.substring(name.length, c.length)\n\t\t\t}\n\t\t}\n\n\t\treturn \"\"\n\t}\n\n\twpm.deleteCookie = cookieName => {\n\t\twpm.setCookie(cookieName, \"\", -1)\n\t}\n\n\twpm.getWpmSessionData = () => {\n\n\t\tif (window.sessionStorage) {\n\n\t\t\tlet data = window.sessionStorage.getItem(\"_wpm\")\n\n\t\t\tif (data !== null) {\n\t\t\t\treturn JSON.parse(data)\n\t\t\t} else {\n\t\t\t\treturn {}\n\t\t\t}\n\t\t} else {\n\t\t\treturn {}\n\t\t}\n\t}\n\n\twpm.setWpmSessionData = data => {\n\t\tif (window.sessionStorage) {\n\t\t\twindow.sessionStorage.setItem(\"_wpm\", JSON.stringify(data))\n\t\t}\n\t}\n\n\twpm.storeOrderIdOnServer = async (orderId, source) => {\n\n\t\ttry {\n\n\t\t\tlet response\n\n\t\t\tif (await wpm.isRestEndpointAvailable()) {\n\n\t\t\t\tresponse = await fetch(wpm.root + \"pmw/v1/pixels-fired/\", {\n\t\t\t\t\tmethod : \"POST\",\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\t\t},\n\t\t\t\t\tbody : JSON.stringify({\n\t\t\t\t\t\torder_id: orderId,\n\t\t\t\t\t\tsource: source\n\t\t\t\t\t}),\n\t\t\t\t\tkeepalive: true,\n\t\t\t\t\tcache\t: \"no-cache\",\n\t\t\t\t})\n\n\t\t\t} else {\n\t\t\t\t// save the state in the database\n\n\t\t\t\t// Send the data object with ajax request\n\t\t\t\t// and log success or error using fetch API and url encoded\n\t\t\t\tresponse = await fetch(wpm.ajax_url, {\n\t\t\t\t\tmethod : \"POST\",\n\t\t\t\t\tbody : new URLSearchParams({\n\t\t\t\t\t\taction : \"pmw_purchase_pixels_fired\",\n\t\t\t\t\t\torder_id: orderId,\n\t\t\t\t\t\tsource : source,\n\t\t\t\t\t}),\n\t\t\t\t\tkeepalive: true,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (response.ok) {\n\t\t\t\tconsole.log(\"wpm.storeOrderIdOnServer success\")\n\t\t\t} else {\n\t\t\t\tconsole.error(\"wpm.storeOrderIdOnServer error\")\n\t\t\t}\n\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.getProductIdByCartItemKeyUrl = url => {\n\n\t\tlet searchParams = new URLSearchParams(url.search)\n\t\tlet cartItemKey = searchParams.get(\"remove_item\")\n\n\t\tlet productId\n\n\t\tif (wpmDataLayer.cartItemKeys[cartItemKey][\"variation_id\"] === 0) {\n\t\t\tproductId = wpmDataLayer.cartItemKeys[cartItemKey][\"product_id\"]\n\t\t} else {\n\t\t\tproductId = wpmDataLayer.cartItemKeys[cartItemKey][\"variation_id\"]\n\t\t}\n\n\t\treturn productId\n\t}\n\n\twpm.getAddToCartLinkProductIds = () =>\n\t\tjQuery(\"a\").map(function () {\n\t\t\tlet href = jQuery(this).attr(\"href\")\n\n\t\t\tif (href && href.includes(\"?add-to-cart=\")) {\n\t\t\t\tlet matches = href.match(/(add-to-cart=)(\\d+)/)\n\t\t\t\tif (matches) return matches[2]\n\t\t\t}\n\t\t}).get()\n\n\twpm.getProductDetailsFormattedForEvent = (productId, quantity = 1) => {\n\n\t\tlet product = {\n\t\t\tid : productId.toString(),\n\t\t\tdyn_r_ids : wpmDataLayer.products[productId].dyn_r_ids,\n\t\t\tname : wpmDataLayer.products[productId].name,\n\t\t\tlist_name : wpmDataLayer.shop.list_name,\n\t\t\tbrand : wpmDataLayer.products[productId].brand,\n\t\t\tcategory : wpmDataLayer.products[productId].category,\n\t\t\tvariant : wpmDataLayer.products[productId].variant,\n\t\t\tlist_position: wpmDataLayer.products[productId].position,\n\t\t\tquantity : quantity,\n\t\t\tprice : wpmDataLayer.products[productId].price,\n\t\t\tcurrency : wpmDataLayer.shop.currency,\n\t\t\tisVariable : wpmDataLayer.products[productId].isVariable,\n\t\t\tisVariation : wpmDataLayer.products[productId].isVariation,\n\t\t\tparentId : wpmDataLayer.products[productId].parentId,\n\t\t}\n\n\t\tif (product.isVariation) product[\"parentId_dyn_r_ids\"] = wpmDataLayer.products[productId].parentId_dyn_r_ids\n\n\t\treturn product\n\t}\n\n\twpm.setReferrerToCookie = () => {\n\n\t\t// can't use session storage as we can't read it from the server\n\t\tif (!wpm.getCookie(\"wpmReferrer\")) {\n\t\t\twpm.setCookie(\"wpmReferrer\", document.referrer)\n\t\t}\n\t}\n\n\twpm.getReferrerFromCookie = () => {\n\n\t\tif (wpm.getCookie(\"wpmReferrer\")) {\n\t\t\treturn wpm.getCookie(\"wpmReferrer\")\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t}\n\n\twpm.getClidFromBrowser = (clidId = \"gclid\") => {\n\n\t\tlet clidCookieId\n\n\t\tclidCookieId = {\n\t\t\tgclid: \"_gcl_aw\",\n\t\t\tdclid: \"_gcl_dc\",\n\t\t}\n\n\t\tif (wpm.getCookie(clidCookieId[clidId])) {\n\n\t\t\tlet clidCookie = wpm.getCookie(clidCookieId[clidId])\n\t\t\tlet matches = clidCookie.match(/(GCL.[\\d]*.)(.*)/)\n\t\t\treturn matches[2]\n\t\t} else {\n\t\t\treturn \"\"\n\t\t}\n\t}\n\n\twpm.getUserAgent = () => navigator.userAgent\n\n\twpm.getViewPort = () => ({\n\t\twidth : Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0),\n\t\theight: Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0),\n\t})\n\n\n\twpm.version = () => {\n\t\tconsole.log(wpmDataLayer.version)\n\t}\n\n\t// https://api.jquery.com/jquery.getscript/\n\twpm.loadScriptAndCacheIt = url => {\n\n\t\t// Get and load the script using fetch API, if possible from cache, and return it without using eval\n\t\treturn fetch(url, {\n\t\t\tmethod : \"GET\",\n\t\t\tcache : \"default\",\n\t\t\tkeepalive: true,\n\t\t})\n\t\t\t.then(response => {\n\t\t\t\tif (response.ok) {\n\t\t\t\t\t// console.log(\"response\", response)\n\t\t\t\t\treturn response.text()\n\t\t\t\t\t// console.log(\"wpm.loadScriptAndCacheIt success: \" + url)\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(\"Network response was not ok: \" + url)\n\t\t\t\t}\n\t\t\t})\n\t\t\t.then(script => {\n\t\t\t\t// Execute the script\n\t\t\t\t// console.error(\"executing script: \" + script)\n\t\t\t\teval(script)\n\t\t\t\t// console.log(\"executed script: \" + script)\n\t\t\t})\n\t\t\t.catch(e => {\n\t\t\t\tconsole.error(e)\n\t\t\t})\n\t}\n\n\twpm.getOrderItemPrice = orderItem => (orderItem.total + orderItem.total_tax) / orderItem.quantity\n\n\twpm.hasLoginEventFired = () => {\n\t\tlet data = wpm.getWpmSessionData()\n\t\treturn data?.loginEventFired\n\t}\n\n\twpm.setLoginEventFired = () => {\n\t\tlet data = wpm.getWpmSessionData()\n\t\tdata[\"loginEventFired\"] = true\n\t\twpm.setWpmSessionData(data)\n\t}\n\n\twpm.wpmDataLayerExists = () => new Promise(resolve => {\n\t\t(function waitForVar() {\n\t\t\tif (typeof wpmDataLayer !== \"undefined\") return resolve()\n\t\t\tsetTimeout(waitForVar, 50)\n\t\t})()\n\t})\n\n\twpm.jQueryExists = () => new Promise(resolve => {\n\t\t(function waitForjQuery() {\n\t\t\tif (typeof jQuery !== \"undefined\") return resolve()\n\t\t\tsetTimeout(waitForjQuery, 100)\n\t\t})()\n\t})\n\n\twpm.pageLoaded = () => new Promise(resolve => {\n\t\t(function waitForVar() {\n\t\t\tif (\"complete\" === document.readyState) return resolve()\n\t\t\tsetTimeout(waitForVar, 50)\n\t\t})()\n\t})\n\n\twpm.pageReady = () => {\n\t\treturn new Promise(resolve => {\n\t\t\t(function waitForVar() {\n\t\t\t\tif (\"interactive\" === document.readyState || \"complete\" === document.readyState) return resolve()\n\t\t\t\tsetTimeout(waitForVar, 50)\n\t\t\t})()\n\t\t})\n\t}\n\n\twpm.isMiniCartActive = () => {\n\t\tif (window.sessionStorage) {\n\t\t\tfor (const [key, value] of Object.entries(window.sessionStorage)) {\n\t\t\t\tif (key.includes(\"wc_fragments\")) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\n\twpm.doesWooCommerceCartExist = () => document.cookie.includes(\"woocommerce_items_in_cart\")\n\n\twpm.urlHasParameter = parameter => {\n\t\tlet urlParams = new URLSearchParams(window.location.search)\n\t\treturn urlParams.has(parameter)\n\t}\n\n\t// https://stackoverflow.com/a/60606893/4688612\n\twpm.hashAsync = (algo, str) => {\n\t\treturn crypto.subtle.digest(algo, new TextEncoder(\"utf-8\").encode(str)).then(buf => {\n\t\t\treturn Array.prototype.map.call(new Uint8Array(buf), x => ((\"00\" + x.toString(16)).slice(-2))).join(\"\")\n\t\t})\n\t}\n\n\twpm.getCartValue = () => {\n\n\t\tlet value = 0\n\n\t\tif (wpmDataLayer?.cart) {\n\n\t\t\tfor (const key in wpmDataLayer.cart) {\n\t\t\t\t// content_ids.push(wpmDataLayer.products[key].dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type])\n\n\t\t\t\tlet product = wpmDataLayer.cart[key]\n\n\t\t\t\tvalue += product.quantity * product.price\n\t\t\t}\n\t\t}\n\n\t\treturn value\n\t}\n\n}(window.wpm = window.wpm || {}, jQuery))\n","/**\n * Load all WPM functions\n *\n * Ignore event listeners. They need to be loaded after\n * we made sure that jQuery has been loaded.\n */\n\nrequire(\"./functions\")\nrequire(\"./cookie_consent\")\n\n// #if process.env.TIER === 'premium'\n// require(\"./functions_premium\")\n// #endif\n","/**\n * After WPM is loaded\n * we first check if wpmDataLayer is loaded,\n * and as soon as it is, we load the pixels,\n * and as soon as the page load is complete,\n * we fire the wpmLoad event.\n *\n * @param {{pro:bool}} wpmDataLayer.version\n *\n * https://stackoverflow.com/a/25868457/4688612\n * https://stackoverflow.com/a/44093516/4688612\n */\n\nwpm.wpmDataLayerExists()\n\t.then(function () {\n\t\tconsole.log(\"Pixel Manager for WooCommerce: \" + (wpmDataLayer.version.pro ? \"Pro\" : \"Free\") +\" Version \" + wpmDataLayer.version.number + \" loaded\")\n\n\t\tdocument.dispatchEvent(new Event(\"wpmPreLoadPixels\"))\n\t})\n\t.then(function () {\n\t\twpm.pageLoaded().then(function () {\n\t\t\tdocument.dispatchEvent(new Event(\"wpmLoad\"))\n\t\t})\n\t})\n\n\n\n/**\n * Run when page is ready\n *\n */\n\nwpm.pageReady().then(function () {\n\n\t/**\n\t * Run as soon as wpm namespace is loaded\n\t */\n\n\twpm.wpmDataLayerExists()\n\t\t.then(function () {\n\t\t\t// watch for products visible in viewport\n\t\t\twpm.startIntersectionObserverToWatch()\n\n\t\t\t// watch for lazy loaded products\n\t\t\twpm.startProductsMutationObserverToWatch()\n\t\t})\n})\n\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * Load all essential scripts first\n */\n\nrequire(\"./wpm/functions_loader\")\n\n// Only load the event listeners after jQuery has been loaded for sure\nwpm.jQueryExists().then(function () {\n\n\trequire(\"./wpm/event_listeners\")\n\n\trequire(\"./google/loader\")\n\trequire(\"./facebook/loader\")\n\trequire(\"./hotjar/loader\")\n\n\t/**\n\t * Load all premium scripts\n\t */\n\n\t// #if process.env.TIER === 'premium'\n// \trequire(\"./wpm/event_listeners_premium\")\n// \trequire(\"./microsoft-ads/loader\")\n// \trequire(\"./pinterest/loader\")\n// \trequire(\"./snapchat/loader\")\n// \trequire(\"./tiktok/loader\")\n// \trequire(\"./twitter/loader\")\n\t// #endif\n\n\n\t/**\n\t * Initiate WPM.\n\t *\n\t * It makes sure that the script flow gets executed correctly,\n\t * no matter how JS \"optimizers\" shuffle the code.\n\t */\n\n\trequire(\"./wpm/init\")\n})\n\n"],"names":["isCallable","require","tryToString","$TypeError","TypeError","module","exports","argument","wellKnownSymbol","create","defineProperty","UNSCOPABLES","ArrayPrototype","Array","prototype","undefined","configurable","value","key","isObject","$String","String","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","el","fromIndex","O","length","index","includes","indexOf","uncurryThis","toString","stringSlice","slice","it","hasOwn","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","target","source","exceptions","keys","f","getOwnPropertyDescriptor","i","DESCRIPTORS","createPropertyDescriptor","object","bitmap","enumerable","writable","makeBuiltIn","defineGlobalProperty","options","simple","name","global","unsafe","error","nonConfigurable","nonWritable","Object","fails","get","document","EXISTS","createElement","getBuiltIn","match","version","userAgent","process","Deno","versions","v8","split","createNonEnumerableProperty","defineBuiltIn","copyConstructorProperties","isForced","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","sham","exec","test","bind","hasOwnProperty","NATIVE_BIND","call","Function","apply","arguments","FunctionPrototype","getDescriptor","PROPER","CONFIGURABLE","fn","aFunction","namespace","method","aCallable","V","P","func","check","Math","globalThis","window","self","this","toObject","a","classof","$Object","propertyIsEnumerable","store","functionToString","inspectSource","set","has","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","state","wmget","wmhas","wmset","metadata","facade","STATE","enforce","getterFor","TYPE","type","replacement","feature","detection","data","normalize","POLYFILL","NATIVE","string","replace","toLowerCase","isPrototypeOf","USE_SYMBOL_AS_UID","$Symbol","toLength","obj","CONFIGURABLE_FUNCTION_NAME","InternalStateModule","enforceInternalState","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","getter","setter","arity","constructor","join","ceil","floor","trunc","x","n","V8_VERSION","getOwnPropertySymbols","symbol","Symbol","activeXDocument","anObject","definePropertiesModule","enumBugKeys","html","documentCreateElement","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","domain","style","display","appendChild","src","contentWindow","open","F","Properties","result","V8_PROTOTYPE_DEFINE_BUG","objectKeys","defineProperties","props","IE8_DOM_DEFINE","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","Attributes","current","propertyIsEnumerableModule","internalObjectKeys","concat","getOwnPropertyNames","push","names","$propertyIsEnumerable","NASHORN_BUG","input","pref","val","valueOf","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","uid","SHARED","IS_PURE","mode","copyright","license","toIntegerOrInfinity","max","min","integer","IndexedObject","requireObjectCoercible","number","isSymbol","getMethod","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","toPrimitive","id","postfix","random","NATIVE_SYMBOL","iterator","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","description","$","$includes","addToUnscopables","proto","jQuery","on","wpmDataLayer","pixels","facebook","pixel_id","loaded","wpm","canIFire","loadFacebookPixel","event","payload","fbq","custom_data","eventID","event_id","console","setFbUserData","fbUserData","b","e","callMethod","queue","_fbq","t","async","s","getElementsByTagName","parentNode","insertBefore","isFbpSet","getUserIdentifiersForFb","user","external_id","order","user_id","email","em","billing_email_hashed","first_name","billing_first_name","last_name","ln","billing_last_name","phone","ph","billing_phone","city","ct","billing_city","st","billing_state","postcode","zp","billing_postcode","country","billing_country","getFbRandomEventId","substring","getFbUserData","getFbUserDataFromBrowser","getCookie","isValidFbp","fbp","isValidFbc","fbc","navigator","client_user_agent","RegExp","fbGetProductDataForCapiEvent","product","content_type","content_name","content_ids","dyn_r_ids","dynamic_remarketing","id_type","parseFloat","quantity","price","currency","facebookContentIds","prodIds","item","entries","items","general","variationsOutput","variation_id","products","trackCustomFacebookEvent","eventName","customData","eventId","trigger","event_name","user_data","event_source_url","location","href","fbGetContentIdsFromCart","cart","isEmptyObject","google","ads","conversionIds","status","googleConfigConditionsMet","isVariable","send_events_with_parent_ids","send_to","getGoogleAdsConversionIdentifiers","google_business_vertical","gtagLoaded","then","gtag","value_filtered","getGoogleAdsDynamicRemarketingOrderItems","getGoogleAdsConversionIdentifiersWithLabel","data_basic","data_with_cart","transaction_id","new_customer","clv_order_value_filtered","customer_lifetime_value","aw_merchant_id","discount","aw_feed_country","aw_feed_language","getGoogleAdsRegularOrderItems","conversionIdentifiers","orderItems","orderItem","analytics","universal","property_id","mp_active","affiliation","value_regular","tax","shipping","coupon","getGAUAOrderItems","category","variant","variant_name","brand","ga3AddListNameToProduct","item_data","productPosition","list_name","shop","list_position","ga4","measurement_id","getGA4OrderItems","item_name","item_category","item_id","item_variant","item_brand","canGoogleLoad","loadGoogle","logPreventedPixelLoading","consent_mode","active","getConsentValues","categories","getVisitorConsentStatusAndUpdateGoogleConsentSettings","google_consent_settings","analytics_storage","ad_storage","updateGoogleConsentMode","cookie_consent_mgmt","explicit_consent","fireGtagGoogleAds","enhanced_conversions","phone_conversion_label","phone_conversion_number","page_type","enhanced_conversion_data","fireGtagGoogleAnalyticsUA","parameters","fireGtagGoogleAnalyticsGA4","debug_mode","isGoogleActive","getGoogleGtagId","loadScriptAndCacheIt","script","textStatus","dataLayer","wait_for_update","region","ads_data_redaction","url_passthrough","linker","settings","Date","Promise","resolve","reject","startTime","wait","setTimeout","optimize","container_id","load_google_optimize_pixel","hotjar","site_id","load_hotjar_pixel","h","o","hj","q","_hjSettings","hjid","hjsv","r","getComplianzCookies","cmplz_statistics","cmplz_marketing","visitorHasChosen","getCookieLawInfoCookies","analyticsCookie","adsCookie","wpmConsentValues","setConsentValueCategories","updateConsentCookieValues","cookie","explicitConsent","decodeURI","JSON","parse","action","consents","statistics","marketing","thirdparty","advanced","setConsentDefaultValuesToExplicit","pixelName","canIFireMode","log","scriptTagObserver","MutationObserver","mutations","forEach","addedNodes","node","shouldScriptBeActive","unblockScript","blockScript","observe","head","childList","subtree","addEventListener","disconnect","some","element","scriptNode","removeAttach","remove","wpmSrc","attr","appendTo","dispatchEvent","Event","removeAttr","unblockAllScripts","unblockSelectedPixels","Cookiebot","consent","detail","cmplzStatusChange","cmplzConsentData","huObserver","querySelector","hu","documentElement","body","explicitConsentStateAlreadySet","url","URL","currentTarget","productId","getProductIdByCartItemKeyUrl","removeProductFromCart","addProductToCart","product_type","Number","each","find","classes","getPostIdFromString","one","closest","matches","nextAll","getIdBasedOndVariationsOutputSetting","Error","getProductDetailsFormattedForEvent","isEmail","fireCheckoutProgress","emailSelected","paymentMethodSelected","fireCheckoutOption","getCartItemsFromBackend","variation","triggerViewItemEventPrep","doesWooCommerceCartExist","getCartItems","productIds","getAddToCartLinkProductIds","getProductsFromBackend","referrer","referrerHostname","hostname","host","setCookie","wpmLoadFired","getMainProductIdFromProductPage","getProductDataForViewItemEvent","isOrderIdStored","writeOrderIdToStorage","acrRemoveCookie","hasLoginEventFired","setLoginEventFired","sessionStorage","getItem","sendEventPayloadToServer","getCartValue","search_string","getSearchTermFromUrl","wpmDeduper","keyName","cookieExpiresDays","wpmRestSettings","cookiePmwRestEndpointAvailable","restEndpointPost","restFails","restFailsThreshold","checkCookie","useRestEndpoint","isSessionStorageAvailable","isRestEndpointAvailable","isBelowRestErrorThreshold","testEndpoint","root","cookieName","response","fetch","cache","keepalive","setItem","stringify","isWpmRestEndpointAvailable","orderId","Storage","localStorage","ids","expiresDate","setDate","getDate","toUTCString","storeOrderIdOnServer","orderDeduplication","quantityToRemove","isVariation","parentId","saveCartObjectToDataLayer","ajax_url","URLSearchParams","ok","json","success","filter","headers","responseData","assign","cartObject","triggerViewItemEvent","triggerViewItemEventNoProduct","step","checkout_option","triggerViewItemList","viewItemListTriggerTestMode","css","append","viewItemListTrigger","opacity","backgroundColor","search","ioTimeouts","io","observerCallback","observer","entry","elementId","next","isIntersecting","testMode","repeat","unobserve","timeout","clearTimeout","ioid","allIoElementsToWatch","getAllElementsToWatch","map","elem","parent","hasClass","prev","startIntersectionObserverToWatch","urlHasParameter","IntersectionObserver","threshold","startProductsMutationObserverToWatch","productsNode","parents","first","productsMutationObserver","attributes","characterData","mutation","newNodes","hasWpmProductIdElement","siblings","cookieValue","expiryDays","d","setTime","getTime","expires","ca","decodeURIComponent","c","charAt","deleteCookie","getWpmSessionData","setWpmSessionData","order_id","cartItemKey","cartItemKeys","position","parentId_dyn_r_ids","setReferrerToCookie","getReferrerFromCookie","getClidFromBrowser","clidCookieId","clidId","gclid","dclid","getUserAgent","getViewPort","width","clientWidth","innerWidth","height","clientHeight","innerHeight","text","eval","catch","getOrderItemPrice","total","total_tax","loginEventFired","wpmDataLayerExists","waitForVar","jQueryExists","waitForjQuery","pageLoaded","readyState","pageReady","isMiniCartActive","parameter","hashAsync","algo","str","crypto","subtle","digest","TextEncoder","encode","buf","Uint8Array","pro","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","g","toStringTag"],"sourceRoot":""}
languages/woocommerce-google-adwords-conversion-tracking-tag.pot CHANGED
@@ -2,14 +2,14 @@
2
  # This file is distributed under the GNU General Public License v3.0.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Pixel Manager for WooCommerce 1.17.11\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "POT-Creation-Date: 2022-07-08T04:26:52+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.6.0\n"
15
  "X-Domain: woocommerce-google-adwords-conversion-tracking-tag\n"
@@ -34,224 +34,229 @@ msgstr ""
34
  msgid "https://sweetcode.com"
35
  msgstr ""
36
 
37
- #: classes/admin/class-admin.php:266
38
- #: classes/admin/class-admin.php:267
39
  #: wgact.php:233
40
  #: wgact.php:234
41
  msgid "Pixel Manager"
42
  msgstr ""
43
 
44
- #: classes/admin/class-admin.php:306
45
  msgid "Main"
46
  msgstr ""
47
 
48
- #: classes/admin/class-admin.php:327
49
  msgid "Google"
50
  msgstr ""
51
 
52
- #: classes/admin/class-admin.php:350
53
  msgid "Google Ads Conversion ID"
54
  msgstr ""
55
 
56
- #: classes/admin/class-admin.php:362
57
  msgid "Google Ads Purchase Conversion Label"
58
  msgstr ""
59
 
60
- #: classes/admin/class-admin.php:373
61
  msgid "Google Analytics UA"
62
  msgstr ""
63
 
64
- #: classes/admin/class-admin.php:384
65
  msgid "Google Analytics 4"
66
  msgstr ""
67
 
68
- #: classes/admin/class-admin.php:395
69
  msgid "Google Optimize"
70
  msgstr ""
71
 
72
- #: classes/admin/class-admin.php:407
73
  msgid "Meta (Facebook)"
74
  msgstr ""
75
 
76
- #: classes/admin/class-admin.php:430
77
  msgid "Meta (Facebook) pixel ID"
78
  msgstr ""
79
 
80
- #: classes/admin/class-admin.php:442
81
  msgid "more pixels"
82
  msgstr ""
83
 
84
- #: classes/admin/class-admin.php:467
85
  msgid "Microsoft Advertising UET tag ID"
86
  msgstr ""
87
 
88
- #: classes/admin/class-admin.php:479
89
  msgid "Twitter pixel ID"
90
  msgstr ""
91
 
92
- #: classes/admin/class-admin.php:491
93
  msgid "Pinterest pixel ID"
94
  msgstr ""
95
 
96
- #: classes/admin/class-admin.php:503
97
  msgid "Snapchat pixel ID"
98
  msgstr ""
99
 
100
- #: classes/admin/class-admin.php:515
101
  msgid "TikTok pixel ID"
102
  msgstr ""
103
 
104
- #: classes/admin/class-admin.php:528
105
  msgid "Hotjar site ID"
106
  msgstr ""
107
 
108
- #: classes/admin/class-admin.php:540
109
  msgid "Advanced"
110
  msgstr ""
111
 
112
- #: classes/admin/class-admin.php:591
113
  msgid "Order Total Logic"
114
  msgstr ""
115
 
116
- #: classes/admin/class-admin.php:603
117
  msgid "Order Duplication Prevention"
118
  msgstr ""
119
 
120
- #: classes/admin/class-admin.php:615
121
  msgid "Maximum Compatibility Mode"
122
  msgstr ""
123
 
124
- #: classes/admin/class-admin.php:629
125
  msgid "Disable Tracking for User Roles"
126
  msgstr ""
127
 
128
- #: classes/admin/class-admin.php:663
129
  msgid "Conversion Cart Data"
130
  msgstr ""
131
 
132
- #: classes/admin/class-admin.php:676
133
  msgid "Enhanced E-Commerce"
134
  msgstr ""
135
 
136
- #: classes/admin/class-admin.php:688
137
  msgid "GA 4 API secret"
138
  msgstr ""
139
 
140
- #: classes/admin/class-admin.php:701
141
  msgid "Enhanced Link Attribution"
142
  msgstr ""
143
 
144
- #: classes/admin/class-admin.php:714
145
  msgid "Google User ID"
146
  msgstr ""
147
 
148
- #: classes/admin/class-admin.php:726
149
  msgid "Google Ads Enhanced Conversions"
150
  msgstr ""
151
 
152
- #: classes/admin/class-admin.php:740
153
  msgid "Google Ads Phone Conversion Number"
154
  msgstr ""
155
 
156
- #: classes/admin/class-admin.php:752
157
  msgid "Google Ads Phone Conversion Label"
158
  msgstr ""
159
 
160
- #: classes/admin/class-admin.php:765
161
  msgid "Cookie Consent Management"
162
  msgstr ""
163
 
164
- #: classes/admin/class-admin.php:788
165
  msgid "Google Consent Mode"
166
  msgstr ""
167
 
168
- #: classes/admin/class-admin.php:800
169
  msgid "Google Consent Regions"
170
  msgstr ""
171
 
172
- #: classes/admin/class-admin.php:812
173
  msgid "Explicit Consent Mode"
174
  msgstr ""
175
 
176
- #: classes/admin/class-admin.php:825
177
  msgid "Borlabs Cookie support"
178
  msgstr ""
179
 
180
- #: classes/admin/class-admin.php:839
181
  msgid "Cookiebot support"
182
  msgstr ""
183
 
184
- #: classes/admin/class-admin.php:853
185
  msgid "Complianz GDPR support"
186
  msgstr ""
187
 
188
- #: classes/admin/class-admin.php:867
189
  msgid "Cookie Notice support"
190
  msgstr ""
191
 
192
- #: classes/admin/class-admin.php:881
193
  msgid "Cookie Script support"
194
  msgstr ""
195
 
196
- #: classes/admin/class-admin.php:895
197
  msgid "GDPR Cookie Compliance support"
198
  msgstr ""
199
 
200
- #: classes/admin/class-admin.php:909
201
  msgid "GDPR Cookie Consent support"
202
  msgstr ""
203
 
204
- #: classes/admin/class-admin.php:942
205
  msgid "Meta (Facebook) CAPI: token"
206
  msgstr ""
207
 
208
- #: classes/admin/class-admin.php:954
209
  msgid "Meta (Facebook) CAPI: process anonymous hits"
210
  msgstr ""
211
 
212
- #: classes/admin/class-admin.php:966
213
  msgid "Meta (Facebook) CAPI: send additional visitor identifiers"
214
  msgstr ""
215
 
216
- #: classes/admin/class-admin.php:978
217
  msgid "Meta (Facebook) Microdata Tags for Catalogues"
218
  msgstr ""
219
 
220
- #: classes/admin/class-admin.php:990
221
- #: classes/admin/class-admin.php:1003
222
  #: classes/admin/class-admin.php:1014
 
 
223
  msgid "Dynamic Remarketing"
224
  msgstr ""
225
 
226
- #: classes/admin/class-admin.php:1026
227
  msgid "Product Identifier"
228
  msgstr ""
229
 
230
- #: classes/admin/class-admin.php:1038
231
  msgid "Variations output"
232
  msgstr ""
233
 
234
- #: classes/admin/class-admin.php:1051
235
  msgid "Google Business Vertical"
236
  msgstr ""
237
 
238
- #: classes/admin/class-admin.php:1064
239
- #: classes/admin/class-admin.php:1073
 
 
 
 
 
240
  msgid "Support"
241
  msgstr ""
242
 
243
- #: classes/admin/class-admin.php:1081
244
- #: classes/admin/class-admin.php:1091
245
  msgid "Author"
246
  msgstr ""
247
 
248
- #: classes/admin/class-admin.php:1138
249
  msgid ""
250
  "It looks like you are using some sort of ad or script blocker which is blocking the script and CSS files of this plugin.\n"
251
  " In order for the plugin to work properly you need to disable the script blocker."
252
  msgstr ""
253
 
254
- #: classes/admin/class-admin.php:1145
255
  #: classes/admin/class-notifications.php:31
256
  #: classes/admin/class-notifications.php:73
257
  #: classes/admin/class-notifications.php:114
@@ -259,458 +264,495 @@ msgstr ""
259
  msgid "Learn more"
260
  msgstr ""
261
 
262
- #: classes/admin/class-admin.php:1189
263
  msgid "Profit Driven Marketing by SweetCode"
264
  msgstr ""
265
 
266
- #: classes/admin/class-admin.php:1214
267
  msgid "Visit us here:"
268
  msgstr ""
269
 
270
- #: classes/admin/class-admin.php:1259
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
271
  msgid "Contacting Support"
272
  msgstr ""
273
 
274
- #: classes/admin/class-admin.php:1273
275
  msgid "Debug Information"
276
  msgstr ""
277
 
278
- #: classes/admin/class-admin.php:1282
279
  msgid "copy to clipboard"
280
  msgstr ""
281
 
282
- #: classes/admin/class-admin.php:1289
283
  msgid "Export settings"
284
  msgstr ""
285
 
286
- #: classes/admin/class-admin.php:1301
287
  msgid "Export to disk"
288
  msgstr ""
289
 
290
- #: classes/admin/class-admin.php:1308
291
  msgid "Import settings"
292
  msgstr ""
293
 
294
- #: classes/admin/class-admin.php:1313
295
  msgid "Settings imported successfully!"
296
  msgstr ""
297
 
298
- #: classes/admin/class-admin.php:1316
299
  msgid "Reloading...(in 5 seconds)!"
300
  msgstr ""
301
 
302
- #: classes/admin/class-admin.php:1322
303
  msgid "There was an error importing that file! Please try again."
304
  msgstr ""
305
 
306
- #: classes/admin/class-admin.php:1339
307
  msgid "Translations"
308
  msgstr ""
309
 
310
- #: classes/admin/class-admin.php:1340
311
  msgid "If you want to participate improving the translations of this plugin into your language, please follow this link:"
312
  msgstr ""
313
 
314
- #: classes/admin/class-admin.php:1358
315
  msgid "Post a support request in the WordPress support forum here: "
316
  msgstr ""
317
 
318
- #: classes/admin/class-admin.php:1361
319
  msgid "Support forum"
320
  msgstr ""
321
 
322
- #: classes/admin/class-admin.php:1365
323
  msgid "(Never post the debug or other sensitive information to the support forum. Instead send us the information by email.)"
324
  msgstr ""
325
 
326
- #: classes/admin/class-admin.php:1368
327
  msgid "Or send us an email to the following address: "
328
  msgstr ""
329
 
330
- #: classes/admin/class-admin.php:1384
331
  msgid "Send us your support request through the WooCommerce.com dashboard: "
332
  msgstr ""
333
 
334
- #: classes/admin/class-admin.php:1398
335
  msgid "More details about the developer of this plugin: "
336
  msgstr ""
337
 
338
- #: classes/admin/class-admin.php:1401
339
  msgid "Developer: SweetCode"
340
  msgstr ""
341
 
342
- #: classes/admin/class-admin.php:1403
343
  msgid "Website: "
344
  msgstr ""
345
 
346
- #: classes/admin/class-admin.php:1426
347
  msgid "The Google Analytics Universal property ID looks like this:"
348
  msgstr ""
349
 
350
- #: classes/admin/class-admin.php:1442
351
  msgid "The Google Analytics 4 measurement ID looks like this:"
352
  msgstr ""
353
 
354
- #: classes/admin/class-admin.php:1458
355
  msgid "The conversion ID looks similar to this:"
356
  msgstr ""
357
 
358
- #: classes/admin/class-admin.php:1474
359
  msgid "The purchase conversion label looks similar to this:"
360
  msgstr ""
361
 
362
- #: classes/admin/class-admin.php:1478
363
- #: classes/admin/class-admin.php:2205
364
  msgid "Requires an active Google Ads Conversion ID"
365
  msgstr ""
366
 
367
- #: classes/admin/class-admin.php:1496
368
  msgid "The Google Optimize container ID looks like this:"
369
  msgstr ""
370
 
371
- #: classes/admin/class-admin.php:1512
 
 
 
 
372
  msgid "The Meta (Facebook) pixel ID looks similar to this:"
373
  msgstr ""
374
 
375
- #: classes/admin/class-admin.php:1530
376
  msgid "The Microsoft Advertising UET tag ID looks similar to this:"
377
  msgstr ""
378
 
379
- #: classes/admin/class-admin.php:1549
380
  msgid "The Twitter pixel ID looks similar to this:"
381
  msgstr ""
382
 
383
- #: classes/admin/class-admin.php:1568
384
  msgid "The Pinterest pixel ID looks similar to this:"
385
  msgstr ""
386
 
387
- #: classes/admin/class-admin.php:1587
388
  msgid "The Snapchat pixel ID looks similar to this:"
389
  msgstr ""
390
 
391
- #: classes/admin/class-admin.php:1606
392
  msgid "The TikTok pixel ID looks similar to this:"
393
  msgstr ""
394
 
395
- #: classes/admin/class-admin.php:1618
396
  msgid "The Hotjar site ID looks similar to this:"
397
  msgstr ""
398
 
399
- #: classes/admin/class-admin.php:1628
400
  msgid "Use order_subtotal: Doesn't include tax and shipping (default)"
401
  msgstr ""
402
 
403
- #: classes/admin/class-admin.php:1635
404
  msgid "Use order_total: Includes tax and shipping"
405
  msgstr ""
406
 
407
- #: classes/admin/class-admin.php:1638
408
  msgid "This is the order total amount reported back to Google Ads"
409
  msgstr ""
410
 
411
- #: classes/admin/class-admin.php:1658
412
  msgid "open the documentation"
413
  msgstr ""
414
 
415
- #: classes/admin/class-admin.php:1678
416
  msgid "Enable Google consent mode with standard settings"
417
  msgstr ""
418
 
419
- #: classes/admin/class-admin.php:1716
420
  msgid "If no region is set, then the restrictions are enabled for all regions. If you specify one or more regions, then the restrictions only apply for the specified regions."
421
  msgstr ""
422
 
423
- #: classes/admin/class-admin.php:1737
424
  msgid "Enable Google Analytics enhanced e-commerce"
425
  msgstr ""
426
 
427
- #: classes/admin/class-admin.php:1748
428
- #: classes/admin/class-admin.php:1809
429
- #: classes/admin/class-admin.php:1839
430
  msgid "You need to activate at least Google Analytics UA or Google Analytics 4"
431
  msgstr ""
432
 
433
- #: classes/admin/class-admin.php:1770
434
  msgid "Google Analytics 4 activation required"
435
  msgstr ""
436
 
437
- #: classes/admin/class-admin.php:1775
438
  msgid "Enhanced E-Commerce activation required"
439
  msgstr ""
440
 
441
- #: classes/admin/class-admin.php:1778
442
  msgid "If enabled, purchase and refund events will be sent to Google through the measurement protocol for increased accuracy."
443
  msgstr ""
444
 
445
- #: classes/admin/class-admin.php:1793
446
  msgid "Enable Google Analytics enhanced link attribution"
447
  msgstr ""
448
 
449
- #: classes/admin/class-admin.php:1828
450
  msgid "Enable Google user ID"
451
  msgstr ""
452
 
453
- #: classes/admin/class-admin.php:1858
454
  msgid "Enable Google Ads Enhanced Conversions"
455
  msgstr ""
456
 
457
- #: classes/admin/class-admin.php:1869
458
  msgid "You need to activate Google Ads"
459
  msgstr ""
460
 
461
- #: classes/admin/class-admin.php:1889
462
  msgid "The Google Ads phone conversion number must be in the same format as on the website."
463
  msgstr ""
464
 
465
- #: classes/admin/class-admin.php:1911
466
  msgid "Borlabs Cookie detected. Automatic support is:"
467
  msgstr ""
468
 
469
- #: classes/admin/class-admin.php:1917
470
  msgid "Cookiebot detected. Automatic support is:"
471
  msgstr ""
472
 
473
- #: classes/admin/class-admin.php:1923
474
  msgid "Complianz GDPR detected. Automatic support is:"
475
  msgstr ""
476
 
477
- #: classes/admin/class-admin.php:1929
478
  msgid "Cookie Notice (by hu-manity.co) detected. Automatic support is:"
479
  msgstr ""
480
 
481
- #: classes/admin/class-admin.php:1935
482
  msgid "Cookie Script (by cookie-script.com) detected. Automatic support is:"
483
  msgstr ""
484
 
485
- #: classes/admin/class-admin.php:1941
486
  msgid "GDPR Cookie Compliance (by Moove Agency) detected. Automatic support is:"
487
  msgstr ""
488
 
489
- #: classes/admin/class-admin.php:1947
490
  msgid "GDPR Cookie Consent (by WebToffee) detected. Automatic support is:"
491
  msgstr ""
492
 
493
- #: classes/admin/class-admin.php:1966
494
  msgid "Enable Explicit Consent Mode"
495
  msgstr ""
496
 
497
- #: classes/admin/class-admin.php:1975
498
  msgid "Only activate the Explicit Consent Mode if you are also using a Cookie Management Platform (a cookie banner) that is compatible with this plugin. Find a list of compatible plugins in the documentation."
499
  msgstr ""
500
 
501
- #: classes/admin/class-admin.php:1994
502
- #: classes/admin/class-admin.php:2027
503
- #: classes/admin/class-admin.php:2056
504
- #: classes/admin/class-admin.php:2084
505
  msgid "You need to activate the Meta (Facebook) pixel"
506
  msgstr ""
507
 
508
- #: classes/admin/class-admin.php:2018
509
  msgid "Send CAPI hits for anonymous visitors who likely have blocked the Meta (Facebook) pixel."
510
  msgstr ""
511
 
512
- #: classes/admin/class-admin.php:2047
513
  msgid "Include additional visitor's identifiers, such as IP address, email and shop ID in the CAPI hit."
514
  msgstr ""
515
 
516
- #: classes/admin/class-admin.php:2075
517
  msgid "Enable Meta (Facebook) product microdata output"
518
  msgstr ""
519
 
520
- #: classes/admin/class-admin.php:2111
521
  msgid "Only disable order duplication prevention for testing. Remember to re-enable the setting once done."
522
  msgstr ""
523
 
524
- #: classes/admin/class-admin.php:2128
525
  msgid "Enable the maximum compatibility mode"
526
  msgstr ""
527
 
528
- #: classes/admin/class-admin.php:2164
529
  msgid "Advanced order duplication prevention is "
530
  msgstr ""
531
 
532
- #: classes/admin/class-admin.php:2166
533
  msgid "Basic order duplication prevention is "
534
  msgstr ""
535
 
536
- #: classes/admin/class-admin.php:2190
537
  msgid "Enable dynamic remarketing audience collection"
538
  msgstr ""
539
 
540
- #: classes/admin/class-admin.php:2211
541
  msgid "You need to choose the correct product identifier setting in order to match the product identifiers in the product feeds."
542
  msgstr ""
543
 
544
- #: classes/admin/class-admin.php:2229
545
  msgid "Enable variations output"
546
  msgstr ""
547
 
548
- #: classes/admin/class-admin.php:2240
549
  msgid "In order for this to work you need to upload your product feed including product variations and the item_group_id. Disable it, if you choose only to upload the parent product for variable products."
550
  msgstr ""
551
 
552
- #: classes/admin/class-admin.php:2255
553
  msgid "Retail"
554
  msgstr ""
555
 
556
- #: classes/admin/class-admin.php:2265
557
  msgid "Education"
558
  msgstr ""
559
 
560
- #: classes/admin/class-admin.php:2275
561
  msgid "Hotels and rentals"
562
  msgstr ""
563
 
564
- #: classes/admin/class-admin.php:2285
565
  msgid "Jobs"
566
  msgstr ""
567
 
568
- #: classes/admin/class-admin.php:2295
569
  msgid "Local deals"
570
  msgstr ""
571
 
572
- #: classes/admin/class-admin.php:2305
573
  msgid "Real estate"
574
  msgstr ""
575
 
576
- #: classes/admin/class-admin.php:2315
577
  msgid "Custom"
578
  msgstr ""
579
 
580
- #: classes/admin/class-admin.php:2334
581
  msgid "ID of your Google Merchant Center account. It looks like this: 12345678"
582
  msgstr ""
583
 
584
- #: classes/admin/class-admin.php:2343
585
  msgid "post ID (default)"
586
  msgstr ""
587
 
588
- #: classes/admin/class-admin.php:2349
589
  msgid "SKU"
590
  msgstr ""
591
 
592
- #: classes/admin/class-admin.php:2356
593
  msgid "ID for the WooCommerce Google Product Feed. Outputs the post ID with woocommerce_gpf_ prefix *"
594
  msgstr ""
595
 
596
- #: classes/admin/class-admin.php:2363
597
  msgid "ID for the WooCommerce Google Listings & Ads Plugin. Outputs the post ID with gla_ prefix **"
598
  msgstr ""
599
 
600
- #: classes/admin/class-admin.php:2367
601
  msgid "Choose a product identifier."
602
  msgstr ""
603
 
604
- #: classes/admin/class-admin.php:2370
605
  msgid "* This is for users of the WooCommerce Google Product Feed Plugin"
606
  msgstr ""
607
 
608
- #: classes/admin/class-admin.php:2374
609
  msgid "** This is for users of the WooCommerce Google Listings & Ads Plugin"
610
  msgstr ""
611
 
612
- #: classes/admin/class-admin.php:2383
613
- msgid "beta"
614
- msgstr ""
615
-
616
- #: classes/admin/class-admin.php:2387
617
- #: classes/admin/class-admin.php:2392
618
  msgid "active"
619
  msgstr ""
620
 
621
- #: classes/admin/class-admin.php:2397
622
- #: classes/admin/class-admin.php:2402
623
  msgid "inactive"
624
  msgstr ""
625
 
626
- #: classes/admin/class-admin.php:2407
627
- #: classes/admin/class-admin.php:2412
628
  msgid "partially active"
629
  msgstr ""
630
 
631
- #: classes/admin/class-admin.php:2423
632
  msgid "Pro Feature"
633
  msgstr ""
634
 
635
- #: classes/admin/class-admin.php:2467
636
  msgid "You have entered an invalid Google Analytics Universal property ID."
637
  msgstr ""
638
 
639
- #: classes/admin/class-admin.php:2475
640
  msgid "You have entered an invalid Google Analytics 4 measurement ID."
641
  msgstr ""
642
 
643
- #: classes/admin/class-admin.php:2483
644
  msgid "You have entered an invalid Google Analytics 4 API key."
645
  msgstr ""
646
 
647
- #: classes/admin/class-admin.php:2491
648
  msgid "You have entered an invalid conversion ID. It only contains 8 to 10 digits."
649
  msgstr ""
650
 
651
- #: classes/admin/class-admin.php:2499
652
- #: classes/admin/class-admin.php:2507
653
  msgid "You have entered an invalid conversion label."
654
  msgstr ""
655
 
656
- #: classes/admin/class-admin.php:2515
657
  msgid "You have entered an invalid merchant ID. It only contains 6 to 12 digits."
658
  msgstr ""
659
 
660
- #: classes/admin/class-admin.php:2523
661
  msgid "You have entered an invalid Google Optimize container ID."
662
  msgstr ""
663
 
664
- #: classes/admin/class-admin.php:2531
665
  msgid "You have entered an invalid Meta (Facebook) pixel ID. It only contains 14 to 16 digits."
666
  msgstr ""
667
 
668
- #: classes/admin/class-admin.php:2539
669
  msgid "You have entered an invalid Meta (Facebook) CAPI token."
670
  msgstr ""
671
 
672
- #: classes/admin/class-admin.php:2547
673
  msgid "You have entered an invalid Bing Ads UET tag ID. It only contains 7 to 9 digits."
674
  msgstr ""
675
 
676
- #: classes/admin/class-admin.php:2555
677
  msgid "You have entered an invalid Twitter pixel ID. It only contains 5 to 7 lowercase letters and numbers."
678
  msgstr ""
679
 
680
- #: classes/admin/class-admin.php:2563
681
  msgid "You have entered an invalid Pinterest pixel ID. It only contains 13 digits."
682
  msgstr ""
683
 
684
- #: classes/admin/class-admin.php:2571
685
  msgid "You have entered an invalid Snapchat pixel ID."
686
  msgstr ""
687
 
688
- #: classes/admin/class-admin.php:2579
689
  msgid "You have entered an invalid TikTok pixel ID."
690
  msgstr ""
691
 
692
- #: classes/admin/class-admin.php:2587
693
  msgid "You have entered an invalid Hotjar site ID. It only contains 6 to 9 digits."
694
  msgstr ""
695
 
696
  #. translators: %d: the amount of purchase conversions that have been measured
697
- #: classes/admin/class-ask-for-rating.php:129
698
  msgid "Hey, I noticed that you tracked more than %d purchase conversions with the Pixel Manager for WooCommerce plugin - that's awesome! Could you please do me a BIG favour and give it a 5-star rating on WordPress? It will help to spread the word and boost our motivation."
699
  msgstr ""
700
 
701
- #: classes/admin/class-ask-for-rating.php:146
702
  msgid "Ok, you deserve it"
703
  msgstr ""
704
 
705
- #: classes/admin/class-ask-for-rating.php:151
706
  msgid "Nope, maybe later"
707
  msgstr ""
708
 
709
- #: classes/admin/class-ask-for-rating.php:160
710
  msgid "I already did"
711
  msgstr ""
712
 
713
- #: classes/admin/class-ask-for-rating.php:166
714
  #: classes/admin/class-notifications.php:131
715
  #: classes/admin/class-notifications.php:180
716
  msgid "If the dismiss button is not working, here's why >>"
2
  # This file is distributed under the GNU General Public License v3.0.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Pixel Manager for WooCommerce 1.19.0\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "POT-Creation-Date: 2022-08-10T04:03:09+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.6.0\n"
15
  "X-Domain: woocommerce-google-adwords-conversion-tracking-tag\n"
34
  msgid "https://sweetcode.com"
35
  msgstr ""
36
 
37
+ #: classes/admin/class-admin.php:289
38
+ #: classes/admin/class-admin.php:290
39
  #: wgact.php:233
40
  #: wgact.php:234
41
  msgid "Pixel Manager"
42
  msgstr ""
43
 
44
+ #: classes/admin/class-admin.php:330
45
  msgid "Main"
46
  msgstr ""
47
 
48
+ #: classes/admin/class-admin.php:351
49
  msgid "Google"
50
  msgstr ""
51
 
52
+ #: classes/admin/class-admin.php:374
53
  msgid "Google Ads Conversion ID"
54
  msgstr ""
55
 
56
+ #: classes/admin/class-admin.php:386
57
  msgid "Google Ads Purchase Conversion Label"
58
  msgstr ""
59
 
60
+ #: classes/admin/class-admin.php:397
61
  msgid "Google Analytics UA"
62
  msgstr ""
63
 
64
+ #: classes/admin/class-admin.php:408
65
  msgid "Google Analytics 4"
66
  msgstr ""
67
 
68
+ #: classes/admin/class-admin.php:419
69
  msgid "Google Optimize"
70
  msgstr ""
71
 
72
+ #: classes/admin/class-admin.php:431
73
  msgid "Meta (Facebook)"
74
  msgstr ""
75
 
76
+ #: classes/admin/class-admin.php:454
77
  msgid "Meta (Facebook) pixel ID"
78
  msgstr ""
79
 
80
+ #: classes/admin/class-admin.php:466
81
  msgid "more pixels"
82
  msgstr ""
83
 
84
+ #: classes/admin/class-admin.php:491
85
  msgid "Microsoft Advertising UET tag ID"
86
  msgstr ""
87
 
88
+ #: classes/admin/class-admin.php:503
89
  msgid "Twitter pixel ID"
90
  msgstr ""
91
 
92
+ #: classes/admin/class-admin.php:515
93
  msgid "Pinterest pixel ID"
94
  msgstr ""
95
 
96
+ #: classes/admin/class-admin.php:527
97
  msgid "Snapchat pixel ID"
98
  msgstr ""
99
 
100
+ #: classes/admin/class-admin.php:539
101
  msgid "TikTok pixel ID"
102
  msgstr ""
103
 
104
+ #: classes/admin/class-admin.php:552
105
  msgid "Hotjar site ID"
106
  msgstr ""
107
 
108
+ #: classes/admin/class-admin.php:564
109
  msgid "Advanced"
110
  msgstr ""
111
 
112
+ #: classes/admin/class-admin.php:615
113
  msgid "Order Total Logic"
114
  msgstr ""
115
 
116
+ #: classes/admin/class-admin.php:627
117
  msgid "Order Duplication Prevention"
118
  msgstr ""
119
 
120
+ #: classes/admin/class-admin.php:639
121
  msgid "Maximum Compatibility Mode"
122
  msgstr ""
123
 
124
+ #: classes/admin/class-admin.php:653
125
  msgid "Disable Tracking for User Roles"
126
  msgstr ""
127
 
128
+ #: classes/admin/class-admin.php:687
129
  msgid "Conversion Cart Data"
130
  msgstr ""
131
 
132
+ #: classes/admin/class-admin.php:700
133
  msgid "Enhanced E-Commerce"
134
  msgstr ""
135
 
136
+ #: classes/admin/class-admin.php:712
137
  msgid "GA 4 API secret"
138
  msgstr ""
139
 
140
+ #: classes/admin/class-admin.php:725
141
  msgid "Enhanced Link Attribution"
142
  msgstr ""
143
 
144
+ #: classes/admin/class-admin.php:738
145
  msgid "Google User ID"
146
  msgstr ""
147
 
148
+ #: classes/admin/class-admin.php:750
149
  msgid "Google Ads Enhanced Conversions"
150
  msgstr ""
151
 
152
+ #: classes/admin/class-admin.php:764
153
  msgid "Google Ads Phone Conversion Number"
154
  msgstr ""
155
 
156
+ #: classes/admin/class-admin.php:776
157
  msgid "Google Ads Phone Conversion Label"
158
  msgstr ""
159
 
160
+ #: classes/admin/class-admin.php:789
161
  msgid "Cookie Consent Management"
162
  msgstr ""
163
 
164
+ #: classes/admin/class-admin.php:812
165
  msgid "Google Consent Mode"
166
  msgstr ""
167
 
168
+ #: classes/admin/class-admin.php:824
169
  msgid "Google Consent Regions"
170
  msgstr ""
171
 
172
+ #: classes/admin/class-admin.php:836
173
  msgid "Explicit Consent Mode"
174
  msgstr ""
175
 
176
+ #: classes/admin/class-admin.php:849
177
  msgid "Borlabs Cookie support"
178
  msgstr ""
179
 
180
+ #: classes/admin/class-admin.php:863
181
  msgid "Cookiebot support"
182
  msgstr ""
183
 
184
+ #: classes/admin/class-admin.php:877
185
  msgid "Complianz GDPR support"
186
  msgstr ""
187
 
188
+ #: classes/admin/class-admin.php:891
189
  msgid "Cookie Notice support"
190
  msgstr ""
191
 
192
+ #: classes/admin/class-admin.php:905
193
  msgid "Cookie Script support"
194
  msgstr ""
195
 
196
+ #: classes/admin/class-admin.php:919
197
  msgid "GDPR Cookie Compliance support"
198
  msgstr ""
199
 
200
+ #: classes/admin/class-admin.php:933
201
  msgid "GDPR Cookie Consent support"
202
  msgstr ""
203
 
204
+ #: classes/admin/class-admin.php:966
205
  msgid "Meta (Facebook) CAPI: token"
206
  msgstr ""
207
 
208
+ #: classes/admin/class-admin.php:978
209
  msgid "Meta (Facebook) CAPI: process anonymous hits"
210
  msgstr ""
211
 
212
+ #: classes/admin/class-admin.php:990
213
  msgid "Meta (Facebook) CAPI: send additional visitor identifiers"
214
  msgstr ""
215
 
216
+ #: classes/admin/class-admin.php:1002
217
  msgid "Meta (Facebook) Microdata Tags for Catalogues"
218
  msgstr ""
219
 
 
 
220
  #: classes/admin/class-admin.php:1014
221
+ #: classes/admin/class-admin.php:1027
222
+ #: classes/admin/class-admin.php:1038
223
  msgid "Dynamic Remarketing"
224
  msgstr ""
225
 
226
+ #: classes/admin/class-admin.php:1050
227
  msgid "Product Identifier"
228
  msgstr ""
229
 
230
+ #: classes/admin/class-admin.php:1062
231
  msgid "Variations output"
232
  msgstr ""
233
 
234
+ #: classes/admin/class-admin.php:1075
235
  msgid "Google Business Vertical"
236
  msgstr ""
237
 
238
+ #: classes/admin/class-admin.php:1088
239
+ #: classes/admin/class-admin.php:1097
240
+ msgid "Diagnostics"
241
+ msgstr ""
242
+
243
+ #: classes/admin/class-admin.php:1105
244
+ #: classes/admin/class-admin.php:1114
245
  msgid "Support"
246
  msgstr ""
247
 
248
+ #: classes/admin/class-admin.php:1122
249
+ #: classes/admin/class-admin.php:1132
250
  msgid "Author"
251
  msgstr ""
252
 
253
+ #: classes/admin/class-admin.php:1179
254
  msgid ""
255
  "It looks like you are using some sort of ad or script blocker which is blocking the script and CSS files of this plugin.\n"
256
  " In order for the plugin to work properly you need to disable the script blocker."
257
  msgstr ""
258
 
259
+ #: classes/admin/class-admin.php:1186
260
  #: classes/admin/class-notifications.php:31
261
  #: classes/admin/class-notifications.php:73
262
  #: classes/admin/class-notifications.php:114
264
  msgid "Learn more"
265
  msgstr ""
266
 
267
+ #: classes/admin/class-admin.php:1230
268
  msgid "Profit Driven Marketing by SweetCode"
269
  msgstr ""
270
 
271
+ #: classes/admin/class-admin.php:1255
272
  msgid "Visit us here:"
273
  msgstr ""
274
 
275
+ #: classes/admin/class-admin.php:1301
276
+ msgid "Payment Gateway Tracking Accuracy Report"
277
+ msgstr ""
278
+
279
+ #: classes/admin/class-admin.php:1302
280
+ #: classes/admin/class-admin.php:2587
281
+ msgid "beta"
282
+ msgstr ""
283
+
284
+ #: classes/admin/class-admin.php:1306
285
+ msgid "What's this? Follow this link to learn more"
286
+ msgstr ""
287
+
288
+ #: classes/admin/class-admin.php:1315
289
+ msgid "Available payment gateways"
290
+ msgstr ""
291
+
292
+ #: classes/admin/class-admin.php:1321
293
+ msgid "id"
294
+ msgstr ""
295
+
296
+ #: classes/admin/class-admin.php:1322
297
+ msgid "method_title"
298
+ msgstr ""
299
+
300
+ #: classes/admin/class-admin.php:1323
301
+ msgid "class"
302
+ msgstr ""
303
+
304
+ #: classes/admin/class-admin.php:1331
305
+ msgid "Purchase confirmation page reached per gateway (active and inactive)"
306
+ msgstr ""
307
+
308
+ #: classes/admin/class-admin.php:1369
309
+ msgid "Purchase confirmation page reached per gateway (only active), weighted by frequency"
310
+ msgstr ""
311
+
312
+ #: classes/admin/class-admin.php:1446
313
  msgid "Contacting Support"
314
  msgstr ""
315
 
316
+ #: classes/admin/class-admin.php:1468
317
  msgid "Debug Information"
318
  msgstr ""
319
 
320
+ #: classes/admin/class-admin.php:1477
321
  msgid "copy to clipboard"
322
  msgstr ""
323
 
324
+ #: classes/admin/class-admin.php:1487
325
  msgid "Export settings"
326
  msgstr ""
327
 
328
+ #: classes/admin/class-admin.php:1499
329
  msgid "Export to disk"
330
  msgstr ""
331
 
332
+ #: classes/admin/class-admin.php:1508
333
  msgid "Import settings"
334
  msgstr ""
335
 
336
+ #: classes/admin/class-admin.php:1513
337
  msgid "Settings imported successfully!"
338
  msgstr ""
339
 
340
+ #: classes/admin/class-admin.php:1516
341
  msgid "Reloading...(in 5 seconds)!"
342
  msgstr ""
343
 
344
+ #: classes/admin/class-admin.php:1522
345
  msgid "There was an error importing that file! Please try again."
346
  msgstr ""
347
 
348
+ #: classes/admin/class-admin.php:1539
349
  msgid "Translations"
350
  msgstr ""
351
 
352
+ #: classes/admin/class-admin.php:1540
353
  msgid "If you want to participate improving the translations of this plugin into your language, please follow this link:"
354
  msgstr ""
355
 
356
+ #: classes/admin/class-admin.php:1558
357
  msgid "Post a support request in the WordPress support forum here: "
358
  msgstr ""
359
 
360
+ #: classes/admin/class-admin.php:1561
361
  msgid "Support forum"
362
  msgstr ""
363
 
364
+ #: classes/admin/class-admin.php:1565
365
  msgid "(Never post the debug or other sensitive information to the support forum. Instead send us the information by email.)"
366
  msgstr ""
367
 
368
+ #: classes/admin/class-admin.php:1568
369
  msgid "Or send us an email to the following address: "
370
  msgstr ""
371
 
372
+ #: classes/admin/class-admin.php:1584
373
  msgid "Send us your support request through the WooCommerce.com dashboard: "
374
  msgstr ""
375
 
376
+ #: classes/admin/class-admin.php:1598
377
  msgid "More details about the developer of this plugin: "
378
  msgstr ""
379
 
380
+ #: classes/admin/class-admin.php:1601
381
  msgid "Developer: SweetCode"
382
  msgstr ""
383
 
384
+ #: classes/admin/class-admin.php:1603
385
  msgid "Website: "
386
  msgstr ""
387
 
388
+ #: classes/admin/class-admin.php:1626
389
  msgid "The Google Analytics Universal property ID looks like this:"
390
  msgstr ""
391
 
392
+ #: classes/admin/class-admin.php:1642
393
  msgid "The Google Analytics 4 measurement ID looks like this:"
394
  msgstr ""
395
 
396
+ #: classes/admin/class-admin.php:1658
397
  msgid "The conversion ID looks similar to this:"
398
  msgstr ""
399
 
400
+ #: classes/admin/class-admin.php:1674
401
  msgid "The purchase conversion label looks similar to this:"
402
  msgstr ""
403
 
404
+ #: classes/admin/class-admin.php:1678
405
+ #: classes/admin/class-admin.php:2409
406
  msgid "Requires an active Google Ads Conversion ID"
407
  msgstr ""
408
 
409
+ #: classes/admin/class-admin.php:1696
410
  msgid "The Google Optimize container ID looks like this:"
411
  msgstr ""
412
 
413
+ #: classes/admin/class-admin.php:1698
414
+ msgid "or"
415
+ msgstr ""
416
+
417
+ #: classes/admin/class-admin.php:1714
418
  msgid "The Meta (Facebook) pixel ID looks similar to this:"
419
  msgstr ""
420
 
421
+ #: classes/admin/class-admin.php:1732
422
  msgid "The Microsoft Advertising UET tag ID looks similar to this:"
423
  msgstr ""
424
 
425
+ #: classes/admin/class-admin.php:1751
426
  msgid "The Twitter pixel ID looks similar to this:"
427
  msgstr ""
428
 
429
+ #: classes/admin/class-admin.php:1770
430
  msgid "The Pinterest pixel ID looks similar to this:"
431
  msgstr ""
432
 
433
+ #: classes/admin/class-admin.php:1789
434
  msgid "The Snapchat pixel ID looks similar to this:"
435
  msgstr ""
436
 
437
+ #: classes/admin/class-admin.php:1810
438
  msgid "The TikTok pixel ID looks similar to this:"
439
  msgstr ""
440
 
441
+ #: classes/admin/class-admin.php:1822
442
  msgid "The Hotjar site ID looks similar to this:"
443
  msgstr ""
444
 
445
+ #: classes/admin/class-admin.php:1832
446
  msgid "Use order_subtotal: Doesn't include tax and shipping (default)"
447
  msgstr ""
448
 
449
+ #: classes/admin/class-admin.php:1839
450
  msgid "Use order_total: Includes tax and shipping"
451
  msgstr ""
452
 
453
+ #: classes/admin/class-admin.php:1842
454
  msgid "This is the order total amount reported back to Google Ads"
455
  msgstr ""
456
 
457
+ #: classes/admin/class-admin.php:1862
458
  msgid "open the documentation"
459
  msgstr ""
460
 
461
+ #: classes/admin/class-admin.php:1882
462
  msgid "Enable Google consent mode with standard settings"
463
  msgstr ""
464
 
465
+ #: classes/admin/class-admin.php:1920
466
  msgid "If no region is set, then the restrictions are enabled for all regions. If you specify one or more regions, then the restrictions only apply for the specified regions."
467
  msgstr ""
468
 
469
+ #: classes/admin/class-admin.php:1941
470
  msgid "Enable Google Analytics enhanced e-commerce"
471
  msgstr ""
472
 
473
+ #: classes/admin/class-admin.php:1952
474
+ #: classes/admin/class-admin.php:2013
475
+ #: classes/admin/class-admin.php:2043
476
  msgid "You need to activate at least Google Analytics UA or Google Analytics 4"
477
  msgstr ""
478
 
479
+ #: classes/admin/class-admin.php:1974
480
  msgid "Google Analytics 4 activation required"
481
  msgstr ""
482
 
483
+ #: classes/admin/class-admin.php:1979
484
  msgid "Enhanced E-Commerce activation required"
485
  msgstr ""
486
 
487
+ #: classes/admin/class-admin.php:1982
488
  msgid "If enabled, purchase and refund events will be sent to Google through the measurement protocol for increased accuracy."
489
  msgstr ""
490
 
491
+ #: classes/admin/class-admin.php:1997
492
  msgid "Enable Google Analytics enhanced link attribution"
493
  msgstr ""
494
 
495
+ #: classes/admin/class-admin.php:2032
496
  msgid "Enable Google user ID"
497
  msgstr ""
498
 
499
+ #: classes/admin/class-admin.php:2062
500
  msgid "Enable Google Ads Enhanced Conversions"
501
  msgstr ""
502
 
503
+ #: classes/admin/class-admin.php:2073
504
  msgid "You need to activate Google Ads"
505
  msgstr ""
506
 
507
+ #: classes/admin/class-admin.php:2093
508
  msgid "The Google Ads phone conversion number must be in the same format as on the website."
509
  msgstr ""
510
 
511
+ #: classes/admin/class-admin.php:2115
512
  msgid "Borlabs Cookie detected. Automatic support is:"
513
  msgstr ""
514
 
515
+ #: classes/admin/class-admin.php:2121
516
  msgid "Cookiebot detected. Automatic support is:"
517
  msgstr ""
518
 
519
+ #: classes/admin/class-admin.php:2127
520
  msgid "Complianz GDPR detected. Automatic support is:"
521
  msgstr ""
522
 
523
+ #: classes/admin/class-admin.php:2133
524
  msgid "Cookie Notice (by hu-manity.co) detected. Automatic support is:"
525
  msgstr ""
526
 
527
+ #: classes/admin/class-admin.php:2139
528
  msgid "Cookie Script (by cookie-script.com) detected. Automatic support is:"
529
  msgstr ""
530
 
531
+ #: classes/admin/class-admin.php:2145
532
  msgid "GDPR Cookie Compliance (by Moove Agency) detected. Automatic support is:"
533
  msgstr ""
534
 
535
+ #: classes/admin/class-admin.php:2151
536
  msgid "GDPR Cookie Consent (by WebToffee) detected. Automatic support is:"
537
  msgstr ""
538
 
539
+ #: classes/admin/class-admin.php:2170
540
  msgid "Enable Explicit Consent Mode"
541
  msgstr ""
542
 
543
+ #: classes/admin/class-admin.php:2179
544
  msgid "Only activate the Explicit Consent Mode if you are also using a Cookie Management Platform (a cookie banner) that is compatible with this plugin. Find a list of compatible plugins in the documentation."
545
  msgstr ""
546
 
547
+ #: classes/admin/class-admin.php:2198
548
+ #: classes/admin/class-admin.php:2231
549
+ #: classes/admin/class-admin.php:2260
550
+ #: classes/admin/class-admin.php:2288
551
  msgid "You need to activate the Meta (Facebook) pixel"
552
  msgstr ""
553
 
554
+ #: classes/admin/class-admin.php:2222
555
  msgid "Send CAPI hits for anonymous visitors who likely have blocked the Meta (Facebook) pixel."
556
  msgstr ""
557
 
558
+ #: classes/admin/class-admin.php:2251
559
  msgid "Include additional visitor's identifiers, such as IP address, email and shop ID in the CAPI hit."
560
  msgstr ""
561
 
562
+ #: classes/admin/class-admin.php:2279
563
  msgid "Enable Meta (Facebook) product microdata output"
564
  msgstr ""
565
 
566
+ #: classes/admin/class-admin.php:2315
567
  msgid "Only disable order duplication prevention for testing. Remember to re-enable the setting once done."
568
  msgstr ""
569
 
570
+ #: classes/admin/class-admin.php:2332
571
  msgid "Enable the maximum compatibility mode"
572
  msgstr ""
573
 
574
+ #: classes/admin/class-admin.php:2368
575
  msgid "Advanced order duplication prevention is "
576
  msgstr ""
577
 
578
+ #: classes/admin/class-admin.php:2370
579
  msgid "Basic order duplication prevention is "
580
  msgstr ""
581
 
582
+ #: classes/admin/class-admin.php:2394
583
  msgid "Enable dynamic remarketing audience collection"
584
  msgstr ""
585
 
586
+ #: classes/admin/class-admin.php:2415
587
  msgid "You need to choose the correct product identifier setting in order to match the product identifiers in the product feeds."
588
  msgstr ""
589
 
590
+ #: classes/admin/class-admin.php:2433
591
  msgid "Enable variations output"
592
  msgstr ""
593
 
594
+ #: classes/admin/class-admin.php:2444
595
  msgid "In order for this to work you need to upload your product feed including product variations and the item_group_id. Disable it, if you choose only to upload the parent product for variable products."
596
  msgstr ""
597
 
598
+ #: classes/admin/class-admin.php:2459
599
  msgid "Retail"
600
  msgstr ""
601
 
602
+ #: classes/admin/class-admin.php:2469
603
  msgid "Education"
604
  msgstr ""
605
 
606
+ #: classes/admin/class-admin.php:2479
607
  msgid "Hotels and rentals"
608
  msgstr ""
609
 
610
+ #: classes/admin/class-admin.php:2489
611
  msgid "Jobs"
612
  msgstr ""
613
 
614
+ #: classes/admin/class-admin.php:2499
615
  msgid "Local deals"
616
  msgstr ""
617
 
618
+ #: classes/admin/class-admin.php:2509
619
  msgid "Real estate"
620
  msgstr ""
621
 
622
+ #: classes/admin/class-admin.php:2519
623
  msgid "Custom"
624
  msgstr ""
625
 
626
+ #: classes/admin/class-admin.php:2538
627
  msgid "ID of your Google Merchant Center account. It looks like this: 12345678"
628
  msgstr ""
629
 
630
+ #: classes/admin/class-admin.php:2547
631
  msgid "post ID (default)"
632
  msgstr ""
633
 
634
+ #: classes/admin/class-admin.php:2553
635
  msgid "SKU"
636
  msgstr ""
637
 
638
+ #: classes/admin/class-admin.php:2560
639
  msgid "ID for the WooCommerce Google Product Feed. Outputs the post ID with woocommerce_gpf_ prefix *"
640
  msgstr ""
641
 
642
+ #: classes/admin/class-admin.php:2567
643
  msgid "ID for the WooCommerce Google Listings & Ads Plugin. Outputs the post ID with gla_ prefix **"
644
  msgstr ""
645
 
646
+ #: classes/admin/class-admin.php:2571
647
  msgid "Choose a product identifier."
648
  msgstr ""
649
 
650
+ #: classes/admin/class-admin.php:2574
651
  msgid "* This is for users of the WooCommerce Google Product Feed Plugin"
652
  msgstr ""
653
 
654
+ #: classes/admin/class-admin.php:2578
655
  msgid "** This is for users of the WooCommerce Google Listings & Ads Plugin"
656
  msgstr ""
657
 
658
+ #: classes/admin/class-admin.php:2591
659
+ #: classes/admin/class-admin.php:2596
 
 
 
 
660
  msgid "active"
661
  msgstr ""
662
 
663
+ #: classes/admin/class-admin.php:2601
664
+ #: classes/admin/class-admin.php:2606
665
  msgid "inactive"
666
  msgstr ""
667
 
668
+ #: classes/admin/class-admin.php:2611
669
+ #: classes/admin/class-admin.php:2616
670
  msgid "partially active"
671
  msgstr ""
672
 
673
+ #: classes/admin/class-admin.php:2627
674
  msgid "Pro Feature"
675
  msgstr ""
676
 
677
+ #: classes/admin/class-admin.php:2671
678
  msgid "You have entered an invalid Google Analytics Universal property ID."
679
  msgstr ""
680
 
681
+ #: classes/admin/class-admin.php:2679
682
  msgid "You have entered an invalid Google Analytics 4 measurement ID."
683
  msgstr ""
684
 
685
+ #: classes/admin/class-admin.php:2687
686
  msgid "You have entered an invalid Google Analytics 4 API key."
687
  msgstr ""
688
 
689
+ #: classes/admin/class-admin.php:2695
690
  msgid "You have entered an invalid conversion ID. It only contains 8 to 10 digits."
691
  msgstr ""
692
 
693
+ #: classes/admin/class-admin.php:2703
694
+ #: classes/admin/class-admin.php:2711
695
  msgid "You have entered an invalid conversion label."
696
  msgstr ""
697
 
698
+ #: classes/admin/class-admin.php:2719
699
  msgid "You have entered an invalid merchant ID. It only contains 6 to 12 digits."
700
  msgstr ""
701
 
702
+ #: classes/admin/class-admin.php:2727
703
  msgid "You have entered an invalid Google Optimize container ID."
704
  msgstr ""
705
 
706
+ #: classes/admin/class-admin.php:2735
707
  msgid "You have entered an invalid Meta (Facebook) pixel ID. It only contains 14 to 16 digits."
708
  msgstr ""
709
 
710
+ #: classes/admin/class-admin.php:2743
711
  msgid "You have entered an invalid Meta (Facebook) CAPI token."
712
  msgstr ""
713
 
714
+ #: classes/admin/class-admin.php:2751
715
  msgid "You have entered an invalid Bing Ads UET tag ID. It only contains 7 to 9 digits."
716
  msgstr ""
717
 
718
+ #: classes/admin/class-admin.php:2759
719
  msgid "You have entered an invalid Twitter pixel ID. It only contains 5 to 7 lowercase letters and numbers."
720
  msgstr ""
721
 
722
+ #: classes/admin/class-admin.php:2767
723
  msgid "You have entered an invalid Pinterest pixel ID. It only contains 13 digits."
724
  msgstr ""
725
 
726
+ #: classes/admin/class-admin.php:2775
727
  msgid "You have entered an invalid Snapchat pixel ID."
728
  msgstr ""
729
 
730
+ #: classes/admin/class-admin.php:2783
731
  msgid "You have entered an invalid TikTok pixel ID."
732
  msgstr ""
733
 
734
+ #: classes/admin/class-admin.php:2791
735
  msgid "You have entered an invalid Hotjar site ID. It only contains 6 to 9 digits."
736
  msgstr ""
737
 
738
  #. translators: %d: the amount of purchase conversions that have been measured
739
+ #: classes/admin/class-ask-for-rating.php:133
740
  msgid "Hey, I noticed that you tracked more than %d purchase conversions with the Pixel Manager for WooCommerce plugin - that's awesome! Could you please do me a BIG favour and give it a 5-star rating on WordPress? It will help to spread the word and boost our motivation."
741
  msgstr ""
742
 
743
+ #: classes/admin/class-ask-for-rating.php:150
744
  msgid "Ok, you deserve it"
745
  msgstr ""
746
 
747
+ #: classes/admin/class-ask-for-rating.php:155
748
  msgid "Nope, maybe later"
749
  msgstr ""
750
 
751
+ #: classes/admin/class-ask-for-rating.php:164
752
  msgid "I already did"
753
  msgstr ""
754
 
755
+ #: classes/admin/class-ask-for-rating.php:170
756
  #: classes/admin/class-notifications.php:131
757
  #: classes/admin/class-notifications.php:180
758
  msgid "If the dismiss button is not working, here's why >>"
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
- === Pixel Manager for WooCommerce ===
2
  Contributors: alekv, wolfbaer
3
  Tags: woocommerce, google ads, google analytics, facebook pixel, conversion tracking, dynamic retargeting, remarketing, meta pixel, facebook conversion api, woocommerce google, woocommerce facebook
4
  Requires at least: 3.7
5
  Tested up to: 6.0
6
  Requires PHP: 7.3
7
- Stable tag: 1.18.1
8
  License: GPLv3 or later
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -198,6 +198,14 @@ You can send the link to the front page of your shop too if you think it would b
198
 
199
  == Changelog ==
200
 
 
 
 
 
 
 
 
 
201
  = 1.18.1 = 04.08.2022
202
 
203
  * Fix: Fixed the test which checks if Facebook CAPI is enabled.
1
+ === Pixel Manager for WooCommerce - Track Google Analytics, Google Ads, Facebook and more ===
2
  Contributors: alekv, wolfbaer
3
  Tags: woocommerce, google ads, google analytics, facebook pixel, conversion tracking, dynamic retargeting, remarketing, meta pixel, facebook conversion api, woocommerce google, woocommerce facebook
4
  Requires at least: 3.7
5
  Tested up to: 6.0
6
  Requires PHP: 7.3
7
+ Stable tag: 1.19.0
8
  License: GPLv3 or later
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
198
 
199
  == Changelog ==
200
 
201
+ = 1.19.0 = 10.08.2022
202
+
203
+ * New: Introduced new diagnostics section in the settings page.
204
+ * Tweak: Refactored documentation URL link compilation.
205
+ * Tweak: Added sanitization for importing settings.
206
+ * Tweak: Improved sanitization for arrays.
207
+ * Tweak: Added sanitization for saving state when purchase pixels have fired.
208
+
209
  = 1.18.1 = 04.08.2022
210
 
211
  * Fix: Fixed the test which checks if Facebook CAPI is enabled.
wgact.php CHANGED
@@ -10,16 +10,16 @@
10
  * Developer URI: https://sweetcode.com
11
  * Text Domain: woocommerce-google-adwords-conversion-tracking-tag
12
  * Domain path: /languages
13
- * * Version: 1.18.1
14
  *
15
  * WC requires at least: 3.7
16
- * WC tested up to: 6.6
17
  *
18
  * License: GNU General Public License v3.0
19
  * License URI: http://www.gnu.org/licenses/gpl-3.0.html
20
  *
21
  **/
22
- const WPM_CURRENT_VERSION = '1.18.1' ;
23
  // TODO export settings function
24
  // TODO add option checkbox on uninstall and ask if user wants to delete options from db
25
 
10
  * Developer URI: https://sweetcode.com
11
  * Text Domain: woocommerce-google-adwords-conversion-tracking-tag
12
  * Domain path: /languages
13
+ * * Version: 1.19.0
14
  *
15
  * WC requires at least: 3.7
16
+ * WC tested up to: 6.8
17
  *
18
  * License: GNU General Public License v3.0
19
  * License URI: http://www.gnu.org/licenses/gpl-3.0.html
20
  *
21
  **/
22
+ const WPM_CURRENT_VERSION = '1.19.0' ;
23
  // TODO export settings function
24
  // TODO add option checkbox on uninstall and ask if user wants to delete options from db
25