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

Version Description

26.05.2022

  • New: Added GA4 session ID handling. This is experimental as it is not documented by Google.
  • Tweak: Added tier info into debug info
  • Tweak: Added more FB user information for logged in users
  • Tweak: Prevent slow processing of large amount of variation data for variable products with > 64 variations
  • Tweak: Increased server test timout to minimize false negatives
  • Fix: Workaround if $_server['HTTP_HOST'] is not set
  • Fix: Workaround if $_server['REMOTE_ADDR'] is not set
Download this release

Release Info

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

Code changes from version 1.17.3 to 1.17.4

classes/admin/class-debug-info.php CHANGED
@@ -18,15 +18,20 @@ class Debug_Info {
18
  }
19
 
20
  public function get_debug_info() {
 
21
  global $woocommerce, $wp_version, $current_user, $hook_suffix;
22
 
23
  $html = '### Debug Information ###' . PHP_EOL . PHP_EOL;
24
 
25
- $html .= '## System Environment ##' . PHP_EOL . PHP_EOL;
26
 
27
- $html .= 'This plugin\'s version: ' . WPM_CURRENT_VERSION . PHP_EOL;
28
 
29
- $html .= PHP_EOL;
 
 
 
 
30
 
31
  $html .= 'WordPress version: ' . $wp_version . PHP_EOL;
32
  $html .= 'WooCommerce version: ' . $woocommerce->version . PHP_EOL;
@@ -179,9 +184,10 @@ class Debug_Info {
179
  // Google and Facebook might block free proxy requests
180
  private function wp_remote_get_response( $url ) {
181
  $response = wp_remote_get($url, [
182
- 'timeout' => 1,
183
  'sslverify' => false,
184
  'limit_response_size' => 5000,
 
185
  ]);
186
 
187
  // error_log(print_r($response, true));
18
  }
19
 
20
  public function get_debug_info() {
21
+
22
  global $woocommerce, $wp_version, $current_user, $hook_suffix;
23
 
24
  $html = '### Debug Information ###' . PHP_EOL . PHP_EOL;
25
 
26
+ $html .= '## Pixel Manager Info ##' . PHP_EOL . PHP_EOL;
27
 
28
+ $html .= 'Version: ' . WPM_CURRENT_VERSION . PHP_EOL;
29
 
30
+ $tier = wpm_fs()->is__premium_only() ? 'pro' : 'free';
31
+
32
+ $html .= 'Tier: ' . $tier . PHP_EOL;
33
+
34
+ $html .= PHP_EOL . '## System Environment ##' . PHP_EOL . PHP_EOL;
35
 
36
  $html .= 'WordPress version: ' . $wp_version . PHP_EOL;
37
  $html .= 'WooCommerce version: ' . $woocommerce->version . PHP_EOL;
184
  // Google and Facebook might block free proxy requests
185
  private function wp_remote_get_response( $url ) {
186
  $response = wp_remote_get($url, [
187
+ 'timeout' => 4,
188
  'sslverify' => false,
189
  'limit_response_size' => 5000,
190
+ 'blocking' => true, // We need to wait to see if we get a server response 200
191
  ]);
192
 
193
  // error_log(print_r($response, true));
classes/pixels/class-pixel-manager.php CHANGED
@@ -242,15 +242,19 @@ class Pixel_Manager
242
  *
243
  * @noinspection PhpPossiblePolymorphicInvocationInspection
244
  */
245
- foreach ( $product->get_available_variations() as $key => $variation ) {
246
- $variable_product = wc_get_product( $variation['variation_id'] );
 
 
 
 
 
 
 
 
 
247
 
248
- if ( is_object( $variable_product ) ) {
249
- $this->get_product_data_layer_script( $variable_product, false, true );
250
- } else {
251
- $this->log_problematic_product_id( $variation['variation_id'] );
252
  }
253
-
254
  }
255
  }
256
  }
@@ -394,6 +398,7 @@ class Pixel_Manager
394
  'measurement_id' => $this->options_obj->google->analytics->ga4->measurement_id,
395
  'parameters' => (object) $this->google->get_ga4_parameters( $this->options_obj->google->analytics->ga4->measurement_id ),
396
  'mp_active' => $this->options_obj->google->analytics->ga4->api_secret && wpm_fs()->is__premium_only(),
 
397
  ],
398
  'id_type' => $this->google->get_ga_id_type(),
399
  'eec' => (bool) $this->options_obj->google->analytics->eec,
@@ -555,15 +560,70 @@ class Pixel_Manager
555
  return $data;
556
  }
557
 
 
 
 
 
 
 
 
 
558
  protected function get_user_data()
559
  {
560
  $data = [];
561
 
562
  if ( is_user_logged_in() || is_order_received_page() ) {
 
563
  $data['id'] = get_current_user_id();
564
- $data['fb_external_id'] = hash( 'sha256', get_current_user_id() );
565
  $data['email'] = $this->get_user_email();
566
  $data['email_sha256'] = $this->get_user_email( 'sha256' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
567
  }
568
 
569
  return $data;
242
  *
243
  * @noinspection PhpPossiblePolymorphicInvocationInspection
244
  */
245
+ // Prevent processing of large amount of variations
246
+ // because get_available_variations() is very slow
247
+ if ( 64 > count( $product->get_children() ) ) {
248
+ foreach ( $product->get_available_variations() as $key => $variation ) {
249
+ $variable_product = wc_get_product( $variation['variation_id'] );
250
+
251
+ if ( is_object( $variable_product ) ) {
252
+ $this->get_product_data_layer_script( $variable_product, false, true );
253
+ } else {
254
+ $this->log_problematic_product_id( $variation['variation_id'] );
255
+ }
256
 
 
 
 
 
257
  }
 
258
  }
259
  }
260
  }
398
  'measurement_id' => $this->options_obj->google->analytics->ga4->measurement_id,
399
  'parameters' => (object) $this->google->get_ga4_parameters( $this->options_obj->google->analytics->ga4->measurement_id ),
400
  'mp_active' => $this->options_obj->google->analytics->ga4->api_secret && wpm_fs()->is__premium_only(),
401
+ 'debug_mode' => $this->google->is_ga4_debug_mode_active(),
402
  ],
403
  'id_type' => $this->google->get_ga_id_type(),
404
  'eec' => (bool) $this->options_obj->google->analytics->eec,
560
  return $data;
561
  }
562
 
563
+ /**
564
+ * We are controlling the entire output in all formats from here. Why?
565
+ * Because each pixel has different requirements for each data field.
566
+ * Hashed, not hashed, lower case, not lower case, phone with + or without +,
567
+ * etc.
568
+ *
569
+ * @return array
570
+ */
571
  protected function get_user_data()
