CINXE.COM

Bestsellers | IEC

<!doctype html><html lang="en"><head ><meta charset="utf-8"/><script type="text/javascript">(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"1120235073",accountID:"4036131",trustKey:"1322840",xpid:"UAYEV1dQCRABVFdbAwMPUFQE",licenseKey:"NRJS-d9c81247d55ff99d156",applicationID:"1069428605"};;/*! For license information please see nr-loader-spa-1.274.0.min.js.LICENSE.txt */ (()=>{var e,t,r={8122:(e,t,r)=>{"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>u});var n=r(384),i=r(8122);const o={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){try{const t=c(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function u(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.info=a[e])}},9417:(e,t,r)=>{"use strict";r.d(t,{D0:()=>h,gD:()=>g,xN:()=>p});var n=r(993);const i=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var o=r(2614),a=r(944),s=r(384),c=r(8122);const u="[data-nr-mask]",d=()=>{const e={mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,harvestTimeSeconds:10,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},feature_flags:[],generic_events:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},harvest:{tooManyRequestsDelay:60},jserrors:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},logging:{enabled:!0,harvestTimeSeconds:10,autoStart:!0,level:n.p_.INFO},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:o.wk,inactiveMs:o.BB},session_replay:{autoStart:!0,enabled:!1,harvestTimeSeconds:60,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){i(t)?e.mask_selector="".concat(t,",").concat(u):""===t||null===t?e.mask_selector=u:(0,a.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){i(t)?e.block_selector+=",".concat(t):""!==t&&(0,a.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,a.R)(7,t)}},session_trace:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},soft_navigations:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},spa:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},ssl:void 0,user_actions:{enabled:!0}}},l={},f="All configuration objects require an agent identifier!";function h(e){if(!e)throw new Error(f);if(!l[e])throw new Error("Configuration for ".concat(e," was never set"));return l[e]}function p(e,t){if(!e)throw new Error(f);l[e]=(0,c.a)(t,d());const r=(0,s.nY)(e);r&&(r.init=l[e])}function g(e,t){if(!e)throw new Error(f);var r=h(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},5603:(e,t,r)=>{"use strict";r.d(t,{a:()=>c,o:()=>s});var n=r(384),i=r(8122);const o={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},a={};function s(e){if(!e)throw new Error("All loader-config objects require an agent identifier!");if(!a[e])throw new Error("LoaderConfig for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.loader_config=a[e])}},3371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>l});var n=r(8122),i=r(384),o=r(6154),a=r(9324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},u={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0},d={};function l(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!d[e])throw new Error("Runtime for ".concat(e," was never set"));return d[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");d[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(d[e],"harvestCount")||Object.defineProperty(d[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=d[e])}},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,Yq:()=>a,xv:()=>n});const n="1.274.0",i="PROD",o="CDN",a="^2.0.0-alpha.17"},6154:(e,t,r)=>{"use strict";r.d(t,{A4:()=>s,OF:()=>d,RI:()=>i,WN:()=>h,bv:()=>o,gm:()=>a,lR:()=>f,m:()=>u,mw:()=>c,sb:()=>l});var n=r(1863);const i="undefined"!=typeof window&&!!window.document,o="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),s="complete"===a?.document?.readyState,c=Boolean("hidden"===a?.document?.visibilityState),u=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),l=d&&"undefined"==typeof SharedWorker,f=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),h=Date.now()-(0,n.t)()},7295:(e,t,r)=>{"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>o});var n=[];function i(e){if(!e||o(e))return!1;if(0===n.length)return!0;for(var t=0;t<n.length;t++){var r=n[t];if("*"===r.hostname)return!1;if(s(r.hostname,e.hostname)&&c(r.pathname,e.pathname))return!1}return!0}function o(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let o,a;i>0?(o=r.substring(0,i),a=r.substring(i)):(o=r,a="");let[s]=o.split(":");n.push({hostname:s,pathname:a})}}function s(e,t){return!(e.length>t.length)&&t.indexOf(e)===t.length-e.length}function c(e,t){return 0===e.indexOf("/")&&(e=e.substring(1)),0===t.indexOf("/")&&(t=t.substring(1)),""===e||e===t}},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>u});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),h(e,t,!1),s[e].size&&f(e))}function d(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(d(e),!e||!s[e].get(t)||r)return h(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),h(e,t)})))}function h(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t<e.length;++t)p(e[t],r);Object.entries(r).forEach((([e,t])=>{Object.values(t||{}).forEach((t=>{t[0]?.on&&t[0]?.context()instanceof a.y&&t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function p(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>u});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c="nr@context:".concat(s.W),u=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length&&(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=h(n),c=g(e),d=c.length,l=0;l<d;l++)c[l].apply(a,r);var p=v()[s[e]];p&&p.push([f,e,r,a]);return a},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=>{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return d[t]=d[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=u)},2646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3878:(e,t,r)=>{"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,ZF:()=>c,bz:()=>a,el:()=>u});var n=r(6154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}function c(){return s(16)}function u(){return s(32)}},2614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>u,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},7485:(e,t,r)=>{"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},944:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.debug&&console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t)}r.d(t,{R:()=>n})},5284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(7836),i=r(6154);const o="newrelic";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e&&"object"==typeof e&&(a.has(t)||(r.emit("rumresp",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},8990:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389:(e,t,r)=>{"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout((()=>{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=>{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},3304:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(7836);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(3878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>d,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>u,pV:()=>l});var n=r(6154),i=r(1863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},8139:(e,t,r)=>{"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),o=r(8990),a=r(6154);const s={},c=a.gm.XMLHttpRequest,u="addEventListener",d="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get("events")}(e);if(s[t.debugId]++)return t;s[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[u,d],"-",p)}function p(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,f),h(a.gm,f),h(c.prototype,f)),t.on(u+"-start",(function(e,t){var n=e[1];if(null!==n&&("function"==typeof n||"object"==typeof n)){var i=(0,o.I)(n,l,(function(){var e={object:function(){if("function"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,"fn-",null,e.name||"anonymous"):n}));this.wrapped=e[1]=i}})),t.on(d+"-start",(function(e){e[1]=this.wrapped||e[1]})),t}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,u);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434:(e,t,r)=>{"use strict";r.d(t,{Jt:()=>o,YM:()=>c});var n=r(7836),i=r(5607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],d],e)}i(r+"start",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],d,c),e}finally{i(r+"end",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function d(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},9300:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.ajax},3333:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,Zp:()=>i,mq:()=>s,nf:()=>a,qN:()=>o});const n=r(860).K7.genericEvents,i=["auxclick","click","copy","keydown","paste","scrollend"],o=["focus","blur"],a=4,s=1e3},6774:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.jserrors},993:(e,t,r)=>{"use strict";r.d(t,{ET:()=>o,TZ:()=>a,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o="log",a=n.K7.logging},3785:(e,t,r)=>{"use strict";r.d(t,{R:()=>c,b:()=>u});var n=r(9908),i=r(1863),o=r(860),a=r(3969),s=r(993);function c(e,t,r={},c=s.p_.INFO){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,o.K7.metrics,e),(0,n.p)(s.ET,[(0,i.t)(),t,r,c],void 0,o.K7.logging,e)}function u(e){return"string"==typeof e&&Object.values(s.p_).some((t=>t===e.toUpperCase().trim()))}},3969:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,XG:()=>s,rs:()=>i,xV:()=>a,z_:()=>o});const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},6630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=>{"use strict";r.d(t,{BB:()=>d,G4:()=>o,Qb:()=>l,TZ:()=>i,Ug:()=>a,_s:()=>s,bc:()=>u,yP:()=>c});var n=r(2614);const i=r(860).K7.sessionReplay,o={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"},a=.12,s={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},c={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0},u={RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},d=5e3,l={API:"api"}},5270:(e,t,r)=>{"use strict";r.d(t,{Aw:()=>c,CT:()=>u,SR:()=>s});var n=r(384),i=r(9417),o=r(7767),a=r(6154);function s(e){return!!(0,n.dV)().o.MO&&(0,o.V)(e)&&!0===(0,i.gD)(e,"session_trace.enabled")}function c(e){return!0===(0,i.gD)(e,"session_replay.preload")&&s(e)}function u(e,t){const r=t.correctAbsoluteTimestamp(e);return{originalTimestamp:e,correctedTimestamp:r,timestampDiff:e-r,originTime:a.WN,correctedOriginTime:t.correctedOriginTime,originTimeDiff:Math.floor(a.WN-t.correctedOriginTime)}}},3738:(e,t,r)=>{"use strict";r.d(t,{He:()=>i,Kp:()=>s,Lc:()=>u,Rz:()=>d,TZ:()=>n,bD:()=>o,d3:()=>a,jx:()=>l,uP:()=>c});const n=r(860).K7.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,u="fn"+s,d="pushState",l=1e3},3962:(e,t,r)=>{"use strict";r.d(t,{AM:()=>o,O2:()=>s,Qu:()=>c,TZ:()=>a,ih:()=>u,tC:()=>i});var n=r(860);const i=["click","keydown","submit"],o="api",a=n.K7.softNav,s={INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},c={INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},u={IP:"in progress",FIN:"finished",CAN:"cancelled"}},7378:(e,t,r)=>{"use strict";r.d(t,{$p:()=>x,BR:()=>b,Kp:()=>R,L3:()=>y,Lc:()=>c,NC:()=>o,SG:()=>d,TZ:()=>i,U6:()=>p,UT:()=>m,d3:()=>w,dT:()=>f,e5:()=>A,gx:()=>v,l9:()=>l,oW:()=>h,op:()=>g,rw:()=>u,tH:()=>E,uP:()=>s,wW:()=>T,xq:()=>a});var n=r(384);const i=r(860).K7.spa,o=["click","submit","keypress","keydown","keyup","change"],a=999,s="fn-start",c="fn-end",u="cb-start",d="api-ixn-",l="remaining",f="interaction",h="spaNode",p="jsonpNode",g="fetch-start",m="fetch-done",v="fetch-body-",b="jsonp-end",y=(0,n.dV)().o.ST,w="-start",R="-end",x="-body",T="cb"+R,A="jsTime",E="fetch"},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7767:(e,t,r)=>{"use strict";r.d(t,{V:()=>o});var n=r(9417),i=r(6154);const o=e=>i.RI&&!0===(0,n.gD)(e,"privacy.cookies_enabled")},425:(e,t,r)=>{"use strict";r.d(t,{j:()=>j});var n=r(860),i=r(2555),o=r(3371),a=r(9908),s=r(7836),c=r(1687),u=r(5289),d=r(6154),l=r(944),f=r(3969),h=r(384),p=r(6344);const g=["setErrorHandler","finished","addToTrace","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",p.G4.RECORD,p.G4.PAUSE,"log","wrapLogger"],m=["setErrorHandler","finished","addToTrace","addRelease"];var v=r(1863),b=r(2614),y=r(993),w=r(3785),R=r(2646),x=r(3434);function T(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const i=function(e){return(e||s.ee).get("logger")}(e),o=(0,x.YM)(i),a=new R.y(s.P);return a.level=n.level,a.customAttributes=n.customAttributes,o.inPlace(t,[r],"wrap-logger-",a),i}function A(){const e=(0,h.pV)();g.forEach((t=>{e[t]=(...r)=>function(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=>{e&&e.api?e.exposed&&e.api[t]&&n.push(e.api[t](...r)):(0,l.R)(38,t)})),n.length>1?n:n[0]}(t,...r)}))}const E={};var S=r(9417),N=r(5603),O=r(5284);const _=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let I=!1;function j(e,t={},g,R){let{init:x,info:j,loader_config:P,runtime:C={},exposed:k=!0}=t;C.loaderType=g;const L=(0,h.pV)();j||(x=L.init,j=L.info,P=L.loader_config),(0,S.xN)(e.agentIdentifier,x||{}),(0,N.a)(e.agentIdentifier,P||{}),j.jsAttributes??={},d.bv&&(j.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,j);const H=(0,S.D0)(e.agentIdentifier),D=[j.beacon,j.errorBeacon];I||(H.proxy.assets&&(_(H.proxy.assets),D.push(H.proxy.assets)),H.proxy.beacon&&D.push(H.proxy.beacon),A(),(0,h.US)("activatedFeatures",O.B),e.runSoftNavOverSpa&&=!0===H.soft_navigations.enabled&&H.feature_flags.includes("soft_nav")),C.denyList=[...H.ajax.deny_list||[],...H.ajax.block_internal?D:[]],C.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,C),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=function(e,t,h=!1){t||(0,c.Ak)(e,"api");const g={};var R=s.ee.get(e),x=R.get("tracer");E[e]=b.g.OFF,R.on(p.G4.REPLAY_RUNNING,(t=>{E[e]=t}));var A="api-",S=A+"ixn-";function N(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),I(A,n,!0,o||null===r?"session":void 0)(t,r)}function O(){}g.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,R),(0,w.R)(R,e,t,r)},g.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,R),T(R,e,t,{customAttributes:r,level:i})},m.forEach((e=>{g[e]=I(A,e,!0,"api")})),g.addPageAction=I(A,"addPageAction",!0,n.K7.genericEvents),g.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,I(A,"setPageViewName",!0)()},g.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return N(e,t,"setCustomAttribute",r);(0,l.R)(40,typeof t)}else(0,l.R)(39,typeof e)},g.setUserId=function(e){if("string"==typeof e||null===e)return N("enduser.id",e,"setUserId",!0);(0,l.R)(41,typeof e)},g.setApplicationVersion=function(e){if("string"==typeof e||null===e)return N("application.version",e,"setApplicationVersion",!1);(0,l.R)(42,typeof e)},g.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,R),R.emit("manual-start-all")}catch(e){(0,l.R)(23,e)}},g[p.G4.RECORD]=function(){(0,a.p)(f.xV,["API/recordReplay/called"],void 0,n.K7.metrics,R),(0,a.p)(p.G4.RECORD,[],void 0,n.K7.sessionReplay,R)},g[p.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,R),(0,a.p)(p.G4.PAUSE,[],void 0,n.K7.sessionReplay,R)},g.interaction=function(e){return(new O).get("object"==typeof e?e:{})};const _=O.prototype={createTracer:function(e,t){var r={},i=this,o="function"==typeof t;return(0,a.p)(f.xV,["API/createTracer/called"],void 0,n.K7.metrics,R),h||(0,a.p)(S+"tracer",[(0,v.t)(),e,r],i,n.K7.spa,R),function(){if(x.emit((o?"":"no-")+"fn-start",[(0,v.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw x.emit("fn-err",[arguments,this,t],r),t}finally{x.emit("fn-end",[(0,v.t)()],r)}}}};function I(e,t,r,i){return function(){return(0,a.p)(f.xV,["API/"+t+"/called"],void 0,n.K7.metrics,R),i&&(0,a.p)(e+t,[(0,v.t)(),...arguments],r?null:this,i,R),r?void 0:this}}function j(){r.e(478).then(r.bind(r,8778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,l.R)(27,e),R.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{_[e]=I(S,e,void 0,h?n.K7.softNav:n.K7.spa)})),g.setCurrentRouteName=h?I(S,"routeName",void 0,n.K7.softNav):I(A,"routeName",!0,n.K7.spa),g.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,a.p)(f.xV,["API/noticeError/called"],void 0,n.K7.metrics,R),(0,a.p)("err",[t,(0,v.t)(),!1,r,!!E[e]],void 0,n.K7.jserrors,R)},d.RI?(0,u.GG)((()=>j()),!0):j(),g}(e.agentIdentifier,R,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=k),I=!0}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>o,K7:()=>n,P3:()=>i});const n={ajax:"ajax",genericEvents:"generic_events",jserrors:"jserrors",logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.spa]:5,[n.ajax]:6,[n.sessionTrace]:7,[n.softNav]:8,[n.sessionReplay]:9,[n.logging]:10,[n.genericEvents]:11},o={[n.pageViewTiming]:"events",[n.ajax]:"events",[n.spa]:"events",[n.softNav]:"events",[n.metrics]:"jserrors",[n.jserrors]:"jserrors",[n.sessionTrace]:"browser/blobs",[n.sessionReplay]:"browser/blobs",[n.logging]:"browser/logs",[n.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>({212:"nr-spa-compressor",249:"nr-spa-recorder",478:"nr-spa"}[e]+"-1.274.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.274.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={478:"sha512-1vUqEfJPB8Pihje9mv5CfYgkitO1FWcS+UQb84DbXqP8oYctRv4/lzl/MzNLPlRhcY1WVDBGL20I8vm6s2VV7g==",249:"sha512-Y/BeZAh6VSTmUtUNmS5XdyKxL92s30Fyyj8xVW76HSPxcKItL4+x2+kGMZc8pMJnUpZDz1L4eftZQAJh3D8NnA==",212:"sha512-Gn2tQ3qog5Yhrx/gRutkSTYPp+7nkKFt4/mIXg99LxcNpMDAYJZDBYmAACdoHNM86+iq1F3cBcQotFNzjIX8bw=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var h=(t,n)=>{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},p=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={38:0,788:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.274.0.PROD"]=self["webpackChunk:NRBA-1.274.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(e=(0,r.LA)(16)){this.agentIdentifier=e}#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e("addPageAction",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}addRelease(e,t){return this.#e("addRelease",e,t)}log(e,t){return this.#e("log",e,t)}}class o extends n{#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e("start")}finished(e){return this.#e("finished",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}wrapLogger(e,t,r){return this.#e("wrapLogger",e,t,r)}}var a=i(860),s=i(9417);const c=Object.values(a.K7);function u(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.gD)(t,"".concat(e,".enabled"))}(r,e)})),t}var d=i(425);var l=i(1687),f=i(4234),h=i(5289),p=i(6154),g=i(5270),m=i(7767),v=i(6389);class b extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart&&(this.auto=!1),this.auto?(0,l.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,v.J)((()=>{(0,l.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let o;try{if((0,m.V)(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(478).then(i.bind(i,6526));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit("internal-error",[t]),this.featureName===a.K7.sessionReplay&&this.abortHandler?.()}try{if(t.sharedAggregator)await t.sharedAggregator;else{t.sharedAggregator=i.e(478).then(i.bind(i,9337));const{EventAggregator:e}=await t.sharedAggregator;t.sharedAggregator=new e}if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(478).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};p.RI?(0,h.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return(0,g.SR)(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var y=i(6630);class w extends b{static featureName=y.T;constructor(e,t=!0){super(e,y.T,t),this.importAggregator(e)}}var R=i(384);var x=i(9908),T=i(2843),A=i(3878),E=i(782),S=i(1863);class N extends b{static featureName=E.T;constructor(e,t=!0){super(e,E.T,t),p.RI&&((0,T.u)((()=>(0,x.p)("docHidden",[(0,S.t)()],void 0,E.T,this.ee)),!0),(0,A.sp)("pagehide",(()=>(0,x.p)("winPagehide",[(0,S.t)()],void 0,E.T,this.ee))),this.importAggregator(e))}}var O=i(3969);class _ extends b{static featureName=O.TZ;constructor(e,t=!0){super(e,O.TZ,t),this.importAggregator(e)}}var I=i(6774),j=i(3304);class P{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,j.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return H(e)?e:new P(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic)}function k(e){const t="Unhandled Promise Rejection";if(!e?.reason)return;if(H(e.reason))try{return e.reason.message=t+": "+e.reason.message,C(e.reason)}catch(t){return C(e.reason)}const r=C(e.reason);return r.message=t+": "+r?.message,r}function L(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new P(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic);return t.name=SyntaxError.name,t}return H(e.error)?e.error:C(e)}function H(e){return e instanceof Error&&!!e.stack}class D extends b{static featureName=I.T;#r=!1;constructor(e,r=!0){super(e,I.T,r);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(e=>{this.abortHandler&&(0,x.p)("ierr",[C(e),(0,S.t)(),!0,{},this.#r],void 0,this.featureName,this.ee)})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.#r=e})),p.gm.addEventListener("unhandledrejection",(e=>{this.abortHandler&&(0,x.p)("err",[k(e),(0,S.t)(),!1,{unhandledPromiseRejection:1},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),p.gm.addEventListener("error",(e=>{this.abortHandler&&(0,x.p)("err",[L(e),(0,S.t)(),!1,{},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var M=i(8990);let K=1;const U="nr@id";function V(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===p.gm?0:(0,M.I)(e,U,(function(){return K++}))}function G(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,j.A)(e).length}catch(e){return}}}var F=i(8139),B=i(7836),W=i(3434);const z={},q=["open","send"];function Z(t){var r=t||B.ee;const n=function(e){return(e||B.ee).get("xhr")}(r);if(z[n.debugId]++)return n;z[n.debugId]=1,(0,F.u)(r);var i=(0,W.YM)(n),o=p.gm.XMLHttpRequest,a=p.gm.MutationObserver,s=p.gm.Promise,c=p.gm.setInterval,u="readystatechange",d=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],l=[],f=p.gm.XMLHttpRequest=function(t){const r=new o(t),a=n.context(r);try{n.emit("new-xhr",[r],a),r.addEventListener(u,(s=a,function(){var e=this;e.readyState>3&&!s.resolved&&(s.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,d,"fn-",y)}),(0,A.jT)(!1))}catch(t){(0,e.R)(15,t);try{n.emit("internal-error",[t])}catch(e){}}var s;return r};function h(e,t){i.inPlace(t,["onreadystatechange"],"fn-",y)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,f),f.prototype=o.prototype,i.inPlace(f.prototype,q,"-xhr-",y),n.on("send-xhr-start",(function(e,t){h(e,t),function(e){l.push(e),a&&(g?g.then(b):c?c(b):(m=-m,v.data=m))}(t)})),n.on("open-xhr-start",h),a){var g=s&&s.resolve();if(!c&&!s){var m=1,v=document.createTextNode(m);new a(b).observe(v,{characterData:!0})}}else r.on("fn-end",(function(e){e[0]&&e[0].type===u||b()}));function b(){for(var e=0;e<l.length;e++)h(0,l[e]);l.length&&(l=[])}function y(e,t){return t}return n}var Y="fetch-",X=Y+"body-",J=["arrayBuffer","blob","json","text","formData"],Q=p.gm.Request,ee=p.gm.Response,te="prototype";const re={};function ne(e){const t=function(e){return(e||B.ee).get("fetch")}(e);if(!(Q&&ee&&p.gm.fetch))return t;if(re[t.debugId]++)return t;function r(e,r,n){var i=e[r];"function"==typeof i&&(e[r]=function(){var e,r=[...arguments],o={};t.emit(n+"before-start",[r],o),o[B.P]&&o[B.P].dt&&(e=o[B.P].dt);var a=i.apply(this,r);return t.emit(n+"start",[r,e],a),a.then((function(e){return t.emit(n+"end",[null,e],a),e}),(function(e){throw t.emit(n+"end",[e],a),e}))})}return re[t.debugId]=1,J.forEach((e=>{r(Q[te],e,X),r(ee[te],e,X)})),r(p.gm,"fetch",Y),t.on(Y+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(Y+"done",[null,r],n)}else t.emit(Y+"done",[e],n)})),t}var ie=i(7485),oe=i(5603);class ae{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,oe.o)(this.agentIdentifier);if(!t)return null;var n=(t.accountID||"").toString()||null,i=(t.agentID||"").toString()||null,o=(t.trustKey||"").toString()||null;if(!n||!i)return null;var a=(0,r.ZF)(),s=(0,r.el)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(u.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),u}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof p.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,j.A)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,s.gD)(this.agentIdentifier,"distributed_tracing")&&(r=(0,s.D0)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,ie.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}isDtEnabled(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.enabled}excludeNewrelicHeader(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.cors_use_tracecontext_headers}}var se=i(9300),ce=i(7295),ue=["load","error","abort","timeout"],de=ue.length,le=(0,R.dV)().o.REQ,fe=(0,R.dV)().o.XHR;class he extends b{static featureName=se.T;constructor(e,t=!0){super(e,se.T,t),this.dt=new ae(e.agentIdentifier),this.handler=(e,t,r,n)=>(0,x.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};p.gm?.performance?.getEntriesByType("resource").forEach((t=>{if(t.initiatorType in e&&0!==t.responseStatus){const r={status:t.responseStatus},n={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};pe(r,t.name),this.handler("xhr",[r,n,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,a.K7.ajax)}}))}catch(e){}ne(this.ee),Z(this.ee),function(e,t,r,n){function i(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=R,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){T(t,e)}),(0,A.jT)(!1)),p.lR||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,A.jT)(!1))}function o(e){this.params={method:e[0]},pe(this,e[1]),this.metrics={}}function s(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var i=n.generateTracePayload(this.parsedOrigin);if(i){var o=!1;i.newrelicHeader&&(r.setRequestHeader("newrelic",i.newrelicHeader),o=!0),i.traceContextParentHeader&&(r.setRequestHeader("traceparent",i.traceContextParentHeader),i.traceContextStateHeader&&r.setRequestHeader("tracestate",i.traceContextStateHeader),o=!0),o&&(this.dt=i)}}function c(e,r){var n=this.metrics,i=e[0],o=this;if(n&&i){var a=G(i);a&&(n.txSize=a)}this.startTime=(0,S.t)(),this.body=i,this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof r.onload)&&"function"==typeof o.end)&&o.end(r)}catch(e){try{t.emit("internal-error",[e])}catch(e){}}};for(var s=0;s<de;s++)r.addEventListener(ue[s],this.listener,(0,A.jT)(!1))}function u(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function d(e,t){var r=""+V(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function l(e,t){var r=""+V(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function f(){this.endTime=(0,S.t)()}function h(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-added",[e[1],e[2]],r)}function g(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-removed",[e[1],e[2]],r)}function m(e,t,r){t instanceof fe&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,S.t)()))}function v(e,r){this.xhrCbStart&&t.emit("xhr-cb-time",[(0,S.t)()-this.xhrCbStart,this.onload,r],r)}function b(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&p.RI&&(t=""+p.gm.location.href):e[0]&&e[0].url?t=e[0].url:p.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,ie.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var i=n.generateTracePayload(this.parsedOrigin);if(i&&(i.newrelicHeader||i.traceContextParentHeader))if(e[0]&&e[0].headers)s(e[0].headers,i)&&(this.dt=i);else{var o={};for(var a in r)o[a]=r[a];o.headers=new Headers(r.headers||{}),s(o.headers,i)&&(this.dt=i),e.length>1?e[1]=o:e.push(o)}}function s(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function y(e,t){this.params={},this.metrics={},this.startTime=(0,S.t)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof le?r=i.url:p.gm?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),pe(this,r);var o=(""+(i&&i instanceof le&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=G(n.body)||0}function w(e,t){if(this.endTime=(0,S.t)(),this.params||(this.params={}),(0,ce.iW)(this.params))return;let n;this.params.status=t?t.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);const i={txSize:this.txSize,rxSize:n,duration:(0,S.t)()-this.startTime};r("xhr",[this.params,i,this.startTime,this.endTime,"fetch"],this,a.K7.ajax)}function R(e){const t=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(let t=0;t<de;t++)e.removeEventListener(ue[t],this.listener,!1);t.aborted||(0,ce.iW)(t)||(n.duration=(0,S.t)()-this.startTime,this.loadCazptureCalled||4!==e.readyState?null==t.status&&(t.status=0):T(this,e),n.cbTime=this.cbTime,r("xhr",[t,n,this.startTime,this.endTime,"xhr"],this,a.K7.ajax))}}function T(e,r){e.params.status=r.status;var n=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?G(e.response):"text"===r||""===r||void 0===r?G(e.responseText):void 0}(r,e.lastSize);if(n&&(e.metrics.rxSize=n),e.sameOrigin){var i=r.getResponseHeader("X-NewRelic-App-Data");i&&((0,x.p)(O.rs,["Ajax/CrossApplicationTracing/Header/Seen"],void 0,a.K7.metrics,t),e.params.cat=i.split(", ").pop())}e.loadCaptureCalled=!0}t.on("new-xhr",i),t.on("open-xhr-start",o),t.on("open-xhr-end",s),t.on("send-xhr-start",c),t.on("xhr-cb-time",u),t.on("xhr-load-added",d),t.on("xhr-load-removed",l),t.on("xhr-resolved",f),t.on("addEventListener-end",h),t.on("removeEventListener-end",g),t.on("fn-end",v),t.on("fetch-before-start",b),t.on("fetch-start",y),t.on("fn-start",m),t.on("fetch-done",w)}(e,this.ee,this.handler,this.dt),this.importAggregator(e)}}function pe(e,t){var r=(0,ie.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}const ge={},me=["pushState","replaceState"];function ve(e){const t=function(e){return(e||B.ee).get("history")}(e);return!p.RI||ge[t.debugId]++||(ge[t.debugId]=1,(0,W.YM)(t).inPlace(window.history,me,"-")),t}var be=i(3738);const{He:ye,bD:we,d3:Re,Kp:xe,TZ:Te,Lc:Ae,uP:Ee,Rz:Se}=be;class Ne extends b{static featureName=Te;constructor(e,t=!0){super(e,Te,t);if(!(0,m.V)(this.agentIdentifier))return void this.deregisterDrain();const r=this.ee;let n;ve(r),this.eventsEE=(0,F.u)(r),this.eventsEE.on(Ee,(function(e,t){this.bstStart=(0,S.t)()})),this.eventsEE.on(Ae,(function(e,t){(0,x.p)("bst",[e[0],t,this.bstStart,(0,S.t)()],void 0,a.K7.sessionTrace,r)})),r.on(Se+Re,(function(e){this.time=(0,S.t)(),this.startPath=location.pathname+location.hash})),r.on(Se+xe,(function(e){(0,x.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,a.K7.sessionTrace,r)}));try{n=new PerformanceObserver((e=>{const t=e.getEntries();(0,x.p)(ye,[t],void 0,a.K7.sessionTrace,r)})),n.observe({type:we,buffered:!0})}catch(e){}this.importAggregator(e,{resourceObserver:n})}}var Oe=i(2614);class _e extends b{static featureName=t.TZ;#i;#o;constructor(e,r=!0){let n;super(e,t.TZ,r),this.replayRunning=!1,this.#o=e;try{n=JSON.parse(localStorage.getItem("".concat(Oe.H3,"_").concat(Oe.uh)))}catch(e){}(0,g.SR)(e.agentIdentifier)&&this.ee.on(t.G4.RECORD,(()=>this.#a())),this.#s(n)?(this.#i=n?.sessionReplayMode,this.#c()):this.importAggregator(e),this.ee.on("err",(e=>{this.replayRunning&&(this.errorNoticed=!0,(0,x.p)(t.G4.ERROR_DURING_REPLAY,[e],void 0,this.featureName,this.ee))})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.replayRunning=e}))}#s(e){return e&&(e.sessionReplayMode===Oe.g.FULL||e.sessionReplayMode===Oe.g.ERROR)||(0,g.Aw)(this.agentIdentifier)}#u=!1;async#c(e){if(!this.#u){this.#u=!0;try{const{Recorder:t}=await Promise.all([i.e(478),i.e(249)]).then(i.bind(i,8589));this.recorder??=new t({mode:this.#i,agentIdentifier:this.agentIdentifier,trigger:e,ee:this.ee}),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording}catch(e){}this.importAggregator(this.#o,{recorder:this.recorder,errorNoticed:this.errorNoticed})}}#a(){this.featAggregate?this.featAggregate.mode!==Oe.g.FULL&&this.featAggregate.initializeRecording(Oe.g.FULL,!0):(this.#i=Oe.g.FULL,this.#c(t.Qb.API),this.recorder&&this.recorder.parent.mode!==Oe.g.FULL&&(this.recorder.parent.mode=Oe.g.FULL,this.recorder.stopRecording(),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording))}}var Ie=i(3962);class je extends b{static featureName=Ie.TZ;constructor(e,t=!0){if(super(e,Ie.TZ,t),!p.RI||!(0,R.dV)().o.MO)return;const r=ve(this.ee);Ie.tC.forEach((e=>{(0,A.sp)(e,(e=>{a(e)}),!0)}));const n=()=>(0,x.p)("newURL",[(0,S.t)(),""+window.location],void 0,this.featureName,this.ee);r.on("pushState-end",n),r.on("replaceState-end",n);try{this.removeOnAbort=new AbortController}catch(e){}(0,A.sp)("popstate",(e=>(0,x.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)),!0,this.removeOnAbort?.signal);let i=!1;const o=new((0,R.dV)().o.MO)(((e,t)=>{i||(i=!0,requestAnimationFrame((()=>{(0,x.p)("newDom",[(0,S.t)()],void 0,this.featureName,this.ee),i=!1})))})),a=(0,v.s)((e=>{(0,x.p)("newUIEvent",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0})}),100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,{domObserver:o})}}var Pe=i(7378);const Ce={},ke=["appendChild","insertBefore","replaceChild"];function Le(e){const t=function(e){return(e||B.ee).get("jsonp")}(e);if(!p.RI||Ce[t.debugId])return t;Ce[t.debugId]=!0;var r=(0,W.YM)(t),n=/[?&](?:callback|cb)=([^&#]+)/,i=/(.*)\.([^.]+)/,o=/^(\w+)(\.|$)(.*)$/;function a(e,t){if(!e)return t;const r=e.match(o),n=r[1];return a(r[3],t[n])}return r.inPlace(Node.prototype,ke,"dom-"),t.on("dom-start",(function(e){!function(e){if(!e||"string"!=typeof e.nodeName||"script"!==e.nodeName.toLowerCase())return;if("function"!=typeof e.addEventListener)return;var o=(s=e.src,c=s.match(n),c?c[1]:null);var s,c;if(!o)return;var u=function(e){var t=e.match(i);if(t&&t.length>=3)return{key:t[2],parent:a(t[1],window)};return{key:e,parent:window}}(o);if("function"!=typeof u.parent[u.key])return;var d={};function l(){t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,A.jT)(!1)),e.removeEventListener("error",f,(0,A.jT)(!1))}function f(){t.emit("jsonp-error",[],d),t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,A.jT)(!1)),e.removeEventListener("error",f,(0,A.jT)(!1))}r.inPlace(u.parent,[u.key],"cb-",d),e.addEventListener("load",l,(0,A.jT)(!1)),e.addEventListener("error",f,(0,A.jT)(!1)),t.emit("new-jsonp",[e.src],d)}(e[0])})),t}const He={};function De(e){const t=function(e){return(e||B.ee).get("promise")}(e);if(He[t.debugId])return t;He[t.debugId]=!0;var r=t.context,n=(0,W.YM)(t),i=p.gm.Promise;return i&&function(){function e(r){var o=t.context(),a=n(r,"executor-",o,null,!1);const s=Reflect.construct(i,[a],e);return t.context(s).getCtx=function(){return o},s}p.gm.Promise=e,Object.defineProperty(e,"name",{value:"Promise"}),e.toString=function(){return i.toString()},Object.setPrototypeOf(e,i),["all","race"].forEach((function(r){const n=i[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=>{this.resolve(e).then(a("all"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit("propagate",[null,!i],o,!1,!1),i=i||!e}}}})),["resolve","reject"].forEach((function(r){const n=i[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r&&t.emit("propagate",[e,!0],r,!1,!1),r}})),e.prototype=i.prototype;const o=i.prototype.then;i.prototype.then=function(...e){var i=this,a=r(i);a.promise=i,e[0]=n(e[0],"cb-",a,null,!1),e[1]=n(e[1],"cb-",a,null,!1);const s=o.apply(this,e);return a.nextPromise=s,t.emit("propagate",[i,!0],s,!1,!1),s},i.prototype.then[W.Jt]=o,t.on("executor-start",(function(e){e[0]=n(e[0],"resolve-",this,null,!1),e[1]=n(e[1],"resolve-",this,null,!1)})),t.on("executor-err",(function(e,t,r){e[1](r)})),t.on("cb-end",(function(e,r,n){t.emit("propagate",[n,!0],this.nextPromise,!1,!1)})),t.on("propagate",(function(e,r,n){this.getCtx&&!r||(this.getCtx=function(){if(e instanceof Promise)var r=t.context(e);return r&&r.getCtx?r.getCtx():this})}))}(),t}const Me={},Ke="setTimeout",Ue="setInterval",Ve="clearTimeout",Ge="-start",Fe=[Ke,"setImmediate",Ue,Ve,"clearImmediate"];function Be(e){const t=function(e){return(e||B.ee).get("timer")}(e);if(Me[t.debugId]++)return t;Me[t.debugId]=1;var r=(0,W.YM)(t);return r.inPlace(p.gm,Fe.slice(0,2),Ke+"-"),r.inPlace(p.gm,Fe.slice(2,3),Ue+"-"),r.inPlace(p.gm,Fe.slice(3),Ve+"-"),t.on(Ue+Ge,(function(e,t,n){e[0]=r(e[0],"fn-",null,n)})),t.on(Ke+Ge,(function(e,t,n){this.method=n,this.timerDuration=isNaN(e[1])?0:+e[1],e[0]=r(e[0],"fn-",this,n)})),t}const We={};function ze(e){const t=function(e){return(e||B.ee).get("mutation")}(e);if(!p.RI||We[t.debugId])return t;We[t.debugId]=!0;var r=(0,W.YM)(t),n=p.gm.MutationObserver;return n&&(window.MutationObserver=function(e){return this instanceof n?new n(r(e,"fn-")):n.apply(this,arguments)},MutationObserver.prototype=n.prototype),t}const{TZ:qe,d3:Ze,Kp:Ye,$p:Xe,wW:Je,e5:Qe,tH:$e,uP:et,rw:tt,Lc:rt}=Pe;class nt extends b{static featureName=qe;constructor(e,t=!0){if(super(e,qe,t),!p.RI)return;try{this.removeOnAbort=new AbortController}catch(e){}let r,n=0;const i=this.ee.get("tracer"),o=Le(this.ee),a=De(this.ee),s=Be(this.ee),c=Z(this.ee),u=this.ee.get("events"),d=ne(this.ee),l=ve(this.ee),f=ze(this.ee);function h(e,t){l.emit("newURL",[""+window.location,t])}function g(){n++,r=window.location.hash,this[et]=(0,S.t)()}function m(){n--,window.location.hash!==r&&h(0,!0);var e=(0,S.t)();this[Qe]=~~this[Qe]+e-this[et],this[rt]=e}function v(e,t){e.on(t,(function(){this[t]=(0,S.t)()}))}this.ee.on(et,g),a.on(tt,g),o.on(tt,g),this.ee.on(rt,m),a.on(Je,m),o.on(Je,m),this.ee.on("fn-err",((...t)=>{t[2]?.__newrelic?.[e.agentIdentifier]||(0,x.p)("function-err",[...t],void 0,this.featureName,this.ee)})),this.ee.buffer([et,rt,"xhr-resolved"],this.featureName),u.buffer([et],this.featureName),s.buffer(["setTimeout"+Ye,"clearTimeout"+Ze,et],this.featureName),c.buffer([et,"new-xhr","send-xhr"+Ze],this.featureName),d.buffer([$e+Ze,$e+"-done",$e+Xe+Ze,$e+Xe+Ye],this.featureName),l.buffer(["newURL"],this.featureName),f.buffer([et],this.featureName),a.buffer(["propagate",tt,Je,"executor-err","resolve"+Ze],this.featureName),i.buffer([et,"no-"+et],this.featureName),o.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"],this.featureName),v(d,$e+Ze),v(d,$e+"-done"),v(o,"new-jsonp"),v(o,"jsonp-end"),v(o,"cb-start"),l.on("pushState-end",h),l.on("replaceState-end",h),window.addEventListener("hashchange",h,(0,A.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("load",h,(0,A.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("popstate",(function(){h(0,n>1)}),(0,A.jT)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var it=i(3333);class ot extends b{static featureName=it.TZ;constructor(e,t=!0){super(e,it.TZ,t);const r=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.user_actions.enabled];p.RI&&e.init.user_actions.enabled&&(it.Zp.forEach((e=>(0,A.sp)(e,(e=>(0,x.p)("ua",[e],void 0,this.featureName,this.ee)),!0))),it.qN.forEach((e=>(0,A.sp)(e,(e=>(0,x.p)("ua",[e],void 0,this.featureName,this.ee)))))),r.some((e=>e))?this.importAggregator(e):this.deregisterDrain()}}var at=i(993),st=i(3785);class ct extends b{static featureName=at.TZ;constructor(e,t=!0){super(e,at.TZ,t);const r=this.ee;this.ee.on("wrap-logger-end",(function([e]){const{level:t,customAttributes:n}=this;(0,st.R)(r,e,n,t)})),this.importAggregator(e)}}new class extends o{constructor(t,r){super(r),p.gm?(this.features={},(0,R.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(w),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,d.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=>!(e in this.features)));n.length>0&&(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,R.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[he,w,N,Ne,_e,_,D,ot,ct,je,nt],loaderType:"spa"})})()})();</script> <meta name="title" content="Bestsellers | IEC"/> <meta name="keywords" content="Magento, Varien, E-commerce"/> <meta name="robots" content="INDEX,FOLLOW"/> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/> <title>Bestsellers | IEC</title> <link rel="stylesheet" type="text/css" media="all" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/css/styles.css" /> <link rel="canonical" href="https://webstore.iec.ch/en/bestsellers/" /> <link rel="icon" type="image/x-icon" href="https://webstore.iec.ch/media/favicon/default/Logo_IEC.png" /> <link rel="shortcut icon" type="image/x-icon" href="https://webstore.iec.ch/media/favicon/default/Logo_IEC.png" /> <!--cUA5Hje4CO1jeF7wcVgncD0DzDIrdNff--> <!-- CookiePro Cookies Consent Notice start for webstore.iec.ch --><script src="https://cookie-cdn.cookiepro.com/scripttemplates/otSDKStub.js" data-language="en" type="text/javascript" charset="UTF-8" data-domain-script="d9f83eeb-bfd9-465a-a274-ab35bef1a0f8" ></script><script type="text/javascript"> function OptanonWrapper() { }</script><!-- CookiePro Cookies Consent Notice end for webstore.iec.ch --> <div id="iec-one-trust-matomo" x-data="oneTrustMatomo()"></div><script> function oneTrustMatomo() { const mapping = { C0004: 'ad_storage', C0002: 'analytics_storage', C0003: 'functionality_storage', }; const consentObject = { ad_storage: 'denied', analytics_storage: 'granted', functionality_storage: 'denied', security_storage: 'granted', }; return { isOneTrust: true, push() { const activeGroups = this.getActiveGroups() const groups = ',' + activeGroups.toString() + ',' const events = [ { event: "OneTrustLoaded", OnetrustActiveGroups: groups }, { event: "OptanonLoaded", OptanonActiveGroups: groups } ] this.dispatchEvents(events) }, pushConsentEvents(groups) { var _paq = window._paq = window._paq || []; var _mtm = window._mtm = window._mtm || []; }, dispatchEvents(events) { var _paq = window._paq = window._paq || []; var _mtm = window._mtm = window._mtm || []; events.forEach(event => { _mtm.push(event) }) }, getActiveGroups() { let activeGroups = [] const oneTrustConsent = decodeURIComponent(hyva.getCookie('OptanonConsent') || ''); if (oneTrustConsent == undefined || oneTrustConsent == '') { return [] } const splitConsent = oneTrustConsent.split('&'); const groups = splitConsent.find(param => param.includes('groups=')); const values = groups.split('=')[1]; const individualValues = values.split(','); individualValues.forEach(value => { const mapValue = value.split(':')[0]; const consentValue = value.split(':')[1]; if (consentValue === '1') { activeGroups.push(mapValue) } }); return activeGroups }, init() { setTimeout(() => { this.isOneTrust = (typeof OneTrust === 'undefined') ? false : true; if (this.isOneTrust){ if (hyva.getCookie('OptanonAlertBoxClosed')) { this.push(); } else { let interval = setInterval(() => { if (hyva.getCookie('OptanonAlertBoxClosed')) { this.push(); clearInterval(interval); } }, 1000); } } else { this.push(); } }, "3000") window.addEventListener('consent.onetrust', (e) => { let OnetrustActiveGroups = window.OnetrustActiveGroups = window.OnetrustActiveGroups || []; let OptanonActiveGroups = window.OptanonActiveGroups = window.OptanonActiveGroups || []; const events = [ { event: "OneTrustLoaded", OnetrustActiveGroups: OnetrustActiveGroups }, { event: "OptanonLoaded", OptanonActiveGroups: OptanonActiveGroups } ] this.dispatchEvents(events) }); window.addEventListener('OneTrustGroupsUpdated', (e) => { let OnetrustActiveGroups = window.OnetrustActiveGroups = window.OnetrustActiveGroups || []; let OptanonActiveGroups = window.OptanonActiveGroups = window.OptanonActiveGroups || []; const events = [ { event: "OneTrustGroupsUpdated", OptanonActiveGroups: OptanonActiveGroups } ] this.dispatchEvents(events) }); } } }</script> <link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-100.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-100.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-100italic.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-100italic.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-200.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-200.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-200italic.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-200italic.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-300.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-300.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-300italic.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-300italic.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-500.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-500.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-500italic.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-500italic.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-600.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-600.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-600italic.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-600italic.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-700.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-700.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-700italic.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-700italic.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-800.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-800.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-800italic.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-800italic.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-900.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-900.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-900italic.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-900italic.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-italic.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-italic.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-regular.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-condensed-v27-latin-regular.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-v30-latin-100.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-v30-latin-100.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-v30-latin-100italic.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-v30-latin-100italic.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-v30-latin-300.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-v30-latin-300.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-v30-latin-300italic.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-v30-latin-300italic.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-v30-latin-500.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-v30-latin-500.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-v30-latin-500italic.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-v30-latin-500italic.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-v30-latin-700.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-v30-latin-700.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-v30-latin-700italic.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-v30-latin-700italic.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-v30-latin-900.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-v30-latin-900.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-v30-latin-900italic.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-v30-latin-900italic.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-v30-latin-italic.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-v30-latin-italic.woff2" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-v30-latin-regular.ttf" crossorigin><link rel="preload" as="font" type="font/woff" href="https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/default/fonts/roboto-v30-latin-regular.woff2" crossorigin><script type="text&#x2F;javascript" src="https&#x3A;&#x2F;&#x2F;chimpstatic.com&#x2F;mcjs-connected&#x2F;js&#x2F;users&#x2F;bac9e60f5454042ad8655a825&#x2F;02c1dd9a0da1c9ac94c4e40f1.js" defer="defer"> </script> <script type="text/javascript" > var eventNames = [ "wheel", "touchstart", "mouseover", "scroll", "keydown" ]; function addMultiEventListener(element, eventNames, listener) { for (var i=0, iLen=eventNames.length; i<iLen; i++) { element.addEventListener(eventNames[i], listener, true); } } function removeMultiEventListener(element, eventNames, listener) { for (var i=0, iLen=eventNames.length; i<iLen; i++) { element.removeEventListener(eventNames[i], listener, true); } } var isMtmLoaded = false; const loadMtmScript = () => { if (!isMtmLoaded){ var _mtm = window._mtm = window._mtm || []; var mtmData; _mtm.push({'mtm.startTime': (new Date().getTime()), 'event': 'mtm.Start'}); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.async=true; g.onload = () => { let product = []; if (typeof require !== 'undefined') { products = document.querySelectorAll('.products [id^="product-item"]'); } else { products = document.querySelectorAll('.product-slider a.product, .products a.product'); } if (products.length) { products.forEach(function(product) { product.addEventListener('click', function(event, s) { const regex = /_(\d+)$/; let productId = ''; if (product.id) { const matches = product.id.match(regex); if (matches.length) { productId = matches[1]; } } else { if (product.parentElement) { let parentElementNode = product.parentElement.nodeName.toLowerCase(); if (parentElementNode == 'form') { productId = product.parentElement.querySelector('input[name="product"]').value; } } } if (productId) { const productData = window['JAJUMA_MATOMO_PRODUCT_DATA_ID_' + productId] || {}; productData.item_id = productId; mtmData = { 'event': 'click_product', 'ecommerce': { 'items': [productData] } } _mtm.push(mtmData); } }) }) } const categoryData = {"breadcrumb":["Bestsellers"],"category_id":"8","category_name":"Bestsellers","size":0,"page_path":"https:\/\/webstore.iec.ch\/en\/bestsellers\/","page_title":null,"page_type":"category","virtual_page":""}; mtmData = { 'event': 'view_category', 'ecommerce': { 'items': [categoryData] } } _mtm.push(mtmData); if (typeof require !== 'undefined') { require(['Magento_Customer/js/customer-data'], function(customerData) { let sectionData = customerData.get('cart'); sectionData.subscribe(function (cartValue) { if (cartValue.mtmUpdateCart) { mtmData = { 'event': cartValue.mtmUpdateCart.event, 'ecommerce': { 'items': cartValue.mtmUpdateCart.item, 'qty': cartValue.mtmUpdateCart.qty } } _mtm.push(mtmData); } }); }); } else { window.addEventListener("private-content-loaded", event => { const sectionData = event.detail.data; if (sectionData) { const cart = sectionData.cart; if (!cart.triggered) { if (cart.mtmUpdateCart) { mtmData = { 'event': cart.mtmUpdateCart.event, 'ecommerce': { 'items': cart.mtmUpdateCart.item, 'qty': cart.mtmUpdateCart.qty } } _mtm.push(mtmData); } sectionData.cart.triggered = true; } } }); } } g.src='https://ruby.ops.iec.ch/js/container_K5OmuT3b.js'; s.parentNode.insertBefore(g,s); removeMultiEventListener(window, eventNames, loadMtmScript); } else { removeMultiEventListener(window, eventNames, loadMtmScript); } } loadMtmScript(); </script> <script> var BASE_URL = 'https://webstore.iec.ch/en/'; var THEME_PATH = 'https://webstore.iec.ch/static/version1724834898/frontend/Iec/default/en_US'; var COOKIE_CONFIG = { "expires": null, "path": "\u002F", "domain": ".webstore.iec.ch", "secure": false, "lifetime": "72000", "cookie_restriction_enabled": false }; var CURRENT_STORE_CODE = 'en'; var CURRENT_WEBSITE_ID = '3'; window.hyva = window.hyva || {} window.cookie_consent_groups = window.cookie_consent_groups || {} window.cookie_consent_groups['necessary'] = true; window.cookie_consent_config = window.cookie_consent_config || {}; window.cookie_consent_config['necessary'] = [].concat( window.cookie_consent_config['necessary'] || [], [ 'user_allowed_save_cookie', 'form_key', 'mage-messages', 'private_content_version', 'mage-cache-sessid', 'last_visited_store', 'section_data_ids' ] );</script> <script> 'use strict'; (function( hyva, undefined ) { function lifetimeToExpires(options, defaults) { var lifetime = options.lifetime || defaults.lifetime; if (lifetime) { var date = new Date; date.setTime(date.getTime() + lifetime * 1000); return date; } return null; } function generateRandomString() { const allowedCharacters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', length = 16; let formKey = '', charactersLength = allowedCharacters.length; for (var i = 0; i < length; i++) { formKey += allowedCharacters[Math.round(Math.random() * (charactersLength - 1))] } return formKey; } const cookieTempStorage = {}; const internalCookie = { get(name) { const v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)'); return v ? v[2] : null; }, set(name, value, days, skipSetDomain) { let expires, path, domain, secure, samesite; const defaultCookieConfig = { expires: null, path: '/', domain: null, secure: false, lifetime: null, samesite: 'lax' }; const cookieConfig = window.COOKIE_CONFIG || {}; expires = days ? lifetimeToExpires({lifetime: 24 * 60 * 60 * days, expires: null}, defaultCookieConfig) : lifetimeToExpires(window.COOKIE_CONFIG, defaultCookieConfig) || defaultCookieConfig.expires; path = cookieConfig.path || defaultCookieConfig.path; domain = !skipSetDomain && (cookieConfig.domain || defaultCookieConfig.domain); secure = cookieConfig.secure || defaultCookieConfig.secure; samesite = cookieConfig.samesite || defaultCookieConfig.samesite; document.cookie = name + "=" + encodeURIComponent(value) + (expires ? '; expires=' + expires.toGMTString() : '') + (path ? '; path=' + path : '') + (domain ? '; domain=' + domain : '') + (secure ? '; secure' : '') + (samesite ? '; samesite=' + samesite : 'lax'); }, isWebsiteAllowedToSaveCookie() { const allowedCookies = this.get('user_allowed_save_cookie'); if (allowedCookies) { const allowedWebsites = JSON.parse(unescape(allowedCookies)); return allowedWebsites[CURRENT_WEBSITE_ID] === 1; } return false; }, getGroupByCookieName(name) { const cookieConsentConfig = window.cookie_consent_config || {}; let group = null; for (let prop in cookieConsentConfig) { if (!cookieConsentConfig.hasOwnProperty(prop)) continue; if (cookieConsentConfig[prop].includes(name)) { group = prop; break; } } return group; }, isCookieAllowed(name) { const cookieGroup = this.getGroupByCookieName(name); return cookieGroup ? window.cookie_consent_groups[cookieGroup] : this.isWebsiteAllowedToSaveCookie(); }, saveTempStorageCookies() { for (const [name, data] of Object.entries(cookieTempStorage)) { if (this.isCookieAllowed(name)) { this.set(name, data['value'], data['days'], data['skipSetDomain']); delete cookieTempStorage[name]; } } } }; hyva.getCookie = (name) => { const cookieConfig = window.COOKIE_CONFIG || {}; if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) { return cookieTempStorage[name] ? cookieTempStorage[name]['value'] : null; } return internalCookie.get(name); } hyva.setCookie = (name, value, days, skipSetDomain) => { const cookieConfig = window.COOKIE_CONFIG || {}; if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) { cookieTempStorage[name] = {value, days, skipSetDomain}; return; } return internalCookie.set(name, value, days, skipSetDomain); } hyva.getBrowserStorage = () => { const browserStorage = window.localStorage || window.sessionStorage; if (!browserStorage) { console.warn('Browser Storage is unavailable'); return false; } try { browserStorage.setItem('storage_test', 1); browserStorage.removeItem('storage_test'); } catch (error) { console.warn('Browser Storage is not accessible', error); return false; } return browserStorage; } hyva.postForm = (postParams) => { const form = document.createElement("form"); let data = postParams.data; if (! postParams.skipUenc && ! data.uenc) { data.uenc = btoa(window.location.href); } form.method = "POST"; form.action = postParams.action; Object.keys(postParams.data).map(key => { const field = document.createElement("input"); field.type = 'hidden' field.value = postParams.data[key]; field.name = key; form.appendChild(field); }); const form_key = document.createElement("input"); form_key.type = 'hidden'; form_key.value = hyva.getFormKey(); form_key.name="form_key"; form.appendChild(form_key); document.body.appendChild(form); form.submit(); } hyva.getFormKey = function () { let formKey = hyva.getCookie('form_key'); if (!formKey) { formKey = generateRandomString(); hyva.setCookie('form_key', formKey); } return formKey; } hyva.formatPrice = (value, showSign) => { var formatter = new Intl.NumberFormat( 'en\u002DUS', { style: 'currency', currency: 'CHF', signDisplay: showSign ? "always" : "auto" } ); return (typeof Intl.NumberFormat.prototype.formatToParts === 'function') ? formatter.formatToParts(value).map(({type, value}) => { switch (type) { case 'currency': return 'CHF' || value; case 'minusSign': return '- '; case 'plusSign': return '+ '; default : return value; } }).reduce((string, part) => string + part) : formatter.format(value); } const formatStr = function (str, nStart) { const args = Array.from(arguments).slice(2); return str.replace(/(%+)([0-9]+)/g, (m, p, n) => { const idx = parseInt(n) - nStart; if (args[idx] === null || args[idx] === void 0) { return m; } return p.length % 2 ? p.slice(0, -1).replace('%%', '%') + args[idx] : p.replace('%%', '%') + n; }) } hyva.str = function (string) { const args = Array.from(arguments); args.splice(1, 0, 1); return formatStr.apply(undefined, args); } hyva.strf = function () { const args = Array.from(arguments); args.splice(1, 0, 0); return formatStr.apply(undefined, args); } /** * Take a html string as `content` parameter and * extract an element from the DOM to replace in * the current page under the same selector, * defined by `targetSelector` */ hyva.replaceDomElement = (targetSelector, content) => { const parser = new DOMParser(); const doc = parser.parseFromString(content, 'text/html'); const contentNode = doc.querySelector(targetSelector); if (!contentNode) { return; } const tmpScripts = contentNode.getElementsByTagName('script'); if (tmpScripts.length > 0) { const scripts = []; for (let i = 0; i < tmpScripts.length; i++) { scripts.push(tmpScripts[i]); } for (let i = 0; i < scripts.length; i++) { let script = document.createElement('script'); script.innerHTML = scripts[i].innerHTML; document.head.appendChild(script); scripts[i].parentNode.removeChild(scripts[i]); } } document.querySelector(targetSelector).replaceWith(contentNode); window.dispatchEvent(new CustomEvent("reload-customer-section-data")); hyva.initMessages(); } const replace = {['+']: '-', ['/']: '_', ['=']: ','}; hyva.getUenc = () => btoa(window.location.href).replace(/[+/=]/g, match => replace[match]); let currentTrap; const focusableElements = (rootElement) => { const selector = 'button, [href], input, select, textarea, details'; return Array.from(rootElement.querySelectorAll(selector)) .filter(el => el.style.display !== 'none' && !el.disabled && el.tabIndex !== -1) } const focusTrap = (e) => { const isTabPressed = e.key === 'Tab' || e.keyCode === 9; if (!isTabPressed) return; const focusable = focusableElements(currentTrap) const firstFocusableElement = focusable[0] const lastFocusableElement = focusable[focusable.length - 1] e.shiftKey ? document.activeElement === firstFocusableElement && (lastFocusableElement.focus(), e.preventDefault()) : document.activeElement === lastFocusableElement && (firstFocusableElement.focus(), e.preventDefault()) }; hyva.releaseFocus = (rootElement) => { if (currentTrap && (!rootElement || rootElement === currentTrap)) { currentTrap.removeEventListener('keydown', focusTrap) currentTrap = null } } hyva.trapFocus = (rootElement) => { if (!rootElement) return; hyva.releaseFocus() currentTrap = rootElement rootElement.addEventListener('keydown', focusTrap) const firstElement = focusableElements(rootElement)[0] firstElement && firstElement.focus() } window.addEventListener('user-allowed-save-cookie', () => internalCookie.saveTempStorageCookies()) }( window.hyva = window.hyva || {} ));</script> <script> (() => { const origFormatPrice = hyva.formatPrice; hyva.formatPrice = function (value, showSign) { let price = origFormatPrice.call(null, value, showSign) if (true) { price = price.replace('.00', '.-').replace(',', "'") } return price } })()</script></head><body id="html-body" class="page-with-filter page-products categorypath-bestsellers category-bestsellers catalog-category-view page-layout-1column"><input name="form_key" type="hidden" value="fI5MxR68EQxUiMVE" /> <div class="page-wrapper"><header class="page-header"> <a class="action skip sr-only focus:not-sr-only focus:absolute focus:z-40 focus:bg-white contentarea" href="#contentarea"><span> Skip to content</span></a> <script> function initHeader () { return { searchOpen: false, cart: {}, isCartOpen: false, getData(data) { if (data.cart) { this.cart = data.cart } }, isCartEmpty() { return !this.cart.summary_count }, toggleCart(event) { if (event.detail && event.detail.isOpen !== undefined) { this.isCartOpen = event.detail.isOpen if (!this.isCartOpen && this.$refs && this.$refs.cartButton) { this.$refs.cartButton.focus() } } else { this.isCartOpen = true } } } } function initCompareHeader() { return { compareProducts: null, itemCount: 0, receiveCompareData(data) { if (data['compare-products']) { this.compareProducts = data['compare-products']; this.itemCount = this.compareProducts.count; } } } }</script><div id="header" class="header-top relative z-30 w-full" x-data="initHeader()" @private-content-loaded.window="getData(event.detail.data)" ><div class="header-top-container container flex lg:flex-wrap items-center justify-between w-full px-6 py-6 mx-auto mt-0"><!--Logo--> <div class="order-1 sm:order-2 lg:order-1 w-full lg:pb-2 sm:w-auto sm:pb-0"><a class="flex items-center no-underline hover:no-underline gap-2" href="https://webstore.iec.ch/en/" ><img alt="IEC" src="https&#x3A;&#x2F;&#x2F;webstore.iec.ch&#x2F;static&#x2F;version1724834898&#x2F;frontend&#x2F;Iec&#x2F;default&#x2F;default&#x2F;images&#x2F;logo.svg"><span class="hidden md:block leading-[122%]">International<br>Electrotechnical<br>Commission</span> </a></div> <!--Main Navigation--> <div class="header-actions flex items-center order-3"><div class="header-action hidden lg:block"> </div><!--Customer Icon & Dropdown--> <div class="header-action relative inline-block md:px-5 md:py-2" x-data="{ open: false }" @keyup.escape="open = false" ><button type="button" href="https&#x3A;&#x2F;&#x2F;webstore.iec.ch&#x2F;en&#x2F;customer&#x2F;account&#x2F;" id="customer-menu" class="block hover:text-black flex items-center" @click="open = !open" @click.outside="open = false" :aria-expanded="open ? 'true' : 'false'" aria-label="Log&#x20;in" aria-haspopup="true" ><svg class="action-icon" width="16" height="20" viewBox="0 0 16 20"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.00004 2C6.34319 2 5.00005 3.34315 5.00005 5C5.00005 6.65685 6.34319 8 8.00004 8C9.6569 8 11 6.65685 11 5C11 3.34315 9.6569 2 8.00004 2ZM3.00005 5C3.00005 2.23858 5.23862 0 8.00004 0C10.7615 0 13 2.23858 13 5C13 7.76142 10.7615 10 8.00004 10C5.23862 10 3.00005 7.76142 3.00005 5ZM4.12936 12.9999C4.06672 12.9952 4.02946 12.9962 3.79179 13.0143C3.7265 13.0192 3.68022 13.0254 3.64377 13.032C2.82299 13.1806 2.18062 13.8229 2.03204 14.6437C2.00408 14.7982 2.00005 15.0048 2.00005 15.6841V17.4C2.00005 17.6965 2.00082 17.8588 2.01035 17.9754C2.01073 17.98 2.01111 17.9844 2.01149 17.9885C2.01564 17.9889 2.02004 17.9893 2.02468 17.9897C2.14126 17.9992 2.30352 18 2.60005 18H13.4C13.6966 18 13.8588 17.9992 13.9754 17.9897C13.9801 17.9893 13.9844 17.9889 13.9886 17.9885C13.989 17.9844 13.9894 17.98 13.9897 17.9754C13.9993 17.8588 14 17.6965 14 17.4V15.6787C14 15.0048 13.9961 14.7997 13.9686 14.6465C13.8208 13.8235 13.1766 13.1793 12.3536 13.0315C12.3183 13.0252 12.2729 13.0192 12.2085 13.0143C11.9705 12.9962 11.9332 12.9952 11.8706 12.9999C11.8115 13.0043 11.7865 13.0079 11.7709 13.0107M11.6749 13.0343C11.6746 13.0344 11.6615 13.0385 11.6303 13.0506C11.594 13.0646 11.5444 13.0851 11.4759 13.1147C11.337 13.1747 11.1506 13.2592 10.8859 13.3791C10.0047 13.7783 9.02691 14 8.00005 14C6.97318 14 5.9954 13.7783 5.11422 13.3791C4.84946 13.2591 4.663 13.1747 4.52418 13.1147C4.4556 13.0851 4.40601 13.0646 4.36971 13.0506C4.33893 13.0386 4.32579 13.0345 4.32509 13.0342C4.32492 13.0342 4.32543 13.0343 4.32654 13.0347C4.26953 13.0186 4.2448 13.0134 4.22912 13.0106C4.21344 13.0079 4.18843 13.0043 4.12936 12.9999M3.67008 11.0177C3.87027 11.0024 4.05136 10.9885 4.27794 11.0054C4.50089 11.022 4.65433 11.0491 4.86949 11.1098C5.09002 11.172 5.41329 11.3186 5.83153 11.5083C5.86684 11.5244 5.90283 11.5407 5.9395 11.5573C6.56655 11.8413 7.26342 12 8.00005 12C8.73668 12 9.43355 11.8413 10.0606 11.5573C10.0973 11.5407 10.1332 11.5244 10.1686 11.5083C10.5868 11.3186 10.91 11.172 11.1304 11.1098C11.3456 11.0491 11.4988 11.0221 11.7217 11.0054C11.9482 10.9885 12.1294 11.0024 12.3297 11.0177C12.3398 11.0185 12.3499 11.0192 12.3601 11.02C12.4769 11.0289 12.5915 11.0422 12.7071 11.063C14.3531 11.3586 15.6415 12.647 15.9371 14.293C16.0004 14.6457 16.0003 15.0458 16.0001 15.5854C16.0001 15.616 16 15.6471 16 15.6787L16 17.4319C16.0001 17.6843 16.0001 17.9301 15.9831 18.1382C15.9644 18.3668 15.9204 18.6366 15.7821 18.908C15.5903 19.2843 15.2843 19.5903 14.908 19.782C14.6366 19.9203 14.3669 19.9644 14.1383 19.9831C13.9301 20.0001 13.6843 20 13.432 20H2.56813C2.31575 20 2.06997 20.0001 1.86182 19.9831C1.63322 19.9644 1.36349 19.9203 1.09206 19.782C0.715742 19.5903 0.40978 19.2843 0.218032 18.908C0.0797348 18.6366 0.0356673 18.3668 0.0169905 18.1382C-1.67172e-05 17.9301 1.27267e-05 17.6843 4.26482e-05 17.4319L4.52708e-05 15.6841C4.52708e-05 15.6523 3.35883e-05 15.6209 2.21442e-05 15.59C-0.000179916 15.0461 -0.000329882 14.6429 0.0640248 14.2874C0.361203 12.6459 1.64594 11.3612 3.28748 11.064C3.40486 11.0427 3.52098 11.0291 3.63981 11.0201C3.64995 11.0193 3.66004 11.0185 3.67008 11.0177Z"/></svg> <span class="hidden md:block action-label ml-2">Log in</span> </button> <nav class="header-floating-menu" x-cloak x-show="open" aria-labelledby="customer-menu" @click.outside="open = false" > <a class="floating-menu-item" onclick="hyva.setCookie && hyva.setCookie('login_redirect', window.location.href, 1)" href="https://webstore.iec.ch/en/customer/account/index/" >Log in</a> <a class="floating-menu-item" href="https://webstore.iec.ch/en/customer/account/create/" >Create an account</a> </nav></div> <!--Cart Icon--> <button id="menu-cart-icon" class="header-action relative no-underline hover:text-black flex items-center md:px-5 md:py-2" x-ref="cartButton" :aria-disabled="isCartEmpty()" title="Cart" @click.prevent.stop="() => { $dispatch('toggle-cart', { isOpen: true }) }" @toggle-cart.window="toggleCart($event)" :aria-expanded="isCartOpen" aria-haspopup="dialog" ><span class="sr-only label" x-text="` Toggle minicart, ${isCartEmpty() ? 'Cart is empty' : hyva.str( 'You have %1 product%2 in your cart.', cart.summary_count, cart.summary_count === 1 ? '' : 's' )}` " ></span> <div class="minicart-icon-count"><svg class="action-icon" width="20" height="20" viewBox="0 0 20 20"><path fill-rule="evenodd" clip-rule="evenodd" d="M0 1C0 0.447715 0.447715 0 1 0H4C4.49357 0 4.91332 0.360111 4.98837 0.847943L5.16561 2H19C19.3138 2 19.6094 2.14729 19.7983 2.3978C19.9873 2.64832 20.0477 2.973 19.9615 3.27472L17.9615 10.2747C17.8389 10.704 17.4465 11 17 11H6.55023L6.85792 13H18C18.5523 13 19 13.4477 19 14C19 14.5523 18.5523 15 18 15H6C5.50643 15 5.08668 14.6399 5.01163 14.1521L4.41534 10.2762C4.3926 10.1969 4.37941 10.1136 4.37708 10.0275L3.33844 3.27636C3.31566 3.19696 3.30245 3.11351 3.30013 3.02734L3.14208 2H1C0.447715 2 0 1.55228 0 1ZM5.4733 4L6.24253 9H16.2457L17.6743 4H5.4733ZM4 18C4 16.8954 4.89543 16 6 16C7.10457 16 8 16.8954 8 18C8 19.1046 7.10457 20 6 20C4.89543 20 4 19.1046 4 18ZM15 18C15 16.8954 15.8954 16 17 16C18.1046 16 19 16.8954 19 18C19 19.1046 18.1046 20 17 20C15.8954 20 15 19.1046 15 18Z" /></svg><span x-text="cart.summary_count" x-show="!isCartEmpty()" x-cloak class=" absolute top-0 right-0 h-5 px-2 py-1 -mt-5 -mr-4 text-xs font-semibold leading-none text-center text-white uppercase transform -translate-x-1 translate-y-1/2 rounded-full bg-primary minicart-count" aria-hidden="true" ></span></div><span class="hidden md:block action-label ml-2">Cart</span> </button> <div class="header-action md:mx-5 lg:mr-0 md:py-2"><a class="flex items-center" href="https://webstore.iec.ch/en/faq/"><svg class="action-icon" width="21" height="20" viewBox="0 0 21 20"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.0039 2C5.58562 2 2.00391 5.58172 2.00391 10C2.00391 11.2793 2.30344 12.4857 2.83529 13.5557C3.12746 14.1435 3.11277 14.8627 3.05087 15.4216C2.98375 16.0276 2.83109 16.6733 2.66786 17.2455C2.59246 17.5098 2.51302 17.7645 2.43542 18H10.0039C14.4222 18 18.0039 14.4183 18.0039 10C18.0039 5.58172 14.4222 2 10.0039 2ZM0.0818213 18.6147L0.0843357 18.6086L0.0955591 18.5812C0.105683 18.5563 0.120919 18.5184 0.140367 18.4692C0.179291 18.3707 0.234914 18.2269 0.300067 18.05C0.43092 17.6945 0.597591 17.2121 0.744596 16.6968C0.89316 16.1761 1.0133 15.6504 1.06302 15.2014C1.08779 14.9778 1.0926 14.7943 1.08173 14.6526C1.07639 14.583 1.06781 14.5311 1.05914 14.4946C1.05096 14.4601 1.04423 14.4457 1.04425 14.4457C0.377978 13.1053 0.00390625 11.595 0.00390625 10C0.00390625 4.47715 4.48105 0 10.0039 0C15.5267 0 20.0039 4.47715 20.0039 10C20.0039 15.5228 15.5267 20 10.0039 20H1.00471C0.670386 20 0.358099 19.8329 0.172627 19.5548C-0.0127871 19.2767 -0.0470271 18.9244 0.0813612 18.6158L0.0818213 18.6147ZM10.1445 7.01797C9.8539 6.96813 9.55508 7.02274 9.30092 7.17211C9.04676 7.32148 8.85366 7.55598 8.75583 7.83408C8.57256 8.35507 8.00165 8.62884 7.48066 8.44557C6.95967 8.2623 6.68589 7.69138 6.86917 7.17039C7.12373 6.44674 7.62619 5.83653 8.28755 5.44784C8.94891 5.05915 9.72649 4.91707 10.4826 5.04676C11.2387 5.17645 11.9244 5.56954 12.4185 6.1564C12.9124 6.74313 13.1828 7.48568 13.1817 8.25261C13.1813 9.53238 12.2346 10.3551 11.6123 10.77C11.2706 10.9978 10.9361 11.1643 10.6909 11.2733C10.5668 11.3284 10.4621 11.3704 10.386 11.3994C10.3479 11.4139 10.3167 11.4252 10.2937 11.4334L10.2652 11.4434L10.2558 11.4466L10.2523 11.4478L10.2509 11.4483C10.2506 11.4484 10.2496 11.4487 9.93342 10.5L10.2496 11.4487C9.7257 11.6233 9.15938 11.3402 8.98474 10.8162C8.81015 10.2925 9.09306 9.72635 9.61666 9.55149L9.61536 9.55193L9.62366 9.549C9.63354 9.54549 9.65067 9.53928 9.67403 9.53038C9.72091 9.51252 9.79182 9.48423 9.87858 9.44567C10.0549 9.36728 10.2825 9.25281 10.5029 9.10587C11.0046 8.77142 11.1817 8.47025 11.1817 8.25168L11.1817 8.25019C11.1822 7.95538 11.0783 7.66994 10.8884 7.44441C10.6986 7.21887 10.435 7.06781 10.1445 7.01797ZM8.96094 13.5C8.96094 12.9477 9.40865 12.5 9.96094 12.5H9.97094C10.5232 12.5 10.9709 12.9477 10.9709 13.5C10.9709 14.0523 10.5232 14.5 9.97094 14.5H9.96094C9.40865 14.5 8.96094 14.0523 8.96094 13.5Z" /></svg><span class="hidden md:block action-label ml-2">Help</span></a></div> <nav x-data="initMenuMobile_67478a74dd1f2()" @load.window="setActiveMenu($root)" @keydown.window.escape="closeMenu()" class="navigation header-action z-20 lg:hidden" aria-label="Site&#x20;navigation" role="navigation" ><!-- mobile --><button x-ref="mobileMenuTrigger" @click="openMenu()" class="header-icon block" :class="{'overflow-x-hidden overflow-y-auto fixed top-0 left-0 w-full' : open}" type="button" aria-label="Open&#x20;menu" aria-haspopup="menu" :aria-expanded="open" :hidden="open" ><div class="menu-toggle-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="20" viewBox="0 0 24 20" fill="none" aria-hidden="false"><path fill-rule="evenodd" clip-rule="evenodd" d="M0 10C0 9.44772 0.413276 9 0.923077 9H23.0769C23.5867 9 24 9.44772 24 10C24 10.5523 23.5867 11 23.0769 11H0.923077C0.413276 11 0 10.5523 0 10Z" fill="#0060AA"/><path fill-rule="evenodd" clip-rule="evenodd" d="M0 2C0 1.44772 0.413276 1 0.923077 1H23.0769C23.5867 1 24 1.44772 24 2C24 2.55228 23.5867 3 23.0769 3H0.923077C0.413276 3 0 2.55228 0 2Z" fill="#0060AA"/><path fill-rule="evenodd" clip-rule="evenodd" d="M0 18C0 17.4477 0.413276 17 0.923077 17H23.0769C23.5867 17 24 17.4477 24 18C24 18.5523 23.5867 19 23.0769 19H0.923077C0.413276 19 0 18.5523 0 18Z" fill="#0060AA"/></svg></div></button> <div x-ref="mobileMenuNavLinks" class="nav-mobile fixed top-0 right-0 w-full h-full p-1 flex flex-col border-t border-container bg-container-lighter overflow-y-auto overflow-x-hidden z-30 " :class="{ 'hidden' : !open }" :aria-hidden="open ? 'false' : 'true'" role="dialog" aria-modal="true" ><ul class="flex flex-col gap-y-1 mt-16 grow" aria-label="Site&#x20;navigation&#x20;links" > <li data-child-id="category-node-6-main" class="level-0" ><div class="flex items-center transition-transform duration-150 ease-in-out transform" :class="{ '-translate-x-full' : mobilePanelActiveId, 'translate-x-0' : !mobilePanelActiveId }" ><a class="flex items-center w-full px-4 py-2 cursor-pointer level-0 outline-none" href="javascript:void(0)" title="Products" @click="openSubcategory('category-node-6')" >Products</a> <button @click="openSubcategory('category-node-6')" class="absolute right-0 flex items-center justify-center w-11 h-11 mr-2 cursor-pointer border-container outline-none" aria-label="Open&#x20;Products&#x20;subcategories" aria-haspopup="true" :aria-expanded="mobilePanelActiveId === 'category-node-6'" ><div class="w-8 h-8 flex justify-center items-center"><svg width="14" height="12" viewBox="0 0 14 12" class="fill-primary"><path fill-rule="evenodd" clip-rule="evenodd" d="M7.29289 0.292893C7.68342 -0.0976311 8.31658 -0.0976311 8.70711 0.292893L13.7071 5.29289C14.0976 5.68342 14.0976 6.31658 13.7071 6.70711L8.70711 11.7071C8.31658 12.0976 7.68342 12.0976 7.29289 11.7071C6.90237 11.3166 6.90237 10.6834 7.29289 10.2929L10.5858 7H1C0.447715 7 0 6.55228 0 6C0 5.44772 0.447715 5 1 5H10.5858L7.29289 1.70711C6.90237 1.31658 6.90237 0.683417 7.29289 0.292893Z"/></svg></div></button> </div> <div data-child-id="category-node-6" class="absolute top-0 right-0 z-10 flex flex-col gap-1 w-full h-full p-1 bg-container-lighter" :class="{ 'hidden': mobilePanelActiveId !== 'category-node-6' }" ><ul class="mt-16 transition-transform duration-200 ease-in-out translate-x-full transform" :class="{ 'translate-x-full' : mobilePanelActiveId !== 'category-node-6', 'translate-x-0' : mobilePanelActiveId === 'category-node-6', }" aria-label="Subcategories" ><li class="level-back"><button type="button" class="flex items-center py-2 px-4 cursor-pointer w-full" @click="backToMainCategories('category-node-6-main')" aria-label="Back&#x20;to&#x20;main&#x20;categories" ><svg xmlns="http://www.w3.org/2000/svg" width="14" height="12" viewBox="0 0 14 12" class="fill-primary"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.70711 0.292893C7.09763 0.683417 7.09763 1.31658 6.70711 1.70711L3.41421 5H13C13.5523 5 14 5.44772 14 6C14 6.55228 13.5523 7 13 7H3.41421L6.70711 10.2929C7.09763 10.6834 7.09763 11.3166 6.70711 11.7071C6.31658 12.0976 5.68342 12.0976 5.29289 11.7071L0.292893 6.70711C-0.0976311 6.31658 -0.0976311 5.68342 0.292893 5.29289L5.29289 0.292893C5.68342 -0.0976311 6.31658 -0.0976311 6.70711 0.292893Z" /></svg><span class="ml-4">Products</span></button></li> <li data-child-id="category-node-9-submain" class="level-1"><div class="flex items-center transition-transform duration-150 ease-in-out transform" :class="{ '-translate-x-full' : subMobilePanelActiveId, 'translate-x-0' : !subMobilePanelActiveId }" ><a class="flex items-center w-full px-4 py-2 cursor-pointer level-1" href="https://webstore.iec.ch/en/products/value-added-products/" title="Value-added&#x20;products" ><span class="font-normal">Value-added products</span></a> <button @click="openThirdLevelMenu('category-node-9')" class="absolute right-0 flex items-center justify-center w-11 h-11 mr-2 cursor-pointer bg-container-lighter border-container" aria-label="Open&#x20;Value-added&#x20;products&#x20;subcategories" aria-haspopup="true" :aria-expanded="subMobilePanelActiveId === 'category-node-9'" ><div class="w-8 h-8 flex justify-center items-center"><svg width="14" height="12" viewBox="0 0 14 12" class="fill-primary" ><path fill-rule="evenodd" clip-rule="evenodd" d="M7.29289 0.292893C7.68342 -0.0976311 8.31658 -0.0976311 8.70711 0.292893L13.7071 5.29289C14.0976 5.68342 14.0976 6.31658 13.7071 6.70711L8.70711 11.7071C8.31658 12.0976 7.68342 12.0976 7.29289 11.7071C6.90237 11.3166 6.90237 10.6834 7.29289 10.2929L10.5858 7H1C0.447715 7 0 6.55228 0 6C0 5.44772 0.447715 5 1 5H10.5858L7.29289 1.70711C6.90237 1.31658 6.90237 0.683417 7.29289 0.292893Z" /></svg></div></button> </div> <div data-child-id="category-node-9" class="absolute top-0 right-0 z-10 flex flex-col gap-1 w-full h-full p-1 bg-container-lighter" :class="{ 'hidden': subMobilePanelActiveId !== 'category-node-9' }" ><ul class="transition-transform duration-200 ease-in-out translate-x-full transform" :class="{ 'translate-x-full' : subMobilePanelActiveId !== 'category-node-9', 'translate-x-0' : subMobilePanelActiveId === 'category-node-9', }" aria-label="Subcategories" ><li class="level-back"><button type="button" class="flex items-center px-4 py-2 cursor-pointer w-full" @click="backToMainCategories('category-node-9-submain', true)" aria-label="Back&#x20;to&#x20;main&#x20;categories" ><svg xmlns="http://www.w3.org/2000/svg" width="14" height="12" viewBox="0 0 14 12" class="fill-primary" ><path fill-rule="evenodd" clip-rule="evenodd" d="M6.70711 0.292893C7.09763 0.683417 7.09763 1.31658 6.70711 1.70711L3.41421 5H13C13.5523 5 14 5.44772 14 6C14 6.55228 13.5523 7 13 7H3.41421L6.70711 10.2929C7.09763 10.6834 7.09763 11.3166 6.70711 11.7071C6.31658 12.0976 5.68342 12.0976 5.29289 11.7071L0.292893 6.70711C-0.0976311 6.31658 -0.0976311 5.68342 0.292893 5.29289L5.29289 0.292893C5.68342 -0.0976311 6.31658 -0.0976311 6.70711 0.292893Z" /></svg><span class="ml-4">Value-added products</span></button></li> <li> <a href="https://webstore.iec.ch/en/products/value-added-products/consolidated-versions/" title="Consolidated&#x20;version&#x20;&#x28;CSV&#x29;" class="flex items-center w-full px-4 py-2 cursor-pointer" ><span class="font-normal">Consolidated version (CSV)</span></a></li> <li> <a href="https://webstore.iec.ch/en/products/value-added-products/redline-versions/" title="Redline&#x20;version&#x20;&#x28;RLV&#x29;" class="flex items-center w-full px-4 py-2 cursor-pointer" ><span class="font-normal">Redline version (RLV)</span></a></li> <li> <a href="https://webstore.iec.ch/en/products/value-added-products/commented-versions/" title="Commented&#x20;version&#x20;&#x28;CMV&#x29;" class="flex items-center w-full px-4 py-2 cursor-pointer" ><span class="font-normal">Commented version (CMV)</span></a></li> <li> <a href="https://webstore.iec.ch/en/products/value-added-products/extended-versions/" title="Extended&#x20;version&#x20;&#x28;EXV&#x29;" class="flex items-center w-full px-4 py-2 cursor-pointer" ><span class="font-normal">Extended version (EXV)</span></a></li> <li> <a href="https://webstore.iec.ch/en/products/value-added-products/pre-release-versions/" title="Pre-release&#x20;version&#x20;&#x28;PRV&#x29;" class="flex items-center w-full px-4 py-2 cursor-pointer" ><span class="font-normal">Pre-release version (PRV)</span></a></li> <li> <a href="https://webstore.iec.ch/en/products/value-added-products/test-report-forms/" title="Test&#x20;report&#x20;form&#x20;&#x28;TRF&#x29;" class="flex items-center w-full px-4 py-2 cursor-pointer" ><span class="font-normal">Test report form (TRF)</span></a></li> </ul></div></li> <li data-child-id="category-node-17-submain" class="level-1"><div class="flex items-center transition-transform duration-150 ease-in-out transform" :class="{ '-translate-x-full' : subMobilePanelActiveId, 'translate-x-0' : !subMobilePanelActiveId }" ><a class="flex items-center w-full px-4 py-2 cursor-pointer level-1" href="https://webstore.iec.ch/en/products/products-by-technical-area/" title="Products&#x20;by&#x20;technical&#x20;area" ><span class="font-normal">Products by technical area</span></a> <button @click="openThirdLevelMenu('category-node-17')" class="absolute right-0 flex items-center justify-center w-11 h-11 mr-2 cursor-pointer bg-container-lighter border-container" aria-label="Open&#x20;Products&#x20;by&#x20;technical&#x20;area&#x20;subcategories" aria-haspopup="true" :aria-expanded="subMobilePanelActiveId === 'category-node-17'" ><div class="w-8 h-8 flex justify-center items-center"><svg width="14" height="12" viewBox="0 0 14 12" class="fill-primary" ><path fill-rule="evenodd" clip-rule="evenodd" d="M7.29289 0.292893C7.68342 -0.0976311 8.31658 -0.0976311 8.70711 0.292893L13.7071 5.29289C14.0976 5.68342 14.0976 6.31658 13.7071 6.70711L8.70711 11.7071C8.31658 12.0976 7.68342 12.0976 7.29289 11.7071C6.90237 11.3166 6.90237 10.6834 7.29289 10.2929L10.5858 7H1C0.447715 7 0 6.55228 0 6C0 5.44772 0.447715 5 1 5H10.5858L7.29289 1.70711C6.90237 1.31658 6.90237 0.683417 7.29289 0.292893Z" /></svg></div></button> </div> <div data-child-id="category-node-17" class="absolute top-0 right-0 z-10 flex flex-col gap-1 w-full h-full p-1 bg-container-lighter" :class="{ 'hidden': subMobilePanelActiveId !== 'category-node-17' }" ><ul class="transition-transform duration-200 ease-in-out translate-x-full transform" :class="{ 'translate-x-full' : subMobilePanelActiveId !== 'category-node-17', 'translate-x-0' : subMobilePanelActiveId === 'category-node-17', }" aria-label="Subcategories" ><li class="level-back"><button type="button" class="flex items-center px-4 py-2 cursor-pointer w-full" @click="backToMainCategories('category-node-17-submain', true)" aria-label="Back&#x20;to&#x20;main&#x20;categories" ><svg xmlns="http://www.w3.org/2000/svg" width="14" height="12" viewBox="0 0 14 12" class="fill-primary" ><path fill-rule="evenodd" clip-rule="evenodd" d="M6.70711 0.292893C7.09763 0.683417 7.09763 1.31658 6.70711 1.70711L3.41421 5H13C13.5523 5 14 5.44772 14 6C14 6.55228 13.5523 7 13 7H3.41421L6.70711 10.2929C7.09763 10.6834 7.09763 11.3166 6.70711 11.7071C6.31658 12.0976 5.68342 12.0976 5.29289 11.7071L0.292893 6.70711C-0.0976311 6.31658 -0.0976311 5.68342 0.292893 5.29289L5.29289 0.292893C5.68342 -0.0976311 6.31658 -0.0976311 6.70711 0.292893Z" /></svg><span class="ml-4">Products by technical area</span></button></li> <li> <a href="https://webstore.iec.ch/en/products/products-by-technical-area/company-organization/" title="Company&#x20;organization" class="flex items-center w-full px-4 py-2 cursor-pointer" ><span class="font-normal">Company organization</span></a></li> <li> <a href="https://webstore.iec.ch/en/products/products-by-technical-area/electrical/" title="Electrical" class="flex items-center w-full px-4 py-2 cursor-pointer" ><span class="font-normal">Electrical</span></a></li> <li> <a href="https://webstore.iec.ch/en/products/products-by-technical-area/electronics/" title="Electronics" class="flex items-center w-full px-4 py-2 cursor-pointer" ><span class="font-normal">Electronics</span></a></li> <li> <a href="https://webstore.iec.ch/en/products/products-by-technical-area/energy/" title="Energy" class="flex items-center w-full px-4 py-2 cursor-pointer" ><span class="font-normal">Energy</span></a></li> <li> <a href="https://webstore.iec.ch/en/products/products-by-technical-area/health/" title="Health" class="flex items-center w-full px-4 py-2 cursor-pointer" ><span class="font-normal">Health</span></a></li> <li> <a href="https://webstore.iec.ch/en/products/products-by-technical-area/information-technology/" title="Information&#x20;technology" class="flex items-center w-full px-4 py-2 cursor-pointer" ><span class="font-normal">Information technology</span></a></li> <li> <a href="https://webstore.iec.ch/en/products/products-by-technical-area/manufacturing/" title="Manufacturing" class="flex items-center w-full px-4 py-2 cursor-pointer" ><span class="font-normal">Manufacturing</span></a></li> <li> <a href="https://webstore.iec.ch/en/products/products-by-technical-area/others/" title="Others" class="flex items-center w-full px-4 py-2 cursor-pointer" ><span class="font-normal">Others</span></a></li> <li> <a href="https://webstore.iec.ch/en/products/products-by-technical-area/telecommunications/" title="Telecommunications" class="flex items-center w-full px-4 py-2 cursor-pointer" ><span class="font-normal">Telecommunications</span></a></li> <li> <a href="https://webstore.iec.ch/en/products/products-by-technical-area/terminology-and-metrology/" title="Terminology&#x20;and&#x20;metrology" class="flex items-center w-full px-4 py-2 cursor-pointer" ><span class="font-normal">Terminology and metrology</span></a></li> <li> <a href="https://webstore.iec.ch/en/products/products-by-technical-area/testing/" title="Testing" class="flex items-center w-full px-4 py-2 cursor-pointer" ><span class="font-normal">Testing</span></a></li> <li> <a href="https://webstore.iec.ch/en/products/products-by-technical-area/transportation/" title="Transportation" class="flex items-center w-full px-4 py-2 cursor-pointer" ><span class="font-normal">Transportation</span></a></li> </ul></div></li> <li class="level-1"><div class="flex items-center transition-transform duration-150 ease-in-out transform" :class="{ '-translate-x-full' : subMobilePanelActiveId, 'translate-x-0' : !subMobilePanelActiveId }" ><a class="flex items-center w-full px-4 py-2 cursor-pointer level-1" href="https://webstore.iec.ch/en/products/" title="<All products" ><span class="font-normal">All products</span></a></div></li> </ul><button @click="closeMenu()" class="absolute flex justify-end w-16 self-end mb-1 transition-none close-btn-4" aria-label="Close&#x20;menu" ><svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" viewBox="0 0 24 24" class="hidden p-4" width="64" height="64" :class="{ 'hidden' : !open, 'block': open }" aria-hidden="true" role="img"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18 18 6M6 6l12 12"/><title>x</title></svg> </button></div></li> <li data-child-id="category-node-7-main" class="level-0" ><div class="flex items-center transition-transform duration-150 ease-in-out transform" :class="{ '-translate-x-full' : mobilePanelActiveId, 'translate-x-0' : !mobilePanelActiveId }" ><a class="flex items-center w-full px-4 py-2 cursor-pointer level-0 outline-none" href="javascript:void(0)" title="Just&#x20;Published" @click="openSubcategory('category-node-7')" >Just Published</a> <button @click="openSubcategory('category-node-7')" class="absolute right-0 flex items-center justify-center w-11 h-11 mr-2 cursor-pointer border-container outline-none" aria-label="Open&#x20;Just&#x20;Published&#x20;subcategories" aria-haspopup="true" :aria-expanded="mobilePanelActiveId === 'category-node-7'" ><div class="w-8 h-8 flex justify-center items-center"><svg width="14" height="12" viewBox="0 0 14 12" class="fill-primary"><path fill-rule="evenodd" clip-rule="evenodd" d="M7.29289 0.292893C7.68342 -0.0976311 8.31658 -0.0976311 8.70711 0.292893L13.7071 5.29289C14.0976 5.68342 14.0976 6.31658 13.7071 6.70711L8.70711 11.7071C8.31658 12.0976 7.68342 12.0976 7.29289 11.7071C6.90237 11.3166 6.90237 10.6834 7.29289 10.2929L10.5858 7H1C0.447715 7 0 6.55228 0 6C0 5.44772 0.447715 5 1 5H10.5858L7.29289 1.70711C6.90237 1.31658 6.90237 0.683417 7.29289 0.292893Z"/></svg></div></button> </div> <div data-child-id="category-node-7" class="absolute top-0 right-0 z-10 flex flex-col gap-1 w-full h-full p-1 bg-container-lighter" :class="{ 'hidden': mobilePanelActiveId !== 'category-node-7' }" ><ul class="mt-16 transition-transform duration-200 ease-in-out translate-x-full transform" :class="{ 'translate-x-full' : mobilePanelActiveId !== 'category-node-7', 'translate-x-0' : mobilePanelActiveId === 'category-node-7', }" aria-label="Subcategories" ><li class="level-back"><button type="button" class="flex items-center py-2 px-4 cursor-pointer w-full" @click="backToMainCategories('category-node-7-main')" aria-label="Back&#x20;to&#x20;main&#x20;categories" ><svg xmlns="http://www.w3.org/2000/svg" width="14" height="12" viewBox="0 0 14 12" class="fill-primary"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.70711 0.292893C7.09763 0.683417 7.09763 1.31658 6.70711 1.70711L3.41421 5H13C13.5523 5 14 5.44772 14 6C14 6.55228 13.5523 7 13 7H3.41421L6.70711 10.2929C7.09763 10.6834 7.09763 11.3166 6.70711 11.7071C6.31658 12.0976 5.68342 12.0976 5.29289 11.7071L0.292893 6.70711C-0.0976311 6.31658 -0.0976311 5.68342 0.292893 5.29289L5.29289 0.292893C5.68342 -0.0976311 6.31658 -0.0976311 6.70711 0.292893Z" /></svg><span class="ml-4">Just Published</span></button></li> <li data-child-id="category-node-55-submain" class="level-1"><div class="flex items-center transition-transform duration-150 ease-in-out transform" :class="{ '-translate-x-full' : subMobilePanelActiveId, 'translate-x-0' : !subMobilePanelActiveId }" ><a class="flex items-center w-full px-4 py-2 cursor-pointer level-1" href="https://webstore.iec.ch/en/just-published/past-month/" title="Past&#x20;month" ><span class="font-normal">Past month</span></a> </div></li> <li data-child-id="category-node-58-submain" class="level-1"><div class="flex items-center transition-transform duration-150 ease-in-out transform" :class="{ '-translate-x-full' : subMobilePanelActiveId, 'translate-x-0' : !subMobilePanelActiveId }" ><a class="flex items-center w-full px-4 py-2 cursor-pointer level-1" href="https://webstore.iec.ch/en/just-published/past-2-weeks/" title="Past&#x20;2&#x20;weeks" ><span class="font-normal">Past 2 weeks</span></a> </div></li> <li data-child-id="category-node-61-submain" class="level-1"><div class="flex items-center transition-transform duration-150 ease-in-out transform" :class="{ '-translate-x-full' : subMobilePanelActiveId, 'translate-x-0' : !subMobilePanelActiveId }" ><a class="flex items-center w-full px-4 py-2 cursor-pointer level-1" href="https://webstore.iec.ch/en/just-published/past-week/" title="Past&#x20;week" ><span class="font-normal">Past week</span></a> </div></li> <li data-child-id="category-node-64-submain" class="level-1"><div class="flex items-center transition-transform duration-150 ease-in-out transform" :class="{ '-translate-x-full' : subMobilePanelActiveId, 'translate-x-0' : !subMobilePanelActiveId }" ><a class="flex items-center w-full px-4 py-2 cursor-pointer level-1" href="https://webstore.iec.ch/en/just-published/past-day/" title="Past&#x20;day" ><span class="font-normal">Past day</span></a> </div></li> </ul><button @click="closeMenu()" class="absolute flex justify-end w-16 self-end mb-1 transition-none close-btn-4" aria-label="Close&#x20;menu" ><svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" viewBox="0 0 24 24" class="hidden p-4" width="64" height="64" :class="{ 'hidden' : !open, 'block': open }" aria-hidden="true" role="img"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18 18 6M6 6l12 12"/><title>x</title></svg> </button></div></li> <li data-child-id="category-node-8-main" class="level-0" ><div class="flex items-center transition-transform duration-150 ease-in-out transform" :class="{ '-translate-x-full' : mobilePanelActiveId, 'translate-x-0' : !mobilePanelActiveId }" ><a class="flex items-center w-full px-4 py-2 cursor-pointer level-0 outline-none" href="https://webstore.iec.ch/en/bestsellers/" title="Bestsellers" @click="" >Bestsellers</a> </div></li> </ul><button @click="closeMenu()" class="absolute flex justify-end w-16 self-end mb-1 close-btn-4 text-primary" aria-label="Close&#x20;menu" type="button" ><svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" viewBox="0 0 24 24" class="hidden p-4" width="64" height="64" :class="{ 'hidden' : !open, 'block': open }" aria-hidden="true" role="img"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18 18 6M6 6l12 12"/><title>x</title></svg> </button> <div class="store-languages flex items-center w-full px-8 py-4 border-b cursor-pointer bg-container-lighter border-container z-10"> </div></div></nav><script> 'use strict'; const initMenuMobile_67478a74dd1f2 = () => { return { mobilePanelActiveId: null, subMobilePanelActiveId: null, open: false, setActiveMenu(menuNode) { Array.from(menuNode.querySelectorAll('a')).filter(link => { return link.href === window.location.href.split('?')[0]; }).map(item => { item.classList.add('active'); item.closest('li.level-0') && item.closest('li.level-0').querySelector('a.level-0').classList.add('active'); }); }, openMenu() { this.open = true this.$nextTick(() => hyva.trapFocus(this.$refs['mobileMenuNavLinks'])); document.body.style.position = 'fixed'; }, closeMenu() { document.body.style.position = ''; if (this.open) { this.$nextTick(() => this.$refs['mobileMenuTrigger'].focus() || hyva.releaseFocus()); } this.open = false this.mobilePanelActiveId = null this.subMobilePanelActiveId = null }, openSubcategory(index) { const menuNodeRef = document.querySelector('[data-child-id=' + index + ']') this.mobilePanelActiveId = this.mobilePanelActiveId === index ? 0 : index this.$nextTick(() => hyva.trapFocus(menuNodeRef)) }, openThirdLevelMenu(index) { const menuNodeRef = document.querySelector('[data-child-id=' + index + ']') this.subMobilePanelActiveId = this.subMobilePanelActiveId === index ? 0 : index this.$nextTick(() => hyva.trapFocus(menuNodeRef)) }, backToMainCategories(index, midLevel = false) { const menuNodeRef = document.querySelector('[data-child-id=' + index + ']') midLevel ? this.subMobilePanelActiveId = 0 : this.mobilePanelActiveId = 0 this.$nextTick(() => { hyva.trapFocus(this.$refs['mobileMenuNavLinks']) menuNodeRef.querySelector('a').focus() }) }, } }</script></div></div><!--Search--><div class="absolute z-10 w-full border-t shadow-sm bg-container-lighter border-container-lighter" id="search-content" x-cloak x-show="searchOpen" @click.outside="searchOpen = false" @keydown.escape=" searchOpen = false; $refs.searchButton.focus(); " ></div><!--Cart Drawer--> <script> function initCartDrawer() { return { open: false, isLoading: false, cart: {}, maxItemsToDisplay: 10, itemsCount: 0, totalCartAmount: 0, getData(data) { if (data.cart) { this.cart = data.cart; this.itemsCount = data.cart.items && data.cart.items.length || 0; this.totalCartAmount = this.cart.summary_count; this.setCartItems(); } this.isLoading = false; }, cartItems: [], getItemCountTitle() { return hyva.strf('\u00250\u0020of\u0020\u00251\u0020products\u0020in\u0020cart\u0020displayed', this.maxItemsToDisplay, this.totalCartAmount) }, setCartItems() { this.cartItems = this.cart.items && this.cart.items.sort((a, b) => b.item_id - a.item_id) || []; if (this.maxItemsToDisplay > 0) { this.cartItems = this.cartItems.slice(0, parseInt(this.maxItemsToDisplay, 10)); } }, deleteItemFromCart(itemId) { this.isLoading = true; const formKey = hyva.getFormKey(); const postUrl = BASE_URL + 'checkout/sidebar/removeItem/'; fetch(postUrl, { "headers": { "content-type": "application/x-www-form-urlencoded; charset=UTF-8", }, "body": "form_key=" + formKey + "&item_id=" + itemId, "method": "POST", "mode": "cors", "credentials": "include" }).then(response => { if (response.redirected) { window.location.href = response.url; } else if (response.ok) { return response.json(); } else { window.dispatchMessages && window.dispatchMessages([{ type: 'warning', text: 'Could\u0020not\u0020remove\u0020item\u0020from\u0020quote.' }]); this.isLoading = false; } }).then(result => { window.dispatchMessages && window.dispatchMessages([{ type: result.success ? 'success' : 'error', text: result.success ? 'You\u0020removed\u0020the\u0020item.' : result.error_message }], result.success ? 5000 : 0) window.dispatchEvent(new CustomEvent('reload-customer-section-data')); }); }, toggleCartDrawer(event) { if (event.detail && event.detail.isOpen !== undefined) { if (event.detail.isOpen) { this.openCartDrawer() } else { this.open = false this.$refs && this.$refs.cartDialogContent && hyva.releaseFocus(this.$refs.cartDialogContent) } } else { this.openCartDrawer() } }, openCartDrawer() { this.open = true; this.$nextTick(() => { this.$refs && this.$refs.cartDialogContent && hyva.trapFocus(this.$refs.cartDialogContent) }) }, closeCartDrawer() { this.$dispatch('toggle-cart', { isOpen: false }) } } }</script><section x-cloak x-show="cart" id="cart-drawer" x-data="initCartDrawer()" @private-content-loaded.window="getData($event.detail.data)" @toggle-cart.window="toggleCartDrawer($event)" @keydown.window.escape="closeCartDrawer" ><div role="dialog" aria-labelledby="cart-drawer-title" aria-modal="true" :aria-hidden="!open" class="fixed inset-y-0 right-0 z-30 flex max-w-full"><div class="backdrop" x-show="open" x-transition:enter="ease-in-out duration-500" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="ease-in-out duration-500" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0" role="button" @click="closeCartDrawer" aria-label="Close&#x20;minicart"></div><div class="mini-cart relative w-screen max-w-lg" x-show="open" x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700" x-transition:enter-start="translate-x-full" x-transition:enter-end="translate-x-0" x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700" x-transition:leave-start="translate-x-0" x-transition:leave-end="translate-x-full" x-ref="cartDialogContent" role="region" :tabindex="open ? 0 : -1" aria-label="My&#x20;cart" ><div class="flex flex-col h-full max-h-screen bg-white md:rounded-l-lg py-14 px-4 md:pl-8 md:pr-20 overflow-y-auto overscroll-y-contain"> <header class="relative flex align-center justify-between pb-8"><strong id="cart-drawer-title" class="text-xl font-bold text-primary-dark">My cart <span class="items-total text-xs" x-show="maxItemsToDisplay && maxItemsToDisplay < itemsCount" x-text="getItemCountTitle()"></span></strong> <button type="button" @click="closeCartDrawer" aria-label="Close&#x20;minicart" title="Close&#x20;minicart" class="transition-colors text-primary hover:text-black" ><svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" viewBox="0 0 24 24" width="24" height="24" aria-hidden="1"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18 18 6M6 6l12 12"/></svg> </button></header> <template x-if="!itemsCount"><p>Cart is empty</p></template><template x-if="itemsCount"><div class="grid mb-4"><template x-for="item in cartItems"><div class="pb-4 mb-4 border-b"><div class="flex items-center mb-2"><a :href="item.product_url" class="mr-auto text-sm font-bold text-primary hover:text-primary-darker break-word" x-html="item.product_name"></a> <a :href="item.configure_url" x-show="item.product_type !== 'grouped'" class="p-2 text-primary min-w-4 block hover:text-primary-darker focus:text-primary-darker" :aria-label="hyva.strf('Edit\u0020product\u0020\u0022\u00250\u0022', item.product_name)" :title="hyva.strf('Edit\u0020product\u0020\u0022\u00250\u0022', item.product_name)" ><svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" viewBox="0 0 24 24" width="16" height="16" aria-hidden="1"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m15.232 5.232 3.536 3.536m-2.036-5.036a2.5 2.5 0 1 1 3.536 3.536L6.5 21.036H3v-3.572L16.732 3.732Z"/></svg> </a> <button type="button" class="p-2 text-primary min-w-4 block hover:text-primary-darker focus:text-primary-darker" @click="deleteItemFromCart(item.item_id)" :aria-label="hyva.strf('Remove\u0020product\u0020\u0022\u00250\u0022\u0020from\u0020cart', item.product_name)" :title="hyva.strf('Remove\u0020product\u0020\u0022\u00250\u0022\u0020from\u0020cart', item.product_name)" ><svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" viewBox="0 0 24 24" width="16" height="16" aria-hidden="1"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m19 7-.867 12.142A2 2 0 0 1 16.138 21H7.862a2 2 0 0 1-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v3M4 7h16"/></svg> </button></div><ul class="flex gap-2"><template x-for="(option, i) in item.options"><li class="min-w-[20%] flex flex-col gap-1" :class="{grow: i === 0}"><strong class="text-primary-darker text-xs font-bold" x-text="option.label"></strong> <span class="text-sm break-word" x-html="option.value"></span></li></template><li class="min-w-[20%] flex flex-col gap-1"><strong class="text-primary-darker text-right text-xs font-bold">Price</strong> <span class="text-sm text-right"><p><span x-html="item.product_price"></span></p></span></li></ul></div></template></div></template><template x-if="itemsCount"><div> <div class="grid gap-1 mb-8"><div class="flex justify-between align-center py-2"><span class="text-sm font-bold">Subtotal:</span> <strong class="text-sm font-bold" x-html="cart.subtotal"></strong></div><!-- <div class="flex justify-between align-center py-2">--><!-- <span class="text-lg text-primary-darker font-bold">--><!--:</span>--><!-- <strong class="text-lg text-primary-darker font-bold" x-html="cart.total"></strong>--><!--</div>--></div><div class="grid gap-8 md:max-w-max"><a @click.prevent.stop="$dispatch('toggle-authentication', {url: 'https://webstore.iec.ch/en/checkout/'});" href="https://webstore.iec.ch/en/checkout/" class="btn btn-tertiary w-auto" >Proceed to checkout</a> <a href="https://webstore.iec.ch/en/checkout/cart/" class="btn btn-secondary w-auto">View or edit cart</a> <!-- button type="button" @click="closeCartDrawer" class="btn btn-secondary w-auto" aria-label="Close&#x20;minicart">Continue shopping</button --></div></div></template></div></div> <div class="flex flex-row justify-center items-center w-full h-full fixed select-none z-50" style="left: 50%;top: 50%;transform: translateX(-50%) translateY(-50%);background: rgba(255,255,255,0.7);" x-show="isLoading" x-transition:enter="ease-out duration-200" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="ease-in duration-200" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0"><!-- By Sam Herbert (@sherb), for everyone. More @ http://goo.gl/7AJzbL --> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 57 57" stroke="currentColor" class="text-primary" width="57" height="57" role="img"> <g fill="none" fill-rule="evenodd"> <g transform="translate(1 1)" stroke-width="2"> <circle cx="5" cy="50" r="5"> <animate attributeName="cy" begin="0s" dur="2.2s" values="50;5;50;50" calcMode="linear" repeatCount="indefinite"/> <animate attributeName="cx" begin="0s" dur="2.2s" values="5;27;49;5" calcMode="linear" repeatCount="indefinite"/> </circle> <circle cx="27" cy="5" r="5"> <animate attributeName="cy" begin="0s" dur="2.2s" from="5" to="5" values="5;50;50;5" calcMode="linear" repeatCount="indefinite"/> <animate attributeName="cx" begin="0s" dur="2.2s" from="27" to="27" values="27;49;5;27" calcMode="linear" repeatCount="indefinite"/> </circle> <circle cx="49" cy="50" r="5"> <animate attributeName="cy" begin="0s" dur="2.2s" values="50;50;5;50" calcMode="linear" repeatCount="indefinite"/> <animate attributeName="cx" from="49" to="49" begin="0s" dur="2.2s" values="49;5;27;49" calcMode="linear" repeatCount="indefinite"/> </circle> </g> </g> <title>loader</title></svg> <div class="ml-10 text-primary text-xl">Loading...</div></div></div></section> <!--Authentication Pop-Up--> <script> function initAuthentication() { return { open: false, forceAuthentication: false, checkoutUrl: 'https://webstore.iec.ch/en/checkout/index/', errors: 0, hasCaptchaToken: 0, displayErrorMessage: false, errorMessages: [], setErrorMessages: function setErrorMessages(messages) { this.errorMessages = [messages]; this.displayErrorMessage = this.errorMessages.length; }, submitForm: function () { const $form = document.querySelector('#login-form'); if (this.errors === 0) { this.dispatchLoginRequest($form); } }, onPrivateContentLoaded: function (data) { const isLoggedIn = data.customer && data.customer.firstname; if (data.cart && !isLoggedIn) { this.forceAuthentication = !data.cart.isGuestCheckoutAllowed; } }, redirectIfAuthenticated: function (event) { if (event.detail && event.detail.url) { this.checkoutUrl = event.detail.url; } if (!this.forceAuthentication) { window.location.href = this.checkoutUrl; } }, dispatchLoginRequest: function(form) { this.isLoading = true; const username = this.$refs['customer-email'].value; const password = this.$refs['customer-password'].value; const formKey = hyva.getFormKey(); const bodyFields = { 'username': username, 'password': password, 'formKey': formKey }; const fieldName = 'g\u002Drecaptcha\u002Dresponse'; const recaptchaField = fieldName && form[fieldName]; if (recaptchaField) { bodyFields[fieldName] = recaptchaField.value; } fetch('https://webstore.iec.ch/en/customer/ajax/login/', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Requested-With': 'XMLHttpRequest' }, body: JSON.stringify(bodyFields) } ).then(response => { return response.json() } ).then(data=> { this.isLoading = false; if (data.errors) { dispatchMessages([{ type: 'error', text: data.message }], 5000); this.errors = 1; this.hasCaptchaToken = 0; this.open = false; this.$dispatch('toggle-cart', { isOpen: false }) window.scroll({top: 0, left: 0, behavior: 'smooth'}); } else { window.location.href = this.checkoutUrl; } }); } } }</script><section id="authentication-popup" x-data="initAuthentication()" @private-content-loaded.window="onPrivateContentLoaded($event.detail.data)" @toggle-authentication.window="open = forceAuthentication; redirectIfAuthenticated(event)" @keydown.window.escape="open = false" ><div role="dialog" aria-modal="true" @click.outside="open = false" class="inset-y-0 right-0 z-30 flex max-w-full fixed" x-cloak x-show="open" ><div class="relative w-screen max-w-lg" x-show="open" x-cloak="" x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700" x-transition:enter-start="translate-x-full" x-transition:enter-end="translate-x-0" x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700" x-transition:leave-start="translate-x-0" x-transition:leave-end="translate-x-full" ><div class="flex flex-col h-full max-h-screen bg-white md:rounded-l-lg py-14 px-4 md:pl-8 md:pr-20 overflow-y-auto overscroll-y-contain"><div x-show="open" x-cloak="" x-transition:enter="ease-in-out duration-500" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="ease-in-out duration-500" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0" class="self-end"><button @click="open = false;" aria-label="Close panel" class="transition-colors text-primary hover:text-black"><svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" viewBox="0 0 24 24" width="24" height="24" role="img"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18 18 6M6 6l12 12"/><title>x</title></svg> </button></div><div class="block-customer-login pb-8 mb-8 border-b"><p id="authenticate-customer-login" class="mb-4"><strong class="text-xl font-medium title-font text-primary-dark !mt-0">Checkout using your account</strong></p><p class="warning-message mb-10">If you have a Webstore account but are using this version for the first time, please use <a class="btn btn-link" href="https://webstore.iec.ch/customer/account/forgotpassword">Forgot password</a> to choose a new password.</p><form class="form form-login" method="post" @submit.prevent="submitForm();" id="login-form" > <div class="fieldset login"><div class="field email required"><label class="label" for="form-login-username" form="login-form" ><span>Email address</span></label> <div class="control"><input name="username" id="form-login-username" x-ref="customer-email" @change="errors = 0" type="email" required class="form-input input-text" ></div></div><div class="field password required"><label for="form-login-password" class="label" form="login-form"><span>Password</span></label> <div class="control"><input name="password" id="form-login-password" type="password" class="form-input input-text" required x-ref="customer-password" @change="errors = 0" ></div></div><input name="context" type="hidden" value="checkout" /><div class="grid gap-4 pt-6"><button type="submit" class="btn btn-primary disabled:opacity-75 w-auto" >Log in</button> <a class="btn btn-link" href="https://webstore.iec.ch/en/customer/account/forgotpassword/" >Forgot your password?</a></div></div></form></div><div class="mx-4"></div><div class="block-new-customer"><div class="new-customer-container"><div class="block-title mb-2"><h2 class="text-xl font-medium title-font text-primary-dark !mt-0" role="heading" aria-level="2">New customers</h2></div><div class="block-content mb-4" aria-labelledby="block-new-customer-heading"><p class="text-primary-dark">Your IEC benefits:</p></div><ul class="list-disc"><li class="mb-4"><svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" viewBox="0 0 24 24" width="24" height="24" role="img"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m5 13 4 4L19 7"/><title>check</title></svg> Favorites list</li> <li class="mb-4"><svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" viewBox="0 0 24 24" width="24" height="24" role="img"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m5 13 4 4L19 7"/><title>check</title></svg> Easy access to purchased standards and related invoice</li> <li> <svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" viewBox="0 0 24 24" width="24" height="24" role="img"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m5 13 4 4L19 7"/><title>check</title></svg> Track status of your standards library</li></ul><a href="https://webstore.iec.ch/en/customer/account/create/" class="btn btn-secondary mt-6 mb-6"><span>Create an account</span></a></div></div></div></div></div></section></div> <div class="sub-header container"><div class="flex h-20"><div class="sub-header-categories"> <div x-data="initMenuDesktop_674783f53729f()" class="navigation hidden lg:flex h-full" ><!-- desktop --><div x-ref="nav-desktop" @load.window="setActiveMenu($root)" class="nav-desktop hidden lg:block grow h-full"><nav class="duration-150 ease-in-out w-auto min-h-0 transition-display flex items-center h-full" aria-label="Main&#x20;menu" ><ul class="flex justify-start h-full"> <li class="item level-0 h-full has-children" @mouseleave="toggleNav(0, 'has-children')" @mouseenter.prevent="toggleNav('category-node-6', 'has-children')" @keyup.escape="toggleNav(0, 'has-children')" ><span class="item-content flex items-center h-full"><a class="item-link level-0 flex items-center w-full h-full" href="javascript:void(0)" title="Products" @focus="hoverPanelActiveId = 0" @click="openMenuOnClick('category-node-6')" ><span class="py-8 px-6 pl-0">Products</span> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" clip-rule="evenodd" d="M12 16C12.2652 16 12.5196 15.8946 12.7071 15.7071L18.7071 9.70711C19.0976 9.31658 19.0976 8.68342 18.7071 8.29289C18.3166 7.90237 17.6834 7.90237 17.2929 8.29289L12 13.5858L6.70711 8.29289C6.31658 7.90237 5.68342 7.90237 5.29289 8.29289C4.90237 8.68342 4.90237 9.31658 5.29289 9.70711L11.2929 15.7071C11.4804 15.8946 11.7348 16 12 16Z"/></svg></a></span> <ul x-show="activeSubmenu == null" class="menu absolute w-full z-10 hidden shadow-lg left-0 origin-top bg-white" :class="{ 'hidden' : hoverPanelActiveId !== 'category-node-6', 'block' : hoverPanelActiveId === 'category-node-6' }" ><div class="menu-container container"> <li class="menu-item"> <button data-id="category-node-6" type="button" @click="openSubMenuOnClick('\u007B\u0022name\u0022\u003A\u0022Value\u002Dadded\u0020products\u0022,\u0022id\u0022\u003A\u0022category\u002Dnode\u002D9\u0022,\u0022url\u0022\u003A\u0022https\u003A\u005C\u002F\u005C\u002Fwebstore.iec.ch\u005C\u002Fen\u005C\u002Fproducts\u005C\u002Fvalue\u002Dadded\u002Dproducts\u005C\u002F\u0022,\u0022image\u0022\u003Afalse,\u0022has_active\u0022\u003Afalse,\u0022is_active\u0022\u003Afalse,\u0022is_category\u0022\u003Atrue,\u0022is_parent_active\u0022\u003Atrue,\u0022position\u0022\u003Anull,\u0022path\u0022\u003A\u00221\u005C\u002F2\u005C\u002F6\u005C\u002F9\u0022,\u0022description\u0022\u003Anull,\u0022vap_code\u0022\u003A\u0022\u0022,\u0022ics_code\u0022\u003A\u0022\u0022,\u0022hide_see_all_link\u0022\u003A\u0022\u0022,\u0022is_click_disabled\u0022\u003Afalse,\u0022childData\u0022\u003A\u007B\u0022category\u002Dnode\u002D10\u0022\u003A\u007B\u0022name\u0022\u003A\u0022Consolidated\u0020version\u0020\u0028CSV\u0029\u0022,\u0022id\u0022\u003A\u0022category\u002Dnode\u002D10\u0022,\u0022url\u0022\u003A\u0022https\u003A\u005C\u002F\u005C\u002Fwebstore.iec.ch\u005C\u002Fen\u005C\u002Fproducts\u005C\u002Fvalue\u002Dadded\u002Dproducts\u005C\u002Fconsolidated\u002Dversions\u005C\u002F\u0022,\u0022image\u0022\u003Afalse,\u0022has_active\u0022\u003Afalse,\u0022is_active\u0022\u003Afalse,\u0022is_category\u0022\u003Atrue,\u0022is_parent_active\u0022\u003Atrue,\u0022position\u0022\u003Anull,\u0022path\u0022\u003A\u00221\u005C\u002F2\u005C\u002F6\u005C\u002F9\u005C\u002F10\u0022,\u0022description\u0022\u003A\u0022\u003Cdiv\u0020data\u002Dcontent\u002Dtype\u003D\u005C\u0022html\u005C\u0022\u0020data\u002Dappearance\u003D\u005C\u0022default\u005C\u0022\u0020data\u002Delement\u003D\u005C\u0022main\u005C\u0022\u003EIEC\u0020Consolidated\u0020versions\u0020allow\u0020users\u0020to\u0020access\u0020technical\u0020content\u0020from\u0020multiple\u0020publications\u0020that\u0020have\u0020been\u0020merged\u0020into\u0020a\u0020single,\u0020user\u002Dfriendly\u0020product.\u0020They\u0020incorporate\u0020the\u0020content\u0020of\u0020amendment\u0028s\u0029\u0020into\u0020the\u0020publication.\u0020The\u0020track\u0020changes\u0020mode\u0020shows\u0020where\u0020the\u0020publication\u0020has\u0020been\u0020modified\u0020by\u0020the\u0020amendment.\u0020\u003C\u005C\u002Fdiv\u003E\u0022,\u0022vap_code\u0022\u003A\u0022csv\u0022,\u0022ics_code\u0022\u003A\u0022\u0022,\u0022hide_see_all_link\u0022\u003A\u00220\u0022,\u0022is_click_disabled\u0022\u003Afalse,\u0022childData\u0022\u003A\u005B\u005D\u007D,\u0022category\u002Dnode\u002D11\u0022\u003A\u007B\u0022name\u0022\u003A\u0022Redline\u0020version\u0020\u0028RLV\u0029\u0022,\u0022id\u0022\u003A\u0022category\u002Dnode\u002D11\u0022,\u0022url\u0022\u003A\u0022https\u003A\u005C\u002F\u005C\u002Fwebstore.iec.ch\u005C\u002Fen\u005C\u002Fproducts\u005C\u002Fvalue\u002Dadded\u002Dproducts\u005C\u002Fredline\u002Dversions\u005C\u002F\u0022,\u0022image\u0022\u003Afalse,\u0022has_active\u0022\u003Afalse,\u0022is_active\u0022\u003Afalse,\u0022is_category\u0022\u003Atrue,\u0022is_parent_active\u0022\u003Atrue,\u0022position\u0022\u003Anull,\u0022path\u0022\u003A\u00221\u005C\u002F2\u005C\u002F6\u005C\u002F9\u005C\u002F11\u0022,\u0022description\u0022\u003A\u0022\u003Cdiv\u0020data\u002Dcontent\u002Dtype\u003D\u005C\u0022html\u005C\u0022\u0020data\u002Dappearance\u003D\u005C\u0022default\u005C\u0022\u0020data\u002Delement\u003D\u005C\u0022main\u005C\u0022\u003EA\u0020Redline\u0020version\u0020allows\u0020users\u0020to\u0020easily\u0020access\u0020the\u0020changes\u0020between\u0020the\u0020new\u0020and\u0020previous\u0020edition\u0020of\u0020a\u0020publication.\u005Cr\u005CnThe\u0020RLV\u0020is\u0020a\u0020package\u0020that\u0020includes\u0020both\u0020the\u0020official\u0020publication\u0020and\u0020its\u0020redline\u0020version.\u0020In\u0020the\u0020redline\u0020version,\u0020the\u0020track\u0020changes\u0020mode\u0020highlights\u0020all\u0020the\u0020changes\u0020between\u0020the\u0020new\u0020edition\u0020and\u0020previous\u0020edition\u0020of\u0020the\u0020publication.\u003C\u005C\u002Fdiv\u003E\u0022,\u0022vap_code\u0022\u003A\u0022rlv\u0022,\u0022ics_code\u0022\u003A\u0022\u0022,\u0022hide_see_all_link\u0022\u003A\u00220\u0022,\u0022is_click_disabled\u0022\u003Afalse,\u0022childData\u0022\u003A\u005B\u005D\u007D,\u0022category\u002Dnode\u002D12\u0022\u003A\u007B\u0022name\u0022\u003A\u0022Commented\u0020version\u0020\u0028CMV\u0029\u0022,\u0022id\u0022\u003A\u0022category\u002Dnode\u002D12\u0022,\u0022url\u0022\u003A\u0022https\u003A\u005C\u002F\u005C\u002Fwebstore.iec.ch\u005C\u002Fen\u005C\u002Fproducts\u005C\u002Fvalue\u002Dadded\u002Dproducts\u005C\u002Fcommented\u002Dversions\u005C\u002F\u0022,\u0022image\u0022\u003Afalse,\u0022has_active\u0022\u003Afalse,\u0022is_active\u0022\u003Afalse,\u0022is_category\u0022\u003Atrue,\u0022is_parent_active\u0022\u003Atrue,\u0022position\u0022\u003Anull,\u0022path\u0022\u003A\u00221\u005C\u002F2\u005C\u002F6\u005C\u002F9\u005C\u002F12\u0022,\u0022description\u0022\u003A\u0022\u003Cdiv\u0020data\u002Dcontent\u002Dtype\u003D\u005C\u0022html\u005C\u0022\u0020data\u002Dappearance\u003D\u005C\u0022default\u005C\u0022\u0020data\u002Delement\u003D\u005C\u0022main\u005C\u0022\u003EA\u0020Commented\u0020version\u0020is\u0020the\u0020only\u0020product\u0020where\u0020the\u0020consensus\u002Dbased\u0020content\u0020of\u0020a\u0020publication\u0020is\u0020enriched\u0020with\u0020technical\u0020commentary.\u005Cr\u005CnCMVs\u0020are\u0020an\u0020enhanced\u0020version\u0020of\u0020the\u0020traditional\u0020Redline\u0020version\u0020which\u0020highlights\u0020the\u0020changes\u0020between\u0020the\u0020previous\u0020edition\u0020and\u0020the\u0020new\u0020edition.\u0020With\u0020the\u0020commented\u0020versions,\u0020users\u0020can\u0020better\u0020understand\u0020the\u0020rationale\u0020for\u0020changes\u0020made\u0020to\u0020the\u0020newest\u0020edition\u0020of\u0020the\u0020standard.\u0020Comments\u0020may\u0020include\u0020an\u0020explanation\u0020for\u0020the\u0020changes\u0020as\u0020well\u0020as\u0020information\u0020on\u0020the\u0020impact\u0020of\u0020these\u0020changes\u0020on\u0020the\u0020application\u0020and\u0020usability\u0020of\u0020the\u0020standard.\u003C\u005C\u002Fdiv\u003E\u0022,\u0022vap_code\u0022\u003A\u0022cmv\u0022,\u0022ics_code\u0022\u003A\u0022\u0022,\u0022hide_see_all_link\u0022\u003A\u00220\u0022,\u0022is_click_disabled\u0022\u003Afalse,\u0022childData\u0022\u003A\u005B\u005D\u007D,\u0022category\u002Dnode\u002D13\u0022\u003A\u007B\u0022name\u0022\u003A\u0022Extended\u0020version\u0020\u0028EXV\u0029\u0022,\u0022id\u0022\u003A\u0022category\u002Dnode\u002D13\u0022,\u0022url\u0022\u003A\u0022https\u003A\u005C\u002F\u005C\u002Fwebstore.iec.ch\u005C\u002Fen\u005C\u002Fproducts\u005C\u002Fvalue\u002Dadded\u002Dproducts\u005C\u002Fextended\u002Dversions\u005C\u002F\u0022,\u0022image\u0022\u003Afalse,\u0022has_active\u0022\u003Afalse,\u0022is_active\u0022\u003Afalse,\u0022is_category\u0022\u003Atrue,\u0022is_parent_active\u0022\u003Atrue,\u0022position\u0022\u003Anull,\u0022path\u0022\u003A\u00221\u005C\u002F2\u005C\u002F6\u005C\u002F9\u005C\u002F13\u0022,\u0022description\u0022\u003A\u0022\u003Cdiv\u0020data\u002Dcontent\u002Dtype\u003D\u005C\u0022html\u005C\u0022\u0020data\u002Dappearance\u003D\u005C\u0022default\u005C\u0022\u0020data\u002Delement\u003D\u005C\u0022main\u005C\u0022\u003ESome\u0020standards\u0020are\u0020required\u0020to\u0020be\u0020read\u0020in\u0020conjunction\u0020with\u0020another\u0020standard.\u0020Recognizing\u0020that\u0020it\u0020may\u0020be\u0020difficult\u0020and\u0020time\u0020consuming\u0020to\u0020consult\u0020IEC\u0020Standards\u0020and\u0020its\u0020references\u0020simultaneously,\u0020the\u0020Extended\u0020version\u0020compiles\u0020the\u0020key\u0020information\u0020and\u0020content\u0020into\u0020a\u0020single,\u0020easy\u0020to\u0020use\u0020document.\u0020The\u0020extended\u0020version\u0020includes\u0020the\u0020relevant\u0020clauses\u0020from\u0020one\u0020publication\u0020inserted\u0020directly\u0020into\u0020the\u0020second\u0020publication\u0020and\u0020highlighted\u0020for\u0020easy\u0020reference.\u003C\u005C\u002Fdiv\u003E\u0022,\u0022vap_code\u0022\u003A\u0022exv\u0022,\u0022ics_code\u0022\u003A\u0022\u0022,\u0022hide_see_all_link\u0022\u003A\u00220\u0022,\u0022is_click_disabled\u0022\u003Afalse,\u0022childData\u0022\u003A\u005B\u005D\u007D,\u0022category\u002Dnode\u002D14\u0022\u003A\u007B\u0022name\u0022\u003A\u0022Pre\u002Drelease\u0020version\u0020\u0028PRV\u0029\u0022,\u0022id\u0022\u003A\u0022category\u002Dnode\u002D14\u0022,\u0022url\u0022\u003A\u0022https\u003A\u005C\u002F\u005C\u002Fwebstore.iec.ch\u005C\u002Fen\u005C\u002Fproducts\u005C\u002Fvalue\u002Dadded\u002Dproducts\u005C\u002Fpre\u002Drelease\u002Dversions\u005C\u002F\u0022,\u0022image\u0022\u003Afalse,\u0022has_active\u0022\u003Afalse,\u0022is_active\u0022\u003Afalse,\u0022is_category\u0022\u003Atrue,\u0022is_parent_active\u0022\u003Atrue,\u0022position\u0022\u003Anull,\u0022path\u0022\u003A\u00221\u005C\u002F2\u005C\u002F6\u005C\u002F9\u005C\u002F14\u0022,\u0022description\u0022\u003A\u0022\u003Cdiv\u0020data\u002Dcontent\u002Dtype\u003D\u005C\u0022html\u005C\u0022\u0020data\u002Dappearance\u003D\u005C\u0022default\u005C\u0022\u0020data\u002Delement\u003D\u005C\u0022main\u005C\u0022\u003EA\u0020Pre\u002Drelease\u0020version\u0020allows\u0020users\u0020to\u0020access\u0020the\u0020content\u0020of\u0020an\u0020upcoming\u0020publication\u0020up\u0020to\u0020two\u0020months\u0020prior\u0020to\u0020its\u0020official\u0020release.\u005Cr\u005CnA\u0020PRV\u0020contains\u0020the\u0020final\u0020draft\u0020international\u0020standard\u0020\u0028FDIS\u0029\u0020of\u0020a\u0020publication.\u0020The\u0020FDIS\u0020is\u0020the\u0020last\u0020approval\u0020stage\u0020in\u0020the\u0020development\u0020process\u0020of\u0020a\u0020publication\u0020when\u0020only\u0020minor\u0020editorial\u0020changes\u0020are\u0020permitted.\u0020During\u0020the\u0020six\u0020week\u0020voting\u0020period,\u0020the\u0020FDIS\u0020is\u0020made\u0020available\u0020as\u0020a\u0020PRV.\u005Cr\u005CnThose\u0020who\u0020purchase\u0020a\u0020PRV\u0020also\u0020receive\u0020the\u0020official\u0020publication\u0020at\u0020the\u0020time\u0020of\u0020its\u0020release.\u003C\u005C\u002Fdiv\u003E\u0022,\u0022vap_code\u0022\u003A\u0022prv\u0022,\u0022ics_code\u0022\u003A\u0022\u0022,\u0022hide_see_all_link\u0022\u003A\u00220\u0022,\u0022is_click_disabled\u0022\u003Afalse,\u0022childData\u0022\u003A\u005B\u005D\u007D,\u0022category\u002Dnode\u002D15\u0022\u003A\u007B\u0022name\u0022\u003A\u0022Test\u0020report\u0020form\u0020\u0028TRF\u0029\u0022,\u0022id\u0022\u003A\u0022category\u002Dnode\u002D15\u0022,\u0022url\u0022\u003A\u0022https\u003A\u005C\u002F\u005C\u002Fwebstore.iec.ch\u005C\u002Fen\u005C\u002Fproducts\u005C\u002Fvalue\u002Dadded\u002Dproducts\u005C\u002Ftest\u002Dreport\u002Dforms\u005C\u002F\u0022,\u0022image\u0022\u003Afalse,\u0022has_active\u0022\u003Afalse,\u0022is_active\u0022\u003Afalse,\u0022is_category\u0022\u003Atrue,\u0022is_parent_active\u0022\u003Atrue,\u0022position\u0022\u003Anull,\u0022path\u0022\u003A\u00221\u005C\u002F2\u005C\u002F6\u005C\u002F9\u005C\u002F15\u0022,\u0022description\u0022\u003A\u0022\u003Cdiv\u0020data\u002Dcontent\u002Dtype\u003D\u005C\u0022html\u005C\u0022\u0020data\u002Dappearance\u003D\u005C\u0022default\u005C\u0022\u0020data\u002Delement\u003D\u005C\u0022main\u005C\u0022\u003EA\u0020Test\u0020report\u0020form\u0020is\u0020a\u0020document\u0020template\u0020prepared\u0020by\u0020a\u0020National\u0020Certification\u0020Body,\u0020facilitating\u0020a\u0020test\u0020laboratory\u0020in\u0020documenting\u0020the\u0020evidence\u0020and\u0020results\u0020of\u0020tests\u0020and\u0020analyses\u0020conducted\u0020on\u0020a\u0020product.\u0020Its\u0020main\u0020purpose\u0020is\u0020to\u0020aid\u0020in\u0020the\u0020issuance\u0020of\u0020a\u0020Certification\u0020Body\u0020Certificate.\u005Cr\u005CnA\u0020TRF\u0020encompasses\u0020all\u0020necessary\u0020information\u0020to\u0020document\u0020tests\u0020or\u0020analyses\u0020and\u0020features\u0020a\u0020common\u0020structure\u0020fully\u0020aligned\u0020with\u0020that\u0020of\u0020the\u0020IEC\u0020or\u0020ISO\u0020standards,\u0020ensuring\u0020ease\u0020of\u0020use.\u003C\u005C\u002Fdiv\u003E\u0022,\u0022vap_code\u0022\u003A\u0022trf\u0022,\u0022ics_code\u0022\u003A\u0022\u0022,\u0022hide_see_all_link\u0022\u003A\u00220\u0022,\u0022is_click_disabled\u0022\u003Afalse,\u0022childData\u0022\u003A\u005B\u005D\u007D\u007D\u007D')" title="Value-added&#x20;products" class="menu-item-link group inline-flex py-1 px-2 whitespace-nowrap first:mt-0 text-primary hover:text-white hover:bg-primary focus:text-white focus:bg-primary" @keyup.escape="$nextTick(() => document.querySelector('[data-sr-button-id=category\u002Dnode\u002D6]').focus())" ><svg width="14" height="12" viewBox="0 0 14 12" class="fill-primary group-hover:fill-white group-focus:fill-white"><path fill-rule="evenodd" clip-rule="evenodd" class="fill-primary group-hover:fill-white group-focus:fill-white" d="M7.29289 0.292893C7.68342 -0.0976311 8.31658 -0.0976311 8.70711 0.292893L13.7071 5.29289C14.0976 5.68342 14.0976 6.31658 13.7071 6.70711L8.70711 11.7071C8.31658 12.0976 7.68342 12.0976 7.29289 11.7071C6.90237 11.3166 6.90237 10.6834 7.29289 10.2929L10.5858 7H1C0.447715 7 0 6.55228 0 6C0 5.44772 0.447715 5 1 5H10.5858L7.29289 1.70711C6.90237 1.31658 6.90237 0.683417 7.29289 0.292893Z" /></svg><span class="font-bold text-lg">Value-added products</span></button> </li> <li class="menu-item"> <button data-id="category-node-6" type="button" @click="openSubMenuOnClick('\u007B\u0022name\u0022\u003A\u0022Products\u0020by\u0020technical\u0020area\u0022,\u0022id\u0022\u003A\u0022category\u002Dnode\u002D17\u0022,\u0022url\u0022\u003A\u0022https\u003A\u005C\u002F\u005C\u002Fwebstore.iec.ch\u005C\u002Fen\u005C\u002Fproducts\u005C\u002Fproducts\u002Dby\u002Dtechnical\u002Darea\u005C\u002F\u0022,\u0022image\u0022\u003Afalse,\u0022has_active\u0022\u003Afalse,\u0022is_active\u0022\u003Afalse,\u0022is_category\u0022\u003Atrue,\u0022is_parent_active\u0022\u003Atrue,\u0022position\u0022\u003Anull,\u0022path\u0022\u003A\u00221\u005C\u002F2\u005C\u002F6\u005C\u002F17\u0022,\u0022description\u0022\u003Anull,\u0022vap_code\u0022\u003A\u0022\u0022,\u0022ics_code\u0022\u003A\u00221.11\u0022,\u0022hide_see_all_link\u0022\u003A\u00221\u0022,\u0022is_click_disabled\u0022\u003Afalse,\u0022childData\u0022\u003A\u007B\u0022category\u002Dnode\u002D18\u0022\u003A\u007B\u0022name\u0022\u003A\u0022Company\u0020organization\u0022,\u0022id\u0022\u003A\u0022category\u002Dnode\u002D18\u0022,\u0022url\u0022\u003A\u0022https\u003A\u005C\u002F\u005C\u002Fwebstore.iec.ch\u005C\u002Fen\u005C\u002Fproducts\u005C\u002Fproducts\u002Dby\u002Dtechnical\u002Darea\u005C\u002Fcompany\u002Dorganization\u005C\u002F\u0022,\u0022image\u0022\u003Afalse,\u0022has_active\u0022\u003Afalse,\u0022is_active\u0022\u003Afalse,\u0022is_category\u0022\u003Atrue,\u0022is_parent_active\u0022\u003Atrue,\u0022position\u0022\u003Anull,\u0022path\u0022\u003A\u00221\u005C\u002F2\u005C\u002F6\u005C\u002F17\u005C\u002F18\u0022,\u0022description\u0022\u003Anull,\u0022vap_code\u0022\u003A\u0022\u0022,\u0022ics_code\u0022\u003A\u002203\u0022,\u0022hide_see_all_link\u0022\u003A\u0022\u0022,\u0022is_click_disabled\u0022\u003Afalse,\u0022childData\u0022\u003A\u005B\u005D\u007D,\u0022category\u002Dnode\u002D19\u0022\u003A\u007B\u0022name\u0022\u003A\u0022Electrical\u0022,\u0022id\u0022\u003A\u0022category\u002Dnode\u002D19\u0022,\u0022url\u0022\u003A\u0022https\u003A\u005C\u002F\u005C\u002Fwebstore.iec.ch\u005C\u002Fen\u005C\u002Fproducts\u005C\u002Fproducts\u002Dby\u002Dtechnical\u002Darea\u005C\u002Felectrical\u005C\u002F\u0022,\u0022image\u0022\u003Afalse,\u0022has_active\u0022\u003Afalse,\u0022is_active\u0022\u003Afalse,\u0022is_category\u0022\u003Atrue,\u0022is_parent_active\u0022\u003Atrue,\u0022position\u0022\u003Anull,\u0022path\u0022\u003A\u00221\u005C\u002F2\u005C\u002F6\u005C\u002F17\u005C\u002F19\u0022,\u0022description\u0022\u003Anull,\u0022vap_code\u0022\u003A\u0022\u0022,\u0022ics_code\u0022\u003A\u0022\u0022,\u0022hide_see_all_link\u0022\u003A\u0022\u0022,\u0022is_click_disabled\u0022\u003Afalse,\u0022childData\u0022\u003A\u005B\u005D\u007D,\u0022category\u002Dnode\u002D23\u0022\u003A\u007B\u0022name\u0022\u003A\u0022Electronics\u0022,\u0022id\u0022\u003A\u0022category\u002Dnode\u002D23\u0022,\u0022url\u0022\u003A\u0022https\u003A\u005C\u002F\u005C\u002Fwebstore.iec.ch\u005C\u002Fen\u005C\u002Fproducts\u005C\u002Fproducts\u002Dby\u002Dtechnical\u002Darea\u005C\u002Felectronics\u005C\u002F\u0022,\u0022image\u0022\u003Afalse,\u0022has_active\u0022\u003Afalse,\u0022is_active\u0022\u003Afalse,\u0022is_category\u0022\u003Atrue,\u0022is_parent_active\u0022\u003Atrue,\u0022position\u0022\u003Anull,\u0022path\u0022\u003A\u00221\u005C\u002F2\u005C\u002F6\u005C\u002F17\u005C\u002F23\u0022,\u0022description\u0022\u003Anull,\u0022vap_code\u0022\u003A\u0022\u0022,\u0022ics_code\u0022\u003A\u002231\u0022,\u0022hide_see_all_link\u0022\u003A\u0022\u0022,\u0022is_click_disabled\u0022\u003Afalse,\u0022childData\u0022\u003A\u005B\u005D\u007D,\u0022category\u002Dnode\u002D24\u0022\u003A\u007B\u0022name\u0022\u003A\u0022Energy\u0022,\u0022id\u0022\u003A\u0022category\u002Dnode\u002D24\u0022,\u0022url\u0022\u003A\u0022https\u003A\u005C\u002F\u005C\u002Fwebstore.iec.ch\u005C\u002Fen\u005C\u002Fproducts\u005C\u002Fproducts\u002Dby\u002Dtechnical\u002Darea\u005C\u002Fenergy\u005C\u002F\u0022,\u0022image\u0022\u003Afalse,\u0022has_active\u0022\u003Afalse,\u0022is_active\u0022\u003Afalse,\u0022is_category\u0022\u003Atrue,\u0022is_parent_active\u0022\u003Atrue,\u0022position\u0022\u003Anull,\u0022path\u0022\u003A\u00221\u005C\u002F2\u005C\u002F6\u005C\u002F17\u005C\u002F24\u0022,\u0022description\u0022\u003Anull,\u0022vap_code\u0022\u003A\u0022\u0022,\u0022ics_code\u0022\u003A\u002227\u0022,\u0022hide_see_all_link\u0022\u003A\u0022\u0022,\u0022is_click_disabled\u0022\u003Afalse,\u0022childData\u0022\u003A\u005B\u005D\u007D,\u0022category\u002Dnode\u002D25\u0022\u003A\u007B\u0022name\u0022\u003A\u0022Health\u0022,\u0022id\u0022\u003A\u0022category\u002Dnode\u002D25\u0022,\u0022url\u0022\u003A\u0022https\u003A\u005C\u002F\u005C\u002Fwebstore.iec.ch\u005C\u002Fen\u005C\u002Fproducts\u005C\u002Fproducts\u002Dby\u002Dtechnical\u002Darea\u005C\u002Fhealth\u005C\u002F\u0022,\u0022image\u0022\u003Afalse,\u0022has_active\u0022\u003Afalse,\u0022is_active\u0022\u003Afalse,\u0022is_category\u0022\u003Atrue,\u0022is_parent_active\u0022\u003Atrue,\u0022position\u0022\u003Anull,\u0022path\u0022\u003A\u00221\u005C\u002F2\u005C\u002F6\u005C\u002F17\u005C\u002F25\u0022,\u0022description\u0022\u003Anull,\u0022vap_code\u0022\u003A\u0022\u0022,\u0022ics_code\u0022\u003A\u002211,13\u0022,\u0022hide_see_all_link\u0022\u003A\u0022\u0022,\u0022is_click_disabled\u0022\u003Afalse,\u0022childData\u0022\u003A\u005B\u005D\u007D,\u0022category\u002Dnode\u002D26\u0022\u003A\u007B\u0022name\u0022\u003A\u0022Information\u0020technology\u0022,\u0022id\u0022\u003A\u0022category\u002Dnode\u002D26\u0022,\u0022url\u0022\u003A\u0022https\u003A\u005C\u002F\u005C\u002Fwebstore.iec.ch\u005C\u002Fen\u005C\u002Fproducts\u005C\u002Fproducts\u002Dby\u002Dtechnical\u002Darea\u005C\u002Finformation\u002Dtechnology\u005C\u002F\u0022,\u0022image\u0022\u003Afalse,\u0022has_active\u0022\u003Afalse,\u0022is_active\u0022\u003Afalse,\u0022is_category\u0022\u003Atrue,\u0022is_parent_active\u0022\u003Atrue,\u0022position\u0022\u003Anull,\u0022path\u0022\u003A\u00221\u005C\u002F2\u005C\u002F6\u005C\u002F17\u005C\u002F26\u0022,\u0022description\u0022\u003Anull,\u0022vap_code\u0022\u003A\u0022\u0022,\u0022ics_code\u0022\u003A\u002235\u0022,\u0022hide_see_all_link\u0022\u003A\u0022\u0022,\u0022is_click_disabled\u0022\u003Afalse,\u0022childData\u0022\u003A\u005B\u005D\u007D,\u0022category\u002Dnode\u002D30\u0022\u003A\u007B\u0022name\u0022\u003A\u0022Manufacturing\u0022,\u0022id\u0022\u003A\u0022category\u002Dnode\u002D30\u0022,\u0022url\u0022\u003A\u0022https\u003A\u005C\u002F\u005C\u002Fwebstore.iec.ch\u005C\u002Fen\u005C\u002Fproducts\u005C\u002Fproducts\u002Dby\u002Dtechnical\u002Darea\u005C\u002Fmanufacturing\u005C\u002F\u0022,\u0022image\u0022\u003Afalse,\u0022has_active\u0022\u003Afalse,\u0022is_active\u0022\u003Afalse,\u0022is_category\u0022\u003Atrue,\u0022is_parent_active\u0022\u003Atrue,\u0022position\u0022\u003Anull,\u0022path\u0022\u003A\u00221\u005C\u002F2\u005C\u002F6\u005C\u002F17\u005C\u002F30\u0022,\u0022description\u0022\u003Anull,\u0022vap_code\u0022\u003A\u0022\u0022,\u0022ics_code\u0022\u003A\u002225,07.120\u0022,\u0022hide_see_all_link\u0022\u003A\u0022\u0022,\u0022is_click_disabled\u0022\u003Afalse,\u0022childData\u0022\u003A\u005B\u005D\u007D,\u0022category\u002Dnode\u002D31\u0022\u003A\u007B\u0022name\u0022\u003A\u0022Others\u0022,\u0022id\u0022\u003A\u0022category\u002Dnode\u002D31\u0022,\u0022url\u0022\u003A\u0022https\u003A\u005C\u002F\u005C\u002Fwebstore.iec.ch\u005C\u002Fen\u005C\u002Fproducts\u005C\u002Fproducts\u002Dby\u002Dtechnical\u002Darea\u005C\u002Fothers\u005C\u002F\u0022,\u0022image\u0022\u003Afalse,\u0022has_active\u0022\u003Afalse,\u0022is_active\u0022\u003Afalse,\u0022is_category\u0022\u003Atrue,\u0022is_parent_active\u0022\u003Atrue,\u0022position\u0022\u003Anull,\u0022path\u0022\u003A\u00221\u005C\u002F2\u005C\u002F6\u005C\u002F17\u005C\u002F31\u0022,\u0022description\u0022\u003Anull,\u0022vap_code\u0022\u003A\u0022\u0022,\u0022ics_code\u0022\u003A\u0022\u0022,\u0022hide_see_all_link\u0022\u003A\u0022\u0022,\u0022is_click_disabled\u0022\u003Afalse,\u0022childData\u0022\u003A\u005B\u005D\u007D,\u0022category\u002Dnode\u002D44\u0022\u003A\u007B\u0022name\u0022\u003A\u0022Telecommunications\u0022,\u0022id\u0022\u003A\u0022category\u002Dnode\u002D44\u0022,\u0022url\u0022\u003A\u0022https\u003A\u005C\u002F\u005C\u002Fwebstore.iec.ch\u005C\u002Fen\u005C\u002Fproducts\u005C\u002Fproducts\u002Dby\u002Dtechnical\u002Darea\u005C\u002Ftelecommunications\u005C\u002F\u0022,\u0022image\u0022\u003Afalse,\u0022has_active\u0022\u003Afalse,\u0022is_active\u0022\u003Afalse,\u0022is_category\u0022\u003Atrue,\u0022is_parent_active\u0022\u003Atrue,\u0022position\u0022\u003Anull,\u0022path\u0022\u003A\u00221\u005C\u002F2\u005C\u002F6\u005C\u002F17\u005C\u002F44\u0022,\u0022description\u0022\u003Anull,\u0022vap_code\u0022\u003A\u0022\u0022,\u0022ics_code\u0022\u003A\u002233,37\u0022,\u0022hide_see_all_link\u0022\u003A\u0022\u0022,\u0022is_click_disabled\u0022\u003Afalse,\u0022childData\u0022\u003A\u005B\u005D\u007D,\u0022category\u002Dnode\u002D45\u0022\u003A\u007B\u0022name\u0022\u003A\u0022Terminology\u0020and\u0020metrology\u0022,\u0022id\u0022\u003A\u0022category\u002Dnode\u002D45\u0022,\u0022url\u0022\u003A\u0022https\u003A\u005C\u002F\u005C\u002Fwebstore.iec.ch\u005C\u002Fen\u005C\u002Fproducts\u005C\u002Fproducts\u002Dby\u002Dtechnical\u002Darea\u005C\u002Fterminology\u002Dand\u002Dmetrology\u005C\u002F\u0022,\u0022image\u0022\u003Afalse,\u0022has_active\u0022\u003Afalse,\u0022is_active\u0022\u003Afalse,\u0022is_category\u0022\u003Atrue,\u0022is_parent_active\u0022\u003Atrue,\u0022position\u0022\u003Anull,\u0022path\u0022\u003A\u00221\u005C\u002F2\u005C\u002F6\u005C\u002F17\u005C\u002F45\u0022,\u0022description\u0022\u003Anull,\u0022vap_code\u0022\u003A\u0022\u0022,\u0022ics_code\u0022\u003A\u002201,17,07.020,07.030\u0022,\u0022hide_see_all_link\u0022\u003A\u0022\u0022,\u0022is_click_disabled\u0022\u003Afalse,\u0022childData\u0022\u003A\u005B\u005D\u007D,\u0022category\u002Dnode\u002D46\u0022\u003A\u007B\u0022name\u0022\u003A\u0022Testing\u0022,\u0022id\u0022\u003A\u0022category\u002Dnode\u002D46\u0022,\u0022url\u0022\u003A\u0022https\u003A\u005C\u002F\u005C\u002Fwebstore.iec.ch\u005C\u002Fen\u005C\u002Fproducts\u005C\u002Fproducts\u002Dby\u002Dtechnical\u002Darea\u005C\u002Ftesting\u005C\u002F\u0022,\u0022image\u0022\u003Afalse,\u0022has_active\u0022\u003Afalse,\u0022is_active\u0022\u003Afalse,\u0022is_category\u0022\u003Atrue,\u0022is_parent_active\u0022\u003Atrue,\u0022position\u0022\u003Anull,\u0022path\u0022\u003A\u00221\u005C\u002F2\u005C\u002F6\u005C\u002F17\u005C\u002F46\u0022,\u0022description\u0022\u003Anull,\u0022vap_code\u0022\u003A\u0022\u0022,\u0022ics_code\u0022\u003A\u002219,21\u0022,\u0022hide_see_all_link\u0022\u003A\u0022\u0022,\u0022is_click_disabled\u0022\u003Afalse,\u0022childData\u0022\u003A\u005B\u005D\u007D,\u0022category\u002Dnode\u002D47\u0022\u003A\u007B\u0022name\u0022\u003A\u0022Transportation\u0022,\u0022id\u0022\u003A\u0022category\u002Dnode\u002D47\u0022,\u0022url\u0022\u003A\u0022https\u003A\u005C\u002F\u005C\u002Fwebstore.iec.ch\u005C\u002Fen\u005C\u002Fproducts\u005C\u002Fproducts\u002Dby\u002Dtechnical\u002Darea\u005C\u002Ftransportation\u005C\u002F\u0022,\u0022image\u0022\u003Afalse,\u0022has_active\u0022\u003Afalse,\u0022is_active\u0022\u003Afalse,\u0022is_category\u0022\u003Atrue,\u0022is_parent_active\u0022\u003Atrue,\u0022position\u0022\u003Anull,\u0022path\u0022\u003A\u00221\u005C\u002F2\u005C\u002F6\u005C\u002F17\u005C\u002F47\u0022,\u0022description\u0022\u003Anull,\u0022vap_code\u0022\u003A\u0022\u0022,\u0022ics_code\u0022\u003A\u0022\u0022,\u0022hide_see_all_link\u0022\u003A\u0022\u0022,\u0022is_click_disabled\u0022\u003Afalse,\u0022childData\u0022\u003A\u005B\u005D\u007D\u007D\u007D')" title="Products&#x20;by&#x20;technical&#x20;area" class="menu-item-link group inline-flex py-1 px-2 whitespace-nowrap first:mt-0 text-primary hover:text-white hover:bg-primary focus:text-white focus:bg-primary" @keyup.escape="$nextTick(() => document.querySelector('[data-sr-button-id=category\u002Dnode\u002D6]').focus())" ><svg width="14" height="12" viewBox="0 0 14 12" class="fill-primary group-hover:fill-white group-focus:fill-white"><path fill-rule="evenodd" clip-rule="evenodd" class="fill-primary group-hover:fill-white group-focus:fill-white" d="M7.29289 0.292893C7.68342 -0.0976311 8.31658 -0.0976311 8.70711 0.292893L13.7071 5.29289C14.0976 5.68342 14.0976 6.31658 13.7071 6.70711L8.70711 11.7071C8.31658 12.0976 7.68342 12.0976 7.29289 11.7071C6.90237 11.3166 6.90237 10.6834 7.29289 10.2929L10.5858 7H1C0.447715 7 0 6.55228 0 6C0 5.44772 0.447715 5 1 5H10.5858L7.29289 1.70711C6.90237 1.31658 6.90237 0.683417 7.29289 0.292893Z" /></svg><span class="font-bold text-lg">Products by technical area</span></button> </li> <li class="menu-item"><a href="https://webstore.iec.ch/en/products/" title="Products&#x20;by&#x20;technical&#x20;area" class="menu-item-link group inline-flex py-1 px-2 whitespace-nowrap first:mt-0 text-primary hover:text-white hover:bg-primary focus:text-white focus:bg-primary" ><svg width="14" height="12" viewBox="0 0 14 12" class="fill-primary group-hover:fill-white group-focus:fill-white"><path fill-rule="evenodd" clip-rule="evenodd" class="fill-primary group-hover:fill-white group-focus:fill-white" d="M7.29289 0.292893C7.68342 -0.0976311 8.31658 -0.0976311 8.70711 0.292893L13.7071 5.29289C14.0976 5.68342 14.0976 6.31658 13.7071 6.70711L8.70711 11.7071C8.31658 12.0976 7.68342 12.0976 7.29289 11.7071C6.90237 11.3166 6.90237 10.6834 7.29289 10.2929L10.5858 7H1C0.447715 7 0 6.55228 0 6C0 5.44772 0.447715 5 1 5H10.5858L7.29289 1.70711C6.90237 1.31658 6.90237 0.683417 7.29289 0.292893Z" /></svg><span class="text-base no-text-transform">All products</span></a></li> </div></ul><ul x-show="activeSubmenu != null" class="submenu absolute w-full z-10 hidden shadow-lg left-0 origin-top bg-white" :class="{ 'hidden' : activeSubmenu == null || hoverPanelActiveId !== 'category-node-6', 'block' : activeSubmenu !== null && hoverPanelActiveId === 'category-node-6' }" ><div class="submenu-container container"><div class="submenu-list"><button type="button" class="submenu-back group inline-flex py-1 px-2 whitespace-nowrap first:mt-0 text-primary hover:text-white hover:bg-primary focus:text-white focus:bg-primary" @click="backSubMenu('category-node-6')"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="12" viewBox="0 0 14 12" class="fill-primary group-hover:fill-white group-focus:fill-white"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.70711 0.292893C7.09763 0.683417 7.09763 1.31658 6.70711 1.70711L3.41421 5H13C13.5523 5 14 5.44772 14 6C14 6.55228 13.5523 7 13 7H3.41421L6.70711 10.2929C7.09763 10.6834 7.09763 11.3166 6.70711 11.7071C6.31658 12.0976 5.68342 12.0976 5.29289 11.7071L0.292893 6.70711C-0.0976311 6.31658 -0.0976311 5.68342 0.292893 5.29289L5.29289 0.292893C5.68342 -0.0976311 6.31658 -0.0976311 6.70711 0.292893Z"/></svg><span x-text="activeSubmenuName"></span></button> <div class="submenu-items"><template x-for="subMenu in submenuItems"><li class="submenu-item"><a x-bind:href="subMenu.url" class="submenu-item-link inline-flex whitespace-nowrap text-primary py-1 px-2 hover:text-white hover:bg-primary focus:text-white focus:bg-primary" @mouseenter="setCategoryData(subMenu)" ><span x-text="subMenu.name"></span></a></li></template><template x-if="activeSubmenu && activeSubmenu.hide_see_all_link !== '1'"><li class="submenu-item"><a x-bind:href="activeSubmenu.url" class="submenu-item-link inline-flex whitespace-nowrap text-primary py-1 px-2 hover:text-white hover:bg-primary focus:text-white focus:bg-primary" @mouseenter="setCategoryData(null)" ><span>See all</span></a></li></template></div></div><div class="submenu-data"><p class="submenu-data-title" x-text="categoryData.name"></p><p class="submenu-data-description" x-html="categoryData.description"></p><button x-show="categoryData.url != null" type="button" class="submenu-data-button btn btn-primary btn-size-sm gap-1" @click="window.location = categoryData.url" >See all<span class="uppercase" x-text="categoryData.vap_code"></span></button></div></div></ul></li> <li class="item level-0 h-full has-children" @mouseleave="toggleNav(0, 'has-children')" @mouseenter.prevent="toggleNav('category-node-7', 'has-children')" @keyup.escape="toggleNav(0, 'has-children')" ><span class="item-content flex items-center h-full"><a class="item-link level-0 flex items-center w-full h-full" href="javascript:void(0)" title="Just&#x20;Published" @focus="hoverPanelActiveId = 0" @click="openMenuOnClick('category-node-7')" ><span class="py-8 px-6 pl-0">Just Published</span> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" clip-rule="evenodd" d="M12 16C12.2652 16 12.5196 15.8946 12.7071 15.7071L18.7071 9.70711C19.0976 9.31658 19.0976 8.68342 18.7071 8.29289C18.3166 7.90237 17.6834 7.90237 17.2929 8.29289L12 13.5858L6.70711 8.29289C6.31658 7.90237 5.68342 7.90237 5.29289 8.29289C4.90237 8.68342 4.90237 9.31658 5.29289 9.70711L11.2929 15.7071C11.4804 15.8946 11.7348 16 12 16Z"/></svg></a></span> <ul x-show="activeSubmenu == null" class="menu absolute w-full z-10 hidden shadow-lg left-0 origin-top bg-white" :class="{ 'hidden' : hoverPanelActiveId !== 'category-node-7', 'block' : hoverPanelActiveId === 'category-node-7' }" ><div class="menu-container container"> <li class="menu-item"> <a href="https://webstore.iec.ch/en/just-published/past-month/" title="Past&#x20;month" class="submenu-item-link inline-flex whitespace-nowrap py-1 px-2 first:mt-0 text-primary hover:text-white hover:bg-primary focus:text-white focus:bg-primary" @keyup.escape="$nextTick(() => document.querySelector('[data-sr-button-id=category\u002Dnode\u002D7]').focus())" ><span class="font-bold text-lg">Past month</span></a> </li> <li class="menu-item"> <a href="https://webstore.iec.ch/en/just-published/past-2-weeks/" title="Past&#x20;2&#x20;weeks" class="submenu-item-link inline-flex whitespace-nowrap py-1 px-2 first:mt-0 text-primary hover:text-white hover:bg-primary focus:text-white focus:bg-primary" @keyup.escape="$nextTick(() => document.querySelector('[data-sr-button-id=category\u002Dnode\u002D7]').focus())" ><span class="font-bold text-lg">Past 2 weeks</span></a> </li> <li class="menu-item"> <a href="https://webstore.iec.ch/en/just-published/past-week/" title="Past&#x20;week" class="submenu-item-link inline-flex whitespace-nowrap py-1 px-2 first:mt-0 text-primary hover:text-white hover:bg-primary focus:text-white focus:bg-primary" @keyup.escape="$nextTick(() => document.querySelector('[data-sr-button-id=category\u002Dnode\u002D7]').focus())" ><span class="font-bold text-lg">Past week</span></a> </li> <li class="menu-item"> <a href="https://webstore.iec.ch/en/just-published/past-day/" title="Past&#x20;day" class="submenu-item-link inline-flex whitespace-nowrap py-1 px-2 first:mt-0 text-primary hover:text-white hover:bg-primary focus:text-white focus:bg-primary" @keyup.escape="$nextTick(() => document.querySelector('[data-sr-button-id=category\u002Dnode\u002D7]').focus())" ><span class="font-bold text-lg">Past day</span></a> </li> </div></ul><ul x-show="activeSubmenu != null" class="submenu absolute w-full z-10 hidden shadow-lg left-0 origin-top bg-white" :class="{ 'hidden' : activeSubmenu == null || hoverPanelActiveId !== 'category-node-7', 'block' : activeSubmenu !== null && hoverPanelActiveId === 'category-node-7' }" ><div class="submenu-container container"><div class="submenu-list"><button type="button" class="submenu-back group inline-flex py-1 px-2 whitespace-nowrap first:mt-0 text-primary hover:text-white hover:bg-primary focus:text-white focus:bg-primary" @click="backSubMenu('category-node-7')"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="12" viewBox="0 0 14 12" class="fill-primary group-hover:fill-white group-focus:fill-white"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.70711 0.292893C7.09763 0.683417 7.09763 1.31658 6.70711 1.70711L3.41421 5H13C13.5523 5 14 5.44772 14 6C14 6.55228 13.5523 7 13 7H3.41421L6.70711 10.2929C7.09763 10.6834 7.09763 11.3166 6.70711 11.7071C6.31658 12.0976 5.68342 12.0976 5.29289 11.7071L0.292893 6.70711C-0.0976311 6.31658 -0.0976311 5.68342 0.292893 5.29289L5.29289 0.292893C5.68342 -0.0976311 6.31658 -0.0976311 6.70711 0.292893Z"/></svg><span x-text="activeSubmenuName"></span></button> <div class="submenu-items"><template x-for="subMenu in submenuItems"><li class="submenu-item"><a x-bind:href="subMenu.url" class="submenu-item-link inline-flex whitespace-nowrap text-primary py-1 px-2 hover:text-white hover:bg-primary focus:text-white focus:bg-primary" @mouseenter="setCategoryData(subMenu)" ><span x-text="subMenu.name"></span></a></li></template><template x-if="activeSubmenu && activeSubmenu.hide_see_all_link !== '1'"><li class="submenu-item"><a x-bind:href="activeSubmenu.url" class="submenu-item-link inline-flex whitespace-nowrap text-primary py-1 px-2 hover:text-white hover:bg-primary focus:text-white focus:bg-primary" @mouseenter="setCategoryData(null)" ><span>See all</span></a></li></template></div></div><div class="submenu-data"><p class="submenu-data-title" x-text="categoryData.name"></p><p class="submenu-data-description" x-html="categoryData.description"></p><button x-show="categoryData.url != null" type="button" class="submenu-data-button btn btn-primary btn-size-sm gap-1" @click="window.location = categoryData.url" >See all<span class="uppercase" x-text="categoryData.vap_code"></span></button></div></div></ul></li> <li class="item level-0 h-full " @mouseleave="toggleNav(0, '')" @mouseenter.prevent="toggleNav('category-node-8', '')" @keyup.escape="toggleNav(0, '')" ><span class="item-content flex items-center h-full"><a class="item-link level-0 flex items-center w-full h-full" href="https://webstore.iec.ch/en/bestsellers/" title="Bestsellers" @focus="hoverPanelActiveId = 0" @click="" ><span class="py-8 px-6 ">Bestsellers</span> </a></span> </li> </ul></nav></div></div><script> 'use strict'; const initMenuDesktop_674783f53729f = () => { return { hoverPanelActiveId: null, activeSubmenu: null, activeSubmenuName: null, submenuItems: [], categoryData: { 'description': null, 'url': null, 'name': null, 'vap_code': '' }, setActiveMenu(menuNode) { this.activeSubmenu = null; this.submenuItems = []; Array.from(menuNode.querySelectorAll('a')).filter(link => { return link.href === window.location.href.split('?')[0]; }).map(item => { item.classList.add('active'); item.closest('div.level-0') && item.closest('div.level-0').querySelector('a.level-0').classList.add('active'); }); }, openMenuOnClick(menuNode) { if (menuNode === this.hoverPanelActiveId) { this.hoverPanelActiveId = 0; } else { this.hoverPanelActiveId = menuNode } }, openSubMenuOnClick(menuNode) { let decodedMenuNode = JSON.parse(menuNode) this.activeSubmenu = decodedMenuNode this.activeSubmenuName = decodedMenuNode['name'] this.submenuItems = decodedMenuNode['childData'] this.setCategoryData(Object.values(this.submenuItems)[0]) }, setCategoryData(childData) { if (childData !== null) { this.categoryData.description = childData['description'] this.categoryData.name = childData['name'] this.categoryData.url = childData['url'] this.categoryData.vap_code = childData['vap_code'] ?? '' } else { this.categoryData = { 'description': null, 'url': null, 'name': null, 'vap_code': '' }; } }, resetSubMenus() { this.activeSubmenu = null; this.submenuItems = []; this.categoryData = { 'description': null, 'url': null, 'name': null, 'vap_code': '' }; }, toggleNav (i, children = false, e) { this.resetSubMenus() setTimeout(() => { this.hoverPanelActiveId = i if (children) { this.setOverlayDisplay(i ? 'block' : 'none') } }, e ? 10 : 0) }, backSubMenu(i) { this.toggleNav(i, true, true) }, setOverlayDisplay(display) { document.querySelector('.page-overlay').style.display = display; } } }</script></div><div class="sub-header-search grow flex-2"> <div class="search-container h-full" x-data="initMiniSearch()" @filter-updated.window="filterUpdated($event)" ><form id="search_mini_form" class="form minisearch h-full flex items-center gap-2" x-ref="form" @submit.prevent="search()" action="https://webstore.iec.ch/en/catalogsearch/result/" method="get" role="search" ><label for="search" data-role="minisearch-label" class="flex items-center w-full h-full m-0"><span class="hidden">Search</span> <div class="search-icon"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"><path d="M13.7955 13.8111L19 19M16 8.5C16 12.6421 12.6421 16 8.5 16C4.35786 16 1 12.6421 1 8.5C1 4.35786 4.35786 1 8.5 1C12.6421 1 16 4.35786 16 8.5Z" stroke="#0067B6" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /></svg></div><input id="search" x-ref="searchInput" type="search" autocomplete="off" name="q" value="" placeholder="Search&#x20;products&#x20;by&#x20;reference&#x20;number,&#x20;terms,&#x20;keywords" class="ml-4 w-full border-0 p-0 leading-normal transition" @focus="suggest" @input.debounce.300="suggest" @search-open.window.debounce.10="$el.focus();$el.select()" @keydown.arrow-down.prevent="focusElement(document.querySelector('.minisearch_suggest ul'))" /></label> <template x-if="suggestions.length > 0"><div class="minisearch_suggest absolute w-full leading-normal transition appearance-none rounded-b-2xl bg-white py-6 px-6 md:px-8" @mousedown.outside="closeSuggest"><strong class="block text-lg text-primary pb-2">Suggestions</strong> <ul><template x-for="suggestion in suggestions"><li> <button type="button" class="text-left text-primary hover:text-primary-dark focus:text-primary-dark py-2 px-4 -ml-4 focus-visible:outline-1 focus-visible:outline-offset-2" tabindex="0" @click="search(suggestion.value)" @keydown.enter="search(suggestion.value)" @keydown.arrow-up.prevent="focusElement($event.target.parentNode.previousElementSibling)" @keydown.arrow-down.prevent="focusElement($event.target.parentNode.nextElementSibling)" ><span x-text="suggestion.value"></span></button></li></template></ul></div></template><button type="submit" title="Search" class="action search btn btn-primary hidden md:inline-flex" aria-label="Search" >Search</button></form></div> <script> function initMiniSearch() { return { minSearchLength: 3, suggestions: [], validOnly: true, showTrf: false, suggest() { let search = this.$refs.searchInput; if (search.value.length >= this.minSearchLength) { search.setCustomValidity(''); search.reportValidity(); this.fetchSuggestions(search.value); } else { this.suggestions = []; } }, filterUpdated(event) { if (event.detail) { this.validOnly = event.detail.validOnly; this.showTrf = event.detail.showTrf; } }, fetchSuggestions(term) { let params = new URLSearchParams({ query: term, mode: 'PUBLICATION', language: '', validOnly: this.validOnly, showTrf: this.showTrf, }); fetch('https://webstore-search-api.iec.ch/api/publications/autocomplete?' + params) .then(response => response.json()) .then(result => this.suggestions = result); }, search(term) { let search = this.$refs.searchInput; term = term || search.value; if (term.length < this.minSearchLength) { search.setCustomValidity('Minimum\u0020search\u0020query\u0020length\u0020is\u00203'); search.reportValidity(); } else { search.setCustomValidity(''); search.value = term; this.$refs.form.submit(); } this.suggestions = []; }, closeSuggest() { this.suggestions = []; }, focusElement(el) { if (el && el.tagName === 'BUTTON') { el.focus() } else { el?.querySelector('button')?.focus() } } } }</script></div></div></div></header><div class="page-overlay">&nbsp;</div><div class="top-container"> <nav class="breadcrumbs" aria-label="Breadcrumb"><div class="container"><ol class="items list-reset pt-6 pb-9 flex flex-wrap text-primary text-xs md:text-sm"> <li class="item flex items-center mb-1 home"> <a href="https://webstore.iec.ch/en/" class="no-underline" title="Go&#x20;to&#x20;home&#x20;page" >Home</a> </li> <li class="item flex items-center mb-1 category8"> <span aria-hidden="true" class="separator px-0 md:px-1"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.52876 3.52864C5.78911 3.26829 6.21122 3.26829 6.47157 3.52864L10.4716 7.52864C10.7319 7.78899 10.7319 8.2111 10.4716 8.47145L6.47157 12.4714C6.21122 12.7318 5.78911 12.7318 5.52876 12.4714C5.26841 12.2111 5.26841 11.789 5.52876 11.5286L9.05735 8.00004L5.52876 4.47145C5.26841 4.2111 5.26841 3.78899 5.52876 3.52864Z" fill="#0067B6"/></svg></span> <span aria-current="page" class="text-primary-darker" >Bestsellers</span> </li> </ol></div></nav></div><main id="maincontent" class="page-main"> <div id="contentarea" tabindex="-1"></div><div class="page messages"> <script> function initMessages() { "use strict"; return { messages: window.mageMessages || [], isEmpty() { return this.messages.reduce( function (isEmpty, message) { return isEmpty && message === undefined }, true ) }, removeMessage(messageIndex) { this.messages[messageIndex] = undefined; }, addMessages(messages, hideAfter) { messages.map((message) => { this.messages = this.messages.concat(message); if (hideAfter === undefined && message.type === 'success' && window.defaultSuccessMessageTimeout) { hideAfter = window.defaultSuccessMessageTimeout; } if (hideAfter) { this.setHideTimeOut(this.messages.length -1, hideAfter); } }); }, setHideTimeOut(messageIndex, hideAfter) { setTimeout((messageIndex) => { this.removeMessage(messageIndex); }, hideAfter, messageIndex); }, eventListeners: { ['@messages-loaded.window'](event) { this.addMessages(event.detail.messages, event.detail.hideAfter) }, ['@private-content-loaded.window'](event) { const data = event.detail.data; if ( data.messages && data.messages.messages && data.messages.messages.length ) { this.addMessages(data.messages.messages); } }, ['@clear-messages.window']() { this.messages = []; } } } }</script><section id="messages" x-data="initMessages()" x-bind="eventListeners" aria-live="assertive" role="alert" ><template x-if="!isEmpty()"><div class="w-full"><div class="messages container mx-auto py-3"><template x-for="(message, index) in messages" :key="index"><div><template x-if="message"><div class="message" :class="message.type" :ui-id="'message-' + message.type" ><span x-html="message.text"></span> <button type="button" class="text-gray-600 hover:text-black" aria-label="Close message" @click.prevent="removeMessage(index)" ><svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" viewBox="0 0 24 24" class="stroke-current" width="18" height="18" aria-hidden="true" role="img"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18 18 6M6 6l12 12"/><title>x</title></svg> </button></div></template></div></template></div></div></template></section></div><div class="columns"><div class="column main"><div id="monkey_campaign" style="display:none;" data-mage-init='{"campaigncatcher":{"checkCampaignUrl": "https://webstore.iec.ch/en/mailchimp/campaign/check/"}}'></div> <div x-data="categoryPage()" class="plp"> <div class="flex flex-row justify-center items-center w-full h-full fixed select-none z-50" style="left: 50%;top: 50%;transform: translateX(-50%) translateY(-50%);background: rgba(255,255,255,0.7);" x-show="isLoading" x-transition:enter="ease-out duration-200" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="ease-in duration-200" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0"><!-- By Sam Herbert (@sherb), for everyone. More @ http://goo.gl/7AJzbL --> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 57 57" stroke="currentColor" class="text-primary" width="57" height="57" role="img"> <g fill="none" fill-rule="evenodd"> <g transform="translate(1 1)" stroke-width="2"> <circle cx="5" cy="50" r="5"> <animate attributeName="cy" begin="0s" dur="2.2s" values="50;5;50;50" calcMode="linear" repeatCount="indefinite"/> <animate attributeName="cx" begin="0s" dur="2.2s" values="5;27;49;5" calcMode="linear" repeatCount="indefinite"/> </circle> <circle cx="27" cy="5" r="5"> <animate attributeName="cy" begin="0s" dur="2.2s" from="5" to="5" values="5;50;50;5" calcMode="linear" repeatCount="indefinite"/> <animate attributeName="cx" begin="0s" dur="2.2s" from="27" to="27" values="27;49;5;27" calcMode="linear" repeatCount="indefinite"/> </circle> <circle cx="49" cy="50" r="5"> <animate attributeName="cy" begin="0s" dur="2.2s" values="50;50;5;50" calcMode="linear" repeatCount="indefinite"/> <animate attributeName="cx" from="49" to="49" begin="0s" dur="2.2s" values="49;5;27;49" calcMode="linear" repeatCount="indefinite"/> </circle> </g> </g> <title>loader</title></svg> <div class="ml-10 text-primary text-xl">Loading...</div></div> <div class="plp-header mb-16"><div class="hero-title"><h1 class="!mb-2">Bestsellers</h1></div><p class="text-sm mb-4"></p></div><div class="flex flex-col mb-20"><div class="flex flex-wrap gap-6 justify-between items-center mb-6 lg:mb-8"><button type="button" class="btn-filters" @click="openSidebar = true" :aria-expanded="openSidebar ? 'true' : 'false'" aria-controls="sidebar-filters"><span x-text="totalItems"></span> <template x-if="totalItems === 0"><span class="mr-auto">Product</span></template><template x-if="totalItems > 0"><span class="mr-auto">products</span></template><svg class="block lg:hidden" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M15.7955 15.8111L21 21M18 10.5C18 14.6421 14.6421 18 10.5 18C6.35786 18 3 14.6421 3 10.5C3 6.35786 6.35786 3 10.5 3C14.6421 3 18 6.35786 18 10.5Z" stroke="#0067B6" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg><svg class="block lg:hidden ml-6" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M4 2C3.44772 2 3 2.44772 3 3V6.17071C1.83481 6.58254 1 7.69378 1 9C1 10.3062 1.83481 11.4175 3 11.8293V21C3 21.5523 3.44772 22 4 22C4.55228 22 5 21.5523 5 21V11.8293C6.16519 11.4175 7 10.3062 7 9C7 7.69378 6.16519 6.58254 5 6.17071V3C5 2.44772 4.55228 2 4 2ZM12 2C11.4477 2 11 2.44772 11 3V12.1707C9.83481 12.5825 9 13.6938 9 15C9 16.3062 9.83481 17.4175 11 17.8293V21C11 21.5523 11.4477 22 12 22C12.5523 22 13 21.5523 13 21V17.8293C14.1652 17.4175 15 16.3062 15 15C15 13.6938 14.1652 12.5825 13 12.1707V3C13 2.44772 12.5523 2 12 2ZM19 3C19 2.44772 19.4477 2 20 2C20.5523 2 21 2.44772 21 3V7.17071C22.1652 7.58254 23 8.69378 23 10C23 11.3062 22.1652 12.4175 21 12.8293V21C21 21.5523 20.5523 22 20 22C19.4477 22 19 21.5523 19 21V12.8293C17.8348 12.4175 17 11.3062 17 10C17 8.69378 17.8348 7.58254 19 7.17071V3ZM20 11C19.4477 11 19 10.5523 19 10C19 9.44772 19.4477 9 20 9C20.5523 9 21 9.44772 21 10C21 10.5523 20.5523 11 20 11ZM4 10C3.44772 10 3 9.55228 3 9C3 8.44772 3.44772 8 4 8C4.55228 8 5 8.44772 5 9C5 9.55228 4.55228 10 4 10ZM12 16C11.4477 16 11 15.5523 11 15C11 14.4477 11.4477 14 12 14C12.5523 14 13 14.4477 13 15C13 15.5523 12.5523 16 12 16Z" fill="#0067B6"/></svg></button> <div class="gap-2 hidden lg:flex" x-show="validOnlyAvailable"><div class="switch"><input id="valid_only" type="checkbox" name="valid_only" x-model="validOnly" x-on:change="changeStatus" /><label for="valid_only" class="text-sm">Valid publications only</label></div><div class="hidden lg:flex gap-6 ml-10"> <button class="modes-mode mode-grid" title="Grid" href="#" :class="displayMode === 'grid' ? 'active': ''" @click.prevent="changeDisplay('grid')" data-role="mode-switcher" data-value="grid" role="checkbox" aria-checked="false" aria-label="Products&#x20;view&#x20;mode&#x20;-&#x20;Grid" > <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.56811 3C5.57873 3 5.58936 3.00001 5.60001 3.00001H8.40001C8.41065 3.00001 8.42128 3 8.4319 3C8.68429 2.99997 8.93008 2.99994 9.13824 3.01695C9.36683 3.03563 9.63656 3.07969 9.90799 3.21799C10.2843 3.40974 10.5903 3.7157 10.782 4.09202C10.9203 4.36345 10.9644 4.63318 10.9831 4.86178C11.0001 5.06993 11 5.31572 11 5.56811C11 5.57873 11 5.58936 11 5.60001V8.40001C11 8.41065 11 8.42128 11 8.4319C11 8.68429 11.0001 8.93008 10.9831 9.13824C10.9644 9.36683 10.9203 9.63656 10.782 9.90799C10.5903 10.2843 10.2843 10.5903 9.90799 10.782C9.63656 10.9203 9.36683 10.9644 9.13824 10.9831C8.93008 11.0001 8.68429 11 8.4319 11C8.42128 11 8.41065 11 8.40001 11H5.60001C5.58936 11 5.57873 11 5.56811 11C5.31572 11 5.06993 11.0001 4.86178 10.9831C4.63318 10.9644 4.36345 10.9203 4.09202 10.782C3.7157 10.5903 3.40974 10.2843 3.21799 9.90799C3.07969 9.63656 3.03563 9.36683 3.01695 9.13824C2.99994 8.93008 2.99997 8.68429 3 8.4319C3 8.42128 3.00001 8.41065 3.00001 8.40001V5.60001C3.00001 5.58936 3 5.57873 3 5.56811C2.99997 5.31572 2.99994 5.06993 3.01695 4.86178C3.03563 4.63318 3.07969 4.36345 3.21799 4.09202C3.40974 3.7157 3.7157 3.40974 4.09202 3.21799C4.36345 3.07969 4.63318 3.03563 4.86178 3.01695C5.06993 2.99994 5.31572 2.99997 5.56811 3ZM5.01145 5.01145C5.01107 5.0156 5.01069 5.02 5.01031 5.02464C5.00078 5.14122 5.00001 5.30348 5.00001 5.60001V8.40001C5.00001 8.69653 5.00078 8.85879 5.01031 8.97537C5.01069 8.98001 5.01107 8.98441 5.01145 8.98856C5.0156 8.98894 5.02 8.98932 5.02464 8.9897C5.14122 8.99923 5.30348 9.00001 5.60001 9.00001H8.40001C8.69653 9.00001 8.85879 8.99923 8.97537 8.9897C8.98001 8.98932 8.98441 8.98894 8.98856 8.98856C8.98894 8.98441 8.98932 8.98001 8.9897 8.97537C8.99923 8.85879 9.00001 8.69653 9.00001 8.40001V5.60001C9.00001 5.30348 8.99923 5.14122 8.9897 5.02464C8.98932 5.02 8.98894 5.0156 8.98856 5.01145C8.98441 5.01107 8.98001 5.01069 8.97537 5.01031C8.85879 5.00078 8.69653 5.00001 8.40001 5.00001H5.60001C5.30348 5.00001 5.14122 5.00078 5.02464 5.01031C5.02 5.01069 5.0156 5.01107 5.01145 5.01145ZM15.5681 3H18.4319C18.6843 2.99997 18.9301 2.99994 19.1382 3.01695C19.3668 3.03563 19.6366 3.07969 19.908 3.21799C20.2843 3.40974 20.5903 3.7157 20.782 4.09202C20.9203 4.36345 20.9644 4.63318 20.9831 4.86178C21.0001 5.06993 21 5.31571 21 5.56809V8.43192C21 8.6843 21.0001 8.93008 20.9831 9.13824C20.9644 9.36683 20.9203 9.63656 20.782 9.90799C20.5903 10.2843 20.2843 10.5903 19.908 10.782C19.6366 10.9203 19.3668 10.9644 19.1382 10.9831C18.9301 11.0001 18.6843 11 18.4319 11H15.5681C15.3157 11 15.0699 11.0001 14.8618 10.9831C14.6332 10.9644 14.3634 10.9203 14.092 10.782C13.7157 10.5903 13.4097 10.2843 13.218 9.90799C13.0797 9.63656 13.0356 9.36683 13.0169 9.13824C12.9999 8.93007 13 8.68428 13 8.43189V5.56812C13 5.31574 12.9999 5.06994 13.0169 4.86178C13.0356 4.63318 13.0797 4.36345 13.218 4.09202C13.4097 3.7157 13.7157 3.40974 14.092 3.21799C14.3634 3.07969 14.6332 3.03563 14.8618 3.01695C15.0699 2.99994 15.3157 2.99997 15.5681 3ZM15.0115 5.01145C15.0111 5.0156 15.0107 5.02 15.0103 5.02464C15.0008 5.14122 15 5.30348 15 5.60001V8.40001C15 8.69653 15.0008 8.85879 15.0103 8.97537C15.0107 8.98001 15.0111 8.98441 15.0115 8.98856C15.0156 8.98894 15.02 8.98932 15.0246 8.9897C15.1412 8.99923 15.3035 9.00001 15.6 9.00001H18.4C18.6965 9.00001 18.8588 8.99923 18.9754 8.9897C18.98 8.98932 18.9844 8.98894 18.9886 8.98856C18.9889 8.98441 18.9893 8.98001 18.9897 8.97537C18.9992 8.85879 19 8.69653 19 8.40001V5.60001C19 5.30348 18.9992 5.14122 18.9897 5.02464C18.9893 5.02 18.9889 5.0156 18.9886 5.01145C18.9844 5.01107 18.98 5.01069 18.9754 5.01031C18.8588 5.00078 18.6965 5.00001 18.4 5.00001H15.6C15.3035 5.00001 15.1412 5.00078 15.0246 5.01031C15.02 5.01069 15.0156 5.01107 15.0115 5.01145ZM5.56812 13H8.43189C8.68428 13 8.93007 12.9999 9.13824 13.0169C9.36683 13.0356 9.63656 13.0797 9.90799 13.218C10.2843 13.4097 10.5903 13.7157 10.782 14.092C10.9203 14.3634 10.9644 14.6332 10.9831 14.8618C11.0001 15.0699 11 15.3157 11 15.5681V18.4319C11 18.6843 11.0001 18.9301 10.9831 19.1382C10.9644 19.3668 10.9203 19.6366 10.782 19.908C10.5903 20.2843 10.2843 20.5903 9.90799 20.782C9.63656 20.9203 9.36683 20.9644 9.13824 20.9831C8.93008 21.0001 8.6843 21 8.43192 21H5.56809C5.31571 21 5.06993 21.0001 4.86178 20.9831C4.63318 20.9644 4.36345 20.9203 4.09202 20.782C3.7157 20.5903 3.40974 20.2843 3.21799 19.908C3.07969 19.6366 3.03563 19.3668 3.01695 19.1382C2.99994 18.9301 2.99997 18.6843 3 18.4319V15.5681C2.99997 15.3157 2.99994 15.0699 3.01695 14.8618C3.03563 14.6332 3.07969 14.3634 3.21799 14.092C3.40974 13.7157 3.7157 13.4097 4.09202 13.218C4.36345 13.0797 4.63318 13.0356 4.86178 13.0169C5.06994 12.9999 5.31574 13 5.56812 13ZM5.01145 15.0115C5.01107 15.0156 5.01069 15.02 5.01031 15.0246C5.00078 15.1412 5.00001 15.3035 5.00001 15.6V18.4C5.00001 18.6965 5.00078 18.8588 5.01031 18.9754C5.01069 18.98 5.01107 18.9844 5.01145 18.9886C5.0156 18.9889 5.02 18.9893 5.02464 18.9897C5.14122 18.9992 5.30348 19 5.60001 19H8.40001C8.69653 19 8.85879 18.9992 8.97537 18.9897C8.98001 18.9893 8.98441 18.9889 8.98856 18.9886C8.98894 18.9844 8.98932 18.98 8.9897 18.9754C8.99923 18.8588 9.00001 18.6965 9.00001 18.4V15.6C9.00001 15.3035 8.99923 15.1412 8.9897 15.0246C8.98932 15.02 8.98894 15.0156 8.98856 15.0115C8.98441 15.0111 8.98001 15.0107 8.97537 15.0103C8.85879 15.0008 8.69653 15 8.40001 15H5.60001C5.30348 15 5.14122 15.0008 5.02464 15.0103C5.02 15.0107 5.0156 15.0111 5.01145 15.0115ZM15.5681 13H18.4319C18.6843 13 18.9301 12.9999 19.1382 13.0169C19.3668 13.0356 19.6366 13.0797 19.908 13.218C20.2843 13.4097 20.5903 13.7157 20.782 14.092C20.9203 14.3634 20.9644 14.6332 20.9831 14.8618C21.0001 15.0699 21 15.3157 21 15.5681V18.4319C21 18.6843 21.0001 18.9301 20.9831 19.1382C20.9644 19.3668 20.9203 19.6366 20.782 19.908C20.5903 20.2843 20.2843 20.5903 19.908 20.782C19.6366 20.9203 19.3668 20.9644 19.1382 20.9831C18.9301 21.0001 18.6843 21 18.4319 21H15.5681C15.3157 21 15.0699 21.0001 14.8618 20.9831C14.6332 20.9644 14.3634 20.9203 14.092 20.782C13.7157 20.5903 13.4097 20.2843 13.218 19.908C13.0797 19.6366 13.0356 19.3668 13.0169 19.1382C12.9999 18.9301 13 18.6843 13 18.4319V15.5681C13 15.3157 12.9999 15.0699 13.0169 14.8618C13.0356 14.6332 13.0797 14.3634 13.218 14.092C13.4097 13.7157 13.7157 13.4097 14.092 13.218C14.3634 13.0797 14.6332 13.0356 14.8618 13.0169C15.0699 12.9999 15.3157 13 15.5681 13ZM15.0115 15.0115C15.0111 15.0156 15.0107 15.02 15.0103 15.0246C15.0008 15.1412 15 15.3035 15 15.6V18.4C15 18.6965 15.0008 18.8588 15.0103 18.9754C15.0107 18.98 15.0111 18.9844 15.0115 18.9886C15.0156 18.9889 15.02 18.9893 15.0246 18.9897C15.1412 18.9992 15.3035 19 15.6 19H18.4C18.6965 19 18.8588 18.9992 18.9754 18.9897C18.98 18.9893 18.9844 18.9889 18.9886 18.9886C18.9889 18.9844 18.9893 18.98 18.9897 18.9754C18.9992 18.8588 19 18.6965 19 18.4V15.6C19 15.3035 18.9992 15.1412 18.9897 15.0246C18.9893 15.02 18.9889 15.0156 18.9886 15.0115C18.9844 15.0111 18.98 15.0107 18.9754 15.0103C18.8588 15.0008 18.6965 15 18.4 15H15.6C15.3035 15 15.1412 15.0008 15.0246 15.0103C15.02 15.0107 15.0156 15.0111 15.0115 15.0115Z"/></svg></button> <button class="modes-mode mode-list" title="List" href="#" :class="displayMode === 'list' ? 'active': ''" @click.prevent="changeDisplay('list')" data-role="mode-switcher" data-value="list" role="checkbox" aria-checked="false" aria-label="Products&#x20;view&#x20;mode&#x20;-&#x20;List" > <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M20.6,15H3.4C1.7,15,1,14.3,1,12.6v-1.2C1,9.7,1.7,9,3.4,9h17.2c1.7,0,2.4,0.7,2.4,2.4v1.2C23,14.3,22.3,15,20.6,15z M3,13.1L3,13.1L3,13.1z M3,13c0.1,0,0.2,0,0.4,0h17.2c0.2,0,0.3,0,0.4,0c0-0.1,0-0.2,0-0.4v-1.2c0-0.2,0-0.3,0-0.4c-0.1,0-0.2,0-0.4,0H3.4c-0.2,0-0.3,0-0.4,0c0,0.1,0,0.2,0,0.4v1.2C3,12.8,3,12.9,3,13z"/><path d="M20.6,7H3.4C1.7,7,1,6.3,1,4.6V3.4C1,1.7,1.7,1,3.4,1h17.2C22.3,1,23,1.7,23,3.4v1.2C23,6.3,22.3,7,20.6,7zM3,5.1L3,5.1L3,5.1z M3,5c0.1,0,0.2,0,0.4,0h17.2c0.2,0,0.3,0,0.4,0c0-0.1,0-0.2,0-0.4V3.4c0-0.2,0-0.3,0-0.4c-0.1,0-0.2,0-0.4,0H3.4C3.2,3,3.1,3,3,3c0,0.1,0,0.2,0,0.4v1.2C3,4.8,3,4.9,3,5z"/><path d="M20.6,23H3.4C1.7,23,1,22.3,1,20.6v-1.2C1,17.7,1.7,17,3.4,17h17.2c1.7,0,2.4,0.7,2.4,2.4v1.2C23,22.3,22.3,23,20.6,23z M3,21.1L3,21.1L3,21.1z M3,21c0.1,0,0.2,0,0.4,0h17.2c0.2,0,0.3,0,0.4,0c0-0.1,0-0.2,0-0.4v-1.2c0-0.2,0-0.3,0-0.4c-0.1,0-0.2,0-0.4,0H3.4c-0.2,0-0.3,0-0.4,0c0,0.1,0,0.2,0,0.4v1.2C3,20.8,3,20.9,3,21z"/></svg></button> </div></div></div><div class="grid grid-cols-4 gap-6"><div class="sidebar-filters col-span-1 hidden lg:block" :class="{ 'hidden': !openSidebar }" id="sidebar-filters"><div class="lg:hidden flex items-center justify-between mb-6"><strong class="text-primary-darker text-2xl">Filters</strong> <button type="button" @click="openSidebar = false"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="25" viewBox="0 0 24 25" fill="none"><path d="M19 5.49988L5 19.4999M5 5.49988L19 19.4999" stroke="#0067B6" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg></button></div> <template x-if="Object.values(filters).length > 0"><div class="bg-white lg:rounded-2xl lg:pt-6 lg:pb-0.5 lg:px-4"><button type="button" class="btn btn-secondary btn-size-sm btn-icon w-full mb-6" x-on:click="clearFilters" x-show="hasFilters" ><svg xmlns="http://www.w3.org/2000/svg" width="25" height="24" viewBox="0 0 25 24" fill="none"><path d="M21.5 8.49884C19.5 6 16.0334 3 12.4991 3C7.86722 3 4.05265 6.49951 3.55499 10.9989M21.5 8.49884V3.99884M21.5 8.49884H17M21.4428 13.0038C20.9434 17.5013 17.1297 20.9988 12.4991 20.9988C8.96723 20.9988 5.5 18 3.5 15.4988M3.5 15.4988V19.9988M3.5 15.4988H8" stroke="#0067B6" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="fill: none !important;"/></svg><span>Clear filters</span></button> <div class="switch block lg:hidden lg:py-4 mb-6" x-show="validOnlyAvailable"><input id="valid_only" type="checkbox" name="valid_only" x-model="validOnly" x-on:change="changeStatus" /><label for="valid_only" class="text-sm">Valid publications only</label></div><template x-if="trfAvailable"><div class="switch lg:py-4 mb-6"><input id="show_trf" type="checkbox" name="show_trf" x-model="showTrf" x-on:change="applyTrf" /><label for="show_trf" class="text-sm">Show Test report forms</label></div></template><template x-if="searchInFilters"><label class="mb-6 relative block"><input type="text" name="query" class="w-full p-4 pr-12 flex gap-2 justify-between items-center border-grey rounded" placeholder="Search" x-model="query" @keydown.enter="search" ><svg class="absolute right-4 top-4 cursor-pointer" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" x-on:click="search" ><path fill-rule="evenodd" clip-rule="evenodd" d="M21 9.50018C21 13.09 18.0899 16.0002 14.5 16.0002C13.0659 16.0002 11.7403 15.5357 10.6653 14.7491L4.70711 20.7073C4.31658 21.0978 3.68342 21.0978 3.29289 20.7073C2.90237 20.3168 2.90237 19.6836 3.29289 19.2931L9.2511 13.3349C8.46443 12.2599 8 10.9343 8 9.50018C8 5.91033 10.9101 3.00018 14.5 3.00018C18.0899 3.00018 21 5.91033 21 9.50018ZM19 9.50018C19 11.9855 16.9853 14.0002 14.5 14.0002C12.0147 14.0002 10 11.9855 10 9.50018C10 7.0149 12.0147 5.00018 14.5 5.00018C16.9853 5.00018 19 7.0149 19 9.50018Z" fill="#473F3F"/></svg></label></template><template x-if="!defaults.hideDate && (dateMin !== null || dateMax !== null)"><div class="mb-6"><span class="text-sm block mb-2">Publication date</span> <div class="flex md:flex-col gap-4"><div class="relative grow overflow-hidden"><input type="date" name="min_date" x-model="dateMin" x-bind:min="dateFilter.min" x-bind:max="dateFilter.max" x-on:blur="loadFilters" placeholder="From" class="rounded border-grey p-4 w-full h-[58px] text-left" ><svg class="absolute right-4 top-4 bg-white pointer-events-none" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M7 2C7.55229 2 8 2.44772 8 3V4H16V3C16 2.44772 16.4477 2 17 2C17.5523 2 18 2.44772 18 3V4.00003C18.459 4.00031 18.8593 4.00314 19.195 4.03057C19.5904 4.06287 19.9836 4.13419 20.362 4.32698C20.9265 4.6146 21.3854 5.07354 21.673 5.63803C21.8658 6.01641 21.9371 6.40963 21.9694 6.80497C22 7.17954 22 7.63429 22 8.16143V17.8386C22 18.3657 22 18.8205 21.9694 19.195C21.9371 19.5904 21.8658 19.9836 21.673 20.362C21.3854 20.9265 20.9265 21.3854 20.362 21.673C19.9836 21.8658 19.5904 21.9371 19.195 21.9694C18.8205 22 18.3657 22 17.8386 22H6.16144C5.6343 22 5.17954 22 4.80497 21.9694C4.40963 21.9371 4.01641 21.8658 3.63803 21.673C3.07354 21.3854 2.6146 20.9265 2.32698 20.362C2.13419 19.9836 2.06287 19.5904 2.03057 19.195C1.99997 18.8205 1.99998 18.3657 2 17.8385V8.16146C1.99998 7.63431 1.99997 7.17954 2.03057 6.80497C2.06287 6.40963 2.13419 6.01641 2.32698 5.63803C2.6146 5.07354 3.07354 4.6146 3.63803 4.32698C4.01641 4.13419 4.40963 4.06287 4.80497 4.03057C5.14075 4.00314 5.54097 4.00031 6 4.00003V3C6 2.44772 6.44772 2 7 2ZM6.2 6C5.62345 6 5.25118 6.00078 4.96784 6.02393C4.69617 6.04612 4.59546 6.0838 4.54601 6.10899C4.35785 6.20487 4.20487 6.35785 4.109 6.54601C4.0838 6.59545 4.04612 6.69617 4.02393 6.96784C4.00357 7.21698 4.00052 7.5349 4.00007 8H19.9999C19.9995 7.5349 19.9964 7.21698 19.9761 6.96784C19.9539 6.69617 19.9162 6.59545 19.891 6.54601C19.7951 6.35785 19.6422 6.20487 19.454 6.10899C19.4045 6.0838 19.3038 6.04612 19.0322 6.02393C18.7488 6.00078 18.3766 6 17.8 6H6.2ZM20 10H4V17.8C4 18.3766 4.00078 18.7488 4.02393 19.0322C4.04612 19.3038 4.0838 19.4045 4.109 19.454C4.20487 19.6422 4.35785 19.7951 4.54601 19.891C4.59546 19.9162 4.69617 19.9539 4.96784 19.9761C5.25117 19.9992 5.62345 20 6.2 20H17.8C18.3766 20 18.7488 19.9992 19.0322 19.9761C19.3038 19.9539 19.4045 19.9162 19.454 19.891C19.6422 19.7951 19.7951 19.6422 19.891 19.454C19.9162 19.4045 19.9539 19.3038 19.9761 19.0322C19.9992 18.7488 20 18.3766 20 17.8V10ZM5 13C5 12.4477 5.44772 12 6 12H8C8.55229 12 9 12.4477 9 13C9 13.5523 8.55229 14 8 14H6C5.44772 14 5 13.5523 5 13ZM10 13C10 12.4477 10.4477 12 11 12H13C13.5523 12 14 12.4477 14 13C14 13.5523 13.5523 14 13 14H11C10.4477 14 10 13.5523 10 13ZM15 13C15 12.4477 15.4477 12 16 12H18C18.5523 12 19 12.4477 19 13C19 13.5523 18.5523 14 18 14H16C15.4477 14 15 13.5523 15 13ZM5 17C5 16.4477 5.44772 16 6 16H8C8.55229 16 9 16.4477 9 17C9 17.5523 8.55229 18 8 18H6C5.44772 18 5 17.5523 5 17ZM10 17C10 16.4477 10.4477 16 11 16H13C13.5523 16 14 16.4477 14 17C14 17.5523 13.5523 18 13 18H11C10.4477 18 10 17.5523 10 17ZM15 17C15 16.4477 15.4477 16 16 16H18C18.5523 16 19 16.4477 19 17C19 17.5523 18.5523 18 18 18H16C15.4477 18 15 17.5523 15 17Z" fill="#5B5B5B"/></svg></div><div class="relative grow overflow-hidden"><input type="date" name="max_date" x-model="dateMax" x-bind:min="dateFilter.min" x-bind:max="dateFilter.max" x-on:blur="loadFilters" placeholder="To" class="rounded border-grey p-4 w-full h-[58px] text-left" ><svg class="absolute right-4 top-4 bg-white pointer-events-none" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M7 2C7.55229 2 8 2.44772 8 3V4H16V3C16 2.44772 16.4477 2 17 2C17.5523 2 18 2.44772 18 3V4.00003C18.459 4.00031 18.8593 4.00314 19.195 4.03057C19.5904 4.06287 19.9836 4.13419 20.362 4.32698C20.9265 4.6146 21.3854 5.07354 21.673 5.63803C21.8658 6.01641 21.9371 6.40963 21.9694 6.80497C22 7.17954 22 7.63429 22 8.16143V17.8386C22 18.3657 22 18.8205 21.9694 19.195C21.9371 19.5904 21.8658 19.9836 21.673 20.362C21.3854 20.9265 20.9265 21.3854 20.362 21.673C19.9836 21.8658 19.5904 21.9371 19.195 21.9694C18.8205 22 18.3657 22 17.8386 22H6.16144C5.6343 22 5.17954 22 4.80497 21.9694C4.40963 21.9371 4.01641 21.8658 3.63803 21.673C3.07354 21.3854 2.6146 20.9265 2.32698 20.362C2.13419 19.9836 2.06287 19.5904 2.03057 19.195C1.99997 18.8205 1.99998 18.3657 2 17.8385V8.16146C1.99998 7.63431 1.99997 7.17954 2.03057 6.80497C2.06287 6.40963 2.13419 6.01641 2.32698 5.63803C2.6146 5.07354 3.07354 4.6146 3.63803 4.32698C4.01641 4.13419 4.40963 4.06287 4.80497 4.03057C5.14075 4.00314 5.54097 4.00031 6 4.00003V3C6 2.44772 6.44772 2 7 2ZM6.2 6C5.62345 6 5.25118 6.00078 4.96784 6.02393C4.69617 6.04612 4.59546 6.0838 4.54601 6.10899C4.35785 6.20487 4.20487 6.35785 4.109 6.54601C4.0838 6.59545 4.04612 6.69617 4.02393 6.96784C4.00357 7.21698 4.00052 7.5349 4.00007 8H19.9999C19.9995 7.5349 19.9964 7.21698 19.9761 6.96784C19.9539 6.69617 19.9162 6.59545 19.891 6.54601C19.7951 6.35785 19.6422 6.20487 19.454 6.10899C19.4045 6.0838 19.3038 6.04612 19.0322 6.02393C18.7488 6.00078 18.3766 6 17.8 6H6.2ZM20 10H4V17.8C4 18.3766 4.00078 18.7488 4.02393 19.0322C4.04612 19.3038 4.0838 19.4045 4.109 19.454C4.20487 19.6422 4.35785 19.7951 4.54601 19.891C4.59546 19.9162 4.69617 19.9539 4.96784 19.9761C5.25117 19.9992 5.62345 20 6.2 20H17.8C18.3766 20 18.7488 19.9992 19.0322 19.9761C19.3038 19.9539 19.4045 19.9162 19.454 19.891C19.6422 19.7951 19.7951 19.6422 19.891 19.454C19.9162 19.4045 19.9539 19.3038 19.9761 19.0322C19.9992 18.7488 20 18.3766 20 17.8V10ZM5 13C5 12.4477 5.44772 12 6 12H8C8.55229 12 9 12.4477 9 13C9 13.5523 8.55229 14 8 14H6C5.44772 14 5 13.5523 5 13ZM10 13C10 12.4477 10.4477 12 11 12H13C13.5523 12 14 12.4477 14 13C14 13.5523 13.5523 14 13 14H11C10.4477 14 10 13.5523 10 13ZM15 13C15 12.4477 15.4477 12 16 12H18C18.5523 12 19 12.4477 19 13C19 13.5523 18.5523 14 18 14H16C15.4477 14 15 13.5523 15 13ZM5 17C5 16.4477 5.44772 16 6 16H8C8.55229 16 9 16.4477 9 17C9 17.5523 8.55229 18 8 18H6C5.44772 18 5 17.5523 5 17ZM10 17C10 16.4477 10.4477 16 11 16H13C13.5523 16 14 16.4477 14 17C14 17.5523 13.5523 18 13 18H11C10.4477 18 10 17.5523 10 17ZM15 17C15 16.4477 15.4477 16 16 16H18C18.5523 16 19 16.4477 19 17C19 17.5523 18.5523 18 18 18H16C15.4477 18 15 17.5523 15 17Z" fill="#5B5B5B"/></svg></div></div></div></template><template x-for="(filter, index) in getSortedFilters()"><template x-if="filter"><div x-data="filterFacet()" class="mb-6 border border-grey-lighter rounded" x-show="filter.show && filter.buckets.length > 0" @update-tree.window="updateTree($event)" ><button type="button" :aria-controls="'filter-' + index" :aria-expanded="open ? 'true' : 'false'" class="w-full p-4 flex gap-2 justify-between items-center" x-on:click="open=!open" ><span class="text-lg font-bold text-grey-darker text-left" x-text="getItemName(filter.name, filter.name)" ></span> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M12 16C12.2652 16 12.5196 15.8946 12.7071 15.7071L18.7071 9.70711C19.0976 9.31658 19.0976 8.68342 18.7071 8.29289C18.3166 7.90237 17.6834 7.90237 17.2929 8.29289L12 13.5858L6.70711 8.29289C6.31658 7.90237 5.68342 7.90237 5.29289 8.29289C4.90237 8.68342 4.90237 9.31658 5.29289 9.70711L11.2929 15.7071C11.4804 15.8946 11.7348 16 12 16Z" fill="#5B5B5B" /></svg></button> <div x-show="open" :id="'filter-' + index" x-cloak class="px-4 pb-4 overflow-y-auto" style="max-height: 24rem" x-transition ><template x-for="child1 in filter.buckets"> <div x-data="{open: false}"><div><div class="flex gap-2 items-center p-2 rounded mt-2" :class="{'bg-container-darker': getChildLength(filter.name, child1) > 0}" ><button type="button" :class="open ? 'rotate-90' : ''" x-on:click="open=!open" x-show="getChildLength(filter.name, child1) > 0" ><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.52827 3.52858C5.78862 3.26823 6.21073 3.26823 6.47108 3.52858L10.4711 7.52858C10.7314 7.78892 10.7314 8.21103 10.4711 8.47138L6.47108 12.4714C6.21073 12.7317 5.78862 12.7317 5.52827 12.4714C5.26792 12.211 5.26792 11.7889 5.52827 11.5286L9.05687 7.99998L5.52827 4.47138C5.26792 4.21103 5.26792 3.78892 5.52827 3.52858Z" fill="#0067B6" /></svg></button> <div x-show="getChildLength(filter.name, child1) <= 0"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"></svg></div><input type="checkbox" class="rounded-md p-2 cursor-pointer" :id="'item-' + 1 + '-' + child1.key" x-bind:data-facet="filter.name" x-bind:data-key="child1.key" x-bind:data-level="1" x-bind:disabled="isDisabled(1, child1.key, filter.name)" x-on:change.prevent="applyFilter" :checked="isChecked(child1.key, 1)" :class="{'dashed': isDashed(child1.key, 1)}" ><label :for="'item-' + 1 + '-' + child1.key" class="md:flex md:gap-2 md:items-center md:truncate cursor-pointer leading-[normal]" @mouseout="nameHandleMouseOut" @mousemove="nameHandleMouseMove" ><span x-text="getItemName(filter.name, child1.key)" class="text-xs"></span> <span class="text-xs" x-text="'(' + child1.doc_count + ')'"></span> <span class="text-xs md:truncate item-label" x-text="getLabelName(child1,1,filter.name)" ></span></label></div><div class="opacity-0 transition-opacity tooltip fixed p-2 text-gray-600 bg-container-darker rounded pointer-events-none shadow" style="z-index: 9999" ><div class="flex gap-2 items-center"><span x-text="getItemName(filter.name, child1.key)" class="text-xs"></span> <span class="text-xs" x-text="'(' + child1.doc_count + ')'"></span> <span class="text-xs" x-text="getLabelName(child1,1,filter.name)" ></span></div></div></div> <template x-if="getChildLength(filter.name, child1) > 0"><div class="ml-6 overflow-y-auto" style="max-height: 24rem" x-cloak x-transition x-show="open" ><template x-for="child2 in sortFilterData(filter.name, child1.key, child1.nested.buckets)"> <div x-data="{open: false}"><div><div class="flex gap-2 items-center p-2 rounded mt-2" :class="{'bg-container-darker': getChildLength(filter.name, child2) > 0}" ><button type="button" :class="open ? 'rotate-90' : ''" x-on:click="open=!open" x-show="getChildLength(filter.name, child2) > 0" ><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.52827 3.52858C5.78862 3.26823 6.21073 3.26823 6.47108 3.52858L10.4711 7.52858C10.7314 7.78892 10.7314 8.21103 10.4711 8.47138L6.47108 12.4714C6.21073 12.7317 5.78862 12.7317 5.52827 12.4714C5.26792 12.211 5.26792 11.7889 5.52827 11.5286L9.05687 7.99998L5.52827 4.47138C5.26792 4.21103 5.26792 3.78892 5.52827 3.52858Z" fill="#0067B6" /></svg></button> <div x-show="getChildLength(filter.name, child2) <= 0"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"></svg></div><input type="checkbox" class="rounded-md p-2 cursor-pointer" :id="'item-' + 2 + '-' + child2.key" x-bind:data-facet="filter.name" x-bind:data-key="child2.key" x-bind:data-level="2" x-bind:disabled="isDisabled(2, child2.key, filter.name)" x-on:change.prevent="applyFilter" :checked="isChecked(child2.key, 2)" :class="{'dashed': isDashed(child2.key, 2)}" ><label :for="'item-' + 2 + '-' + child2.key" class="md:flex md:gap-2 md:items-center md:truncate cursor-pointer leading-[normal]" @mouseout="nameHandleMouseOut" @mousemove="nameHandleMouseMove" ><span x-text="getItemName(filter.name, child2.key)" class="text-xs"></span> <span class="text-xs" x-text="'(' + child2.doc_count + ')'"></span> <span class="text-xs md:truncate item-label" x-text="getLabelName(child2,2,filter.name)" ></span></label></div><div class="opacity-0 transition-opacity tooltip fixed p-2 text-gray-600 bg-container-darker rounded pointer-events-none shadow" style="z-index: 9999" ><div class="flex gap-2 items-center"><span x-text="getItemName(filter.name, child2.key)" class="text-xs"></span> <span class="text-xs" x-text="'(' + child2.doc_count + ')'"></span> <span class="text-xs" x-text="getLabelName(child2,2,filter.name)" ></span></div></div></div> <template x-if="getChildLength(filter.name, child2) > 0"><div class="ml-6 overflow-y-auto" style="max-height: 24rem" x-cloak x-transition x-show="open" ><template x-for="child3 in sortFilterData(filter.name, child2.key, child2.nested.buckets)"> <div x-data="{open: false}"><div><div class="flex gap-2 items-center p-2 rounded mt-2" :class="{'bg-container-darker': getChildLength(filter.name, child3) > 0}" ><button type="button" :class="open ? 'rotate-90' : ''" x-on:click="open=!open" x-show="getChildLength(filter.name, child3) > 0" ><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.52827 3.52858C5.78862 3.26823 6.21073 3.26823 6.47108 3.52858L10.4711 7.52858C10.7314 7.78892 10.7314 8.21103 10.4711 8.47138L6.47108 12.4714C6.21073 12.7317 5.78862 12.7317 5.52827 12.4714C5.26792 12.211 5.26792 11.7889 5.52827 11.5286L9.05687 7.99998L5.52827 4.47138C5.26792 4.21103 5.26792 3.78892 5.52827 3.52858Z" fill="#0067B6" /></svg></button> <div x-show="getChildLength(filter.name, child3) <= 0"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"></svg></div><input type="checkbox" class="rounded-md p-2 cursor-pointer" :id="'item-' + 3 + '-' + child3.key" x-bind:data-facet="filter.name" x-bind:data-key="child3.key" x-bind:data-level="3" x-bind:disabled="isDisabled(3, child3.key, filter.name)" x-on:change.prevent="applyFilter" :checked="isChecked(child3.key, 3)" :class="{'dashed': isDashed(child3.key, 3)}" ><label :for="'item-' + 3 + '-' + child3.key" class="md:flex md:gap-2 md:items-center md:truncate cursor-pointer leading-[normal]" @mouseout="nameHandleMouseOut" @mousemove="nameHandleMouseMove" ><span x-text="getItemName(filter.name, child3.key)" class="text-xs"></span> <span class="text-xs" x-text="'(' + child3.doc_count + ')'"></span> <span class="text-xs md:truncate item-label" x-text="getLabelName(child3,3,filter.name)" ></span></label></div><div class="opacity-0 transition-opacity tooltip fixed p-2 text-gray-600 bg-container-darker rounded pointer-events-none shadow" style="z-index: 9999" ><div class="flex gap-2 items-center"><span x-text="getItemName(filter.name, child3.key)" class="text-xs"></span> <span class="text-xs" x-text="'(' + child3.doc_count + ')'"></span> <span class="text-xs" x-text="getLabelName(child3,3,filter.name)" ></span></div></div></div> </div></template></div></template></div></template></div></template></div></template></div></div></template></template></div></template><template x-if="Object.values(filters).length === 0"><div class="bg-white rounded-lg shadow-xl p-4"><template x-if="trfAvailable"><div class="switch lg:py-4 mb-6"><input id="show_trf" type="checkbox" name="show_trf" x-model="showTrf" x-on:change="applyTrf" /><label for="show_trf" class="text-sm">Show Test report forms</label></div></template><p>No filters available</p></div></template><script> class TreeNode { constructor(key, value = key, parent = null) { this.key = key; this.value = value; this.parent = parent; this.children = []; } get isLeaf() { return this.children.length === 0; } get hasChildren() { return !this.isLeaf; } } class Tree { constructor(key, value = key) { this.root = new TreeNode(key, value); } * preOrderTraversal(node = this.root) { yield node; if (node.children.length) { for (let child of node.children) { yield* this.preOrderTraversal(child); } } } * postOrderTraversal(node = this.root) { if (node.children.length) { for (let child of node.children) { yield* this.postOrderTraversal(child); } } yield node; } insert(parentNodeKey, key, value = key) { for (let node of this.preOrderTraversal()) { if (node.key === parentNodeKey) { node.children.push(new TreeNode(key, value, node)); return true; } } return false; } remove(key) { for (let node of this.preOrderTraversal()) { const filtered = node.children.filter(c => c.key !== key); if (filtered.length !== node.children.length) { node.children = filtered; return true; } } return false; } find(key) { for (let node of this.preOrderTraversal()) { if (node.key === key) return node; } return undefined; } } function filterFacet() { return { name: null, tree: null, open: true, init() { this.name = this.filter.name; if (this.filterTrees[this.name] === undefined) { this.initTree(); } }, initTree() { this.tree = new Tree(this.name, this.name); this.buildTree(this.name, this.filters[this.name].buckets, this.name, 1); this.filterTrees[this.name] = this.tree; }, updateTree(event) { let filterName = event.detail.name; if (this.name === filterName) { this.initTree(); } }, buildTree(parentKey, data, facet, level) { let nextLevel = level + 1; for (let item of data) { let value = false; let itemKey = 'level_' + level + '_' + item.key; if (this.facets[facet] && this.facets[facet][level] && this.facets[facet][level].includes(item.key) ) { value = true; } if (this.tree.find(parentKey).value === true) { value = true; } this.tree.insert(parentKey, itemKey, value); if (item.nested && item.nested.buckets && item.nested.buckets.length > 0) { this.buildTree(itemKey, item.nested.buckets, facet, nextLevel); } } }, applyFilter(event) { let target = event.target; let key = target.dataset.key; let level = parseInt(target.dataset.level); let node = this.tree.find('level_' + level + '_' + key); if (node) { node.value = target.checked; this.changeChildrenValues(node, target.checked); if (level === 3) { if (node.parent.parent.value === true) { if (node.parent.value === true) { node.parent.value = target.checked; node.parent.parent.value = target.checked; this.changeChildrenValues(node.parent, target.checked); } } else { if (node.parent.value === true) { node.parent.value = target.checked; } } } if (level === 2) { node.parent.value = this.hasAllChildrenSelected(node.parent); } this.applyFacets(); } }, changeChildrenValues(node, value) { for (let child of this.tree.preOrderTraversal(node)) { child.value = value; } }, hasChildrenSelected(node, ignore) { if (node) { for (let child of this.tree.preOrderTraversal(node)) { if (child.value === true) { if (ignore) { if (child.key !== ignore) { return true; } } else { return true; } } } } return false; }, hasAllChildrenSelected(node) { if (node) { for (let child of node.children) { if (child.value === false) { return false; } } return true; } return false; }, isChecked(key, level) { if (this.tree) { let node = this.tree.find('level_' + level + '_' + key); return node && node.value === true; } return false; }, isDashed(key, level) { if (this.tree) { let node = this.tree.find('level_' + level + '_' + key); return node && node.value === false && this.hasChildrenSelected(node) === true } return false; }, getChildLength(filterName, item) { let length = 0; if (item.nested) { length = this.sortFilterData(filterName, item.key, item.nested.buckets).length; } if (length === undefined) { length = 0; } return length; } } }</script> <button type="button" class="lg:hidden btn btn-primary w-full" @click="openSidebar = false">Validate</button></div><template x-if="items.length === 0"><div class="col-span-4 lg:col-span-3"><p class="flex flex-col justify-between bg-white rounded-lg md:rounded-2xl py-6 px-4 lg:px-6 shadow-md md:shadow-none"><span>No data</span> <a class="text-primary cursor-pointer" x-on:click="removeFilters" >Remove all filters</a></p></div></template><template x-if="items.length > 0"><div class="col-span-4 lg:col-span-3"><template x-if="displayMode === 'list'"><div class="flex flex-col gap-6"><template x-for="item in items"> <div class="flex flex-col justify-between bg-white rounded-lg md:rounded-2xl gap-2 py-6 px-4 lg:px-6 shadow-md md:shadow-none hover:shadow-lg transition"><div class="flex flex-wrap justify-between gap-2"><ul class="categories flex gap-2" x-data="categoryTags()"><template x-for="tag in getTags(item)"><li> <a x-bind:href="tag.url" x-text="tag.name" :class="tag.class" class="tag -border -dot" ></a></li></template></ul><span x-text="getTechnicalCommittee(item._source)" class="text-sm whitespace-nowrap leading-[34px]"></span></div><div class="flex justify-between gap-2 md:gap-6 items-center"><div class="relative"><a x-bind:href="BASE_URL + 'publication/' + item._source.id" class="text-lg font-bold text-primary hover:text-primary-dark break-word uppercase flex items-center gap-2" ><template x-if="!validOnly && item._source.status === 'PUBLISHED'"><span class="tag -border -dot -lime" style="border: none"></span></template><template x-if="!validOnly && item._source.status !== 'PUBLISHED'"><span class="tag -border -dot -red" style="border: none"></span></template><span x-text="item._source.reference"></span></a> <div class="text-sm line-clamp-sm description" x-html="getDescription(item._source)"></div><p class="text-xs mt-2" x-text="'Edition ' + parseFloat(item._source.edition).toFixed(1)"></p></div><div class="bg-gray-100 p-1 font-bold rounded whitespace-nowrap"><span x-text="hyva.formatPrice((item._source.price.amount ? item._source.price.amount.toFixed(2) : '0.00'))"></span></div></div><div class="flex justify-end"><a :href="BASE_URL + 'publication/' + item._source.id" class="btn btn-primary btn-size-sm relative z-10" >Discover</a></div><template x-if="showRelatedPubs && getRelatedPubs(item).length > 0"><div x-data="{openRelated: false}" class="-mt-10"><button type="button" class="w-fit" x-on:click="openRelated=(openRelated===item._source.id ? false : item._source.id)" :aria-expended="openRelated===item._source.id ? 'true' : 'false'"><span class="btn btn-link" x-show="openRelated!==item._source.id"><span class="text-sm">Show all publications</span> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M7.99967 10.6667C8.17649 10.6667 8.34606 10.5964 8.47108 10.4714L12.4711 6.4714C12.7314 6.21105 12.7314 5.78894 12.4711 5.52859C12.2107 5.26824 11.7886 5.26824 11.5283 5.52859L7.99967 9.05719L4.47108 5.52859C4.21073 5.26824 3.78862 5.26824 3.52827 5.52859C3.26792 5.78894 3.26792 6.21105 3.52827 6.4714L7.52827 10.4714C7.65329 10.5964 7.82286 10.6667 7.99967 10.6667Z" fill="#0067B6"/></svg></span> <span class="btn btn-link" x-show="openRelated===item._source.id"><span class="text-sm">Show less</span> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M7.52827 5.52861C7.78862 5.26826 8.21073 5.26826 8.47108 5.52861L12.4711 9.5286C12.7314 9.78895 12.7314 10.2111 12.4711 10.4714C12.2107 10.7318 11.7886 10.7318 11.5283 10.4714L7.99967 6.94282L4.47108 10.4714C4.21073 10.7318 3.78862 10.7318 3.52827 10.4714C3.26792 10.2111 3.26792 9.78895 3.52827 9.5286L7.52827 5.52861Z" fill="#0067B6"/></svg></span></button> <div class="flex flex-col gap-4 mt-2" x-cloak x-show="openRelated===item._source.id" ><template x-for="related in getRelatedPubs(item)"><div class="justify-between ml-6 border-l pl-4 relative"><a x-bind:href="BASE_URL + 'publication/' + related._source.id" class="block text-lg font-bold text-primary break-all hover:text-primary-darker before:block before:absolute before:w-full before:h-full" x-text="related._source.reference" ></a> <p class="text-sm line-clamp-sm" x-text="getDescription(related._source)"></p><p class="text-xs mt-2" x-text="'Edition ' + parseFloat(related._source.edition).toFixed(1)"></p></div></template></div></div></template></div></template></div></template><template x-if="displayMode === 'grid'"><ul class="flex flex-col lg:grid lg:grid-cols-3 gap-6"><template x-for="item in items"><li class="flex flex-col bg-white rounded-lg gap-6 py-6 px-4 shadow-md md:shadow-none hover:shadow-lg transition"><div class="flex justify-between"><ul class="flex flex-wrap gap-2" x-data="categoryTags()"><template x-for="tag in getTags(item)"><li> <a x-bind:href="tag.url" x-text="tag.name" :class="tag.class" class="tag -border -dot" ></a></li></template></ul></div><div class="flex flex-col gap-4 grow"><a x-bind:href="BASE_URL + 'publication/' + item._source.id" class="text-lg font-bold text-primary hover:text-primary-dark break-word uppercase flex items-center gap-2" ><template x-if="!validOnly && item._source.status === 'PUBLISHED'"><span class="tag -border -dot -lime" style="border: none"></span></template><template x-if="!validOnly && item._source.status !== 'PUBLISHED'"><span class="tag -border -dot -red" style="border: none"></span></template><span x-text="item._source.reference"></span></a> <div x-html="getDescription(item._source)" class="text-xs"></div><div class="mt-auto flex gap-4 border-t border-b py-1 text-xs"><p x-text="'Edition ' + parseFloat(item._source.edition).toFixed(1)"></p><p x-text="getTechnicalCommittee(item._source)"></p></div></div><div class="flex justify-end"><div class="bg-gray-100 p-1 font-bold rounded whitespace-nowrap"><span x-text="hyva.formatPrice((item._source.price.amount ? item._source.price.amount.toFixed(2) : '0.00'))"></span></div></div><a :href="BASE_URL + 'publication/' + item._source.id" class="btn btn-primary btn-size-sm w-full" >Discover</a></li></template></ul></template> <template x-if="totalPages > 1"><nav class="pagination mt-6 flex items-center justify-center" x-data="pagination()"><ul class="flex gap-1.5 items-center"><template x-if="currentPage > 1"><li> <button type="button" x-on:click="goToPage(1)"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"><path fill-rule="evenodd" fill="#0067B6" clip-rule="evenodd" d="M13.5,12.5c-0.3,0.3-0.7,0.3-0.9,0l-4-4c-0.3-0.3-0.3-0.7,0-0.9l4-4c0.3-0.3,0.7-0.3,0.9,0c0.3,0.3,0.3,0.7,0,0.9L9.9,8l3.5,3.5C13.7,11.8,13.7,12.2,13.5,12.5z"/><path fill-rule="evenodd" fill="#0067B6" clip-rule="evenodd" d="M7.5,12.5c-0.3,0.3-0.7,0.3-0.9,0l-4-4c-0.3-0.3-0.3-0.7,0-0.9l4-4c0.3-0.3,0.7-0.3,0.9,0c0.3,0.3,0.3,0.7,0,0.9L3.9,8l3.5,3.5C7.7,11.8,7.7,12.2,7.5,12.5z"/></svg></button></li></template><template x-if="currentPage > 1"><li> <button type="button" x-on:click="previousPage"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.4717 3.52864C10.2114 3.26829 9.78927 3.26829 9.52892 3.52864L5.52892 7.52864C5.4039 7.65366 5.33366 7.82323 5.33366 8.00004C5.33366 8.17685 5.4039 8.34642 5.52892 8.47145L9.52892 12.4714C9.78927 12.7318 10.2114 12.7318 10.4717 12.4714C10.7321 12.2111 10.7321 11.789 10.4717 11.5286L6.94313 8.00004L10.4717 4.47145C10.7321 4.2111 10.7321 3.78899 10.4717 3.52864Z" fill="#0067B6"/></svg></button></li></template><template x-if="currentPage - 2 >= 1"><li> <button type="button" x-on:click="goToPage(currentPage - 2)" x-text="currentPage - 2" ></button></li></template><template x-if="currentPage - 1 >= 1"><li> <button type="button" x-on:click="goToPage(currentPage - 1)" x-text="currentPage - 1" ></button></li></template><li> <span aria-current="page" x-text="currentPage"></span></li> <template x-if="currentPage + 1 <= totalPages"><li> <button type="button" x-on:click="goToPage(currentPage + 1)" x-text="currentPage + 1" ></button></li></template><template x-if="currentPage + 2 <= totalPages"><li> <button type="button" x-on:click="goToPage(currentPage + 2)" x-text="currentPage + 2" ></button></li></template><template x-if="currentPage < totalPages"><li> <button type="button" x-on:click="nextPage"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.52827 3.52864C5.78862 3.26829 6.21073 3.26829 6.47108 3.52864L10.4711 7.52864C10.7314 7.78899 10.7314 8.2111 10.4711 8.47145L6.47108 12.4714C6.21073 12.7318 5.78862 12.7318 5.52827 12.4714C5.26792 12.2111 5.26792 11.789 5.52827 11.5286L9.05687 8.00004L5.52827 4.47145C5.26792 4.2111 5.26792 3.78899 5.52827 3.52864Z" fill="#0067B6"/></svg></button></li></template><template x-if="currentPage < totalPages"><li> <button type="button" x-on:click="goToPage(totalPages)"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" fill="#0067B6" d="M2.5,3.5c0.3-0.3,0.7-0.3,0.9,0l4,4c0.3,0.3,0.3,0.7,0,0.9l-4,4c-0.3,0.3-0.7,0.3-0.9,0c-0.3-0.3-0.3-0.7,0-0.9 L6.1,8L2.5,4.5C2.3,4.2,2.3,3.8,2.5,3.5z"/><path fill-rule="evenodd" clip-rule="evenodd" fill="#0067B6" d="M8.5,3.5c0.3-0.3,0.7-0.3,0.9,0l4,4c0.3,0.3,0.3,0.7,0,0.9l-4,4c-0.3,0.3-0.7,0.3-0.9,0c-0.3-0.3-0.3-0.7,0-0.9 L12.1,8L8.5,4.5C8.3,4.2,8.3,3.8,8.5,3.5z"/></svg></button></li></template><li class="pager-per-page"><select x-on:change="changePerPage(event.target.value)" class="form-select"><template x-for="value in perPageValues"><option x-text="value" :value="value" :selected="parseInt(value) === perPage" ></option></template></select></li></ul></nav></template><script> function pagination() { return { previousPage() { if (this.currentPage > 1) { this.prevPage = this.currentPage; this.currentPage--; this.callApi(); window.scrollTo({top: 0, behavior: 'smooth'}); } }, goToPage(page) { this.prevPage = this.currentPage; if (page <= 1) { this.currentPage = 1; } else if (page >= this.totalPages) { this.currentPage = this.totalPages; } else { this.currentPage = page; } this.callApi(); window.scrollTo({top: 0, behavior: 'smooth'}); }, nextPage() { if (this.currentPage < this.totalPages) { this.prevPage = this.currentPage; this.currentPage++; this.callApi(); window.scrollTo({top: 0, behavior: 'smooth'}); } }, changePerPage(value) { this.perPage = parseInt(value) this.callApi(); window.scrollTo({top: 0, behavior: 'smooth'}); }, } }</script></div></template></div></div></div> <script> window.nameMapping = {"ics":{"ics":"ICS"},"header":{"header":"Header"},"committee":{"committee":"Technical committee"},"publication_type":{"publication_type":"Publication type"},"type":{"type":"Type","IS":"International Standard","TR":"Technical Report","TS":"Technical Specification","GUIDE":"Guide","TRF":"Test Report Form","PAS":"Publicly Available Specification","SRD":"Systems Reference Deliverable","WP":"White Paper","TEC":"Technology Report","STTR":"Societal and Technology Trend Report","TMOP":"Technology and Market Outlook Paper","OTHER":"Other"},"vap_type":{"vap_type":"VAP","CONSOLIDATED":"Consolidated version","REDLINE":"Redline version","COMMENTED":"Commented version","EXTENDED":"Extended version","PRERELEASE":"Pre-release version","TRF":"Test report form","PACK":"Pack","SERIES":"Series version"},"status":{"status":"Status","PUBLISHED":"Valid","REVISED":"Revised","REPLACED":"Replaced","WITHDRAWN":"Withdrawn"},"available_formats":{"status":"Available formats"}}; window.publicationTypeMapping = {"STANDARD":"","PUBLICATION":"","CORRIGENDUM":"","INTERPRETATION_SHEET":"","CONSOLIDATED":"csv","REDLINE":"rlv","COMMENTED":"cmv","PRERELEASE":"prv","EXTENDED":"exv","SERIES":"ser","PACK":"pac"}; window.vapTypeLabels = {"CONSOLIDATED":"Consolidated version","REDLINE":"Redline version","COMMENTED":"Commented version","PRERELEASE":"Pre-release version","EXTENDED":"Extended version","TRF":"Test report form","PACK":"Pack","SERIES":"Series version"}; window.statusLabels = {"PUBLISHED":"Valid","REVISED":"Revised","REPLACED":"Replaced","WITHDRAWN":"Withdrawn"}; window.vapDotClassMapping = {"csv":"consolidated","rlv":"redline","cmv":"commented","exv":"extended","prv":"pre-release","trf":"test-report","ser":"pack","pac":"series"}; window.statusDotClassMapping = {"PUBLISHED":"-valid","REVISED":"-withdraw","REPLACED":"-withdraw","WITHDRAWN":"-withdraw"}; function categoryTags() { return { tags: [{"name":"Root Catalog","ics":[],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/catalog\/category\/view\/s\/root-catalog\/id\/1\/"},{"name":"Default Category","ics":[],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/catalog\/category\/view\/s\/default-category\/id\/2\/"},{"name":"Content System","ics":[],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/catalog\/category\/view\/s\/content-system\/id\/4\/"},{"name":"Sample Category","ics":[],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/catalog\/category\/view\/s\/sample-category\/id\/5\/"},{"name":"Products","ics":[],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/"},{"name":"Just Published","ics":[],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/just-published\/"},{"name":"Bestsellers","ics":[],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/bestsellers\/"},{"name":"Value-added products","ics":[],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/value-added-products\/"},{"name":"Consolidated version (CSV)","ics":[],"vap":["csv"],"url":"https:\/\/webstore.iec.ch\/en\/products\/value-added-products\/consolidated-versions\/"},{"name":"Redline version (RLV)","ics":[],"vap":["rlv"],"url":"https:\/\/webstore.iec.ch\/en\/products\/value-added-products\/redline-versions\/"},{"name":"Commented version (CMV)","ics":[],"vap":["cmv"],"url":"https:\/\/webstore.iec.ch\/en\/products\/value-added-products\/commected-versions\/"},{"name":"Extended version (EXV)","ics":[],"vap":["exv"],"url":"https:\/\/webstore.iec.ch\/en\/products\/value-added-products\/extended-versions\/"},{"name":"Pre-release version (PRV)","ics":[],"vap":["prv"],"url":"https:\/\/webstore.iec.ch\/en\/products\/value-added-products\/pre-release-versions\/"},{"name":"Test report form (TRF)","ics":[],"vap":["trf"],"url":"https:\/\/webstore.iec.ch\/en\/products\/value-added-products\/test-report-forms\/"},{"name":"Products by technical area","ics":["1.11"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/"},{"name":"Company organization","ics":["03"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/company-organization\/"},{"name":"Electrical","ics":[],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/electrical\/"},{"name":"Electrical engineering","ics":["29","55.060","71"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/electrical\/electrical-engineering\/"},{"name":"Electrical installations of buildings","ics":["91"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/electrical\/electrical-installations-of-buildings\/"},{"name":"Household appliances","ics":["97","23.080","23.120","65"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/electrical\/household-appliances\/"},{"name":"Electronics","ics":["31"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/electronics\/"},{"name":"Energy","ics":["27"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/energy\/"},{"name":"Health","ics":["11","13"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/health\/"},{"name":"Information technology","ics":["35"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/information-technology\/"},{"name":"IT equipment","ics":["35.110","35.140","35.160","35.180","35.200","35.220","35.260"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/information-technology\/it-equipment\/"},{"name":"IT security","ics":["35.030"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/information-technology\/it-security\/"},{"name":"IT systems","ics":["35.020","35.040","35.060","35.080","35.100","35.210","35.240"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/information-technology\/it-systems\/"},{"name":"Manufacturing","ics":["25","07.120"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/manufacturing\/"},{"name":"Others","ics":[],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/others\/"},{"name":"Clothing industry","ics":["61"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/others\/clothing-industry\/"},{"name":"Food","ics":["67"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/others\/food\/"},{"name":"Fluid systems","ics":["23.040","23.060","23.100","23.140"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/others\/fluid-systems\/"},{"name":"Jewellery","ics":["39"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/others\/jewellery\/"},{"name":"Materials handling equipment","ics":["53"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/others\/materials-handling-equipment\/"},{"name":"Metallurgy","ics":["77"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/others\/metallurgy\/"},{"name":"Military engineering","ics":["95"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/others\/military-engineering\/"},{"name":"Packaging","ics":["55.020","55.080","55.180","55.230"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/others\/packaging\/"},{"name":"Paint and colour industries","ics":["87"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/others\/paint-and-colour-industries\/"},{"name":"Paper","ics":["85"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/others\/paper\/"},{"name":"Petroleum","ics":["75"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/others\/petroleum\/"},{"name":"Textile","ics":["59"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/others\/textile\/"},{"name":"Telecommunications","ics":["33","37"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/telecommunications\/"},{"name":"Terminology and metrology","ics":["01","17","07.020","07.030"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/terminology-and-metrology\/"},{"name":"Testing","ics":["19","21"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/testing\/"},{"name":"Transportation","ics":[],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/transportation\/"},{"name":"Aircraft","ics":["49"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/transportation\/aircraft\/"},{"name":"Civil engineering","ics":["93"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/transportation\/civil-engineering\/"},{"name":"Railway","ics":["45"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/transportation\/railway\/"},{"name":"Road","ics":["43"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/transportation\/road\/"},{"name":"Ships","ics":["47"],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/products\/products-by-technical-area\/transportation\/ships\/"},{"name":"Past month","ics":[],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/just-published\/past-month\/"},{"name":"Past 2 weeks","ics":[],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/just-published\/past-2-weeks\/"},{"name":"Past week","ics":[],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/just-published\/past-week\/"},{"name":"Past day","ics":[],"vap":[],"url":"https:\/\/webstore.iec.ch\/en\/just-published\/past-day\/"}], getTags(item) { let tags = []; for (let ics of item._source.ics) { for (let i = 3; i >= 1; i--) { let icsCode = ics['level_' + i]; if (icsCode) { let tag = this.getIcsTag(icsCode); if (tag !== undefined) { tag.class = 'technical-area -blueLight'; if (!tags.includes(tag)) { tags.push(tag); } break; } } } } let pubType = item._source.publication_type; let reference = item._source.reference; let vapCode = ''; if (pubType === 'PUBLICATION' && reference.includes('TRF')) { vapCode = 'trf'; } else { vapCode = window.publicationTypeMapping[pubType] ?? ''; } if (vapCode !== '') { let tag = this.tags.find(tag => tag.vap.includes(vapCode)); if (tag !== undefined && window.vapDotClassMapping[vapCode]) { tag.class = window.vapDotClassMapping[vapCode]; tags.push(tag); } } return tags; }, getIcsTag(icsCode) { return this.tags.find(tag => tag.ics.includes(icsCode)); } } } function searchPage() { return { pageTitle: "Search results for: <strong class='block md:inline mt-4 text-3xl text-primary'>“TEXT_QUERY”</strong>", documentTitle: "Search results for: 'TEXT_QUERY'", apiUrl: "https://webstore-search-api.iec.ch/api/search", isLoading: true, hasFilters: false, displayMode: 'list', dateFilter: { min: 0, max: 0 }, dateMin: null, dateMax: null, filters: [], paginationFrom: 0, prevPage: 1, currentPage: 1, totalPages: 1, pagesLimit: 1000, maxPages: 5, perPage: 10, perPageValues: ["10","25","50","100"], language: "en", mode: "FULL", query: "", validOnlyAvailable: true, validOnly: true, searchInFilters: false, showRelatedPubs: true, trfAvailable: true, showTrf: false, totalItems: 0, facets: {}, items: [], filtersSortOrder: {"header":{"CISPR":1,"IEC":2,"IEC\/ASTM":3,"IEC\/IEEE":4,"IEC\/ISO":5,"IEC\/ISO\/IEEE":6,"ISO\/IEC":7,"ISO\/IEC\/IEEE":8,"ISO":9,"IECEE":10,"IECEx":11,"IECQ":12,"IECRE":13},"type":{"IS":10,"TR":20,"TS":30,"PAS":40,"SRD":50,"GUIDE":60,"TRF":70,"TMOP":80,"TEC":90,"STTR":100,"WP":110,"MISC":100000},"vap_type":{"CONSOLIDATED":1,"REDLINE":2,"COMMENTED":3,"EXTENDED":4,"PRERELEASE":5,"TRF":6,"PACK":7,"SERIES":8},"committee":{"TC 1":1,"TC 2":2,"TC 3":3,"TC 3\/SC 3C":4,"TC 3\/SC 3D":5,"TC 4":6,"TC 5":7,"TC 7":8,"TC 8":9,"TC 8\/SC 8A":10,"TC 8\/SC 8B":11,"TC 9":12,"TC 10":13,"TC 11":14,"TC 13":15,"TC 14":16,"TC 15":17,"TC 15\/SC 15A":18,"TC 17":19,"TC 17\/SC 17A":20,"TC 17\/SC 17C":21,"TC 18":22,"TC 18\/SC 18A":23,"TC 20":24,"TC 21":25,"TC 21\/SC 21A":26,"TC 22":27,"TC 22\/SC 22D":28,"TC 22\/SC 22E":29,"TC 22\/SC 22F":30,"TC 22\/SC 22G":31,"TC 22\/SC 22H":32,"TC 23":33,"TC 23\/SC 23A":34,"TC 23\/SC 23B":35,"TC 23\/SC 23E":36,"TC 23\/SC 23G":37,"TC 23\/SC 23H":38,"TC 23\/SC 23J":39,"TC 23\/SC 23K":40,"TC 25":41,"TC 26":42,"TC 27":43,"TC 28":44,"TC 29":45,"TC 31":46,"TC 31\/SC 31G":47,"TC 31\/SC 31J":48,"TC 31\/SC 31M":49,"TC 32":50,"TC 32\/SC 32A":51,"TC 32\/SC 32B":52,"TC 32\/SC 32C":53,"TC 33":54,"TC 34":55,"TC 34\/SC 34A":56,"TC 34\/SC 34B":57,"TC 34\/SC 34C":58,"TC 34\/SC 34D":59,"TC 35":60,"TC 36":61,"TC 36\/SC 36A":62,"TC 37":63,"TC 37\/SC 37A":64,"TC 37\/SC 37B":65,"TC 38":66,"TC 40":67,"TC 42":68,"TC 43":69,"TC 44":70,"TC 45":71,"TC 45\/SC 45A":72,"TC 45\/SC 45B":73,"TC 46":74,"TC 46\/SC 46A":75,"TC 46\/SC 46C":76,"TC 46\/SC 46F":77,"TC 47":78,"TC 47\/SC 47A":79,"TC 47\/SC 47C":80,"TC 47\/SC 47D":81,"TC 47\/SC 47E":82,"TC 47\/SC 47F":83,"TC 48":84,"TC 48\/SC 48B":85,"TC 48\/SC 48D":86,"TC 49":87,"TC 51":88,"TC 55":89,"TC 56":90,"TC 57":91,"TC 59":92,"TC 59\/SC 59A":93,"TC 59\/SC 59C":94,"TC 59\/SC 59D":95,"TC 59\/SC 59F":96,"TC 59\/SC 59K":97,"TC 59\/SC 59L":98,"TC 59\/SC 59M":99,"TC 59\/SC 59N":100,"TC 61":101,"TC 61\/SC 61B":102,"TC 61\/SC 61C":103,"TC 61\/SC 61D":104,"TC 61\/SC 61H":105,"TC 61\/SC 61J":106,"TC 62":107,"TC 62\/SC 62A":108,"TC 62\/SC 62B":109,"TC 62\/SC 62C":110,"TC 62\/SC 62D":111,"TC 64":112,"TC 65":113,"TC 65\/SC 65A":114,"TC 65\/SC 65B":115,"TC 65\/SC 65C":116,"TC 65\/SC 65E":117,"TC 66":118,"TC 68":119,"TC 69":120,"TC 70":121,"TC 72":122,"TC 73":123,"TC 76":124,"TC 77":125,"TC 77\/SC 77A":126,"TC 77\/SC 77B":127,"TC 77\/SC 77C":128,"TC 78":129,"TC 79":130,"TC 80":131,"TC 81":132,"TC 82":133,"TC 85":134,"TC 86":135,"TC 86\/SC 86A":136,"TC 86\/SC 86B":137,"TC 86\/SC 86C":138,"TC 87":139,"TC 88":140,"TC 89":141,"TC 90":142,"TC 91":143,"TC 94":144,"TC 95":145,"TC 96":146,"TC 97":147,"TC 99":148,"TC 100":149,"TC 100\/TA 1":150,"TC 100\/TA 2":151,"TC 100\/TA 4":152,"TC 100\/TA 5":153,"TC 100\/TA 6":154,"TC 100\/TA 10":155,"TC 100\/TA 15":156,"TC 100\/TA 16":157,"TC 100\/TA 17":158,"TC 100\/TA 18":159,"TC 100\/TA 19":160,"TC 100\/TA 20":161,"TC 101":162,"TC 102":163,"TC 103":164,"TC 104":165,"TC 105":166,"TC 106":167,"TC 107":168,"TC 108":169,"TC 109":170,"TC 110":171,"TC 111":172,"TC 112":173,"TC 113":174,"TC 114":175,"TC 115":176,"TC 116":177,"TC 117":178,"PC 118":179,"TC 119":180,"TC 120":181,"TC 121":182,"TC 121\/SC 121A":183,"TC 121\/SC 121B":184,"TC 122":185,"TC 124":186,"TC 125":187,"PC 126":188,"CISPR":189,"CISPR\/CIS\/A":190,"CISPR\/CIS\/B":191,"CISPR\/CIS\/D":192,"CISPR\/CIS\/F":193,"CISPR\/CIS\/H":194,"CISPR\/CIS\/I":195,"ACEA":196,"ACEC":197,"ACEE":198,"ACOS":199,"ACSEC":200,"ACTAD":201,"SyC AAL":202,"SyC SM":203,"SyC Smart Cities":204,"SyC Smart Energy":205,"SEG 4":206,"SMB":207,"MSB":208,"CAB":209,"IECEE-CTL":210,"ISO\/IEC JTC 1":211,"ISO\/IEC JTC 1\/SC 2":212,"ISO\/IEC JTC 1\/SC 6":213,"ISO\/IEC JTC 1\/SC 7":214,"ISO\/IEC JTC 1\/SC 17":215,"ISO\/IEC JTC 1\/SC 22":216,"ISO\/IEC JTC 1\/SC 23":217,"ISO\/IEC JTC 1\/SC 24":218,"ISO\/IEC JTC 1\/SC 25":219,"ISO\/IEC JTC 1\/SC 27":220,"ISO\/IEC JTC 1\/SC 28":221,"ISO\/IEC JTC 1\/SC 29":222,"ISO\/IEC JTC 1\/SC 31":223,"ISO\/IEC JTC 1\/SC 32":224,"ISO\/IEC JTC 1\/SC 34":225,"ISO\/IEC JTC 1\/SC 35":226,"ISO\/IEC JTC 1\/SC 36":227,"ISO\/IEC JTC 1\/SC 37":228,"ISO\/IEC JTC 1\/SC 38":229,"ISO\/IEC JTC 1\/SC 39":230,"ISO\/IEC JTC 1\/SC 40":231,"ISO\/IEC JTC 1\/SC 41":232,"ISO\/IEC JTC 1\/SC 42":233,"ISO\/IEC JPC 2":234,"ISO\/TC 121":235,"ISO\/TC 207":236,"ISO\/TC 210":237,"ISO\/TC 229":238,"ISO\/TC 262":239,"ISO\/CASCO":240,"ISO\/COPOLCO":241,"ISO\/TMB":242}}, filterMapping: {"rules":{"toggle_trf":{"activated":true,"display":false},"valid_only":{"activated":false,"display":false},"facets":[]}}, defaults: { facets: {}, publicationIds: null, showTrf: false, collapsed: true }, tags: [], publicationIds: null, openSidebar: false, dateRetrieved: false, filterTrees: {}, init() { this.callApi(this.retrieveFilters()); }, searchTerm(event) { let data = event.detail; this.query = data.term; let tmpValidOnly = JSON.parse(JSON.stringify(this.validOnly)); let tmpShowTrf = JSON.parse(JSON.stringify(this.showTrf)); this.clearFilters(false); this.validOnly = tmpValidOnly; this.showTrf = tmpShowTrf; this.hasFilters = true; document.title = this.documentTitle.replace('TEXT_QUERY', this.query) + ' | IEC'; this.callApi(); }, retrieveFilters() { let urlParams = new URLSearchParams(window.location.search); let filterString = urlParams.get('f'); this.currentPage = parseInt(urlParams.get('p') ?? 1); let filters = null; if (filterString) { filters = JSON.parse(atob(filterString)); let dateRange = filters.dateRanges; if (dateRange && dateRange.publication_date) { this.handleDateRangesFilter(dateRange) } this.facets = filters.terms; this.validOnly = filters.validOnly; this.showTrf = filters.showTrf; this.displayMode = filters.displayMode; this.publicationIds = filters.publicationIds; delete filters.showTrf; delete filters.displayMode; if (this.facets && Object.values(this.facets).length > 0) { this.hasFilters = true; } } return filters; }, handleDateRangesFilter(dateRange, updateFilters = true) { this.dateMin = dateRange.publication_date.min; this.dateMax = dateRange.publication_date.max; if (updateFilters) { this.dateFilter = { min: dateRange.publication_date.min, max: dateRange.publication_date.max, } } this.dateRetrieved = true; }, callApi(payload = null) { let body = this.buildPayload(payload); let filters = btoa(JSON.stringify({ dateRanges: body.dateRanges, terms: body.terms, validOnly: body.validOnly, publicationIds: body.publicationIds, showTrf: this.showTrf, displayMode: this.displayMode, })); if (this.needToPush()) { this.pushToHistory(filters); } this.isLoading = true; fetch( this.apiUrl, { method: 'post', body: JSON.stringify(body), headers: {'Content-Type': 'application/json'} } ).then(response => { if (response.ok) { return response.json(); } else { console.error('Search request failed', response); } }).then(data => { if (data.secondary) { data = data.secondary; let filterNames = []; this.filters = []; let keys = Object.keys(data.aggregations); for (let key of keys) { let value = data.aggregations[key]; if (key.includes('buckets#')) { let filterName = key.replace('buckets#', ''); if (filterName === 'available_formats') { continue; } let buckets = value.root.nested.buckets; filterNames.push(filterName); this.filters[filterName] = { name: filterName, show: true, buckets: this.sortFilterData(filterName, null, buckets) }; } } const minDateValue = data.aggregations['metrics#min_publication_date'].nested.value const maxDateValue = data.aggregations['metrics#max_publication_date'].nested.value if (minDateValue !== null && maxDateValue !== null) { let minDate = new Date(minDateValue); let maxDate = new Date(maxDateValue); let oldDateFilter = JSON.parse(JSON.stringify(this.dateFilter)); this.dateFilter = { min: minDate.toISOString().split('T')[0], max: maxDate.toISOString().split('T')[0], }; if (this.dateMin === null || this.dateMax === null) { this.dateMin = this.dateFilter.min; this.dateMax = this.dateFilter.max; } else { if (this.dateRetrieved === false && oldDateFilter.min !== this.dateFilter.min || oldDateFilter.max !== this.dateFilter.max) { this.dateMin = this.dateFilter.min; this.dateMax = this.dateFilter.max; } else { this.dateRetrieved = false; } } } this.items = data.hits.hits; this.totalItems = data.hits.total.value; let totalForPages = this.totalItems if (data.aggregations['cardinality#collapsed']) { totalForPages = data.aggregations['cardinality#collapsed'].collapsed_count.value; } this.totalPages = Math.ceil(totalForPages / this.perPage); this.totalPages = Math.min(this.totalPages, this.pagesLimit); if (this.validOnly && this.filters['status']) { this.filters['status'].show = false; } if (this.validOnly === false) { this.$dispatch('update-tree', { name: 'status' }); } delete this.filters['publication_type']; this.buildTagsData(data); for (let filter of filterNames) { this.$dispatch('update-tree', { name: filter }); } } this.isLoading = false; }); }, buildPayload(baseData) { let payload = { mode: this.mode, query: this.query, from: this.paginationFrom, size: this.perPage, validOnly: this.validOnly, sortBy: [{reference: "asc"}], language: this.language, dateRanges: {}, terms: this.facets, publicationIds: this.publicationIds, showTrf: this.showTrf, collapsed: this.collapsed }; this.autoEnableTrf(payload); this.autoDisableValidOnly(payload); if (baseData) { payload = { ...payload, ...baseData } } if (this.dateMin && this.dateMax) { if (this.dateMin !== this.dateFilter.min || this.dateMax !== this.dateFilter.max) { let minDate = new Date(this.dateMin); let maxDate = new Date(this.dateMax); payload.dateRanges = { publication_date: { min: minDate.toISOString().split('T')[0], max: maxDate.toISOString().split('T')[0], } }; } } else if (this.defaults.dateRanges) { let minDate = new Date(this.defaults.dateRanges.publication_date.min); let maxDate = new Date(this.defaults.dateRanges.publication_date.max); payload.dateRanges = { publication_date: { min: minDate.toISOString().split('T')[0], max: maxDate.toISOString().split('T')[0], } }; } payload.from = (this.currentPage - 1) * this.perPage; return payload; }, /* * automatically send the show TRF in query */ autoEnableTrf(payload) { if ( typeof this.filterMapping.rules !== 'undefined' && typeof this.filterMapping.rules.toggle_trf !== 'undefined' && this.filterMapping.rules.toggle_trf.activated ) { this.showTrf = true; payload.showTrf = true; } }, /* * automatically remove the valid only publication in the query */ autoDisableValidOnly(payload) { if ( typeof this.filterMapping.rules !== 'undefined' && typeof this.filterMapping.rules.valid_only !== 'undefined' && !this.filterMapping.rules.valid_only.activated ) { this.validOnly = false; payload.validOnly = false; } }, needToPush() { return true; }, pushToHistory(filters) { window.history.pushState( {filters: filters}, "", BASE_URL + 'iec-search/result?q=' + this.query + '&p=' + this.currentPage + '&f=' + filters ); }, changeStatus() { this.dateMin = null; this.dateMax = null; if (this.filters['status']) { this.filters['status'].show = !this.validOnly; } this.hasFilters = false; this.mode = 'FULL'; this.$dispatch('filter-updated', { validOnly: this.validOnly, showTrf: this.showTrf, }); this.callApi(); }, search() { this.hasFilters = this.query !== ''; this.callApi(); }, loadFilters(event, mode = 'PARTIAL') { if (this.filters['status']) { this.filters['status'].show = !this.validOnly; } this.hasFilters = this.dateMin != this.dateFilter.min || this.dateMax != this.dateFilter.max || this.showTrf; this.mode = mode; this.$dispatch('filter-updated', { validOnly: this.validOnly, showTrf: this.showTrf, }); this.callApi(); }, clearFilters(call = true) { this.prevPage = 1; this.currentPage = 1; this.mode = 'FULL'; this.dateMin = null; this.dateMax = null; this.publicationIds = JSON.parse(JSON.stringify(this.defaults.publicationIds)); this.showTrf = this.defaults.showTrf; this.hasFilters = false; let facets = JSON.parse(JSON.stringify(this.defaults.facets)); this.facets = Array.isArray(facets) ? {} : facets; if (call) { this.callApi(); } }, async applyFacets() { this.isLoading = true; this.facets = {}; for (let tree of Object.values(this.filterTrees)) { let facet = tree.root.key; if (this.facets[facet] === undefined) { this.facets[facet] = {}; } this.applyChildrenFacets(1, facet, tree.root); if (Object.keys(this.facets[facet]).length === 0) { delete this.facets[facet]; } } if (Object.keys(this.facets).length === 0) { this.facets = {}; } this.hasFilters = this.facets && Object.values(this.facets).length > 0; this.mode = 'PARTIAL'; let facets = JSON.parse(JSON.stringify(this.defaults.facets)); this.facets = this.mergeDeep(this.facets, facets); setTimeout(() => { this.callApi(); }, 3000) }, mergeDeep(...objects) { const isObject = obj => obj && typeof obj === 'object'; return objects.reduce((prev, obj) => { Object.keys(obj).forEach(key => { const pVal = prev[key]; const oVal = obj[key]; if (Array.isArray(pVal) && Array.isArray(oVal)) { let data = pVal.concat(...oVal); prev[key] = data.filter((value, index) => data.indexOf(value) === index); } else if (isObject(pVal) && isObject(oVal)) { prev[key] = this.mergeDeep(pVal, oVal); } else { prev[key] = oVal; } }); return prev; }, {}); }, applyChildrenFacets(level, facet, node) { if (level > 3) { return; } for (let child of node.children) { if (this.facets[facet][level] === undefined) { this.facets[facet][level] = []; } if (child.value) { let childKey = child.key; childKey = childKey.replace(/^level_([0-9]+)_/, ''); this.facets[facet][level].push(childKey); } else { let nextLevel = level + 1; this.applyChildrenFacets(nextLevel, facet, child) } } if (this.facets[facet][level] && Object.keys(this.facets[facet][level]).length === 0) { delete this.facets[facet][level]; } }, getDescription(source) { if (source.title && source.title.length > 0) { return source.title; } if (source.abstract && source.abstract.length > 0) { return source.abstract.split(' ').splice(0, 20).join(' ') + '...'; } return ''; }, getTechnicalCommittee(source) { let levels = []; let committees = source.committee || {}; Object.keys(committees).forEach((key, index) => { if (/^level_([0-9]+)$/.test(key)) { levels.push(committees[key]) } }); levels = levels.filter((value, index) => levels.indexOf(value) === index); return levels.join('/'); }, isDisabled(level, include, filterName) { let result = this.defaults.facets && this.defaults.facets[filterName] && this.defaults.facets[filterName][level] && this.defaults.facets[filterName][level].includes(include) return result !== undefined ? result : false; }, getItemName(filterName, itemKey) { if (window.nameMapping[filterName]) { return window.nameMapping[filterName][itemKey] ?? itemKey; } else { return filterName === itemKey ? filterName : itemKey; } }, getLabelName(itemName, level, filtername) { if (typeof itemName.details !== 'undefined') { return itemName.details.top[0].metrics[filtername + '.level_' + level + '_details']; } return ''; }, sortFilterData(filterName, filterKey, data) { let order = null; if (this.filtersSortOrder[filterName]) { if (filterName === 'committee') { order = Object.keys(this.filtersSortOrder[filterName]).sort((a, b) => { return b.length - a.length; }).map(key => { return {key, order: this.filtersSortOrder[filterName][key]}; }); let sorted = data.sort((a, b) => this.sortCommittee(a, b, order)); if (filterKey && data.length === 1 && data[0].key === filterKey) { return {}; } return sorted; } if (filterName === 'type' || filterName === 'header' || filterName === 'vap_type') { order = this.filtersSortOrder[filterName]; return data.sort((a, b) => this.sortByOrder(a, b, order)); } } return data.sort((a, b) => this.sortWithKeys(a, b)); }, sortByNumbers(a, b, order = null) { return a - b; }, sortWithKeys(a, b, order = null) { return a.key.localeCompare(b.key, undefined, {numeric: true}); }, sortByOrder(a, b, order) { return this.sortByNumbers(order[a.key] || 1000, order[b.key] || 1000); }, sortCommittee(a, b, order) { let aOption = order.find(o => a.key.startsWith(o.key)); let bOption = order.find(o => b.key.startsWith(o.key)); if (!aOption || !bOption) { if (!aOption && !bOption) { return this.sortWithKeys(a, b); } if (!aOption) { return 1; } return -1; } if (aOption.order !== bOption.order) { return aOption.order - bOption.order; } return this.sortWithKeys(a, b); }, buildTagsData(data) { this.tags = []; let vapTypes = data.aggregations['buckets#vap_type'].root.nested.buckets; vapTypes.forEach((type) => { let name = window.vapTypeLabels[type.key] ?? ''; if (name) { let tagClass = '' let publicationType = window.publicationTypeMapping[type.key] ?? ''; if (publicationType) { tagClass = window.vapDotClassMapping[publicationType] } this.tags.push({ key: type.key, total: type.doc_count, name: name, filter: 'vap_type', class: tagClass }); } }); let status = data.aggregations['buckets#status'].root.nested.buckets; status.forEach((type) => { let name = window.statusLabels[type.key] ?? ''; if (name) { this.tags.push({ key: type.key, total: type.doc_count, name: name, filter: 'status', class: window.statusDotClassMapping[type.key] ?? '' }); } }); }, getRelatedPubs(item) { let items = item.inner_hits.collapsed.hits.hits return items.filter((relatedItem, index) => { return relatedItem._source.id !== item._source.id; }); }, getSortedFilters() { let result = []; this.hideToggleTrf(); this.hideToggleValidOnly(); this.hideDateFacet(); if (this.filters['header']) { result.push(this.filters['header']); } if (this.filters['type'] && !this.isFacetHidden('type')) { result.push(this.filters['type']); } if (this.filters['vap_type'] && !this.isFacetHidden('vap_type')) { result.push(this.filters['vap_type']); } if (this.filters['committee']) { result.push(this.filters['committee']); } if (this.filters['ics'] && !this.isFacetHidden('ics')) { result.push(this.filters['ics']); } if (this.filters['status']) { result.push(this.filters['status']); } return result; }, hideToggleTrf() { if ( typeof this.filterMapping.rules !== 'undefined' && typeof this.filterMapping.rules.toggle_trf !== 'undefined' && !this.filterMapping.rules.toggle_trf.display ) { this.trfAvailable = false; } }, hideToggleValidOnly() { if ( typeof this.filterMapping.rules !== 'undefined' && typeof this.filterMapping.rules.valid_only !== 'undefined' && !this.filterMapping.rules.valid_only.display ) { this.validOnlyAvailable = false; } }, hideDateFacet() { if ( typeof this.filterMapping.rules !== 'undefined' && typeof this.filterMapping.rules.facets.date !== 'undefined' && !this.filterMapping.rules.facets.date.display ) { this.dateMin = null; this.dateMax = null; } }, isFacetHidden(facet) { if ( typeof this.filterMapping.rules === 'undefined' || typeof this.filterMapping.rules.facets[facet] === 'undefined' ) { return false; } return !this.filterMapping.rules.facets[facet].display; }, removeFilters() { this.clearFilters(false); this.validOnly = false; this.showTrf = true; this.changeStatus(); }, applyTrf() { this.dateMin = null; this.dateMax = null; this.loadFilters(null, 'FULL'); } }; } function nameHandleMouseMove(e) { let tooltip = e.target.parentNode.parentNode.parentNode.querySelector('.tooltip'); tooltip.classList.remove('opacity-0'); tooltip.style.left = (e.clientX + 16) + 'px'; tooltip.style.top = (e.clientY + 24) + 'px'; tooltip.style.opacity = '1'; } function nameHandleMouseOut(e) { let tooltip = e.target.parentNode.parentNode.parentNode.querySelector('.tooltip'); tooltip.classList.add('opacity-0'); tooltip.style.opacity = '0'; }</script> <script> function categoryPage() { let categoryPage = { pageTitle: "", searchInFilters: true, displayMode: 'grid', displayChanged: false, perPageGrid: 12, perPageGridValues: ["12","24","48","96"], defaults: {"facets":[],"publicationIds":["26359","4279","5516","59671","61880","62883","66049","66118","67631"],"showTrf":false,"collapsed":true,"hideDate":false}, init() { let facets = JSON.parse(JSON.stringify(this.defaults.facets)); this.facets = Array.isArray(facets) ? {} : facets; this.publicationIds = JSON.parse(JSON.stringify(this.defaults.publicationIds)); this.showTrf = this.defaults.showTrf; this.hasFilters = false; this.collapsed = this.defaults.collapsed; this.perPageList = this.perPage; this.perPageListValues = this.perPageValues; this.perPage = this.perPageGrid; this.perPageValues = this.perPageGridValues; if (this.defaults.dateRanges) { this.handleDateRangesFilter(this.defaults.dateRanges, false) } this.callApi(this.retrieveFilters()); }, needToPush() { if (this.hasFilters || this.displayChanged || this.prevPage !== this.currentPage) { return true; } return false; }, pushToHistory(filters) { window.history.pushState( {filters: filters}, "", window.location.protocol + '//' + window.location.host + window.location.pathname + '?p=' + this.currentPage + '&f=' + filters ); }, changeDisplay(mode) { if (this.displayMode !== mode) { this.displayChanged = true; this.displayMode = mode; if (this.displayMode === 'grid') { this.perPage = this.perPageGrid; this.perPageValues = this.perPageGridValues; } else { this.perPage = this.perPageList; this.perPageValues = this.perPageListValues; } this.callApi(); } else { this.displayChanged = false; } } }; return { ...searchPage(), ...categoryPage }; }</script></div></div></main><footer class="page-footer"><div class="footer content"><div class="footer_header_container"><div class="container inner-container"><div class="wide_contentsystem_summary simple_html iec_footer_header"> <div class="content-system--html"><div class="iec-footer-header"> <ul class="footer-list"> <li> <svg xmlns="http://www.w3.org/2000/svg" width="23" height="25" viewBox="0 0 23 25" fill="none"> <path fill-rule="evenodd" clip-rule="evenodd" d="M4.38887 7.75926C4.38887 3.75008 7.63895 0.5 11.6481 0.5C15.6573 0.5 18.9074 3.75008 18.9074 7.75926V9.00487C19.2112 9.07918 19.5063 9.1828 19.7936 9.32915C20.7135 9.79787 21.4614 10.5458 21.9301 11.4657C22.2356 12.0653 22.3549 12.6993 22.4101 13.3747C22.463 14.0222 22.463 14.8148 22.4629 15.7644V17.5319C22.463 18.4815 22.463 19.2741 22.4101 19.9216C22.3549 20.597 22.2356 21.231 21.9301 21.8306C21.4614 22.7505 20.7135 23.4984 19.7936 23.9671C19.194 24.2726 18.5599 24.392 17.8846 24.4471C17.2371 24.5 16.4445 24.5 15.4949 24.5H7.8014C6.85181 24.5 6.0592 24.5 5.41168 24.4471C4.73633 24.392 4.10227 24.2726 3.50269 23.9671C2.58279 23.4984 1.83489 22.7505 1.36617 21.8306C1.06067 21.231 0.941362 20.597 0.886184 19.9216C0.833279 19.2741 0.833295 18.4815 0.833314 17.5319V15.7644C0.833295 14.8148 0.833279 14.0222 0.886184 13.3747C0.941362 12.6993 1.06067 12.0653 1.36617 11.4657C1.83489 10.5458 2.58279 9.79787 3.50269 9.32915C3.78992 9.1828 4.08507 9.07918 4.38887 9.00487V7.75926ZM7.05554 8.79737C7.29253 8.79629 7.54108 8.79629 7.80143 8.7963H15.4948C15.7552 8.79629 16.0037 8.79629 16.2407 8.79737V7.75926C16.2407 5.22284 14.1845 3.16667 11.6481 3.16667C9.11171 3.16667 7.05554 5.22284 7.05554 7.75926V8.79737ZM5.62883 11.507C5.11839 11.5487 4.87433 11.6231 4.71334 11.7052C4.2952 11.9182 3.95524 12.2582 3.74219 12.6763C3.66016 12.8373 3.5857 13.0814 3.54399 13.5918C3.50102 14.1178 3.49998 14.8009 3.49998 15.8185V17.4778C3.49998 18.4954 3.50102 19.1785 3.54399 19.7045C3.5857 20.2149 3.66016 20.459 3.74219 20.62C3.95524 21.0381 4.2952 21.3781 4.71334 21.5911C4.87433 21.6732 5.11839 21.7476 5.62883 21.7893C6.15484 21.8323 6.83789 21.8333 7.85554 21.8333H15.4407C16.4584 21.8333 17.1414 21.8323 17.6674 21.7893C18.1779 21.7476 18.4219 21.6732 18.5829 21.5911C19.0011 21.3781 19.341 21.0381 19.5541 20.62C19.6361 20.459 19.7106 20.2149 19.7523 19.7045C19.7952 19.1785 19.7963 18.4954 19.7963 17.4778V15.8185C19.7963 14.8009 19.7952 14.1178 19.7523 13.5918C19.7106 13.0814 19.6361 12.8373 19.5541 12.6763C19.341 12.2582 19.0011 11.9182 18.5829 11.7052C18.4219 11.6231 18.1779 11.5487 17.6674 11.507C17.1414 11.464 16.4584 11.463 15.4407 11.463H7.85554C6.83789 11.463 6.15484 11.464 5.62883 11.507Z" fill="#003863"/> </svg> <span class="footer-label">Secured payment</span> </li> <li> <ul> <li> <svg width="100" height="60" viewBox="0 0 100 60" fill="none" xmlns="http://www.w3.org/2000/svg"> <title>Visa</title> <path d="M49.3888 20.2221L44.7244 40.5286H39.0843L43.7493 20.2221H49.3888ZM73.119 33.3341L76.0885 25.7083L77.7971 33.3341H73.119ZM79.412 40.5286H84.6291L80.0765 20.2221H75.261C74.179 20.2221 73.266 20.8082 72.8595 21.7119L64.3976 40.5286H70.3207L71.4966 37.4963H78.7329L79.412 40.5286ZM64.6916 33.8984C64.7157 28.5388 56.7334 28.2438 56.7886 25.8497C56.8052 25.1202 57.5512 24.3464 59.1805 24.1478C59.99 24.0494 62.2155 23.9742 64.7427 25.0572L65.7322 20.751C64.3748 20.2921 62.6282 19.8506 60.4558 19.8506C54.8812 19.8506 50.9574 22.611 50.9242 26.5637C50.889 29.4868 53.7253 31.118 55.8625 32.0898C58.0598 33.0854 58.7982 33.7229 58.7885 34.6131C58.774 35.9763 57.0357 36.5766 55.414 36.6004C52.5777 36.6421 50.9318 35.8876 49.62 35.3181L48.5979 39.7677C49.9153 40.3313 52.3479 40.8211 54.8716 40.8461C60.796 40.8461 64.6723 38.1197 64.6916 33.8984ZM41.3292 20.2221L32.191 40.5286H26.2279L21.7312 24.3226C21.458 23.3245 21.2206 22.9594 20.3904 22.5384C19.0357 21.8539 16.7964 21.2106 14.8262 20.8121L14.9607 20.2221H24.5579C25.7807 20.2221 26.8814 20.9805 27.1588 22.2923L29.5341 34.0436L35.4034 20.2221H41.3292Z" fill="#003863"/> </svg> </li> <li> <svg width="101" height="60" viewBox="0 0 101 60" fill="none" xmlns="http://www.w3.org/2000/svg"> <title>Mastercard</title> <path fill-rule="evenodd" clip-rule="evenodd" d="M50.0344 42.3225C53.6808 39.4531 56.0225 34.9999 56.0225 29.9998C56.0225 24.9997 53.6808 20.5465 50.0344 17.677C52.7 15.5794 56.0628 14.3281 59.7179 14.3281C68.3731 14.3281 75.3895 21.3446 75.3895 29.9998C75.3895 38.655 68.3731 45.6714 59.7179 45.6714C56.0628 45.6714 52.7 44.4201 50.0344 42.3225ZM50.0344 42.3225C47.3688 44.4201 44.0059 45.6714 40.3508 45.6714C31.6956 45.6714 24.6792 38.655 24.6792 29.9998C24.6792 21.3446 31.6956 14.3281 40.3508 14.3281C44.0059 14.3281 47.3688 15.5794 50.0344 17.677C46.3879 20.5465 44.0463 24.9997 44.0463 29.9998C44.0463 34.9999 46.3879 39.4531 50.0344 42.3225Z" fill="#003863"/> <path d="M50.0345 42.3227C53.681 39.4533 56.0226 35.0001 56.0226 30C56.0226 24.9999 53.681 20.5467 50.0345 17.6772C46.388 20.5467 44.0464 24.9999 44.0464 30C44.0464 35.0001 46.388 39.4533 50.0345 42.3227Z" fill="#032C4E"/> </svg> </li> <li> <svg width="101" height="60" viewBox="0 0 101 60" fill="none" xmlns="http://www.w3.org/2000/svg"> <title>AMEX</title> <path fill-rule="evenodd" clip-rule="evenodd" d="M22.8371 21.25L14.8843 39.3669H24.4049L25.5851 36.4783H28.283L29.4633 39.3669H39.9428V37.1622L40.8765 39.3669H46.2974L47.2312 37.1156V39.3669H69.0257L71.6758 36.5533L74.1572 39.3669L85.3513 39.3902L77.3734 30.359L85.3513 21.25H74.3308L71.7511 24.0116L69.3478 21.25H45.6382L43.6023 25.9261L41.5186 21.25H32.0179V23.3796L30.961 21.25H22.8371ZM55.3827 23.8226H67.8981L71.726 28.0791L75.6773 23.8226H79.5052L73.6891 30.3565L79.5052 36.815H75.5037L71.6758 32.5091L67.7043 36.815H55.3827V23.8226ZM58.4733 28.8874V26.5143V26.512H66.2826L69.6901 30.3073L66.1316 34.1233H58.4733V31.5325H65.301V28.8874H58.4733ZM24.6792 23.8226H29.32L34.5951 36.1078V23.8226H39.6789L43.7533 32.631L47.5083 23.8226H52.5667V36.8227H49.4887L49.4636 26.6359L44.9763 36.8227H42.223L37.7106 26.6359V36.8227H31.3786L30.1782 33.9082H23.6927L22.4948 36.8201H19.1022L24.6792 23.8226ZM24.8001 31.214L26.9368 26.0222L29.071 31.214H24.8001Z" fill="#003863"/> </svg> </li> <li> <svg width="101" height="60" viewBox="0 0 101 60" fill="none" xmlns="http://www.w3.org/2000/svg"> <title>JCB</title> <path d="M72.5764 40.9353C72.5764 44.6049 69.5873 47.594 65.9178 47.594H27.4678V19.7412C27.4678 16.0716 30.4569 13.0825 34.1265 13.0825H72.5764V40.9353Z" stroke="#003863"/> <path d="M63.5762 31.4656C63.5764 31.4656 63.5765 31.4657 63.5766 31.4657L63.5799 31.4668L63.5986 31.4714C63.965 31.5631 64.2626 31.8892 64.2626 32.311C64.2626 32.756 63.9777 33.0572 63.6559 33.1377C63.6008 33.1407 63.5418 33.1467 63.4999 33.1509C63.4954 33.1514 63.491 33.1518 63.4869 33.1522L63.5366 33.6497L63.4869 33.1522C63.4507 33.1558 63.4198 33.1589 63.393 33.1611C63.3634 33.1636 63.3526 33.1638 63.3535 33.1638H60.8942V31.4582H63.3535C63.4118 31.4582 63.4693 31.4583 63.5209 31.461C63.5463 31.4624 63.5645 31.4641 63.5762 31.4656ZM63.2793 28.9136L63.13 28.936C63.1106 28.9363 63.0909 28.9363 63.0716 28.9363H60.8942V27.4561H63.0712C63.0693 27.4561 63.0767 27.4562 63.098 27.4585C63.1191 27.4608 63.1426 27.4639 63.1725 27.4679L63.239 26.9723L63.1725 27.4679C63.175 27.4682 63.1781 27.4687 63.1815 27.4691C63.2066 27.4726 63.2535 27.479 63.3008 27.4823C63.6361 27.5416 63.8963 27.8018 63.8963 28.1962C63.8963 28.599 63.625 28.8618 63.2793 28.9136ZM58.3856 20.1075C58.3856 17.5388 60.471 15.478 63.0151 15.478H70.0119V40.597C70.0119 43.1656 67.9265 45.2264 65.3825 45.2264H58.3574V35.7985H65.8052C66.8214 35.7985 67.7521 35.5218 68.4413 34.9945C69.1398 34.4601 69.5746 33.6766 69.5746 32.7337C69.5746 31.4875 68.8183 30.606 67.7648 30.1362C67.9427 30.0171 68.1037 29.8816 68.2465 29.7312C68.7334 29.2181 68.9827 28.5576 68.9827 27.858C68.9827 26.9706 68.6085 26.25 67.9844 25.7516C67.3814 25.27 66.5724 25.0154 65.6947 24.9648C65.5113 24.9339 65.2935 24.9341 65.151 24.9342C65.1434 24.9342 65.136 24.9342 65.1288 24.9342H58.3856V20.1075Z" fill="#003863" stroke="#003863"/> <path d="M30.0044 35.5384C30.2546 35.5931 30.5723 35.657 30.9456 35.7208C31.9133 35.8863 33.26 36.0521 34.7748 36.0521C37.2629 36.0521 38.9731 35.5728 40.0686 34.7123C41.1882 33.8329 41.5879 32.6189 41.5879 31.3527V25.406V24.906H41.0879H36.6913H36.1913V25.406V31.3809C36.1913 32.0033 35.99 32.4999 35.6408 32.8412C35.2916 33.1823 34.7437 33.4175 33.9574 33.4175C32.6566 33.4175 31.3357 33.0506 30.0326 32.4465V20.1075C30.0326 17.5388 32.118 15.478 34.662 15.478H41.6589V40.5688C41.6589 43.1374 39.5735 45.1982 37.0295 45.1982H30.0044V35.5384Z" fill="#003863" stroke="#003863"/> <path d="M48.8384 14.978C46.0201 14.978 43.709 17.2609 43.709 20.1075V26.8152C45.0054 25.716 47.2601 25.0114 50.8958 25.1805C52.8405 25.2651 54.9261 25.8006 54.9261 25.8006V27.9707C53.8833 27.4352 52.6432 26.9561 51.0368 26.8434C48.2748 26.6461 46.6119 27.9989 46.6119 30.3663C46.6119 32.7619 48.2748 34.1148 51.0368 33.8893C52.6432 33.7765 53.8833 33.2692 54.9261 32.7619V34.9321C54.9261 34.9321 52.8687 35.4676 50.8958 35.5521C47.2601 35.7212 45.0054 35.0166 43.709 33.9175V45.7546H51.2341C54.0524 45.7546 56.3635 43.4717 56.3635 40.6252V14.978H48.8384Z" fill="#003863"/> </svg> </li> <li> <svg width="101" height="60" viewBox="0 0 101 60" fill="none" xmlns="http://www.w3.org/2000/svg"> <title>Union Pay</title> <path opacity="0.95" d="M33.1065 12.502H46.8959C48.8208 12.502 50.018 14.0709 49.569 16.0022L43.149 43.5656C42.6959 45.4901 40.7687 47.0604 38.8425 47.0604H25.0544C23.1322 47.0604 21.9323 45.4901 22.3813 43.5656L28.804 16.0022C29.253 14.0709 31.1792 12.502 33.1065 12.502Z" fill="#003863"/> <path d="M45.7477 12.5H61.6052C63.5297 12.5 62.6619 14.0689 62.2092 16.0002L55.7902 43.5636C55.3398 45.4882 55.4803 47.0585 53.5517 47.0585H37.6942C35.7657 47.0585 34.5721 45.4882 35.0252 43.5636L41.4438 16.0002C41.8996 14.0689 43.8218 12.5 45.7477 12.5Z" fill="#003863"/> <path opacity="0.95" d="M60.9765 12.5H74.766C76.6935 12.5 77.8908 14.0689 77.438 16.0002L71.0191 43.5636C70.566 45.4882 68.6374 47.0585 66.7102 47.0585H52.9271C50.9985 47.0585 49.8023 45.4882 50.2541 43.5636L56.674 16.0002C57.1231 14.0689 59.048 12.5 60.9765 12.5Z" fill="#003863"/> <path d="M36.7071 21.3333C35.2891 21.3478 34.8703 21.3333 34.7365 21.3017C34.6851 21.5461 33.7282 25.9602 33.7255 25.9639C33.5195 26.8569 33.3695 27.4935 32.8603 27.9046C32.5713 28.1435 32.2338 28.2588 31.8426 28.2588C31.2138 28.2588 30.8474 27.9466 30.7859 27.3543L30.7741 27.151C30.7741 27.151 30.9657 25.9548 30.9657 25.9481C30.9657 25.9481 31.97 21.9256 32.1498 21.3938C32.1592 21.3636 32.1619 21.3478 32.1643 21.3333C30.2095 21.3505 29.863 21.3333 29.8391 21.3017C29.826 21.3451 29.7776 21.5945 29.7776 21.5945L28.7521 26.1282L28.6641 26.5127L28.4937 27.7704C28.4937 28.1435 28.5669 28.448 28.7128 28.7055C29.18 29.5219 30.5126 29.6442 31.2665 29.6442C32.2379 29.6442 33.1491 29.4379 33.7648 29.0611C34.8336 28.4296 35.1133 27.4424 35.3627 26.5652L35.4783 26.1151C35.4783 26.1151 36.5128 21.9373 36.6886 21.3938C36.6953 21.3636 36.698 21.3478 36.7071 21.3333ZM40.227 24.7036C39.9776 24.7036 39.5219 24.7641 39.1125 24.9648C38.9639 25.0411 38.8234 25.1291 38.6752 25.2168L38.809 24.7339L38.7357 24.6525C37.8676 24.8283 37.6733 24.8518 36.8713 24.9648L36.8041 25.0095C36.711 25.7815 36.6283 26.362 36.2832 27.8795C36.1517 28.4388 36.0153 29.0034 35.8785 29.5614L35.9155 29.6323C36.7372 29.5889 36.9866 29.5889 37.7009 29.6007L37.7587 29.5378C37.8494 29.073 37.8612 28.9641 38.0622 28.0227C38.1566 27.5763 38.3536 26.5956 38.4507 26.2463C38.6292 26.1637 38.8053 26.0823 38.9734 26.0823C39.3737 26.0823 39.3249 26.4315 39.3095 26.5707C39.2923 26.8043 39.1464 27.5672 38.9969 28.2223L38.8971 28.6451C38.8275 28.9574 38.7512 29.2609 38.6816 29.5704L38.7119 29.6323C39.5219 29.5889 39.7689 29.5889 40.4606 29.6007L40.542 29.5378C40.667 28.8118 40.7036 28.6176 40.9255 27.5605L41.037 27.0748C41.2538 26.1243 41.3627 25.6424 41.1987 25.2498C41.0253 24.8098 40.6092 24.7036 40.227 24.7036ZM44.1592 25.6988C43.7287 25.7815 43.4541 25.8366 43.1811 25.8722C42.9106 25.9156 42.6467 25.9549 42.2306 26.0127L42.1977 26.0426L42.1674 26.0665C42.1241 26.3764 42.0938 26.6443 42.0364 26.9592C41.9876 27.2849 41.9127 27.6549 41.7907 28.1866C41.6962 28.5937 41.6475 28.7355 41.5937 28.8787C41.5413 29.0219 41.4835 29.161 41.3773 29.5613L41.4021 29.5983L41.423 29.6322C41.8118 29.6138 42.0663 29.6006 42.3278 29.5983C42.5889 29.5889 42.8595 29.5983 43.2783 29.6006L43.3149 29.5707L43.3542 29.5378C43.4147 29.1768 43.4238 29.0797 43.4608 28.9036C43.4974 28.7147 43.5606 28.4532 43.7155 27.7548C43.7888 27.4267 43.8705 27.0997 43.9464 26.7649C44.0254 26.4315 44.1081 26.1031 44.1868 25.7751L44.175 25.7354L44.1592 25.6988ZM44.1684 24.357C43.7772 24.1261 43.0905 24.1993 42.6283 24.5183C42.1675 24.8309 42.1151 25.2746 42.505 25.5085C42.8895 25.733 43.5788 25.6661 44.037 25.3445C44.4968 25.0252 44.5542 24.5855 44.1684 24.357ZM46.5344 29.7046C47.3259 29.7046 48.1373 29.4865 48.748 28.8391C49.2179 28.3141 49.4333 27.533 49.5079 27.2114C49.7509 26.1452 49.5617 25.6475 49.3241 25.3443C48.9631 24.8821 48.3252 24.7339 47.6634 24.7339C47.2654 24.7339 46.3176 24.7733 45.5772 25.4559C45.0454 25.9483 44.7998 26.6165 44.6515 27.2571C44.502 27.9098 44.3299 29.0848 45.4105 29.5221C45.7439 29.6653 46.2245 29.7046 46.5344 29.7046ZM46.4726 27.3058C46.6551 26.4985 46.8705 25.8209 47.4204 25.8209C47.8513 25.8209 47.8825 26.3251 47.6909 27.1351C47.6567 27.3149 47.4994 27.9834 47.2866 28.2681C47.138 28.4782 46.9623 28.6055 46.768 28.6055C46.7102 28.6055 46.3663 28.6055 46.361 28.095C46.3583 27.8429 46.4097 27.5855 46.4726 27.3058ZM51.4866 29.6008L51.5484 29.5379C51.6362 29.0731 51.6506 28.9639 51.8449 28.0228C51.942 27.5764 52.143 26.5957 52.2375 26.2464C52.4163 26.1634 52.5894 26.0821 52.7628 26.0821C53.1604 26.0821 53.112 26.4313 53.0962 26.5704C53.0818 26.8044 52.9359 27.567 52.7836 28.2221L52.6892 28.6449C52.6169 28.9575 52.5383 29.2606 52.4687 29.5705L52.4989 29.6324C53.3117 29.589 53.5493 29.589 54.245 29.6008L54.329 29.5379C54.4511 28.8116 54.484 28.6173 54.7125 27.5606L54.8214 27.0746C55.0392 26.1241 55.1495 25.6425 54.9882 25.2499C54.8097 24.8099 54.3909 24.7037 54.0141 24.7037C53.7644 24.7037 53.3063 24.7639 52.8992 24.9649C52.7537 25.0412 52.6078 25.1289 52.4647 25.2169L52.5894 24.734L52.5225 24.6523C51.6546 24.8284 51.4563 24.8519 50.6554 24.9649L50.5939 25.0096C50.4968 25.7816 50.4178 26.3617 50.0726 27.8796C49.9412 28.4389 49.8047 29.0035 49.6683 29.5615L49.7049 29.6324C50.528 29.589 50.7737 29.589 51.4866 29.6008ZM57.4577 29.6322C57.5088 29.3828 57.8123 27.9046 57.815 27.9046C57.815 27.9046 58.0734 26.82 58.0892 26.7807C58.0892 26.7807 58.1706 26.6677 58.2519 26.623H58.3716C59.5005 26.623 60.7754 26.623 61.7746 25.888C62.4546 25.3838 62.9194 24.6393 63.1268 23.7345C63.1806 23.5127 63.2202 23.2489 63.2202 22.985C63.2202 22.6385 63.1507 22.2957 62.9497 22.0278C62.4401 21.3149 61.4254 21.3018 60.2541 21.2964C60.2504 21.2964 59.6767 21.3018 59.6767 21.3018C58.1773 21.3203 57.576 21.3149 57.329 21.2847C57.3081 21.3939 57.2688 21.5882 57.2688 21.5882C57.2688 21.5882 56.7317 24.0774 56.7317 24.0814C56.7317 24.0814 55.4464 29.3737 55.3859 29.6231C56.6951 29.6073 57.2318 29.6073 57.4577 29.6322ZM58.4529 25.2104C58.4529 25.2104 59.024 22.7262 59.0213 22.7356L59.0397 22.6083L59.0478 22.5111L59.276 22.5346C59.276 22.5346 60.4537 22.6358 60.4813 22.6385C60.9461 22.8183 61.1377 23.2818 61.004 23.8868C60.8819 24.4397 60.5233 24.9045 60.0625 25.1291C59.6831 25.3193 59.2182 25.3351 58.7393 25.3351H58.4294L58.4529 25.2104ZM62.0084 27.3518C61.8575 27.9951 61.684 29.1702 62.7592 29.589C63.1021 29.7348 63.4093 29.7782 63.7215 29.7624C64.0512 29.7446 64.3567 29.5792 64.6398 29.3412C64.6142 29.439 64.5887 29.5369 64.5631 29.635L64.6119 29.6979C65.3852 29.6652 65.6252 29.6652 66.4631 29.6716L66.5391 29.6138C66.6614 28.8946 66.7767 28.1961 67.0947 26.8201C67.2496 26.161 67.4042 25.5083 67.5632 24.8519L67.5383 24.7796C66.6732 24.9399 66.442 24.9742 65.6098 25.0922L65.5466 25.1436C65.5382 25.2105 65.5294 25.2747 65.5214 25.3389C65.392 25.1298 65.2044 24.9514 64.915 24.8401C64.545 24.6946 63.6758 24.8821 62.9286 25.5624C62.4036 26.0481 62.1516 26.7136 62.0084 27.3518ZM63.8254 27.3912C64.0106 26.5983 64.2233 25.9274 64.7745 25.9274C65.1231 25.9274 65.3066 26.2491 65.2693 26.7976C65.2397 26.9344 65.2078 27.0786 65.1698 27.2416C65.1147 27.4772 65.0548 27.7108 64.9967 27.9447C64.9375 28.1047 64.8686 28.2556 64.793 28.3561C64.6512 28.5571 64.3137 28.6818 64.1195 28.6818C64.0643 28.6818 63.7242 28.6818 63.7124 28.1803C63.7097 27.9306 63.7612 27.6735 63.8254 27.3912ZM73.3138 24.7732L73.2469 24.6969C72.3909 24.8703 72.2359 24.8979 71.4494 25.0041L71.3916 25.0619C71.3889 25.0713 71.3866 25.0858 71.3826 25.0989L71.3799 25.0858C70.7944 26.4366 70.8115 26.1452 70.3349 27.2086C70.3322 27.1602 70.3322 27.13 70.3295 27.0785L70.2102 24.7732L70.1353 24.6969C69.2385 24.8703 69.2174 24.8979 68.3892 25.0041L68.3247 25.0619C68.3156 25.0895 68.3156 25.1197 68.3102 25.1526L68.3156 25.1644C68.4191 25.6934 68.3942 25.5755 68.4981 26.4104C68.5465 26.8201 68.611 27.2321 68.6594 27.6368C68.7411 28.3141 68.7868 28.6475 68.8866 29.681C68.3273 30.604 68.1949 30.9532 67.6565 31.7632L67.6602 31.7713L67.281 32.3709C67.2377 32.4341 67.1984 32.4774 67.1432 32.4959C67.0827 32.5258 67.0041 32.5312 66.8949 32.5312H66.6848L66.3725 33.5698L67.4437 33.5882C68.0726 33.5856 68.4678 33.2915 68.6806 32.8962L69.3541 31.742H69.3434L69.4143 31.6607C69.8674 30.6853 73.3138 24.7732 73.3138 24.7732ZM62.0083 38.4132H61.5539L63.2358 32.8503H63.7937L63.9709 32.2773L63.988 32.9145C63.9672 33.3084 64.2771 33.6577 65.0911 33.5998H66.0325L66.3565 32.5287H66.0023C65.7986 32.5287 65.7042 32.4772 65.7159 32.367L65.6988 31.7187H63.9554V31.722C63.3918 31.7338 61.7085 31.7761 61.3677 31.8669C60.9553 31.9731 60.5207 32.2857 60.5207 32.2857L60.6915 31.7119H59.0607L58.7209 32.8503L57.0165 38.4983H56.6858L56.3614 39.5617H59.6096L59.5007 39.9163H61.1012L61.2074 39.5617H61.6564L62.0083 38.4132ZM60.6757 33.9807C60.4145 34.0529 59.9285 34.2721 59.9285 34.2721L60.3607 32.8503H61.6564L61.3439 33.8862C61.3439 33.8862 60.9436 33.9097 60.6757 33.9807ZM60.7006 36.0117C60.7006 36.0117 60.2935 36.0628 60.0256 36.1233C59.7618 36.2033 59.2671 36.4554 59.2671 36.4554L59.7134 34.9759H61.0158L60.7006 36.0117ZM59.9746 38.4263H58.6748L59.0516 37.1777H60.3473L59.9746 38.4263ZM63.1046 34.9759H64.978L64.7088 35.8477H62.8105L62.5255 36.8009H64.1865L62.9288 38.5719C62.8407 38.7019 62.7618 38.748 62.674 38.7846C62.586 38.8293 62.4704 38.8818 62.3366 38.8818H61.8758L61.5592 39.9257H62.7644C63.3909 39.9257 63.761 39.6407 64.0343 39.2666L64.8967 38.0862L65.0819 39.2847C65.1212 39.5093 65.2826 39.6407 65.3918 39.6918C65.5125 39.7523 65.6371 39.8561 65.8133 39.8716C66.0022 39.8797 66.1386 39.886 66.2294 39.886H66.8216L67.1772 38.7177H66.9436C66.8095 38.7177 66.5786 38.6952 66.5393 38.6532C66.4999 38.6021 66.4999 38.5235 66.4788 38.4038L66.2909 37.2026H65.5215L65.859 36.8009H67.7536L68.045 35.8477H66.2909L66.5641 34.9759H68.3129L68.6372 33.9007H63.4236L63.1046 34.9759ZM47.2813 38.6691L47.7186 37.2144H49.5157L49.8441 36.1325H48.0453L48.3199 35.2371H50.0777L50.4034 34.1895H46.0051L45.6861 35.2371H46.6854L46.4188 36.1325H45.4169L45.0848 37.2329H46.0837L45.5009 39.1575C45.4223 39.4122 45.5379 39.5094 45.6112 39.6277C45.6861 39.743 45.7621 39.8193 45.9328 39.8626C46.109 39.9019 46.2296 39.9255 46.3936 39.9255H48.4197L48.7807 38.7269L47.8826 38.8503C47.7092 38.8503 47.2289 38.8294 47.2813 38.6691ZM47.4874 31.7054L47.032 32.5285C46.9345 32.7083 46.8468 32.8199 46.7678 32.8713C46.6983 32.9147 46.5604 32.9328 46.3608 32.9328H46.1232L45.8056 33.9859H46.5947C46.9742 33.9859 47.2656 33.8467 47.4048 33.7771C47.5543 33.6971 47.5936 33.7429 47.7093 33.6313L47.9758 33.4004H50.4401L50.7672 32.304H48.9633L49.2782 31.7054H47.4874ZM51.1256 38.6902C51.0836 38.6297 51.1138 38.5232 51.178 38.3014L51.8516 36.072H54.2477C54.5969 36.0669 54.849 36.0629 55.013 36.0511C55.1891 36.0326 55.3807 35.9698 55.5894 35.8569C55.8049 35.7386 55.9151 35.6139 56.0082 35.4707C56.1121 35.3278 56.2788 35.0153 56.422 34.5333L57.2686 31.712L54.7821 31.7265C54.7821 31.7265 54.0164 31.8394 53.6793 31.9641C53.3392 32.1032 52.8532 32.4918 52.8532 32.4918L53.0777 31.7184H51.5417L49.3913 38.8502C49.315 39.1272 49.2639 39.3282 49.2521 39.4488C49.2481 39.5789 49.4161 39.7076 49.525 39.8048C49.6538 39.9019 49.844 39.8861 50.0265 39.9019C50.2184 39.9164 50.4914 39.9254 50.8681 39.9254H52.0485L52.4109 38.702L51.3541 38.8018C51.2412 38.8018 51.1595 38.7413 51.1256 38.6902ZM52.2862 34.5662H54.8029L54.6429 35.0677C54.6204 35.0795 54.5666 35.0428 54.3105 35.0731H52.1312L52.2862 34.5662ZM52.7903 32.8843H55.3283L55.1458 33.4883C55.1458 33.4883 53.9495 33.4766 53.758 33.5119C52.915 33.6577 52.4226 34.1081 52.4226 34.1081L52.7903 32.8843ZM54.6993 36.747C54.6784 36.8219 54.6455 36.8676 54.5994 36.9019C54.5484 36.9349 54.4657 36.9466 54.3423 36.9466H53.9837L54.0049 36.3359H52.5132L52.4527 39.3216C52.4504 39.537 52.4712 39.6617 52.6289 39.7615C52.7865 39.8862 53.2722 39.902 53.9259 39.902H54.8606L55.1981 38.7845L54.3843 38.8292L54.1138 38.845C54.0768 38.8292 54.0415 38.8147 54.0022 38.7754C53.9679 38.7414 53.9101 38.7623 53.9195 38.5468L53.9259 37.7815L54.7793 37.7462C55.2401 37.7462 55.437 37.5963 55.6051 37.4535C55.7654 37.3167 55.8178 37.1594 55.8783 36.9466L56.0215 36.269H54.8488L54.6993 36.747Z" fill="#FEFEFE"/> </svg> </li> <li> <svg width="101" height="60" viewBox="0 0 101 60" fill="none" xmlns="http://www.w3.org/2000/svg"> <title>Paypal</title> <path fill-rule="evenodd" clip-rule="evenodd" d="M23.6943 21.2705H18.3248C17.9573 21.2705 17.6448 21.5375 17.5875 21.9001L15.4158 35.6676C15.3726 35.9394 15.583 36.1843 15.8586 36.1843H18.4221C18.7896 36.1843 19.1021 35.9172 19.1594 35.5539L19.7451 31.8407C19.8016 31.477 20.1149 31.2103 20.4816 31.2103H22.1814C25.7185 31.2103 27.7597 29.4988 28.2931 26.1075C28.5333 24.6237 28.3033 23.4579 27.6082 22.6412C26.8452 21.745 25.4914 21.2705 23.6943 21.2705ZM24.3138 26.2989C24.0202 28.2255 22.5481 28.2255 21.1246 28.2255H20.3143L20.8828 24.6274C20.9165 24.4101 21.1049 24.2499 21.3248 24.2499H21.6962C22.6658 24.2499 23.5806 24.2499 24.0533 24.8025C24.3349 25.1324 24.4214 25.6221 24.3138 26.2989ZM39.7452 26.2372H37.1739C36.9548 26.2372 36.7655 26.3974 36.7317 26.615L36.618 27.334L36.4381 27.0735C35.8815 26.2655 34.6403 25.9956 33.4013 25.9956C30.5596 25.9956 28.1329 28.1474 27.6602 31.166C27.4146 32.6715 27.7637 34.1113 28.6179 35.1154C29.4017 36.0386 30.5229 36.4233 31.8568 36.4233C34.1462 36.4233 35.416 34.9512 35.416 34.9512L35.3012 35.6658C35.258 35.939 35.4684 36.1839 35.7423 36.1839H38.0586C38.427 36.1839 38.7377 35.9169 38.7958 35.5536L40.1856 26.7538C40.2296 26.4831 40.0199 26.2372 39.7452 26.2372ZM36.1609 31.2412C35.9127 32.71 34.7468 33.696 33.26 33.696C32.5133 33.696 31.9163 33.4566 31.5334 33.0029C31.1533 32.5524 31.0087 31.9108 31.1297 31.1965C31.3615 29.7401 32.5471 28.7221 34.0114 28.7221C34.7413 28.7221 35.335 28.9644 35.726 29.4222C36.1176 29.8847 36.2732 30.5299 36.1609 31.2412ZM50.8558 26.2368H53.4399C53.8018 26.2368 54.0129 26.6426 53.8072 26.9394L45.2131 39.3431C45.074 39.544 44.8447 39.6636 44.5998 39.6636H42.019C41.6557 39.6636 41.4435 39.2545 41.6539 38.9569L44.3299 35.1801L41.4838 26.8286C41.3854 26.5383 41.5997 26.2368 41.9086 26.2368H44.4476C44.7775 26.2368 45.0685 26.4533 45.1637 26.769L46.6741 31.813L50.2381 26.5641C50.3777 26.3592 50.6095 26.2368 50.8558 26.2368Z" fill="#003863"/> <path fill-rule="evenodd" clip-rule="evenodd" d="M78.8726 35.6664L81.0762 21.6471C81.11 21.4295 81.2986 21.2693 81.5177 21.2686H83.9986C84.2726 21.2686 84.4829 21.5141 84.4397 21.7859L82.2665 35.5527C82.2099 35.916 81.8974 36.183 81.5293 36.183H79.3137C79.0397 36.183 78.8293 35.9382 78.8726 35.6664ZM61.9958 21.2693H56.6253C56.2587 21.2693 55.9462 21.5363 55.8888 21.8989L53.7171 35.6664C53.6738 35.9382 53.8842 36.183 54.1585 36.183H56.9141C57.1703 36.183 57.3894 35.9963 57.4293 35.742L58.0456 31.8394C58.1022 31.4758 58.4154 31.2091 58.782 31.2091H60.481C64.0189 31.2091 66.0598 29.4976 66.5935 26.1062C66.8344 24.6225 66.6029 23.4567 65.9082 22.64C65.1456 21.7437 63.7929 21.2693 61.9958 21.2693ZM62.6153 26.2977C62.3224 28.2243 60.8502 28.2243 59.4259 28.2243H58.6164L59.1857 24.6262C59.2195 24.4089 59.4063 24.2487 59.6268 24.2487H59.9981C60.9672 24.2487 61.8828 24.2487 62.3551 24.8013C62.6371 25.1311 62.7228 25.6209 62.6153 26.2977ZM78.0453 26.2359H75.4757C75.2548 26.2359 75.0673 26.3961 75.0343 26.6138L74.9205 27.3327L74.74 27.0722C74.1833 26.2643 72.9429 25.9943 71.7039 25.9943C68.8622 25.9943 66.4362 28.1462 65.9635 31.1648C65.7186 32.6703 66.0663 34.11 66.9205 35.1142C67.7057 36.0373 68.8255 36.4221 70.1593 36.4221C72.4487 36.4221 73.7182 34.95 73.7182 34.95L73.6038 35.6646C73.5605 35.9378 73.7709 36.1827 74.0467 36.1827H76.3619C76.7285 36.1827 77.041 35.9156 77.0984 35.5523L78.4889 26.7525C78.5314 26.4819 78.321 26.2359 78.0453 26.2359ZM74.4613 31.24C74.2146 32.7088 73.0472 33.6948 71.56 33.6948C70.8148 33.6948 70.2167 33.4554 69.8334 33.0016C69.4534 32.5511 69.3106 31.9096 69.4301 31.1953C69.663 29.7389 70.8471 28.7209 72.3114 28.7209C73.0417 28.7209 73.635 28.9632 74.0264 29.421C74.4195 29.8834 74.575 30.5287 74.4613 31.24Z" fill="#003863"/> </svg> </li> <li> <svg width="101" height="60" viewBox="0 0 101 60" fill="none" xmlns="http://www.w3.org/2000/svg"> <title>Bank transfer</title> <path fill-rule="evenodd" clip-rule="evenodd" d="M39.9085 17.0379C41.1778 17.0379 42.163 17.3031 42.9019 17.8336C43.6219 18.3641 43.9819 19.1788 44.0008 20.2587C44.0008 20.7892 43.8871 21.3197 43.6408 21.7934C43.4324 22.2291 43.0725 22.5891 42.6367 22.7975V22.8733C43.1293 23.1006 43.5461 23.4606 43.8492 23.9343C44.0387 24.2185 44.1713 24.5216 44.2661 24.8437C44.3797 25.2226 44.4366 25.6394 44.4176 26.0373C44.4366 26.6436 44.3039 27.2309 44.0576 27.7614C43.8303 28.254 43.4703 28.6708 43.0535 28.9929C42.6177 29.3339 42.1251 29.5802 41.5947 29.7318C41.0452 29.9023 40.4579 29.9781 39.8895 29.9781H32.9552V17H39.9085V17.0379ZM36.2898 21.8123H39.3401C39.719 21.8502 40.079 21.7365 40.3632 21.4902C40.5526 21.2818 40.6663 20.9976 40.6474 20.7134C40.6474 20.4482 40.5526 20.1829 40.3632 19.9745C40.079 19.7282 39.7 19.6146 39.3401 19.6525H36.2898V21.8123ZM36.2898 27.3825H39.378C39.8516 27.4203 40.3253 27.2877 40.6852 26.9846C40.9505 26.7004 41.0831 26.3404 41.0642 25.9426C41.1021 25.5068 40.9315 25.09 40.6095 24.8058C40.2495 24.5405 39.8137 24.4079 39.378 24.4269H36.2898V27.3825ZM47.5813 30.0159H44.0574L48.6423 17.0567H52.0526L56.7512 30.0159H53.0378L52.4126 27.7613H48.2255L47.5813 30.0159ZM50.3285 20.4481H50.2527L48.9076 25.2604H51.6547L50.3285 20.4481ZM60.5784 22.3429H60.6542L65.4096 30.016H68.7631V17.038H65.4286V24.2754H65.3528L60.9384 17.038H57.2439V30.016H60.5784V22.3429ZM73.405 17.038V21.585L77.6679 17.038H82.0634L76.8342 21.9829L82.3665 30.016H78.1794L74.3523 24.2564L73.3861 25.1848V30.016H70.0516V17.038H73.405ZM25.5471 34.184V32.0052H18.5939V34.184H20.8674V41.8192H23.2735V34.184H25.5471ZM31.3259 32.0052C31.667 32.0052 32.0269 32.081 32.3301 32.2136C32.6332 32.3462 32.9174 32.5546 33.1258 32.8198C33.3532 33.0851 33.5237 33.3882 33.6374 33.7293C33.77 34.0892 33.8268 34.4682 33.8268 34.8471C33.8458 35.4155 33.6942 35.9649 33.41 36.4575C33.1258 36.9122 32.7279 37.2532 32.2543 37.4806L33.6912 40.981L36.7062 32.0052H39.1692L42.5416 41.8192H39.8702L39.4155 40.1141H36.4031L35.9484 41.8192H34.0352H33.4096H31.4775L29.9997 37.8216H28.0672V41.8192H25.6611V32.0052H31.3259ZM30.606 35.7754C30.8333 35.7944 31.0607 35.6997 31.1933 35.5102C31.3259 35.3397 31.3828 35.1313 31.3828 34.9229C31.3828 34.8281 31.3638 34.7145 31.3449 34.6197C31.3259 34.525 31.2691 34.4303 31.2123 34.3355C31.1554 34.2598 31.0607 34.184 30.966 34.1271C30.8523 34.0703 30.7386 34.0324 30.606 34.0513H28.0862V35.7754H30.606ZM37.8998 34.5818H37.9377L38.904 38.2195H36.9336L37.8998 34.5818ZM45.005 36.0217H44.9482V41.8192H42.542V32.0052H45.1945L48.3774 37.4806H48.4343V32.0052H50.8404V41.8192H48.4153L45.005 36.0217ZM53.379 41.857C53.8905 42.0086 54.421 42.0844 54.9515 42.0654C55.4631 42.0844 55.9936 42.0086 56.5241 41.8381C56.9788 41.7244 57.4145 41.516 57.7934 41.2508C58.1534 41.0045 58.4376 40.6634 58.646 40.2845C58.8544 39.8487 58.9681 39.394 58.9492 38.9204C58.9681 38.4467 58.8734 37.9541 58.6839 37.5184C58.5134 37.1773 58.2671 36.8742 57.964 36.6279C57.6419 36.3816 57.2819 36.1921 56.903 36.0595C56.5053 35.927 56.0507 35.7944 55.5962 35.6618L55.5962 35.6618L55.5961 35.6618L55.5961 35.6618L55.5961 35.6618L55.596 35.6618L55.596 35.6618L55.5957 35.6617C55.3115 35.5859 55.0463 35.5101 54.7621 35.3964C54.5726 35.3396 54.4021 35.2448 54.2505 35.1312C54.1368 35.0554 54.0421 34.9417 53.9853 34.828C53.9284 34.7144 53.9095 34.6007 53.9095 34.4681C53.9284 34.2596 54.0232 34.0702 54.1937 33.9376C54.781 33.5965 55.501 33.6155 56.0693 33.9944C56.3346 34.2596 56.5241 34.6007 56.5998 34.9796L58.665 34.0702C58.5323 33.7102 58.3808 33.3881 58.1724 33.066C57.9829 32.7819 57.7366 32.5356 57.4524 32.3461C57.1493 32.1377 56.8082 31.9861 56.4483 31.8914C56.0125 31.7777 55.5389 31.7398 55.0842 31.7398C54.5726 31.7398 54.0611 31.7967 53.5685 31.9293C53.1327 32.043 52.7348 32.2324 52.3749 32.4977C52.0338 32.744 51.7686 33.066 51.5791 33.426C51.3897 33.8049 51.2949 34.2407 51.2949 34.6765C51.2949 35.0743 51.3707 35.4722 51.5223 35.8511C51.6739 36.1922 51.9012 36.4953 52.1854 36.7416C52.5264 37.0258 52.8864 37.2531 53.2843 37.4236C53.7769 37.6321 54.2884 37.8215 54.8189 37.9731L54.819 37.9731C55.0652 38.0489 55.3115 38.1247 55.5578 38.2383C55.7283 38.3141 55.8799 38.4088 56.0125 38.5225C56.1072 38.5983 56.183 38.712 56.2399 38.8446C56.2778 38.9772 56.2967 39.1098 56.2967 39.2425C56.2967 39.3751 56.2588 39.5267 56.183 39.6403C56.1072 39.754 56.0315 39.8487 55.9178 39.9056C55.8041 39.9814 55.6904 40.0193 55.5578 40.0382L55.5577 40.0382C55.4251 40.0572 55.2925 40.0761 55.1599 40.0761C54.7052 40.095 54.2505 39.9435 53.8905 39.6403C53.5495 39.2993 53.3601 38.8446 53.3411 38.352L51.0486 39.2804C51.1434 39.6593 51.2949 40.0382 51.4844 40.3982C51.6739 40.7582 51.9391 41.0423 52.2422 41.2886C52.5833 41.5349 52.9622 41.7244 53.379 41.857ZM61.5258 35.6428H65.2582V37.8216H61.5258V41.8192H59.1197V32.0052H66.395V34.184H61.5258V35.6428ZM73.8598 32.0052H66.5845V41.8382H73.9924V39.6594H68.9906V37.689H73.2535V35.5102H68.9906V34.184H73.8598V32.0052ZM79.8277 32.0052C80.1687 32.0052 80.5287 32.081 80.8318 32.2136C81.135 32.3462 81.4191 32.5546 81.6276 32.8198C81.8549 33.0851 82.0254 33.3882 82.1391 33.7293C82.2717 34.0892 82.3286 34.4682 82.3286 34.8471C82.3475 35.4155 82.1959 35.9649 81.9117 36.4575C81.6276 36.9122 81.2297 37.2532 80.756 37.4806L82.537 41.8192H79.9792L78.5014 37.8216H76.569V41.8192H74.1628V32.0052H79.8277ZM79.1077 35.7754C79.3351 35.7944 79.5624 35.6997 79.6951 35.5102C79.8277 35.3397 79.8845 35.1313 79.8845 34.9229C79.8845 34.8281 79.8656 34.7145 79.8466 34.6197C79.8277 34.525 79.7708 34.4303 79.714 34.3355C79.6572 34.2598 79.5624 34.184 79.4677 34.1271C79.354 34.0703 79.2403 34.0324 79.1077 34.0513H76.5879V35.7754H79.1077ZM18.5371 17.038H31.6667V19.6715H18.5371V17.038ZM31.6667 21.9828H18.5371V24.6163H31.6667V21.9828ZM18.5371 27.4012H31.6667V30.0347H18.5371V27.4012Z" fill="#003863"/> </svg> </li> </ul> <span class="footer-label">Several payment methods</span> </li> <li> <svg xmlns="http://www.w3.org/2000/svg" width="27" height="25" viewBox="0 0 27 25" fill="none"> <path fill-rule="evenodd" clip-rule="evenodd" d="M7.84526 0.350098H19.1554C20.2287 0.350081 21.1145 0.350067 21.8361 0.409024C22.5856 0.470257 23.2745 0.601676 23.9216 0.931397C24.9251 1.44272 25.741 2.25862 26.2524 3.26215C26.5821 3.90926 26.7135 4.5982 26.7747 5.34766C26.8337 6.06925 26.8337 6.95506 26.8337 8.02834V23.0168C26.8337 23.4789 26.5944 23.908 26.2013 24.151C25.8082 24.3939 25.3174 24.416 24.904 24.2093L20.4716 21.9931C20.1038 21.8092 20.0306 21.7759 19.9627 21.753C19.8845 21.7267 19.804 21.7077 19.7223 21.6963C19.6514 21.6864 19.571 21.6834 19.1598 21.6834H7.84529C6.77198 21.6834 5.88616 21.6835 5.16456 21.6245C4.4151 21.5633 3.72616 21.4319 3.07904 21.1021C2.07551 20.5908 1.25962 19.7749 0.748292 18.7714C0.418571 18.1243 0.287152 17.4353 0.225918 16.6859C0.166962 15.9643 0.166976 15.0785 0.166993 14.0052V8.02837C0.166976 6.95507 0.166962 6.06926 0.225918 5.34766C0.287152 4.5982 0.418571 3.90926 0.748292 3.26215C1.25962 2.25862 2.07551 1.44272 3.07904 0.931397C3.72616 0.601676 4.4151 0.470257 5.16456 0.409024C5.88615 0.350067 6.77197 0.350081 7.84526 0.350098ZM5.38171 3.06683C4.79716 3.11459 4.49822 3.20116 4.28969 3.30741C3.78792 3.56308 3.37997 3.97103 3.12431 4.47279C3.01806 4.68132 2.93149 4.98026 2.88373 5.56482C2.8347 6.16494 2.83366 6.94133 2.83366 8.08343V13.9501C2.83366 15.0922 2.8347 15.8686 2.88373 16.4687C2.93149 17.0533 3.01806 17.3522 3.12431 17.5607C3.37997 18.0625 3.78792 18.4705 4.28969 18.7261C4.49822 18.8324 4.79716 18.9189 5.38171 18.9667C5.98183 19.0157 6.75822 19.0168 7.90033 19.0168H19.1598C19.181 19.0168 19.2021 19.0168 19.2231 19.0167C19.5368 19.0166 19.8137 19.0164 20.0921 19.0554C20.3371 19.0897 20.5785 19.1467 20.813 19.2256C21.0795 19.3152 21.3271 19.4392 21.6076 19.5796C21.6263 19.589 21.6451 19.5985 21.6642 19.608L24.167 20.8594V8.08343C24.167 6.94133 24.166 6.16494 24.1169 5.56482C24.0692 4.98026 23.9826 4.68132 23.8763 4.47279C23.6207 3.97103 23.2127 3.56308 22.711 3.30741C22.5024 3.20116 22.2035 3.11459 21.6189 3.06683C21.0188 3.0178 20.2424 3.01677 19.1003 3.01677H7.90033C6.75822 3.01677 5.98183 3.0178 5.38171 3.06683ZM13.6929 7.44073C13.3055 7.37428 12.9071 7.44708 12.5682 7.64624C12.2293 7.84541 11.9719 8.15807 11.8414 8.52887C11.5971 9.22353 10.8359 9.58856 10.1412 9.34419C9.44655 9.09983 9.08152 8.33861 9.32588 7.64396C9.6653 6.67909 10.3352 5.86547 11.2171 5.34722C12.0989 4.82897 13.1357 4.63953 14.1438 4.81245C15.1519 4.98536 16.0662 5.50948 16.725 6.29197C17.3835 7.07427 17.744 8.06434 17.7426 9.08691C17.742 10.7933 16.4798 11.8902 15.65 12.4434C15.1945 12.7471 14.7484 12.9692 14.4215 13.1145C14.2561 13.188 14.1165 13.2439 14.015 13.2826C13.9642 13.3019 13.9226 13.3171 13.8919 13.328L13.854 13.3413L13.8414 13.3456L13.8367 13.3472L13.8348 13.3478C13.8344 13.3479 13.8332 13.3483 13.4116 12.0834L13.8332 13.3483C13.1346 13.5812 12.3795 13.2037 12.1466 12.5051C11.9139 11.807 12.2908 11.0525 12.9884 10.819C12.9882 10.8191 12.9887 10.8189 12.9884 10.819L12.9985 10.8154C13.0117 10.8108 13.0346 10.8025 13.0657 10.7906C13.1282 10.7668 13.2228 10.7291 13.3384 10.6777C13.5736 10.5731 13.877 10.4205 14.1708 10.2246C14.8397 9.77865 15.076 9.3771 15.076 9.08567L15.076 9.08368C15.0766 8.69061 14.938 8.31002 14.6849 8.00931C14.4317 7.7086 14.0804 7.50718 13.6929 7.44073ZM12.1149 16.0834C12.1149 15.3471 12.7119 14.7501 13.4482 14.7501H13.4616C14.198 14.7501 14.7949 15.3471 14.7949 16.0834C14.7949 16.8198 14.198 17.4168 13.4616 17.4168H13.4482C12.7119 17.4168 12.1149 16.8198 12.1149 16.0834Z" fill="#003863"/> </svg> <span class="footer-label">Multilingual customer service support</span> </li> </ul> </div> </div></div></div></div><div class="footer_newsletter_container"><div class="container inner-container"><div class="wide_contentsystem_summary simple_html iec_footer_newsletter"> <div class="content-system--html"><p class="title">Newsletter</p> <p>Stay up to date with the free IEC Just Published newsletter. This email will be sent on the 1st each month and will contain all publications issued the previous month.</p> </div></div><div class="footer_newsletter_form"> <div class="lg:w-1/4 md:w-1/2"><form class="form subscribe" action="https://webstore.iec.ch/en/newsletter/subscriber/new/" method="post" x-data="initNewsletterForm()" @submit.prevent="submitForm()" id="newsletter-validate-detail" aria-label="Subscribe&#x20;to&#x20;newsletter" ><h2 class="mb-3 text-sm font-medium tracking-widest text-gray-900 uppercase title-font" id="footer-newsletter-heading" >Newsletter</h2><div class="flex flex-col lg:flex-row justify-center gap-4 subscribe_form_container"><label for="newsletter-subscribe" class="sr-only">Email address</label> <input name="email" type="email" required id="newsletter-subscribe" class="form-input inline-flex w-full" placeholder="Your&#x20;email" aria-describedby="footer-newsletter-heading" ><input name="form_key" type="hidden" value="fI5MxR68EQxUiMVE" /> <button class="inline-flex shrink-0 mt-0 btn btn-secondary btn-size-sm">Subscribe</button></div><div><template x-if="displayErrorMessage"><p class="flex items-center text-red"><span class="inline-block w-8 h-8 mr-3"><svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" viewBox="0 0 24 24" width="24" height="24" role="img"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4m0 4h.01M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"/><title>exclamation-circle</title></svg> </span> <template x-for="errorMessage in errorMessages"><span x-html="errorMessage"></span></template></p></template></div></form><div class="w-full"></div><script> function initNewsletterForm() { return { errors: 0, hasCaptchaToken: 0, displayErrorMessage: false, errorMessages: [], setErrorMessages(messages) { this.errorMessages = [messages] this.displayErrorMessage = this.errorMessages.length }, submitForm() { const $form = document.querySelector('#newsletter-validate-detail'); if (this.errors === 0) { $form.submit(); } } } }</script></div></div><div class="wide_contentsystem_summary simple_html iec_footer_followus"> <div class="content-system--html"><p class="title">Follow us</p> <ul class="followus"> <li> <a href="https://ch.linkedin.com/company/iecstandards" target="_blank" rel="noopener" aria-label="IEC - Linkedin"> <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"> <path d="M2.75 0.225098C1.57639 0.225098 0.625 1.17649 0.625 2.3501C0.625 3.5237 1.57639 4.4751 2.75 4.4751C3.9236 4.4751 4.875 3.5237 4.875 2.3501C4.875 1.17649 3.9236 0.225098 2.75 0.225098Z" fill="white"/> <path d="M0.75 6.2251C0.680964 6.2251 0.625 6.28106 0.625 6.3501V19.3501C0.625 19.4191 0.680964 19.4751 0.75 19.4751H4.75C4.81904 19.4751 4.875 19.4191 4.875 19.3501V6.3501C4.875 6.28106 4.81904 6.2251 4.75 6.2251H0.75Z" fill="white"/> <path d="M7.25 6.2251C7.18096 6.2251 7.125 6.28106 7.125 6.3501V19.3501C7.125 19.4191 7.18096 19.4751 7.25 19.4751H11.25C11.319 19.4751 11.375 19.4191 11.375 19.3501V12.3501C11.375 11.8528 11.5725 11.3759 11.9242 11.0243C12.2758 10.6726 12.7527 10.4751 13.25 10.4751C13.7473 10.4751 14.2242 10.6726 14.5758 11.0243C14.9275 11.3759 15.125 11.8528 15.125 12.3501V19.3501C15.125 19.4191 15.181 19.4751 15.25 19.4751H19.25C19.319 19.4751 19.375 19.4191 19.375 19.3501V10.7303C19.375 8.3036 17.2644 6.40509 14.8498 6.6246C14.1052 6.69229 13.369 6.87741 12.6815 7.17204L11.375 7.73196V6.3501C11.375 6.28106 11.319 6.2251 11.25 6.2251H7.25Z" fill="white"/> </svg> </a> </li> <li> <a href="https://twitter.com/IECStandards" target="_blank" rel="noopener" aria-label="IEC - X"> <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"> <path d="M0.0486663 0.350098L7.77043 10.7684L0 19.239H1.74895L8.55211 11.8227L14.0487 19.239H20L11.8436 8.23478L19.0764 0.350098H17.3274L11.0623 7.18015L6 0.350098H0.0486663ZM2.62057 1.64993H5.35459L17.4278 17.9392H14.6937L2.62057 1.64993Z" fill="white"/> </svg> </a> </li> <li> <a href="https://www.youtube.com/channel/UCxGk_S_rnYyFBcTidgny7EA" target="_blank" rel="noopener" aria-label="IEC - Youtube"> <svg xmlns="http://www.w3.org/2000/svg" width="22" height="15" viewBox="0 0 22 15" fill="none"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98901 0.240647C9.32468 -0.02032 12.6756 -0.0203199 16.0113 0.240647L18.252 0.415949C19.5001 0.513593 20.5211 1.44899 20.7274 2.68376C21.2436 5.77326 21.2436 8.927 20.7274 12.0165C20.5211 13.2513 19.5001 14.1867 18.252 14.2843L16.0113 14.4596C12.6756 14.7206 9.32467 14.7206 5.989 14.4596L3.7483 14.2843C2.50023 14.1867 1.47921 13.2513 1.2729 12.0165C0.756691 8.927 0.756691 5.77326 1.2729 2.68376C1.47921 1.44899 2.50023 0.513593 3.7483 0.415949L5.98901 0.240647ZM9.00012 9.82027V4.87999C9.00012 4.6468 9.25451 4.50276 9.45447 4.62274L13.5714 7.09288C13.7656 7.2094 13.7656 7.49086 13.5714 7.60738L9.45447 10.0775C9.25451 10.1975 9.00012 10.0535 9.00012 9.82027Z" fill="white"/> </svg> </a> </li> <li> <a href="https://www.facebook.com/InternationalElectrotechnicalCommission" target="_blank" rel="noopener" aria-label="IEC - Facebook"> <svg xmlns="http://www.w3.org/2000/svg" width="12" height="19" viewBox="0 0 12 19" fill="none"> <path d="M8.2 0.225098C6.97337 0.225098 5.79699 0.712373 4.92963 1.57973C4.06228 2.44708 3.575 3.62347 3.575 4.8501V7.4251H1.1C0.975736 7.4251 0.875 7.52583 0.875 7.6501V11.0501C0.875 11.1744 0.975736 11.2751 1.1 11.2751H3.575V18.2501C3.575 18.3744 3.67574 18.4751 3.8 18.4751H7.2C7.32426 18.4751 7.425 18.3744 7.425 18.2501V11.2751H9.92192C10.0252 11.2751 10.1152 11.2048 10.1402 11.1047L10.9902 7.70467C11.0257 7.56266 10.9183 7.4251 10.7719 7.4251H7.425V4.8501C7.425 4.64456 7.50665 4.44743 7.65199 4.30209C7.79733 4.15675 7.99446 4.0751 8.2 4.0751H10.8C10.9243 4.0751 11.025 3.97436 11.025 3.8501V0.450098C11.025 0.325834 10.9243 0.225098 10.8 0.225098H8.2Z" fill="white"/> </svg> </a> </li> </ul> </div></div></div></div><div class="footer_menu_container"><div class="container inner-container"><div class="wide_contentsystem_summary simple_html iec_footer_column01"> <div class="content-system--html"><div class="iec-footer-column01"> <div class="flex items-center no-underline hover:no-underline gap-2"> <svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg"> <title>IEC</title> <path d="M0 0H64V64H0V0Z" fill="#0067B6"/> <path d="M7.07324 15.4948H12.2943V39.0737H7.07324V15.4948Z" fill="white"/> <path d="M34.9552 14.9895H25.557C25.557 14.9895 23.4669 14.9895 22.2416 14.9895C21.0164 14.9895 19.2002 16.2499 19.2002 18.0288C19.2002 19.8078 19.2002 33.8953 19.2002 35.307C19.2002 36.7186 20.5984 39.0737 22.9912 39.0737C25.384 39.0737 35.2002 39.0737 35.2002 39.0737V37.0859C35.2002 37.0859 28.0723 37.0859 26.5371 37.0859C25.002 37.0859 24.2669 36.4161 24.2669 35.5518C24.2669 34.6948 24.2669 29.7829 24.2669 29.113C24.2669 28.436 24.2452 27.3341 24.8723 27.3341C25.7948 27.3341 32.4903 27.3341 32.4903 27.3341V25.5552C32.4903 25.5552 26.0398 25.5552 25.0597 25.5552C24.0795 25.5552 24.2669 24.9142 24.2669 24.3596C24.2669 23.805 24.2669 19.5413 24.2669 18.9291C24.2669 18.3169 24.2452 17.251 25.5353 17.251C26.8254 17.251 34.9479 17.251 34.9479 17.251V14.9895" fill="white"/> <path d="M57.411 18.9055C57.411 18.9055 54.5695 14.4843 48.1472 14.4843C42.892 14.4843 36.042 18.9631 36.042 27.244C36.042 36.2666 43.827 39.579 48.5169 39.579C55.6858 39.579 58.2736 33.5015 58.2736 33.5015L57.0413 32.4574C57.0413 32.4574 53.7504 37.822 48.8431 37.822C45.8132 37.822 40.9783 35.0929 40.9783 27.2368C40.9783 18.5239 45.0666 16.3133 48.8431 16.3133C53.475 16.3133 56.1135 20.1153 56.1135 20.1153L57.411 18.9055Z" fill="white"/> <path fill-rule="evenodd" clip-rule="evenodd" d="M7.07324 45.979H50.574C50.7906 45.551 51.0504 45.1455 51.368 44.8H7.07324V45.979Z" fill="white"/> <path fill-rule="evenodd" clip-rule="evenodd" d="M7.07324 48.6737H50.0206C49.999 48.5064 49.9629 48.3455 49.9629 48.1717C49.9629 47.9979 49.999 47.8306 50.0206 47.6632H7.07324V48.6737Z" fill="white"/> <path fill-rule="evenodd" clip-rule="evenodd" d="M7.07324 51.5369H51.368C51.0504 51.1914 50.7905 50.7859 50.5739 50.3579H7.07324V51.5369Z" fill="white"/> <path d="M54.9055 51.5369C56.7712 51.5369 58.274 50.0269 58.274 48.1685C58.274 46.31 56.764 44.8 54.9055 44.8C53.0471 44.8 51.5371 46.31 51.5371 48.1685C51.5371 50.0269 53.0471 51.5369 54.9055 51.5369Z" fill="white"/> </svg> <span class="hidden md:block leading-[122%]">International<br>Electrotechnical<br>Commission</span> </div> <p> Founded in 1906, the IEC (International Electrotechnical Commission) is the world’s leading organization for the preparation and publication of international standards for all electrical, electronic and related technologies. <br> International Standards facilitate technical innovation, efficient and sustainable energy access, smart urbanization and transportation systems, climate change mitigation, and increases the safety of people and the environment. </p> </div> </div></div><div class="wide_contentsystem_summary simple_html iec_footer_column02"> <div class="content-system--html"><div class="iec-footer-column02"> <ul class="iec-footer-associated-sites"> <li class="title"> Associated sites </li> <li> <a href="https://www.iec.ch/" title='IEC website' target="_blank">IEC website</a> </li> <li> <a href="https://etech.iec.ch/" title='IEC e-tech magazine' target="_blank">IEC e-tech magazine</a> </li> <li> <a href="https://mapping.iec.ch" title='IEC mapping platform' target="_blank">IEC mapping platform</a> </li> <li> <a href="https://products.iec.ch" title='IEC products and services portal' target="_blank">IEC products and services portal</a> </li> </ul> </div> </div></div><div class="wide_contentsystem_summary simple_html iec_footer_column03"> <div class="content-system--html"><div class="iec-footer-column03"> <ul class="iec-footer-information"> <li class="title"> Information </li> <li> <a href="https://webstore.iec.ch/en/faq/" title='FAQ'>FAQ</a> </li> <li> <a href="https://webstore.iec.ch/en/terms-conditions/" title='Terms &amp; conditions'>Terms &amp; conditions</a> </li> <li> <a href="https://webstore.iec.ch/en/privacy/" title='Privacy notice'>Privacy notice</a> </li> <li> <!-- CookiePro Cookies Settings button start --> <button id="ot-sdk-btn" class="ot-sdk-show-settings">Cookie policy</button> <!-- CookiePro Cookies Settings button end --> </li> </ul> </div> </div></div><div class="wide_contentsystem_summary simple_html iec_footer_column04"> <div class="content-system--html"><div class="iec-footer-column04"> <ul class="iec-footer-customer-service"> <li class="title"> Customer service </li> <li> 3 rue de Varembé </li> <li> PO Box 131 </li> <li> CH-1211 Geneva 20 </li> <li> Switzerland </li> <li> <a href='mailto:sales@iec.ch'>sales@iec.ch</a> </li> <li> <a href="https://webstore.iec.ch/en/contact/" class="button">Contact us</a> </li> </ul> </div> </div></div></div></div><div class="footer_copyright_container"><div class="container inner-container"><div class="wide_contentsystem_summary simple_html iec_footer_copyright"> <div class="content-system--html"><p class="copyright"> <a href="https://webstore.iec.ch/en/copyright/" title='Copyright'>Copyright</a> © <a href="https://www.iec.ch/" title='IEC website'>IEC</a> 2024. All rights reserved </p> </div></div></div></div></div></footer> <div x-data="hyvaFormValidationRules()" @hyva-form-validation-register-rule.window="registerRule(event.detail.rule)" x-spread="eventListeners" ></div><script> function hyvaFormValidationRules() { return { registerRule(rule) { if (typeof hyva.formValidation !== "undefined") { hyva.formValidation.addRule(rule.name, rule.callback); } } }; }</script> <div x-data="registerHyvaFormValidationLatinCharacters()"></div><script> function registerHyvaFormValidationLatinCharacters() { return { init() { const rule = { 'name': 'validate-no-latin-characters', 'callback': function(value, options, field, context) { if (value == '') { return true; } return !new RegExp(/[^\p{sc=Latin}\d&'\(\);\s\-,.\/_]+/ui).test(value) ? true : 'Please\u0020use\u0020only\u0020Latin\u0020alphabet\u0020characters.' } } window.dispatchEvent( new CustomEvent( 'hyva-form-validation-register-rule', { detail: { rule: rule } } ) ); } }; }</script> <input type="hidden" id="disable_cookies" name="disable_cookies" value="0"><script type="text/javascript" > window.stealthUrl = 'https://ruby.ops.iec.ch/matomo.php'; window.matomoUrl = 'https://ruby.ops.iec.ch/'; var _paq = window._paq = window._paq || []; (function () { _paq.push(["setTrackerUrl", "https://ruby.ops.iec.ch/matomo.php"]); _paq.push(["setSiteId", "11"]); _paq.push(["setEcommerceView", productSku = false, productName = false, category = "Bestsellers" ]); if (document.prerendering) { document.addEventListener('prerenderingchange', () => { _paq.push(['trackPageView']); }, { once: true, }); } else { _paq.push(['trackPageView']); } _paq.push(['enableLinkTracking']); })(); var eventNames = [ "wheel", "touchstart", "mouseover", "scroll", "keydown" ]; function addMultiEventListener(element, eventNames, listener) { for (var i=0, iLen=eventNames.length; i<iLen; i++) { element.addEventListener(eventNames[i], listener, true); } } function removeMultiEventListener(element, eventNames, listener) { for (var i=0, iLen=eventNames.length; i<iLen; i++) { element.removeEventListener(eventNames[i], listener, true); } } var isMatomoLoaded = false; const loadMatomoScript = () => { if (!isMatomoLoaded) { isMatomoLoaded = true; var d = document, g = d.createElement('script'), s = d.getElementsByTagName('script')[0]; g.type = 'text/javascript'; g.async = true; g.onload = () => { let script, html, currentSummaryCount, currentSubtotalAmount; const trackingCartData = (cartdata) => { if( (cartdata.subtotalAmount && cartdata.summary_count) && ( (cartdata.subtotalAmount !== currentSubtotalAmount) || (cartdata.summary_count !== currentSummaryCount) ) ){ currentSubtotalAmount = cartdata.subtotalAmount; currentSummaryCount = cartdata.summary_count; script = document.createElement("script"); script.type='text/javascript'; html = ""; let totalAmount = cartdata.subtotalAmount; let items = cartdata.items; if(items){ items.forEach(function(item){ item.category_name = ""; html += "_paq.push(['addEcommerceItem', \"" + item.product_sku + "\", \""+item.product_name+"\", \""+ item.category_name+"\", "+item.product_price_value+", "+ item.qty+"]);"; }) } script.innerHTML = html; document.head.appendChild(script); script = document.createElement("script"); script.type='text/javascript'; html = ""; html += "_paq.push(['trackEcommerceCartUpdate', "+totalAmount+"]);"; script.innerHTML = html; document.head.appendChild(script); } } window.addEventListener("private-content-loaded", event => { const sectionData = event.detail.data; if (sectionData){ let cart = sectionData.cart; trackingCartData(cart); } }); if (typeof require !== 'undefined') { require(['Magento_Customer/js/customer-data'], customerData => { customerData.get('cart').subscribe((cart) => { trackingCartData(cart); }) }) } }; g.src = 'https://ruby.ops.iec.ch/matomo.js'; s.parentNode.insertBefore(g, s); removeMultiEventListener(window, eventNames, loadMatomoScript); } else { removeMultiEventListener(window, eventNames, loadMatomoScript); } } loadMatomoScript(); </script> <script type="text/javascript" > (function () { })();</script> <script> (() => { function src_default(Alpine) { Alpine.directive("intersect", (el, { value, expression, modifiers }, { evaluateLater, cleanup }) => { let evaluate = evaluateLater(expression); let options = { rootMargin: getRootMargin(modifiers), threshold: getThreshhold(modifiers) }; let observer = new IntersectionObserver((entries) => { entries.forEach((entry) => { if (entry.isIntersecting === (value === "leave")) return; evaluate(); modifiers.includes("once") && observer.disconnect(); }); }, options); observer.observe(el); cleanup(() => { observer.disconnect(); }); }); } function getThreshhold(modifiers) { if (modifiers.includes("full")) return 0.99; if (modifiers.includes("half")) return 0.5; if (!modifiers.includes("threshold")) return 0; let threshold = modifiers[modifiers.indexOf("threshold") + 1]; if (threshold === "100") return 1; if (threshold === "0") return 0; return Number(`.${threshold}`); } function getLengthValue(rawValue) { let match = rawValue.match(/^(-?[0-9]+)(px|%)?$/); return match ? match[1] + (match[2] || "px") : void 0; } function getRootMargin(modifiers) { const key = "margin"; const fallback = "0px 0px 0px 0px"; const index = modifiers.indexOf(key); if (index === -1) return fallback; let values = []; for (let i = 1; i < 5; i++) { values.push(getLengthValue(modifiers[index + i] || "")); } values = values.filter((v) => v !== void 0); return values.length ? values.join(" ").trim() : fallback; } document.addEventListener("alpine:init", () => { window.Alpine.plugin(src_default); }); })();</script> <script type="module" src="https://webstore.iec.ch/static/version1724834898/frontend/Magento/base/default/Hyva_Theme/js/alpine3.min.js" defer crossorigin ></script> <script> 'use strict'; function dispatchMessages(messages, hideAfter) { const messagesEvent = new CustomEvent("messages-loaded", { detail: { messages: messages, hideAfter: hideAfter } }); window.dispatchEvent(messagesEvent); } if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) { console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script"); } (function( hyva, undefined ) { hyva.initFormKey = () => { const inputSelector = 'input[name="form_key"]', formKey = hyva.getFormKey(); Array.from(document.querySelectorAll(inputSelector)).map(function (input) { input.value = formKey }); } hyva.initMessages = () => { try { const messages = hyva.getCookie('mage-messages'); window.mageMessages = messages ? JSON.parse(decodeURIComponent(messages)) : []; dispatchMessages(window.mageMessages); const skipSetDomain = true; hyva.setCookie('mage-messages','', -1, skipSetDomain); } catch (error) { console.warn('Error parsing Cookie Messages:', error); } } window.addEventListener('DOMContentLoaded', hyva.initFormKey); window.addEventListener('alpine:initialized', hyva.initMessages); }( window.hyva = window.hyva || {} ));</script> <script> 'use strict'; { const private_content_key = 'mage-cache-storage'; const private_content_expire_key = 'mage-cache-timeout'; const private_content_version_key = 'private_content_version'; const section_data_ids_key = 'section_data_ids'; const mage_cache_session_id_key = 'mage-cache-sessid'; const last_visited_store_key = 'last_visited_store'; const ttl = 3600; if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) { console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script"); } function loadSectionData () { const browserStorage = hyva.getBrowserStorage(); if (!browserStorage) { typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( [{ type: "warning", text: "Please enable LocalStorage in your browser." }] ); return; } try { let isInvalid = false; if (hyva.getCookie(last_visited_store_key) !== CURRENT_STORE_CODE) { isInvalid = true; } hyva.setCookie(last_visited_store_key, CURRENT_STORE_CODE, false, false); if (!hyva.getCookie(mage_cache_session_id_key)) { isInvalid = true; const skipSetDomain = true; const days = false; hyva.setCookie(mage_cache_session_id_key, true, days, skipSetDomain) } const cookieVersion = hyva.getCookie(private_content_version_key); const storageVersion = browserStorage.getItem(private_content_version_key); if (cookieVersion && !storageVersion || cookieVersion !== storageVersion) { isInvalid = true; } const privateContentExpires = browserStorage.getItem(private_content_expire_key); if (privateContentExpires && new Date(privateContentExpires) < new Date()) { browserStorage.removeItem(private_content_key); } if (isInvalid) { fetchPrivateContent([]); } else if (cookieVersion && storageVersion && cookieVersion === storageVersion) { const privateContent = JSON.parse(browserStorage.getItem(private_content_key)); if ( privateContent && privateContentExpires && privateContent.cart && privateContent.customer ) { dispatchPrivateContent(privateContent); } else { fetchPrivateContent([]); } } else { dispatchPrivateContent({}); } } catch (error) { console.warn('Error retrieving Private Content:', error); } } window.addEventListener('alpine:initialized', loadSectionData); window.addEventListener('reload-customer-section-data', loadSectionData); function dispatchPrivateContent(data) { const privateContentEvent = new CustomEvent("private-content-loaded", { detail: { data: data } }); window.dispatchEvent(privateContentEvent); } function fetchPrivateContent(sections) { fetch(`${BASE_URL}customer/section/load/?sections=${encodeURIComponent(sections.join(','))}`, { method: 'GET', headers: { 'Content-Type': 'application/json', 'X-Requested-With': 'XMLHttpRequest' } }) .then(response => response.json()) .then( data => { if (data) { try { const browserStorage = hyva.getBrowserStorage(); const oldSectionData = JSON.parse(browserStorage.getItem(private_content_key) || '{}'); if ((! data.cart || ! data.cart.cartId) && oldSectionData['checkout-data']) { delete oldSectionData['checkout-data']; } const newSectionData = Object.assign(oldSectionData, data); dispatchPrivateContent(newSectionData); if (newSectionData.messages && newSectionData.messages.messages ) { newSectionData.messages.messages = []; } browserStorage.setItem(private_content_key, JSON.stringify(newSectionData)); const expiresAt = new Date(Date.now() + (ttl * 1000)).toISOString(); browserStorage.setItem(private_content_expire_key, expiresAt); const newCookieVersion = hyva.getCookie(private_content_version_key); browserStorage.setItem(private_content_version_key, newCookieVersion); hyva.setCookie( section_data_ids_key, JSON.stringify( Object.keys(data).reduce((sectionDataIds, sectionKey) => { sectionDataIds[sectionKey] = data[sectionKey]['data_id']; return sectionDataIds; }, {}) ), false, true ); } catch (error) { console.warn("Couldn't store privateContent", error); } } } ); } }</script><script> (() => { document.addEventListener('submit', event => event.target.action = event.target.action.replace('%25uenc%25', hyva.getUenc())); })()</script> <script> (events => { const dispatchUserInteractionEvent = () => { events.forEach(type => window.removeEventListener(type, dispatchUserInteractionEvent)) window.dispatchEvent(new Event('init-external-scripts')) }; events.forEach(type => window.addEventListener(type, dispatchUserInteractionEvent, {once: true, passive: true})) })(['touchstart', 'mouseover', 'wheel', 'scroll', 'keydown'])</script> <script> function initWishlist() { return { addToWishlist(productId) { const formKey = hyva.getFormKey(); const postUrl = BASE_URL + 'wishlist/index/add/'; fetch(postUrl, { "headers": { "content-type": "application/x-www-form-urlencoded; charset=UTF-8", }, "body": "form_key=" + formKey + "&product=" + productId + "&uenc=" + hyva.getUenc(), "method": "POST", "mode": "cors", "credentials": "include" }).then(function (response) { if (response.redirected) { window.location.href = response.url; } else if (response.ok) { return response.json(); } else { typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( [{ type: "warning", text: "Could not add item to your favourites." }], 5000 ); } }).then(function (response) { if (!response) { return } typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( [{ type: (response.success) ? "success" : "error", text: (response.success) ? "Product has been added to your favourites." : response.error_message }], 5000 ); const reloadCustomerDataEvent = new CustomEvent("reload-customer-section-data"); window.dispatchEvent(reloadCustomerDataEvent); }).catch(function (error) { typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( [{ type: "error", text: error }], 5000 ); }); } } }</script> <script> function initConfigurableOptions(productId, optionConfig) { function findPathParam(key) { const baseUrl = (BASE_URL.substring(0, 2) === '//' ? 'http:' : '') + BASE_URL; const baseUrlParts = (new URL(baseUrl)).pathname.replace(/\/$/, '').split('/'); const pathParts = window.location.pathname.split('/').slice(baseUrlParts.length + 3); for (let i = 0; i < pathParts.length; i += 2) { if (pathParts[i] === key && pathParts.length > i) { return pathParts[i + 1]; } } } return { optionConfig, productId, itemId: (new URLSearchParams(window.location.search)).get('id') || findPathParam('id'), allowedAttributeOptions: [], selectedValues: [], init() { this.findAllowedAttributeOptions(); this.$nextTick(() => { if (typeof this.optionConfig.defaultValues === 'object') { for (const [attributeId, value] of Object.entries(this.optionConfig.defaultValues)) { this.changeOption(attributeId, value + ''); } } }); }, findSimpleIndex() { this.productIndex = this.calculateSimpleIndexForPartialSelection(this.selectedValues); }, calculateSimpleIndexForPartialSelection(selectedValues) { if (selectedValues.length === 0) return 0; let productIndexIds = Object.keys(this.optionConfig.index); Object.keys(this.optionConfig.attributes).forEach((attribute) => { const productsWithAttributeMatch = selectedValues[attribute] ? productIndexIds.filter((productIndex) => { return this.optionConfig.index[productIndex][attribute] === this.selectedValues[attribute] }) : []; productIndexIds = productsWithAttributeMatch.length ? productsWithAttributeMatch : productIndexIds }) return productIndexIds[0]; }, calculateSimpleIndexForFullSelection(selectedValues) { const productIndexes = this.optionConfig.index; return Object.keys(productIndexes).find(productIndex => { const productCandidateOptions = productIndexes[productIndex]; for (const productOption in productCandidateOptions) { if ( ! selectedValues[productOption] || selectedValues[productOption] !== productCandidateOptions[productOption] ) { return false; } } return productIndex; }); }, productIndex: 0, findAllowedAttributeOptions() { this.allowedAttributeOptions = this.calculateAllowedAttributeOptions(this.selectedValues); }, calculateAllowedAttributeOptions(selectedValues) { const allAttributes = this.optionConfig.attributes; const allAttributesSorted = Object.values(allAttributes).sort((a,b) => { return a.position - b.position }); const newAllowedAttributeOptions = []; allAttributesSorted.forEach(attribute => { const selectionWithoutAttr = Object.assign({}, this.removeAttrFromSelection(selectedValues, attribute.id)); const availableIndexes = this.calculateAvailableProductIndexes(selectionWithoutAttr); newAllowedAttributeOptions[attribute.id] = allAttributes[attribute.id].options.filter(option => { return !!option.products.find(product => { return availableIndexes.includes(product); }) }); }); return newAllowedAttributeOptions; }, calculateAvailableProductIndexes(selectedOptions) { if (Object.keys(selectedOptions).length === 0) { if (Object.values(this.optionConfig.salable || {}).length) { return [].concat.apply([], [].concat.apply([], Object.values(this.optionConfig.salable).map(Object.values))).filter((x, i, a) => a.indexOf(x) === i) } return Object.keys(this.optionConfig.index); } const selectedIds = Object.keys(selectedOptions); if (Object.values(this.optionConfig.salable || {}).length) { const selectedOptionIndexes = selectedIds.map(attrId => { const optionValue = selectedOptions[attrId]; return this.optionConfig.salable[attrId] && this.optionConfig.salable[attrId][optionValue] || [] }) return selectedOptionIndexes.reduce((acc, optionIndexes) => { return acc.filter(index => optionIndexes.includes(index)); }); } else { const productIndexes = this.optionConfig.index; return Object.keys(productIndexes).filter(index => { for (const attrId of selectedIds) { if (productIndexes[index][attrId] !== `${selectedOptions[attrId]}`) return false } return true }); } }, findAttributeByOptionId(optionId) { for (const attributeId in this.optionConfig.attributes) { const attributeOptions = this.optionConfig.attributes[attributeId].options || []; if (attributeOptions.find(option => option.id === optionId)) { return attributeId; } } }, getAllowedAttributeOptions(attributeId) { return this.allowedAttributeOptions[attributeId] || [] }, getProductIdsForOption(option) { const attributeId = this.findAttributeByOptionId(option.id); const allOptions = this.optionConfig.attributes[attributeId]; const opt = (allOptions && allOptions.options || []).find(o => o.id === option.id); return opt && opt.products ? opt.products : []; }, findProductIdsForPartialSelection(optionSelection) { const candidateProducts = Object.values(optionSelection).reduce((candidates, optionId) => { const newCandidates = this.getProductIdsForOption({id: optionId}); return candidates === null ? newCandidates : candidates.filter(productId => newCandidates.includes(productId)); }, null); return candidateProducts || []; }, findCheapestProductForPartialSelection(optionSelection) { const candidateProducts = this.findProductIdsForPartialSelection(optionSelection); return candidateProducts.reduce((cheapest, simpleIdx) => { if (! this.optionConfig.optionPrices[cheapest]) return simpleIdx; const knownCheapestPrice = this.optionConfig.optionPrices[cheapest].finalPrice.amount; return knownCheapestPrice > this.optionConfig.optionPrices[simpleIdx].finalPrice.amount ? simpleIdx : cheapest; }, 0) }, findProductIdToUseForOptionPrice(option) { const attributeId = this.findAttributeByOptionId(option.id); const optionSelection = Object.assign({}, this.selectedValues, {[attributeId]: option.id}); const matchingSimpleIndex = this.calculateSimpleIndexForFullSelection(optionSelection); return matchingSimpleIndex || this.findCheapestProductForPartialSelection(optionSelection); }, getAttributeOptionLabel(option) { const optionProduct = this.findProductIdToUseForOptionPrice(option); if ((! optionProduct) || (optionProduct === this.productIndex)) { return option.label; } const currentPrice = this.getOptionPriceAdjustmentBasePrice(); if (this.optionConfig.optionPrices[optionProduct]) { const optionPrice = this.optionConfig.optionPrices[optionProduct].finalPrice.amount; if (optionPrice !== currentPrice){ return option.label + ' ' + hyva.formatPrice(optionPrice - currentPrice, true); } } return option.label; }, getOptionPriceAdjustmentBasePrice() { if (this.optionConfig.optionPrices[this.productIndex]) { return this.optionConfig.optionPrices[this.productIndex].finalPrice.amount } const cheapestForSelection = this.findCheapestProductForPartialSelection(this.selectedValues); return this.optionConfig.optionPrices[cheapestForSelection] ? this.optionConfig.optionPrices[cheapestForSelection].finalPrice.amount : this.optionConfig.prices.finalPrice.amount; }, clearOptionIfActive(optionId, value) { if (this.selectedValues[optionId] === value) { this.blurLabel() this.changeOption(optionId, '') } }, removeAttrFromSelection(selectedValues, attributeId) { attributeId = parseInt(attributeId); return selectedValues.reduce((newSelection, val, attr) => { if (attr !== attributeId) { newSelection[attr] = val; } return newSelection; }, []); }, changeOption(attributeId, value) { if (value === '') { this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId) } else if (value && this.getAllowedAttributeOptions(attributeId).find(option => option.id === value)) { this.selectedValues[attributeId] = value; } this.findSimpleIndex(); this.findAllowedAttributeOptions(); this.updatePrices(); this.updateGallery(); window.dispatchEvent( new CustomEvent( 'configurable-selection-changed', { detail: { productId: this.productId, optionId: attributeId, value: value, productIndex: this.productIndex, selectedValues: this.selectedValues, candidates: this.findProductIdsForPartialSelection(this.selectedValues), } } ) ); }, calculateIsMinimalPrice() { return ( this.selectedValues.filter(value => !!value).length < Object.keys(this.optionConfig.attributes).length ); }, updatePrices() { const value = this.productIndex ? this.optionConfig.optionPrices[this.productIndex] : this.optionConfig.prices; window.dispatchEvent( new CustomEvent( "update-prices-" + this.productId, { detail: Object.assign( value, { isMinimalPrice: this.calculateIsMinimalPrice() } ) } ) ); }, updateGallery () { if (this.productIndex) { const images = this.optionConfig.images[this.productIndex]; images && window.dispatchEvent(new CustomEvent( "update-gallery", { detail: this.sortImagesByPosition(images) } )); } else { window.dispatchEvent(new Event("reset-gallery")); } }, sortImagesByPosition(images) { return images.sort((x, y) => { return x.position === y.position ? 0 : (parseInt(x.position) > parseInt(y.position) ? 1 : -1) }); }, onGetCartData(data) { }, preselectCartItems(data) { const cart = data && data.cart; if (cart && cart.items) { const cartItem = cart.items.find((item) => { return ( item.item_id === this.itemId && item.product_id === this.productId ) }); if (cartItem && cartItem.options && cartItem.options.length) { cartItem.options.map(option => { this.changeOption(option.option_id, option.option_value); }) } } }, preselectQuerystringItems() { const urlQueryParams = new URLSearchParams(window.location.search.replace('?','')); this.preselectItemsBasedOnLocation(attribute => urlQueryParams.get(attribute.code)); }, preselectLocationHashItems() { const urlHashParams = new URLSearchParams(window.location.hash.replace('#','')); this.preselectItemsBasedOnLocation(attribute => urlHashParams.get(attribute.id)); }, preselectItemsBasedOnLocation(getLocationValue) { Object.values(this.optionConfig.attributes).map(attribute => { this.changeOption(attribute.id, getLocationValue(attribute)) }); } } }</script> <script> function initSwatchOptions(swatchConfig) { return { swatchConfig, getAttributeSwatchData(attributeId) { const swatchConfig = Object.assign({}, this.swatchConfig[attributeId]); swatchConfig['details'] = JSON.parse(swatchConfig['additional_data']); return swatchConfig; }, getAllAttributeOptions(attributeId) { return ( this.optionConfig.attributes[attributeId] && this.optionConfig.attributes[attributeId].options ) || [] }, optionIsActive(attributeId, optionId) { return !!this.getAllowedAttributeOptions(attributeId).find( option => option.id === optionId ) }, optionIsEnabled(attributeId, optionId) { for (const productId in this.optionConfig.index) { if (this.optionConfig.index[productId][attributeId] === optionId) { return true; } } return false; }, mapSwatchTypeNumberToTypeCode(typeNumber) { switch ("" + typeNumber) { case "1": return "color" case "2": return "image" case "3": return "empty" case "0": default: return "text" } }, getTypeOfFirstOption(attributeId) { for (const optionId in this.swatchConfig[attributeId]) { const option = this.swatchConfig[attributeId][optionId]; if (typeof option.type !== 'undefined') { return this.mapSwatchTypeNumberToTypeCode(option.type); } } }, getVisualSwatchType(attributeId, targetOptionId) { const config = this.swatchConfig[attributeId]; if (config[targetOptionId] && typeof config[targetOptionId].type !== 'undefined') { return this.mapSwatchTypeNumberToTypeCode(config[targetOptionId].type); } return this.getTypeOfFirstOption(attributeId); }, getSwatchType(attributeId, optionId) { if (this.swatchConfig[attributeId] && ! this.swatchConfig[attributeId].details) { this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); } const type = this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details && this.swatchConfig[attributeId].details.swatch_input_type || "empty"; return type === 'visual' ? this.getVisualSwatchType(attributeId, optionId) : type; }, isTextSwatch(attributeId, optionId) { return this.getSwatchType(attributeId, optionId) === 'text'; }, isVisualSwatch(attributeId, optionId) { const type = this.getSwatchType(attributeId, optionId); return ['image', 'color'].includes(type); }, getSwatchBackgroundStyle(attributeId, optionId) { const config = this.getSwatchConfig(attributeId, optionId); const type = this.getSwatchType(attributeId, optionId); if (type === "color") { return 'background-color:' + config.value; } else if (type === "image") { return "background: #ffffff url('" + config.value + "') no-repeat center"; } else { return ''; } }, getSwatchText(attributeId, optionId) { const config = this.getSwatchConfig(attributeId, optionId); return config.label || config.value || this.getOptionLabelFromOptionConfig(attributeId, optionId); }, getOptionLabelFromOptionConfig(attributeId, optionId) { const option = this.getAllAttributeOptions(attributeId).filter(option => option.id === optionId); return option && option[0] && option[0].label ||''; }, getSwatchConfig(attributeId, optionId) { return this.swatchConfig[attributeId] && this.swatchConfig[attributeId][optionId] ? this.swatchConfig[attributeId][optionId] : false; }, activeTooltipItem: false, tooltipPositionElement: false, isTooltipVisible() { return this.activeTooltipItem && this.getSwatchConfig( this.activeTooltipItem.attribute, this.activeTooltipItem.item ); }, isFirstItemCol() { return this.activeTooltipItem.index === 0; }, getTooltipImageStyle(attributeId, optionId) { const config = this.getSwatchConfig(attributeId, optionId); const type = this.getSwatchType(attributeId, optionId); if (type === "color") { return 'background-color:' + config.value + '; width: 110px; height: 90px;'; } else if (type === "image") { return "background: #ffffff url('" + config.thumb + "') center center no-repeat; width: 110px; height: 90px;"; } else { return 'display:none'; } }, getTooltipPosition() { return this.tooltipPositionElement ? `top: ${this.tooltipPositionElement.offsetTop}px;` + `left: ${ this.tooltipPositionElement.offsetLeft - ( this.tooltipPositionElement.closest('.snap') && this.tooltipPositionElement.closest('.snap').scrollLeft || 0 ) }px;` : '' }, getTooltipLabel() { return this.getSwatchConfig(this.activeTooltipItem.attribute, this.activeTooltipItem.item).label }, focusedLabel: false, focusLabel(optionId) { this.focusedLabel = optionId; }, blurLabel() { this.focusedLabel = false; }, showSwatches: false, initShowSwatchesIntersect() { if ('IntersectionObserver' in window && !window.scrollY) { let io = new IntersectionObserver( entries => { entries.map(entry => { if (entry.isIntersecting) { this.showSwatches = true; io.unobserve(this.$root); } }) } ); io.observe(this.$root); } else { this.showSwatches = true } } } }</script> <script> 'use strict'; (() => { const equalizeButtonWidths = (buttons) => { const buttonList = buttons.querySelectorAll('[data-element="link"], [data-element="empty_link"]'); let buttonMinWidth = 0; buttonList.forEach(button => { const buttonWidth = button.offsetWidth; if (buttonWidth > buttonMinWidth) { buttonMinWidth = buttonWidth; } }); buttonList.forEach(button => { button.style.minWidth = `${buttonMinWidth}px`; }); }; window.addEventListener('DOMContentLoaded', () => { document.querySelectorAll('[data-content-type="buttons"][data-same-width="true"]').forEach(buttons => { equalizeButtonWidths(buttons); }); }); })();</script> <script> 'use strict'; (() => { const initCarousels = (elements) => { if (!Glider) { return; } const initProductCarousel = (carousel) => { const gliderElement = carousel.querySelector('[data-role="glider-content"]'); if (!gliderElement) { return; } const gliderDots = carousel.querySelector('.glider-dots'); const gliderPrev = carousel.querySelector('.glider-prev'); const gliderNext = carousel.querySelector('.glider-next'); const glider = new Glider(gliderElement, { slidesToShow: 2, slidesToScroll: 2, scrollLock: true, draggable: true, dragVelocity: 2.5, dots: gliderDots, arrows: { prev: gliderPrev, next: gliderNext, }, responsive: [ { breakpoint: 768, settings: { slidesToShow: 3, slidesToScroll: 3, } }, { breakpoint: 1024, settings: { slidesToShow: 4, slidesToScroll: 4, } }, ], }); carousel.classList.remove('overflow-x-scroll'); gliderPrev.classList.remove('hidden'); gliderNext.classList.remove('hidden'); if (carousel.dataset.autoplay !== 'false') { gliderAutoplay( glider, carousel.dataset.autoplaySpeed, carousel.dataset.infiniteLoop ); } }; const initSliderCarousel = (slider) => { slider.innerHTML = `<div data-role="glider-content">${slider.innerHTML}</div>`; slider.classList.add('glider-contain'); slider.insertAdjacentHTML( 'beforeend', '\u0020\u003Cdiv\u0020class\u003D\u0022carousel\u002Dnav\u0020flex\u0020items\u002Dcenter\u0020justify\u002Dcenter\u0020flex\u002D1\u0020p\u002D4\u0022\u003E\u003Cbutton\u0020aria\u002Dlabel\u003D\u0022Previous\u0022\u0020class\u003D\u0022glider\u002Dprev\u0020w\u002D8\u0020h\u002D8\u0020mr\u002D1\u0020text\u002Dblack\u0020rounded\u002Dfull\u0020outline\u002Dnone\u0020focus\u003Aoutline\u002Dnone\u0020hidden\u0022\u003E\u003Csvg\u0020xmlns\u003D\u0022http\u003A\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\u0022\u0020fill\u003D\u0022none\u0022\u0020stroke\u003D\u0022currentColor\u0022\u0020viewBox\u003D\u00220\u00200\u002024\u002024\u0022\u0020width\u003D\u002224\u0022\u0020height\u003D\u002224\u0022\u0020role\u003D\u0022img\u0022\u003E\u003Cpath\u0020stroke\u002Dlinecap\u003D\u0022round\u0022\u0020stroke\u002Dlinejoin\u003D\u0022round\u0022\u0020stroke\u002Dwidth\u003D\u00222\u0022\u0020d\u003D\u0022m15\u002019\u002D7\u002D7\u00207\u002D7\u0022\u002F\u003E\u003Ctitle\u003Echevron\u002Dleft\u003C\u002Ftitle\u003E\u003C\u002Fsvg\u003E\u000A\u003C\u002Fbutton\u003E\u0020\u003Cdiv\u0020role\u003D\u0022tablist\u0022\u0020class\u003D\u0022glider\u002Ddots\u0020select\u002Dnone\u0020flex\u0020flex\u002Dwrap\u0020mx\u002D1\u0020justify\u002Dcenter\u0020p\u002D0\u0020focus\u003Aoutline\u002Dnone\u0022\u003E\u003C\u002Fdiv\u003E\u003Cbutton\u0020aria\u002Dlabel\u003D\u0022Next\u0022\u0020class\u003D\u0022glider\u002Dnext\u0020w\u002D8\u0020h\u002D8\u0020ml\u002D1\u0020text\u002Dblack\u0020rounded\u002Dfull\u0020outline\u002Dnone\u0020focus\u003Aoutline\u002Dnone\u0020hidden\u0022\u003E\u003Csvg\u0020xmlns\u003D\u0022http\u003A\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\u0022\u0020fill\u003D\u0022none\u0022\u0020stroke\u003D\u0022currentColor\u0022\u0020viewBox\u003D\u00220\u00200\u002024\u002024\u0022\u0020width\u003D\u002224\u0022\u0020height\u003D\u002224\u0022\u0020role\u003D\u0022img\u0022\u003E\u003Cpath\u0020stroke\u002Dlinecap\u003D\u0022round\u0022\u0020stroke\u002Dlinejoin\u003D\u0022round\u0022\u0020stroke\u002Dwidth\u003D\u00222\u0022\u0020d\u003D\u0022m9\u00205\u00207\u00207\u002D7\u00207\u0022\u002F\u003E\u003Ctitle\u003Echevron\u002Dright\u003C\u002Ftitle\u003E\u003C\u002Fsvg\u003E\u000A\u003C\u002Fbutton\u003E\u003C\u002Fdiv\u003E' ); const gliderElement = slider.querySelector('[data-role="glider-content"]'); const gliderDots = slider.querySelector('.glider-dots'); const gliderPrev = slider.querySelector('.glider-prev'); const gliderNext = slider.querySelector('.glider-next'); const glider = new Glider(gliderElement, { slidesToShow: 1, slidesToScroll: 1, scrollLock: true, scrollLockDelay: 250, draggable: true, dragVelocity: 2.5, dots: gliderDots, arrows: { prev: gliderPrev, next: gliderNext, }, }); slider.classList.add('glider-initialized'); if (slider.dataset.showArrows === 'true') { gliderPrev.classList.remove('hidden'); gliderNext.classList.remove('hidden'); } if (slider.dataset.autoplay !== 'false') { gliderAutoplay( glider, slider.dataset.autoplaySpeed, slider.dataset.infiniteLoop ); } }; const gliderAutoplay = (glider, milliseconds, loop) => { const pagesCount = glider.track.childElementCount; let slideTimeout = null; let nextIndex = 1; let paused = false; const slide = () => { slideTimeout = setTimeout( () => { if (loop && nextIndex >= pagesCount) { nextIndex = 0; } glider.scrollItem(nextIndex); }, parseInt(milliseconds) ); }; glider.ele.addEventListener('glider-animated', () => { nextIndex = glider.slide + glider.opt.slidesToScroll; window.clearInterval(slideTimeout); if (!paused && (loop || nextIndex < pagesCount)) { slide(); } }); const pause = () => { if (!paused) { clearInterval(slideTimeout); paused = true; } }; const unpause = () => { if (paused) { slide(); paused = false; } }; glider.ele.parentElement.addEventListener('mouseover', pause, {passive: true}); glider.ele.parentElement.addEventListener('touchstart', pause, {passive: true}); glider.ele.parentElement.addEventListener('mouseout', unpause, {passive: true}); glider.ele.parentElement.addEventListener('touchend', unpause, {passive: true}); slide(); }; elements.forEach(element => { if (element.dataset.contentType === 'products') { initProductCarousel(element); } if (element.dataset.contentType === 'slider') { initSliderCarousel(element); } }); }; window.addEventListener('DOMContentLoaded', () => { const carouselElements = document.querySelectorAll( `[data-content-type="products"][data-appearance="carousel"], [data-content-type="slider"]` ); if (carouselElements.length > 0) { const script = document.createElement('script'); script.type = 'text/javascript'; script.addEventListener('load', () => { initCarousels(carouselElements); }); script.src = 'https\u003A\u002F\u002Fwebstore.iec.ch\u002Fstatic\u002Fversion1724834898\u002Ffrontend\u002FHyva\u002Fdefault\u002Fdefault\u002FMagento_PageBuilder\u002Fjs\u002Fglider.min.js'; document.head.appendChild(script); } }); })();</script> <script> 'use strict'; (() => { const initMaps = (elements) => { const renderMap = (element) => { const dataLocations = element.dataset.locations; if (!dataLocations || dataLocations === '[]') { element.classList.add('hidden'); return; } const map = new google.maps.Map( element, getMapOptions( element.dataset.showControls !== 'true', element.dataset.showControls === 'true' ) ); const locations = JSON.parse(dataLocations); const latitudeLongitudeBounds = new google.maps.LatLngBounds(); const bounds = []; locations.forEach(location => { const position = { lat: parseFloat(location.position.latitude), lng: parseFloat(location.position.longitude), }; bounds.push(position); const infowindow = new google.maps.InfoWindow({ content: getInfoWindowContent(location), }); const marker = new google.maps.Marker({ position: position, map, title: location.location_name, }); marker.addListener('click', () => { infowindow.open(map, marker); }); }); if (bounds.length > 1) { bounds.forEach(function (bound) { latitudeLongitudeBounds.extend(bound); }); map.fitBounds(latitudeLongitudeBounds); } if (bounds.length === 1) { map.setCenter(bounds[0]); } }; const getMapOptions = (disableDefaultUI, mapTypeControl) => { const style = ''; return { zoom: 8, scrollwheel: false, disableDoubleClickZoom: false, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.DEFAULT, }, styles: style ? JSON.parse(style) : [], disableDefaultUI: disableDefaultUI, mapTypeControl: mapTypeControl, }; }; const getInfoWindowContent = (location) => { const title = location.location_name ? `<h3 class="text-2xl font-medium text-gray-900 title-font">${location.location_name}</h3>` : ''; const comment = location.comment ? `<p class="px-1 pt-3 text-primary">${location.comment}</p>` : ''; const phone = location.phone ? `<p class="px-1 pt-3 text-primary">Phone: ${location.phone}</p>` : ''; const street = location.address ? `${location.address}<br/>` : ''; const city = location.city ? `${location.city}<br/>` : ''; const state = location.state ? `${location.state}<br/>` : ''; const zipCode = location.zipcode ? `${location.zipcode}<br/>` : ''; const country = location.country ? location.country : ''; return `<div> ${title} ${comment} ${phone} <p class="px-1 pt-3 text-primary"> ${street} ${city} ${state} ${zipCode} ${country}</p></div>`; }; const hideAllMaps = () => { document.querySelectorAll('[data-content-type="map"]').forEach(element => { element.classList.add('hidden'); }); }; window.gm_authFailure = () => { hideAllMaps(); }; if (typeof google.maps === 'undefined') { hideAllMaps(); return; } elements.forEach(element => { if (element.dataset.contentType === 'map') { renderMap(element); } }); }; window.addEventListener('DOMContentLoaded', () => { const mapElements = document.querySelectorAll('[data-content-type="map"]'); if (mapElements.length > 0) { const script = document.createElement('script'); script.type = 'text/javascript'; script.addEventListener('load', () => { initMaps(mapElements); }); script.src = 'https\u003A\u002F\u002Fmaps.googleapis.com\u002Fmaps\u002Fapi\u002Fjs\u003Fv\u003D3\u0026key\u003D'; document.head.appendChild(script); } }); })();</script> <script> 'use strict'; (() => { const initParallaxImage = (element) => { if (!window.jarallax) { return; } element.classList.add('jarallax'); element.dataset.jarallax = ''; const parallaxSpeed = parseFloat(element.dataset.parallaxSpeed) || 0.5; const elementStyle = window.getComputedStyle(element); window.jarallax(element, { imgPosition: elementStyle.backgroundPosition || '50% 50%', imgRepeat: elementStyle.backgroundRepeat || 'no-repeat', imgSize: elementStyle.backgroundSize || 'cover', speed: parallaxSpeed, }); }; const initVideoBackground = (element) => { if (!window.jarallax) { return; } let slider = null; if (element.classList.contains('pagebuilder-slide-wrapper')) { const viewportElement = document.createElement('div'); slider = element.closest('[data-content-type=slider]'); viewportElement.classList.add('jarallax-viewport-element'); element.dataset.elementInViewport = '.jarallax-viewport-element'; element.appendChild(viewportElement); } element.classList.add('jarallax'); element.dataset.jarallax = ''; const parallaxSpeed = parseFloat(element.dataset.parallaxSpeed) || 0.5; window.jarallax(element, { imgSrc: element.dataset.videoFallbackSrc, speed: parallaxSpeed, videoLoop: element.dataset.videoLoop, videoPlayOnlyVisible: element.dataset.videoPlayOnlyVisible, videoLazyLoading: element.dataset.videoLazyLoad, disableVideo: false, elementInViewport: element.dataset.elementInViewport && element.querySelector(element.dataset.elementInViewport), }); if (slider) { if (slider.dataset.afterChangeIsSet) { return; } slider.addEventListener('glider-loaded', () => { slider.querySelectorAll('.jarallax').forEach(videoSlide => { videoSlide.jarallax && videoSlide.jarallax.onScroll(); }); }); slider.addEventListener('glider-animated', () => { slider.querySelectorAll('.jarallax').forEach(videoSlide => { videoSlide.jarallax && videoSlide.jarallax.onScroll(); }); }); slider.dataset.afterChangeIsSet = true; } }; window.addEventListener('DOMContentLoaded', () => { const parallaxImageElements = document.querySelectorAll( `[data-content-type="row"][data-background-type="image"][data-enable-parallax="1"], [data-content-type="row"] > [data-background-type="image"][data-enable-parallax="1"]` ); const videoBackgroundsElements = document.querySelectorAll( `[data-content-type="row"][data-background-type="video"][data-enable-parallax="1"], [data-content-type="row"] > [data-background-type="video"][data-enable-parallax="1"], [data-content-type="banner"] [data-background-type="video"], [data-content-type="slide"] [data-background-type="video"]` ); if (parallaxImageElements.length > 0 || videoBackgroundsElements.length > 0) { const jarallaxScript = document.createElement('script'); jarallaxScript.type = 'text/javascript'; jarallaxScript.addEventListener('load', () => { parallaxImageElements.forEach(row => { initParallaxImage(row); }); const jarallaxVideoScript = document.createElement('script'); jarallaxVideoScript.type = 'text/javascript'; jarallaxVideoScript.addEventListener('load', () => { videoBackgroundsElements.forEach(element => { initVideoBackground(element); }); }); jarallaxVideoScript.src = 'https\u003A\u002F\u002Fwebstore.iec.ch\u002Fstatic\u002Fversion1724834898\u002Ffrontend\u002FHyva\u002Fdefault\u002Fdefault\u002FMagento_PageBuilder\u002Fjs\u002Fjarallax\u002Dvideo.min.js'; document.head.appendChild(jarallaxVideoScript); }); jarallaxScript.src = 'https\u003A\u002F\u002Fwebstore.iec.ch\u002Fstatic\u002Fversion1724834898\u002Ffrontend\u002FHyva\u002Fdefault\u002Fdefault\u002FMagento_PageBuilder\u002Fjs\u002Fjarallax.min.js'; document.head.appendChild(jarallaxScript); } }); })();</script> <script> 'use strict'; (() => { const applyShowOnHover = (element) => { const showOverlayOnHover = (element) => { const overlay = element.querySelector('.pagebuilder-overlay'); const color = overlay.dataset.overlayColor; element.addEventListener('mouseover', () => { overlay.style.backgroundColor = color; }); element.addEventListener('mouseout', () => { overlay.style.backgroundColor = 'transparent'; }); }; const showButtonOnHover = (element) => { const button = element.querySelector('.pagebuilder-banner-button'); element.addEventListener('mouseover', () => { button.style.opacity = '1'; button.style.visibility = 'visible'; }); element.addEventListener('mouseout', () => { button.style.opacity = '0'; button.style.visibility = 'hidden'; }); }; if (element.dataset.showOverlay === 'hover') { showOverlayOnHover(element); } if (element.dataset.showButton === 'hover') { showButtonOnHover(element); } }; window.addEventListener('DOMContentLoaded', () => { document.querySelectorAll('[data-content-type="banner"],[data-content-type="slider"]').forEach(element => { applyShowOnHover(element); }); }); })();</script> <script> 'use strict'; (() => { document.querySelectorAll('[data-content-type="tab-item"]').forEach(tabItem => { tabItem.setAttribute('x-show', `tab === '${tabItem.id}'`); }); document.querySelectorAll('[data-content-type="tabs"]').forEach(tab => { const defaultActiveTab = parseInt(tab.dataset.activeTab) || 0; tab.querySelectorAll('.tab-header').forEach((tabHeader, index) => { const tabLink = tabHeader.querySelector('a'); const tabId = tabLink.getAttribute('href').replace('#', ''); tabHeader.setAttribute(':class', `{ 'active': tab === '${tabId}' }`); tabLink.setAttribute('x-on:click.prevent', `tab = '${tabId}'`); if (index === defaultActiveTab) { tab.setAttribute('x-data', `{ tab: '${tabId}' }`); } }); }); })();</script></div><script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"NRJS-d9c81247d55ff99d156","applicationID":"1069428605","transactionName":"MQNRMBMAXRJWBUcNXQhJcgcVCFwPGAVSEFMKCVRLAgBHBFAJQR0dEA9WEw==","queueTime":0,"applicationTime":320,"atts":"HURSRlsaThw=","errorBeacon":"bam.nr-data.net","agent":""}</script></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10