572
  {
573
  $data = [];
574
 
575
  if ( is_user_logged_in() || is_order_received_page() ) {
576
+ $current_user = wp_get_current_user();
577
  $data['id'] = get_current_user_id();
578
+ // $data['fb_external_id'] = hash('sha256', get_current_user_id());
579
  $data['email'] = $this->get_user_email();
580
  $data['email_sha256'] = $this->get_user_email( 'sha256' );
581
+ $data['sha256']['email'] = $this->get_user_email( 'sha256' );
582
+ // plain user data
583
+ $data['plain']['email'] = $current_user->user_email;
584
+ $data['facebook']['email'] = hash( 'sha256', $current_user->user_email );
585
+
586
+ if ( isset( $current_user->first_name ) ) {
587
+ $data['plain']['first_name'] = trim( $current_user->first_name );
588
+ $data['facebook']['first_name'] = trim( strtolower( $current_user->first_name ) );
589
+ }
590
+
591
+
592
+ if ( isset( $current_user->last_name ) ) {
593
+ $data['plain']['last_name'] = trim( $current_user->last_name );
594
+ $data['facebook']['last_name'] = trim( strtolower( $current_user->last_name ) );
595
+ }
596
+
597
+
598
+ if ( isset( $current_user->billing_phone ) ) {
599
+ $data['plain']['phone'] = trim( $current_user->billing_phone );
600
+ $data['facebook']['phone'] = str_replace( '+', '', trim( strtolower( $current_user->billing_phone ) ) );
601
+ }
602
+
603
+
604
+ if ( isset( $current_user->billing_postcode ) ) {
605
+ $data['plain']['postcode'] = trim( $current_user->billing_postcode );
606
+ $data['facebook']['postcode'] = trim( strtolower( $current_user->billing_postcode ) );
607
+ }
608
+
609
+
610
+ if ( isset( $current_user->billing_city ) ) {
611
+ $data['plain']['city'] = trim( $current_user->billing_city );
612
+ $data['facebook']['city'] = trim( strtolower( $current_user->billing_city ) );
613
+ }
614
+
615
+
616
+ if ( isset( $current_user->billing_state ) ) {
617
+ $data['plain']['state'] = trim( $current_user->billing_state );
618
+ $data['facebook']['state'] = preg_replace( '/[a-zA-Z]{2}-/', '', trim( strtolower( $current_user->billing_state ) ) );
619
+ }
620
+
621
+
622
+ if ( isset( $current_user->billing_country ) ) {
623
+ $data['plain']['country'] = trim( $current_user->billing_country );
624
+ $data['facebook']['country'] = trim( strtolower( $current_user->billing_country ) );
625
+ }
626
+
627
  }
628
 
629
  return $data;
classes/pixels/google/class-google.php CHANGED
@@ -15,6 +15,18 @@ class Google extends Pixel
15
  {
16
  use Trait_Shop ;
17
  private $google_ads_conversion_identifiers ;
 
 
 
 
 
 
 
 
 
 
 
 
18
  public function __construct( $options )
19
  {
20
  parent::__construct( $options );
15
  {
16
  use Trait_Shop ;
17
  private $google_ads_conversion_identifiers ;
18
+ public function is_ga4_debug_mode_active()
19
+ {
20
+ $debug_mode = apply_filters_deprecated(
21
+ 'wooptpm_enable_ga_4_mp_event_debug_mode',
22
+ [ false ],
23
+ '1.13.0',
24
+ 'wpm_enable_ga_4_mp_event_debug_mode'
25
+ );
26
+ $debug_mode = apply_filters( 'wpm_enable_ga_4_mp_event_debug_mode', $debug_mode );
27
+ return $debug_mode;
28
+ }
29
+
30
  public function __construct( $options )
31
  {
32
  parent::__construct( $options );
classes/pixels/trait-shop.php CHANGED
@@ -270,10 +270,9 @@ trait Trait_Shop
270
 
271
  protected function is_localhost()
272
  {
273
- $_server = filter_input_array( INPUT_SERVER, FILTER_SANITIZE_FULL_SPECIAL_CHARS );
274
  // If the IP is local, return true, else false
275
  // https://stackoverflow.com/a/13818647/4688612
276
- return !filter_var( $_server['REMOTE_ADDR'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE );
277
  }
278
 
279
  protected function get_user_email( $algo = null )
@@ -421,6 +420,11 @@ trait Trait_Shop
421
  // error_log(print_r($_server['HTTP_HOST'], true));
422
  // error_log('get_site_url(): ' . parse_url(get_site_url(), PHP_URL_HOST));
423
  // error_log('parse url https://www.exampel.com : ' . parse_url('https://www.exampel.com', PHP_URL_HOST));
 
 
 
 
 
424
 
425
  if ( wp_parse_url( get_site_url(), PHP_URL_HOST ) === $_server['HTTP_HOST'] ) {
426
  return true;
@@ -430,6 +434,18 @@ trait Trait_Shop
430
 
431
  }
432
 
 
 
 
 
 
 
 
 
 
 
 
 
433
  protected function can_order_confirmation_be_processed( $order )
434
  {
435
  $conversion_prevention = false;
270
 
271
  protected function is_localhost()
272
  {
 
273
  // If the IP is local, return true, else false
274
  // https://stackoverflow.com/a/13818647/4688612
275
+ return !filter_var( WC_Geolocation::get_ip_address(), FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE );
276
  }
277
 
278
  protected function get_user_email( $algo = null )
420
  // error_log(print_r($_server['HTTP_HOST'], true));
421
  // error_log('get_site_url(): ' . parse_url(get_site_url(), PHP_URL_HOST));
422
  // error_log('parse url https://www.exampel.com : ' . parse_url('https://www.exampel.com', PHP_URL_HOST));
423
+ // Servers like Siteground don't seem to always provide $_server['HTTP_HOST']
424
+ // In that case we need to pretend that we're on the same server
425
+ if ( !isset( $_server['HTTP_HOST'] ) ) {
426
+ return true;
427
+ }
428
 
429
  if ( wp_parse_url( get_site_url(), PHP_URL_HOST ) === $_server['HTTP_HOST'] ) {
430
  return true;
434
 
435
  }
436
 
437
+ // https://stackoverflow.com/a/60199374/4688612
438
+ protected function is_iframe()
439
+ {
440
+
441
+ if ( isset( $_SERVER['HTTP_SEC_FETCH_DEST'] ) && 'iframe' === $_SERVER['HTTP_SEC_FETCH_DEST'] ) {
442
+ return true;
443
+ } else {
444
+ return false;
445
+ }
446
+
447
+ }
448
+
449
  protected function can_order_confirmation_be_processed( $order )
450
  {
451
  $conversion_prevention = false;
js/public/wpm-public.p1.min.js CHANGED
@@ -1,2 +1,2 @@
1
- (()=>{var e={4749:(e,t,r)=>{var o=r(5433),a=r(2856),n=r(7406),i=o.TypeError;e.exports=function(e){if(a(e))return e;throw i(n(e)+" is not a function")}},1342:(e,t,r)=>{var o=r(1286),a=r(8810),n=r(7872),i=o("unscopables"),l=Array.prototype;null==l[i]&&n.f(l,i,{configurable:!0,value:a(null)}),e.exports=function(e){l[i][e]=!0}},448:(e,t,r)=>{var o=r(5433),a=r(6873),n=o.String,i=o.TypeError;e.exports=function(e){if(a(e))return e;throw i(n(e)+" is not an object")}},5071:(e,t,r)=>{var o=r(5185),a=r(873),n=r(918),i=function(e){return function(t,r,i){var l,s=o(t),d=n(s),c=a(i,d);if(e&&r!=r){for(;d>c;)if((l=s[c++])!=l)return!0}else for(;d>c;c++)if((e||c in s)&&s[c]===r)return e||c||0;return!e&&-1}};e.exports={includes:i(!0),indexOf:i(!1)}},5248:(e,t,r)=>{var o=r(547),a=o({}.toString),n=o("".slice);e.exports=function(e){return n(a(e),8,-1)}},632:(e,t,r)=>{var o=r(3208),a=r(5313),n=r(8688),i=r(7872);e.exports=function(e,t,r){for(var l=a(t),s=i.f,d=n.f,c=0;c<l.length;c++){var u=l[c];o(e,u)||r&&o(r,u)||s(e,u,d(t,u))}}},2357:(e,t,r)=>{var o=r(414),a=r(7872),n=r(6730);e.exports=o?function(e,t,r){return a.f(e,t,n(1,r))}:function(e,t,r){return e[t]=r,e}},6730:e=>{e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},4279:(e,t,r)=>{var o=r(5433),a=r(2856),n=r(2357),i=r(1998),l=r(2012);e.exports=function(e,t,r,s){var d=!!s&&!!s.unsafe,c=!!s&&!!s.enumerable,u=!!s&&!!s.noTargetGet,p=s&&void 0!==s.name?s.name:t;return a(r)&&i(r,p,s),e===o?(c?e[t]=r:l(t,r),e):(d?!u&&e[t]&&(c=!0):delete e[t],c?e[t]=r:n(e,t,r),e)}},414:(e,t,r)=>{var o=r(2933);e.exports=!o((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},2388:(e,t,r)=>{var o=r(5433),a=r(6873),n=o.document,i=a(n)&&a(n.createElement);e.exports=function(e){return i?n.createElement(e):{}}},5575:(e,t,r)=>{var o=r(1272);e.exports=o("navigator","userAgent")||""},5723:(e,t,r)=>{var o,a,n=r(5433),i=r(5575),l=n.process,s=n.Deno,d=l&&l.versions||s&&s.version,c=d&&d.v8;c&&(a=(o=c.split("."))[0]>0&&o[0]<4?1:+(o[0]+o[1])),!a&&i&&(!(o=i.match(/Edge\/(\d+)/))||o[1]>=74)&&(o=i.match(/Chrome\/(\d+)/))&&(a=+o[1]),e.exports=a},5604:e=>{e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},4429:(e,t,r)=>{var o=r(5433),a=r(8688).f,n=r(2357),i=r(4279),l=r(2012),s=r(632),d=r(1476);e.exports=function(e,t){var r,c,u,p,g,m=e.target,y=e.global,v=e.stat;if(r=y?o:v?o[m]||l(m,{}):(o[m]||{}).prototype)for(c in t){if(p=t[c],u=e.noTargetGet?(g=a(r,c))&&g.value:r[c],!d(y?c:m+(v?".":"#")+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(r,c,p,e)}}},2933:e=>{e.exports=function(e){try{return!!e()}catch(e){return!0}}},3001:(e,t,r)=>{var o=r(2933);e.exports=!o((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))},3573:(e,t,r)=>{var o=r(3001),a=Function.prototype.call;e.exports=o?a.bind(a):function(){return a.apply(a,arguments)}},4081:(e,t,r)=>{var o=r(414),a=r(3208),n=Function.prototype,i=o&&Object.getOwnPropertyDescriptor,l=a(n,"name"),s=l&&"something"===function(){}.name,d=l&&(!o||o&&i(n,"name").configurable);e.exports={EXISTS:l,PROPER:s,CONFIGURABLE:d}},547:(e,t,r)=>{var o=r(3001),a=Function.prototype,n=a.bind,i=a.call,l=o&&n.bind(i,i);e.exports=o?function(e){return e&&l(e)}:function(e){return e&&function(){return i.apply(e,arguments)}}},1272:(e,t,r)=>{var o=r(5433),a=r(2856),n=function(e){return a(e)?e:void 0};e.exports=function(e,t){return arguments.length<2?n(o[e]):o[e]&&o[e][t]}},9345:(e,t,r)=>{var o=r(4749);e.exports=function(e,t){var r=e[t];return null==r?void 0:o(r)}},5433:(e,t,r)=>{var o=function(e){return e&&e.Math==Math&&e};e.exports=o("object"==typeof globalThis&&globalThis)||o("object"==typeof window&&window)||o("object"==typeof self&&self)||o("object"==typeof r.g&&r.g)||function(){return this}()||Function("return this")()},3208:(e,t,r)=>{var o=r(547),a=r(4021),n=o({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,t){return n(a(e),t)}},7557:e=>{e.exports={}},6383:(e,t,r)=>{var o=r(1272);e.exports=o("document","documentElement")},5841:(e,t,r)=>{var o=r(414),a=r(2933),n=r(2388);e.exports=!o&&!a((function(){return 7!=Object.defineProperty(n("div"),"a",{get:function(){return 7}}).a}))},8946:(e,t,r)=>{var o=r(5433),a=r(547),n=r(2933),i=r(5248),l=o.Object,s=a("".split);e.exports=n((function(){return!l("z").propertyIsEnumerable(0)}))?function(e){return"String"==i(e)?s(e,""):l(e)}:l},2009:(e,t,r)=>{var o=r(547),a=r(2856),n=r(3479),i=o(Function.toString);a(n.inspectSource)||(n.inspectSource=function(e){return i(e)}),e.exports=n.inspectSource},418:(e,t,r)=>{var o,a,n,i=r(3829),l=r(5433),s=r(547),d=r(6873),c=r(2357),u=r(3208),p=r(3479),g=r(8607),m=r(7557),y="Object already initialized",v=l.TypeError,w=l.WeakMap;if(i||p.state){var f=p.state||(p.state=new w),_=s(f.get),h=s(f.has),L=s(f.set);o=function(e,t){if(h(f,e))throw new v(y);return t.facade=e,L(f,e,t),t},a=function(e){return _(f,e)||{}},n=function(e){return h(f,e)}}else{var D=g("state");m[D]=!0,o=function(e,t){if(u(e,D))throw new v(y);return t.facade=e,c(e,D,t),t},a=function(e){return u(e,D)?e[D]:{}},n=function(e){return u(e,D)}}e.exports={set:o,get:a,has:n,enforce:function(e){return n(e)?a(e):o(e,{})},getterFor:function(e){return function(t){var r;if(!d(t)||(r=a(t)).type!==e)throw v("Incompatible receiver, "+e+" required");return r}}}},2856:e=>{e.exports=function(e){return"function"==typeof e}},1476:(e,t,r)=>{var o=r(2933),a=r(2856),n=/#|\.prototype\./,i=function(e,t){var r=s[l(e)];return r==c||r!=d&&(a(t)?o(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,r)=>{var o=r(2856);e.exports=function(e){return"object"==typeof e?null!==e:o(e)}},2390:e=>{e.exports=!1},9650:(e,t,r)=>{var o=r(5433),a=r(1272),n=r(2856),i=r(7012),l=r(8951),s=o.Object;e.exports=l?function(e){return"symbol"==typeof e}:function(e){var t=a("Symbol");return n(t)&&i(t.prototype,s(e))}},918:(e,t,r)=>{var o=r(9262);e.exports=function(e){return o(e.length)}},1998:(e,t,r)=>{var o=r(2933),a=r(2856),n=r(3208),i=r(414),l=r(4081).CONFIGURABLE,s=r(2009),d=r(418),c=d.enforce,u=d.get,p=Object.defineProperty,g=i&&!o((function(){return 8!==p((function(){}),"length",{value:8}).length})),m=String(String).split("String"),y=e.exports=function(e,t,r){if("Symbol("===String(t).slice(0,7)&&(t="["+String(t).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),r&&r.getter&&(t="get "+t),r&&r.setter&&(t="set "+t),(!n(e,"name")||l&&e.name!==t)&&p(e,"name",{value:t,configurable:!0}),g&&r&&n(r,"arity")&&e.length!==r.arity&&p(e,"length",{value:r.arity}),r&&n(r,"constructor")&&r.constructor){if(i)try{p(e,"prototype",{writable:!1})}catch(e){}}else e.prototype=void 0;var o=c(e);return n(o,"source")||(o.source=m.join("string"==typeof t?t:"")),e};Function.prototype.toString=y((function(){return a(this)&&u(this).source||s(this)}),"toString")},6634:(e,t,r)=>{var o=r(5723),a=r(2933);e.exports=!!Object.getOwnPropertySymbols&&!a((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&o&&o<41}))},3829:(e,t,r)=>{var o=r(5433),a=r(2856),n=r(2009),i=o.WeakMap;e.exports=a(i)&&/native code/.test(n(i))},8810:(e,t,r)=>{var o,a=r(448),n=r(21),i=r(5604),l=r(7557),s=r(6383),d=r(2388),c=r(8607)("IE_PROTO"),u=function(){},p=function(e){return"<script>"+e+"<\/script>"},g=function(e){e.write(p("")),e.close();var t=e.parentWindow.Object;return e=null,t},m=function(){try{o=new ActiveXObject("htmlfile")}catch(e){}var e,t;m="undefined"!=typeof document?document.domain&&o?g(o):((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):g(o);for(var r=i.length;r--;)delete m.prototype[i[r]];return m()};l[c]=!0,e.exports=Object.create||function(e,t){var r;return null!==e?(u.prototype=a(e),r=new u,u.prototype=null,r[c]=e):r=m(),void 0===t?r:n.f(r,t)}},21:(e,t,r)=>{var o=r(414),a=r(8272),n=r(7872),i=r(448),l=r(5185),s=r(8454);t.f=o&&!a?Object.defineProperties:function(e,t){i(e);for(var r,o=l(t),a=s(t),d=a.length,c=0;d>c;)n.f(e,r=a[c++],o[r]);return e}},7872:(e,t,r)=>{var o=r(5433),a=r(414),n=r(5841),i=r(8272),l=r(448),s=r(29),d=o.TypeError,c=Object.defineProperty,u=Object.getOwnPropertyDescriptor;t.f=a?i?function(e,t,r){if(l(e),t=s(t),l(r),"function"==typeof e&&"prototype"===t&&"value"in r&&"writable"in r&&!r.writable){var o=u(e,t);o&&o.writable&&(e[t]=r.value,r={configurable:"configurable"in r?r.configurable:o.configurable,enumerable:"enumerable"in r?r.enumerable:o.enumerable,writable:!1})}return c(e,t,r)}:c:function(e,t,r){if(l(e),t=s(t),l(r),n)try{return c(e,t,r)}catch(e){}if("get"in r||"set"in r)throw d("Accessors not supported");return"value"in r&&(e[t]=r.value),e}},8688:(e,t,r)=>{var o=r(414),a=r(3573),n=r(4017),i=r(6730),l=r(5185),s=r(29),d=r(3208),c=r(5841),u=Object.getOwnPropertyDescriptor;t.f=o?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,r)=>{var o=r(209),a=r(5604).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return o(e,a)}},6824:(e,t)=>{t.f=Object.getOwnPropertySymbols},7012:(e,t,r)=>{var o=r(547);e.exports=o({}.isPrototypeOf)},209:(e,t,r)=>{var o=r(547),a=r(3208),n=r(5185),i=r(5071).indexOf,l=r(7557),s=o([].push);e.exports=function(e,t){var r,o=n(e),d=0,c=[];for(r in o)!a(l,r)&&a(o,r)&&s(c,r);for(;t.length>d;)a(o,r=t[d++])&&(~i(c,r)||s(c,r));return c}},8454:(e,t,r)=>{var o=r(209),a=r(5604);e.exports=Object.keys||function(e){return o(e,a)}},4017:(e,t)=>{"use strict";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,a=o&&!r.call({1:2},1);t.f=a?function(e){var t=o(this,e);return!!t&&t.enumerable}:r},542:(e,t,r)=>{var o=r(5433),a=r(3573),n=r(2856),i=r(6873),l=o.TypeError;e.exports=function(e,t){var r,o;if("string"===t&&n(r=e.toString)&&!i(o=a(r,e)))return o;if(n(r=e.valueOf)&&!i(o=a(r,e)))return o;if("string"!==t&&n(r=e.toString)&&!i(o=a(r,e)))return o;throw l("Can't convert object to primitive value")}},5313:(e,t,r)=>{var o=r(1272),a=r(547),n=r(7839),i=r(6824),l=r(448),s=a([].concat);e.exports=o("Reflect","ownKeys")||function(e){var t=n.f(l(e)),r=i.f;return r?s(t,r(e)):t}},4630:(e,t,r)=>{var o=r(5433).TypeError;e.exports=function(e){if(null==e)throw o("Can't call method on "+e);return e}},2012:(e,t,r)=>{var o=r(5433),a=Object.defineProperty;e.exports=function(e,t){try{a(o,e,{value:t,configurable:!0,writable:!0})}catch(r){o[e]=t}return t}},8607:(e,t,r)=>{var o=r(3062),a=r(5834),n=o("keys");e.exports=function(e){return n[e]||(n[e]=a(e))}},3479:(e,t,r)=>{var o=r(5433),a=r(2012),n="__core-js_shared__",i=o[n]||a(n,{});e.exports=i},3062:(e,t,r)=>{var o=r(2390),a=r(3479);(e.exports=function(e,t){return a[e]||(a[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.22.5",mode:o?"pure":"global",copyright:"© 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.22.5/LICENSE",source:"https://github.com/zloirock/core-js"})},873:(e,t,r)=>{var o=r(7219),a=Math.max,n=Math.min;e.exports=function(e,t){var r=o(e);return r<0?a(r+t,0):n(r,t)}},5185:(e,t,r)=>{var o=r(8946),a=r(4630);e.exports=function(e){return o(a(e))}},7219:e=>{var t=Math.ceil,r=Math.floor;e.exports=function(e){var o=+e;return o!=o||0===o?0:(o>0?r:t)(o)}},9262:(e,t,r)=>{var o=r(7219),a=Math.min;e.exports=function(e){return e>0?a(o(e),9007199254740991):0}},4021:(e,t,r)=>{var o=r(5433),a=r(4630),n=o.Object;e.exports=function(e){return n(a(e))}},9984:(e,t,r)=>{var o=r(5433),a=r(3573),n=r(6873),i=r(9650),l=r(9345),s=r(542),d=r(1286),c=o.TypeError,u=d("toPrimitive");e.exports=function(e,t){if(!n(e)||i(e))return e;var r,o=l(e,u);if(o){if(void 0===t&&(t="default"),r=a(o,e,t),!n(r)||i(r))return r;throw c("Can't convert object to primitive value")}return void 0===t&&(t="number"),s(e,t)}},29:(e,t,r)=>{var o=r(9984),a=r(9650);e.exports=function(e){var t=o(e,"string");return a(t)?t:t+""}},7406:(e,t,r)=>{var o=r(5433).String;e.exports=function(e){try{return o(e)}catch(e){return"Object"}}},5834:(e,t,r)=>{var o=r(547),a=0,n=Math.random(),i=o(1..toString);e.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+i(++a+n,36)}},8951:(e,t,r)=>{var o=r(6634);e.exports=o&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},8272:(e,t,r)=>{var o=r(414),a=r(2933);e.exports=o&&a((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},1286:(e,t,r)=>{var o=r(5433),a=r(3062),n=r(3208),i=r(5834),l=r(6634),s=r(8951),d=a("wks"),c=o.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,r)=>{"use strict";r(3647);var o=r(4429),a=r(5071).includes,n=r(2933),i=r(1342);o({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",(function(){var e,t,r,o,a,n;null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(r=t.facebook)||void 0===r||!r.pixel_id||null!==(o=wpmDataLayer)&&void 0!==o&&null!==(a=o.pixels)&&void 0!==a&&null!==(n=a.facebook)&&void 0!==n&&n.loaded||wpm.canIFire("ads","facebook-ads")&&wpm.loadFacebookPixel()})),jQuery(document).on("wpmAddToCart",(function(e,t){try{var r,o,a;if(null===(r=wpmDataLayer)||void 0===r||null===(o=r.pixels)||void 0===o||null===(a=o.facebook)||void 0===a||!a.loaded)return;let e=wpm.getRandomEventId();fbq("track","AddToCart",{content_type:"product",content_name:t.name,content_ids:t.dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type],value:parseFloat(t.quantity*t.price),currency:t.currency},{eventID:e}),t.currency=wpmDataLayer.shop.currency,console.log(t),jQuery(document).trigger("wpmFbCapiEvent",{event_name:"AddToCart",event_id:e,user_data:wpm.getFbUserData(),event_source_url:window.location.href,custom_data:wpm.fbGetProductDataForCapiEvent(t)})}catch(e){console.error(e)}})),jQuery(document).on("wpmBeginCheckout",(function(e){try{var t,r,o;if(null===(t=wpmDataLayer)||void 0===t||null===(r=t.pixels)||void 0===r||null===(o=r.facebook)||void 0===o||!o.loaded)return;let e=wpm.getRandomEventId();fbq("track","InitiateCheckout",{},{eventID:e}),jQuery(document).trigger("wpmFbCapiEvent",{event_name:"InitiateCheckout",event_id:e,user_data:wpm.getFbUserData(),event_source_url:window.location.href})}catch(e){console.error(e)}})),jQuery(document).on("wpmAddToWishlist",(function(e,t){try{var r,o,a;if(null===(r=wpmDataLayer)||void 0===r||null===(o=r.pixels)||void 0===o||null===(a=o.facebook)||void 0===a||!a.loaded)return;let e=wpm.getRandomEventId();fbq("track","AddToWishlist",{content_type:"product",content_name:t.name,content_ids:t.dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type],value:parseFloat(t.quantity*t.price),currency:t.currency},{eventID:e}),t.currency=wpmDataLayer.shop.currency,jQuery(document).trigger("wpmFbCapiEvent",{event_name:"AddToWishlist",event_id:e,user_data:wpm.getFbUserData(),event_source_url:window.location.href,custom_data:wpm.fbGetProductDataForCapiEvent(t)})}catch(e){console.error(e)}})),jQuery(document).on("wpmViewItem",(function(e,t){try{var r,o,a;if(null===(r=wpmDataLayer)||void 0===r||null===(o=r.pixels)||void 0===o||null===(a=o.facebook)||void 0===a||!a.loaded)return;wpm.fbViewContent(t)}catch(e){console.error(e)}})),jQuery(document).on("wpmSearch",(function(){try{var e,t,r;if(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(r=t.facebook)||void 0===r||!r.loaded)return;let o=wpm.getRandomEventId();fbq("track","Search",{},{eventID:o}),jQuery(document).trigger("wpmFbCapiEvent",{event_name:"Search",event_id:o,user_data:wpm.getFbUserData(),event_source_url:window.location.href,custom_data:{search_string:wpm.getSearchTermFromUrl()}})}catch(e){console.error(e)}})),jQuery(document).on("wpmLoadAlways",(function(){try{var e,t,r;if(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(r=t.facebook)||void 0===r||!r.loaded)return;wpm.setFbUserData()}catch(e){console.error(e)}})),jQuery(document).on("wpmOrderReceivedPage",(function(){try{var e,t,r;if(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(r=t.facebook)||void 0===r||!r.loaded)return;fbq("track","Purchase",{content_type:"product",value:wpmDataLayer.order.value_filtered,currency:wpmDataLayer.order.currency,content_ids:wpm.facebookContentIds()},{eventID:wpmDataLayer.order.id})}catch(e){console.error(e)}}))},7746:()=>{!function(e,t,r){let o;e.loadFacebookPixel=()=>{try{var e,t,r,o,a,n,i,l,s,d,c,u,p,g,m,y,v,w,f,_;wpmDataLayer.pixels.facebook.loaded=!0,h=window,L=document,D="script",h.fbq||(b=h.fbq=function(){b.callMethod?b.callMethod.apply(b,arguments):b.queue.push(arguments)},h._fbq||(h._fbq=b),b.push=b,b.loaded=!0,b.version="2.0",b.queue=[],(x=L.createElement(D)).async=!0,x.src="https://connect.facebook.net/en_US/fbevents.js",(j=L.getElementsByTagName(D)[0]).parentNode.insertBefore(x,j));let C={};null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.user)&&void 0!==t&&t.id&&(C.external_id=wpmDataLayer.user.id),null!==(r=wpmDataLayer)&&void 0!==r&&null!==(o=r.order)&&void 0!==o&&o.user_id&&(C.external_id=wpmDataLayer.order.user_id),null!==(a=wpmDataLayer)&&void 0!==a&&null!==(n=a.order)&&void 0!==n&&n.billing_email_hashed&&(C.em=wpmDataLayer.order.billing_email_hashed),null!==(i=wpmDataLayer)&&void 0!==i&&null!==(l=i.order)&&void 0!==l&&l.billing_first_name&&(C.fn=wpmDataLayer.order.billing_first_name),null!==(s=wpmDataLayer)&&void 0!==s&&null!==(d=s.order)&&void 0!==d&&d.billing_last_name&&(C.ln=wpmDataLayer.order.billing_last_name),null!==(c=wpmDataLayer)&&void 0!==c&&null!==(u=c.order)&&void 0!==u&&u.billing_phone&&(C.ph=wpmDataLayer.order.billing_phone),null!==(p=wpmDataLayer)&&void 0!==p&&null!==(g=p.order)&&void 0!==g&&g.billing_city&&(C.ct=wpmDataLayer.order.billing_city),null!==(m=wpmDataLayer)&&void 0!==m&&null!==(y=m.order)&&void 0!==y&&y.billing_state&&(C.st=wpmDataLayer.order.billing_state),null!==(v=wpmDataLayer)&&void 0!==v&&null!==(w=v.order)&&void 0!==w&&w.billing_postcode&&(C.zp=wpmDataLayer.order.billing_postcode),null!==(f=wpmDataLayer)&&void 0!==f&&null!==(_=f.order)&&void 0!==_&&_.billing_country&&(C.country=wpmDataLayer.order.billing_country),fbq("init",wpmDataLayer.pixels.facebook.pixel_id,C),fbq("track","PageView")}catch(D){console.error(D)}var h,L,D,b,x,j},e.getRandomEventId=()=>(Math.random()+1).toString(36).substring(2),e.getFbUserData=()=>o||e.getFbUserDataFromBrowser(),e.setFbUserData=()=>{o=e.getFbUserDataFromBrowser()},e.getFbUserDataFromBrowser=()=>{var t,r;let o={};return e.getCookie("_fbp")&&e.isValidFbp(e.getCookie("_fbp"))&&(o.fbp=e.getCookie("_fbp")),e.getCookie("_fbc")&&e.isValidFbc(e.getCookie("_fbc"))&&(o.fbp=e.getCookie("_fbc")),null!==(t=wpmDataLayer)&&void 0!==t&&null!==(r=t.user)&&void 0!==r&&r.id&&(o.external_id=wpmDataLayer.user.id),navigator.userAgent&&(o.client_user_agent=navigator.userAgent),o},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,50}$/).test(e),e.fbViewContent=t=>{try{var r,o,a;if(null===(r=wpmDataLayer)||void 0===r||null===(o=r.pixels)||void 0===o||null===(a=o.facebook)||void 0===a||!a.loaded)return;let n=e.getRandomEventId();fbq("track","ViewContent",{content_type:"product",content_name:t.name,content_ids:t.dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type],currency:wpmDataLayer.shop.currency,value:t.price},{eventID:n}),t.currency=wpmDataLayer.shop.currency,jQuery(document).trigger("wpmFbCapiEvent",{event_name:"ViewContent",event_id:n,user_data:e.getFbUserData(),event_source_url:window.location.href,custom_data:e.fbGetProductDataForCapiEvent(t)})}catch(e){console.error(e)}},e.fbGetProductDataForCapiEvent=e=>({content_type:"product",content_ids:[e.dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type]],value:e.quantity*e.price,currency:wpmDataLayer.shop.currency}),e.facebookContentIds=()=>{let e=[];for(const[o,a]of Object.entries(wpmDataLayer.order.items)){var t,r;null!==(t=wpmDataLayer)&&void 0!==t&&null!==(r=t.general)&&void 0!==r&&r.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 o=arguments.length>1&&arguments[1]!==r?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 r=e.getRandomEventId();fbq("trackCustom",t,o,{eventID:r}),jQuery(document).trigger("wpmFbCapiEvent",{event_name:t,event_id:r,user_data:e.getFbUserData(),event_source_url:window.location.href,custom_data:o})}catch(e){console.error(e)}}}(window.wpm=window.wpm||{},jQuery)},5012:(e,t,r)=>{r(7746),r(164)},165:()=>{jQuery(document).on("wpmViewItemList",(function(e,t){try{var r,o,a,n,i,l,s,d,c,u,p,g,m;if(jQuery.isEmptyObject(null===(r=wpmDataLayer)||void 0===r||null===(o=r.pixels)||void 0===o||null===(a=o.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!==(g=wpmDataLayer)&&void 0!==g&&null!==(m=g.user)&&void 0!==m&&m.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 r,o,a,n,i,l,s,d,c,u,p;if(jQuery.isEmptyObject(null===(r=wpmDataLayer)||void 0===r||null===(o=r.pixels)||void 0===o||null===(a=o.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,t){try{var r,o,a,n,i,l,s,d,c,u,p;if(jQuery.isEmptyObject(null===(r=wpmDataLayer)||void 0===r||null===(o=r.pixels)||void 0===o||null===(a=o.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.quantity:1)*t.price,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,r,o,a,n,i,l,s,d,c;if(jQuery.isEmptyObject(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(r=t.google)||void 0===r||null===(o=r.ads)||void 0===o?void 0:o.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 g=[];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;g.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 m={send_to:wpm.getGoogleAdsConversionIdentifiers(),items:g};null!==(d=wpmDataLayer)&&void 0!==d&&null!==(c=d.user)&&void 0!==c&&c.id&&(m.user_id=wpmDataLayer.user.id),wpm.gtagLoaded().then((function(){gtag("event","view_search_results",m)}))}catch(e){console.error(e)}})),jQuery(document).on("wpmOrderReceivedPage",(function(){try{var e,t,r,o,a,n,i,l,s,d,c;if(jQuery.isEmptyObject(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(r=t.google)||void 0===r||null===(o=r.ads)||void 0===o?void 0:o.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,r,o,a,n,i,l,s,d,c;if(jQuery.isEmptyObject(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(r=t.google)||void 0===r||null===(o=r.ads)||void 0===o?void 0:o.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,r,o,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!==(r=wpmDataLayer)&&void 0!==r&&null!==(o=r.user)&&void 0!==o&&o.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,r){e.getGoogleAdsConversionIdentifiersWithLabel=function(){let e=[];for(const[t,r]of Object.entries(wpmDataLayer.pixels.google.ads.conversionIds))r&&e.push(t+"/"+r);return e},e.getGoogleAdsConversionIdentifiers=function(){let e=[];for(const[t,r]of Object.entries(wpmDataLayer.pixels.google.ads.conversionIds))e.push(t);return e},e.getGoogleAdsRegularOrderItems=function(){let e=[];for(const[o,a]of Object.entries(wpmDataLayer.order.items)){var t,r;let o;o={quantity:a.quantity,price:a.price},null!==(t=wpmDataLayer)&&void 0!==t&&null!==(r=t.general)&&void 0!==r&&r.variationsOutput&&0!==a.variation_id?(o.id=String(wpmDataLayer.products[a.variation_id].dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type]),e.push(o)):(o.id=String(wpmDataLayer.products[a.id].dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type]),e.push(o))}return e},e.getGoogleAdsDynamicRemarketingOrderItems=function(){let e=[];for(const[o,a]of Object.entries(wpmDataLayer.order.items)){var t,r;let o;o={quantity:a.quantity,price:a.price,google_business_vertical:wpmDataLayer.pixels.google.ads.google_business_vertical},null!==(t=wpmDataLayer)&&void 0!==t&&null!==(r=t.general)&&void 0!==r&&r.variationsOutput&&0!==a.variation_id?(o.id=String(wpmDataLayer.products[a.variation_id].dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type]),e.push(o)):(o.id=String(wpmDataLayer.products[a.id].dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type]),e.push(o))}return e}}(window.wpm=window.wpm||{},jQuery)},5190:(e,t,r)=>{r(9042),r(165)},3625:()=>{jQuery(document).on("wpmOrderReceivedPage",(function(){try{var e,t,r,o,a,n,i,l,s,d;if(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(r=t.google)||void 0===r||null===(o=r.analytics)||void 0===o||null===(a=o.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,r){e.getGAUAOrderItems=function(){let t=[];for(const[a,n]of Object.entries(wpmDataLayer.order.items)){var r,o;let a;a={quantity:n.quantity,price:n.price,name:n.name,currency:wpmDataLayer.order.currency,category:wpmDataLayer.products[n.id].category.join("/")},null!==(r=wpmDataLayer)&&void 0!==r&&null!==(o=r.general)&&void 0!==o&&o.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]!==r?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,r)=>{r(6019),r(3625)},7572:()=>{jQuery(document).on("wpmOrderReceivedPage",(function(){try{var e,t,r,o,a,n,i,l,s,d;if(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(r=t.google)||void 0===r||null===(o=r.analytics)||void 0===o||null===(a=o.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,r){e.getGA4OrderItems=function(){let e=[];for(const[o,a]of Object.entries(wpmDataLayer.order.items)){var t,r;let o;o={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!==(r=t.general)&&void 0!==r&&r.variationsOutput&&0!==a.variation_id?(o.item_id=String(wpmDataLayer.products[a.variation_id].dyn_r_ids[wpmDataLayer.pixels.google.analytics.id_type]),o.item_variant=wpmDataLayer.products[a.variation_id].variant_name,o.item_brand=wpmDataLayer.products[a.variation_id].brand):(o.item_id=String(wpmDataLayer.products[a.id].dyn_r_ids[wpmDataLayer.pixels.google.analytics.id_type]),o.item_brand=wpmDataLayer.products[a.id].brand),e.push(o)}return e}}(window.wpm=window.wpm||{},jQuery)},8522:(e,t,r)=>{r(6228),r(7572)},6774:(e,t,r)=>{r(562),r(8522)},9294:()=>{jQuery(document).on("wpmLoadPixels",(function(){var e,t,r;void 0===(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(r=t.google)||void 0===r?void 0:r.state)&&(wpm.canGoogleLoad()?wpm.loadGoogle():wpm.logPreventedPixelLoading("google","analytics / ads"))}))},9860:(e,t,r)=>{"use strict";r.r(t),r(3647),function(e,t,r){e.googleConfigConditionsMet=function(t){var r,o,a,n;return!(null===(r=wpmDataLayer)||void 0===r||null===(o=r.pixels)||void 0===o||null===(a=o.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]!==r)||arguments[0],t=!(arguments.length>1&&arguments[1]!==r)||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,r,o,a,n,i,l,s,d,c,u,p,g,m,y,v,w,f,_,h;if(wpmDataLayer.pixels.google.ads.state="loading",null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.pixels)&&void 0!==t&&null!==(r=t.google)&&void 0!==r&&null!==(o=r.ads)&&void 0!==o&&null!==(a=o.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!==(g=wpmDataLayer)&&void 0!==g&&null!==(m=g.pixels)&&void 0!==m&&null!==(y=m.google)&&void 0!==y&&null!==(v=y.ads)&&void 0!==v&&v.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}),"order_received_page"===wpmDataLayer.shop.page_type&&null!==(w=wpmDataLayer)&&void 0!==w&&null!==(f=w.order)&&void 0!==f&&null!==(_=f.google)&&void 0!==_&&null!==(h=_.ads)&&void 0!==h&&h.enhanced_conversion_data&&(window.enhanced_conversion_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{wpmDataLayer.pixels.google.analytics.ga4.state="loading",gtag("config",wpmDataLayer.pixels.google.analytics.ga4.measurement_id,wpmDataLayer.pixels.google.analytics.ga4.parameters),wpmDataLayer.pixels.google.analytics.ga4.state="ready"}catch(e){console.error(e)}},e.isGoogleActive=function(){var e,t,r,o,a,n,i,l,s,d,c,u,p,g;return!(!(null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.pixels)&&void 0!==t&&null!==(r=t.google)&&void 0!==r&&null!==(o=r.analytics)&&void 0!==o&&null!==(a=o.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===(g=p.ads)||void 0===g?void 0:g.conversionIds))},e.getGoogleGtagId=function(){var e,t,r,o,a,n,i,l,s,d;return null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.pixels)&&void 0!==t&&null!==(r=t.google)&&void 0!==r&&null!==(o=r.analytics)&&void 0!==o&&null!==(a=o.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()).done((function(t,r){try{var o,a,n,i,l,s,d,c,u,p,g,m,y,v,w,f,_,h,L,D,b,x;if(window.dataLayer=window.dataLayer||[],window.gtag=function(){dataLayer.push(arguments)},null!==(o=wpmDataLayer)&&void 0!==o&&null!==(a=o.pixels)&&void 0!==a&&null!==(n=a.google)&&void 0!==n&&null!==(i=n.consent_mode)&&void 0!==i&&i.active){var j,C,k,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!==(j=wpmDataLayer)&&void 0!==j&&null!==(C=j.pixels)&&void 0!==C&&null!==(k=C.google)&&void 0!==k&&null!==(S=k.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===(g=p.google)||void 0===g||null===(m=g.ads)||void 0===m?void 0:m.conversionIds)||(e.googleConfigConditionsMet("ads")?e.fireGtagGoogleAds():e.logPreventedPixelLoading("google-ads","ads")),null!==(y=wpmDataLayer)&&void 0!==y&&null!==(v=y.pixels)&&void 0!==v&&null!==(w=v.google)&&void 0!==w&&null!==(f=w.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!==(D=L.google)&&void 0!==D&&null!==(b=D.analytics)&&void 0!==b&&null!==(x=b.ga4)&&void 0!==x&&x.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,r,o,a;return!(null===(t=wpmDataLayer)||void 0===t||null===(r=t.pixels)||void 0===r||null===(o=r.google)||void 0===o||null===(a=o.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 r,o,a;void 0===(null===(r=wpmDataLayer)||void 0===r||null===(o=r.pixels)||void 0===o||null===(a=o.google)||void 0===a?void 0:a.state)&&t();let n=0;!function r(){var o,a,i;return"ready"===(null===(o=wpmDataLayer)||void 0===o||null===(a=o.pixels)||void 0===a||null===(i=a.google)||void 0===i?void 0:i.state)?e():n>=5e3?t():(n+=200,void setTimeout(r,200))}()}))}}(window.wpm=window.wpm||{},jQuery)},1580:(e,t,r)=>{r(9860),r(9294)},8069:(e,t,r)=>{r(1580),r(5190),r(6774),r(3463)},1945:()=>{jQuery(document).on("wpmLoadPixels",(function(){var e,t,r,o,a,n,i,l;null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(r=t.google)||void 0===r||null===(o=r.optimize)||void 0===o||!o.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,r){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,r)=>{r(8962),r(1945)},2300:()=>{jQuery(document).on("wpmLoadPixels",(function(){var e,t,r,o,a,n,i,l,s;null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(r=t.hotjar)||void 0===r||!r.site_id||null!==(o=wpmDataLayer)&&void 0!==o&&null!==(a=o.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,r){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},r=t.getElementsByTagName("head")[0],(o=t.createElement("script")).async=1,o.src="https://static.hotjar.com/c/hotjar-"+e._hjSettings.hjid+".js?sv="+e._hjSettings.hjsv,r.appendChild(o)}catch(e){console.error(e)}var e,t,r,o}}(window.wpm=window.wpm||{},jQuery)},8787:(e,t,r)=>{r(2376),r(2300)},473:(e,t,r)=>{"use strict";r.r(t),r(3647),function(e,t,r){let o=()=>{let t=e.getCookie("cmplz_statistics"),r=e.getCookie("cmplz_marketing");return!(!e.getCookie("cmplz_consent_status")&&!e.getCookie("cmplz_banner-status"))&&{analytics:"allow"===t,ads:"allow"===r,visitorHasChosen:!0}},a=()=>{let t=e.getCookie("cookielawinfo-checkbox-analytics")||e.getCookie("cookielawinfo-checkbox-analytiques"),r=e.getCookie("cookielawinfo-checkbox-advertisement")||e.getCookie("cookielawinfo-checkbox-performance")||e.getCookie("cookielawinfo-checkbox-publicite"),o=e.getCookie("CookieLawInfoConsent");return!(!t&&!r)&&{analytics:"yes"===t,ads:"yes"===r,visitorHasChosen:!!o}},n={categories:{},pixels:[],mode:"category",visitorHasChosen:!1};e.getConsentValues=()=>n,e.setConsentValueCategories=function(){let e=arguments.length>0&&arguments[0]!==r&&arguments[0],t=arguments.length>1&&arguments[1]!==r&&arguments[1];n.categories.analytics=e,n.categories.ads=t},e.updateConsentCookieValues=function(){let t,i=arguments.length>0&&arguments[0]!==r?arguments[0]:null,l=arguments.length>1&&arguments[1]!==r?arguments[1]:null,s=arguments.length>2&&arguments[2]!==r&&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,g,m,y,v;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===(g=t)||void 0===g||null===(m=g.consents)||void 0===m?void 0:m.statistics)||[],...(null===(y=t)||void 0===y||null===(v=y.consents)||void 0===v?void 0:v.marketing)||[]],n.mode="pixel"}else(t=o())?(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,r)=>{let o;return"category"===n.mode?o=!!n.categories[t]:"pixel"===n.mode?(o=n.pixels.includes(r),!1===o&&"microsoft-ads"===r&&(o=n.pixels.includes("bing-ads"))):(console.error("Couldn't find a valid consent mode in wpmConsentValues"),o=!1),!!o||(e.logPreventedPixelLoading(r,t),!1)},e.logPreventedPixelLoading=(e,t)=>{var r,o,a;null!==(r=wpmDataLayer)&&void 0!==r&&null!==(o=r.shop)&&void 0!==o&&null!==(a=o.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((r=>{r.forEach((r=>{let{addedNodes:o}=r;[...o].forEach((r=>{t(r).data("wpm-cookie-category")&&(e.shouldScriptBeActive(r)?e.unblockScript(r):e.blockScript(r))}))}))})),e.scriptTagObserver.observe(document.head,{childList:!0,subtree:!0}),jQuery(document).on("DOMContentLoaded",(()=>e.scriptTagObserver.disconnect())),e.shouldScriptBeActive=e=>{var r,o,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===(r=wpmDataLayer)||void 0===r||null===(o=r.pixels)||void 0===o||null===(a=o.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 o=arguments.length>1&&arguments[1]!==r&&arguments[1];o&&t(e).remove();let a=t(e).data("wpm-src");a&&t(e).attr("src",a),e.type="text/javascript",o&&t(e).appendTo("head"),jQuery(document).trigger("wpmPreLoadPixels",{})},e.blockScript=function(e){let o=arguments.length>1&&arguments[1]!==r&&arguments[1];o&&t(e).remove(),t(e).attr("src")&&t(e).removeAttr("src"),e.type="blocked/javascript",o&&t(e).appendTo("head")},e.unblockAllScripts=function(){jQuery(document).trigger("wpmPreLoadPixels",{})},e.unblockSelectedPixels=()=>{jQuery(document).trigger("wpmPreLoadPixels",{})},jQuery(document).on("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))})),jQuery(document).on("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),jQuery(document).on("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)})),jQuery(document).on("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)},jQuery(document).on("cmplzStatusChange",e.cmplzStatusChange),jQuery(document).on("cmplz_status_change",e.cmplzStatusChange),jQuery(document).on("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:r}=t;[...r].forEach((t=>{"hu"===t.id&&jQuery(".hu-cookies-save").on("click",(function(){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,r)=>{"use strict";r.r(t),r(3647),jQuery(document).on("click",".remove_from_cart_button, .remove",(function(){try{let e=new URL(jQuery(this).attr("href")),t=wpm.getProductIdByCartItemKeyUrl(e);wpm.removeProductFromCart(t)}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",(function(){try{if("product"===wpmDataLayer.shop.page_type){if(void 0!==jQuery(this).attr("href")&&jQuery(this).attr("href").includes("add-to-cart")){let e=1,t=jQuery(this).data("product_id");wpm.addProductToCart(t,e)}else if("simple"===wpmDataLayer.shop.product_type){let e=Number(jQuery(".input-text.qty").val());e||0===e||(e=1);let t=jQuery(this).val();wpm.addProductToCart(t,e)}else if("variable"===wpmDataLayer.shop.product_type){let e=Number(jQuery(".input-text.qty").val());e||0===e||(e=1);let t=jQuery("[name='variation_id']").val();wpm.addProductToCart(t,e)}else if("grouped"===wpmDataLayer.shop.product_type)jQuery(".woocommerce-grouped-product-list-item").each((function(){let e=Number(jQuery(this).find(".input-text.qty").val());e||0===e||(e=1);let t=jQuery(this).attr("class"),r=wpm.getPostIdFromString(t);wpm.addProductToCart(r,e)}));else if("bundle"===wpmDataLayer.shop.product_type){let e=Number(jQuery(".input-text.qty").val());e||0===e||(e=1);let t=jQuery("input[name=add-to-cart]").val();wpm.addProductToCart(t,e)}}else{let e=1,t=jQuery(this).data("product_id");wpm.addProductToCart(t,e)}}catch(e){console.error(e)}})),jQuery(document).one("click","a:not(.add_to_cart_button, .ajax_add_to_cart, .single_add_to_cart_button)",(function(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",(function(){try{let e=jQuery(this).nextAll(".wpmProductId:first").data("id");if(e){if(e=wpm.getIdBasedOndVariationsOutputSetting(e),!e)throw Error("Wasn't able to retrieve a productId");if(wpmDataLayer.products&&wpmDataLayer.products[e]){let t=wpm.getProductDetailsFormattedForEvent(e);jQuery(document).trigger("wpmSelectContentGaUa",t),jQuery(document).trigger("wpmSelectItem",t)}}}catch(e){console.error(e)}})),jQuery(document).one("click",[".checkout-button",".cart-checkout-button",".button.checkout",".xoo-wsc-ft-btn-checkout"].join(","),(function(){jQuery(document).trigger("wpmBeginCheckout")})),jQuery(document).on("input","#billing_email",(function(){wpm.isEmail(jQuery(this).val())&&(wpm.fireCheckoutProgress(2),wpm.emailSelected=!0)})),jQuery(document).on("click",".wc_payment_methods",(function(){!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",(function(){!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']",(function(){try{jQuery(".cart_item").each((function(){let e=new URL(jQuery(this).find(".product-remove").find("a").attr("href")),t=wpm.getProductIdByCartItemKeyUrl(e),r=jQuery(this).find(".qty").val();0===r?wpm.removeProductFromCart(t):r<wpmDataLayer.cart[t].quantity?wpm.removeProductFromCart(t,wpmDataLayer.cart[t].quantity-r):r>wpmDataLayer.cart[t].quantity&&wpm.addProductToCart(t,r-wpmDataLayer.cart[t].quantity)}))}catch(e){console.error(e),wpm.getCartItemsFromBackend()}})),jQuery(document).on("click",".add_to_wishlist, .wl-add-to",(function(){try{let e;if(jQuery(this).data("productid")?e=jQuery(this).data("productid"):jQuery(this).data("product-id")&&(e=jQuery(this).data("product-id")),!e)throw Error("Wasn't able to retrieve a productId");let t=wpm.getProductDetailsFormattedForEvent(e);jQuery(document).trigger("wpmAddToWishlist",t)}catch(e){console.error(e)}})),jQuery(document).on("updated_cart_totals",(function(){jQuery(document).trigger("wpmViewCart")})),jQuery((function(){jQuery(".single_variation_wrap").on("show_variation",(function(e,t){try{let e=wpm.getIdBasedOndVariationsOutputSetting(t.variation_id);if(!e)throw Error("Wasn't able to retrieve a productId");if(wpmDataLayer.products&&wpmDataLayer.products[e]){let t=wpm.getProductDetailsFormattedForEvent(e);jQuery(document).trigger("wpmViewItem",t)}}catch(e){console.error(e)}}))})),jQuery((function(){jQuery(".single_variation_wrap").on("hide_variation",(function(){try{var e,t;let n=jQuery("body").attr("class").match(/(postid-)(\d+)/)[2];if(!n)throw Error("Wasn't able to retrieve a productId");if("variable"===wpmDataLayer.shop.product_type&&null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.general)&&void 0!==t&&t.variationsOutput){var r,o,a;for(const[e,t]of Object.entries(wpmDataLayer.products))if("parentId"in t){n=t.id;break}null!==(r=wpmDataLayer)&&void 0!==r&&null!==(o=r.pixels)&&void 0!==o&&null!==(a=o.facebook)&&void 0!==a&&a.microdata_product_id&&(n=wpmDataLayer.pixels.facebook.microdata_product_id)}if(wpmDataLayer.products&&wpmDataLayer.products[n]){let e=wpm.getProductDetailsFormattedForEvent(n);jQuery(document).trigger("wpmViewItem",e)}}catch(e){console.error(e)}}))})),jQuery(window).on("wpmLoad",(function(){try{wpm.doesWooCommerceCartExist()&&wpm.getCartItems()}catch(e){console.error(e)}})),jQuery(window).on("wpmLoad",(function(){wpmDataLayer.products=wpmDataLayer.products||{};let e=wpm.getAddToCartLinkProductIds();wpm.getProductsFromBackend(e)})),jQuery(window).on("wpmLoad",(function(){if(!wpm.getCookie("wpmReferrer")&&document.referrer){let e=new URL(document.referrer).hostname;e!==window.location.host&&wpm.setCookie("wpmReferrer",e)}})),jQuery(window).on("wpmLoad",(function(){try{var e;if("undefined"!=typeof wpmDataLayer&&(null===(e=wpmDataLayer)||void 0===e||!e.wpmLoadFired)){var t,r;if(jQuery(document).trigger("wpmLoadAlways"),"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");null!==(t=wpmDataLayer)&&void 0!==t&&null!==(r=t.user)&&void 0!==r&&r.id&&!wpm.hasLoginEventFired()&&(jQuery(document).trigger("wpmLogin"),wpm.setLoginEventFired()),wpmDataLayer.wpmLoadFired=!0}}catch(e){console.error(e)}})),jQuery(window).on("wpmPreLoadPixels",(function(){var e,t,r;null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.shop)&&void 0!==t&&null!==(r=t.cookie_consent_mgmt)&&void 0!==r&&r.explicit_consent&&!wpm.explicitConsentStateAlreadySet()&&wpm.updateConsentCookieValues(null,null,!0),jQuery(document).trigger("wpmLoadPixels",{})}))},9584:(e,t,r)=>{"use strict";r.r(t),r(3647),function(e,t,r){const o="_wpm_order_ids",a="_wpm_endpoint_available",n="/wp-json/";function i(){return""!==e.getCookie(o)}e.emailSelected=!1,e.paymentMethodSelected=!1,e.useRestEndpoint=()=>e.isSessionStorageAvailable()&&e.isRestEndpointAvailable()&&e.isBelowRestErrorThreshold(),e.isBelowRestErrorThreshold=()=>window.sessionStorage.getItem(0)<=10,e.isRestEndpointAvailable=()=>{if(window.sessionStorage.getItem(a))return JSON.parse(window.sessionStorage.getItem(a));e.testEndpoint()},e.isSessionStorageAvailable=()=>!!window.sessionStorage,e.testEndpoint=function(){let e=arguments.length>0&&arguments[0]!==r?arguments[0]:location.protocol+"//"+location.host+n,t=arguments.length>1&&arguments[1]!==r?arguments[1]:a;jQuery.ajax(e,{type:"HEAD",timeout:1e3,statusCode:{200:function(e){window.sessionStorage.setItem(t,JSON.stringify(!0))},404:function(e){window.sessionStorage.setItem(t,JSON.stringify(!1))},0:function(e){window.sessionStorage.setItem(t,JSON.stringify(!1))}}}).then((e=>{}))},e.isWpmRestEndpointAvailable=function(){let t=arguments.length>0&&arguments[0]!==r?arguments[0]:a;return!!e.getCookie(t)},e.writeOrderIdToStorage=function(t){if(window.Storage)if(null===localStorage.getItem(o)){let e=[];e.push(t),window.localStorage.setItem(o,JSON.stringify(e))}else{let e=JSON.parse(localStorage.getItem(o));e.includes(t)||(e.push(t),window.localStorage.setItem(o,JSON.stringify(e)))}else{let r=new Date;r.setDate(r.getDate()+365);let a=[];i()&&(a=JSON.parse(e.getCookie(o))),a.includes(t)||(a.push(t),document.cookie="_wpm_order_ids="+JSON.stringify(a)+";expires="+r.toUTCString())}"function"==typeof e.storeOrderIdOnServer&&wpmDataLayer.orderDeduplication&&e.storeOrderIdOnServer(t)},e.isOrderIdStored=t=>wpmDataLayer.orderDeduplication?window.Storage?null!==localStorage.getItem(o)&&JSON.parse(localStorage.getItem(o)).includes(t):!!i()&&JSON.parse(e.getCookie(o)).includes(t):(console.log("order duplication prevention: off"),!1),e.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),e.removeProductFromCart=function(t){let o=arguments.length>1&&arguments[1]!==r?arguments[1]:null;try{if(!t)throw Error("Wasn't able to retrieve a productId");if(!(t=e.getIdBasedOndVariationsOutputSetting(t)))throw Error("Wasn't able to retrieve a productId");let r;if(r=null==o?wpmDataLayer.cart[t].quantity:o,wpmDataLayer.cart[t]){let a=e.getProductDetailsFormattedForEvent(t,r);jQuery(document).trigger("wpmRemoveFromCart",a),null==o||wpmDataLayer.cart[t].quantity===o?(delete wpmDataLayer.cart[t],sessionStorage&&sessionStorage.setItem("wpmDataLayerCart",JSON.stringify(wpmDataLayer.cart))):(wpmDataLayer.cart[t].quantity=wpmDataLayer.cart[t].quantity-r,sessionStorage&&sessionStorage.setItem("wpmDataLayerCart",JSON.stringify(wpmDataLayer.cart)))}}catch(e){console.error(e)}},e.getIdBasedOndVariationsOutputSetting=e=>{try{var t,r;return null!==(t=wpmDataLayer)&&void 0!==t&&null!==(r=t.general)&&void 0!==r&&r.variationsOutput?e:wpmDataLayer.products[e].isVariation?wpmDataLayer.products[e].parentId:e}catch(e){console.error(e)}},e.addProductToCart=(t,r)=>{try{var o;if(!t)throw Error("Wasn't able to retrieve a productId");if(!(t=e.getIdBasedOndVariationsOutputSetting(t)))throw Error("Wasn't able to retrieve a productId");if(null!==(o=wpmDataLayer)&&void 0!==o&&o.products[t]){var a;let o=e.getProductDetailsFormattedForEvent(t,r);jQuery(document).trigger("wpmAddToCart",o),null!==(a=wpmDataLayer)&&void 0!==a&&a.cart[t]?wpmDataLayer.cart[t].quantity=wpmDataLayer.cart[t].quantity+r:("cart"in wpmDataLayer||(wpmDataLayer.cart={}),wpmDataLayer.cart[t]=e.getProductDetailsFormattedForEvent(t,r)),sessionStorage&&sessionStorage.setItem("wpmDataLayerCart",JSON.stringify(wpmDataLayer.cart))}}catch(t){console.error(t),e.getCartItemsFromBackend()}},e.getCartItems=()=>{sessionStorage?sessionStorage.getItem("wpmDataLayerCart")&&"order_received_page"!==wpmDataLayer.shop.page_type?e.saveCartObjectToDataLayer(JSON.parse(sessionStorage.getItem("wpmDataLayerCart"))):sessionStorage.setItem("wpmDataLayerCart",JSON.stringify({})):e.getCartItemsFromBackend()},e.getCartItemsFromBackend=()=>{try{let t={action:"wpm_get_cart_items"};jQuery.ajax({type:"get",dataType:"json",url:e.ajax_url,data:t,success:function(t){t.cart||(t.cart={}),e.saveCartObjectToDataLayer(t.cart),sessionStorage&&sessionStorage.setItem("wpmDataLayerCart",JSON.stringify(t.cart))}})}catch(e){console.error(e)}},e.getProductsFromBackend=t=>{if((t=t.filter((e=>!wpmDataLayer.products.hasOwnProperty(e))))&&0!==t.length)try{let r={action:"wpm_get_product_ids",productIds:t};jQuery.ajax({type:"get",dataType:"json",url:e.ajax_url,data:r,success:function(e){wpmDataLayer.products=Object.assign({},wpmDataLayer.products,e)},error:function(e){console.log(e)}})}catch(e){console.error(e)}},e.saveCartObjectToDataLayer=e=>{wpmDataLayer.cart=e,wpmDataLayer.products=Object.assign({},wpmDataLayer.products,e)},e.fireCheckoutOption=function(e){let t=arguments.length>1&&arguments[1]!==r?arguments[1]:null,o=arguments.length>2&&arguments[2]!==r?arguments[2]:null,a={step:e,checkout_option:t,value:o};jQuery(document).trigger("wpmFireCheckoutOption",a)},e.fireCheckoutProgress=e=>{let t={step:e};jQuery(document).trigger("wpmFireCheckoutProgress",t)},e.getPostIdFromString=e=>{try{return e.match(/(post-)(\d+)/)[2]}catch(e){console.error(e)}},e.triggerViewItemList=t=>{if(!t)throw Error("Wasn't able to retrieve a productId");if(!(t=e.getIdBasedOndVariationsOutputSetting(t)))throw Error("Wasn't able to retrieve a productId");jQuery(document).trigger("wpmViewItemList",e.getProductDataForViewItemEvent(t))},e.getProductDataForViewItemEvent=t=>{if(!t)throw Error("Wasn't able to retrieve a productId");try{if(wpmDataLayer.products[t])return e.getProductDetailsFormattedForEvent(t)}catch(e){console.error(e)}},e.getMainProductIdFromProductPage=()=>{try{return["simple","variable","grouped","composite","bundle"].indexOf(wpmDataLayer.shop.product_type)>=0&&jQuery(".wpmProductId:first").data("id")}catch(e){console.error(e)}},e.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})},e.getSearchTermFromUrl=()=>{try{return new URLSearchParams(window.location.search).get("s")}catch(e){console.error(e)}};let l,s={};e.observerCallback=(t,r)=>{t.forEach((t=>{try{let o,a=jQuery(t.target).data("ioid");if(o=jQuery(t.target).next(".wpmProductId").length?jQuery(t.target).next(".wpmProductId").data("id"):jQuery(t.target).find(".wpmProductId").data("id"),!o)throw Error("wpmProductId element not found");t.isIntersecting?s[a]=setTimeout((()=>{e.triggerViewItemList(o),wpmDataLayer.viewItemListTrigger.testMode&&e.viewItemListTriggerTestMode(t.target),!1===wpmDataLayer.viewItemListTrigger.repeat&&r.unobserve(t.target)}),wpmDataLayer.viewItemListTrigger.timeout):(clearTimeout(s[a]),wpmDataLayer.viewItemListTrigger.testMode&&jQuery(t.target).find("#viewItemListTriggerOverlay").remove())}catch(e){console.error(e)}}))};let d,c=0,u=()=>{d=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}))};e.startIntersectionObserverToWatch=()=>{try{e.urlHasParameter("vildemomode")&&(wpmDataLayer.viewItemListTrigger.testMode=!0),l=new IntersectionObserver(e.observerCallback,{threshold:wpmDataLayer.viewItemListTrigger.threshold}),u(),d.each(((e,t)=>{jQuery(t[0]).data("ioid",c++),l.observe(t[0])}))}catch(e){console.error(e)}},e.startProductsMutationObserverToWatch=()=>{try{let e=jQuery(".wpmProductId:eq(0)").parents().has(jQuery(".wpmProductId:eq(1)").parents()).first();e.length&&p.observe(e[0],{attributes:!0,childList:!0,characterData:!0})}catch(e){console.error(e)}};let p=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"))&&g(this)&&(jQuery(this).data("ioid",c++),l.observe(this))}))}))})),g=e=>!(!jQuery(e).find(".wpmProductId").length&&!jQuery(e).siblings(".wpmProductId").length);e.setCookie=function(e){let t=arguments.length>1&&arguments[1]!==r?arguments[1]:"",o=arguments.length>2&&arguments[2]!==r?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=/"},e.getCookie=e=>{let t=e+"=",r=decodeURIComponent(document.cookie).split(";");for(let e=0;e<r.length;e++){let o=r[e];for(;" "==o.charAt(0);)o=o.substring(1);if(0==o.indexOf(t))return o.substring(t.length,o.length)}return""},e.getWpmSessionData=()=>{if(window.sessionStorage){let e=window.sessionStorage.getItem("_wpm");return null!==e?JSON.parse(e):{}}return{}},e.setWpmSessionData=e=>{window.sessionStorage&&window.sessionStorage.setItem("_wpm",JSON.stringify(e))},e.storeOrderIdOnServer=t=>{try{let r={action:"wpm_purchase_pixels_fired",order_id:t,nonce:e.nonce};jQuery.ajax({type:"post",dataType:"json",url:e.ajax_url,data:r,success:function(e){!1===e.success&&console.log(e)},error:function(e){console.log(e)}})}catch(e){console.error(e)}},e.getProductIdByCartItemKeyUrl=e=>{let t,r=new URLSearchParams(e.search).get("remove_item");return t=0===wpmDataLayer.cartItemKeys[r].variation_id?wpmDataLayer.cartItemKeys[r].product_id:wpmDataLayer.cartItemKeys[r].variation_id,t},e.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(),e.getProductDetailsFormattedForEvent=function(e){let t=arguments.length>1&&arguments[1]!==r?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},e.setReferrerToCookie=()=>{e.getCookie("wpmReferrer")||e.setCookie("wpmReferrer",document.referrer)},e.getReferrerFromCookie=()=>e.getCookie("wpmReferrer")?e.getCookie("wpmReferrer"):null,e.getClidFromBrowser=function(){let t,o=arguments.length>0&&arguments[0]!==r?arguments[0]:"gclid";return t={gclid:"_gcl_aw",dclid:"_gcl_dc"},e.getCookie(t[o])?e.getCookie(t[o]).match(/(GCL.[\d]*.)(.*)/)[2]:""},e.getUserAgent=()=>navigator.userAgent,e.getViewPort=()=>({width:Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),height:Math.max(document.documentElement.clientHeight||0,window.innerHeight||0)}),e.version=()=>{console.log(wpmDataLayer.version)},e.loadScriptAndCacheIt=(e,t)=>(t=jQuery.extend(t||{},{dataType:"script",cache:!0,url:e}),jQuery.ajax(t)),e.getOrderItemPrice=e=>(e.total+e.total_tax)/e.quantity,e.hasLoginEventFired=()=>{let t=e.getWpmSessionData();return null==t?void 0:t.loginEventFired},e.setLoginEventFired=()=>{let t=e.getWpmSessionData();t.loginEventFired=!0,e.setWpmSessionData(t)},e.wpmDataLayerExists=()=>new Promise((e=>{!function t(){if("undefined"!=typeof wpmDataLayer)return e();setTimeout(t,50)}()})),e.jQueryExists=()=>new Promise((e=>{!function t(){if("undefined"!=typeof jQuery)return e();setTimeout(t,100)}()})),e.pageLoaded=()=>new Promise((e=>{!function t(){if("complete"===document.readyState)return e();setTimeout(t,50)}()})),e.pageReady=()=>new Promise((e=>{!function t(){if("interactive"===document.readyState||"complete"===document.readyState)return e();setTimeout(t,50)}()})),e.isMiniCartActive=()=>{if(window.sessionStorage){for(const[e,t]of Object.entries(window.sessionStorage))if(e.includes("wc_fragments"))return!0;return!1}return!1},e.doesWooCommerceCartExist=()=>document.cookie.includes("woocommerce_items_in_cart"),e.urlHasParameter=e=>new URLSearchParams(window.location.search).has(e)}(window.wpm=window.wpm||{},jQuery)},3534:(e,t,r)=>{r(9584),r(473)},7207:()=>{wpm.wpmDataLayerExists().then((function(){console.log("Pixel Manager for WooCommerce: "+(wpmDataLayer.version.pro?"Pro":"Free")+" Version "+wpmDataLayer.version.number+" loaded"),jQuery(document).trigger("wpmPreLoadPixels",{})})).then((function(){wpm.pageLoaded().then((function(){jQuery(document).trigger("wpmLoad",{})}))})),wpm.pageReady().then((function(){wpm.wpmDataLayerExists().then((function(){wpm.startIntersectionObserverToWatch(),wpm.startProductsMutationObserverToWatch()}))}))}},t={};function r(o){var a=t[o];if(void 0!==a)return a.exports;var n=t[o]={exports:{}};return e[o](n,n.exports,r),n.exports}r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r(3534),wpm.jQueryExists().then((function(){r(3299),r(8069),r(5012),r(8787),r(7207)}))})();
2
  //# sourceMappingURL=wpm-public.p1.min.js.map
1
+ (()=>{var e={4749:(e,t,r)=>{var o=r(5433),a=r(2856),n=r(7406),i=o.TypeError;e.exports=function(e){if(a(e))return e;throw i(n(e)+" is not a function")}},9886:(e,t,r)=>{var o=r(5433),a=r(2856),n=o.String,i=o.TypeError;e.exports=function(e){if("object"==typeof e||a(e))return e;throw i("Can't set "+n(e)+" as a prototype")}},1342:(e,t,r)=>{var o=r(1286),a=r(8810),n=r(7872),i=o("unscopables"),l=Array.prototype;null==l[i]&&n.f(l,i,{configurable:!0,value:a(null)}),e.exports=function(e){l[i][e]=!0}},448:(e,t,r)=>{var o=r(5433),a=r(6873),n=o.String,i=o.TypeError;e.exports=function(e){if(a(e))return e;throw i(n(e)+" is not an object")}},8833:e=>{e.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},4772:(e,t,r)=>{"use strict";var o,a,n,i=r(8833),l=r(414),s=r(5433),d=r(2856),c=r(6873),u=r(3208),p=r(237),g=r(7406),m=r(2357),y=r(4279),v=r(7872).f,w=r(7012),f=r(9309),_=r(7248),h=r(1286),L=r(5834),D=s.Int8Array,b=D&&D.prototype,x=s.Uint8ClampedArray,j=x&&x.prototype,C=D&&f(D),k=b&&f(b),S=Object.prototype,I=s.TypeError,O=h("toStringTag"),P=L("TYPED_ARRAY_TAG"),Q=L("TYPED_ARRAY_CONSTRUCTOR"),A=i&&!!_&&"Opera"!==p(s.opera),E=!1,T={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},F={BigInt64Array:8,BigUint64Array:8},V=function(e){if(!c(e))return!1;var t=p(e);return u(T,t)||u(F,t)};for(o in T)(n=(a=s[o])&&a.prototype)?m(n,Q,a):A=!1;for(o in F)(n=(a=s[o])&&a.prototype)&&m(n,Q,a);if((!A||!d(C)||C===Function.prototype)&&(C=function(){throw I("Incorrect invocation")},A))for(o in T)s[o]&&_(s[o],C);if((!A||!k||k===S)&&(k=C.prototype,A))for(o in T)s[o]&&_(s[o].prototype,k);if(A&&f(j)!==k&&_(j,k),l&&!u(k,O))for(o in E=!0,v(k,O,{get:function(){return c(this)?this[P]:void 0}}),T)s[o]&&m(s[o],P,o);e.exports={NATIVE_ARRAY_BUFFER_VIEWS:A,TYPED_ARRAY_CONSTRUCTOR:Q,TYPED_ARRAY_TAG:E&&P,aTypedArray:function(e){if(V(e))return e;throw I("Target is not a typed array")},aTypedArrayConstructor:function(e){if(d(e)&&(!_||w(C,e)))return e;throw I(g(e)+" is not a typed array constructor")},exportTypedArrayMethod:function(e,t,r,o){if(l){if(r)for(var a in T){var n=s[a];if(n&&u(n.prototype,e))try{delete n.prototype[e]}catch(r){try{n.prototype[e]=t}catch(e){}}}k[e]&&!r||y(k,e,r?t:A&&b[e]||t,o)}},exportTypedArrayStaticMethod:function(e,t,r){var o,a;if(l){if(_){if(r)for(o in T)if((a=s[o])&&u(a,e))try{delete a[e]}catch(e){}if(C[e]&&!r)return;try{return y(C,e,r?t:A&&C[e]||t)}catch(e){}}for(o in T)!(a=s[o])||a[e]&&!r||y(a,e,t)}},isView:function(e){if(!c(e))return!1;var t=p(e);return"DataView"===t||u(T,t)||u(F,t)},isTypedArray:V,TypedArray:C,TypedArrayPrototype:k}},5071:(e,t,r)=>{var o=r(5185),a=r(873),n=r(918),i=function(e){return function(t,r,i){var l,s=o(t),d=n(s),c=a(i,d);if(e&&r!=r){for(;d>c;)if((l=s[c++])!=l)return!0}else for(;d>c;c++)if((e||c in s)&&s[c]===r)return e||c||0;return!e&&-1}};e.exports={includes:i(!0),indexOf:i(!1)}},5248:(e,t,r)=>{var o=r(547),a=o({}.toString),n=o("".slice);e.exports=function(e){return n(a(e),8,-1)}},237:(e,t,r)=>{var o=r(5433),a=r(8084),n=r(2856),i=r(5248),l=r(1286)("toStringTag"),s=o.Object,d="Arguments"==i(function(){return arguments}());e.exports=a?i:function(e){var t,r,o;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=function(e,t){try{return e[t]}catch(e){}}(t=s(e),l))?r:d?i(t):"Object"==(o=i(t))&&n(t.callee)?"Arguments":o}},632:(e,t,r)=>{var o=r(3208),a=r(5313),n=r(8688),i=r(7872);e.exports=function(e,t,r){for(var l=a(t),s=i.f,d=n.f,c=0;c<l.length;c++){var u=l[c];o(e,u)||r&&o(r,u)||s(e,u,d(t,u))}}},4042:(e,t,r)=>{var o=r(2933);e.exports=!o((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},2357:(e,t,r)=>{var o=r(414),a=r(7872),n=r(6730);e.exports=o?function(e,t,r){return a.f(e,t,n(1,r))}:function(e,t,r){return e[t]=r,e}},6730:e=>{e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},4279:(e,t,r)=>{var o=r(5433),a=r(2856),n=r(2357),i=r(1998),l=r(2012);e.exports=function(e,t,r,s){var d=!!s&&!!s.unsafe,c=!!s&&!!s.enumerable,u=!!s&&!!s.noTargetGet,p=s&&void 0!==s.name?s.name:t;return a(r)&&i(r,p,s),e===o?(c?e[t]=r:l(t,r),e):(d?!u&&e[t]&&(c=!0):delete e[t],c?e[t]=r:n(e,t,r),e)}},414:(e,t,r)=>{var o=r(2933);e.exports=!o((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},2388:(e,t,r)=>{var o=r(5433),a=r(6873),n=o.document,i=a(n)&&a(n.createElement);e.exports=function(e){return i?n.createElement(e):{}}},5575:(e,t,r)=>{var o=r(1272);e.exports=o("navigator","userAgent")||""},5723:(e,t,r)=>{var o,a,n=r(5433),i=r(5575),l=n.process,s=n.Deno,d=l&&l.versions||s&&s.version,c=d&&d.v8;c&&(a=(o=c.split("."))[0]>0&&o[0]<4?1:+(o[0]+o[1])),!a&&i&&(!(o=i.match(/Edge\/(\d+)/))||o[1]>=74)&&(o=i.match(/Chrome\/(\d+)/))&&(a=+o[1]),e.exports=a},5604:e=>{e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},4429:(e,t,r)=>{var o=r(5433),a=r(8688).f,n=r(2357),i=r(4279),l=r(2012),s=r(632),d=r(1476);e.exports=function(e,t){var r,c,u,p,g,m=e.target,y=e.global,v=e.stat;if(r=y?o:v?o[m]||l(m,{}):(o[m]||{}).prototype)for(c in t){if(p=t[c],u=e.noTargetGet?(g=a(r,c))&&g.value:r[c],!d(y?c:m+(v?".":"#")+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(r,c,p,e)}}},2933:e=>{e.exports=function(e){try{return!!e()}catch(e){return!0}}},3001:(e,t,r)=>{var o=r(2933);e.exports=!o((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))},3573:(e,t,r)=>{var o=r(3001),a=Function.prototype.call;e.exports=o?a.bind(a):function(){return a.apply(a,arguments)}},4081:(e,t,r)=>{var o=r(414),a=r(3208),n=Function.prototype,i=o&&Object.getOwnPropertyDescriptor,l=a(n,"name"),s=l&&"something"===function(){}.name,d=l&&(!o||o&&i(n,"name").configurable);e.exports={EXISTS:l,PROPER:s,CONFIGURABLE:d}},547:(e,t,r)=>{var o=r(3001),a=Function.prototype,n=a.bind,i=a.call,l=o&&n.bind(i,i);e.exports=o?function(e){return e&&l(e)}:function(e){return e&&function(){return i.apply(e,arguments)}}},1272:(e,t,r)=>{var o=r(5433),a=r(2856),n=function(e){return a(e)?e:void 0};e.exports=function(e,t){return arguments.length<2?n(o[e]):o[e]&&o[e][t]}},9345:(e,t,r)=>{var o=r(4749);e.exports=function(e,t){var r=e[t];return null==r?void 0:o(r)}},5433:(e,t,r)=>{var o=function(e){return e&&e.Math==Math&&e};e.exports=o("object"==typeof globalThis&&globalThis)||o("object"==typeof window&&window)||o("object"==typeof self&&self)||o("object"==typeof r.g&&r.g)||function(){return this}()||Function("return this")()},3208:(e,t,r)=>{var o=r(547),a=r(4021),n=o({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,t){return n(a(e),t)}},7557:e=>{e.exports={}},6383:(e,t,r)=>{var o=r(1272);e.exports=o("document","documentElement")},5841:(e,t,r)=>{var o=r(414),a=r(2933),n=r(2388);e.exports=!o&&!a((function(){return 7!=Object.defineProperty(n("div"),"a",{get:function(){return 7}}).a}))},8946:(e,t,r)=>{var o=r(5433),a=r(547),n=r(2933),i=r(5248),l=o.Object,s=a("".split);e.exports=n((function(){return!l("z").propertyIsEnumerable(0)}))?function(e){return"String"==i(e)?s(e,""):l(e)}:l},2009:(e,t,r)=>{var o=r(547),a=r(2856),n=r(3479),i=o(Function.toString);a(n.inspectSource)||(n.inspectSource=function(e){return i(e)}),e.exports=n.inspectSource},418:(e,t,r)=>{var o,a,n,i=r(3829),l=r(5433),s=r(547),d=r(6873),c=r(2357),u=r(3208),p=r(3479),g=r(8607),m=r(7557),y="Object already initialized",v=l.TypeError,w=l.WeakMap;if(i||p.state){var f=p.state||(p.state=new w),_=s(f.get),h=s(f.has),L=s(f.set);o=function(e,t){if(h(f,e))throw new v(y);return t.facade=e,L(f,e,t),t},a=function(e){return _(f,e)||{}},n=function(e){return h(f,e)}}else{var D=g("state");m[D]=!0,o=function(e,t){if(u(e,D))throw new v(y);return t.facade=e,c(e,D,t),t},a=function(e){return u(e,D)?e[D]:{}},n=function(e){return u(e,D)}}e.exports={set:o,get:a,has:n,enforce:function(e){return n(e)?a(e):o(e,{})},getterFor:function(e){return function(t){var r;if(!d(t)||(r=a(t)).type!==e)throw v("Incompatible receiver, "+e+" required");return r}}}},2856:e=>{e.exports=function(e){return"function"==typeof e}},1476:(e,t,r)=>{var o=r(2933),a=r(2856),n=/#|\.prototype\./,i=function(e,t){var r=s[l(e)];return r==c||r!=d&&(a(t)?o(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,r)=>{var o=r(2856);e.exports=function(e){return"object"==typeof e?null!==e:o(e)}},2390:e=>{e.exports=!1},9650:(e,t,r)=>{var o=r(5433),a=r(1272),n=r(2856),i=r(7012),l=r(8951),s=o.Object;e.exports=l?function(e){return"symbol"==typeof e}:function(e){var t=a("Symbol");return n(t)&&i(t.prototype,s(e))}},918:(e,t,r)=>{var o=r(9262);e.exports=function(e){return o(e.length)}},1998:(e,t,r)=>{var o=r(2933),a=r(2856),n=r(3208),i=r(414),l=r(4081).CONFIGURABLE,s=r(2009),d=r(418),c=d.enforce,u=d.get,p=Object.defineProperty,g=i&&!o((function(){return 8!==p((function(){}),"length",{value:8}).length})),m=String(String).split("String"),y=e.exports=function(e,t,r){if("Symbol("===String(t).slice(0,7)&&(t="["+String(t).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),r&&r.getter&&(t="get "+t),r&&r.setter&&(t="set "+t),(!n(e,"name")||l&&e.name!==t)&&p(e,"name",{value:t,configurable:!0}),g&&r&&n(r,"arity")&&e.length!==r.arity&&p(e,"length",{value:r.arity}),r&&n(r,"constructor")&&r.constructor){if(i)try{p(e,"prototype",{writable:!1})}catch(e){}}else e.prototype=void 0;var o=c(e);return n(o,"source")||(o.source=m.join("string"==typeof t?t:"")),e};Function.prototype.toString=y((function(){return a(this)&&u(this).source||s(this)}),"toString")},6634:(e,t,r)=>{var o=r(5723),a=r(2933);e.exports=!!Object.getOwnPropertySymbols&&!a((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&o&&o<41}))},3829:(e,t,r)=>{var o=r(5433),a=r(2856),n=r(2009),i=o.WeakMap;e.exports=a(i)&&/native code/.test(n(i))},8810:(e,t,r)=>{var o,a=r(448),n=r(21),i=r(5604),l=r(7557),s=r(6383),d=r(2388),c=r(8607)("IE_PROTO"),u=function(){},p=function(e){return"<script>"+e+"<\/script>"},g=function(e){e.write(p("")),e.close();var t=e.parentWindow.Object;return e=null,t},m=function(){try{o=new ActiveXObject("htmlfile")}catch(e){}var e,t;m="undefined"!=typeof document?document.domain&&o?g(o):((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):g(o);for(var r=i.length;r--;)delete m.prototype[i[r]];return m()};l[c]=!0,e.exports=Object.create||function(e,t){var r;return null!==e?(u.prototype=a(e),r=new u,u.prototype=null,r[c]=e):r=m(),void 0===t?r:n.f(r,t)}},21:(e,t,r)=>{var o=r(414),a=r(8272),n=r(7872),i=r(448),l=r(5185),s=r(8454);t.f=o&&!a?Object.defineProperties:function(e,t){i(e);for(var r,o=l(t),a=s(t),d=a.length,c=0;d>c;)n.f(e,r=a[c++],o[r]);return e}},7872:(e,t,r)=>{var o=r(5433),a=r(414),n=r(5841),i=r(8272),l=r(448),s=r(29),d=o.TypeError,c=Object.defineProperty,u=Object.getOwnPropertyDescriptor;t.f=a?i?function(e,t,r){if(l(e),t=s(t),l(r),"function"==typeof e&&"prototype"===t&&"value"in r&&"writable"in r&&!r.writable){var o=u(e,t);o&&o.writable&&(e[t]=r.value,r={configurable:"configurable"in r?r.configurable:o.configurable,enumerable:"enumerable"in r?r.enumerable:o.enumerable,writable:!1})}return c(e,t,r)}:c:function(e,t,r){if(l(e),t=s(t),l(r),n)try{return c(e,t,r)}catch(e){}if("get"in r||"set"in r)throw d("Accessors not supported");return"value"in r&&(e[t]=r.value),e}},8688:(e,t,r)=>{var o=r(414),a=r(3573),n=r(4017),i=r(6730),l=r(5185),s=r(29),d=r(3208),c=r(5841),u=Object.getOwnPropertyDescriptor;t.f=o?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,r)=>{var o=r(209),a=r(5604).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return o(e,a)}},6824:(e,t)=>{t.f=Object.getOwnPropertySymbols},9309:(e,t,r)=>{var o=r(5433),a=r(3208),n=r(2856),i=r(4021),l=r(8607),s=r(4042),d=l("IE_PROTO"),c=o.Object,u=c.prototype;e.exports=s?c.getPrototypeOf:function(e){var t=i(e);if(a(t,d))return t[d];var r=t.constructor;return n(r)&&t instanceof r?r.prototype:t instanceof c?u:null}},7012:(e,t,r)=>{var o=r(547);e.exports=o({}.isPrototypeOf)},209:(e,t,r)=>{var o=r(547),a=r(3208),n=r(5185),i=r(5071).indexOf,l=r(7557),s=o([].push);e.exports=function(e,t){var r,o=n(e),d=0,c=[];for(r in o)!a(l,r)&&a(o,r)&&s(c,r);for(;t.length>d;)a(o,r=t[d++])&&(~i(c,r)||s(c,r));return c}},8454:(e,t,r)=>{var o=r(209),a=r(5604);e.exports=Object.keys||function(e){return o(e,a)}},4017:(e,t)=>{"use strict";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,a=o&&!r.call({1:2},1);t.f=a?function(e){var t=o(this,e);return!!t&&t.enumerable}:r},7248:(e,t,r)=>{var o=r(547),a=r(448),n=r(9886);e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,r={};try{(e=o(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set))(r,[]),t=r instanceof Array}catch(e){}return function(r,o){return a(r),n(o),t?e(r,o):r.__proto__=o,r}}():void 0)},542:(e,t,r)=>{var o=r(5433),a=r(3573),n=r(2856),i=r(6873),l=o.TypeError;e.exports=function(e,t){var r,o;if("string"===t&&n(r=e.toString)&&!i(o=a(r,e)))return o;if(n(r=e.valueOf)&&!i(o=a(r,e)))return o;if("string"!==t&&n(r=e.toString)&&!i(o=a(r,e)))return o;throw l("Can't convert object to primitive value")}},5313:(e,t,r)=>{var o=r(1272),a=r(547),n=r(7839),i=r(6824),l=r(448),s=a([].concat);e.exports=o("Reflect","ownKeys")||function(e){var t=n.f(l(e)),r=i.f;return r?s(t,r(e)):t}},4630:(e,t,r)=>{var o=r(5433).TypeError;e.exports=function(e){if(null==e)throw o("Can't call method on "+e);return e}},2012:(e,t,r)=>{var o=r(5433),a=Object.defineProperty;e.exports=function(e,t){try{a(o,e,{value:t,configurable:!0,writable:!0})}catch(r){o[e]=t}return t}},8607:(e,t,r)=>{var o=r(3062),a=r(5834),n=o("keys");e.exports=function(e){return n[e]||(n[e]=a(e))}},3479:(e,t,r)=>{var o=r(5433),a=r(2012),n="__core-js_shared__",i=o[n]||a(n,{});e.exports=i},3062:(e,t,r)=>{var o=r(2390),a=r(3479);(e.exports=function(e,t){return a[e]||(a[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.22.5",mode:o?"pure":"global",copyright:"© 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.22.5/LICENSE",source:"https://github.com/zloirock/core-js"})},873:(e,t,r)=>{var o=r(7219),a=Math.max,n=Math.min;e.exports=function(e,t){var r=o(e);return r<0?a(r+t,0):n(r,t)}},5185:(e,t,r)=>{var o=r(8946),a=r(4630);e.exports=function(e){return o(a(e))}},7219:e=>{var t=Math.ceil,r=Math.floor;e.exports=function(e){var o=+e;return o!=o||0===o?0:(o>0?r:t)(o)}},9262:(e,t,r)=>{var o=r(7219),a=Math.min;e.exports=function(e){return e>0?a(o(e),9007199254740991):0}},4021:(e,t,r)=>{var o=r(5433),a=r(4630),n=o.Object;e.exports=function(e){return n(a(e))}},1929:(e,t,r)=>{var o=r(5433),a=r(9434),n=o.RangeError;e.exports=function(e,t){var r=a(e);if(r%t)throw n("Wrong offset");return r}},9434:(e,t,r)=>{var o=r(5433),a=r(7219),n=o.RangeError;e.exports=function(e){var t=a(e);if(t<0)throw n("The argument can't be less than 0");return t}},9984:(e,t,r)=>{var o=r(5433),a=r(3573),n=r(6873),i=r(9650),l=r(9345),s=r(542),d=r(1286),c=o.TypeError,u=d("toPrimitive");e.exports=function(e,t){if(!n(e)||i(e))return e;var r,o=l(e,u);if(o){if(void 0===t&&(t="default"),r=a(o,e,t),!n(r)||i(r))return r;throw c("Can't convert object to primitive value")}return void 0===t&&(t="number"),s(e,t)}},29:(e,t,r)=>{var o=r(9984),a=r(9650);e.exports=function(e){var t=o(e,"string");return a(t)?t:t+""}},8084:(e,t,r)=>{var o={};o[r(1286)("toStringTag")]="z",e.exports="[object z]"===String(o)},7406:(e,t,r)=>{var o=r(5433).String;e.exports=function(e){try{return o(e)}catch(e){return"Object"}}},5834:(e,t,r)=>{var o=r(547),a=0,n=Math.random(),i=o(1..toString);e.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+i(++a+n,36)}},8951:(e,t,r)=>{var o=r(6634);e.exports=o&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},8272:(e,t,r)=>{var o=r(414),a=r(2933);e.exports=o&&a((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},1286:(e,t,r)=>{var o=r(5433),a=r(3062),n=r(3208),i=r(5834),l=r(6634),s=r(8951),d=a("wks"),c=o.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,r)=>{"use strict";r(3647);var o=r(4429),a=r(5071).includes,n=r(2933),i=r(1342);o({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",(function(){var e,t,r,o,a,n;null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(r=t.facebook)||void 0===r||!r.pixel_id||null!==(o=wpmDataLayer)&&void 0!==o&&null!==(a=o.pixels)&&void 0!==a&&null!==(n=a.facebook)&&void 0!==n&&n.loaded||wpm.canIFire("ads","facebook-ads")&&wpm.loadFacebookPixel()})),jQuery(document).on("wpmAddToCart",(function(e,t){try{var r,o,a;if(null===(r=wpmDataLayer)||void 0===r||null===(o=r.pixels)||void 0===o||null===(a=o.facebook)||void 0===a||!a.loaded)return;let e=wpm.getRandomEventId();fbq("track","AddToCart",{content_type:"product",content_name:t.name,content_ids:t.dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type],value:parseFloat(t.quantity*t.price),currency:t.currency},{eventID:e}),t.currency=wpmDataLayer.shop.currency,jQuery(document).trigger("wpmFbCapiEvent",{event_name:"AddToCart",event_id:e,user_data:wpm.getFbUserData(),event_source_url:window.location.href,custom_data:wpm.fbGetProductDataForCapiEvent(t)})}catch(e){console.error(e)}})),jQuery(document).on("wpmBeginCheckout",(function(e){try{var t,r,o;if(null===(t=wpmDataLayer)||void 0===t||null===(r=t.pixels)||void 0===r||null===(o=r.facebook)||void 0===o||!o.loaded)return;let e=wpm.getRandomEventId();fbq("track","InitiateCheckout",{},{eventID:e}),jQuery(document).trigger("wpmFbCapiEvent",{event_name:"InitiateCheckout",event_id:e,user_data:wpm.getFbUserData(),event_source_url:window.location.href})}catch(e){console.error(e)}})),jQuery(document).on("wpmAddToWishlist",(function(e,t){try{var r,o,a;if(null===(r=wpmDataLayer)||void 0===r||null===(o=r.pixels)||void 0===o||null===(a=o.facebook)||void 0===a||!a.loaded)return;let e=wpm.getRandomEventId();fbq("track","AddToWishlist",{content_type:"product",content_name:t.name,content_ids:t.dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type],value:parseFloat(t.quantity*t.price),currency:t.currency},{eventID:e}),t.currency=wpmDataLayer.shop.currency,jQuery(document).trigger("wpmFbCapiEvent",{event_name:"AddToWishlist",event_id:e,user_data:wpm.getFbUserData(),event_source_url:window.location.href,custom_data:wpm.fbGetProductDataForCapiEvent(t)})}catch(e){console.error(e)}})),jQuery(document).on("wpmViewItem",(function(e,t){try{var r,o,a;if(null===(r=wpmDataLayer)||void 0===r||null===(o=r.pixels)||void 0===o||null===(a=o.facebook)||void 0===a||!a.loaded)return;wpm.fbViewContent(t)}catch(e){console.error(e)}})),jQuery(document).on("wpmSearch",(function(){try{var e,t,r;if(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(r=t.facebook)||void 0===r||!r.loaded)return;let o=wpm.getRandomEventId();fbq("track","Search",{},{eventID:o}),jQuery(document).trigger("wpmFbCapiEvent",{event_name:"Search",event_id:o,user_data:wpm.getFbUserData(),event_source_url:window.location.href,custom_data:{search_string:wpm.getSearchTermFromUrl()}})}catch(e){console.error(e)}})),jQuery(document).on("wpmLoadAlways",(function(){try{var e,t,r;if(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(r=t.facebook)||void 0===r||!r.loaded)return;wpm.setFbUserData()}catch(e){console.error(e)}})),jQuery(document).on("wpmOrderReceivedPage",(function(){try{var e,t,r;if(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(r=t.facebook)||void 0===r||!r.loaded)return;fbq("track","Purchase",{content_type:"product",value:wpmDataLayer.order.value_filtered,currency:wpmDataLayer.order.currency,content_ids:wpm.facebookContentIds()},{eventID:wpmDataLayer.order.id})}catch(e){console.error(e)}}))},7746:()=>{!function(e,t,r){let o;e.loadFacebookPixel=()=>{try{wpmDataLayer.pixels.facebook.loaded=!0,t=window,r=document,o="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=r.createElement(o)).async=!0,n.src="https://connect.facebook.net/en_US/fbevents.js",(i=r.getElementsByTagName(o)[0]).parentNode.insertBefore(n,i));let l={};e.isFbpSet()&&(l={...e.getUserIdentifiersForFb()}),fbq("init",wpmDataLayer.pixels.facebook.pixel_id,l),fbq("track","PageView")}catch(o){console.error(o)}var t,r,o,a,n,i},e.getUserIdentifiersForFb=()=>{var e,t,r,o,a,n,i,l,s,d,c,u,p,g,m,y,v,w,f,_,h,L,D,b,x,j,C,k,S,I,O,P,Q,A,E,T,F,V,R,G,M,q,U,N;let W={};return null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.user)&&void 0!==t&&t.id&&(W.external_id=wpmDataLayer.user.id),null!==(r=wpmDataLayer)&&void 0!==r&&null!==(o=r.order)&&void 0!==o&&o.user_id&&(W.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&&(W.em=wpmDataLayer.user.facebook.email),null!==(l=wpmDataLayer)&&void 0!==l&&null!==(s=l.order)&&void 0!==s&&s.billing_email_hashed&&(W.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&&(W.fn=wpmDataLayer.user.facebook.first_name),null!==(p=wpmDataLayer)&&void 0!==p&&null!==(g=p.order)&&void 0!==g&&g.billing_first_name&&(W.fn=wpmDataLayer.order.billing_first_name.toLowerCase()),null!==(m=wpmDataLayer)&&void 0!==m&&null!==(y=m.user)&&void 0!==y&&null!==(v=y.facebook)&&void 0!==v&&v.last_name&&(W.ln=wpmDataLayer.user.facebook.last_name),null!==(w=wpmDataLayer)&&void 0!==w&&null!==(f=w.order)&&void 0!==f&&f.billing_last_name&&(W.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&&(W.ph=wpmDataLayer.user.facebook.phone),null!==(D=wpmDataLayer)&&void 0!==D&&null!==(b=D.order)&&void 0!==b&&b.billing_phone&&(W.ph=wpmDataLayer.order.billing_phone.replace("+","")),null!==(x=wpmDataLayer)&&void 0!==x&&null!==(j=x.user)&&void 0!==j&&null!==(C=j.facebook)&&void 0!==C&&C.city&&(W.ct=wpmDataLayer.user.facebook.city),null!==(k=wpmDataLayer)&&void 0!==k&&null!==(S=k.order)&&void 0!==S&&S.billing_city&&(W.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&&(W.st=wpmDataLayer.user.facebook.state),null!==(Q=wpmDataLayer)&&void 0!==Q&&null!==(A=Q.order)&&void 0!==A&&A.billing_state&&(W.st=wpmDataLayer.order.billing_state.toLowerCase().replace(/[a-zA-Z]{2}-/,"")),null!==(E=wpmDataLayer)&&void 0!==E&&null!==(T=E.user)&&void 0!==T&&null!==(F=T.facebook)&&void 0!==F&&F.postcode&&(W.zp=wpmDataLayer.user.facebook.postcode),null!==(V=wpmDataLayer)&&void 0!==V&&null!==(R=V.order)&&void 0!==R&&R.billing_postcode&&(W.zp=wpmDataLayer.order.billing_postcode),null!==(G=wpmDataLayer)&&void 0!==G&&null!==(M=G.user)&&void 0!==M&&null!==(q=M.facebook)&&void 0!==q&&q.country&&(W.country=wpmDataLayer.user.facebook.country),null!==(U=wpmDataLayer)&&void 0!==U&&null!==(N=U.order)&&void 0!==N&&N.billing_country&&(W.country=wpmDataLayer.order.billing_country.toLowerCase()),W},e.getRandomEventId=()=>(Math.random()+1).toString(36).substring(2),e.getFbUserData=()=>o||e.getFbUserDataFromBrowser(),e.setFbUserData=()=>{o=e.getFbUserDataFromBrowser()},e.getFbUserDataFromBrowser=()=>{var t,r;let o={};return e.getCookie("_fbp")&&e.isValidFbp(e.getCookie("_fbp"))&&(o.fbp=e.getCookie("_fbp")),e.getCookie("_fbc")&&e.isValidFbc(e.getCookie("_fbc"))&&(o.fbp=e.getCookie("_fbc")),null!==(t=wpmDataLayer)&&void 0!==t&&null!==(r=t.user)&&void 0!==r&&r.id&&(o.external_id=wpmDataLayer.user.id),navigator.userAgent&&(o.client_user_agent=navigator.userAgent),o},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,50}$/).test(e),e.fbViewContent=t=>{try{var r,o,a;if(null===(r=wpmDataLayer)||void 0===r||null===(o=r.pixels)||void 0===o||null===(a=o.facebook)||void 0===a||!a.loaded)return;let n=e.getRandomEventId();fbq("track","ViewContent",{content_type:"product",content_name:t.name,content_ids:t.dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type],currency:wpmDataLayer.shop.currency,value:t.price},{eventID:n}),t.currency=wpmDataLayer.shop.currency,jQuery(document).trigger("wpmFbCapiEvent",{event_name:"ViewContent",event_id:n,user_data:e.getFbUserData(),event_source_url:window.location.href,custom_data:e.fbGetProductDataForCapiEvent(t)})}catch(e){console.error(e)}},e.fbGetProductDataForCapiEvent=e=>({content_type:"product",content_ids:[e.dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type]],value:e.quantity*e.price,currency:wpmDataLayer.shop.currency}),e.facebookContentIds=()=>{let e=[];for(const[o,a]of Object.entries(wpmDataLayer.order.items)){var t,r;null!==(t=wpmDataLayer)&&void 0!==t&&null!==(r=t.general)&&void 0!==r&&r.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 o=arguments.length>1&&arguments[1]!==r?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 r=e.getRandomEventId();fbq("trackCustom",t,o,{eventID:r}),jQuery(document).trigger("wpmFbCapiEvent",{event_name:t,event_id:r,user_data:e.getFbUserData(),event_source_url:window.location.href,custom_data:o})}catch(e){console.error(e)}}}(window.wpm=window.wpm||{},jQuery)},5012:(e,t,r)=>{r(7746),r(164)},165:()=>{jQuery(document).on("wpmViewItemList",(function(e,t){try{var r,o,a,n,i,l,s,d,c,u,p,g,m;if(jQuery.isEmptyObject(null===(r=wpmDataLayer)||void 0===r||null===(o=r.pixels)||void 0===o||null===(a=o.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!==(g=wpmDataLayer)&&void 0!==g&&null!==(m=g.user)&&void 0!==m&&m.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 r,o,a,n,i,l,s,d,c,u,p;if(jQuery.isEmptyObject(null===(r=wpmDataLayer)||void 0===r||null===(o=r.pixels)||void 0===o||null===(a=o.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,t){try{var r,o,a,n,i,l,s,d,c,u,p;if(jQuery.isEmptyObject(null===(r=wpmDataLayer)||void 0===r||null===(o=r.pixels)||void 0===o||null===(a=o.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.quantity:1)*t.price,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,r,o,a,n,i,l,s,d,c;if(jQuery.isEmptyObject(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(r=t.google)||void 0===r||null===(o=r.ads)||void 0===o?void 0:o.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 g=[];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;g.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 m={send_to:wpm.getGoogleAdsConversionIdentifiers(),items:g};null!==(d=wpmDataLayer)&&void 0!==d&&null!==(c=d.user)&&void 0!==c&&c.id&&(m.user_id=wpmDataLayer.user.id),wpm.gtagLoaded().then((function(){gtag("event","view_search_results",m)}))}catch(e){console.error(e)}})),jQuery(document).on("wpmOrderReceivedPage",(function(){try{var e,t,r,o,a,n,i,l,s,d,c;if(jQuery.isEmptyObject(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(r=t.google)||void 0===r||null===(o=r.ads)||void 0===o?void 0:o.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,r,o,a,n,i,l,s,d,c;if(jQuery.isEmptyObject(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(r=t.google)||void 0===r||null===(o=r.ads)||void 0===o?void 0:o.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,r,o,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!==(r=wpmDataLayer)&&void 0!==r&&null!==(o=r.user)&&void 0!==o&&o.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,r){e.getGoogleAdsConversionIdentifiersWithLabel=function(){let e=[];for(const[t,r]of Object.entries(wpmDataLayer.pixels.google.ads.conversionIds))r&&e.push(t+"/"+r);return e},e.getGoogleAdsConversionIdentifiers=function(){let e=[];for(const[t,r]of Object.entries(wpmDataLayer.pixels.google.ads.conversionIds))e.push(t);return e},e.getGoogleAdsRegularOrderItems=function(){let e=[];for(const[o,a]of Object.entries(wpmDataLayer.order.items)){var t,r;let o;o={quantity:a.quantity,price:a.price},null!==(t=wpmDataLayer)&&void 0!==t&&null!==(r=t.general)&&void 0!==r&&r.variationsOutput&&0!==a.variation_id?(o.id=String(wpmDataLayer.products[a.variation_id].dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type]),e.push(o)):(o.id=String(wpmDataLayer.products[a.id].dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type]),e.push(o))}return e},e.getGoogleAdsDynamicRemarketingOrderItems=function(){let e=[];for(const[o,a]of Object.entries(wpmDataLayer.order.items)){var t,r;let o;o={quantity:a.quantity,price:a.price,google_business_vertical:wpmDataLayer.pixels.google.ads.google_business_vertical},null!==(t=wpmDataLayer)&&void 0!==t&&null!==(r=t.general)&&void 0!==r&&r.variationsOutput&&0!==a.variation_id?(o.id=String(wpmDataLayer.products[a.variation_id].dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type]),e.push(o)):(o.id=String(wpmDataLayer.products[a.id].dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type]),e.push(o))}return e}}(window.wpm=window.wpm||{},jQuery)},5190:(e,t,r)=>{r(9042),r(165)},3625:()=>{jQuery(document).on("wpmOrderReceivedPage",(function(){try{var e,t,r,o,a,n,i,l,s,d;if(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(r=t.google)||void 0===r||null===(o=r.analytics)||void 0===o||null===(a=o.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,r){e.getGAUAOrderItems=function(){let t=[];for(const[a,n]of Object.entries(wpmDataLayer.order.items)){var r,o;let a;a={quantity:n.quantity,price:n.price,name:n.name,currency:wpmDataLayer.order.currency,category:wpmDataLayer.products[n.id].category.join("/")},null!==(r=wpmDataLayer)&&void 0!==r&&null!==(o=r.general)&&void 0!==o&&o.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]!==r?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,r)=>{r(6019),r(3625)},7572:()=>{jQuery(document).on("wpmOrderReceivedPage",(function(){try{var e,t,r,o,a,n,i,l,s,d;if(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(r=t.google)||void 0===r||null===(o=r.analytics)||void 0===o||null===(a=o.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,r){e.getGA4OrderItems=function(){let e=[];for(const[o,a]of Object.entries(wpmDataLayer.order.items)){var t,r;let o;o={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!==(r=t.general)&&void 0!==r&&r.variationsOutput&&0!==a.variation_id?(o.item_id=String(wpmDataLayer.products[a.variation_id].dyn_r_ids[wpmDataLayer.pixels.google.analytics.id_type]),o.item_variant=wpmDataLayer.products[a.variation_id].variant_name,o.item_brand=wpmDataLayer.products[a.variation_id].brand):(o.item_id=String(wpmDataLayer.products[a.id].dyn_r_ids[wpmDataLayer.pixels.google.analytics.id_type]),o.item_brand=wpmDataLayer.products[a.id].brand),e.push(o)}return e}}(window.wpm=window.wpm||{},jQuery)},8522:(e,t,r)=>{r(6228),r(7572)},6774:(e,t,r)=>{r(562),r(8522)},9294:()=>{jQuery(document).on("wpmLoadPixels",(function(){var e,t,r;void 0===(null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(r=t.google)||void 0===r?void 0:r.state)&&(wpm.canGoogleLoad()?wpm.loadGoogle():wpm.logPreventedPixelLoading("google","analytics / ads"))}))},9860:(e,t,r)=>{"use strict";r.r(t),r(3647),function(e,t,r){e.googleConfigConditionsMet=function(t){var r,o,a,n;return!(null===(r=wpmDataLayer)||void 0===r||null===(o=r.pixels)||void 0===o||null===(a=o.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]!==r)||arguments[0],t=!(arguments.length>1&&arguments[1]!==r)||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,r,o,a,n,i,l,s,d,c,u,p,g,m,y,v,w,f,_,h;if(wpmDataLayer.pixels.google.ads.state="loading",null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.pixels)&&void 0!==t&&null!==(r=t.google)&&void 0!==r&&null!==(o=r.ads)&&void 0!==o&&null!==(a=o.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!==(g=wpmDataLayer)&&void 0!==g&&null!==(m=g.pixels)&&void 0!==m&&null!==(y=m.google)&&void 0!==y&&null!==(v=y.ads)&&void 0!==v&&v.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}),"order_received_page"===wpmDataLayer.shop.page_type&&null!==(w=wpmDataLayer)&&void 0!==w&&null!==(f=w.order)&&void 0!==f&&null!==(_=f.google)&&void 0!==_&&null!==(h=_.ads)&&void 0!==h&&h.enhanced_conversion_data&&(window.enhanced_conversion_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,r,o,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!==(r=t.google)&&void 0!==r&&null!==(o=r.analytics)&&void 0!==o&&null!==(a=o.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,r,o,a,n,i,l,s,d,c,u,p,g;return!(!(null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.pixels)&&void 0!==t&&null!==(r=t.google)&&void 0!==r&&null!==(o=r.analytics)&&void 0!==o&&null!==(a=o.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===(g=p.ads)||void 0===g?void 0:g.conversionIds))},e.getGoogleGtagId=function(){var e,t,r,o,a,n,i,l,s,d;return null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.pixels)&&void 0!==t&&null!==(r=t.google)&&void 0!==r&&null!==(o=r.analytics)&&void 0!==o&&null!==(a=o.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()).done((function(t,r){try{var o,a,n,i,l,s,d,c,u,p,g,m,y,v,w,f,_,h,L,D,b,x;if(window.dataLayer=window.dataLayer||[],window.gtag=function(){dataLayer.push(arguments)},null!==(o=wpmDataLayer)&&void 0!==o&&null!==(a=o.pixels)&&void 0!==a&&null!==(n=a.google)&&void 0!==n&&null!==(i=n.consent_mode)&&void 0!==i&&i.active){var j,C,k,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!==(j=wpmDataLayer)&&void 0!==j&&null!==(C=j.pixels)&&void 0!==C&&null!==(k=C.google)&&void 0!==k&&null!==(S=k.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===(g=p.google)||void 0===g||null===(m=g.ads)||void 0===m?void 0:m.conversionIds)||(e.googleConfigConditionsMet("ads")?e.fireGtagGoogleAds():e.logPreventedPixelLoading("google-ads","ads")),null!==(y=wpmDataLayer)&&void 0!==y&&null!==(v=y.pixels)&&void 0!==v&&null!==(w=v.google)&&void 0!==w&&null!==(f=w.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!==(D=L.google)&&void 0!==D&&null!==(b=D.analytics)&&void 0!==b&&null!==(x=b.ga4)&&void 0!==x&&x.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,r,o,a;return!(null===(t=wpmDataLayer)||void 0===t||null===(r=t.pixels)||void 0===r||null===(o=r.google)||void 0===o||null===(a=o.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 r,o,a;void 0===(null===(r=wpmDataLayer)||void 0===r||null===(o=r.pixels)||void 0===o||null===(a=o.google)||void 0===a?void 0:a.state)&&t();let n=0;!function r(){var o,a,i;return"ready"===(null===(o=wpmDataLayer)||void 0===o||null===(a=o.pixels)||void 0===a||null===(i=a.google)||void 0===i?void 0:i.state)?e():n>=5e3?t():(n+=200,void setTimeout(r,200))}()}))}}(window.wpm=window.wpm||{},jQuery)},1580:(e,t,r)=>{r(9860),r(9294)},8069:(e,t,r)=>{r(1580),r(5190),r(6774),r(3463)},1945:()=>{jQuery(document).on("wpmLoadPixels",(function(){var e,t,r,o,a,n,i,l;null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(r=t.google)||void 0===r||null===(o=r.optimize)||void 0===o||!o.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,r){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,r)=>{r(8962),r(1945)},2300:()=>{jQuery(document).on("wpmLoadPixels",(function(){var e,t,r,o,a,n,i,l,s;null===(e=wpmDataLayer)||void 0===e||null===(t=e.pixels)||void 0===t||null===(r=t.hotjar)||void 0===r||!r.site_id||null!==(o=wpmDataLayer)&&void 0!==o&&null!==(a=o.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,r){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},r=t.getElementsByTagName("head")[0],(o=t.createElement("script")).async=1,o.src="https://static.hotjar.com/c/hotjar-"+e._hjSettings.hjid+".js?sv="+e._hjSettings.hjsv,r.appendChild(o)}catch(e){console.error(e)}var e,t,r,o}}(window.wpm=window.wpm||{},jQuery)},8787:(e,t,r)=>{r(2376),r(2300)},473:(e,t,r)=>{"use strict";r.r(t),r(3647),function(e,t,r){let o=()=>{let t=e.getCookie("cmplz_statistics"),r=e.getCookie("cmplz_marketing");return!(!e.getCookie("cmplz_consent_status")&&!e.getCookie("cmplz_banner-status"))&&{analytics:"allow"===t,ads:"allow"===r,visitorHasChosen:!0}},a=()=>{let t=e.getCookie("cookielawinfo-checkbox-analytics")||e.getCookie("cookielawinfo-checkbox-analytiques"),r=e.getCookie("cookielawinfo-checkbox-advertisement")||e.getCookie("cookielawinfo-checkbox-performance")||e.getCookie("cookielawinfo-checkbox-publicite"),o=e.getCookie("CookieLawInfoConsent");return!(!t&&!r)&&{analytics:"yes"===t,ads:"yes"===r,visitorHasChosen:!!o}},n={categories:{},pixels:[],mode:"category",visitorHasChosen:!1};e.getConsentValues=()=>n,e.setConsentValueCategories=function(){let e=arguments.length>0&&arguments[0]!==r&&arguments[0],t=arguments.length>1&&arguments[1]!==r&&arguments[1];n.categories.analytics=e,n.categories.ads=t},e.updateConsentCookieValues=function(){let t,i=arguments.length>0&&arguments[0]!==r?arguments[0]:null,l=arguments.length>1&&arguments[1]!==r?arguments[1]:null,s=arguments.length>2&&arguments[2]!==r&&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,g,m,y,v;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===(g=t)||void 0===g||null===(m=g.consents)||void 0===m?void 0:m.statistics)||[],...(null===(y=t)||void 0===y||null===(v=y.consents)||void 0===v?void 0:v.marketing)||[]],n.mode="pixel"}else(t=o())?(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,r)=>{let o;return"category"===n.mode?o=!!n.categories[t]:"pixel"===n.mode?(o=n.pixels.includes(r),!1===o&&"microsoft-ads"===r&&(o=n.pixels.includes("bing-ads"))):(console.error("Couldn't find a valid consent mode in wpmConsentValues"),o=!1),!!o||(e.logPreventedPixelLoading(r,t),!1)},e.logPreventedPixelLoading=(e,t)=>{var r,o,a;null!==(r=wpmDataLayer)&&void 0!==r&&null!==(o=r.shop)&&void 0!==o&&null!==(a=o.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((r=>{r.forEach((r=>{let{addedNodes:o}=r;[...o].forEach((r=>{t(r).data("wpm-cookie-category")&&(e.shouldScriptBeActive(r)?e.unblockScript(r):e.blockScript(r))}))}))})),e.scriptTagObserver.observe(document.head,{childList:!0,subtree:!0}),jQuery(document).on("DOMContentLoaded",(()=>e.scriptTagObserver.disconnect())),e.shouldScriptBeActive=e=>{var r,o,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===(r=wpmDataLayer)||void 0===r||null===(o=r.pixels)||void 0===o||null===(a=o.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 o=arguments.length>1&&arguments[1]!==r&&arguments[1];o&&t(e).remove();let a=t(e).data("wpm-src");a&&t(e).attr("src",a),e.type="text/javascript",o&&t(e).appendTo("head"),jQuery(document).trigger("wpmPreLoadPixels",{})},e.blockScript=function(e){let o=arguments.length>1&&arguments[1]!==r&&arguments[1];o&&t(e).remove(),t(e).attr("src")&&t(e).removeAttr("src"),e.type="blocked/javascript",o&&t(e).appendTo("head")},e.unblockAllScripts=function(){jQuery(document).trigger("wpmPreLoadPixels",{})},e.unblockSelectedPixels=()=>{jQuery(document).trigger("wpmPreLoadPixels",{})},jQuery(document).on("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))})),jQuery(document).on("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),jQuery(document).on("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)})),jQuery(document).on("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)},jQuery(document).on("cmplzStatusChange",e.cmplzStatusChange),jQuery(document).on("cmplz_status_change",e.cmplzStatusChange),jQuery(document).on("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:r}=t;[...r].forEach((t=>{"hu"===t.id&&jQuery(".hu-cookies-save").on("click",(function(){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,r)=>{"use strict";r.r(t),r(3647),jQuery(document).on("click",".remove_from_cart_button, .remove",(function(){try{let e=new URL(jQuery(this).attr("href")),t=wpm.getProductIdByCartItemKeyUrl(e);wpm.removeProductFromCart(t)}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",(function(){try{if("product"===wpmDataLayer.shop.page_type){if(void 0!==jQuery(this).attr("href")&&jQuery(this).attr("href").includes("add-to-cart")){let e=1,t=jQuery(this).data("product_id");wpm.addProductToCart(t,e)}else if("simple"===wpmDataLayer.shop.product_type){let e=Number(jQuery(".input-text.qty").val());e||0===e||(e=1);let t=jQuery(this).val();wpm.addProductToCart(t,e)}else if("variable"===wpmDataLayer.shop.product_type){let e=Number(jQuery(".input-text.qty").val());e||0===e||(e=1);let t=jQuery("[name='variation_id']").val();wpm.addProductToCart(t,e)}else if("grouped"===wpmDataLayer.shop.product_type)jQuery(".woocommerce-grouped-product-list-item").each((function(){let e=Number(jQuery(this).find(".input-text.qty").val());e||0===e||(e=1);let t=jQuery(this).attr("class"),r=wpm.getPostIdFromString(t);wpm.addProductToCart(r,e)}));else if("bundle"===wpmDataLayer.shop.product_type){let e=Number(jQuery(".input-text.qty").val());e||0===e||(e=1);let t=jQuery("input[name=add-to-cart]").val();wpm.addProductToCart(t,e)}}else{let e=1,t=jQuery(this).data("product_id");wpm.addProductToCart(t,e)}}catch(e){console.error(e)}})),jQuery(document).one("click","a:not(.add_to_cart_button, .ajax_add_to_cart, .single_add_to_cart_button)",(function(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",(function(){try{let e=jQuery(this).nextAll(".wpmProductId:first").data("id");if(e){if(e=wpm.getIdBasedOndVariationsOutputSetting(e),!e)throw Error("Wasn't able to retrieve a productId");if(wpmDataLayer.products&&wpmDataLayer.products[e]){let t=wpm.getProductDetailsFormattedForEvent(e);jQuery(document).trigger("wpmSelectContentGaUa",t),jQuery(document).trigger("wpmSelectItem",t)}}}catch(e){console.error(e)}})),jQuery(document).one("click",[".checkout-button",".cart-checkout-button",".button.checkout",".xoo-wsc-ft-btn-checkout"].join(","),(function(){jQuery(document).trigger("wpmBeginCheckout")})),jQuery(document).on("input","#billing_email",(function(){wpm.isEmail(jQuery(this).val())&&(wpm.fireCheckoutProgress(2),wpm.emailSelected=!0)})),jQuery(document).on("click",".wc_payment_methods",(function(){!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",(function(){!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']",(function(){try{jQuery(".cart_item").each((function(){let e=new URL(jQuery(this).find(".product-remove").find("a").attr("href")),t=wpm.getProductIdByCartItemKeyUrl(e),r=jQuery(this).find(".qty").val();0===r?wpm.removeProductFromCart(t):r<wpmDataLayer.cart[t].quantity?wpm.removeProductFromCart(t,wpmDataLayer.cart[t].quantity-r):r>wpmDataLayer.cart[t].quantity&&wpm.addProductToCart(t,r-wpmDataLayer.cart[t].quantity)}))}catch(e){console.error(e),wpm.getCartItemsFromBackend()}})),jQuery(document).on("click",".add_to_wishlist, .wl-add-to",(function(){try{let e;if(jQuery(this).data("productid")?e=jQuery(this).data("productid"):jQuery(this).data("product-id")&&(e=jQuery(this).data("product-id")),!e)throw Error("Wasn't able to retrieve a productId");let t=wpm.getProductDetailsFormattedForEvent(e);jQuery(document).trigger("wpmAddToWishlist",t)}catch(e){console.error(e)}})),jQuery(document).on("updated_cart_totals",(function(){jQuery(document).trigger("wpmViewCart")})),jQuery((function(){jQuery(".single_variation_wrap").on("show_variation",(function(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((function(){jQuery(".single_variation_wrap").on("hide_variation",(function(){try{var e,t;let n=jQuery("body").attr("class").match(/(postid-)(\d+)/)[2];if(!n)throw Error("Wasn't able to retrieve a productId");if("variable"===wpmDataLayer.shop.product_type&&null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.general)&&void 0!==t&&t.variationsOutput){var r,o,a;for(const[e,t]of Object.entries(wpmDataLayer.products))if("parentId"in t){n=t.id;break}null!==(r=wpmDataLayer)&&void 0!==r&&null!==(o=r.pixels)&&void 0!==o&&null!==(a=o.facebook)&&void 0!==a&&a.microdata_product_id&&(n=wpmDataLayer.pixels.facebook.microdata_product_id)}wpm.triggerViewItemEventPrep(n)}catch(e){console.error(e)}}))})),jQuery(window).on("wpmLoad",(function(){try{wpm.doesWooCommerceCartExist()&&wpm.getCartItems()}catch(e){console.error(e)}})),jQuery(window).on("wpmLoad",(function(){wpmDataLayer.products=wpmDataLayer.products||{};let e=wpm.getAddToCartLinkProductIds();wpm.getProductsFromBackend(e)})),jQuery(window).on("wpmLoad",(function(){if(!wpm.getCookie("wpmReferrer")&&document.referrer){let e=new URL(document.referrer).hostname;e!==window.location.host&&wpm.setCookie("wpmReferrer",e)}})),jQuery(window).on("wpmLoad",(function(){try{var e;if("undefined"!=typeof wpmDataLayer&&(null===(e=wpmDataLayer)||void 0===e||!e.wpmLoadFired)){var t,r;if(jQuery(document).trigger("wpmLoadAlways"),"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");null!==(t=wpmDataLayer)&&void 0!==t&&null!==(r=t.user)&&void 0!==r&&r.id&&!wpm.hasLoginEventFired()&&(jQuery(document).trigger("wpmLogin"),wpm.setLoginEventFired()),wpmDataLayer.wpmLoadFired=!0}}catch(e){console.error(e)}})),jQuery(window).on("wpmPreLoadPixels",(function(){var e,t,r;null!==(e=wpmDataLayer)&&void 0!==e&&null!==(t=e.shop)&&void 0!==t&&null!==(r=t.cookie_consent_mgmt)&&void 0!==r&&r.explicit_consent&&!wpm.explicitConsentStateAlreadySet()&&wpm.updateConsentCookieValues(null,null,!0),jQuery(document).trigger("wpmLoadPixels",{})}))},2487:(e,t,r)=>{"use strict";r.r(t),r(3647);var o=r(5433),a=r(3573),n=r(4772),i=r(918),l=r(1929),s=r(4021),d=r(2933),c=o.RangeError,u=o.Int8Array,p=u&&u.prototype,g=p&&p.set,m=n.aTypedArray,y=n.exportTypedArrayMethod,v=!d((function(){var e=new Uint8ClampedArray(2);return a(g,e,{length:1,0:3},1),3!==e[1]})),w=v&&n.NATIVE_ARRAY_BUFFER_VIEWS&&d((function(){var e=new u(2);return e.set(1),e.set("2",1),0!==e[0]||2!==e[1]}));y("set",(function(e){m(this);var t=l(arguments.length>1?arguments[1]:void 0,1),r=s(e);if(v)return a(g,this,r,t);var o=this.length,n=i(r),d=0;if(n+t>o)throw c("Wrong length");for(;d<n;)this[t+d]=r[d++]}),!v||w),function(e,t,r){const o="_wpm_order_ids",a="_wpm_endpoint_available",n="/wp-json/";function i(){return""!==e.getCookie(o)}e.emailSelected=!1,e.paymentMethodSelected=!1,e.useRestEndpoint=()=>e.isSessionStorageAvailable()&&e.isRestEndpointAvailable()&&e.isBelowRestErrorThreshold(),e.isBelowRestErrorThreshold=()=>window.sessionStorage.getItem(0)<=10,e.isRestEndpointAvailable=()=>{if(window.sessionStorage.getItem(a))return JSON.parse(window.sessionStorage.getItem(a));e.testEndpoint()},e.isSessionStorageAvailable=()=>!!window.sessionStorage,e.testEndpoint=function(){let e=arguments.length>0&&arguments[0]!==r?arguments[0]:location.protocol+"//"+location.host+n,t=arguments.length>1&&arguments[1]!==r?arguments[1]:a;jQuery.ajax(e,{type:"HEAD",timeout:1e3,statusCode:{200:function(e){window.sessionStorage.setItem(t,JSON.stringify(!0))},404:function(e){window.sessionStorage.setItem(t,JSON.stringify(!1))},0:function(e){window.sessionStorage.setItem(t,JSON.stringify(!1))}}}).then((e=>{}))},e.isWpmRestEndpointAvailable=function(){let t=arguments.length>0&&arguments[0]!==r?arguments[0]:a;return!!e.getCookie(t)},e.writeOrderIdToStorage=function(t){if(window.Storage)if(null===localStorage.getItem(o)){let e=[];e.push(t),window.localStorage.setItem(o,JSON.stringify(e))}else{let e=JSON.parse(localStorage.getItem(o));e.includes(t)||(e.push(t),window.localStorage.setItem(o,JSON.stringify(e)))}else{let r=new Date;r.setDate(r.getDate()+365);let a=[];i()&&(a=JSON.parse(e.getCookie(o))),a.includes(t)||(a.push(t),document.cookie="_wpm_order_ids="+JSON.stringify(a)+";expires="+r.toUTCString())}"function"==typeof e.storeOrderIdOnServer&&wpmDataLayer.orderDeduplication&&e.storeOrderIdOnServer(t)},e.isOrderIdStored=t=>wpmDataLayer.orderDeduplication?window.Storage?null!==localStorage.getItem(o)&&JSON.parse(localStorage.getItem(o)).includes(t):!!i()&&JSON.parse(e.getCookie(o)).includes(t):(console.log("order duplication prevention: off"),!1),e.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),e.removeProductFromCart=function(t){let o=arguments.length>1&&arguments[1]!==r?arguments[1]:null;try{if(!t)throw Error("Wasn't able to retrieve a productId");if(!(t=e.getIdBasedOndVariationsOutputSetting(t)))throw Error("Wasn't able to retrieve a productId");let r;if(r=null==o?wpmDataLayer.cart[t].quantity:o,wpmDataLayer.cart[t]){let a=e.getProductDetailsFormattedForEvent(t,r);jQuery(document).trigger("wpmRemoveFromCart",a),null==o||wpmDataLayer.cart[t].quantity===o?(delete wpmDataLayer.cart[t],sessionStorage&&sessionStorage.setItem("wpmDataLayerCart",JSON.stringify(wpmDataLayer.cart))):(wpmDataLayer.cart[t].quantity=wpmDataLayer.cart[t].quantity-r,sessionStorage&&sessionStorage.setItem("wpmDataLayerCart",JSON.stringify(wpmDataLayer.cart)))}}catch(e){console.error(e)}},e.getIdBasedOndVariationsOutputSetting=e=>{try{var t,r;return null!==(t=wpmDataLayer)&&void 0!==t&&null!==(r=t.general)&&void 0!==r&&r.variationsOutput?e:wpmDataLayer.products[e].isVariation?wpmDataLayer.products[e].parentId:e}catch(e){console.error(e)}},e.addProductToCart=(t,r)=>{try{var o;if(!t)throw Error("Wasn't able to retrieve a productId");if(!(t=e.getIdBasedOndVariationsOutputSetting(t)))throw Error("Wasn't able to retrieve a productId");if(null!==(o=wpmDataLayer)&&void 0!==o&&o.products[t]){var a;let o=e.getProductDetailsFormattedForEvent(t,r);jQuery(document).trigger("wpmAddToCart",o),null!==(a=wpmDataLayer)&&void 0!==a&&a.cart[t]?wpmDataLayer.cart[t].quantity=wpmDataLayer.cart[t].quantity+r:("cart"in wpmDataLayer||(wpmDataLayer.cart={}),wpmDataLayer.cart[t]=e.getProductDetailsFormattedForEvent(t,r)),sessionStorage&&sessionStorage.setItem("wpmDataLayerCart",JSON.stringify(wpmDataLayer.cart))}}catch(t){console.error(t),e.getCartItemsFromBackend()}},e.getCartItems=()=>{sessionStorage?sessionStorage.getItem("wpmDataLayerCart")&&"order_received_page"!==wpmDataLayer.shop.page_type?e.saveCartObjectToDataLayer(JSON.parse(sessionStorage.getItem("wpmDataLayerCart"))):sessionStorage.setItem("wpmDataLayerCart",JSON.stringify({})):e.getCartItemsFromBackend()},e.getCartItemsFromBackend=()=>{try{let t={action:"wpm_get_cart_items"};jQuery.ajax({type:"get",dataType:"json",url:e.ajax_url,data:t,success:function(t){t.cart||(t.cart={}),e.saveCartObjectToDataLayer(t.cart),sessionStorage&&sessionStorage.setItem("wpmDataLayerCart",JSON.stringify(t.cart))}})}catch(e){console.error(e)}},e.getProductsFromBackend=t=>{if((t=t.filter((e=>!wpmDataLayer.products.hasOwnProperty(e))))&&0!==t.length)try{let r={action:"wpm_get_product_ids",productIds:t};return jQuery.ajax({type:"get",dataType:"json",url:e.ajax_url,data:r,success:function(e){wpmDataLayer.products=Object.assign({},wpmDataLayer.products,e)},error:function(e){console.log(e)}})}catch(e){console.error(e)}},e.saveCartObjectToDataLayer=e=>{wpmDataLayer.cart=e,wpmDataLayer.products=Object.assign({},wpmDataLayer.products,e)},e.triggerViewItemEventPrep=t=>{wpmDataLayer.products&&wpmDataLayer.products[t]?e.triggerViewItemEvent(t):e.getProductsFromBackend([t]).then((()=>{e.triggerViewItemEvent(t)}))},e.triggerViewItemEvent=t=>{let r=e.getProductDetailsFormattedForEvent(t);jQuery(document).trigger("wpmViewItem",r)},e.fireCheckoutOption=function(e){let t=arguments.length>1&&arguments[1]!==r?arguments[1]:null,o=arguments.length>2&&arguments[2]!==r?arguments[2]:null,a={step:e,checkout_option:t,value:o};jQuery(document).trigger("wpmFireCheckoutOption",a)},e.fireCheckoutProgress=e=>{let t={step:e};jQuery(document).trigger("wpmFireCheckoutProgress",t)},e.getPostIdFromString=e=>{try{return e.match(/(post-)(\d+)/)[2]}catch(e){console.error(e)}},e.triggerViewItemList=t=>{if(!t)throw Error("Wasn't able to retrieve a productId");if(!(t=e.getIdBasedOndVariationsOutputSetting(t)))throw Error("Wasn't able to retrieve a productId");jQuery(document).trigger("wpmViewItemList",e.getProductDataForViewItemEvent(t))},e.getProductDataForViewItemEvent=t=>{if(!t)throw Error("Wasn't able to retrieve a productId");try{if(wpmDataLayer.products[t])return e.getProductDetailsFormattedForEvent(t)}catch(e){console.error(e)}},e.getMainProductIdFromProductPage=()=>{try{return["simple","variable","grouped","composite","bundle"].indexOf(wpmDataLayer.shop.product_type)>=0&&jQuery(".wpmProductId:first").data("id")}catch(e){console.error(e)}},e.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})},e.getSearchTermFromUrl=()=>{try{return new URLSearchParams(window.location.search).get("s")}catch(e){console.error(e)}};let l,s={};e.observerCallback=(t,r)=>{t.forEach((t=>{try{let o,a=jQuery(t.target).data("ioid");if(o=jQuery(t.target).next(".wpmProductId").length?jQuery(t.target).next(".wpmProductId").data("id"):jQuery(t.target).find(".wpmProductId").data("id"),!o)throw Error("wpmProductId element not found");t.isIntersecting?s[a]=setTimeout((()=>{e.triggerViewItemList(o),wpmDataLayer.viewItemListTrigger.testMode&&e.viewItemListTriggerTestMode(t.target),!1===wpmDataLayer.viewItemListTrigger.repeat&&r.unobserve(t.target)}),wpmDataLayer.viewItemListTrigger.timeout):(clearTimeout(s[a]),wpmDataLayer.viewItemListTrigger.testMode&&jQuery(t.target).find("#viewItemListTriggerOverlay").remove())}catch(e){console.error(e)}}))};let d,c=0,u=()=>{d=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}))};e.startIntersectionObserverToWatch=()=>{try{e.urlHasParameter("vildemomode")&&(wpmDataLayer.viewItemListTrigger.testMode=!0),l=new IntersectionObserver(e.observerCallback,{threshold:wpmDataLayer.viewItemListTrigger.threshold}),u(),d.each(((e,t)=>{jQuery(t[0]).data("ioid",c++),l.observe(t[0])}))}catch(e){console.error(e)}},e.startProductsMutationObserverToWatch=()=>{try{let e=jQuery(".wpmProductId:eq(0)").parents().has(jQuery(".wpmProductId:eq(1)").parents()).first();e.length&&p.observe(e[0],{attributes:!0,childList:!0,characterData:!0})}catch(e){console.error(e)}};let p=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"))&&g(this)&&(jQuery(this).data("ioid",c++),l.observe(this))}))}))})),g=e=>!(!jQuery(e).find(".wpmProductId").length&&!jQuery(e).siblings(".wpmProductId").length);e.setCookie=function(e){let t=arguments.length>1&&arguments[1]!==r?arguments[1]:"",o=arguments.length>2&&arguments[2]!==r?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=/"},e.getCookie=e=>{let t=e+"=",r=decodeURIComponent(document.cookie).split(";");for(let e=0;e<r.length;e++){let o=r[e];for(;" "==o.charAt(0);)o=o.substring(1);if(0==o.indexOf(t))return o.substring(t.length,o.length)}return""},e.getWpmSessionData=()=>{if(window.sessionStorage){let e=window.sessionStorage.getItem("_wpm");return null!==e?JSON.parse(e):{}}return{}},e.setWpmSessionData=e=>{window.sessionStorage&&window.sessionStorage.setItem("_wpm",JSON.stringify(e))},e.storeOrderIdOnServer=t=>{try{let r={action:"wpm_purchase_pixels_fired",order_id:t,nonce:e.nonce};jQuery.ajax({type:"post",dataType:"json",url:e.ajax_url,data:r,success:function(e){!1===e.success&&console.log(e)},error:function(e){console.log(e)}})}catch(e){console.error(e)}},e.getProductIdByCartItemKeyUrl=e=>{let t,r=new URLSearchParams(e.search).get("remove_item");return t=0===wpmDataLayer.cartItemKeys[r].variation_id?wpmDataLayer.cartItemKeys[r].product_id:wpmDataLayer.cartItemKeys[r].variation_id,t},e.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(),e.getProductDetailsFormattedForEvent=function(e){let t=arguments.length>1&&arguments[1]!==r?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},e.setReferrerToCookie=()=>{e.getCookie("wpmReferrer")||e.setCookie("wpmReferrer",document.referrer)},e.getReferrerFromCookie=()=>e.getCookie("wpmReferrer")?e.getCookie("wpmReferrer"):null,e.getClidFromBrowser=function(){let t,o=arguments.length>0&&arguments[0]!==r?arguments[0]:"gclid";return t={gclid:"_gcl_aw",dclid:"_gcl_dc"},e.getCookie(t[o])?e.getCookie(t[o]).match(/(GCL.[\d]*.)(.*)/)[2]:""},e.getUserAgent=()=>navigator.userAgent,e.getViewPort=()=>({width:Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),height:Math.max(document.documentElement.clientHeight||0,window.innerHeight||0)}),e.version=()=>{console.log(wpmDataLayer.version)},e.loadScriptAndCacheIt=(e,t)=>(t=jQuery.extend(t||{},{dataType:"script",cache:!0,url:e}),jQuery.ajax(t)),e.getOrderItemPrice=e=>(e.total+e.total_tax)/e.quantity,e.hasLoginEventFired=()=>{let t=e.getWpmSessionData();return null==t?void 0:t.loginEventFired},e.setLoginEventFired=()=>{let t=e.getWpmSessionData();t.loginEventFired=!0,e.setWpmSessionData(t)},e.wpmDataLayerExists=()=>new Promise((e=>{!function t(){if("undefined"!=typeof wpmDataLayer)return e();setTimeout(t,50)}()})),e.jQueryExists=()=>new Promise((e=>{!function t(){if("undefined"!=typeof jQuery)return e();setTimeout(t,100)}()})),e.pageLoaded=()=>new Promise((e=>{!function t(){if("complete"===document.readyState)return e();setTimeout(t,50)}()})),e.pageReady=()=>new Promise((e=>{!function t(){if("interactive"===document.readyState||"complete"===document.readyState)return e();setTimeout(t,50)}()})),e.isMiniCartActive=()=>{if(window.sessionStorage){for(const[e,t]of Object.entries(window.sessionStorage))if(e.includes("wc_fragments"))return!0;return!1}return!1},e.doesWooCommerceCartExist=()=>document.cookie.includes("woocommerce_items_in_cart"),e.urlHasParameter=e=>new URLSearchParams(window.location.search).has(e),e.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("")))}(window.wpm=window.wpm||{},jQuery)},3534:(e,t,r)=>{r(2487),r(473)},7207:()=>{wpm.wpmDataLayerExists().then((function(){console.log("Pixel Manager for WooCommerce: "+(wpmDataLayer.version.pro?"Pro":"Free")+" Version "+wpmDataLayer.version.number+" loaded"),jQuery(document).trigger("wpmPreLoadPixels",{})})).then((function(){wpm.pageLoaded().then((function(){jQuery(document).trigger("wpmLoad",{})}))})),wpm.pageReady().then((function(){wpm.wpmDataLayerExists().then((function(){wpm.startIntersectionObserverToWatch(),wpm.startProductsMutationObserverToWatch()}))}))}},t={};function r(o){var a=t[o];if(void 0!==a)return a.exports;var n=t[o]={exports:{}};return e[o](n,n.exports,r),n.exports}r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r(3534),wpm.jQueryExists().then((function(){r(3299),r(8069),r(5012),r(8787),r(7207)}))})();
2
  //# sourceMappingURL=wpm-public.p1.min.js.map
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/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/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/set-global.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 global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.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 definePropertyModule = require('../internals/object-define-property');\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 definePropertyModule.f(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 global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.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 global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar setGlobal = require('../internals/set-global');\n\nmodule.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return O;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n return O;\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 setGlobal = require('../internals/set-global');\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.noTargetGet - 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] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\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 global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.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 global = require('../internals/global');\nvar 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 = global.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 defineProperty(value, 'name', { value: name, configurable: true });\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) try {\n defineProperty(value, 'prototype', { writable: false });\n } catch (error) { /* empty */ }\n } else value.prototype = undefined;\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","/* 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 global = require('../internals/global');\nvar 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 = global.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 global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.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 global = require('../internals/global');\n\nvar TypeError = global.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 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 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 setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(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.22.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.22.5/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 ceil = Math.ceil;\nvar floor = Math.floor;\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 -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(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 global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.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 global = require('../internals/global');\nvar 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 = global.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 global = require('../internals/global');\n\nvar String = global.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\", function () {\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(\"wpmAddToCart\", function (event, product) {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\tlet eventId = wpm.getRandomEventId()\n\n\t\tfbq(\"track\", \"AddToCart\", {\n\t\t\tcontent_type: \"product\",\n\t\t\tcontent_name: product.name,\n\t\t\tcontent_ids : product.dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type],\n\t\t\tvalue : parseFloat(product.quantity * product.price),\n\t\t\tcurrency : product.currency,\n\t\t}, {\n\t\t\teventID: eventId,\n\t\t})\n\n\t\tproduct[\"currency\"] = wpmDataLayer.shop.currency\n\n\t\tconsole.log(product)\n\n\t\tjQuery(document).trigger(\"wpmFbCapiEvent\", {\n\t\t\tevent_name : \"AddToCart\",\n\t\t\tevent_id : eventId,\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} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// InitiateCheckout event\n// https://developers.facebook.com/docs/meta-pixel/reference\njQuery(document).on(\"wpmBeginCheckout\", function (event) {\n\n\ttry {\n\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\tlet eventId = wpm.getRandomEventId()\n\n\t\tfbq(\"track\", \"InitiateCheckout\", {}, {\n\t\t\teventID: eventId,\n\t\t})\n\n\t\tjQuery(document).trigger(\"wpmFbCapiEvent\", {\n\t\t\tevent_name : \"InitiateCheckout\",\n\t\t\tevent_id : eventId,\n\t\t\tuser_data : wpm.getFbUserData(),\n\t\t\tevent_source_url: window.location.href,\n\t\t})\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// AddToWishlist event\n// https://developers.facebook.com/docs/meta-pixel/reference\njQuery(document).on(\"wpmAddToWishlist\", function (event, product) {\n\n\ttry {\n\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\tlet eventId = wpm.getRandomEventId()\n\n\t\tfbq(\"track\", \"AddToWishlist\", {\n\t\t\tcontent_type: \"product\",\n\t\t\tcontent_name: product.name,\n\t\t\tcontent_ids : product.dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type],\n\t\t\tvalue : parseFloat(product.quantity * product.price),\n\t\t\tcurrency : product.currency,\n\t\t}, {\n\t\t\teventID: eventId,\n\t\t})\n\n\t\tproduct[\"currency\"] = wpmDataLayer.shop.currency\n\n\t\tjQuery(document).trigger(\"wpmFbCapiEvent\", {\n\t\t\tevent_name : \"AddToWishlist\",\n\t\t\tevent_id : eventId,\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} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// ViewContent event\n// https://developers.facebook.com/docs/meta-pixel/reference\njQuery(document).on(\"wpmViewItem\", function (event, product) {\n\n\ttry {\n\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\twpm.fbViewContent(product)\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// view search event\n// https://developers.facebook.com/docs/meta-pixel/reference\njQuery(document).on(\"wpmSearch\", function () {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\tlet eventId = wpm.getRandomEventId()\n\n\t\tfbq(\"track\", \"Search\", {}, {\n\t\t\teventID: eventId,\n\t\t})\n\n\t\tjQuery(document).trigger(\"wpmFbCapiEvent\", {\n\t\t\tevent_name : \"Search\",\n\t\t\tevent_id : eventId,\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} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// load always event\njQuery(document).on(\"wpmLoadAlways\", function () {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\twpm.setFbUserData()\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// view order received page event\n// https://developers.facebook.com/docs/meta-pixel/reference\njQuery(document).on(\"wpmOrderReceivedPage\", function () {\n\n\ttry {\n\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\tfbq(\"track\", \"Purchase\",\n\t\t\t{\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\t{eventID : wpmDataLayer.order.id},\n\t\t)\n\n\t} catch (e) {\n\t\tconsole.error(e)\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\t// https://developers.facebook.com/docs/meta-pixel/advanced/advanced-matching\n\n\t\t\tlet data = {}\n\t\t\tif (wpmDataLayer?.user?.id) data.external_id = wpmDataLayer.user.id\n\t\t\tif (wpmDataLayer?.order?.user_id) data.external_id = wpmDataLayer.order.user_id\n\t\t\tif (wpmDataLayer?.order?.billing_email_hashed) data.em = wpmDataLayer.order.billing_email_hashed\n\t\t\tif (wpmDataLayer?.order?.billing_first_name) data.fn = wpmDataLayer.order.billing_first_name\n\t\t\tif (wpmDataLayer?.order?.billing_last_name) data.ln = wpmDataLayer.order.billing_last_name\n\t\t\tif (wpmDataLayer?.order?.billing_phone) data.ph = wpmDataLayer.order.billing_phone\n\t\t\tif (wpmDataLayer?.order?.billing_city) data.ct = wpmDataLayer.order.billing_city\n\t\t\tif (wpmDataLayer?.order?.billing_state) data.st = wpmDataLayer.order.billing_state\n\t\t\tif (wpmDataLayer?.order?.billing_postcode) data.zp = wpmDataLayer.order.billing_postcode\n\t\t\tif (wpmDataLayer?.order?.billing_country) data.country = wpmDataLayer.order.billing_country\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\twpm.getRandomEventId = () => (Math.random() + 1).toString(36).substring(2)\n\n\twpm.getFbUserData = () => {\n\n\t\t/**\n\t\t * We need the first one for InitiateCheckout\n\t\t * where getting the user_data from the browser is too slow\n\t\t * using wpm.getCookie(), so we cache the user_data earlier.\n\t\t * And we need the second one 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. 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\n\t\tif (fBUserData) {\n\t\t\treturn fBUserData\n\t\t} else {\n\t\t\treturn wpm.getFbUserDataFromBrowser()\n\t\t}\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.fbp = 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\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,50}$/);\n\n\t\treturn re.test(fbc);\n\t}\n\n\twpm.fbViewContent = product => {\n\n\t\ttry {\n\t\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\t\tlet eventId = wpm.getRandomEventId()\n\n\t\t\tfbq(\"track\", \"ViewContent\", {\n\t\t\t\tcontent_type: \"product\",\n\t\t\t\tcontent_name: product.name,\n\t\t\t\t// content_category: product.category,\n\t\t\t\tcontent_ids: product.dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type],\n\t\t\t\tcurrency : wpmDataLayer.shop.currency,\n\t\t\t\tvalue : product.price,\n\t\t\t}, {\n\t\t\t\teventID: eventId,\n\t\t\t})\n\n\t\t\tproduct[\"currency\"] = wpmDataLayer.shop.currency\n\n\t\t\tjQuery(document).trigger(\"wpmFbCapiEvent\", {\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\tcustom_data : wpm.fbGetProductDataForCapiEvent(product),\n\t\t\t})\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_ids : [\n\t\t\t\tproduct.dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type],\n\t\t\t],\n\t\t\tvalue : product.quantity * product.price,\n\t\t\tcurrency : wpmDataLayer.shop.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.getRandomEventId()\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}(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\", 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.quantity : 1) * 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 ? 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\tfor (const [key, item] of Object.entries(wpmDataLayer.pixels.google.ads.conversionIds)) {\n\t\t\tif (item) {\n\t\t\t\tconversionIdentifiers.push(key + \"/\" + item)\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 (\"order_received_page\" === wpmDataLayer.shop.page_type && wpmDataLayer?.order?.google?.ads?.enhanced_conversion_data) {\n\t\t\t\twindow.enhanced_conversion_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\tgtag(\"config\", wpmDataLayer.pixels.google.analytics.ga4.measurement_id, wpmDataLayer.pixels.google.analytics.ga4.parameters)\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\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.done(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\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\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\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// .done(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\tjQuery(document).on(\"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\tjQuery(document).trigger(\"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\tjQuery(document).trigger(\"wpmPreLoadPixels\", {})\n\t}\n\n\twpm.unblockSelectedPixels = () => {\n\t\tjQuery(document).trigger(\"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\tjQuery(document).on(\"borlabs-cookie-consent-saved\", () => {\n\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\tjQuery(document).on(\"CookiebotOnAccept\", () => {\n\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\tjQuery(document).on(\"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\tjQuery(document).on(\"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\tjQuery(document).on(\"cmplzStatusChange\", wpm.cmplzStatusChange)\n\tjQuery(document).on(\"cmplz_status_change\", wpm.cmplzStatusChange)\n\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\tjQuery(document).on(\"setCookieNotice\", () => {\n\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\tjQuery(\".hu-cookies-save\").on(\"click\", function () {\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\", function () {\n\n\ttry {\n\n\t\tlet url = new URL(jQuery(this).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\n// jQuery('.add_to_cart_button:not(.product_type_variable), .ajax_add_to_cart, .js-ajax-add-to-cart, .single_add_to_cart_button, .btn_color-2').on('click', function (e) {\njQuery(document).on(\"click\", \".add_to_cart_button:not(.product_type_variable), .ajax_add_to_cart, .single_add_to_cart_button\", function () {\n\n\ttry {\n\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(this).attr(\"href\") !== \"undefined\" && jQuery(this).attr(\"href\").includes(\"add-to-cart\")) {\n\n\t\t\t\tlet quantity = 1\n\t\t\t\tlet productId = jQuery(this).data(\"product_id\")\n\n\t\t\t\twpm.addProductToCart(productId, quantity)\n\t\t\t} else {\n\n\t\t\t\tif (wpmDataLayer.shop.product_type === \"simple\") {\n\n\t\t\t\t\tlet quantity = Number(jQuery(\".input-text.qty\").val())\n\n\t\t\t\t\tif (!quantity && quantity !== 0) quantity = 1\n\n\t\t\t\t\tlet productId = jQuery(this).val()\n\n\t\t\t\t\twpm.addProductToCart(productId, quantity)\n\n\t\t\t\t} else if (wpmDataLayer.shop.product_type === \"variable\") {\n\n\t\t\t\t\tlet quantity = Number(jQuery(\".input-text.qty\").val())\n\n\t\t\t\t\tif (!quantity && quantity !== 0) quantity = 1\n\n\t\t\t\t\tlet productId = jQuery(\"[name='variation_id']\").val()\n\n\t\t\t\t\twpm.addProductToCart(productId, quantity)\n\n\t\t\t\t} else if (wpmDataLayer.shop.product_type === \"grouped\") {\n\n\t\t\t\t\tjQuery(\".woocommerce-grouped-product-list-item\").each(function () {\n\n\t\t\t\t\t\tlet quantity = Number(jQuery(this).find(\".input-text.qty\").val())\n\n\t\t\t\t\t\tif (!quantity && quantity !== 0) quantity = 1\n\n\t\t\t\t\t\tlet classes = jQuery(this).attr(\"class\")\n\t\t\t\t\t\tlet productId = wpm.getPostIdFromString(classes)\n\n\t\t\t\t\t\twpm.addProductToCart(productId, quantity)\n\t\t\t\t\t})\n\t\t\t\t} else if (wpmDataLayer.shop.product_type === \"bundle\") {\n\n\t\t\t\t\tlet quantity = Number(jQuery(\".input-text.qty\").val())\n\n\t\t\t\t\tif (!quantity && quantity !== 0) quantity = 1\n\n\t\t\t\t\tlet productId = jQuery(\"input[name=add-to-cart]\").val()\n\n\t\t\t\t\twpm.addProductToCart(productId, quantity)\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\n\t\t\tlet quantity = 1\n\t\t\tlet productId = jQuery(this).data(\"product_id\")\n\n\t\t\twpm.addProductToCart(productId, quantity)\n\t\t}\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)\", function (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\", function () {\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(this).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]\n\njQuery(document).one(\"click\", checkoutButtonClasses.join(\",\"), function () {\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\", function () {\n\n\tif (wpm.isEmail(jQuery(this).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\", function () {\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\", function () {\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']\", function () {\n\n\ttry {\n\t\tjQuery(\".cart_item\").each(function () {\n\n\t\t\tlet url = new URL(jQuery(this).find(\".product-remove\").find(\"a\").attr(\"href\"))\n\t\t\tlet productId = wpm.getProductIdByCartItemKeyUrl(url)\n\n\n\t\t\tlet quantity = jQuery(this).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(document).on(\"click\", \".add_to_wishlist, .wl-add-to\", function () {\n\n\ttry {\n\n\t\tlet productId\n\n\t\tif (jQuery(this).data(\"productid\")) { // for the WooCommerce wishlist plugin\n\n\t\t\tproductId = jQuery(this).data(\"productid\")\n\t\t} else if (jQuery(this).data(\"product-id\")) { // for the YITH wishlist plugin\n\n\t\t\tproductId = jQuery(this).data(\"product-id\")\n\t\t}\n\n\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\tlet product = wpm.getProductDetailsFormattedForEvent(productId)\n\n\t\tjQuery(document).trigger(\"wpmAddToWishlist\", product)\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\njQuery(document).on(\"updated_cart_totals\", function () {\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(function () {\n\n\tjQuery(\".single_variation_wrap\").on(\"show_variation\", function (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\tif (wpmDataLayer.products && wpmDataLayer.products[productId]) {\n\n\t\t\t\tlet product = wpm.getProductDetailsFormattedForEvent(productId)\n\n\t\t\t\tjQuery(document).trigger(\"wpmViewItem\", product)\n\t\t\t}\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\njQuery(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\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\tif (wpmDataLayer.products && wpmDataLayer.products[productId]) {\n\n\t\t\t\tlet product = wpm.getProductDetailsFormattedForEvent(productId)\n\n\t\t\t\tjQuery(document).trigger(\"wpmViewItem\", product)\n\t\t\t}\n\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t})\n})\n\n\n/**\n * Set up wpm events\n */\n\n// populate the wpmDataLayer with the cart items\njQuery(window).on(\"wpmLoad\", function () {\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(window).on(\"wpmLoad\", function () {\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(window).on(\"wpmLoad\", function () {\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(window).on(\"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 (\"product\" === wpmDataLayer.shop.page_type && \"variable\" !== wpmDataLayer.shop.product_type && wpm.getMainProductIdFromProductPage()) {\n\n\t\t\t\tlet product = wpm.getProductDataForViewItemEvent(wpm.getMainProductIdFromProductPage())\n\t\t\t\tjQuery(document).trigger(\"wpmViewItem\", product)\n\n\t\t\t} else if (\"product_category\" === wpmDataLayer.shop.page_type) {\n\n\t\t\t\tjQuery(document).trigger(\"wpmCategory\")\n\n\t\t\t} else if (\"search\" === wpmDataLayer.shop.page_type) {\n\n\t\t\t\tjQuery(document).trigger(\"wpmSearch\")\n\n\t\t\t} else if (\"cart\" === wpmDataLayer.shop.page_type) {\n\n\t\t\t\tjQuery(document).trigger(\"wpmViewCart\")\n\n\t\t\t} else if (\"order_received_page\" === wpmDataLayer.shop.page_type && wpmDataLayer.order) {\n\n\t\t\t\tif (!wpm.isOrderIdStored(wpmDataLayer.order.id)) {\n\n\t\t\t\t\tjQuery(document).trigger(\"wpmOrderReceivedPage\")\n\t\t\t\t\twpm.writeOrderIdToStorage(wpmDataLayer.order.id)\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\n/**\n * Load all pixels\n */\njQuery(window).on(\"wpmPreLoadPixels\", function () {\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 * 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\tcookieWpmRestEndpointAvailable: \"_wpm_endpoint_available\",\n\t\trestEndpoint : \"/wp-json/\",\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 = () => {\n\n\t\tif (window.sessionStorage.getItem(wpmRestSettings.cookieWpmRestEndpointAvailable)) {\n\t\t\treturn JSON.parse(window.sessionStorage.getItem(wpmRestSettings.cookieWpmRestEndpointAvailable))\n\t\t} else {\n\t\t\t// return wpm.testEndpoint();\n\t\t\t// just set the value whenever possible in order not to wait or block the main thread\n\t\t\twpm.testEndpoint()\n\t\t}\n\t}\n\n\twpm.isSessionStorageAvailable = () => !!window.sessionStorage\n\n\twpm.testEndpoint = (\n\t\turl = location.protocol + \"//\" + location.host + wpmRestSettings.restEndpoint,\n\t\tcookieName = wpmRestSettings.cookieWpmRestEndpointAvailable,\n\t) => {\n\t\t// console.log('testing endpoint');\n\n\t\tjQuery.ajax(url, {\n\t\t\ttype : \"HEAD\",\n\t\t\ttimeout: 1000,\n\t\t\t// async: false,\n\t\t\tstatusCode: {\n\t\t\t\t200: function (response) {\n\t\t\t\t\t// Cookies.set(cookieName, true);\n\t\t\t\t\t// console.log('endpoint works');\n\t\t\t\t\twindow.sessionStorage.setItem(cookieName, JSON.stringify(true))\n\t\t\t\t},\n\t\t\t\t404: function (response) {\n\t\t\t\t\t// Cookies.set(cookieName, false);\n\t\t\t\t\t// console.log('endpoint doesn\\'t work');\n\t\t\t\t\twindow.sessionStorage.setItem(cookieName, JSON.stringify(false))\n\t\t\t\t},\n\t\t\t\t0 : function (response) {\n\t\t\t\t\t// Cookies.set(cookieName, false);\n\t\t\t\t\t// console.log('endpoint doesn\\'t work');\n\t\t\t\t\twindow.sessionStorage.setItem(cookieName, JSON.stringify(false))\n\t\t\t\t},\n\t\t\t},\n\t\t}).then(response => {\n\t\t\t// console.log('test done')\n\t\t\t// console.log('result: ' + JSON.parse(window.sessionStorage.getItem(cookieName)));\n\t\t\t// return JSON.parse(window.sessionStorage.getItem(cookieName));\n\t\t})\n\t}\n\n\twpm.isWpmRestEndpointAvailable = (cookieName = wpmRestSettings.cookieWpmRestEndpointAvailable) => !!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\t\t\tlet data = {\n\t\t\t\taction: \"wpm_get_cart_items\",\n\t\t\t}\n\n\t\t\tjQuery.ajax(\n\t\t\t\t{\n\t\t\t\t\ttype : \"get\",\n\t\t\t\t\tdataType: \"json\",\n\t\t\t\t\t// url : ajax_object.ajax_url,\n\t\t\t\t\turl : wpm.ajax_url,\n\t\t\t\t\tdata : data,\n\t\t\t\t\tsuccess: function (cartItems) {\n\n\t\t\t\t\t\t// save all cart items into wpmDataLayer\n\n\t\t\t\t\t\tif (!cartItems[\"cart\"]) cartItems[\"cart\"] = {}\n\n\t\t\t\t\t\twpm.saveCartObjectToDataLayer(cartItems[\"cart\"])\n\n\t\t\t\t\t\tif (sessionStorage) sessionStorage.setItem(\"wpmDataLayerCart\", JSON.stringify(cartItems[\"cart\"]))\n\t\t\t\t\t},\n\t\t\t\t})\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 = productIds => {\n\n\n\t\t// reduce productIds by products already in the dataLayer\n\t\tproductIds = productIds.filter(item => !wpmDataLayer.products.hasOwnProperty(item))\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\t\t\tlet data = {\n\t\t\t\taction : \"wpm_get_product_ids\",\n\t\t\t\tproductIds: productIds,\n\t\t\t}\n\n\t\t\tjQuery.ajax(\n\t\t\t\t{\n\t\t\t\t\ttype : \"get\",\n\t\t\t\t\tdataType: \"json\",\n\t\t\t\t\t// url : ajax_object.ajax_url,\n\t\t\t\t\turl : wpm.ajax_url,\n\t\t\t\t\tdata : data,\n\t\t\t\t\tsuccess: function (products) {\n\n\t\t\t\t\t\t// merge products into wpmDataLayer.products\n\t\t\t\t\t\twpmDataLayer.products = Object.assign({}, wpmDataLayer.products, products)\n\t\t\t\t\t},\n\t\t\t\t\terror : function (response) {\n\t\t\t\t\t\tconsole.log(response)\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\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.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\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 = orderId => {\n\n\t\ttry {\n\t\t\t// save the state in the database\n\t\t\tlet data = {\n\t\t\t\taction : \"wpm_purchase_pixels_fired\",\n\t\t\t\torder_id: orderId,\n\t\t\t\t// nonce : ajax_object.nonce,\n\t\t\t\tnonce: wpm.nonce,\n\t\t\t}\n\n\t\t\tjQuery.ajax(\n\t\t\t\t{\n\t\t\t\t\ttype : \"post\",\n\t\t\t\t\tdataType: \"json\",\n\t\t\t\t\t// url : ajax_object.ajax_url,\n\t\t\t\t\turl : wpm.ajax_url,\n\t\t\t\t\tdata : data,\n\t\t\t\t\tsuccess: function (response) {\n\t\t\t\t\t\tif (response.success === false) {\n\t\t\t\t\t\t\tconsole.log(response)\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\terror : function (response) {\n\t\t\t\t\t\tconsole.log(response)\n\t\t\t\t\t},\n\t\t\t\t})\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, options) => {\n\n\t\t// Allow user to set any option except for dataType, cache, and url\n\t\toptions = jQuery.extend(options || {}, {\n\t\t\tdataType: \"script\",\n\t\t\tcache : true,\n\t\t\turl : url,\n\t\t})\n\n\t\t// Use $.ajax() since it is more flexible than $.getScript\n\t\t// Return the jqXHR object so we can chain callbacks\n\t\treturn jQuery.ajax(options)\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}(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\t\tjQuery(document).trigger(\"wpmPreLoadPixels\", {})\n\t})\n\t.then(function () {\n\t\twpm.pageLoaded().then(function () {\n\t\t\tjQuery(document).trigger(\"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":["global","require","isCallable","tryToString","TypeError","module","exports","argument","wellKnownSymbol","create","definePropertyModule","UNSCOPABLES","ArrayPrototype","Array","prototype","undefined","f","configurable","value","key","isObject","String","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","el","fromIndex","O","length","index","includes","indexOf","uncurryThis","toString","stringSlice","slice","it","hasOwn","ownKeys","getOwnPropertyDescriptorModule","target","source","exceptions","keys","defineProperty","getOwnPropertyDescriptor","i","DESCRIPTORS","createPropertyDescriptor","object","bitmap","enumerable","writable","createNonEnumerableProperty","makeBuiltIn","setGlobal","options","unsafe","simple","noTargetGet","name","fails","Object","get","document","EXISTS","createElement","getBuiltIn","match","version","userAgent","process","Deno","versions","v8","split","defineBuiltIn","copyConstructorProperties","isForced","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","forced","sham","exec","error","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","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","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","ceil","floor","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","product","eventId","getRandomEventId","fbq","content_type","content_name","content_ids","dyn_r_ids","dynamic_remarketing","id_type","parseFloat","quantity","price","currency","eventID","shop","console","log","trigger","event_name","event_id","user_data","getFbUserData","event_source_url","location","href","custom_data","fbGetProductDataForCapiEvent","e","fbViewContent","search_string","getSearchTermFromUrl","setFbUserData","order","value_filtered","facebookContentIds","fBUserData","b","n","callMethod","queue","_fbq","t","async","s","getElementsByTagName","parentNode","insertBefore","user","external_id","user_id","billing_email_hashed","em","billing_first_name","billing_last_name","ln","billing_phone","ph","billing_city","ct","billing_state","st","billing_postcode","zp","billing_country","country","substring","getFbUserDataFromBrowser","getCookie","isValidFbp","fbp","isValidFbc","navigator","client_user_agent","RegExp","fbc","prodIds","item","entries","items","general","variationsOutput","variation_id","products","trackCustomFacebookEvent","eventName","customData","isEmptyObject","google","ads","conversionIds","status","googleConfigConditionsMet","isVariable","send_events_with_parent_ids","send_to","getGoogleAdsConversionIdentifiers","google_business_vertical","gtagLoaded","then","gtag","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","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","isGoogleActive","getGoogleGtagId","loadScriptAndCacheIt","done","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","scriptTagObserver","MutationObserver","mutations","forEach","addedNodes","node","shouldScriptBeActive","unblockScript","blockScript","observe","head","childList","subtree","disconnect","some","element","scriptNode","removeAttach","remove","wpmSrc","attr","appendTo","removeAttr","unblockAllScripts","unblockSelectedPixels","Cookiebot","consent","detail","cmplzStatusChange","cmplzConsentData","huObserver","hu","documentElement","body","explicitConsentStateAlreadySet","url","URL","productId","getProductIdByCartItemKeyUrl","removeProductFromCart","addProductToCart","product_type","Number","each","find","classes","getPostIdFromString","one","closest","matches","nextAll","getIdBasedOndVariationsOutputSetting","Error","getProductDetailsFormattedForEvent","isEmail","fireCheckoutProgress","emailSelected","paymentMethodSelected","fireCheckoutOption","cart","getCartItemsFromBackend","variation","microdata_product_id","doesWooCommerceCartExist","getCartItems","productIds","getAddToCartLinkProductIds","getProductsFromBackend","referrer","referrerHostname","hostname","host","setCookie","wpmLoadFired","getMainProductIdFromProductPage","getProductDataForViewItemEvent","isOrderIdStored","writeOrderIdToStorage","hasLoginEventFired","setLoginEventFired","wpmDeduper","wpmRestSettings","checkCookie","useRestEndpoint","isSessionStorageAvailable","isRestEndpointAvailable","isBelowRestErrorThreshold","sessionStorage","getItem","testEndpoint","protocol","cookieName","ajax","timeout","statusCode","response","setItem","stringify","isWpmRestEndpointAvailable","orderId","Storage","localStorage","ids","expiresDate","setDate","getDate","toUTCString","storeOrderIdOnServer","orderDeduplication","email","quantityToRemove","isVariation","parentId","saveCartObjectToDataLayer","dataType","ajax_url","success","cartItems","filter","assign","cartObject","step","checkout_option","triggerViewItemList","viewItemListTriggerTestMode","css","append","viewItemListTrigger","opacity","backgroundColor","URLSearchParams","search","io","ioTimeouts","observerCallback","observer","entry","elementId","next","isIntersecting","testMode","repeat","unobserve","clearTimeout","allIoElementsToWatch","ioid","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","nonce","cartItemKey","cartItemKeys","position","parentId_dyn_r_ids","setReferrerToCookie","getReferrerFromCookie","getClidFromBrowser","clidCookieId","clidId","gclid","dclid","getUserAgent","getViewPort","width","clientWidth","innerWidth","height","clientHeight","innerHeight","extend","cache","getOrderItemPrice","total","total_tax","loginEventFired","wpmDataLayerExists","waitForVar","jQueryExists","waitForjQuery","pageLoaded","readyState","pageReady","isMiniCartActive","parameter","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/a-possible-prototype.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-buffer-native.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/array-buffer-view-core.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/classof.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/correct-prototype-getter.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/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/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-get-prototype-of.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/object-set-prototype-of.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/set-global.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-offset.js","webpack://Pixel-Manager-for-WooCommerce/./node_modules/core-js/internals/to-positive-integer.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/to-string-tag-support.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/./node_modules/core-js/modules/es.typed-array.set.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 global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.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 global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\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 definePropertyModule.f(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 global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.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","// eslint-disable-next-line es-x/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineProperty = require('../internals/object-define-property').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = uid('TYPED_ARRAY_CONSTRUCTOR');\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_CONSTRUCTOR: TYPED_ARRAY_CONSTRUCTOR,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\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 global = require('../internals/global');\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Object = global.Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\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 fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es-x/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\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 global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar setGlobal = require('../internals/set-global');\n\nmodule.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return O;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n return O;\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 setGlobal = require('../internals/set-global');\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.noTargetGet - 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] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\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 global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.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 global = require('../internals/global');\nvar 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 = global.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 defineProperty(value, 'name', { value: name, configurable: true });\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) try {\n defineProperty(value, 'prototype', { writable: false });\n } catch (error) { /* empty */ }\n } else value.prototype = undefined;\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","/* 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 global = require('../internals/global');\nvar 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 = global.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 global = require('../internals/global');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar Object = global.Object;\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof Object ? ObjectPrototype : null;\n};\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","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es-x/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.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 global = require('../internals/global');\n\nvar TypeError = global.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 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 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 setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(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.22.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.22.5/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 ceil = Math.ceil;\nvar floor = Math.floor;\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 -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(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 global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.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 global = require('../internals/global');\nvar toPositiveInteger = require('../internals/to-positive-integer');\n\nvar RangeError = global.RangeError;\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw RangeError('Wrong offset');\n return offset;\n};\n","var global = require('../internals/global');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar RangeError = global.RangeError;\n\nmodule.exports = function (it) {\n var result = toIntegerOrInfinity(it);\n if (result < 0) throw RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","var global = require('../internals/global');\nvar 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 = global.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 wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var global = require('../internals/global');\n\nvar String = global.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\", function () {\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(\"wpmAddToCart\", function (event, product) {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\tlet eventId = wpm.getRandomEventId()\n\n\t\tfbq(\"track\", \"AddToCart\", {\n\t\t\tcontent_type: \"product\",\n\t\t\tcontent_name: product.name,\n\t\t\tcontent_ids : product.dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type],\n\t\t\tvalue : parseFloat(product.quantity * product.price),\n\t\t\tcurrency : product.currency,\n\t\t}, {\n\t\t\teventID: eventId,\n\t\t})\n\n\t\tproduct[\"currency\"] = wpmDataLayer.shop.currency\n\n\t\t// console.log(product)\n\n\t\tjQuery(document).trigger(\"wpmFbCapiEvent\", {\n\t\t\tevent_name : \"AddToCart\",\n\t\t\tevent_id : eventId,\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} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// InitiateCheckout event\n// https://developers.facebook.com/docs/meta-pixel/reference\njQuery(document).on(\"wpmBeginCheckout\", function (event) {\n\n\ttry {\n\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\tlet eventId = wpm.getRandomEventId()\n\n\t\tfbq(\"track\", \"InitiateCheckout\", {}, {\n\t\t\teventID: eventId,\n\t\t})\n\n\t\tjQuery(document).trigger(\"wpmFbCapiEvent\", {\n\t\t\tevent_name : \"InitiateCheckout\",\n\t\t\tevent_id : eventId,\n\t\t\tuser_data : wpm.getFbUserData(),\n\t\t\tevent_source_url: window.location.href,\n\t\t})\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// AddToWishlist event\n// https://developers.facebook.com/docs/meta-pixel/reference\njQuery(document).on(\"wpmAddToWishlist\", function (event, product) {\n\n\ttry {\n\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\tlet eventId = wpm.getRandomEventId()\n\n\t\tfbq(\"track\", \"AddToWishlist\", {\n\t\t\tcontent_type: \"product\",\n\t\t\tcontent_name: product.name,\n\t\t\tcontent_ids : product.dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type],\n\t\t\tvalue : parseFloat(product.quantity * product.price),\n\t\t\tcurrency : product.currency,\n\t\t}, {\n\t\t\teventID: eventId,\n\t\t})\n\n\t\tproduct[\"currency\"] = wpmDataLayer.shop.currency\n\n\t\tjQuery(document).trigger(\"wpmFbCapiEvent\", {\n\t\t\tevent_name : \"AddToWishlist\",\n\t\t\tevent_id : eventId,\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} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// ViewContent event\n// https://developers.facebook.com/docs/meta-pixel/reference\njQuery(document).on(\"wpmViewItem\", function (event, product) {\n\n\ttry {\n\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\twpm.fbViewContent(product)\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// view search event\n// https://developers.facebook.com/docs/meta-pixel/reference\njQuery(document).on(\"wpmSearch\", function () {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\tlet eventId = wpm.getRandomEventId()\n\n\t\tfbq(\"track\", \"Search\", {}, {\n\t\t\teventID: eventId,\n\t\t})\n\n\t\tjQuery(document).trigger(\"wpmFbCapiEvent\", {\n\t\t\tevent_name : \"Search\",\n\t\t\tevent_id : eventId,\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} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// load always event\njQuery(document).on(\"wpmLoadAlways\", function () {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\twpm.setFbUserData()\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// view order received page event\n// https://developers.facebook.com/docs/meta-pixel/reference\njQuery(document).on(\"wpmOrderReceivedPage\", function () {\n\n\ttry {\n\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\tfbq(\"track\", \"Purchase\",\n\t\t\t{\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\t{eventID : wpmDataLayer.order.id},\n\t\t)\n\n\t} catch (e) {\n\t\tconsole.error(e)\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.getRandomEventId = () => (Math.random() + 1).toString(36).substring(2)\n\n\twpm.getFbUserData = () => {\n\n\t\t/**\n\t\t * We need the first one for InitiateCheckout\n\t\t * where getting the user_data from the browser is too slow\n\t\t * using wpm.getCookie(), so we cache the user_data earlier.\n\t\t * And we need the second one 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. 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\n\t\tif (fBUserData) {\n\t\t\treturn fBUserData\n\t\t} else {\n\t\t\treturn wpm.getFbUserDataFromBrowser()\n\t\t}\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.fbp = 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,50}$/)\n\n\t\treturn re.test(fbc)\n\t}\n\n\twpm.fbViewContent = product => {\n\n\t\ttry {\n\t\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\t\tlet eventId = wpm.getRandomEventId()\n\n\t\t\tfbq(\"track\", \"ViewContent\", {\n\t\t\t\tcontent_type: \"product\",\n\t\t\t\tcontent_name: product.name,\n\t\t\t\t// content_category: product.category,\n\t\t\t\tcontent_ids: product.dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type],\n\t\t\t\tcurrency : wpmDataLayer.shop.currency,\n\t\t\t\tvalue : product.price,\n\t\t\t}, {\n\t\t\t\teventID: eventId,\n\t\t\t})\n\n\t\t\tproduct[\"currency\"] = wpmDataLayer.shop.currency\n\n\t\t\tjQuery(document).trigger(\"wpmFbCapiEvent\", {\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\tcustom_data : wpm.fbGetProductDataForCapiEvent(product),\n\t\t\t})\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_ids : [\n\t\t\t\tproduct.dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type],\n\t\t\t],\n\t\t\tvalue : product.quantity * product.price,\n\t\t\tcurrency : wpmDataLayer.shop.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.getRandomEventId()\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}(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\", 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.quantity : 1) * 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 ? 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\tfor (const [key, item] of Object.entries(wpmDataLayer.pixels.google.ads.conversionIds)) {\n\t\t\tif (item) {\n\t\t\t\tconversionIdentifiers.push(key + \"/\" + item)\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 (\"order_received_page\" === wpmDataLayer.shop.page_type && wpmDataLayer?.order?.google?.ads?.enhanced_conversion_data) {\n\t\t\t\twindow.enhanced_conversion_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\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.done(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\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\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\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// .done(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\tjQuery(document).on(\"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\tjQuery(document).trigger(\"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\tjQuery(document).trigger(\"wpmPreLoadPixels\", {})\n\t}\n\n\twpm.unblockSelectedPixels = () => {\n\t\tjQuery(document).trigger(\"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\tjQuery(document).on(\"borlabs-cookie-consent-saved\", () => {\n\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\tjQuery(document).on(\"CookiebotOnAccept\", () => {\n\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\tjQuery(document).on(\"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\tjQuery(document).on(\"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\tjQuery(document).on(\"cmplzStatusChange\", wpm.cmplzStatusChange)\n\tjQuery(document).on(\"cmplz_status_change\", wpm.cmplzStatusChange)\n\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\tjQuery(document).on(\"setCookieNotice\", () => {\n\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\tjQuery(\".hu-cookies-save\").on(\"click\", function () {\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\", function () {\n\n\ttry {\n\n\t\tlet url = new URL(jQuery(this).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\n// jQuery('.add_to_cart_button:not(.product_type_variable), .ajax_add_to_cart, .js-ajax-add-to-cart, .single_add_to_cart_button, .btn_color-2').on('click', function (e) {\njQuery(document).on(\"click\", \".add_to_cart_button:not(.product_type_variable), .ajax_add_to_cart, .single_add_to_cart_button\", function () {\n\n\ttry {\n\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(this).attr(\"href\") !== \"undefined\" && jQuery(this).attr(\"href\").includes(\"add-to-cart\")) {\n\n\t\t\t\tlet quantity = 1\n\t\t\t\tlet productId = jQuery(this).data(\"product_id\")\n\n\t\t\t\twpm.addProductToCart(productId, quantity)\n\t\t\t} else {\n\n\t\t\t\tif (wpmDataLayer.shop.product_type === \"simple\") {\n\n\t\t\t\t\tlet quantity = Number(jQuery(\".input-text.qty\").val())\n\n\t\t\t\t\tif (!quantity && quantity !== 0) quantity = 1\n\n\t\t\t\t\tlet productId = jQuery(this).val()\n\n\t\t\t\t\twpm.addProductToCart(productId, quantity)\n\n\t\t\t\t} else if (wpmDataLayer.shop.product_type === \"variable\") {\n\n\t\t\t\t\tlet quantity = Number(jQuery(\".input-text.qty\").val())\n\n\t\t\t\t\tif (!quantity && quantity !== 0) quantity = 1\n\n\t\t\t\t\tlet productId = jQuery(\"[name='variation_id']\").val()\n\n\t\t\t\t\twpm.addProductToCart(productId, quantity)\n\n\t\t\t\t} else if (wpmDataLayer.shop.product_type === \"grouped\") {\n\n\t\t\t\t\tjQuery(\".woocommerce-grouped-product-list-item\").each(function () {\n\n\t\t\t\t\t\tlet quantity = Number(jQuery(this).find(\".input-text.qty\").val())\n\n\t\t\t\t\t\tif (!quantity && quantity !== 0) quantity = 1\n\n\t\t\t\t\t\tlet classes = jQuery(this).attr(\"class\")\n\t\t\t\t\t\tlet productId = wpm.getPostIdFromString(classes)\n\n\t\t\t\t\t\twpm.addProductToCart(productId, quantity)\n\t\t\t\t\t})\n\t\t\t\t} else if (wpmDataLayer.shop.product_type === \"bundle\") {\n\n\t\t\t\t\tlet quantity = Number(jQuery(\".input-text.qty\").val())\n\n\t\t\t\t\tif (!quantity && quantity !== 0) quantity = 1\n\n\t\t\t\t\tlet productId = jQuery(\"input[name=add-to-cart]\").val()\n\n\t\t\t\t\twpm.addProductToCart(productId, quantity)\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\n\t\t\tlet quantity = 1\n\t\t\tlet productId = jQuery(this).data(\"product_id\")\n\n\t\t\twpm.addProductToCart(productId, quantity)\n\t\t}\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)\", function (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\", function () {\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(this).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]\n\njQuery(document).one(\"click\", checkoutButtonClasses.join(\",\"), function () {\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\", function () {\n\n\tif (wpm.isEmail(jQuery(this).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\", function () {\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\", function () {\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']\", function () {\n\n\ttry {\n\t\tjQuery(\".cart_item\").each(function () {\n\n\t\t\tlet url = new URL(jQuery(this).find(\".product-remove\").find(\"a\").attr(\"href\"))\n\t\t\tlet productId = wpm.getProductIdByCartItemKeyUrl(url)\n\n\n\t\t\tlet quantity = jQuery(this).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(document).on(\"click\", \".add_to_wishlist, .wl-add-to\", function () {\n\n\ttry {\n\n\t\tlet productId\n\n\t\tif (jQuery(this).data(\"productid\")) { // for the WooCommerce wishlist plugin\n\n\t\t\tproductId = jQuery(this).data(\"productid\")\n\t\t} else if (jQuery(this).data(\"product-id\")) { // for the YITH wishlist plugin\n\n\t\t\tproductId = jQuery(this).data(\"product-id\")\n\t\t}\n\n\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\tlet product = wpm.getProductDetailsFormattedForEvent(productId)\n\n\t\tjQuery(document).trigger(\"wpmAddToWishlist\", product)\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\njQuery(document).on(\"updated_cart_totals\", function () {\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(function () {\n\n\tjQuery(\".single_variation_wrap\").on(\"show_variation\", function (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\njQuery(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\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\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 * Set up wpm events\n */\n\n// populate the wpmDataLayer with the cart items\njQuery(window).on(\"wpmLoad\", function () {\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(window).on(\"wpmLoad\", function () {\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(window).on(\"wpmLoad\", function () {\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(window).on(\"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 (\"product\" === wpmDataLayer.shop.page_type && \"variable\" !== wpmDataLayer.shop.product_type && wpm.getMainProductIdFromProductPage()) {\n\n\t\t\t\tlet product = wpm.getProductDataForViewItemEvent(wpm.getMainProductIdFromProductPage())\n\n\t\t\t\tjQuery(document).trigger(\"wpmViewItem\", product)\n\n\t\t\t} else if (\"product_category\" === wpmDataLayer.shop.page_type) {\n\n\t\t\t\tjQuery(document).trigger(\"wpmCategory\")\n\n\t\t\t} else if (\"search\" === wpmDataLayer.shop.page_type) {\n\n\t\t\t\tjQuery(document).trigger(\"wpmSearch\")\n\n\t\t\t} else if (\"cart\" === wpmDataLayer.shop.page_type) {\n\n\t\t\t\tjQuery(document).trigger(\"wpmViewCart\")\n\n\t\t\t} else if (\"order_received_page\" === wpmDataLayer.shop.page_type && wpmDataLayer.order) {\n\n\t\t\t\tif (!wpm.isOrderIdStored(wpmDataLayer.order.id)) {\n\n\t\t\t\t\tjQuery(document).trigger(\"wpmOrderReceivedPage\")\n\t\t\t\t\twpm.writeOrderIdToStorage(wpmDataLayer.order.id)\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\n/**\n * Load all pixels\n */\njQuery(window).on(\"wpmPreLoadPixels\", function () {\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","'use strict';\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toOffset = require('../internals/to-offset');\nvar toIndexedObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar $set = Int8ArrayPrototype && Int8ArrayPrototype.set;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS = !fails(function () {\n // eslint-disable-next-line es-x/no-typed-arrays -- required for testing\n var array = new Uint8ClampedArray(2);\n call($set, array, { length: 1, 0: 3 }, 1);\n return array[1] !== 3;\n});\n\n// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other\nvar TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {\n var array = new Int8Array(2);\n array.set(1);\n array.set('2', 1);\n return array[0] !== 0 || array[1] !== 2;\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var src = toIndexedObject(arrayLike);\n if (WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);\n var length = this.length;\n var len = lengthOfArrayLike(src);\n var index = 0;\n if (len + offset > length) throw RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, !WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);\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\tcookieWpmRestEndpointAvailable: \"_wpm_endpoint_available\",\n\t\trestEndpoint : \"/wp-json/\",\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 = () => {\n\n\t\tif (window.sessionStorage.getItem(wpmRestSettings.cookieWpmRestEndpointAvailable)) {\n\t\t\treturn JSON.parse(window.sessionStorage.getItem(wpmRestSettings.cookieWpmRestEndpointAvailable))\n\t\t} else {\n\t\t\t// return wpm.testEndpoint();\n\t\t\t// just set the value whenever possible in order not to wait or block the main thread\n\t\t\twpm.testEndpoint()\n\t\t}\n\t}\n\n\twpm.isSessionStorageAvailable = () => !!window.sessionStorage\n\n\twpm.testEndpoint = (\n\t\turl = location.protocol + \"//\" + location.host + wpmRestSettings.restEndpoint,\n\t\tcookieName = wpmRestSettings.cookieWpmRestEndpointAvailable,\n\t) => {\n\t\t// console.log('testing endpoint');\n\n\t\tjQuery.ajax(url, {\n\t\t\ttype : \"HEAD\",\n\t\t\ttimeout: 1000,\n\t\t\t// async: false,\n\t\t\tstatusCode: {\n\t\t\t\t200: function (response) {\n\t\t\t\t\t// Cookies.set(cookieName, true);\n\t\t\t\t\t// console.log('endpoint works');\n\t\t\t\t\twindow.sessionStorage.setItem(cookieName, JSON.stringify(true))\n\t\t\t\t},\n\t\t\t\t404: function (response) {\n\t\t\t\t\t// Cookies.set(cookieName, false);\n\t\t\t\t\t// console.log('endpoint doesn\\'t work');\n\t\t\t\t\twindow.sessionStorage.setItem(cookieName, JSON.stringify(false))\n\t\t\t\t},\n\t\t\t\t0 : function (response) {\n\t\t\t\t\t// Cookies.set(cookieName, false);\n\t\t\t\t\t// console.log('endpoint doesn\\'t work');\n\t\t\t\t\twindow.sessionStorage.setItem(cookieName, JSON.stringify(false))\n\t\t\t\t},\n\t\t\t},\n\t\t}).then(response => {\n\t\t\t// console.log('test done')\n\t\t\t// console.log('result: ' + JSON.parse(window.sessionStorage.getItem(cookieName)));\n\t\t\t// return JSON.parse(window.sessionStorage.getItem(cookieName));\n\t\t})\n\t}\n\n\twpm.isWpmRestEndpointAvailable = (cookieName = wpmRestSettings.cookieWpmRestEndpointAvailable) => !!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\t\t\tlet data = {\n\t\t\t\taction: \"wpm_get_cart_items\",\n\t\t\t}\n\n\t\t\tjQuery.ajax(\n\t\t\t\t{\n\t\t\t\t\ttype : \"get\",\n\t\t\t\t\tdataType: \"json\",\n\t\t\t\t\t// url : ajax_object.ajax_url,\n\t\t\t\t\turl : wpm.ajax_url,\n\t\t\t\t\tdata : data,\n\t\t\t\t\tsuccess: function (cartItems) {\n\n\t\t\t\t\t\t// save all cart items into wpmDataLayer\n\n\t\t\t\t\t\tif (!cartItems[\"cart\"]) cartItems[\"cart\"] = {}\n\n\t\t\t\t\t\twpm.saveCartObjectToDataLayer(cartItems[\"cart\"])\n\n\t\t\t\t\t\tif (sessionStorage) sessionStorage.setItem(\"wpmDataLayerCart\", JSON.stringify(cartItems[\"cart\"]))\n\t\t\t\t\t},\n\t\t\t\t})\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 = productIds => {\n\n\n\t\t// reduce productIds by products already in the dataLayer\n\t\tproductIds = productIds.filter(item => !wpmDataLayer.products.hasOwnProperty(item))\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\t\t\tlet data = {\n\t\t\t\taction : \"wpm_get_product_ids\",\n\t\t\t\tproductIds: productIds,\n\t\t\t}\n\n\t\t\treturn jQuery.ajax(\n\t\t\t\t{\n\t\t\t\t\ttype : \"get\",\n\t\t\t\t\tdataType: \"json\",\n\t\t\t\t\t// url : ajax_object.ajax_url,\n\t\t\t\t\turl : wpm.ajax_url,\n\t\t\t\t\tdata : data,\n\t\t\t\t\tsuccess: function (products) {\n\n\t\t\t\t\t\t// merge products into wpmDataLayer.products\n\t\t\t\t\t\twpmDataLayer.products = Object.assign({}, wpmDataLayer.products, products)\n\t\t\t\t\t},\n\t\t\t\t\terror : function (response) {\n\t\t\t\t\t\tconsole.log(response)\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\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 = productId => {\n\n\t\tif (wpmDataLayer.products && wpmDataLayer.products[productId]) {\n\n\t\t\twpm.triggerViewItemEvent(productId)\n\t\t} else {\n\t\t\twpm.getProductsFromBackend([productId]).then(() => {\n\n\t\t\t\twpm.triggerViewItemEvent(productId)\n\t\t\t})\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.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 = orderId => {\n\n\t\ttry {\n\t\t\t// save the state in the database\n\t\t\tlet data = {\n\t\t\t\taction : \"wpm_purchase_pixels_fired\",\n\t\t\t\torder_id: orderId,\n\t\t\t\t// nonce : ajax_object.nonce,\n\t\t\t\tnonce: wpm.nonce,\n\t\t\t}\n\n\t\t\tjQuery.ajax(\n\t\t\t\t{\n\t\t\t\t\ttype : \"post\",\n\t\t\t\t\tdataType: \"json\",\n\t\t\t\t\t// url : ajax_object.ajax_url,\n\t\t\t\t\turl : wpm.ajax_url,\n\t\t\t\t\tdata : data,\n\t\t\t\t\tsuccess: function (response) {\n\t\t\t\t\t\tif (response.success === false) {\n\t\t\t\t\t\t\tconsole.log(response)\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\terror : function (response) {\n\t\t\t\t\t\tconsole.log(response)\n\t\t\t\t\t},\n\t\t\t\t})\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, options) => {\n\n\t\t// Allow user to set any option except for dataType, cache, and url\n\t\toptions = jQuery.extend(options || {}, {\n\t\t\tdataType: \"script\",\n\t\t\tcache : true,\n\t\t\turl : url,\n\t\t})\n\n\t\t// Use $.ajax() since it is more flexible than $.getScript\n\t\t// Return the jqXHR object so we can chain callbacks\n\t\treturn jQuery.ajax(options)\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}(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\t\tjQuery(document).trigger(\"wpmPreLoadPixels\", {})\n\t})\n\t.then(function () {\n\t\twpm.pageLoaded().then(function () {\n\t\t\tjQuery(document).trigger(\"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":["global","require","isCallable","tryToString","TypeError","module","exports","argument","String","wellKnownSymbol","create","definePropertyModule","UNSCOPABLES","ArrayPrototype","Array","prototype","undefined","f","configurable","value","key","isObject","ArrayBuffer","DataView","NAME","Constructor","Prototype","NATIVE_ARRAY_BUFFER","DESCRIPTORS","hasOwn","classof","createNonEnumerableProperty","defineBuiltIn","defineProperty","isPrototypeOf","getPrototypeOf","setPrototypeOf","uid","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","Object","TO_STRING_TAG","TYPED_ARRAY_TAG","TYPED_ARRAY_CONSTRUCTOR","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQUIRED","TypedArrayConstructorsList","Uint8Array","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","isTypedArray","it","klass","Function","get","this","aTypedArray","aTypedArrayConstructor","C","exportTypedArrayMethod","KEY","property","forced","options","ARRAY","TypedArrayConstructor","error","error2","exportTypedArrayStaticMethod","isView","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","el","fromIndex","O","length","index","includes","indexOf","uncurryThis","toString","stringSlice","slice","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","arguments","tag","result","tryGet","callee","ownKeys","getOwnPropertyDescriptorModule","target","source","exceptions","keys","getOwnPropertyDescriptor","i","fails","F","constructor","createPropertyDescriptor","object","bitmap","enumerable","writable","makeBuiltIn","setGlobal","unsafe","simple","noTargetGet","name","document","EXISTS","createElement","getBuiltIn","match","version","userAgent","process","Deno","versions","v8","split","copyConstructorProperties","isForced","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","sham","exec","test","bind","hasOwnProperty","NATIVE_BIND","call","apply","FunctionPrototype","getDescriptor","PROPER","CONFIGURABLE","fn","aFunction","namespace","method","aCallable","V","P","func","check","Math","globalThis","window","self","toObject","a","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","USE_SYMBOL_AS_UID","$Symbol","toLength","obj","CONFIGURABLE_FUNCTION_NAME","InternalStateModule","enforceInternalState","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","getter","setter","arity","join","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","Properties","V8_PROTOTYPE_DEFINE_BUG","objectKeys","defineProperties","props","IE8_DOM_DEFINE","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","Attributes","current","propertyIsEnumerableModule","internalObjectKeys","concat","getOwnPropertyNames","CORRECT_PROTOTYPE_GETTER","push","names","$propertyIsEnumerable","NASHORN_BUG","aPossiblePrototype","CORRECT_SETTER","proto","__proto__","input","pref","val","valueOf","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","SHARED","IS_PURE","mode","copyright","license","toIntegerOrInfinity","max","min","integer","IndexedObject","requireObjectCoercible","ceil","floor","number","toPositiveInteger","RangeError","BYTES","offset","isSymbol","getMethod","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","toPrimitive","id","postfix","random","NATIVE_SYMBOL","iterator","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","description","$","$includes","addToUnscopables","jQuery","on","wpmDataLayer","pixels","facebook","pixel_id","loaded","wpm","canIFire","loadFacebookPixel","event","product","eventId","getRandomEventId","fbq","content_type","content_name","content_ids","dyn_r_ids","dynamic_remarketing","id_type","parseFloat","quantity","price","currency","eventID","shop","trigger","event_name","event_id","user_data","getFbUserData","event_source_url","location","href","custom_data","fbGetProductDataForCapiEvent","e","console","fbViewContent","search_string","getSearchTermFromUrl","setFbUserData","order","value_filtered","facebookContentIds","fBUserData","b","n","callMethod","queue","_fbq","t","async","s","getElementsByTagName","parentNode","insertBefore","isFbpSet","getUserIdentifiersForFb","user","external_id","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","substring","getFbUserDataFromBrowser","getCookie","isValidFbp","fbp","isValidFbc","navigator","client_user_agent","RegExp","fbc","prodIds","item","entries","items","general","variationsOutput","variation_id","products","trackCustomFacebookEvent","eventName","customData","isEmptyObject","google","ads","conversionIds","status","googleConfigConditionsMet","isVariable","send_events_with_parent_ids","send_to","getGoogleAdsConversionIdentifiers","google_business_vertical","gtagLoaded","then","gtag","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","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","done","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","disconnect","some","element","scriptNode","removeAttach","remove","wpmSrc","attr","appendTo","removeAttr","unblockAllScripts","unblockSelectedPixels","Cookiebot","consent","detail","cmplzStatusChange","cmplzConsentData","huObserver","hu","documentElement","body","explicitConsentStateAlreadySet","url","URL","productId","getProductIdByCartItemKeyUrl","removeProductFromCart","addProductToCart","product_type","Number","each","find","classes","getPostIdFromString","one","closest","matches","nextAll","getIdBasedOndVariationsOutputSetting","Error","getProductDetailsFormattedForEvent","isEmail","fireCheckoutProgress","emailSelected","paymentMethodSelected","fireCheckoutOption","cart","getCartItemsFromBackend","variation","triggerViewItemEventPrep","microdata_product_id","doesWooCommerceCartExist","getCartItems","productIds","getAddToCartLinkProductIds","getProductsFromBackend","referrer","referrerHostname","hostname","host","setCookie","wpmLoadFired","getMainProductIdFromProductPage","getProductDataForViewItemEvent","isOrderIdStored","writeOrderIdToStorage","hasLoginEventFired","setLoginEventFired","ArrayBufferViewCore","toOffset","$set","WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS","array","TO_OBJECT_BUG","arrayLike","len","wpmDeduper","wpmRestSettings","checkCookie","useRestEndpoint","isSessionStorageAvailable","isRestEndpointAvailable","isBelowRestErrorThreshold","sessionStorage","getItem","testEndpoint","protocol","cookieName","ajax","timeout","statusCode","response","setItem","stringify","isWpmRestEndpointAvailable","orderId","Storage","localStorage","ids","expiresDate","setDate","getDate","toUTCString","storeOrderIdOnServer","orderDeduplication","quantityToRemove","isVariation","parentId","saveCartObjectToDataLayer","dataType","ajax_url","success","cartItems","filter","assign","cartObject","triggerViewItemEvent","step","checkout_option","triggerViewItemList","viewItemListTriggerTestMode","css","append","viewItemListTrigger","opacity","backgroundColor","URLSearchParams","search","io","ioTimeouts","observerCallback","observer","entry","elementId","next","isIntersecting","testMode","repeat","unobserve","clearTimeout","allIoElementsToWatch","ioid","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","nonce","cartItemKey","cartItemKeys","position","parentId_dyn_r_ids","setReferrerToCookie","getReferrerFromCookie","getClidFromBrowser","clidCookieId","clidId","gclid","dclid","getUserAgent","getViewPort","width","clientWidth","innerWidth","height","clientHeight","innerHeight","extend","cache","getOrderItemPrice","total","total_tax","loginEventFired","wpmDataLayerExists","waitForVar","jQueryExists","waitForjQuery","pageLoaded","readyState","pageReady","isMiniCartActive","parameter","hashAsync","algo","str","crypto","subtle","digest","TextEncoder","encode","buf","x","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.3\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-05-19T08:55:38+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"
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.4\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-05-26T09:39:28+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"
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: woocommerce, google ads, google analytics, facebook pixel, conversion trac
4
  Requires at least: 3.7
5
  Tested up to: 5.9
6
  Requires PHP: 7.3
7
- Stable tag: 1.17.3
8
  License: GPLv3 or later
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -186,6 +186,16 @@ You can send the link to the front page of your shop too if you think it would b
186
 
187
  == Changelog ==
188
 
 
 
 
 
 
 
 
 
 
 
189
  = 1.17.3 = 19.05.2022
190
 
191
 
4
  Requires at least: 3.7
5
  Tested up to: 5.9
6
  Requires PHP: 7.3
7
+ Stable tag: 1.17.4
8
  License: GPLv3 or later
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
186
 
187
  == Changelog ==
188
 
189
+ = 1.17.4 = 26.05.2022
190
+
191
+ * New: Added GA4 session ID handling. This is experimental as it is not documented by Google.
192
+ * Tweak: Added tier info into debug info
193
+ * Tweak: Added more FB user information for logged in users
194
+ * Tweak: Prevent slow processing of large amount of variation data for variable products with > 64 variations
195
+ * Tweak: Increased server test timout to minimize false negatives
196
+ * Fix: Workaround if $_server['HTTP_HOST'] is not set
197
+ * Fix: Workaround if $_server['REMOTE_ADDR'] is not set
198
+
199
  = 1.17.3 = 19.05.2022
200
 
201
 
wgact.php CHANGED
@@ -10,7 +10,7 @@
10
  * Developer URI: https://sweetcode.com
11
  * Text Domain: woocommerce-google-adwords-conversion-tracking-tag
12
  * Domain path: /languages
13
- * * Version: 1.17.3
14
  *
15
  * WC requires at least: 3.7
16
  * WC tested up to: 6.4
@@ -20,7 +20,7 @@
20
  *
21
  *
22
  **/
23
- const WPM_CURRENT_VERSION = '1.17.3' ;
24
  // TODO export settings function
25
  // TODO add option checkbox on uninstall and ask if user wants to delete options from db
26
 
10
  * Developer URI: https://sweetcode.com
11
  * Text Domain: woocommerce-google-adwords-conversion-tracking-tag
12
  * Domain path: /languages
13
+ * * Version: 1.17.4
14
  *
15
  * WC requires at least: 3.7
16
  * WC tested up to: 6.4
20
  *
21
  *
22
  **/
23
+ const WPM_CURRENT_VERSION = '1.17.4' ;
24
  // TODO export settings function
25
  // TODO add option checkbox on uninstall and ask if user wants to delete options from db
26