@bikematrix/web-components 1.0.14 → 1.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/bm_core.es.js +1 -1
- package/dist/bm_core.js +1 -1
- package/dist/bm_core.umd.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -39,8 +39,8 @@ Alternatively, include the script directly in your HTML:
|
|
|
39
39
|
|
|
40
40
|
```html
|
|
41
41
|
<script
|
|
42
|
-
type="
|
|
43
|
-
src="https://cdn.jsdelivr.net/npm/@bikematrix/web-components"
|
|
42
|
+
type="text/javascript"
|
|
43
|
+
src="https://cdn.jsdelivr.net/npm/@bikematrix/web-components/dist/bm_core.js"
|
|
44
44
|
></script>
|
|
45
45
|
```
|
|
46
46
|
|
|
@@ -70,8 +70,8 @@ Include the script directly in your HTML:
|
|
|
70
70
|
|
|
71
71
|
```html
|
|
72
72
|
<script
|
|
73
|
-
type="
|
|
74
|
-
src="https://cdn.jsdelivr.net/npm/@bikematrix/web-components"
|
|
73
|
+
type="text/javascript"
|
|
74
|
+
src="https://cdn.jsdelivr.net/npm/@bikematrix/web-components/dist/bm_core.js"
|
|
75
75
|
></script>
|
|
76
76
|
```
|
|
77
77
|
|
package/dist/bm_core.es.js
CHANGED
|
@@ -5621,7 +5621,7 @@ function an({
|
|
|
5621
5621
|
return null;
|
|
5622
5622
|
const A = (V = (O = e == null ? void 0 : e.current) == null ? void 0 : O.parentElement) == null ? void 0 : V.querySelector('template[slot="product-card"]');
|
|
5623
5623
|
b === "verbose" && console.log("CompatibleList Product Card Template: ", A);
|
|
5624
|
-
const q = (A ? A.innerHTML : on()).replace(/\@\@#if\s+(\w+)\@\@(.*?)\@\@\/if\@\@/gs, (I, G, x) => w[G] ? x : "").replace(/\@\@\s*(\w+)\s*\@\@/g, (I, G) => {
|
|
5624
|
+
const q = (A ? A.innerHTML : on()).replace(o.isShopify ? /\@\@#if\s+(\w+)\@\@(.*?)\@\@\/if\@\@/gs : /\{\{#if\s+(\w+)\}\}(.*?)\{\{\/if\}\}/gs, (I, G, x) => w[G] ? x : "").replace(o.isShopify ? /\@\@\s*(\w+)\s*\@\@/g : /\{\{\s*(\w+)\s*\}\}/g, (I, G) => {
|
|
5625
5625
|
if (G === "compatibility")
|
|
5626
5626
|
return '<bikematrix-compatibilitylabel data-type="compatible"></bikematrix-compatibilitylabel>';
|
|
5627
5627
|
const x = w[G];
|
package/dist/bm_core.js
CHANGED
|
@@ -24,5 +24,5 @@ var BikeMatrix=function(){"use strict";var Te,S,ur,lr,Ce,cr,dr,Ft,pr,Oe={},gr=[]
|
|
|
24
24
|
<bikematrix-compatibilitylabel data-type="compatible"></bikematrix-compatibilitylabel>
|
|
25
25
|
</div>
|
|
26
26
|
</div>
|
|
27
|
-
`;function on({"data-title":t}){var k;const e=Ve(null),r=window.BikeMatrix,o=r.getConfig(),[a,i]=Q(!1),[n,s]=Q(!0),[u,l]=Q({type:"unknown",details:"",details_code:""}),[p,c]=Q([]),{t:g}=re(),f=!!r.getActiveSubscription(),_=o.currentCollectionHandle||"",m=o.collectionUrl||"",y=o.compatiblityListCurrentPage||0,C=!!o.showCompatibleList||!1,b=o.logLevel||"none",v=w=>{var U,V;if(!(e!=null&&e.current))return null;const A=(V=(U=e==null?void 0:e.current)==null?void 0:U.parentElement)==null?void 0:V.querySelector('template[slot="product-card"]');b==="verbose"&&console.log("CompatibleList Product Card Template: ",A);const q=(A?A.innerHTML:rn()).replace(
|
|
27
|
+
`;function on({"data-title":t}){var k;const e=Ve(null),r=window.BikeMatrix,o=r.getConfig(),[a,i]=Q(!1),[n,s]=Q(!0),[u,l]=Q({type:"unknown",details:"",details_code:""}),[p,c]=Q([]),{t:g}=re(),f=!!r.getActiveSubscription(),_=o.currentCollectionHandle||"",m=o.collectionUrl||"",y=o.compatiblityListCurrentPage||0,C=!!o.showCompatibleList||!1,b=o.logLevel||"none",v=w=>{var U,V;if(!(e!=null&&e.current))return null;const A=(V=(U=e==null?void 0:e.current)==null?void 0:U.parentElement)==null?void 0:V.querySelector('template[slot="product-card"]');b==="verbose"&&console.log("CompatibleList Product Card Template: ",A);const q=(A?A.innerHTML:rn()).replace(o.isShopify?/\@\@#if\s+(\w+)\@\@(.*?)\@\@\/if\@\@/gs:/\{\{#if\s+(\w+)\}\}(.*?)\{\{\/if\}\}/gs,(I,G,x)=>w[G]?x:"").replace(o.isShopify?/\@\@\s*(\w+)\s*\@\@/g:/\{\{\s*(\w+)\s*\}\}/g,(I,G)=>{if(G==="compatibility")return'<bikematrix-compatibilitylabel data-type="compatible"></bikematrix-compatibilitylabel>';const x=w[G];return G==="productTitle"?Qi.decode(x):x||""});return b==="verbose"&&console.log("CompatibleList Product Card: ",q),d("li",{dangerouslySetInnerHTML:{__html:q}},w.productId)};return J(()=>{var q,U;const w=o.collections.map(V=>V.handle)||[];if(!C||!w.includes(_)){l({type:"unknown",...Je.unknown}),i(!1);return}if(!j.value){l({type:"selectbike",...Je.selectbike}),i(!oe.value);return}if(!((U=(q=j.value)==null?void 0:q.compatibleCollections)==null?void 0:U.find(V=>V.handle===_))){i(!1);return}console.log("CompatibleCollectionSkusSignal.value",ve.value);const B=en(ve.value).map(v);c(B);const R=tn(y,B);l(R),i(!0)},[_,j.value,ve.value,oe.value,y]),d(z,{children:f&&a&&d("div",{ref:e,children:[d("style",{type:"text/css",children:Wi}),d("div",{class:"container",children:d("div",{class:"bm-compatible-products-wrapper",children:[d("div",{class:"bm-compatible-products-title",children:d("div",{id:"bm_customAccordion",class:n&&"active",onClick:()=>s(!n),children:[d("span",{children:t||g("compatiblelist_header")}),d("svg",{width:"24",height:"24",viewBox:"0 0 24 24","aria-hidden":"true",focusable:"false",role:"presentation",class:"icon",children:d("path",{d:"M20 8.5 12.5 16 5 8.5",stroke:"currentColor","stroke-width":"1.5",fill:"none"})})]})}),d("div",{class:"bm-compatible-products-list",id:"bm_compatibleProductsListPanel",style:n?"display: block":"display: none",children:[d("div",{class:"lds-ring",id:"bm-loading-spinner",style:oe.value?"":"display: none",children:[d("div",{}),d("div",{}),d("div",{}),d("div",{})]}),!oe.value&&{unknown:d("p",{class:"bm-compatible-products-message"}),unavailable:d("p",{class:"bm-compatible-products-message",children:g(u==null?void 0:u.details_code)}),selectbike:d("div",{onClick:w=>{w.preventDefault(),document.dispatchEvent(new Event("BmToggleModal",{bubbles:!0,composed:!0}))},style:"cursor: pointer;",children:d("p",{class:"bm-compatible-products-message",children:g(u==null?void 0:u.details_code)})}),pageone:d("p",{class:"bm-compatible-products-message",children:d("div",{dangerouslySetInnerHTML:{__html:(k=g(u==null?void 0:u.details_code))==null?void 0:k.replace("<a>","<a href='"+m+"'>")}})}),noresults:d("p",{class:"bm-compatible-products-message",children:g(u==null?void 0:u.details_code)}),compatibleresults:d(z,{})}[u==null?void 0:u.type],d("ul",{id:"bm_compatibleProductsList",children:!oe.value&&(u==null?void 0:u.type)==="compatibleresults"&&p}),d("div",{class:"bm_result_link",children:d("a",{rel:"noreferrer",href:"http://www.bikematrix.io/landed-it",target:"_blank",class:"link",children:g("bikematrix_poweredby")})})]})]})})]})})}const an=`.bike-selector-banner_wrapper{position:relative;height:40px}.bike-selector-banner{width:100%;height:40px;position:absolute;top:0;display:flex;align-items:center;justify-content:center;cursor:pointer;margin-bottom:2rem}.floating{border-radius:12px;box-shadow:0 4px 4px #0000001f}.bike-selector-banner_title{color:#fff;text-transform:uppercase;padding-top:2px;font:var(--heading-font-family);font-style:var(--heading-font-style);font-weight:var(--heading-font-weight);font-size:18px}@media (width <= 991px){.bike-selector-banner_title{display:none}}.bike-selector-banner_title_mobile{display:none;text-transform:uppercase;font:var(--heading-font-family);font-style:var(--heading-font-style);font-weight:var(--heading-font-weight);font-size:18px;color:#fff;padding-top:2px}@media (width <= 991px){.bike-selector-banner_title_mobile{display:block}}.bike-selector-banner_svg{height:19px}.bike-selector-banner_icon-wrapper{display:flex;align-items:center;justify-content:center;height:100%;position:relative}.bike-selector-banner_tick{width:12px;height:12px;position:absolute;right:6px;top:5px}
|
|
28
28
|
`,nn=t=>E("svg",{width:51,height:36,viewBox:"0 0 51 36",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},E("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M40.1081 0.937112C40.3093 1.62586 39.9246 2.35014 39.2462 2.55953L34.1927 4.11923L38.3746 15.3505C38.582 15.2989 38.791 15.253 39.0013 15.2141C39.2114 15.1758 39.4229 15.1439 39.6353 15.1189C39.8472 15.0934 40.0603 15.0755 40.2739 15.0639C40.487 15.0528 40.7005 15.0482 40.9141 15.0505C41.1283 15.0534 41.3414 15.0626 41.5544 15.0789C41.7675 15.0951 41.98 15.1178 42.1919 15.148C42.4038 15.1776 42.614 15.2148 42.8237 15.2582C43.0333 15.3018 43.2407 15.3517 43.4476 15.4086C43.6538 15.466 43.8584 15.5293 44.0607 15.5995C44.263 15.6698 44.4631 15.7464 44.6614 15.8293C44.8592 15.9124 45.0542 16.0018 45.2463 16.0975C45.4385 16.1933 45.6277 16.2949 45.8142 16.4028C46.0002 16.5108 46.1827 16.6245 46.3618 16.744C46.541 16.8636 46.7162 16.989 46.8879 17.1201C47.0592 17.2514 47.2265 17.3878 47.3898 17.5294C47.5531 17.671 47.7113 17.8178 47.8656 17.9698C48.0199 18.122 48.1691 18.2786 48.3137 18.4406C48.4584 18.6025 48.5974 18.7685 48.732 18.9392C48.8665 19.1097 48.9953 19.2845 49.1191 19.4638C49.2428 19.6426 49.3609 19.8255 49.4734 20.0123C49.5858 20.1986 49.6921 20.3889 49.7932 20.5823C49.8938 20.7755 49.9888 20.9723 50.0774 21.172C50.1662 21.3716 50.2493 21.5742 50.3255 21.779C50.4018 21.9839 50.4719 22.1912 50.5358 22.4007C50.5996 22.6102 50.6567 22.8214 50.7075 23.0345C50.7584 23.248 50.8025 23.4622 50.8404 23.6787C50.8783 23.8946 50.9087 24.1117 50.9336 24.3299C50.9579 24.5476 50.9755 24.7664 50.9867 24.9857C50.9975 25.2046 51.002 25.4239 50.9992 25.6434C50.9969 25.8627 50.9878 26.0822 50.9721 26.3009C50.9562 26.5197 50.9336 26.738 50.9042 26.9556C50.8754 27.1727 50.8392 27.3892 50.7968 27.6045C50.7545 27.8193 50.7059 28.0329 50.6505 28.2447C50.5946 28.4571 50.533 28.6666 50.4646 28.875C50.3962 29.0828 50.3216 29.2883 50.2408 29.4914C50.1594 29.6946 50.0724 29.8948 49.9797 30.0927C49.8864 30.29 49.787 30.4845 49.6819 30.6754C49.5768 30.8663 49.466 31.0538 49.3496 31.2378C49.2332 31.4218 49.1111 31.6023 48.9834 31.7781C48.8557 31.954 48.7229 32.1258 48.585 32.2935C48.4472 32.4613 48.3036 32.6238 48.1555 32.7823C48.0075 32.9407 47.8549 33.0939 47.6978 33.2425C47.5401 33.3905 47.3785 33.5338 47.2118 33.672C47.0457 33.8095 46.8756 33.9424 46.7014 34.069C46.5269 34.1961 46.3489 34.3174 46.1674 34.4329C45.9855 34.5484 45.8007 34.6581 45.612 34.7614C45.4237 34.8648 45.2322 34.9623 45.0378 35.0534C44.8434 35.1445 44.6462 35.2298 44.4467 35.3082C44.2472 35.3865 44.0454 35.4584 43.8415 35.5241C43.6375 35.5891 43.4317 35.6483 43.2238 35.6999C43.0164 35.7522 42.8073 35.798 42.5971 35.8363C42.3868 35.8752 42.1755 35.9072 41.963 35.932C41.7511 35.957 41.538 35.975 41.3245 35.9861C41.1108 35.9977 40.8977 36.0017 40.6836 35.9994C40.47 35.997 40.2569 35.9878 40.0439 35.971C39.8303 35.9547 39.6184 35.9315 39.4065 35.9019C39.1946 35.8717 38.9843 35.8352 38.7746 35.7916C38.565 35.7475 38.3576 35.6976 38.1507 35.6402C37.9445 35.5832 37.7405 35.52 37.5376 35.4498C37.3353 35.3795 37.1353 35.3029 36.9375 35.2193C36.7397 35.1364 36.5447 35.047 36.352 34.9512C36.1598 34.8555 35.9706 34.7539 35.7846 34.6459C35.5987 34.538 35.4161 34.4237 35.2371 34.304C35.0579 34.1845 34.8827 34.0592 34.7109 33.9279C34.5397 33.7968 34.3724 33.6604 34.2091 33.5188C34.0464 33.3766 33.8875 33.2297 33.7339 33.0777C33.5796 32.9256 33.4304 32.7689 33.2857 32.607C33.141 32.445 33.002 32.2791 32.8675 32.1084C32.7331 31.9378 32.6041 31.7625 32.481 31.5837C32.3572 31.4044 32.2391 31.2215 32.1266 31.0352C32.0142 30.8484 31.9079 30.6586 31.8068 30.4647C31.7062 30.2714 31.6113 30.0747 31.5225 29.875C31.4338 29.6753 31.3514 29.4728 31.2751 29.2679C31.1988 29.0631 31.1286 28.8558 31.0648 28.6463C31.0016 28.4368 30.9439 28.2255 30.8935 28.012C30.8427 27.7989 30.7986 27.5842 30.7608 27.3683C30.7235 27.1524 30.6924 26.9353 30.6681 26.7171C30.6438 26.4988 30.6263 26.28 30.615 26.0613C30.6043 25.8418 30.5998 25.6225 30.6025 25.403C30.6048 25.1837 30.6139 24.9643 30.6302 24.7455C30.6461 24.5267 30.6686 24.3085 30.6975 24.0913C30.7269 23.8737 30.7631 23.6572 30.8054 23.4425C30.8478 23.2271 30.8969 23.0136 30.9523 22.8017C31.0077 22.5898 31.0699 22.3798 31.1383 22.1719C31.2067 21.9642 31.2812 21.7587 31.3626 21.5556C31.4434 21.3524 31.5304 21.1522 31.6237 20.9543C31.7169 20.757 31.8164 20.5625 31.9215 20.3716C32.0267 20.1807 32.1374 19.9932 32.2538 19.8092C32.3708 19.6251 32.4928 19.4453 32.6206 19.2694C32.7477 19.0929 32.8811 18.9211 33.019 18.754C33.1569 18.5863 33.3004 18.4238 33.4484 18.2653C33.5965 18.1075 33.7491 17.9536 33.9068 17.8057C34.0644 17.6571 34.2261 17.5143 34.3922 17.3762C34.5584 17.238 34.729 17.1057 34.903 16.9792C35.0777 16.852 35.2557 16.7308 35.4377 16.6152C35.619 16.4997 35.8045 16.3906 35.9926 16.2873L33.8915 10.6435L26.6479 26.0966C26.5959 26.2081 26.5292 26.309 26.4495 26.4013C26.3693 26.4931 26.2783 26.5714 26.1766 26.637C26.0749 26.7026 25.9664 26.7519 25.8511 26.7862C25.7358 26.8198 25.6177 26.8367 25.4979 26.8367H20.3192C20.2791 27.1634 20.2237 27.4873 20.1536 27.8082C20.083 28.1292 19.9982 28.4467 19.8993 28.7595C19.7999 29.0724 19.6868 29.3799 19.5591 29.6817C19.4314 29.9836 19.2907 30.279 19.1358 30.5668C18.9815 30.8554 18.8143 31.1356 18.634 31.4079C18.4538 31.6801 18.261 31.943 18.0565 32.196C17.8524 32.4496 17.6366 32.6929 17.41 32.9256C17.1834 33.1577 16.9466 33.3795 16.6996 33.589C16.4527 33.7985 16.1967 33.9958 15.9317 34.181C15.6661 34.3656 15.3931 34.5374 15.1122 34.6958C14.8314 34.8543 14.5443 34.9988 14.2499 35.13C13.956 35.2605 13.6565 35.3766 13.3514 35.4782C13.0468 35.5798 12.7382 35.6668 12.4251 35.7382C12.1126 35.8102 11.7973 35.8665 11.4791 35.9083C11.1615 35.9495 10.8423 35.975 10.5218 35.9854C10.2014 35.9959 9.8816 35.9907 9.56169 35.9704C9.24187 35.9495 8.9237 35.9135 8.60727 35.8618C8.29077 35.8108 7.97713 35.744 7.66688 35.6622C7.35607 35.5804 7.05034 35.484 6.74858 35.3725C6.44737 35.2611 6.15125 35.1357 5.86135 34.9953C5.57145 34.8555 5.28832 34.7016 5.01255 34.5344C4.73677 34.3673 4.46891 34.1869 4.20953 33.9935C3.95014 33.8003 3.70035 33.5948 3.45962 33.3772C3.21888 33.1595 2.98888 32.9309 2.76962 32.6911C2.54979 32.4514 2.34182 32.2019 2.14516 31.9419C1.9485 31.6818 1.76428 31.4131 1.59248 31.1351C1.42069 30.8577 1.2619 30.5721 1.1161 30.279C0.970294 29.9859 0.838065 29.6864 0.719957 29.3805C0.60184 29.0747 0.497862 28.7636 0.408014 28.4479C0.318156 28.1315 0.242998 27.8123 0.182531 27.489C0.122629 27.1657 0.0768549 26.8401 0.0463391 26.5122C0.0158232 26.1849 0.00056482 25.8563 0 25.5273C0 25.1976 0.0146927 24.8691 0.0446437 24.5412C0.0745947 24.2126 0.119803 23.887 0.179705 23.5632C0.239607 23.2393 0.314204 22.9195 0.403493 22.6026C0.492782 22.2863 0.596192 21.9746 0.7143 21.6681C0.832408 21.3617 0.964086 21.0617 1.10932 20.768C1.25512 20.4743 1.41392 20.1887 1.58571 19.9101C1.7575 19.6321 1.94173 19.3628 2.13782 19.1022C2.33448 18.8416 2.54245 18.5915 2.76227 18.3512C2.9821 18.1109 3.2121 17.8816 3.45284 17.6634C3.69301 17.4458 3.94335 17.2397 4.20274 17.0458C4.46213 16.8526 4.73 16.6715 5.00634 16.5038C5.28268 16.3361 5.56579 16.1822 5.85626 16.0418C6.14616 15.9013 6.44229 15.7754 6.74406 15.6639C7.04639 15.5519 7.35268 15.4556 7.66349 15.3732C7.97431 15.2914 8.28794 15.2246 8.60498 15.1735C8.92141 15.1219 9.24013 15.0859 9.56059 15.065C9.88041 15.0446 10.2014 15.0394 10.5218 15.0499C10.8423 15.0603 11.1621 15.0859 11.4802 15.1277C11.7984 15.1689 12.1143 15.2257 12.4274 15.2977C12.7405 15.3697 13.0495 15.4568 13.3548 15.5584C13.6599 15.6605 13.9594 15.7771 14.2538 15.9077C14.5482 16.0389 14.8359 16.184 15.1174 16.3431C15.3982 16.5015 15.6717 16.6738 15.9367 16.859C16.2018 17.0447 16.4584 17.2426 16.7053 17.4528C16.9522 17.6628 17.1891 17.8846 17.4162 18.1179C17.6428 18.3506 17.8581 18.5944 18.0627 18.8486C18.2667 19.1028 18.4594 19.3658 18.6392 19.6385C18.8194 19.9113 18.9867 20.1923 19.1409 20.4813C19.2952 20.7697 19.436 21.0657 19.563 21.3681C19.6902 21.6705 19.8033 21.9787 19.9021 22.2921C20.001 22.6055 20.0852 22.9236 20.1547 23.2452C20.2248 23.5667 20.2796 23.8911 20.3192 24.2179H23.5064L17.2851 6.3265C17.2354 6.18429 17.2111 6.03746 17.2111 5.88655H15.2987C15.2151 5.88655 15.132 5.87843 15.0501 5.86159C14.9681 5.84476 14.8884 5.8198 14.811 5.78672C14.7336 5.75422 14.6602 5.71359 14.5906 5.666C14.5206 5.61841 14.4567 5.56385 14.3974 5.5029C14.3381 5.44254 14.2849 5.37638 14.2386 5.30441C14.1922 5.23302 14.1527 5.15757 14.1211 5.07805C14.0889 4.99912 14.0646 4.91729 14.0482 4.83255C14.0317 4.74839 14.0239 4.66307 14.0239 4.57717C14.0239 4.49127 14.0317 4.40595 14.0482 4.3218C14.0646 4.23763 14.0889 4.1558 14.1211 4.07628C14.1527 3.99677 14.1922 3.92132 14.2386 3.84993C14.2849 3.77854 14.3381 3.71238 14.3974 3.65143C14.4567 3.59049 14.5206 3.53651 14.5906 3.48834C14.6602 3.44075 14.7336 3.4007 14.811 3.36762C14.8884 3.33453 14.9681 3.30958 15.0501 3.29274C15.132 3.27649 15.2151 3.26779 15.2987 3.26779H21.0358C21.1194 3.26779 21.2025 3.27649 21.2844 3.29274C21.3663 3.30958 21.446 3.33453 21.5235 3.36762C21.6009 3.4007 21.6743 3.44075 21.7438 3.48834C21.8139 3.53651 21.8778 3.59049 21.9371 3.65143C21.9964 3.71238 22.049 3.77854 22.0959 3.84993C22.1422 3.92132 22.1818 3.99677 22.2135 4.07628C22.2457 4.1558 22.27 4.23763 22.2864 4.3218C22.3028 4.40595 22.3107 4.49127 22.3107 4.57717C22.3107 4.66307 22.3028 4.74839 22.2864 4.83255C22.27 4.91729 22.2457 4.99912 22.2135 5.07805C22.1818 5.15757 22.1422 5.23302 22.0959 5.30441C22.049 5.37638 21.9964 5.44254 21.9371 5.5029C21.8778 5.56385 21.8139 5.61841 21.7438 5.666C21.6743 5.71359 21.6009 5.75422 21.5235 5.78672C21.446 5.8198 21.3663 5.84476 21.2844 5.86159C21.2025 5.87843 21.1194 5.88655 21.0358 5.88655H19.8399L22.188 12.6389L32.5494 7.03864L31.3191 3.73559C31.2875 3.65143 31.2649 3.56496 31.2513 3.47557C31.2372 3.38677 31.2321 3.29739 31.2366 3.20743C31.2406 3.11746 31.2535 3.02867 31.2751 2.94161C31.2971 2.85455 31.3271 2.77038 31.366 2.68971C31.4045 2.60903 31.4508 2.53301 31.505 2.4622C31.5587 2.3908 31.6192 2.32638 31.6864 2.26834C31.7532 2.2103 31.8255 2.1598 31.9023 2.11685C31.9792 2.07391 32.06 2.03908 32.1442 2.01354L38.4938 0.0569906C39.1798 -0.154403 39.9045 0.240726 40.1081 0.937112ZM23.0537 15.1305L25.5679 22.3589L30.9608 10.8571L23.0537 15.1305ZM39.6059 25.995L36.912 18.7581C36.7758 18.8404 36.6425 18.927 36.5114 19.0181C36.3808 19.1092 36.2525 19.2038 36.1277 19.3031C36.0022 19.4023 35.8801 19.5051 35.7615 19.6124C35.6423 19.7192 35.5269 19.8294 35.4145 19.9439C35.3026 20.0582 35.1935 20.176 35.0884 20.2973C34.9833 20.418 34.8821 20.5428 34.7844 20.6705C34.6866 20.7975 34.5928 20.9288 34.503 21.0622C34.4137 21.1958 34.3278 21.3322 34.2464 21.4708C34.1645 21.6101 34.0876 21.7517 34.0147 21.8957C33.9413 22.0396 33.8729 22.1859 33.8084 22.3339C33.7446 22.4825 33.6846 22.6323 33.6299 22.7848C33.5745 22.9369 33.5242 23.0907 33.4784 23.2457C33.4327 23.4013 33.3914 23.5579 33.3552 23.7158C33.3185 23.8737 33.2869 24.0327 33.2603 24.1924C33.2337 24.3526 33.2117 24.5133 33.1947 24.6746C33.1772 24.836 33.1653 24.998 33.158 25.1598C33.1506 25.3218 33.1478 25.4843 33.1506 25.6463C33.1529 25.8088 33.1602 25.9707 33.1727 26.1326C33.1845 26.2945 33.2021 26.4559 33.2241 26.6167C33.2456 26.7774 33.2727 26.9371 33.3044 27.096C33.336 27.2551 33.3721 27.413 33.4134 27.5696C33.4547 27.7264 33.5004 27.8819 33.5508 28.0357C33.6016 28.1895 33.6564 28.3416 33.7164 28.492C33.7757 28.6422 33.8401 28.7903 33.9085 28.9365C33.9774 29.0828 34.0503 29.2267 34.1277 29.3683C34.2052 29.5094 34.2865 29.6487 34.3724 29.7851C34.4578 29.9214 34.5476 30.055 34.6414 30.1855C34.7352 30.3161 34.833 30.4438 34.9341 30.568C35.0359 30.6928 35.141 30.8136 35.2494 30.9313C35.3586 31.0492 35.4704 31.1635 35.5863 31.2738C35.7021 31.3847 35.8208 31.4915 35.9429 31.5947C36.0649 31.6975 36.1904 31.7967 36.3181 31.8919C36.4464 31.9865 36.577 32.0776 36.7108 32.1641C36.8442 32.2512 36.9804 32.3336 37.1188 32.4114C37.2573 32.4898 37.3981 32.5634 37.541 32.6325C37.6839 32.7016 37.8292 32.766 37.9762 32.8257C38.1231 32.8861 38.2717 32.9413 38.4214 32.9918C38.5718 33.0417 38.7232 33.0875 38.8764 33.1282C39.0295 33.1693 39.1832 33.2048 39.3386 33.2361C39.4935 33.2668 39.6494 33.293 39.8065 33.3139C39.963 33.3354 40.1202 33.3511 40.2778 33.362C40.4355 33.3731 40.5931 33.3795 40.7514 33.3806C40.9097 33.3813 41.0673 33.3772 41.225 33.3684C41.3832 33.3592 41.5403 33.3452 41.6974 33.3261C41.8545 33.307 42.0105 33.2831 42.1659 33.2541C42.3213 33.2251 42.4761 33.1914 42.6292 33.1525C42.783 33.1136 42.935 33.0695 43.0859 33.0214C43.2368 32.9727 43.386 32.9193 43.5335 32.8612C43.6809 32.8032 43.8267 32.7411 43.9703 32.6737C44.1144 32.6064 44.2557 32.5344 44.3952 32.4578C44.5349 32.3818 44.6721 32.3011 44.8066 32.2158C44.9411 32.131 45.0728 32.0417 45.2023 31.9482C45.3317 31.8548 45.4576 31.7573 45.5814 31.6557C45.7047 31.5547 45.8244 31.449 45.942 31.3399C46.059 31.2308 46.1726 31.1183 46.2827 31.0016C46.3929 30.8855 46.4992 30.7659 46.602 30.6423C46.7048 30.5193 46.8043 30.3934 46.8999 30.2639C46.9948 30.1345 47.0864 30.0021 47.1739 29.8664C47.2609 29.7311 47.344 29.5935 47.4231 29.4531C47.5023 29.3121 47.5768 29.1692 47.6475 29.0242C47.7176 28.8785 47.7837 28.7311 47.8453 28.5819C47.9069 28.4322 47.9639 28.2807 48.0159 28.128C48.0685 27.9748 48.116 27.8198 48.1589 27.6637C48.2024 27.5076 48.2403 27.3503 48.2742 27.1919C48.3075 27.0328 48.3364 26.8732 48.36 26.713C48.3843 26.5528 48.4031 26.3915 48.4172 26.2301C48.4318 26.0682 48.4409 25.9063 48.4454 25.7438C48.4499 25.5818 48.4494 25.4193 48.4438 25.2573C48.4386 25.0948 48.4285 24.933 48.4132 24.7716C48.3979 24.6103 48.3782 24.4489 48.3533 24.2887C48.3284 24.1285 48.2985 23.9695 48.264 23.811C48.2296 23.6526 48.1905 23.4952 48.1465 23.3391C48.1024 23.1836 48.0538 23.0293 48.0007 22.876C47.9475 22.7234 47.8893 22.5725 47.8272 22.4233C47.7651 22.2741 47.6978 22.1273 47.6266 21.9822C47.5554 21.8376 47.4802 21.6949 47.3999 21.555C47.3203 21.4145 47.2361 21.2776 47.1479 21.1429C47.0598 21.0077 46.9676 20.8759 46.8716 20.7471C46.7755 20.6182 46.676 20.4929 46.5721 20.3704C46.4686 20.248 46.3613 20.1284 46.2505 20.0128C46.1392 19.8974 46.025 19.7853 45.9075 19.6769C45.7899 19.5683 45.669 19.4638 45.5453 19.3635C45.4215 19.2624 45.2943 19.1661 45.165 19.0733C45.0349 18.9804 44.9027 18.8922 44.7671 18.8079C44.6321 18.7238 44.4947 18.6438 44.3546 18.5683C44.215 18.4929 44.0726 18.422 43.9285 18.3559C43.7844 18.2891 43.6386 18.2275 43.4905 18.1702C43.3424 18.1132 43.1927 18.061 43.0418 18.0134C42.8909 17.9659 42.7383 17.9229 42.5847 17.8852C42.4309 17.8475 42.2767 17.8143 42.1207 17.7859C41.9653 17.758 41.8088 17.7348 41.6516 17.7168C41.4946 17.6989 41.3374 17.6855 41.1792 17.678C41.0215 17.6698 40.8633 17.6664 40.7056 17.6687C40.5474 17.6704 40.3898 17.6773 40.2321 17.6896C40.0744 17.7017 39.9173 17.7186 39.7608 17.7407C39.6042 17.7627 39.4483 17.79 39.2934 17.8219L41.9873 25.06C42.0161 25.1401 42.0365 25.222 42.0495 25.3061C42.0625 25.3903 42.0675 25.475 42.0641 25.5604C42.0613 25.645 42.05 25.7293 42.0309 25.8122C42.0116 25.8952 41.985 25.9754 41.9505 26.0531C41.9162 26.1303 41.8749 26.204 41.8263 26.2731C41.7782 26.3422 41.724 26.406 41.6635 26.4646C41.603 26.5226 41.5375 26.5749 41.4674 26.6201C41.3968 26.6649 41.3227 26.7031 41.2453 26.7333C41.1679 26.7635 41.0882 26.7862 41.0068 26.8006C40.9249 26.8151 40.8424 26.8215 40.7593 26.8192C40.6768 26.8175 40.5949 26.8071 40.5135 26.7885C40.4327 26.7699 40.3541 26.7438 40.2784 26.7095C40.2022 26.6753 40.1304 26.6335 40.062 26.5853C39.9942 26.5365 39.9308 26.4815 39.8733 26.4199C39.8156 26.359 39.7647 26.2922 39.7195 26.2208C39.6743 26.1495 39.6364 26.074 39.6059 25.995ZM17.7429 24.2179H10.1991C10.1155 24.2179 10.0324 24.2265 9.95046 24.2428C9.86858 24.2597 9.7889 24.2846 9.71142 24.3177C9.63404 24.3508 9.56059 24.3908 9.49109 24.4385C9.42104 24.4866 9.35713 24.5406 9.2978 24.6015C9.23848 24.6625 9.1853 24.7287 9.13899 24.8C9.09269 24.8714 9.05308 24.9469 9.02144 25.0264C8.98926 25.1059 8.96496 25.1877 8.94855 25.2719C8.93214 25.3561 8.92425 25.4414 8.92425 25.5273C8.92425 25.6132 8.93214 25.6984 8.94855 25.7827C8.96496 25.8674 8.98926 25.9492 9.02144 26.0281C9.05308 26.1077 9.09269 26.1831 9.13899 26.2545C9.1853 26.3265 9.23848 26.3926 9.2978 26.453C9.35713 26.514 9.42104 26.5685 9.49109 26.6161C9.56059 26.6637 9.63404 26.7043 9.71142 26.7368C9.7889 26.7699 9.86858 26.7949 9.95046 26.8117C10.0324 26.8285 10.1155 26.8367 10.1991 26.8367H17.7429C17.7027 27.0764 17.6518 27.3137 17.5903 27.5482C17.5287 27.7832 17.4563 28.0143 17.3738 28.2424C17.2913 28.4704 17.1987 28.694 17.0964 28.9127C16.9935 29.1321 16.8811 29.3457 16.759 29.5541C16.6369 29.7624 16.5059 29.9644 16.3657 30.1606C16.2256 30.3562 16.0763 30.5448 15.9192 30.727C15.7616 30.9088 15.5966 31.0822 15.4236 31.2483C15.2507 31.4142 15.0704 31.5715 14.8828 31.7201C14.6958 31.8687 14.5019 32.0085 14.3024 32.1386C14.1023 32.2692 13.8972 32.3899 13.6864 32.5002C13.4756 32.611 13.2603 32.7114 13.0406 32.802C12.8207 32.892 12.597 32.9714 12.3697 33.0405C12.1432 33.1096 11.9131 33.167 11.6809 33.2141C11.4486 33.2611 11.2147 33.297 10.979 33.322C10.744 33.3464 10.5077 33.3604 10.2709 33.362C10.0342 33.3644 9.79789 33.3551 9.56169 33.3348C9.32604 33.3145 9.0915 33.2831 8.85814 33.2408C8.62534 33.1979 8.39475 33.1445 8.16645 33.0795C7.93814 33.015 7.71323 32.9395 7.4917 32.853C7.27074 32.7671 7.05373 32.6708 6.84069 32.5641C6.6282 32.4573 6.42081 32.3405 6.2185 32.2141C6.01619 32.0875 5.8201 31.9512 5.63021 31.806C5.44091 31.661 5.25781 31.5071 5.08149 31.344C4.90574 31.1815 4.73734 31.0109 4.57685 30.8321C4.41635 30.6534 4.26434 30.467 4.12081 30.2743C3.97726 30.0811 3.8422 29.8814 3.71675 29.6753C3.59073 29.4694 3.47488 29.2575 3.36807 29.0404C3.26183 28.8233 3.1652 28.6016 3.07873 28.3752C2.99228 28.1489 2.91598 27.9185 2.85043 27.6852C2.78488 27.4512 2.7295 27.2151 2.68541 26.9765C2.64077 26.7374 2.60743 26.4971 2.58483 26.2551C2.56222 26.0131 2.55035 25.7704 2.54979 25.5273C2.54979 25.2835 2.56053 25.0403 2.582 24.7977C2.60404 24.5551 2.63681 24.3137 2.68033 24.0745C2.72384 23.8348 2.77866 23.598 2.84364 23.3636C2.90863 23.1291 2.98436 22.8986 3.07026 22.6711C3.15672 22.4442 3.25279 22.2213 3.35903 22.0037C3.46527 21.7854 3.58112 21.5736 3.70657 21.3663C3.83203 21.1597 3.96653 20.9589 4.11007 20.765C4.2536 20.5712 4.40562 20.3843 4.56612 20.205C4.7266 20.0257 4.895 19.8539 5.07132 19.6908C5.24707 19.5271 5.43017 19.3727 5.62061 19.2265C5.81049 19.0808 6.00658 18.9444 6.20946 18.8172C6.41176 18.6902 6.61973 18.5729 6.83278 18.4656C7.04582 18.3582 7.2634 18.2613 7.48491 18.1748C7.70701 18.0882 7.93192 18.0128 8.16079 17.9478C8.38966 17.8828 8.62075 17.8289 8.8542 17.7864C9.0881 17.7435 9.3232 17.7116 9.55949 17.6913C9.79624 17.671 10.033 17.6617 10.2704 17.664C10.5077 17.6664 10.744 17.6803 10.9802 17.7052C11.2164 17.7296 11.4509 17.7662 11.6837 17.8132C11.916 17.8607 12.1466 17.9188 12.3737 17.9879C12.6014 18.0575 12.8253 18.1376 13.0456 18.2282C13.266 18.3187 13.4813 18.4197 13.6927 18.5311C13.9035 18.6425 14.1091 18.7633 14.3092 18.8945C14.5098 19.0256 14.7031 19.1655 14.8907 19.3153C15.0783 19.4644 15.2586 19.6228 15.4315 19.7894C15.6044 19.956 15.77 20.1307 15.9271 20.313C16.0843 20.4957 16.2329 20.6856 16.373 20.8818C16.5132 21.0785 16.6442 21.2816 16.7658 21.4911C16.8878 21.7001 16.9997 21.9149 17.102 22.1348C17.2043 22.3548 17.2964 22.5789 17.3783 22.8075C17.4603 23.0362 17.5315 23.2684 17.5925 23.504C17.653 23.7397 17.7033 23.9776 17.7429 24.2179Z",fill:"white"})),sn=t=>E("svg",{width:10,height:10,viewBox:"0 0 10 10",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},E("path",{d:"M9.12114 5C9.12114 7.27602 7.27606 9.1211 5.00002 9.1211C2.724 9.1211 0.87891 7.27602 0.87891 5C0.87891 2.72398 2.724 0.878906 5.00002 0.878906C7.27606 0.878906 9.12114 2.72398 9.12114 5Z",fill:"white"}),E("path",{d:"M5 0C2.24302 0 0 2.24296 0 4.99998C0 7.757 2.24302 10 5 10C7.75698 10 10 7.757 10 4.99998C10 2.24296 7.75704 0 5 0ZM7.87108 4.15544L4.72984 7.29666C4.66434 7.36252 4.58642 7.41474 4.5006 7.45028C4.41478 7.48584 4.32276 7.504 4.22986 7.50374C4.04098 7.50374 3.86344 7.43024 3.72988 7.29666L2.12892 5.69572C2.06304 5.6302 2.01082 5.5523 1.97526 5.46646C1.93971 5.38064 1.92153 5.28862 1.92178 5.19574C1.92178 5.0068 1.99535 4.82926 2.12892 4.6957C2.1944 4.62982 2.27232 4.57758 2.35814 4.54204C2.44398 4.50648 2.536 4.4883 2.6289 4.48856C2.81776 4.48856 2.99536 4.56214 3.12888 4.69574L4.2298 5.79662L6.87102 3.15542C6.93652 3.08956 7.01444 3.03734 7.10026 3.0018C7.18608 2.96626 7.2781 2.94808 7.371 2.94834C7.55986 2.94834 7.73742 3.02186 7.87098 3.15542C8.14678 3.43122 8.14678 3.87976 7.87108 4.15544Z",fill:"#00AB04"}));function un({"data-title":t,"data-color":e,"data-full-width":r,"data-font-color":o,"data-show":a}){const i=j.value;return typeof a>"u"||a!=="true"&&a!==""?d(z,{}):d(z,{children:[d("style",{type:"text/css",children:an}),d("div",{onClick:()=>{bt()},class:"bike-selector-banner_wrapper",children:d("div",{class:`bike-selector-banner ${r==="false"?"floating":""}`,style:{backgroundColor:e??"#000",maxWidth:r??null},children:d(z,{children:[d("h2",{class:"bike-selector-banner_title",style:{color:o==="black"?"#000":"#fff"},children:i?i.brand+" "+i.frameSeries:t}),d("h2",{class:"bike-selector-banner_title_mobile",style:{color:o==="black"?"#000":"#fff"},children:i?i.brand:"Check Compatibility"}),d("div",{class:"bike-selector-banner_icon-wrapper",children:[!!i&&d(sn,{class:"bike-selector-banner_tick"}),d(nn,{class:"bike-selector-banner_svg"})]})]})})})]})}const ln={type:"logger",log(t){this.output("log",t)},warn(t){this.output("warn",t)},error(t){this.output("error",t)},output(t,e){console&&console[t]&&console[t].apply(console,e)}};class yt{constructor(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.init(e,r)}init(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.prefix=r.prefix||"i18next:",this.logger=e||ln,this.options=r,this.debug=r.debug}log(){for(var e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];return this.forward(r,"log","",!0)}warn(){for(var e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];return this.forward(r,"warn","",!0)}error(){for(var e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];return this.forward(r,"error","")}deprecate(){for(var e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];return this.forward(r,"warn","WARNING DEPRECATED: ",!0)}forward(e,r,o,a){return a&&!this.debug?null:(typeof e[0]=="string"&&(e[0]=`${o}${this.prefix} ${e[0]}`),this.logger[r](e))}create(e){return new yt(this.logger,{prefix:`${this.prefix}:${e}:`,...this.options})}clone(e){return e=e||this.options,e.prefix=e.prefix||this.prefix,new yt(this.logger,e)}}var ce=new yt;class Ct{constructor(){this.observers={}}on(e,r){return e.split(" ").forEach(o=>{this.observers[o]||(this.observers[o]=new Map);const a=this.observers[o].get(r)||0;this.observers[o].set(r,a+1)}),this}off(e,r){if(this.observers[e]){if(!r){delete this.observers[e];return}this.observers[e].delete(r)}}emit(e){for(var r=arguments.length,o=new Array(r>1?r-1:0),a=1;a<r;a++)o[a-1]=arguments[a];this.observers[e]&&Array.from(this.observers[e].entries()).forEach(n=>{let[s,u]=n;for(let l=0;l<u;l++)s(...o)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(n=>{let[s,u]=n;for(let l=0;l<u;l++)s.apply(s,[e,...o])})}}const Ye=()=>{let t,e;const r=new Promise((o,a)=>{t=o,e=a});return r.resolve=t,r.reject=e,r},Fo=t=>t==null?"":""+t,cn=(t,e,r)=>{t.forEach(o=>{e[o]&&(r[o]=e[o])})},dn=/###/g,Lo=t=>t&&t.indexOf("###")>-1?t.replace(dn,"."):t,qo=t=>!t||typeof t=="string",We=(t,e,r)=>{const o=typeof e!="string"?e:e.split(".");let a=0;for(;a<o.length-1;){if(qo(t))return{};const i=Lo(o[a]);!t[i]&&r&&(t[i]=new r),Object.prototype.hasOwnProperty.call(t,i)?t=t[i]:t={},++a}return qo(t)?{}:{obj:t,k:Lo(o[a])}},zo=(t,e,r)=>{const{obj:o,k:a}=We(t,e,Object);if(o!==void 0||e.length===1){o[a]=r;return}let i=e[e.length-1],n=e.slice(0,e.length-1),s=We(t,n,Object);for(;s.obj===void 0&&n.length;)i=`${n[n.length-1]}.${i}`,n=n.slice(0,n.length-1),s=We(t,n,Object),s&&s.obj&&typeof s.obj[`${s.k}.${i}`]<"u"&&(s.obj=void 0);s.obj[`${s.k}.${i}`]=r},pn=(t,e,r,o)=>{const{obj:a,k:i}=We(t,e,Object);a[i]=a[i]||[],a[i].push(r)},kt=(t,e)=>{const{obj:r,k:o}=We(t,e);if(r)return r[o]},gn=(t,e,r)=>{const o=kt(t,r);return o!==void 0?o:kt(e,r)},Ro=(t,e,r)=>{for(const o in e)o!=="__proto__"&&o!=="constructor"&&(o in t?typeof t[o]=="string"||t[o]instanceof String||typeof e[o]=="string"||e[o]instanceof String?r&&(t[o]=e[o]):Ro(t[o],e[o],r):t[o]=e[o]);return t},Re=t=>t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var fn={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const hn=t=>typeof t=="string"?t.replace(/[&<>"'\/]/g,e=>fn[e]):t;class bn{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){const r=this.regExpMap.get(e);if(r!==void 0)return r;const o=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,o),this.regExpQueue.push(e),o}}const mn=[" ",",","?","!",";"],_n=new bn(20),yn=(t,e,r)=>{e=e||"",r=r||"";const o=mn.filter(n=>e.indexOf(n)<0&&r.indexOf(n)<0);if(o.length===0)return!0;const a=_n.getRegExp(`(${o.map(n=>n==="?"?"\\?":n).join("|")})`);let i=!a.test(t);if(!i){const n=t.indexOf(r);n>0&&!a.test(t.substring(0,n))&&(i=!0)}return i},ar=function(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:".";if(!t)return;if(t[e])return t[e];const o=e.split(r);let a=t;for(let i=0;i<o.length;){if(!a||typeof a!="object")return;let n,s="";for(let u=i;u<o.length;++u)if(u!==i&&(s+=r),s+=o[u],n=a[s],n!==void 0){if(["string","number","boolean"].indexOf(typeof n)>-1&&u<o.length-1)continue;i+=u-i+1;break}a=n}return a},vt=t=>t&&t.replace("_","-");class No extends Ct{constructor(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{ns:["translation"],defaultNS:"translation"};super(),this.data=e||{},this.options=r,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}removeNamespaces(e){const r=this.options.ns.indexOf(e);r>-1&&this.options.ns.splice(r,1)}getResource(e,r,o){let a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const i=a.keySeparator!==void 0?a.keySeparator:this.options.keySeparator,n=a.ignoreJSONStructure!==void 0?a.ignoreJSONStructure:this.options.ignoreJSONStructure;let s;e.indexOf(".")>-1?s=e.split("."):(s=[e,r],o&&(Array.isArray(o)?s.push(...o):typeof o=="string"&&i?s.push(...o.split(i)):s.push(o)));const u=kt(this.data,s);return!u&&!r&&!o&&e.indexOf(".")>-1&&(e=s[0],r=s[1],o=s.slice(2).join(".")),u||!n||typeof o!="string"?u:ar(this.data&&this.data[e]&&this.data[e][r],o,i)}addResource(e,r,o,a){let i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1};const n=i.keySeparator!==void 0?i.keySeparator:this.options.keySeparator;let s=[e,r];o&&(s=s.concat(n?o.split(n):o)),e.indexOf(".")>-1&&(s=e.split("."),a=r,r=s[1]),this.addNamespaces(r),zo(this.data,s,a),i.silent||this.emit("added",e,r,o,a)}addResources(e,r,o){let a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(const i in o)(typeof o[i]=="string"||Array.isArray(o[i]))&&this.addResource(e,r,i,o[i],{silent:!0});a.silent||this.emit("added",e,r,o)}addResourceBundle(e,r,o,a,i){let n=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1,skipCopy:!1},s=[e,r];e.indexOf(".")>-1&&(s=e.split("."),a=o,o=r,r=s[1]),this.addNamespaces(r);let u=kt(this.data,s)||{};n.skipCopy||(o=JSON.parse(JSON.stringify(o))),a?Ro(u,o,i):u={...u,...o},zo(this.data,s,u),n.silent||this.emit("added",e,r,o)}removeResourceBundle(e,r){this.hasResourceBundle(e,r)&&delete this.data[e][r],this.removeNamespaces(r),this.emit("removed",e,r)}hasResourceBundle(e,r){return this.getResource(e,r)!==void 0}getResourceBundle(e,r){return r||(r=this.options.defaultNS),this.options.compatibilityAPI==="v1"?{...this.getResource(e,r)}:this.getResource(e,r)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){const r=this.getDataByLanguage(e);return!!(r&&Object.keys(r)||[]).find(a=>r[a]&&Object.keys(r[a]).length>0)}toJSON(){return this.data}}var Po={processors:{},addPostProcessor(t){this.processors[t.name]=t},handle(t,e,r,o,a){return t.forEach(i=>{this.processors[i]&&(e=this.processors[i].process(e,r,o,a))}),e}};const To={};class xt extends Ct{constructor(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),cn(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,this),this.options=r,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=ce.create("translator")}changeLanguage(e){e&&(this.language=e)}exists(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};if(e==null)return!1;const o=this.resolve(e,r);return o&&o.res!==void 0}extractFromKey(e,r){let o=r.nsSeparator!==void 0?r.nsSeparator:this.options.nsSeparator;o===void 0&&(o=":");const a=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator;let i=r.ns||this.options.defaultNS||[];const n=o&&e.indexOf(o)>-1,s=!this.options.userDefinedKeySeparator&&!r.keySeparator&&!this.options.userDefinedNsSeparator&&!r.nsSeparator&&!yn(e,o,a);if(n&&!s){const u=e.match(this.interpolator.nestingRegexp);if(u&&u.length>0)return{key:e,namespaces:i};const l=e.split(o);(o!==a||o===a&&this.options.ns.indexOf(l[0])>-1)&&(i=l.shift()),e=l.join(a)}return typeof i=="string"&&(i=[i]),{key:e,namespaces:i}}translate(e,r,o){if(typeof r!="object"&&this.options.overloadTranslationOptionHandler&&(r=this.options.overloadTranslationOptionHandler(arguments)),typeof r=="object"&&(r={...r}),r||(r={}),e==null)return"";Array.isArray(e)||(e=[String(e)]);const a=r.returnDetails!==void 0?r.returnDetails:this.options.returnDetails,i=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator,{key:n,namespaces:s}=this.extractFromKey(e[e.length-1],r),u=s[s.length-1],l=r.lng||this.language,p=r.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(l&&l.toLowerCase()==="cimode"){if(p){const k=r.nsSeparator||this.options.nsSeparator;return a?{res:`${u}${k}${n}`,usedKey:n,exactUsedKey:n,usedLng:l,usedNS:u,usedParams:this.getUsedParamsDetails(r)}:`${u}${k}${n}`}return a?{res:n,usedKey:n,exactUsedKey:n,usedLng:l,usedNS:u,usedParams:this.getUsedParamsDetails(r)}:n}const c=this.resolve(e,r);let g=c&&c.res;const f=c&&c.usedKey||n,_=c&&c.exactUsedKey||n,m=Object.prototype.toString.apply(g),y=["[object Number]","[object Function]","[object RegExp]"],C=r.joinArrays!==void 0?r.joinArrays:this.options.joinArrays,b=!this.i18nFormat||this.i18nFormat.handleAsObject;if(b&&g&&(typeof g!="string"&&typeof g!="boolean"&&typeof g!="number")&&y.indexOf(m)<0&&!(typeof C=="string"&&Array.isArray(g))){if(!r.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const k=this.options.returnedObjectHandler?this.options.returnedObjectHandler(f,g,{...r,ns:s}):`key '${n} (${this.language})' returned an object instead of string.`;return a?(c.res=k,c.usedParams=this.getUsedParamsDetails(r),c):k}if(i){const k=Array.isArray(g),w=k?[]:{},A=k?_:f;for(const B in g)if(Object.prototype.hasOwnProperty.call(g,B)){const R=`${A}${i}${B}`;w[B]=this.translate(R,{...r,joinArrays:!1,ns:s}),w[B]===R&&(w[B]=g[B])}g=w}}else if(b&&typeof C=="string"&&Array.isArray(g))g=g.join(C),g&&(g=this.extendTranslation(g,e,r,o));else{let k=!1,w=!1;const A=r.count!==void 0&&typeof r.count!="string",B=xt.hasDefaultValue(r),R=A?this.pluralResolver.getSuffix(l,r.count,r):"",q=r.ordinal&&A?this.pluralResolver.getSuffix(l,r.count,{ordinal:!1}):"",U=A&&!r.ordinal&&r.count===0&&this.pluralResolver.shouldUseIntlApi(),V=U&&r[`defaultValue${this.options.pluralSeparator}zero`]||r[`defaultValue${R}`]||r[`defaultValue${q}`]||r.defaultValue;!this.isValidLookup(g)&&B&&(k=!0,g=V),this.isValidLookup(g)||(w=!0,g=n);const G=(r.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&w?void 0:g,x=B&&V!==g&&this.options.updateMissing;if(w||k||x){if(this.logger.log(x?"updateKey":"missingKey",l,u,n,x?V:g),i){const T=this.resolve(n,{...r,keySeparator:!1});T&&T.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let D=[];const N=this.languageUtils.getFallbackCodes(this.options.fallbackLng,r.lng||this.language);if(this.options.saveMissingTo==="fallback"&&N&&N[0])for(let T=0;T<N.length;T++)D.push(N[T]);else this.options.saveMissingTo==="all"?D=this.languageUtils.toResolveHierarchy(r.lng||this.language):D.push(r.lng||this.language);const Y=(T,h,F)=>{const P=B&&F!==g?F:G;this.options.missingKeyHandler?this.options.missingKeyHandler(T,u,h,P,x,r):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(T,u,h,P,x,r),this.emit("missingKey",T,u,h,g)};this.options.saveMissing&&(this.options.saveMissingPlurals&&A?D.forEach(T=>{const h=this.pluralResolver.getSuffixes(T,r);U&&r[`defaultValue${this.options.pluralSeparator}zero`]&&h.indexOf(`${this.options.pluralSeparator}zero`)<0&&h.push(`${this.options.pluralSeparator}zero`),h.forEach(F=>{Y([T],n+F,r[`defaultValue${F}`]||V)})}):Y(D,n,V))}g=this.extendTranslation(g,e,r,c,o),w&&g===n&&this.options.appendNamespaceToMissingKey&&(g=`${u}:${n}`),(w||k)&&this.options.parseMissingKeyHandler&&(this.options.compatibilityAPI!=="v1"?g=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${u}:${n}`:n,k?g:void 0):g=this.options.parseMissingKeyHandler(g))}return a?(c.res=g,c.usedParams=this.getUsedParamsDetails(r),c):g}extendTranslation(e,r,o,a,i){var n=this;if(this.i18nFormat&&this.i18nFormat.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...o},o.lng||this.language||a.usedLng,a.usedNS,a.usedKey,{resolved:a});else if(!o.skipInterpolation){o.interpolation&&this.interpolator.init({...o,interpolation:{...this.options.interpolation,...o.interpolation}});const l=typeof e=="string"&&(o&&o.interpolation&&o.interpolation.skipOnVariables!==void 0?o.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let p;if(l){const g=e.match(this.interpolator.nestingRegexp);p=g&&g.length}let c=o.replace&&typeof o.replace!="string"?o.replace:o;if(this.options.interpolation.defaultVariables&&(c={...this.options.interpolation.defaultVariables,...c}),e=this.interpolator.interpolate(e,c,o.lng||this.language||a.usedLng,o),l){const g=e.match(this.interpolator.nestingRegexp),f=g&&g.length;p<f&&(o.nest=!1)}!o.lng&&this.options.compatibilityAPI!=="v1"&&a&&a.res&&(o.lng=this.language||a.usedLng),o.nest!==!1&&(e=this.interpolator.nest(e,function(){for(var g=arguments.length,f=new Array(g),_=0;_<g;_++)f[_]=arguments[_];return i&&i[0]===f[0]&&!o.context?(n.logger.warn(`It seems you are nesting recursively key: ${f[0]} in key: ${r[0]}`),null):n.translate(...f,r)},o)),o.interpolation&&this.interpolator.reset()}const s=o.postProcess||this.options.postProcess,u=typeof s=="string"?[s]:s;return e!=null&&u&&u.length&&o.applyPostProcessor!==!1&&(e=Po.handle(u,e,r,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...a,usedParams:this.getUsedParamsDetails(o)},...o}:o,this)),e}resolve(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o,a,i,n,s;return typeof e=="string"&&(e=[e]),e.forEach(u=>{if(this.isValidLookup(o))return;const l=this.extractFromKey(u,r),p=l.key;a=p;let c=l.namespaces;this.options.fallbackNS&&(c=c.concat(this.options.fallbackNS));const g=r.count!==void 0&&typeof r.count!="string",f=g&&!r.ordinal&&r.count===0&&this.pluralResolver.shouldUseIntlApi(),_=r.context!==void 0&&(typeof r.context=="string"||typeof r.context=="number")&&r.context!=="",m=r.lngs?r.lngs:this.languageUtils.toResolveHierarchy(r.lng||this.language,r.fallbackLng);c.forEach(y=>{this.isValidLookup(o)||(s=y,!To[`${m[0]}-${y}`]&&this.utils&&this.utils.hasLoadedNamespace&&!this.utils.hasLoadedNamespace(s)&&(To[`${m[0]}-${y}`]=!0,this.logger.warn(`key "${a}" for languages "${m.join(", ")}" won't get resolved as namespace "${s}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),m.forEach(C=>{if(this.isValidLookup(o))return;n=C;const b=[p];if(this.i18nFormat&&this.i18nFormat.addLookupKeys)this.i18nFormat.addLookupKeys(b,p,C,y,r);else{let k;g&&(k=this.pluralResolver.getSuffix(C,r.count,r));const w=`${this.options.pluralSeparator}zero`,A=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(g&&(b.push(p+k),r.ordinal&&k.indexOf(A)===0&&b.push(p+k.replace(A,this.options.pluralSeparator)),f&&b.push(p+w)),_){const B=`${p}${this.options.contextSeparator}${r.context}`;b.push(B),g&&(b.push(B+k),r.ordinal&&k.indexOf(A)===0&&b.push(B+k.replace(A,this.options.pluralSeparator)),f&&b.push(B+w))}}let v;for(;v=b.pop();)this.isValidLookup(o)||(i=v,o=this.getResource(C,y,v,r))}))})}),{res:o,usedKey:a,exactUsedKey:i,usedLng:n,usedNS:s}}isValidLookup(e){return e!==void 0&&!(!this.options.returnNull&&e===null)&&!(!this.options.returnEmptyString&&e==="")}getResource(e,r,o){let a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,r,o,a):this.resourceStore.getResource(e,r,o,a)}getUsedParamsDetails(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const r=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],o=e.replace&&typeof e.replace!="string";let a=o?e.replace:e;if(o&&typeof e.count<"u"&&(a.count=e.count),this.options.interpolation.defaultVariables&&(a={...this.options.interpolation.defaultVariables,...a}),!o){a={...a};for(const i of r)delete a[i]}return a}static hasDefaultValue(e){const r="defaultValue";for(const o in e)if(Object.prototype.hasOwnProperty.call(e,o)&&r===o.substring(0,r.length)&&e[o]!==void 0)return!0;return!1}}const ir=t=>t.charAt(0).toUpperCase()+t.slice(1);class Oo{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=ce.create("languageUtils")}getScriptPartFromCode(e){if(e=vt(e),!e||e.indexOf("-")<0)return null;const r=e.split("-");return r.length===2||(r.pop(),r[r.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(r.join("-"))}getLanguagePartFromCode(e){if(e=vt(e),!e||e.indexOf("-")<0)return e;const r=e.split("-");return this.formatLanguageCode(r[0])}formatLanguageCode(e){if(typeof e=="string"&&e.indexOf("-")>-1){if(typeof Intl<"u"&&typeof Intl.getCanonicalLocales<"u")try{let a=Intl.getCanonicalLocales(e)[0];if(a&&this.options.lowerCaseLng&&(a=a.toLowerCase()),a)return a}catch{}const r=["hans","hant","latn","cyrl","cans","mong","arab"];let o=e.split("-");return this.options.lowerCaseLng?o=o.map(a=>a.toLowerCase()):o.length===2?(o[0]=o[0].toLowerCase(),o[1]=o[1].toUpperCase(),r.indexOf(o[1].toLowerCase())>-1&&(o[1]=ir(o[1].toLowerCase()))):o.length===3&&(o[0]=o[0].toLowerCase(),o[1].length===2&&(o[1]=o[1].toUpperCase()),o[0]!=="sgn"&&o[2].length===2&&(o[2]=o[2].toUpperCase()),r.indexOf(o[1].toLowerCase())>-1&&(o[1]=ir(o[1].toLowerCase())),r.indexOf(o[2].toLowerCase())>-1&&(o[2]=ir(o[2].toLowerCase()))),o.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}getBestMatchFromCodes(e){if(!e)return null;let r;return e.forEach(o=>{if(r)return;const a=this.formatLanguageCode(o);(!this.options.supportedLngs||this.isSupportedCode(a))&&(r=a)}),!r&&this.options.supportedLngs&&e.forEach(o=>{if(r)return;const a=this.getLanguagePartFromCode(o);if(this.isSupportedCode(a))return r=a;r=this.options.supportedLngs.find(i=>{if(i===a)return i;if(!(i.indexOf("-")<0&&a.indexOf("-")<0)&&(i.indexOf("-")>0&&a.indexOf("-")<0&&i.substring(0,i.indexOf("-"))===a||i.indexOf(a)===0&&a.length>1))return i})}),r||(r=this.getFallbackCodes(this.options.fallbackLng)[0]),r}getFallbackCodes(e,r){if(!e)return[];if(typeof e=="function"&&(e=e(r)),typeof e=="string"&&(e=[e]),Array.isArray(e))return e;if(!r)return e.default||[];let o=e[r];return o||(o=e[this.getScriptPartFromCode(r)]),o||(o=e[this.formatLanguageCode(r)]),o||(o=e[this.getLanguagePartFromCode(r)]),o||(o=e.default),o||[]}toResolveHierarchy(e,r){const o=this.getFallbackCodes(r||this.options.fallbackLng||[],e),a=[],i=n=>{n&&(this.isSupportedCode(n)?a.push(n):this.logger.warn(`rejecting language code not found in supportedLngs: ${n}`))};return typeof e=="string"&&(e.indexOf("-")>-1||e.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&i(this.formatLanguageCode(e)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&i(this.getScriptPartFromCode(e)),this.options.load!=="currentOnly"&&i(this.getLanguagePartFromCode(e))):typeof e=="string"&&i(this.formatLanguageCode(e)),o.forEach(n=>{a.indexOf(n)<0&&i(this.formatLanguageCode(n))}),a}}let Cn=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],kn={1:t=>+(t>1),2:t=>+(t!=1),3:t=>0,4:t=>t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2,5:t=>t==0?0:t==1?1:t==2?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5,6:t=>t==1?0:t>=2&&t<=4?1:2,7:t=>t==1?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2,8:t=>t==1?0:t==2?1:t!=8&&t!=11?2:3,9:t=>+(t>=2),10:t=>t==1?0:t==2?1:t<7?2:t<11?3:4,11:t=>t==1||t==11?0:t==2||t==12?1:t>2&&t<20?2:3,12:t=>+(t%10!=1||t%100==11),13:t=>+(t!==0),14:t=>t==1?0:t==2?1:t==3?2:3,15:t=>t%10==1&&t%100!=11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2,16:t=>t%10==1&&t%100!=11?0:t!==0?1:2,17:t=>t==1||t%10==1&&t%100!=11?0:1,18:t=>t==0?0:t==1?1:2,19:t=>t==1?0:t==0||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3,20:t=>t==1?0:t==0||t%100>0&&t%100<20?1:2,21:t=>t%100==1?1:t%100==2?2:t%100==3||t%100==4?3:0,22:t=>t==1?0:t==2?1:(t<0||t>10)&&t%10==0?2:3};const vn=["v1","v2","v3"],xn=["v4"],Uo={zero:0,one:1,two:2,few:3,many:4,other:5},wn=()=>{const t={};return Cn.forEach(e=>{e.lngs.forEach(r=>{t[r]={numbers:e.nr,plurals:kn[e.fc]}})}),t};class Dn{constructor(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.languageUtils=e,this.options=r,this.logger=ce.create("pluralResolver"),(!this.options.compatibilityJSON||xn.includes(this.options.compatibilityJSON))&&(typeof Intl>"u"||!Intl.PluralRules)&&(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=wn(),this.pluralRulesCache={}}addRule(e,r){this.rules[e]=r}clearCache(){this.pluralRulesCache={}}getRule(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.shouldUseIntlApi())try{const o=vt(e==="dev"?"en":e),a=r.ordinal?"ordinal":"cardinal",i=JSON.stringify({cleanedCode:o,type:a});if(i in this.pluralRulesCache)return this.pluralRulesCache[i];const n=new Intl.PluralRules(o,{type:a});return this.pluralRulesCache[i]=n,n}catch{return}return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}needsPlural(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const o=this.getRule(e,r);return this.shouldUseIntlApi()?o&&o.resolvedOptions().pluralCategories.length>1:o&&o.numbers.length>1}getPluralFormsOfKey(e,r){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(e,o).map(a=>`${r}${a}`)}getSuffixes(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const o=this.getRule(e,r);return o?this.shouldUseIntlApi()?o.resolvedOptions().pluralCategories.sort((a,i)=>Uo[a]-Uo[i]).map(a=>`${this.options.prepend}${r.ordinal?`ordinal${this.options.prepend}`:""}${a}`):o.numbers.map(a=>this.getSuffix(e,a,r)):[]}getSuffix(e,r){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const a=this.getRule(e,o);return a?this.shouldUseIntlApi()?`${this.options.prepend}${o.ordinal?`ordinal${this.options.prepend}`:""}${a.select(r)}`:this.getSuffixRetroCompatible(a,r):(this.logger.warn(`no plural rule found for: ${e}`),"")}getSuffixRetroCompatible(e,r){const o=e.noAbs?e.plurals(r):e.plurals(Math.abs(r));let a=e.numbers[o];this.options.simplifyPluralSuffix&&e.numbers.length===2&&e.numbers[0]===1&&(a===2?a="plural":a===1&&(a=""));const i=()=>this.options.prepend&&a.toString()?this.options.prepend+a.toString():a.toString();return this.options.compatibilityJSON==="v1"?a===1?"":typeof a=="number"?`_plural_${a.toString()}`:i():this.options.compatibilityJSON==="v2"||this.options.simplifyPluralSuffix&&e.numbers.length===2&&e.numbers[0]===1?i():this.options.prepend&&o.toString()?this.options.prepend+o.toString():o.toString()}shouldUseIntlApi(){return!vn.includes(this.options.compatibilityJSON)}}const Io=function(t,e,r){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:".",a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=gn(t,e,r);return!i&&a&&typeof r=="string"&&(i=ar(t,r,o),i===void 0&&(i=ar(e,r,o))),i},nr=t=>t.replace(/\$/g,"$$$$");class An{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=ce.create("interpolator"),this.options=e,this.format=e.interpolation&&e.interpolation.format||(r=>r),this.init(e)}init(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});const{escape:r,escapeValue:o,useRawValueToEscape:a,prefix:i,prefixEscaped:n,suffix:s,suffixEscaped:u,formatSeparator:l,unescapeSuffix:p,unescapePrefix:c,nestingPrefix:g,nestingPrefixEscaped:f,nestingSuffix:_,nestingSuffixEscaped:m,nestingOptionsSeparator:y,maxReplaces:C,alwaysFormat:b}=e.interpolation;this.escape=r!==void 0?r:hn,this.escapeValue=o!==void 0?o:!0,this.useRawValueToEscape=a!==void 0?a:!1,this.prefix=i?Re(i):n||"{{",this.suffix=s?Re(s):u||"}}",this.formatSeparator=l||",",this.unescapePrefix=p?"":c||"-",this.unescapeSuffix=this.unescapePrefix?"":p||"",this.nestingPrefix=g?Re(g):f||Re("$t("),this.nestingSuffix=_?Re(_):m||Re(")"),this.nestingOptionsSeparator=y||",",this.maxReplaces=C||1e3,this.alwaysFormat=b!==void 0?b:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const e=(r,o)=>r&&r.source===o?(r.lastIndex=0,r):new RegExp(o,"g");this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(e,r,o,a){let i,n,s;const u=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},l=f=>{if(f.indexOf(this.formatSeparator)<0){const C=Io(r,u,f,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(C,void 0,o,{...a,...r,interpolationkey:f}):C}const _=f.split(this.formatSeparator),m=_.shift().trim(),y=_.join(this.formatSeparator).trim();return this.format(Io(r,u,m,this.options.keySeparator,this.options.ignoreJSONStructure),y,o,{...a,...r,interpolationkey:m})};this.resetRegExp();const p=a&&a.missingInterpolationHandler||this.options.missingInterpolationHandler,c=a&&a.interpolation&&a.interpolation.skipOnVariables!==void 0?a.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:f=>nr(f)},{regex:this.regexp,safeValue:f=>this.escapeValue?nr(this.escape(f)):nr(f)}].forEach(f=>{for(s=0;i=f.regex.exec(e);){const _=i[1].trim();if(n=l(_),n===void 0)if(typeof p=="function"){const y=p(e,i,a);n=typeof y=="string"?y:""}else if(a&&Object.prototype.hasOwnProperty.call(a,_))n="";else if(c){n=i[0];continue}else this.logger.warn(`missed to pass in variable ${_} for interpolating ${e}`),n="";else typeof n!="string"&&!this.useRawValueToEscape&&(n=Fo(n));const m=f.safeValue(n);if(e=e.replace(i[0],m),c?(f.regex.lastIndex+=n.length,f.regex.lastIndex-=i[0].length):f.regex.lastIndex=0,s++,s>=this.maxReplaces)break}}),e}nest(e,r){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a,i,n;const s=(u,l)=>{const p=this.nestingOptionsSeparator;if(u.indexOf(p)<0)return u;const c=u.split(new RegExp(`${p}[ ]*{`));let g=`{${c[1]}`;u=c[0],g=this.interpolate(g,n);const f=g.match(/'/g),_=g.match(/"/g);(f&&f.length%2===0&&!_||_.length%2!==0)&&(g=g.replace(/'/g,'"'));try{n=JSON.parse(g),l&&(n={...l,...n})}catch(m){return this.logger.warn(`failed parsing options string in nesting for key ${u}`,m),`${u}${p}${g}`}return n.defaultValue&&n.defaultValue.indexOf(this.prefix)>-1&&delete n.defaultValue,u};for(;a=this.nestingRegexp.exec(e);){let u=[];n={...o},n=n.replace&&typeof n.replace!="string"?n.replace:n,n.applyPostProcessor=!1,delete n.defaultValue;let l=!1;if(a[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(a[1])){const p=a[1].split(this.formatSeparator).map(c=>c.trim());a[1]=p.shift(),u=p,l=!0}if(i=r(s.call(this,a[1].trim(),n),n),i&&a[0]===e&&typeof i!="string")return i;typeof i!="string"&&(i=Fo(i)),i||(this.logger.warn(`missed to resolve ${a[1]} for nesting ${e}`),i=""),l&&(i=u.reduce((p,c)=>this.format(p,c,o.lng,{...o,interpolationkey:a[1].trim()}),i.trim())),e=e.replace(a[0],i),this.regexp.lastIndex=0}return e}}const Bn=t=>{let e=t.toLowerCase().trim();const r={};if(t.indexOf("(")>-1){const o=t.split("(");e=o[0].toLowerCase().trim();const a=o[1].substring(0,o[1].length-1);e==="currency"&&a.indexOf(":")<0?r.currency||(r.currency=a.trim()):e==="relativetime"&&a.indexOf(":")<0?r.range||(r.range=a.trim()):a.split(";").forEach(n=>{if(n){const[s,...u]=n.split(":"),l=u.join(":").trim().replace(/^'+|'+$/g,""),p=s.trim();r[p]||(r[p]=l),l==="false"&&(r[p]=!1),l==="true"&&(r[p]=!0),isNaN(l)||(r[p]=parseInt(l,10))}})}return{formatName:e,formatOptions:r}},Ne=t=>{const e={};return(r,o,a)=>{let i=a;a&&a.interpolationkey&&a.formatParams&&a.formatParams[a.interpolationkey]&&a[a.interpolationkey]&&(i={...i,[a.interpolationkey]:void 0});const n=o+JSON.stringify(i);let s=e[n];return s||(s=t(vt(o),a),e[n]=s),s(r)}};class Sn{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=ce.create("formatter"),this.options=e,this.formats={number:Ne((r,o)=>{const a=new Intl.NumberFormat(r,{...o});return i=>a.format(i)}),currency:Ne((r,o)=>{const a=new Intl.NumberFormat(r,{...o,style:"currency"});return i=>a.format(i)}),datetime:Ne((r,o)=>{const a=new Intl.DateTimeFormat(r,{...o});return i=>a.format(i)}),relativetime:Ne((r,o)=>{const a=new Intl.RelativeTimeFormat(r,{...o});return i=>a.format(i,o.range||"day")}),list:Ne((r,o)=>{const a=new Intl.ListFormat(r,{...o});return i=>a.format(i)})},this.init(e)}init(e){const o=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}}).interpolation;this.formatSeparator=o.formatSeparator?o.formatSeparator:o.formatSeparator||","}add(e,r){this.formats[e.toLowerCase().trim()]=r}addCached(e,r){this.formats[e.toLowerCase().trim()]=Ne(r)}format(e,r,o){let a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const i=r.split(this.formatSeparator);if(i.length>1&&i[0].indexOf("(")>1&&i[0].indexOf(")")<0&&i.find(s=>s.indexOf(")")>-1)){const s=i.findIndex(u=>u.indexOf(")")>-1);i[0]=[i[0],...i.splice(1,s)].join(this.formatSeparator)}return i.reduce((s,u)=>{const{formatName:l,formatOptions:p}=Bn(u);if(this.formats[l]){let c=s;try{const g=a&&a.formatParams&&a.formatParams[a.interpolationkey]||{},f=g.locale||g.lng||a.locale||a.lng||o;c=this.formats[l](s,f,{...p,...a,...g})}catch(g){this.logger.warn(g)}return c}else this.logger.warn(`there was no format function for ${l}`);return s},e)}}const En=(t,e)=>{t.pending[e]!==void 0&&(delete t.pending[e],t.pendingCount--)};class Fn extends Ct{constructor(e,r,o){let a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};super(),this.backend=e,this.store=r,this.services=o,this.languageUtils=o.languageUtils,this.options=a,this.logger=ce.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=a.maxParallelReads||10,this.readingCalls=0,this.maxRetries=a.maxRetries>=0?a.maxRetries:5,this.retryTimeout=a.retryTimeout>=1?a.retryTimeout:350,this.state={},this.queue=[],this.backend&&this.backend.init&&this.backend.init(o,a.backend,a)}queueLoad(e,r,o,a){const i={},n={},s={},u={};return e.forEach(l=>{let p=!0;r.forEach(c=>{const g=`${l}|${c}`;!o.reload&&this.store.hasResourceBundle(l,c)?this.state[g]=2:this.state[g]<0||(this.state[g]===1?n[g]===void 0&&(n[g]=!0):(this.state[g]=1,p=!1,n[g]===void 0&&(n[g]=!0),i[g]===void 0&&(i[g]=!0),u[c]===void 0&&(u[c]=!0)))}),p||(s[l]=!0)}),(Object.keys(i).length||Object.keys(n).length)&&this.queue.push({pending:n,pendingCount:Object.keys(n).length,loaded:{},errors:[],callback:a}),{toLoad:Object.keys(i),pending:Object.keys(n),toLoadLanguages:Object.keys(s),toLoadNamespaces:Object.keys(u)}}loaded(e,r,o){const a=e.split("|"),i=a[0],n=a[1];r&&this.emit("failedLoading",i,n,r),!r&&o&&this.store.addResourceBundle(i,n,o,void 0,void 0,{skipCopy:!0}),this.state[e]=r?-1:2,r&&o&&(this.state[e]=0);const s={};this.queue.forEach(u=>{pn(u.loaded,[i],n),En(u,e),r&&u.errors.push(r),u.pendingCount===0&&!u.done&&(Object.keys(u.loaded).forEach(l=>{s[l]||(s[l]={});const p=u.loaded[l];p.length&&p.forEach(c=>{s[l][c]===void 0&&(s[l][c]=!0)})}),u.done=!0,u.errors.length?u.callback(u.errors):u.callback())}),this.emit("loaded",s),this.queue=this.queue.filter(u=>!u.done)}read(e,r,o){let a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.retryTimeout,n=arguments.length>5?arguments[5]:void 0;if(!e.length)return n(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:e,ns:r,fcName:o,tried:a,wait:i,callback:n});return}this.readingCalls++;const s=(l,p)=>{if(this.readingCalls--,this.waitingReads.length>0){const c=this.waitingReads.shift();this.read(c.lng,c.ns,c.fcName,c.tried,c.wait,c.callback)}if(l&&p&&a<this.maxRetries){setTimeout(()=>{this.read.call(this,e,r,o,a+1,i*2,n)},i);return}n(l,p)},u=this.backend[o].bind(this.backend);if(u.length===2){try{const l=u(e,r);l&&typeof l.then=="function"?l.then(p=>s(null,p)).catch(s):s(null,l)}catch(l){s(l)}return}return u(e,r,s)}prepareLoading(e,r){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),a&&a();typeof e=="string"&&(e=this.languageUtils.toResolveHierarchy(e)),typeof r=="string"&&(r=[r]);const i=this.queueLoad(e,r,o,a);if(!i.toLoad.length)return i.pending.length||a(),null;i.toLoad.forEach(n=>{this.loadOne(n)})}load(e,r,o){this.prepareLoading(e,r,{},o)}reload(e,r,o){this.prepareLoading(e,r,{reload:!0},o)}loadOne(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const o=e.split("|"),a=o[0],i=o[1];this.read(a,i,"read",void 0,void 0,(n,s)=>{n&&this.logger.warn(`${r}loading namespace ${i} for language ${a} failed`,n),!n&&s&&this.logger.log(`${r}loaded namespace ${i} for language ${a}`,s),this.loaded(e,n,s)})}saveMissing(e,r,o,a,i){let n=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},s=arguments.length>6&&arguments[6]!==void 0?arguments[6]:()=>{};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(r)){this.logger.warn(`did not save key "${o}" as the namespace "${r}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(o==null||o==="")){if(this.backend&&this.backend.create){const u={...n,isUpdate:i},l=this.backend.create.bind(this.backend);if(l.length<6)try{let p;l.length===5?p=l(e,r,o,a,u):p=l(e,r,o,a),p&&typeof p.then=="function"?p.then(c=>s(null,c)).catch(s):s(null,p)}catch(p){s(p)}else l(e,r,o,a,s,u)}!e||!e[0]||this.store.addResource(e[0],r,o,a)}}}const Vo=()=>({debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:t=>{let e={};if(typeof t[1]=="object"&&(e=t[1]),typeof t[1]=="string"&&(e.defaultValue=t[1]),typeof t[2]=="string"&&(e.tDescription=t[2]),typeof t[2]=="object"||typeof t[3]=="object"){const r=t[3]||t[2];Object.keys(r).forEach(o=>{e[o]=r[o]})}return e},interpolation:{escapeValue:!0,format:t=>t,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}),Mo=t=>(typeof t.ns=="string"&&(t.ns=[t.ns]),typeof t.fallbackLng=="string"&&(t.fallbackLng=[t.fallbackLng]),typeof t.fallbackNS=="string"&&(t.fallbackNS=[t.fallbackNS]),t.supportedLngs&&t.supportedLngs.indexOf("cimode")<0&&(t.supportedLngs=t.supportedLngs.concat(["cimode"])),t),wt=()=>{},Ln=t=>{Object.getOwnPropertyNames(Object.getPrototypeOf(t)).forEach(r=>{typeof t[r]=="function"&&(t[r]=t[r].bind(t))})};class Ze extends Ct{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;if(super(),this.options=Mo(e),this.services={},this.logger=ce,this.modules={external:[]},Ln(this),r&&!this.isInitialized&&!e.isClone){if(!this.options.initImmediate)return this.init(e,r),this;setTimeout(()=>{this.init(e,r)},0)}}init(){var e=this;let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0;this.isInitializing=!0,typeof r=="function"&&(o=r,r={}),!r.defaultNS&&r.defaultNS!==!1&&r.ns&&(typeof r.ns=="string"?r.defaultNS=r.ns:r.ns.indexOf("translation")<0&&(r.defaultNS=r.ns[0]));const a=Vo();this.options={...a,...this.options,...Mo(r)},this.options.compatibilityAPI!=="v1"&&(this.options.interpolation={...a.interpolation,...this.options.interpolation}),r.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=r.keySeparator),r.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=r.nsSeparator);const i=p=>p?typeof p=="function"?new p:p:null;if(!this.options.isClone){this.modules.logger?ce.init(i(this.modules.logger),this.options):ce.init(null,this.options);let p;this.modules.formatter?p=this.modules.formatter:typeof Intl<"u"&&(p=Sn);const c=new Oo(this.options);this.store=new No(this.options.resources,this.options);const g=this.services;g.logger=ce,g.resourceStore=this.store,g.languageUtils=c,g.pluralResolver=new Dn(c,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),p&&(!this.options.interpolation.format||this.options.interpolation.format===a.interpolation.format)&&(g.formatter=i(p),g.formatter.init(g,this.options),this.options.interpolation.format=g.formatter.format.bind(g.formatter)),g.interpolator=new An(this.options),g.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},g.backendConnector=new Fn(i(this.modules.backend),g.resourceStore,g,this.options),g.backendConnector.on("*",function(f){for(var _=arguments.length,m=new Array(_>1?_-1:0),y=1;y<_;y++)m[y-1]=arguments[y];e.emit(f,...m)}),this.modules.languageDetector&&(g.languageDetector=i(this.modules.languageDetector),g.languageDetector.init&&g.languageDetector.init(g,this.options.detection,this.options)),this.modules.i18nFormat&&(g.i18nFormat=i(this.modules.i18nFormat),g.i18nFormat.init&&g.i18nFormat.init(this)),this.translator=new xt(this.services,this.options),this.translator.on("*",function(f){for(var _=arguments.length,m=new Array(_>1?_-1:0),y=1;y<_;y++)m[y-1]=arguments[y];e.emit(f,...m)}),this.modules.external.forEach(f=>{f.init&&f.init(this)})}if(this.format=this.options.interpolation.format,o||(o=wt),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const p=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);p.length>0&&p[0]!=="dev"&&(this.options.lng=p[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(p=>{this[p]=function(){return e.store[p](...arguments)}}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(p=>{this[p]=function(){return e.store[p](...arguments),e}});const u=Ye(),l=()=>{const p=(c,g)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),u.resolve(g),o(c,g)};if(this.languages&&this.options.compatibilityAPI!=="v1"&&!this.isInitialized)return p(null,this.t.bind(this));this.changeLanguage(this.options.lng,p)};return this.options.resources||!this.options.initImmediate?l():setTimeout(l,0),u}loadResources(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:wt;const a=typeof e=="string"?e:this.language;if(typeof e=="function"&&(o=e),!this.options.resources||this.options.partialBundledLanguages){if(a&&a.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return o();const i=[],n=s=>{if(!s||s==="cimode")return;this.services.languageUtils.toResolveHierarchy(s).forEach(l=>{l!=="cimode"&&i.indexOf(l)<0&&i.push(l)})};a?n(a):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(u=>n(u)),this.options.preload&&this.options.preload.forEach(s=>n(s)),this.services.backendConnector.load(i,this.options.ns,s=>{!s&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),o(s)})}else o(null)}reloadResources(e,r,o){const a=Ye();return typeof e=="function"&&(o=e,e=void 0),typeof r=="function"&&(o=r,r=void 0),e||(e=this.languages),r||(r=this.options.ns),o||(o=wt),this.services.backendConnector.reload(e,r,i=>{a.resolve(),o(i)}),a}use(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return e.type==="backend"&&(this.modules.backend=e),(e.type==="logger"||e.log&&e.warn&&e.error)&&(this.modules.logger=e),e.type==="languageDetector"&&(this.modules.languageDetector=e),e.type==="i18nFormat"&&(this.modules.i18nFormat=e),e.type==="postProcessor"&&Po.addPostProcessor(e),e.type==="formatter"&&(this.modules.formatter=e),e.type==="3rdParty"&&this.modules.external.push(e),this}setResolvedLanguage(e){if(!(!e||!this.languages)&&!(["cimode","dev"].indexOf(e)>-1))for(let r=0;r<this.languages.length;r++){const o=this.languages[r];if(!(["cimode","dev"].indexOf(o)>-1)&&this.store.hasLanguageSomeTranslations(o)){this.resolvedLanguage=o;break}}}changeLanguage(e,r){var o=this;this.isLanguageChangingTo=e;const a=Ye();this.emit("languageChanging",e);const i=u=>{this.language=u,this.languages=this.services.languageUtils.toResolveHierarchy(u),this.resolvedLanguage=void 0,this.setResolvedLanguage(u)},n=(u,l)=>{l?(i(l),this.translator.changeLanguage(l),this.isLanguageChangingTo=void 0,this.emit("languageChanged",l),this.logger.log("languageChanged",l)):this.isLanguageChangingTo=void 0,a.resolve(function(){return o.t(...arguments)}),r&&r(u,function(){return o.t(...arguments)})},s=u=>{!e&&!u&&this.services.languageDetector&&(u=[]);const l=typeof u=="string"?u:this.services.languageUtils.getBestMatchFromCodes(u);l&&(this.language||i(l),this.translator.language||this.translator.changeLanguage(l),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage&&this.services.languageDetector.cacheUserLanguage(l)),this.loadResources(l,p=>{n(p,l)})};return!e&&this.services.languageDetector&&!this.services.languageDetector.async?s(this.services.languageDetector.detect()):!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(s):this.services.languageDetector.detect(s):s(e),a}getFixedT(e,r,o){var a=this;const i=function(n,s){let u;if(typeof s!="object"){for(var l=arguments.length,p=new Array(l>2?l-2:0),c=2;c<l;c++)p[c-2]=arguments[c];u=a.options.overloadTranslationOptionHandler([n,s].concat(p))}else u={...s};u.lng=u.lng||i.lng,u.lngs=u.lngs||i.lngs,u.ns=u.ns||i.ns,u.keyPrefix!==""&&(u.keyPrefix=u.keyPrefix||o||i.keyPrefix);const g=a.options.keySeparator||".";let f;return u.keyPrefix&&Array.isArray(n)?f=n.map(_=>`${u.keyPrefix}${g}${_}`):f=u.keyPrefix?`${u.keyPrefix}${g}${n}`:n,a.t(f,u)};return typeof e=="string"?i.lng=e:i.lngs=e,i.ns=r,i.keyPrefix=o,i}t(){return this.translator&&this.translator.translate(...arguments)}exists(){return this.translator&&this.translator.exists(...arguments)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const o=r.lng||this.resolvedLanguage||this.languages[0],a=this.options?this.options.fallbackLng:!1,i=this.languages[this.languages.length-1];if(o.toLowerCase()==="cimode")return!0;const n=(s,u)=>{const l=this.services.backendConnector.state[`${s}|${u}`];return l===-1||l===0||l===2};if(r.precheck){const s=r.precheck(this,n);if(s!==void 0)return s}return!!(this.hasResourceBundle(o,e)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||n(o,e)&&(!a||n(i,e)))}loadNamespaces(e,r){const o=Ye();return this.options.ns?(typeof e=="string"&&(e=[e]),e.forEach(a=>{this.options.ns.indexOf(a)<0&&this.options.ns.push(a)}),this.loadResources(a=>{o.resolve(),r&&r(a)}),o):(r&&r(),Promise.resolve())}loadLanguages(e,r){const o=Ye();typeof e=="string"&&(e=[e]);const a=this.options.preload||[],i=e.filter(n=>a.indexOf(n)<0&&this.services.languageUtils.isSupportedCode(n));return i.length?(this.options.preload=a.concat(i),this.loadResources(n=>{o.resolve(),r&&r(n)}),o):(r&&r(),Promise.resolve())}dir(e){if(e||(e=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!e)return"rtl";const r=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],o=this.services&&this.services.languageUtils||new Oo(Vo());return r.indexOf(o.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;return new Ze(e,r)}cloneInstance(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:wt;const o=e.forkResourceStore;o&&delete e.forkResourceStore;const a={...this.options,...e,isClone:!0},i=new Ze(a);return(e.debug!==void 0||e.prefix!==void 0)&&(i.logger=i.logger.clone(e)),["store","services","language"].forEach(s=>{i[s]=this[s]}),i.services={...this.services},i.services.utils={hasLoadedNamespace:i.hasLoadedNamespace.bind(i)},o&&(i.store=new No(this.store.data,a),i.services.resourceStore=i.store),i.translator=new xt(i.services,a),i.translator.on("*",function(s){for(var u=arguments.length,l=new Array(u>1?u-1:0),p=1;p<u;p++)l[p-1]=arguments[p];i.emit(s,...l)}),i.init(a,r),i.translator.options=a,i.translator.backendConnector.services.utils={hasLoadedNamespace:i.hasLoadedNamespace.bind(i)},i}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const ee=Ze.createInstance();ee.createInstance=Ze.createInstance,ee.createInstance,ee.dir,ee.init,ee.loadResources,ee.reloadResources,ee.use,ee.changeLanguage,ee.getFixedT,ee.t,ee.exists,ee.setDefaultNamespace,ee.hasLoadedNamespace,ee.loadNamespaces,ee.loadLanguages;const qn={de:{translation:{bikematrix_poweredby:"Unterstützt von Bike Matrix",bikeselector_addbike_brand_desc:"Die Marke deines Fahrrads ist normalerweise in den unten hervorgehobenen Bereichen zu finden.",bikeselector_addbike_brand_label:"Marke",bikeselector_addbike_brand_select:"Deine Fahrradmarke auswählen",bikeselector_addbike_find_btn:"Mein Fahrrad finden",bikeselector_addbike_framespec_desc:"Deine Rahmenspezifikation ist normalerweise in den unten hervorgehobenen Bereichen zu finden.",bikeselector_addbike_framespec_label:"Rahmenspezifikation",bikeselector_addbike_framespec_select:"Die Rahmenspezifikation deines Fahrrads auswählen",bikeselector_addbike_model_desc:"Dein Fahrradmodell ist normalerweise in den unten hervorgehobenen Bereichen zu finden.",bikeselector_addbike_model_label:"Modell",bikeselector_addbike_model_select:"Dein Fahrradmodell auswählen",bikeselector_addbike_title:"Fahrrad hinzufügen",bikeselector_browse_back_btn:"Zurück zur Bike-Lounge",bikeselector_browse_products_label:"Kompatible Produkte shoppen",bikeselector_browse_shop_btn:"Produkte shoppen",bikeselector_browse_title:"Mit dem Einkauf beginnen!",bikeselector_confirm_brandmodelframespec_label:"Marke, Modell, Rahmenspezifikation",bikeselector_confirm_confirm_btn:"Ja, das ist mein Fahrrad!",bikeselector_confirm_framesize_label:"Rahmengröße",bikeselector_confirm_notyourride_msg:"Nicht dein Fahrrad? Um eine Änderung vorzunehmen, wähle oben ein Feld aus.",bikeselector_confirm_title:"Dein Fahrrad bestätigen",bikeselector_confirm_yearbikespec_label:"Jahr, Ausstattungsvariante",bikeselector_home_add_a_bike:"Fügen Sie unten ein Fahrrad hinzu, um loszulegen ...",bikeselector_home_add_btn:"Fahrrad hinzufügen",bikeselector_home_browse_btn:"Kompatibilität prüfen",bikeselector_home_close_btn:"Schließen",bikeselector_home_empty:"Deine Lounge ist leer!",bikeselector_home_footer_message:"Fahrradhersteller können die Spezifikationen ihrer Fahrräder ohne vorherige Ankündigung ändern. Abweichungen gegenüber der Serienausstattung können Auswirkungen auf die Kompatibilität haben.",bikeselector_home_title:"Meine Bike-Lounge",bikeselector_search_bikespec_label:"Ausstattungsvariante",bikeselector_search_bikespec_select:"Ausstattungsvariante wählen",bikeselector_search_bikespec_select_all:"Alle",bikeselector_search_confirm_btn:"Auswahl bestätigen",bikeselector_search_no_bikes_found:"Keine Fahrräder gefunden",bikeselector_search_number_bikes_found:"{{number_found}} Fahrräder gefunden",bikeselector_search_one_bike_found:"1 Fahrrad gefunden",bikeselector_search_searching:"Suche...",bikeselector_search_title:"Fahrradsuche",bikeselector_search_year_label:"Jahr",bikeselector_size_confirm_btn:"Größe bestätigen",bikeselector_size_framesize_desc:"Die Rahmengröße deines Fahrrads ist normalerweise in den unten hervorgehobenen Bereichen zu finden.",bikeselector_size_framesize_label:"Rahmengröße",bikeselector_size_framesize_one_size:"Einheitsgröße",bikeselector_size_framesize_select:"Deine Rahmengröße wählen",bikeselector_size_title:"Deine Größe wählen",compatible:"Kompatibel",compatible_check_notes:"Kompatibel – Hinweise prüfen",compatiblelist_header:"Kompatible Produkte",compatiblelist_nobikeselected:"Kein Fahrrad ausgewählt. Hier klicken, um dein Fahrrad zur Suche nach kompatiblen Teilen hinzuzufügen",compatiblelist_noresults:"Keine kompatiblen Produkte gefunden",compatiblelist_pageone:"Alle mit Ihrem Fahrrad kompatiblen Produkte finden Sie <a>hier</a>",compatiblelist_unavailable:"Die Kompatibilität für diese Produktkategorie und die von Ihnen ausgewählte Fahrradmarke ist in Kürze verfügbar!",not_compatible:"Nicht kompatibel",productcheck_nobikeselected_label:"Kompatibilität prüfen",productcheck_nobikeselected_message:"Dein Fahrrad hinzufügen, um die Kompatibilität dieses Teils zu prüfen",productcheck_questionmark:"?",category_bike:"Fahrrad",category_bottombracket:"Tretlager",category_bottombracketpart:"Tretlager-Ersatzteile",category_brakeadapter:"Bremsadapter",category_brakeadapterpart:"Bremsadapter-Ersatzteile",category_brakecaliper:"Bremssattel",category_brakecaliperpart:"Bremssattel-Ersatzteile",category_brakecaliperservicekit:"Bremssattel-Servicekit",category_brakelever:"Bremshebel",category_brakeleverpart:"Bremshebel-Ersatzteile",category_brakeleverservicekit:"Bremshebel-Servicekit",category_brakepads:"Bremsbeläge",category_brakerotor:"Bremsscheibe",category_brakerotorpart:"Bremsscheiben-Ersatzteile",category_brakesystem:"Bremssystem",category_brakesystempart:"Bremssystem-Ersatzteile",category_cassette:"Kassette",category_cassettepart:"Kassetten-Ersatzteile",category_chain:"Kette",category_chainguide:"Kettenführung",category_chainguidepart:"Kettenführung-Ersatzteile",category_chainjoiner:"Kettenschloss/-nietstift",category_chainring:"Kettenblatt",category_chainringbolt:"Kettenblattschrauben",category_crankpart:"Kurbelgarnitur-Ersatzteile",category_crankset:"Kurbelgarnitur",category_dropperlever:"Variosattelstützenhebel",category_dropperleverpart:"Variosattelstützenhebel-Ersatzteile",category_ebikebattery:"E-Bike Akku",category_ebikebatterypart:"E-Bike Akku-Ersatzteile",category_ebikecharger:"E-Bike Ladegerät",category_ebikechargerpart:"E-Bike Ladegerät-Ersatzteile",category_ebikecontrolunit:"E-Bike Bedieneinheit",category_ebikecontrolunitpart:"E-Bike Bedieneinheit-Ersatzteile",category_ebikeinterconnect:"E-Bike Kabelstrang",category_ebikeinterconnectpart:"E-Bike Kabelstrang-Ersatzteile",category_ebikemotorsystem:"E-Bike Antriebssystem",category_ebikemotorsystempart:"E-Bike Antriebssystem-Ersatzteile",category_fork:"Gabel",category_forkpart:"Gabel-Ersatzteile",category_forkservicekit:"Gabel-Servicekit",category_frame:"Rahmen",category_framepart:"Rahmen-Ersatzteile",category_frontaxle:"Vorderradachse",category_frontaxlepart:"Vorderradachsen-Ersatzteile",category_frontderailleur:"Umwerfer",category_frontderailleurpart:"Umwerfer-Ersatzteile",category_fronthub:"Vorderradnabe",category_fronthubpart:"Vorderradnaben-Ersatzteile",category_frontwheel:"Vorderrad",category_grips:"Griffe",category_gripspart:"Griff-Ersatzteile",category_handlebar:"Lenker",category_headset:"Steuersatz",category_headsetpart:"Steuersatz-Ersatzteile",category_nipple:"Speichennippel",category_pedals:"Pedale",category_pedalspart:"Pedal-Ersatzteil",category_rearaxle:"Hinterradachse",category_rearaxlepart:"Hinterradachsen-Ersatzteile",category_rearderailleur:"Schaltwerk",category_rearderailleurpart:"Schaltwerk-Ersatzteile",category_rearhub:"Hinterradnabe",category_rearhubpart:"Hinterradnaben-Ersatzteile",category_rearshock:"Hinterbaudämpfer",category_rearshockpart:"Hinterbaudämpfer-Ersatzteile",category_rearshockservicekit:"Hinterbaudämpfer-Servicekit",category_rearwheel:"Hinterrad",category_rim:"Felge",category_saddle:"Sattel",category_seatpost:"Sattelstütze",category_seatpostclamp:"Sattelstützenklemme",category_seatpostclamppart:"Sattelstützenklemmen-Ersatzteile",category_seatpostpart:"Sattelstützen-Ersatzteile",category_seatpostservicekit:"Sattelstützen-Servicekit",category_shiftadapter:"Schaltadapter",category_shiftadapterpart:"Schaltadapter-Ersatzteile",category_shiftbrakecombo:"Schalt-/Bremshebel",category_shiftbrakecombopart:"Schalt-/Bremshebel-Ersatzteile",category_shifter:"Schalthebel",category_shifterpart:"Schalthebel-Ersatzteile",category_spoke:"Speiche",category_stem:"Vorbau",category_stempart:"Vorbau-Ersatzteile",category_tube:"Schlauch",category_tyre:"Reifen",category_wheelset:"Laufradsatz",checksku_message_nobikefound:"Es konnte kein Fahrrad mit der angegebenen Fahrradschlüsselnummer gefunden werden",checksku_message_nocompatibilityinfo:"Keine Informationen zur Kompatibilität",checksku_message_noproductfound:"Nous n’avons pas pu trouver de composant avec le code produit/code-barre/numéro de composant fourni",checksku_message_notcompatible:"Nicht kompatibel",checksku_warning_unabletoperformcheck:"Es konnte keine Prüfung der Kompatibilität durchgeführt werden. Die Kompatibilität muss persönlich überprüft werden."}},it:{translation:{bikematrix_poweredby:"Alimentato da Bike Matrix",bikeselector_addbike_brand_desc:"In genere, la marca della tua bici si trova nelle aree evidenziate di seguito.",bikeselector_addbike_brand_label:"Marca",bikeselector_addbike_brand_select:"Seleziona la marca della tua bici",bikeselector_addbike_find_btn:"Trova la mia bici",bikeselector_addbike_framespec_desc:"In genere, le informazioni sulla serie del telaio della tua bici si trovano nelle aree evidenziate di seguito.",bikeselector_addbike_framespec_label:"Serie del telaio",bikeselector_addbike_framespec_select:"Seleziona la serie del telaio della tua bici",bikeselector_addbike_model_desc:"In genere, il modello della tua bici si trova nelle aree evidenziate di seguito.",bikeselector_addbike_model_label:"Modello",bikeselector_addbike_model_select:"Seleziona il modello della tua bici",bikeselector_addbike_title:"Aggiungi una bici",bikeselector_browse_back_btn:"Torna alla pagina Le mie bici",bikeselector_browse_products_label:"Acquista i prodotti compatibili",bikeselector_browse_shop_btn:"Acquista i prodotti",bikeselector_browse_title:"Inizia l’acquisto!",bikeselector_confirm_brandmodelframespec_label:"Marca, modello, serie del telaio",bikeselector_confirm_confirm_btn:"Sì, questa è la mia bici!",bikeselector_confirm_framesize_label:"Misura del telaio",bikeselector_confirm_notyourride_msg:"Non è la tua bici? Seleziona un campo sopra per apportare una modifica.",bikeselector_confirm_title:"Conferma la tua bici",bikeselector_confirm_yearbikespec_label:"Anno, versione della bici",bikeselector_home_add_a_bike:"Aggiungi una bici qui sotto per iniziare...",bikeselector_home_add_btn:"Aggiungi una bici",bikeselector_home_browse_btn:"Sfoglia compatibilità",bikeselector_home_close_btn:"Chiudi",bikeselector_home_empty:"Il tuo salotto è vuoto!",bikeselector_home_footer_message:"I produttori delle bici possono modificare le specifiche senza preavviso. Eventuali differenze rispetto alle specifiche di serie possono condizionare la compatibilità.",bikeselector_home_title:"Le mie bici",bikeselector_search_bikespec_label:"Versione della bici",bikeselector_search_bikespec_select:"Seleziona la versione della bici",bikeselector_search_bikespec_select_all:"Tutti",bikeselector_search_confirm_btn:"Conferma la scelta",bikeselector_search_no_bikes_found:"Nessuna bici trovata",bikeselector_search_number_bikes_found:"{{number_found}} bici trovate",bikeselector_search_one_bike_found:"1 bici trovata",bikeselector_search_searching:"Ricerca...",bikeselector_search_title:"Ricerca bici",bikeselector_search_year_label:"Anno",bikeselector_size_confirm_btn:"Conferma la misura",bikeselector_size_framesize_desc:"In genere, la misura del telaio della tua bici si trova nelle aree evidenziate di seguito.",bikeselector_size_framesize_label:"Misura del telaio",bikeselector_size_framesize_one_size:"Taglia unica",bikeselector_size_framesize_select:"Seleziona la misura del tuo telaio",bikeselector_size_title:"Seleziona la tua misura",compatible:"Compatibile",compatible_check_notes:"Compatibile: controlla le note",compatiblelist_header:"Prodotti compatibili",compatiblelist_nobikeselected:"Nessuna bici selezionata. Clicca qui per aggiungere la tua bici e verificare la compatibilità dei componenti",compatiblelist_noresults:"Nessun prodotto compatibile trovato",compatiblelist_pageone:"Tutti i prodotti compatibili con la tua bici possono essere visualizzati <a>qui</a>",compatiblelist_unavailable:"La compatibilità per questa categoria di prodotto, per la marca di bici selezionata, sarà presto disponibile!",not_compatible:"Non compatibile",productcheck_nobikeselected_label:"Controlla compatibilità",productcheck_nobikeselected_message:"Aggiungi la tua bici per verificare se questo componente è idoneo",productcheck_questionmark:"?",category_bike:"Bici",category_bottombracket:"Movimento centrale",category_bottombracketpart:"Componente movimento centrale",category_brakeadapter:"Adattatore freno",category_brakeadapterpart:"Componente adattatore freno",category_brakecaliper:"Pinza freno",category_brakecaliperpart:"Componente pinza freno",category_brakecaliperservicekit:"Kit manutenzione pinza freno",category_brakelever:"Leva freno",category_brakeleverpart:"Componente leva freno",category_brakeleverservicekit:"Kit manutenzione leva freno",category_brakepads:"Pastiglie/pattini freno",category_brakerotor:"Rotore freno",category_brakerotorpart:"Componente rotore freno",category_brakesystem:"Impianto frenante",category_brakesystempart:"Componente impianto frenante",category_cassette:"Cassetta",category_cassettepart:"Componente cassetta",category_chain:"Catena",category_chainguide:"Guidacatena",category_chainguidepart:"Componente guidacatena",category_chainjoiner:"Falsamaglia",category_chainring:"Corona",category_chainringbolt:"Vite corona",category_crankpart:"Componente guarnitura",category_crankset:"Guarnitura",category_dropperlever:"Leva reggisella telescopico",category_dropperleverpart:"Componente leva reggisella telescopico",category_ebikebattery:"Batteria eBike",category_ebikebatterypart:"Componente batteria eBike",category_ebikecharger:"Caricabatteria eBike",category_ebikechargerpart:"Componente caricabatteria eBike",category_ebikecontrolunit:"Unità di controllo eBike",category_ebikecontrolunitpart:"Componente unità di controllo eBike",category_ebikeinterconnect:"Interconnessione eBike",category_ebikeinterconnectpart:"Componente interconnessione eBike",category_ebikemotorsystem:"Sistema motore eBike",category_ebikemotorsystempart:"Componente sistema motore eBike",category_fork:"Forcella",category_forkpart:"Componente forcella",category_forkservicekit:"Kit di manutenzione forcella",category_frame:"Telaio",category_framepart:"Componente telaio",category_frontaxle:"Perno anteriore",category_frontaxlepart:"Componente perno anteriore",category_frontderailleur:"Deragliatore anteriore",category_frontderailleurpart:"Componente deragliatore anteriore",category_fronthub:"Mozzo anteriore",category_fronthubpart:"Componente mozzo anteriore",category_frontwheel:"Ruota anteriore",category_grips:"Manopole",category_gripspart:"Componente manopole",category_handlebar:"Manubrio",category_headset:"Serie sterzo",category_headsetpart:"Componente serie sterzo",category_nipple:"Nipplo",category_pedals:"Pedali",category_pedalspart:"Componente pedali",category_rearaxle:"Perno posteriore",category_rearaxlepart:"Componente perno posteriore",category_rearderailleur:"Deragliatore posteriore",category_rearderailleurpart:"Componente deragliatore posteriore",category_rearhub:"Mozzo posteriore",category_rearhubpart:"Componente mozzo posteriore",category_rearshock:"Sospensione posteriore",category_rearshockpart:"Componente sospensione posteriore",category_rearshockservicekit:"Kit manutenzione sospensione posteriore",category_rearwheel:"Ruota posteriore",category_rim:"Cerchio",category_saddle:"Sella",category_seatpost:"Reggisella",category_seatpostclamp:"Morsetto reggisella",category_seatpostclamppart:"Componente morsetto reggisella",category_seatpostpart:"Componente reggisella",category_seatpostservicekit:"Kit manutenzione reggisella",category_shiftadapter:"Adattatore cambio",category_shiftadapterpart:"Componente adattatore cambio",category_shiftbrakecombo:"Comando integrato freno/cambio",category_shiftbrakecombopart:"Componente comando integrato freno/cambio",category_shifter:"Comando cambio",category_shifterpart:"Componente comando cambio",category_spoke:"Raggio",category_stem:"Attacco manubrio",category_stempart:"Componente attacco manubrio",category_tube:"Camera d'aria",category_tyre:"Pneumatico",category_wheelset:"Set ruote",checksku_message_nobikefound:"Impossibile trovare una bici con la chiave di ricerca fornita",checksku_message_nocompatibilityinfo:"Nessuna informazione sulla compatibilità",checksku_message_noproductfound:"Impossibile trovare il componente con lo SKU/codice a barre/codice componente fornito",checksku_message_notcompatible:"Non compatibile",checksku_warning_unabletoperformcheck:"Impossibile eseguire il controllo di compatibilità. Verificare manualmente la compatibilità."}},nl:{translation:{bikematrix_poweredby:"Mogelijk gemaakt door Bike Matrix",bikeselector_addbike_brand_desc:"Het merk van uw fiets kunt u meestal vinden in de hieronder gemarkeerde gebieden.",bikeselector_addbike_brand_label:"Merk",bikeselector_addbike_brand_select:"Selecteer het merk van uw fiets",bikeselector_addbike_find_btn:"Vind mijn fiets",bikeselector_addbike_framespec_desc:"De framespecificaties van uw fiets kunt u meestal vinden in de hieronder gemarkeerde gebieden.",bikeselector_addbike_framespec_label:"Framespecificaties",bikeselector_addbike_framespec_select:"Selecteer de framespecificaties van uw fiets",bikeselector_addbike_model_desc:"Het model van uw fiets kunt u meestal vinden in de hieronder gemarkeerde gebieden.",bikeselector_addbike_model_label:"Model",bikeselector_addbike_model_select:"Selecteer het model van uw fiets",bikeselector_addbike_title:"Fiets toevoegen",bikeselector_browse_back_btn:"Terug naar Fietsenrek",bikeselector_browse_products_label:"Bekijk compatibele producten",bikeselector_browse_shop_btn:"Bekijk producten",bikeselector_browse_title:"Begin met winkelen!",bikeselector_confirm_brandmodelframespec_label:"Merk, model, framespecificaties",bikeselector_confirm_confirm_btn:"Ja, dat is mijn fiets!",bikeselector_confirm_framesize_label:"Framemaat",bikeselector_confirm_notyourride_msg:"Niet uw fiets? Selecteer hierboven een veld om te wijzigen.",bikeselector_confirm_title:"Bevestig uw fiets",bikeselector_confirm_yearbikespec_label:"Jaar, fietsspecificaties",bikeselector_home_add_a_bike:"Voeg hieronder een fiets toe om aan de slag te gaan...",bikeselector_home_add_btn:"Fiets toevoegen",bikeselector_home_browse_btn:"Compatibiliteit bekijken",bikeselector_home_close_btn:"Sluiten",bikeselector_home_empty:"Je lounge is leeg!",bikeselector_home_footer_message:"Fietsfabrikanten kunnen de specificaties van fietsen zonder kennisgeving wijzigen. De compatibiliteit kan veranderen door verschillen in de specificaties van de voorraad.",bikeselector_home_title:"Mijn Fietsenrek",bikeselector_search_bikespec_label:"Fietsspecificaties",bikeselector_search_bikespec_select:"Specificatieniveau selecteren",bikeselector_search_bikespec_select_all:"Alles",bikeselector_search_confirm_btn:"Selectie bevestigen",bikeselector_search_no_bikes_found:"Geen fietsen gevonden",bikeselector_search_number_bikes_found:"{{number_found}} fietsen gevonden",bikeselector_search_one_bike_found:"1 fiets gevonden",bikeselector_search_searching:"Zoeken...",bikeselector_search_title:"Fiets zoeken",bikeselector_search_year_label:"Jaar",bikeselector_size_confirm_btn:"Maat bevestigen",bikeselector_size_framesize_desc:"De framemaat van uw fiets kunt u meestal vinden in de hieronder gemarkeerde gebieden.",bikeselector_size_framesize_label:"Framemaat",bikeselector_size_framesize_one_size:"Eén maat",bikeselector_size_framesize_select:"Selecteer uw framemaat",bikeselector_size_title:"Selecteer de maat",compatible:"Compatibel",compatible_check_notes:"Compatibel - Controleer opmerkingen",compatiblelist_header:"Compatibele producten",compatiblelist_nobikeselected:"Geen fiets geselecteerd. Klik hier om uw fiets toe te voegen voor het opzoeken van compatibele onderdelen",compatiblelist_noresults:"Geen compatibele producten gevonden",compatiblelist_pageone:"Alle producten die compatibel zijn met uw fiets kunt u <a>hier</a> bekijken.",compatiblelist_unavailable:"Compatibiliteit voor deze productcategorie, voor het door u geselecteerde fietsmerk, komt binnenkort!",not_compatible:"Niet compatibel",productcheck_nobikeselected_label:"Compatibiliteit controleren",productcheck_nobikeselected_message:"Voeg uw fiets toe om te controleren of dit onderdeel erop past",productcheck_questionmark:"?",category_bike:"Fiets",category_bottombracket:"Trapas",category_bottombracketpart:"Trapasonderdeel",category_brakeadapter:"Remadapter",category_brakeadapterpart:"Remadapteronderdeel",category_brakecaliper:"Remklauw",category_brakecaliperpart:"Remklauwonderdeel",category_brakecaliperservicekit:"Servicekit remklauw",category_brakelever:"Remhendel",category_brakeleverpart:"Remhendelonderdeel",category_brakeleverservicekit:"Servicekit remhendel",category_brakepads:"Remblokken",category_brakerotor:"Remschijf",category_brakerotorpart:"Remschijfonderdeel",category_brakesystem:"Remsysteem",category_brakesystempart:"Remsysteemonderdeel",category_cassette:"Cassette",category_cassettepart:"Cassetteonderdeel",category_chain:"Ketting",category_chainguide:"Kettinggeleider",category_chainguidepart:"Kettinggeleideronderdeel",category_chainjoiner:"Verbindingsschakel",category_chainring:"Kettingblad",category_chainringbolt:"Kettingbladbout",category_crankpart:"Crankonderdeel",category_crankset:"Crankset",category_dropperlever:"Dropperhendel",category_dropperleverpart:"Dropperhendelonderdeel",category_ebikebattery:"Batterij elektrische fiets",category_ebikebatterypart:"Batterijonderdeel van elektrische fiets",category_ebikecharger:"Oplader elektrische fiets",category_ebikechargerpart:"Opladeronderdeel van elektrische fiets",category_ebikecontrolunit:"Bediening elektrische fiets",category_ebikecontrolunitpart:"Bedieningsonderdeel van elektrische fiets",category_ebikeinterconnect:"Verbinding elektrische fiets",category_ebikeinterconnectpart:"Verbindingsonderdeel van elektrische fiets",category_ebikemotorsystem:"Motor elektrische fiets",category_ebikemotorsystempart:"Motoronderdeel van elektrische fiets",category_fork:"Voorvork",category_forkpart:"Voorvorkonderdeel",category_forkservicekit:"Servicekit voorvork",category_frame:"Frame",category_framepart:"Frameonderdeel",category_frontaxle:"Vooras",category_frontaxlepart:"Voorasonderdeel",category_frontderailleur:"Voorderailleur",category_frontderailleurpart:"Voorderailleuronderdeel",category_fronthub:"Voornaaf",category_fronthubpart:"Voornaafonderdeel",category_frontwheel:"Voorwiel",category_grips:"Handvatten",category_gripspart:"Handvatonderdeel",category_handlebar:"Stuur",category_headset:"Balhoofdstel",category_headsetpart:"Balhoofdonderdeel",category_nipple:"Spaaknippel",category_pedals:"Pedalen",category_pedalspart:"Pedaalonderdeel",category_rearaxle:"Achteras",category_rearaxlepart:"Achterasonderdeel",category_rearderailleur:"Achterderailleur",category_rearderailleurpart:"Achterderailleuronderdeel",category_rearhub:"Achternaaf",category_rearhubpart:"Achternaafonderdeel",category_rearshock:"Schokdemper voor achterwiel",category_rearshockpart:"Schokdemperonderdeel voor achterwiel",category_rearshockservicekit:"Servicekit schokdemper voor achterwiel",category_rearwheel:"Achterwiel",category_rim:"Velg",category_saddle:"Zadel",category_seatpost:"Zadelpen",category_seatpostclamp:"Zadelpenklem",category_seatpostclamppart:"Zadelpenklemonderdeel",category_seatpostpart:"Zadelpenonderdeel",category_seatpostservicekit:"Servicekit zadelpen",category_shiftadapter:"Versnellingsadapter",category_shiftadapterpart:"Versnellingsadapteronderdeel",category_shiftbrakecombo:"Schakel-/remhendel",category_shiftbrakecombopart:"Schakel-/remhendelonderdeel",category_shifter:"Shifter",category_shifterpart:"Shifteronderdeel",category_spoke:"Spaak",category_stem:"Stuurpen",category_stempart:"Stuurpenonderdeel",category_tube:"Binnenband",category_tyre:"Buitenband",category_wheelset:"Wielset",checksku_message_nobikefound:"Kan geen fiets vinden met het opgegeven Fietsnummer",checksku_message_nocompatibilityinfo:"Geen informatie over compatibiliteit",checksku_message_noproductfound:"Kan geen onderdeel vinden met de opgegeven SKU/Barcode/Onderdeelnummer",checksku_message_notcompatible:"Niet compatibel",checksku_warning_unabletoperformcheck:"Kan de compatibiliteitscontrole niet uitvoeren. Controleer de compatibiliteit handmatig."}},"en-GB":{translation:{bikematrix_poweredby:"Powered by Bike Matrix",bikeselector_addbike_brand_desc:"Your bike brand is typically found in the areas highlighted below.",bikeselector_addbike_brand_label:"Brand",bikeselector_addbike_brand_select:"Select your bike brand",bikeselector_addbike_find_btn:"Find my ride",bikeselector_addbike_framespec_desc:"Your bike frame spec is typically found in the areas highlighted below.",bikeselector_addbike_framespec_label:"Frame Spec",bikeselector_addbike_framespec_select:"Select your bike's frame spec",bikeselector_addbike_model_desc:"Your bike model is typically found in the areas highlighted below.",bikeselector_addbike_model_label:"Model",bikeselector_addbike_model_select:"Select your bike model",bikeselector_addbike_title:"Add A Bike",bikeselector_browse_back_btn:"Back to bike Lounge",bikeselector_browse_products_label:"Shop for compatible products",bikeselector_browse_shop_btn:"Shop Products",bikeselector_browse_title:"Start Shopping!",bikeselector_confirm_brandmodelframespec_label:"Brand, Model, Frame Series",bikeselector_confirm_confirm_btn:"Yep, that's my ride!",bikeselector_confirm_framesize_label:"Frame Size",bikeselector_confirm_notyourride_msg:"Not your ride? Select a field above to make a change.",bikeselector_confirm_title:"Confirm Your Ride",bikeselector_confirm_yearbikespec_label:"Year, Bike Spec",bikeselector_home_add_a_bike:"Add a bike below to get started...",bikeselector_home_add_btn:"Add A Bike",bikeselector_home_browse_btn:"Browse Compatiblity",bikeselector_home_close_btn:"Close",bikeselector_home_empty:"Your lounge is empty!",bikeselector_home_footer_message:"Bike manufacturers may change bike specifications without notice. Differences from stock specifications can impact compatibility results.",bikeselector_home_title:"My Bike Lounge",bikeselector_search_bikespec_label:"Bike Spec",bikeselector_search_bikespec_select:"Select spec level",bikeselector_search_bikespec_select_all:"All",bikeselector_search_confirm_btn:"Confirm Selection",bikeselector_search_no_bikes_found:"No bikes found",bikeselector_search_number_bikes_found:"{{number_found}} bikes found",bikeselector_search_one_bike_found:"1 bike found",bikeselector_search_searching:"Searching...",bikeselector_search_title:"Bike Search",bikeselector_search_year_label:"Year",bikeselector_size_confirm_btn:"Confirm Size",bikeselector_size_framesize_desc:"Your bike frame size is typically found in the areas highlighted below.",bikeselector_size_framesize_label:"Frame Size",bikeselector_size_framesize_one_size:"One Size",bikeselector_size_framesize_select:"Select your frame size",bikeselector_size_title:"Select Your Size",compatible:"Compatible",compatible_check_notes:"Compatible - Check Notes",compatiblelist_header:"Compatible Products",compatiblelist_nobikeselected:"No bike selected. Click here to add your ride to check for compatible parts",compatiblelist_noresults:"No compatible products found",compatiblelist_pageone:"All products compatible with your bike can be seen <a>here</a>.",compatiblelist_unavailable:"Compatibility for this product category for your selected bike brand is coming soon!",not_compatible:"Not Compatible",productcheck_nobikeselected_label:"Check Compatiblity",productcheck_nobikeselected_message:"Add your ride to check if this part fits",productcheck_questionmark:"?",category_bike:"Bike",category_bottombracket:"Bottom Bracket",category_bottombracketpart:"Bottom Bracket Part",category_brakeadapter:"Brake Adapter",category_brakeadapterpart:"Brake Adapter Part",category_brakecaliper:"Brake Caliper",category_brakecaliperpart:"Brake Caliper Part",category_brakecaliperservicekit:"Brake Caliper Service Kit",category_brakelever:"Brake Lever",category_brakeleverpart:"Brake Lever Part",category_brakeleverservicekit:"Brake Lever Service Kit",category_brakepads:"Brake Pads",category_brakerotor:"Brake Rotor",category_brakerotorpart:"Brake Rotor Part",category_brakesystem:"Brake System",category_brakesystempart:"Brake System Part",category_cassette:"Cassette",category_cassettepart:"Cassette Part",category_chain:"Chain",category_chainguide:"Chainguide",category_chainguidepart:"Chainguide Part",category_chainjoiner:"Chain Joiner",category_chainring:"Chainring",category_chainringbolt:"Chainring Bolt",category_crankpart:"Crank Part",category_crankset:"Crankset",category_dropperlever:"Dropper Lever",category_dropperleverpart:"Dropper Lever Part",category_ebikebattery:"eBike Battery",category_ebikebatterypart:"eBike Battery Part",category_ebikecharger:"eBike Charger",category_ebikechargerpart:"eBike Charger Part",category_ebikecontrolunit:"eBike Control Unit",category_ebikecontrolunitpart:"eBike Control Unit Part",category_ebikeinterconnect:"eBike Interconnect",category_ebikeinterconnectpart:"eBike Interconnect Part",category_ebikemotorsystem:"eBike Motor System",category_ebikemotorsystempart:"eBike Motor System Part",category_fork:"Fork",category_forkpart:"Fork Part",category_forkservicekit:"Fork Service Kit",category_frame:"Frame",category_framepart:"Frame Part",category_frontaxle:"Front Axle",category_frontaxlepart:"Front Axle Part",category_frontderailleur:"Front Derailleur",category_frontderailleurpart:"Front Derailleur Part",category_fronthub:"Front Hub",category_fronthubpart:"Front Hub Part",category_frontwheel:"Front Wheel",category_grips:"Grips",category_gripspart:"Grips Part",category_handlebar:"Handlebar",category_headset:"Headset",category_headsetpart:"Headset Part",category_nipple:"Nipple",category_pedals:"Pedals",category_pedalspart:"Pedals Part",category_rearaxle:"Rear Axle",category_rearaxlepart:"Rear Axle Part",category_rearderailleur:"Rear Derailleur",category_rearderailleurpart:"Rear Derailleur Part",category_rearhub:"Rear Hub",category_rearhubpart:"Rear Hub Part",category_rearshock:"Rear Shock",category_rearshockpart:"Rear Shock Part",category_rearshockservicekit:"Rear Shock Service Kit",category_rearwheel:"Rear Wheel",category_rim:"Rim",category_saddle:"Saddle",category_seatpost:"Seat Post",category_seatpostclamp:"Seat Post Clamp",category_seatpostclamppart:"Seat Post Clamp Part",category_seatpostpart:"Seat Post Part",category_seatpostservicekit:"Seat Post Service Kit",category_shiftadapter:"Shift Adapter",category_shiftadapterpart:"Shift Adapter Part",category_shiftbrakecombo:"Shift Brake Combo",category_shiftbrakecombopart:"Shift Brake Combo Part",category_shifter:"Shifter",category_shifterpart:"Shifter Part",category_spoke:"Spoke",category_stem:"Stem",category_stempart:"Stem Part",category_tube:"Tube",category_tyre:"Tyre",category_wheelset:"Wheelset",checksku_message_nobikefound:"Could not find a bike with the provided Bike Key",checksku_message_nocompatibilityinfo:"No Compatibility Information",checksku_message_noproductfound:"Could not find a part with the provided SKU/Barcode/Part No",checksku_message_notcompatible:"Not Compatible",checksku_warning_unabletoperformcheck:"Unable to perform compatibility check. Please check the compatibility manually."}},fr:{translation:{bikematrix_poweredby:"Une solution Bike Matrix",bikeselector_addbike_brand_desc:"Votre marque de vélo se trouve généralement dans les zones mises en évidence ci-dessous.",bikeselector_addbike_brand_label:"Marque",bikeselector_addbike_brand_select:"Sélectionnez la marque de votre vélo",bikeselector_addbike_find_btn:"Trouver mon vélo",bikeselector_addbike_framespec_desc:"Votre version de cadre de vélo se trouve généralement dans les zones mises en évidence ci-dessous.",bikeselector_addbike_framespec_label:"Version du cadre",bikeselector_addbike_framespec_select:"Sélectionnez votre version de cadre",bikeselector_addbike_model_desc:"Votre modèle de vélo se trouve généralement dans les zones mises en évidence ci-dessous.",bikeselector_addbike_model_label:"Modèle",bikeselector_addbike_model_select:"Sélectionnez votre modèle de vélo",bikeselector_addbike_title:"Ajouter un vélo",bikeselector_browse_back_btn:"Retourner à mes vélos",bikeselector_browse_products_label:"Voir les produits compatibles",bikeselector_browse_shop_btn:"Voir les produits",bikeselector_browse_title:"Commencer vos achats",bikeselector_confirm_brandmodelframespec_label:"Marque, modèle, version du cadre",bikeselector_confirm_confirm_btn:"Oui, c’est mon vélo !",bikeselector_confirm_framesize_label:"Taille du cadre",bikeselector_confirm_notyourride_msg:"Ce n’est pas votre vélo ? Sélectionnez un champ ci-dessus pour effectuer une modification.",bikeselector_confirm_title:"Confirmer votre vélo",bikeselector_confirm_yearbikespec_label:"Année, version du vélo",bikeselector_home_add_a_bike:"Ajoutez un vélo ci-dessous pour commencer...",bikeselector_home_add_btn:"Ajouter un vélo",bikeselector_home_browse_btn:"Parcourir les compatibilités",bikeselector_home_close_btn:"Fermer",bikeselector_home_empty:"Votre salon est vide !",bikeselector_home_footer_message:"Les fabricants de vélo peuvent changer les caractéristiques des vélos sans préavis. Les différences par rapport aux spécifications d’origine peuvent avoir un impact sur les résultats de compatibilité.",bikeselector_home_title:"Mes vélos",bikeselector_search_bikespec_label:"Version du vélo",bikeselector_search_bikespec_select:"Sélectionnez la version du vélo",bikeselector_search_bikespec_select_all:"Tous",bikeselector_search_confirm_btn:"Confirmer la sélection",bikeselector_search_no_bikes_found:"Aucun vélo trouvé",bikeselector_search_number_bikes_found:"{{number_found}} bikes found",bikeselector_search_one_bike_found:"1 vélo trouvé",bikeselector_search_searching:"Recherche...",bikeselector_search_title:"Recherche du vélo",bikeselector_search_year_label:"Année",bikeselector_size_confirm_btn:"Confirmer la taille",bikeselector_size_framesize_desc:"La taille de votre cadre se trouve généralement dans les zones mises en évidence ci-dessous.",bikeselector_size_framesize_label:"Taille du cadre",bikeselector_size_framesize_one_size:"Taille unique",bikeselector_size_framesize_select:"Sélectionnez votre taille de cadre",bikeselector_size_title:"Sélectionnez votre taille",compatible:"Compatible",compatible_check_notes:"Compatible-vérifier les notes",compatiblelist_header:"Produits compatibles",compatiblelist_nobikeselected:"Aucun vélo sélectionné. Cliquez ici pour ajouter votre vélo et voir les composants compatibles",compatiblelist_noresults:"Aucun produit compatible trouvé",compatiblelist_pageone:"Tous les produits compatibles avec votre vélo peuvent être consultés <a>ici</a>",compatiblelist_unavailable:"La compatibilité pour cette catégorie de produits, pour la marque de vélo que vous avez sélectionnée, sera bientôt disponible !",not_compatible:"Non compatible",productcheck_nobikeselected_label:"Vérifier la compatibilité",productcheck_nobikeselected_message:"Ajoutez votre vélo pour vérifier si ce composant est compatible",productcheck_questionmark:"?",category_bike:"Vélo",category_bottombracket:"Boîtier de pédalier",category_bottombracketpart:"Pièce de boîtier de pédalier",category_brakeadapter:"Adaptateur pour frein",category_brakeadapterpart:"Pièce d’adaptateur pour frein",category_brakecaliper:"Étrier de frein",category_brakecaliperpart:"Pièce d’étrier de frein",category_brakecaliperservicekit:"Kit d’entretien d’étrier de frein",category_brakelever:"Levier de frein",category_brakeleverpart:"Pièce de levier de frein",category_brakeleverservicekit:"Kit d’entretien de levier de frein",category_brakepads:"Patins/plaquettes de frein",category_brakerotor:"Disque de frein",category_brakerotorpart:"Pièce de disque de frein",category_brakesystem:"Système de freinage",category_brakesystempart:"Pièce de système de freinage",category_cassette:"Cassette",category_cassettepart:"Pièce de cassette",category_chain:"Chaîne",category_chainguide:"Guide-chaîne",category_chainguidepart:"Pièce de guide-chaîne",category_chainjoiner:"Attache rapide",category_chainring:"Plateau",category_chainringbolt:"Écrou de plateau",category_crankpart:"Pièce de pédalier",category_crankset:"Pédalier",category_dropperlever:"Levier de tige de selle télescopique",category_dropperleverpart:"Pièce de levier de tige de selle télescopique",category_ebikebattery:"Batterie ebike",category_ebikebatterypart:"Pièce batterie ebike",category_ebikecharger:"Chargeur ebike",category_ebikechargerpart:"Pièce de chargeur ebike",category_ebikecontrolunit:"Commande de contrôle ebike",category_ebikecontrolunitpart:"Pièce de commande de contrôle ebike",category_ebikeinterconnect:"Câbles de connexion ebike",category_ebikeinterconnectpart:"Pièce de câbles connexion ebike",category_ebikemotorsystem:"Système moteur ebike",category_ebikemotorsystempart:"Pièce système moteur ebike",category_fork:"Fourche",category_forkpart:"Pièce de fourche",category_forkservicekit:"Kit d’entretien de fourche",category_frame:"Cadre",category_framepart:"Pièce de cadre",category_frontaxle:"Axe avant",category_frontaxlepart:"Pièce d’axe avant",category_frontderailleur:"Dérailleur avant",category_frontderailleurpart:"Pièce de dérailleur avant",category_fronthub:"Moyeu avant",category_fronthubpart:"Pièce de moyeu avant",category_frontwheel:"Roue avant",category_grips:"Poignées",category_gripspart:"Pièce de poignées",category_handlebar:"Guidon",category_headset:"Jeu de direction",category_headsetpart:"Pièce de jeu de direction",category_nipple:"Écrou de rayon",category_pedals:"Pédales",category_pedalspart:"Pièce de pédales",category_rearaxle:"Axe arrière",category_rearaxlepart:"Pièce d’axe arrière",category_rearderailleur:"Dérailleur arrière",category_rearderailleurpart:"Pièce de dérailleur arrière",category_rearhub:"Moyeu arrière",category_rearhubpart:"Pièce de moyeu arrière",category_rearshock:"Amortisseur arrière",category_rearshockpart:"Pièce d’amortisseur arrière",category_rearshockservicekit:"Kit d’entretien pour amortisseur arrière",category_rearwheel:"Roue arrière",category_rim:"Jante",category_saddle:"Selle",category_seatpost:"Tige de selle",category_seatpostclamp:"Collier de serrage pour tige de selle",category_seatpostclamppart:"Pièce de collier de serrage pour tige de selle",category_seatpostpart:"Pièce de tige de selle",category_seatpostservicekit:"Kit d’entretien de tige de selle",category_shiftadapter:"Adaptateur de commande de vitesse",category_shiftadapterpart:"Pièce d’adaptateur de commande de vitesse",category_shiftbrakecombo:"Combo levier manette",category_shiftbrakecombopart:"Pièce de combo levier manette",category_shifter:"Commande de vitesse",category_shifterpart:"Pièce de commande de vitesse",category_spoke:"Rayon",category_stem:"Potence",category_stempart:"Pièce de potence",category_tube:"Chambre à air",category_tyre:"Pneu",category_wheelset:"Paire de roues",checksku_message_nobikefound:"Nous n’avons pas pu trouver de vélo avec le Code Vélo fourni",checksku_message_nocompatibilityinfo:"Pas d’information concernant la compatibilité",checksku_message_noproductfound:"Nous n’avons pas pu trouver de composant avec le code produit/code-barre/numéro de composant fourni",checksku_message_notcompatible:"Non compatible",checksku_warning_unabletoperformcheck:"Impossible de vérifier la compatibilité. Veuillez vérifier la compatibilité manuellement."}},"en-US":{translation:{bikematrix_poweredby:"Powered by Bike Matrix",bikeselector_addbike_brand_desc:"Your bike brand is typically found in the areas highlighted below.",bikeselector_addbike_brand_label:"Brand",bikeselector_addbike_brand_select:"Select your bike brand",bikeselector_addbike_find_btn:"Find my ride",bikeselector_addbike_framespec_desc:"Your bike frame spec is typically found in the areas highlighted below.",bikeselector_addbike_framespec_label:"Frame Spec",bikeselector_addbike_framespec_select:"Select your bike's frame spec",bikeselector_addbike_model_desc:"Your bike model is typically found in the areas highlighted below.",bikeselector_addbike_model_label:"Model",bikeselector_addbike_model_select:"Select your bike model",bikeselector_addbike_title:"Add A Bike",bikeselector_browse_back_btn:"Back to bike Lounge",bikeselector_browse_products_label:"Shop for compatible products",bikeselector_browse_shop_btn:"Shop Products",bikeselector_browse_title:"Start Shopping!",bikeselector_confirm_brandmodelframespec_label:"Brand, Model, Frame Series",bikeselector_confirm_confirm_btn:"Yep, that's my ride!",bikeselector_confirm_framesize_label:"Frame Size",bikeselector_confirm_notyourride_msg:"Not your ride? Select a field above to make a change.",bikeselector_confirm_title:"Confirm Your Ride",bikeselector_confirm_yearbikespec_label:"Year, Bike Spec",bikeselector_home_add_a_bike:"Add a bike below to get started...",bikeselector_home_add_btn:"Add A Bike",bikeselector_home_browse_btn:"Browse Compatiblity",bikeselector_home_close_btn:"Close",bikeselector_home_empty:"Your lounge is empty!",bikeselector_home_footer_message:"Bike manufacturers may change bike specifications without notice. Differences from stock specifications can impact compatibility results.",bikeselector_home_title:"My Bike Lounge",bikeselector_search_bikespec_label:"Bike Spec",bikeselector_search_bikespec_select:"Select spec level",bikeselector_search_bikespec_select_all:"All",bikeselector_search_confirm_btn:"Confirm Selection",bikeselector_search_no_bikes_found:"No bikes found",bikeselector_search_number_bikes_found:"{{number_found}} bikes found",bikeselector_search_one_bike_found:"1 bike found",bikeselector_search_searching:"Searching...",bikeselector_search_title:"Bike Search",bikeselector_search_year_label:"Year",bikeselector_size_confirm_btn:"Confirm Size",bikeselector_size_framesize_desc:"Your bike frame size is typically found in the areas highlighted below.",bikeselector_size_framesize_label:"Frame Size",bikeselector_size_framesize_one_size:"One Size",bikeselector_size_framesize_select:"Select your frame size",bikeselector_size_title:"Select Your Size",compatible:"Compatible",compatible_check_notes:"Compatible - Check Notes",compatiblelist_header:"Compatible Products",compatiblelist_nobikeselected:"No bike selected. Click here to add your ride to check for compatible parts",compatiblelist_noresults:"No compatible products found",compatiblelist_pageone:"All products compatible with your bike can be seen <a>here</a>.",compatiblelist_unavailable:"Compatibility for this product category for your selected bike brand is coming soon!",not_compatible:"Not Compatible",productcheck_nobikeselected_label:"Check Compatiblity",productcheck_nobikeselected_message:"Add your ride to check if this part fits",productcheck_questionmark:"?",category_bike:"Bike",category_bottombracket:"Bottom Bracket",category_bottombracketpart:"Bottom Bracket Part",category_brakeadapter:"Brake Adapter",category_brakeadapterpart:"Brake Adapter Part",category_brakecaliper:"Brake Caliper",category_brakecaliperpart:"Brake Caliper Part",category_brakecaliperservicekit:"Brake Caliper Service Kit",category_brakelever:"Brake Lever",category_brakeleverpart:"Brake Lever Part",category_brakeleverservicekit:"Brake Lever Service Kit",category_brakepads:"Brake Pads",category_brakerotor:"Brake Rotor",category_brakerotorpart:"Brake Rotor Part",category_brakesystem:"Brake System",category_brakesystempart:"Brake System Part",category_cassette:"Cassette",category_cassettepart:"Cassette Part",category_chain:"Chain",category_chainguide:"Chainguide",category_chainguidepart:"Chainguide Part",category_chainjoiner:"Chain Joiner",category_chainring:"Chainring",category_chainringbolt:"Chainring Bolt",category_crankpart:"Crank Part",category_crankset:"Crankset",category_dropperlever:"Dropper Lever",category_dropperleverpart:"Dropper Lever Part",category_ebikebattery:"eBike Battery",category_ebikebatterypart:"eBike Battery Part",category_ebikecharger:"eBike Charger",category_ebikechargerpart:"eBike Charger Part",category_ebikecontrolunit:"eBike Control Unit",category_ebikecontrolunitpart:"eBike Control Unit Part",category_ebikeinterconnect:"eBike Interconnect",category_ebikeinterconnectpart:"eBike Interconnect Part",category_ebikemotorsystem:"eBike Motor System",category_ebikemotorsystempart:"eBike Motor System Part",category_fork:"Fork",category_forkpart:"Fork Part",category_forkservicekit:"Fork Service Kit",category_frame:"Frame",category_framepart:"Frame Part",category_frontaxle:"Front Axle",category_frontaxlepart:"Front Axle Part",category_frontderailleur:"Front Derailleur",category_frontderailleurpart:"Front Derailleur Part",category_fronthub:"Front Hub",category_fronthubpart:"Front Hub Part",category_frontwheel:"Front Wheel",category_grips:"Grips",category_gripspart:"Grips Part",category_handlebar:"Handlebar",category_headset:"Headset",category_headsetpart:"Headset Part",category_nipple:"Nipple",category_pedals:"Pedals",category_pedalspart:"Pedals Part",category_rearaxle:"Rear Axle",category_rearaxlepart:"Rear Axle Part",category_rearderailleur:"Rear Derailleur",category_rearderailleurpart:"Rear Derailleur Part",category_rearhub:"Rear Hub",category_rearhubpart:"Rear Hub Part",category_rearshock:"Rear Shock",category_rearshockpart:"Rear Shock Part",category_rearshockservicekit:"Rear Shock Service Kit",category_rearwheel:"Rear Wheel",category_rim:"Rim",category_saddle:"Saddle",category_seatpost:"Seat Post",category_seatpostclamp:"Seat Post Clamp",category_seatpostclamppart:"Seat Post Clamp Part",category_seatpostpart:"Seat Post Part",category_seatpostservicekit:"Seat Post Service Kit",category_shiftadapter:"Shift Adapter",category_shiftadapterpart:"Shift Adapter Part",category_shiftbrakecombo:"Shift Brake Combo",category_shiftbrakecombopart:"Shift Brake Combo Part",category_shifter:"Shifter",category_shifterpart:"Shifter Part",category_spoke:"Spoke",category_stem:"Stem",category_stempart:"Stem Part",category_tube:"Tube",category_tyre:"Tire",category_wheelset:"Wheelset",checksku_message_nobikefound:"Could not find a bike with the provided Bike Key",checksku_message_nocompatibilityinfo:"No Compatibility Information",checksku_message_noproductfound:"Could not find a part with the provided SKU/Barcode/Part No",checksku_message_notcompatible:"Not Compatible",checksku_warning_unabletoperformcheck:"Unable to perform compatibility check. Please check the compatibility manually"}},es:{translation:{bikematrix_poweredby:"Con tecnología de Bike Matrix",bikeselector_addbike_brand_desc:"La marca de la bicicleta suele indicarse en los lugares resaltados a continuación.",bikeselector_addbike_brand_label:"Marca",bikeselector_addbike_brand_select:"Selecciona la marca de la bicicleta",bikeselector_addbike_find_btn:"Buscar mi bicicleta",bikeselector_addbike_framespec_desc:"La versión del cuadro de la bicicleta suele indicarse en los lugares resaltados a continuación.",bikeselector_addbike_framespec_label:"Versión del cuadro",bikeselector_addbike_framespec_select:"Selecciona la versión del cuadro de la bicicleta",bikeselector_addbike_model_desc:"El modelo de la bicicleta suele indicarse en los lugares resaltados a continuación.",bikeselector_addbike_model_label:"Modelo",bikeselector_addbike_model_select:"Selecciona el modelo de la bicicleta",bikeselector_addbike_title:"Añadir una bicicleta",bikeselector_browse_back_btn:"Volver a mi rincón ciclista",bikeselector_browse_products_label:"Comprar productos compatibles",bikeselector_browse_shop_btn:"Comprar productos",bikeselector_browse_title:"¡A comprar!",bikeselector_confirm_brandmodelframespec_label:"Marca, modelo y versión del cuadro",bikeselector_confirm_confirm_btn:"¡Ahí está mi bici!",bikeselector_confirm_framesize_label:"Talla del cuadro",bikeselector_confirm_notyourride_msg:"¿No es la que buscas? Selecciona uno de los campos de arriba para modificarlo.",bikeselector_confirm_title:"Confirmación de la bicicleta",bikeselector_confirm_yearbikespec_label:"Año y versión de la bicicleta",bikeselector_home_add_a_bike:"Agregue una bicicleta a continuación para comenzar...",bikeselector_home_add_btn:"Añadir una bicicleta",bikeselector_home_browse_btn:"Ver compatibilidad",bikeselector_home_close_btn:"Cerrar",bikeselector_home_empty:"¡Tu salón está vacío!",bikeselector_home_footer_message:"Los fabricantes pueden modificar la versión de la bicicleta sin previo aviso. Las diferencias con la versión de las unidades en existencias pueden afectar a la compatibilidad.",bikeselector_home_title:"Mi rincón ciclista",bikeselector_search_bikespec_label:"Versión de la bicicleta",bikeselector_search_bikespec_select:"Selecciona la versión",bikeselector_search_bikespec_select_all:"Todos",bikeselector_search_confirm_btn:"Confirmar selección",bikeselector_search_no_bikes_found:"No se encontraron bicicletas",bikeselector_search_number_bikes_found:"{{number_found}} bicicletas encontradas",bikeselector_search_one_bike_found:"1 bicicleta encontrada",bikeselector_search_searching:"Búsqueda...",bikeselector_search_title:"Búsqueda de bicicletas",bikeselector_search_year_label:"Año",bikeselector_size_confirm_btn:"Confirmar talla",bikeselector_size_framesize_desc:"La talla del cuadro de la bicicleta suele indicarse en los lugares resaltados a continuación.",bikeselector_size_framesize_label:"Talla del cuadro",bikeselector_size_framesize_one_size:"Talla única",bikeselector_size_framesize_select:"Selecciona la talla del cuadro",bikeselector_size_title:"Selecciona la talla",compatible:"Compatible",compatible_check_notes:"Compatible - Ver notas",compatiblelist_header:"Productos compatibles",compatiblelist_nobikeselected:"No se ha seleccionado ninguna bicicleta. Haz clic aquí para añadir tu bicicleta y buscar componentes compatibles",compatiblelist_noresults:"No se encontraron productos compatibles",compatiblelist_pageone:"Todos los productos compatibles con tu bicicleta los puedes ver <a>aquí</a>",compatiblelist_unavailable:"¡La compatibilidad para esta categoría de producto, para la marca de bicicleta seleccionada, estará disponible próximamente!",not_compatible:"No compatible",productcheck_nobikeselected_label:"Comprobar compatibilidad",productcheck_nobikeselected_message:"Quieres añadir la bicicleta para comprobar si este componente es adecuado",productcheck_questionmark:"?",category_bike:"Bicicleta",category_bottombracket:"Pedalier",category_bottombracketpart:"Componente del pedalier",category_brakeadapter:"Adaptador de freno",category_brakeadapterpart:"Componente del adaptador de freno",category_brakecaliper:"Pinza de freno",category_brakecaliperpart:"Componente de la pinza de freno",category_brakecaliperservicekit:"Kit de mantenimiento de las pinzas de freno",category_brakelever:"Maneta de freno",category_brakeleverpart:"Componente de la maneta de freno",category_brakeleverservicekit:"Kit de mantenimiento de la maneta de freno",category_brakepads:"Pastillas de freno",category_brakerotor:"Disco de freno",category_brakerotorpart:"Componente del disco de freno",category_brakesystem:"Sistema de frenos",category_brakesystempart:"Componente del sistema de frenos",category_cassette:"Cassette",category_cassettepart:"Componente del cassette",category_chain:"Cadena",category_chainguide:"Guiacadenas",category_chainguidepart:"Componente del guiacadenas",category_chainjoiner:"Enlace de cadena",category_chainring:"Plato",category_chainringbolt:"Tornillo para plato",category_crankpart:"Componente de la biela",category_crankset:"Juego de bielas",category_dropperlever:"Palanca de tija telescópica",category_dropperleverpart:"Componente de la palanca de tija telescópica",category_ebikebattery:"Batería para bicicleta eléctrica",category_ebikebatterypart:"Componente de la batería para bicicleta eléctrica",category_ebikecharger:"Cargador para bicicleta eléctrica",category_ebikechargerpart:"Componente del cargador para bicicleta eléctrica",category_ebikecontrolunit:"Unidad de control para bicicleta eléctrica",category_ebikecontrolunitpart:"Componente de la unidad de control para bicicleta eléctrica",category_ebikeinterconnect:"Sistema de conexión para bicicleta eléctrica",category_ebikeinterconnectpart:"Componente del sistema de conexión para bicicleta eléctrica",category_ebikemotorsystem:"Motor para bicicleta eléctrica",category_ebikemotorsystempart:"Componente del motor para bicicleta eléctrica",category_fork:"Horquilla",category_forkpart:"Componente de la horquilla",category_forkservicekit:"Kit de mantenimiento de la horquilla",category_frame:"Cuadro",category_framepart:"Componente del cuadro",category_frontaxle:"Eje delantero",category_frontaxlepart:"Componente del eje delantero",category_frontderailleur:"Desviador delantero",category_frontderailleurpart:"Componente del desviador delantero",category_fronthub:"Buje delantero",category_fronthubpart:"Componente del buje delantero",category_frontwheel:"Rueda delantera",category_grips:"Puños",category_gripspart:"Componente de los puños",category_handlebar:"Manillar",category_headset:"Dirección",category_headsetpart:"Componente de la dirección",category_nipple:"Válvula",category_pedals:"Pedales",category_pedalspart:"Componente de los pedales",category_rearaxle:"Eje trasero",category_rearaxlepart:"Componente del eje trasero",category_rearderailleur:"Desviador trasero",category_rearderailleurpart:"Componente del desviador trasero",category_rearhub:"Buje trasero",category_rearhubpart:"Componente del buje trasero",category_rearshock:"Amortiguador trasero",category_rearshockpart:"Componente del amortiguador trasero",category_rearshockservicekit:"Kit de mantenimiento del amortiguador trasero",category_rearwheel:"Rueda trasera",category_rim:"Llanta",category_saddle:"Sillín",category_seatpost:"Tija del sillín",category_seatpostclamp:"Abrazadera de la tija del sillín",category_seatpostclamppart:"Componente de la abrazadera de la tija del sillín",category_seatpostpart:"Componente de la tija del sillín",category_seatpostservicekit:"Kit de mantenimiento de la tija del sillín",category_shiftadapter:"Adaptador del cambio",category_shiftadapterpart:"Componente del adaptador del cambio",category_shiftbrakecombo:"Maneta de cambio/freno",category_shiftbrakecombopart:"Componente de la maneta de cambio/freno",category_shifter:"Mando de cambio",category_shifterpart:"Componente del mando de cambio",category_spoke:"Radio",category_stem:"Potencia",category_stempart:"Componente de la potencia",category_tube:"Cámara",category_tyre:"Neumático",category_wheelset:"Juego de ruedas",checksku_message_nobikefound:"No se ha encontrado ninguna bicicleta con la clave indicada",checksku_message_nocompatibilityinfo:"No hay información sobre la compatibilidad",checksku_message_noproductfound:"No se ha encontrado ningún componente con la referencia, el código de barras o el número de pieza indicado",checksku_message_notcompatible:"No compatible",checksku_warning_unabletoperformcheck:"No se puede comprobar la compatibilidad. Comprueba la compatibilidad de forma manual."}}},{slice:zn,forEach:Rn}=[];function Nn(t){return Rn.call(zn.call(arguments,1),e=>{if(e)for(const r in e)t[r]===void 0&&(t[r]=e[r])}),t}const jo=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,Pn=(t,e,r)=>{const o=r||{};o.path=o.path||"/";const a=encodeURIComponent(e);let i=`${t}=${a}`;if(o.maxAge>0){const n=o.maxAge-0;if(Number.isNaN(n))throw new Error("maxAge should be a Number");i+=`; Max-Age=${Math.floor(n)}`}if(o.domain){if(!jo.test(o.domain))throw new TypeError("option domain is invalid");i+=`; Domain=${o.domain}`}if(o.path){if(!jo.test(o.path))throw new TypeError("option path is invalid");i+=`; Path=${o.path}`}if(o.expires){if(typeof o.expires.toUTCString!="function")throw new TypeError("option expires is invalid");i+=`; Expires=${o.expires.toUTCString()}`}if(o.httpOnly&&(i+="; HttpOnly"),o.secure&&(i+="; Secure"),o.sameSite)switch(typeof o.sameSite=="string"?o.sameSite.toLowerCase():o.sameSite){case!0:i+="; SameSite=Strict";break;case"lax":i+="; SameSite=Lax";break;case"strict":i+="; SameSite=Strict";break;case"none":i+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return i},$o={create(t,e,r,o){let a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{path:"/",sameSite:"strict"};r&&(a.expires=new Date,a.expires.setTime(a.expires.getTime()+r*60*1e3)),o&&(a.domain=o),document.cookie=Pn(t,encodeURIComponent(e),a)},read(t){const e=`${t}=`,r=document.cookie.split(";");for(let o=0;o<r.length;o++){let a=r[o];for(;a.charAt(0)===" ";)a=a.substring(1,a.length);if(a.indexOf(e)===0)return a.substring(e.length,a.length)}return null},remove(t){this.create(t,"",-1)}};var Tn={name:"cookie",lookup(t){let{lookupCookie:e}=t;if(e&&typeof document<"u")return $o.read(e)||void 0},cacheUserLanguage(t,e){let{lookupCookie:r,cookieMinutes:o,cookieDomain:a,cookieOptions:i}=e;r&&typeof document<"u"&&$o.create(r,t,o,a,i)}},On={name:"querystring",lookup(t){var o;let{lookupQuerystring:e}=t,r;if(typeof window<"u"){let{search:a}=window.location;!window.location.search&&((o=window.location.hash)==null?void 0:o.indexOf("?"))>-1&&(a=window.location.hash.substring(window.location.hash.indexOf("?")));const n=a.substring(1).split("&");for(let s=0;s<n.length;s++){const u=n[s].indexOf("=");u>0&&n[s].substring(0,u)===e&&(r=n[s].substring(u+1))}}return r}};let Qe=null;const Ho=()=>{if(Qe!==null)return Qe;try{Qe=window!=="undefined"&&window.localStorage!==null;const t="i18next.translate.boo";window.localStorage.setItem(t,"foo"),window.localStorage.removeItem(t)}catch{Qe=!1}return Qe};var Un={name:"localStorage",lookup(t){let{lookupLocalStorage:e}=t;if(e&&Ho())return window.localStorage.getItem(e)||void 0},cacheUserLanguage(t,e){let{lookupLocalStorage:r}=e;r&&Ho()&&window.localStorage.setItem(r,t)}};let Xe=null;const Go=()=>{if(Xe!==null)return Xe;try{Xe=window!=="undefined"&&window.sessionStorage!==null;const t="i18next.translate.boo";window.sessionStorage.setItem(t,"foo"),window.sessionStorage.removeItem(t)}catch{Xe=!1}return Xe};var In={name:"sessionStorage",lookup(t){let{lookupSessionStorage:e}=t;if(e&&Go())return window.sessionStorage.getItem(e)||void 0},cacheUserLanguage(t,e){let{lookupSessionStorage:r}=e;r&&Go()&&window.sessionStorage.setItem(r,t)}},Vn={name:"navigator",lookup(t){const e=[];if(typeof navigator<"u"){const{languages:r,userLanguage:o,language:a}=navigator;if(r)for(let i=0;i<r.length;i++)e.push(r[i]);o&&e.push(o),a&&e.push(a)}return e.length>0?e:void 0}},Mn={name:"htmlTag",lookup(t){let{htmlTag:e}=t,r;const o=e||(typeof document<"u"?document.documentElement:null);return o&&typeof o.getAttribute=="function"&&(r=o.getAttribute("lang")),r}},jn={name:"path",lookup(t){var a;let{lookupFromPathIndex:e}=t;if(typeof window>"u")return;const r=window.location.pathname.match(/\/([a-zA-Z-]*)/g);return Array.isArray(r)?(a=r[typeof e=="number"?e:0])==null?void 0:a.replace("/",""):void 0}},$n={name:"subdomain",lookup(t){var a,i;let{lookupFromSubdomainIndex:e}=t;const r=typeof e=="number"?e+1:1,o=typeof window<"u"&&((i=(a=window.location)==null?void 0:a.hostname)==null?void 0:i.match(/^(\w{2,5})\.(([a-z0-9-]{1,63}\.[a-z]{2,6})|localhost)/i));if(o)return o[r]}};function Hn(){return{order:["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"],lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"],convertDetectedLanguage:t=>t}}class Ko{constructor(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.type="languageDetector",this.detectors={},this.init(e,r)}init(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=e||{languageUtils:{}},this.options=Nn(r,this.options||{},Hn()),typeof this.options.convertDetectedLanguage=="string"&&this.options.convertDetectedLanguage.indexOf("15897")>-1&&(this.options.convertDetectedLanguage=a=>a.replace("-","_")),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=o,this.addDetector(Tn),this.addDetector(On),this.addDetector(Un),this.addDetector(In),this.addDetector(Vn),this.addDetector(Mn),this.addDetector(jn),this.addDetector($n)}addDetector(e){return this.detectors[e.name]=e,this}detect(e){e||(e=this.options.order);let r=[];return e.forEach(o=>{if(this.detectors[o]){let a=this.detectors[o].lookup(this.options);a&&typeof a=="string"&&(a=[a]),a&&(r=r.concat(a))}}),r=r.map(o=>this.options.convertDetectedLanguage(o)),this.services.languageUtils.getBestMatchFromCodes?r:r.length>0?r[0]:null}cacheUserLanguage(e,r){r||(r=this.options.caches),r&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(e)>-1||r.forEach(o=>{this.detectors[o]&&this.detectors[o].cacheUserLanguage(e,this.options)}))}}Ko.type="languageDetector",ee.use(Ra).use(Ko).init({debug:!1,resources:qn,detection:{order:["htmlTag","querystring","cookie","localStorage","sessionStorage","navigator","path","subdomain"]},supportedLngs:["en","en-GB","en-US","de","fr","es","it","nl"],fallbackLng:"en-GB",interpolation:{escapeValue:!1}});const Gn=typeof window<"u";function Pe(t,e,r=[],o=null){sa(i=>Gt.value?d(t,{...i}):d(z,{}),e,r,o)}function Kn(){Pe(ji,"bikematrix-bikeselector",[],{shadow:!0}),Pe(Hi,"bikematrix-productresult",["data-sku"],{shadow:!0}),Pe(Yi,"bikematrix-collectionresult",["data-product-id","data-product-skus"],{shadow:!0}),Pe(Eo,"bikematrix-compatibilitylabel",["data-type"],{shadow:!0}),Pe(on,"bikematrix-compatiblelist",["data-title"]),Pe(un,"bikematrix-bikeselectorbanner",["data-title","data-color","data-full-width","data-font-color","data-show"],{shadow:!0})}function Jn(){if(!Gn)return null;const t=Si.getInstance(),e={isInitialized:()=>t.isInitialized(),init:r=>t.initialize(r),refresh:()=>t.refresh(),destroy:()=>t.destroy(),reload:(r=!0)=>t.reload(r),reset:()=>t.reset(),getConfig:()=>t.getConfig(),getCurrentBike:()=>t.getCurrentBike(),getActiveSubscription:()=>t.getActiveSubscription(),updateConfig:r=>t.updateConfig(r),updateSku:r=>t.updateSku(r)};return typeof process<"u"&&process.env.NODE_ENV==="development"&&(e.core=t),window.BikeMatrix=e,Kn(),document.currentScript&&(document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>e.init()):e.init()),e}return Jn()}();
|
package/dist/bm_core.umd.js
CHANGED
|
@@ -24,5 +24,5 @@
|
|
|
24
24
|
<bikematrix-compatibilitylabel data-type="compatible"></bikematrix-compatibilitylabel>
|
|
25
25
|
</div>
|
|
26
26
|
</div>
|
|
27
|
-
`;function on({"data-title":t}){var k;const e=Ve(null),r=window.BikeMatrix,o=r.getConfig(),[a,i]=Q(!1),[n,s]=Q(!0),[u,l]=Q({type:"unknown",details:"",details_code:""}),[p,c]=Q([]),{t:g}=re(),f=!!r.getActiveSubscription(),_=o.currentCollectionHandle||"",m=o.collectionUrl||"",y=o.compatiblityListCurrentPage||0,C=!!o.showCompatibleList||!1,b=o.logLevel||"none",v=w=>{var U,V;if(!(e!=null&&e.current))return null;const B=(V=(U=e==null?void 0:e.current)==null?void 0:U.parentElement)==null?void 0:V.querySelector('template[slot="product-card"]');b==="verbose"&&console.log("CompatibleList Product Card Template: ",B);const q=(B?B.innerHTML:rn()).replace(
|
|
27
|
+
`;function on({"data-title":t}){var k;const e=Ve(null),r=window.BikeMatrix,o=r.getConfig(),[a,i]=Q(!1),[n,s]=Q(!0),[u,l]=Q({type:"unknown",details:"",details_code:""}),[p,c]=Q([]),{t:g}=re(),f=!!r.getActiveSubscription(),_=o.currentCollectionHandle||"",m=o.collectionUrl||"",y=o.compatiblityListCurrentPage||0,C=!!o.showCompatibleList||!1,b=o.logLevel||"none",v=w=>{var U,V;if(!(e!=null&&e.current))return null;const B=(V=(U=e==null?void 0:e.current)==null?void 0:U.parentElement)==null?void 0:V.querySelector('template[slot="product-card"]');b==="verbose"&&console.log("CompatibleList Product Card Template: ",B);const q=(B?B.innerHTML:rn()).replace(o.isShopify?/\@\@#if\s+(\w+)\@\@(.*?)\@\@\/if\@\@/gs:/\{\{#if\s+(\w+)\}\}(.*?)\{\{\/if\}\}/gs,(I,G,x)=>w[G]?x:"").replace(o.isShopify?/\@\@\s*(\w+)\s*\@\@/g:/\{\{\s*(\w+)\s*\}\}/g,(I,G)=>{if(G==="compatibility")return'<bikematrix-compatibilitylabel data-type="compatible"></bikematrix-compatibilitylabel>';const x=w[G];return G==="productTitle"?Qi.decode(x):x||""});return b==="verbose"&&console.log("CompatibleList Product Card: ",q),d("li",{dangerouslySetInnerHTML:{__html:q}},w.productId)};return J(()=>{var q,U;const w=o.collections.map(V=>V.handle)||[];if(!C||!w.includes(_)){l({type:"unknown",...Je.unknown}),i(!1);return}if(!j.value){l({type:"selectbike",...Je.selectbike}),i(!oe.value);return}if(!((U=(q=j.value)==null?void 0:q.compatibleCollections)==null?void 0:U.find(V=>V.handle===_))){i(!1);return}console.log("CompatibleCollectionSkusSignal.value",xe.value);const S=en(xe.value).map(v);c(S);const R=tn(y,S);l(R),i(!0)},[_,j.value,xe.value,oe.value,y]),d(z,{children:f&&a&&d("div",{ref:e,children:[d("style",{type:"text/css",children:Wi}),d("div",{class:"container",children:d("div",{class:"bm-compatible-products-wrapper",children:[d("div",{class:"bm-compatible-products-title",children:d("div",{id:"bm_customAccordion",class:n&&"active",onClick:()=>s(!n),children:[d("span",{children:t||g("compatiblelist_header")}),d("svg",{width:"24",height:"24",viewBox:"0 0 24 24","aria-hidden":"true",focusable:"false",role:"presentation",class:"icon",children:d("path",{d:"M20 8.5 12.5 16 5 8.5",stroke:"currentColor","stroke-width":"1.5",fill:"none"})})]})}),d("div",{class:"bm-compatible-products-list",id:"bm_compatibleProductsListPanel",style:n?"display: block":"display: none",children:[d("div",{class:"lds-ring",id:"bm-loading-spinner",style:oe.value?"":"display: none",children:[d("div",{}),d("div",{}),d("div",{}),d("div",{})]}),!oe.value&&{unknown:d("p",{class:"bm-compatible-products-message"}),unavailable:d("p",{class:"bm-compatible-products-message",children:g(u==null?void 0:u.details_code)}),selectbike:d("div",{onClick:w=>{w.preventDefault(),document.dispatchEvent(new Event("BmToggleModal",{bubbles:!0,composed:!0}))},style:"cursor: pointer;",children:d("p",{class:"bm-compatible-products-message",children:g(u==null?void 0:u.details_code)})}),pageone:d("p",{class:"bm-compatible-products-message",children:d("div",{dangerouslySetInnerHTML:{__html:(k=g(u==null?void 0:u.details_code))==null?void 0:k.replace("<a>","<a href='"+m+"'>")}})}),noresults:d("p",{class:"bm-compatible-products-message",children:g(u==null?void 0:u.details_code)}),compatibleresults:d(z,{})}[u==null?void 0:u.type],d("ul",{id:"bm_compatibleProductsList",children:!oe.value&&(u==null?void 0:u.type)==="compatibleresults"&&p}),d("div",{class:"bm_result_link",children:d("a",{rel:"noreferrer",href:"http://www.bikematrix.io/landed-it",target:"_blank",class:"link",children:g("bikematrix_poweredby")})})]})]})})]})})}const an=`.bike-selector-banner_wrapper{position:relative;height:40px}.bike-selector-banner{width:100%;height:40px;position:absolute;top:0;display:flex;align-items:center;justify-content:center;cursor:pointer;margin-bottom:2rem}.floating{border-radius:12px;box-shadow:0 4px 4px #0000001f}.bike-selector-banner_title{color:#fff;text-transform:uppercase;padding-top:2px;font:var(--heading-font-family);font-style:var(--heading-font-style);font-weight:var(--heading-font-weight);font-size:18px}@media (width <= 991px){.bike-selector-banner_title{display:none}}.bike-selector-banner_title_mobile{display:none;text-transform:uppercase;font:var(--heading-font-family);font-style:var(--heading-font-style);font-weight:var(--heading-font-weight);font-size:18px;color:#fff;padding-top:2px}@media (width <= 991px){.bike-selector-banner_title_mobile{display:block}}.bike-selector-banner_svg{height:19px}.bike-selector-banner_icon-wrapper{display:flex;align-items:center;justify-content:center;height:100%;position:relative}.bike-selector-banner_tick{width:12px;height:12px;position:absolute;right:6px;top:5px}
|
|
28
28
|
`,nn=t=>E("svg",{width:51,height:36,viewBox:"0 0 51 36",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},E("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M40.1081 0.937112C40.3093 1.62586 39.9246 2.35014 39.2462 2.55953L34.1927 4.11923L38.3746 15.3505C38.582 15.2989 38.791 15.253 39.0013 15.2141C39.2114 15.1758 39.4229 15.1439 39.6353 15.1189C39.8472 15.0934 40.0603 15.0755 40.2739 15.0639C40.487 15.0528 40.7005 15.0482 40.9141 15.0505C41.1283 15.0534 41.3414 15.0626 41.5544 15.0789C41.7675 15.0951 41.98 15.1178 42.1919 15.148C42.4038 15.1776 42.614 15.2148 42.8237 15.2582C43.0333 15.3018 43.2407 15.3517 43.4476 15.4086C43.6538 15.466 43.8584 15.5293 44.0607 15.5995C44.263 15.6698 44.4631 15.7464 44.6614 15.8293C44.8592 15.9124 45.0542 16.0018 45.2463 16.0975C45.4385 16.1933 45.6277 16.2949 45.8142 16.4028C46.0002 16.5108 46.1827 16.6245 46.3618 16.744C46.541 16.8636 46.7162 16.989 46.8879 17.1201C47.0592 17.2514 47.2265 17.3878 47.3898 17.5294C47.5531 17.671 47.7113 17.8178 47.8656 17.9698C48.0199 18.122 48.1691 18.2786 48.3137 18.4406C48.4584 18.6025 48.5974 18.7685 48.732 18.9392C48.8665 19.1097 48.9953 19.2845 49.1191 19.4638C49.2428 19.6426 49.3609 19.8255 49.4734 20.0123C49.5858 20.1986 49.6921 20.3889 49.7932 20.5823C49.8938 20.7755 49.9888 20.9723 50.0774 21.172C50.1662 21.3716 50.2493 21.5742 50.3255 21.779C50.4018 21.9839 50.4719 22.1912 50.5358 22.4007C50.5996 22.6102 50.6567 22.8214 50.7075 23.0345C50.7584 23.248 50.8025 23.4622 50.8404 23.6787C50.8783 23.8946 50.9087 24.1117 50.9336 24.3299C50.9579 24.5476 50.9755 24.7664 50.9867 24.9857C50.9975 25.2046 51.002 25.4239 50.9992 25.6434C50.9969 25.8627 50.9878 26.0822 50.9721 26.3009C50.9562 26.5197 50.9336 26.738 50.9042 26.9556C50.8754 27.1727 50.8392 27.3892 50.7968 27.6045C50.7545 27.8193 50.7059 28.0329 50.6505 28.2447C50.5946 28.4571 50.533 28.6666 50.4646 28.875C50.3962 29.0828 50.3216 29.2883 50.2408 29.4914C50.1594 29.6946 50.0724 29.8948 49.9797 30.0927C49.8864 30.29 49.787 30.4845 49.6819 30.6754C49.5768 30.8663 49.466 31.0538 49.3496 31.2378C49.2332 31.4218 49.1111 31.6023 48.9834 31.7781C48.8557 31.954 48.7229 32.1258 48.585 32.2935C48.4472 32.4613 48.3036 32.6238 48.1555 32.7823C48.0075 32.9407 47.8549 33.0939 47.6978 33.2425C47.5401 33.3905 47.3785 33.5338 47.2118 33.672C47.0457 33.8095 46.8756 33.9424 46.7014 34.069C46.5269 34.1961 46.3489 34.3174 46.1674 34.4329C45.9855 34.5484 45.8007 34.6581 45.612 34.7614C45.4237 34.8648 45.2322 34.9623 45.0378 35.0534C44.8434 35.1445 44.6462 35.2298 44.4467 35.3082C44.2472 35.3865 44.0454 35.4584 43.8415 35.5241C43.6375 35.5891 43.4317 35.6483 43.2238 35.6999C43.0164 35.7522 42.8073 35.798 42.5971 35.8363C42.3868 35.8752 42.1755 35.9072 41.963 35.932C41.7511 35.957 41.538 35.975 41.3245 35.9861C41.1108 35.9977 40.8977 36.0017 40.6836 35.9994C40.47 35.997 40.2569 35.9878 40.0439 35.971C39.8303 35.9547 39.6184 35.9315 39.4065 35.9019C39.1946 35.8717 38.9843 35.8352 38.7746 35.7916C38.565 35.7475 38.3576 35.6976 38.1507 35.6402C37.9445 35.5832 37.7405 35.52 37.5376 35.4498C37.3353 35.3795 37.1353 35.3029 36.9375 35.2193C36.7397 35.1364 36.5447 35.047 36.352 34.9512C36.1598 34.8555 35.9706 34.7539 35.7846 34.6459C35.5987 34.538 35.4161 34.4237 35.2371 34.304C35.0579 34.1845 34.8827 34.0592 34.7109 33.9279C34.5397 33.7968 34.3724 33.6604 34.2091 33.5188C34.0464 33.3766 33.8875 33.2297 33.7339 33.0777C33.5796 32.9256 33.4304 32.7689 33.2857 32.607C33.141 32.445 33.002 32.2791 32.8675 32.1084C32.7331 31.9378 32.6041 31.7625 32.481 31.5837C32.3572 31.4044 32.2391 31.2215 32.1266 31.0352C32.0142 30.8484 31.9079 30.6586 31.8068 30.4647C31.7062 30.2714 31.6113 30.0747 31.5225 29.875C31.4338 29.6753 31.3514 29.4728 31.2751 29.2679C31.1988 29.0631 31.1286 28.8558 31.0648 28.6463C31.0016 28.4368 30.9439 28.2255 30.8935 28.012C30.8427 27.7989 30.7986 27.5842 30.7608 27.3683C30.7235 27.1524 30.6924 26.9353 30.6681 26.7171C30.6438 26.4988 30.6263 26.28 30.615 26.0613C30.6043 25.8418 30.5998 25.6225 30.6025 25.403C30.6048 25.1837 30.6139 24.9643 30.6302 24.7455C30.6461 24.5267 30.6686 24.3085 30.6975 24.0913C30.7269 23.8737 30.7631 23.6572 30.8054 23.4425C30.8478 23.2271 30.8969 23.0136 30.9523 22.8017C31.0077 22.5898 31.0699 22.3798 31.1383 22.1719C31.2067 21.9642 31.2812 21.7587 31.3626 21.5556C31.4434 21.3524 31.5304 21.1522 31.6237 20.9543C31.7169 20.757 31.8164 20.5625 31.9215 20.3716C32.0267 20.1807 32.1374 19.9932 32.2538 19.8092C32.3708 19.6251 32.4928 19.4453 32.6206 19.2694C32.7477 19.0929 32.8811 18.9211 33.019 18.754C33.1569 18.5863 33.3004 18.4238 33.4484 18.2653C33.5965 18.1075 33.7491 17.9536 33.9068 17.8057C34.0644 17.6571 34.2261 17.5143 34.3922 17.3762C34.5584 17.238 34.729 17.1057 34.903 16.9792C35.0777 16.852 35.2557 16.7308 35.4377 16.6152C35.619 16.4997 35.8045 16.3906 35.9926 16.2873L33.8915 10.6435L26.6479 26.0966C26.5959 26.2081 26.5292 26.309 26.4495 26.4013C26.3693 26.4931 26.2783 26.5714 26.1766 26.637C26.0749 26.7026 25.9664 26.7519 25.8511 26.7862C25.7358 26.8198 25.6177 26.8367 25.4979 26.8367H20.3192C20.2791 27.1634 20.2237 27.4873 20.1536 27.8082C20.083 28.1292 19.9982 28.4467 19.8993 28.7595C19.7999 29.0724 19.6868 29.3799 19.5591 29.6817C19.4314 29.9836 19.2907 30.279 19.1358 30.5668C18.9815 30.8554 18.8143 31.1356 18.634 31.4079C18.4538 31.6801 18.261 31.943 18.0565 32.196C17.8524 32.4496 17.6366 32.6929 17.41 32.9256C17.1834 33.1577 16.9466 33.3795 16.6996 33.589C16.4527 33.7985 16.1967 33.9958 15.9317 34.181C15.6661 34.3656 15.3931 34.5374 15.1122 34.6958C14.8314 34.8543 14.5443 34.9988 14.2499 35.13C13.956 35.2605 13.6565 35.3766 13.3514 35.4782C13.0468 35.5798 12.7382 35.6668 12.4251 35.7382C12.1126 35.8102 11.7973 35.8665 11.4791 35.9083C11.1615 35.9495 10.8423 35.975 10.5218 35.9854C10.2014 35.9959 9.8816 35.9907 9.56169 35.9704C9.24187 35.9495 8.9237 35.9135 8.60727 35.8618C8.29077 35.8108 7.97713 35.744 7.66688 35.6622C7.35607 35.5804 7.05034 35.484 6.74858 35.3725C6.44737 35.2611 6.15125 35.1357 5.86135 34.9953C5.57145 34.8555 5.28832 34.7016 5.01255 34.5344C4.73677 34.3673 4.46891 34.1869 4.20953 33.9935C3.95014 33.8003 3.70035 33.5948 3.45962 33.3772C3.21888 33.1595 2.98888 32.9309 2.76962 32.6911C2.54979 32.4514 2.34182 32.2019 2.14516 31.9419C1.9485 31.6818 1.76428 31.4131 1.59248 31.1351C1.42069 30.8577 1.2619 30.5721 1.1161 30.279C0.970294 29.9859 0.838065 29.6864 0.719957 29.3805C0.60184 29.0747 0.497862 28.7636 0.408014 28.4479C0.318156 28.1315 0.242998 27.8123 0.182531 27.489C0.122629 27.1657 0.0768549 26.8401 0.0463391 26.5122C0.0158232 26.1849 0.00056482 25.8563 0 25.5273C0 25.1976 0.0146927 24.8691 0.0446437 24.5412C0.0745947 24.2126 0.119803 23.887 0.179705 23.5632C0.239607 23.2393 0.314204 22.9195 0.403493 22.6026C0.492782 22.2863 0.596192 21.9746 0.7143 21.6681C0.832408 21.3617 0.964086 21.0617 1.10932 20.768C1.25512 20.4743 1.41392 20.1887 1.58571 19.9101C1.7575 19.6321 1.94173 19.3628 2.13782 19.1022C2.33448 18.8416 2.54245 18.5915 2.76227 18.3512C2.9821 18.1109 3.2121 17.8816 3.45284 17.6634C3.69301 17.4458 3.94335 17.2397 4.20274 17.0458C4.46213 16.8526 4.73 16.6715 5.00634 16.5038C5.28268 16.3361 5.56579 16.1822 5.85626 16.0418C6.14616 15.9013 6.44229 15.7754 6.74406 15.6639C7.04639 15.5519 7.35268 15.4556 7.66349 15.3732C7.97431 15.2914 8.28794 15.2246 8.60498 15.1735C8.92141 15.1219 9.24013 15.0859 9.56059 15.065C9.88041 15.0446 10.2014 15.0394 10.5218 15.0499C10.8423 15.0603 11.1621 15.0859 11.4802 15.1277C11.7984 15.1689 12.1143 15.2257 12.4274 15.2977C12.7405 15.3697 13.0495 15.4568 13.3548 15.5584C13.6599 15.6605 13.9594 15.7771 14.2538 15.9077C14.5482 16.0389 14.8359 16.184 15.1174 16.3431C15.3982 16.5015 15.6717 16.6738 15.9367 16.859C16.2018 17.0447 16.4584 17.2426 16.7053 17.4528C16.9522 17.6628 17.1891 17.8846 17.4162 18.1179C17.6428 18.3506 17.8581 18.5944 18.0627 18.8486C18.2667 19.1028 18.4594 19.3658 18.6392 19.6385C18.8194 19.9113 18.9867 20.1923 19.1409 20.4813C19.2952 20.7697 19.436 21.0657 19.563 21.3681C19.6902 21.6705 19.8033 21.9787 19.9021 22.2921C20.001 22.6055 20.0852 22.9236 20.1547 23.2452C20.2248 23.5667 20.2796 23.8911 20.3192 24.2179H23.5064L17.2851 6.3265C17.2354 6.18429 17.2111 6.03746 17.2111 5.88655H15.2987C15.2151 5.88655 15.132 5.87843 15.0501 5.86159C14.9681 5.84476 14.8884 5.8198 14.811 5.78672C14.7336 5.75422 14.6602 5.71359 14.5906 5.666C14.5206 5.61841 14.4567 5.56385 14.3974 5.5029C14.3381 5.44254 14.2849 5.37638 14.2386 5.30441C14.1922 5.23302 14.1527 5.15757 14.1211 5.07805C14.0889 4.99912 14.0646 4.91729 14.0482 4.83255C14.0317 4.74839 14.0239 4.66307 14.0239 4.57717C14.0239 4.49127 14.0317 4.40595 14.0482 4.3218C14.0646 4.23763 14.0889 4.1558 14.1211 4.07628C14.1527 3.99677 14.1922 3.92132 14.2386 3.84993C14.2849 3.77854 14.3381 3.71238 14.3974 3.65143C14.4567 3.59049 14.5206 3.53651 14.5906 3.48834C14.6602 3.44075 14.7336 3.4007 14.811 3.36762C14.8884 3.33453 14.9681 3.30958 15.0501 3.29274C15.132 3.27649 15.2151 3.26779 15.2987 3.26779H21.0358C21.1194 3.26779 21.2025 3.27649 21.2844 3.29274C21.3663 3.30958 21.446 3.33453 21.5235 3.36762C21.6009 3.4007 21.6743 3.44075 21.7438 3.48834C21.8139 3.53651 21.8778 3.59049 21.9371 3.65143C21.9964 3.71238 22.049 3.77854 22.0959 3.84993C22.1422 3.92132 22.1818 3.99677 22.2135 4.07628C22.2457 4.1558 22.27 4.23763 22.2864 4.3218C22.3028 4.40595 22.3107 4.49127 22.3107 4.57717C22.3107 4.66307 22.3028 4.74839 22.2864 4.83255C22.27 4.91729 22.2457 4.99912 22.2135 5.07805C22.1818 5.15757 22.1422 5.23302 22.0959 5.30441C22.049 5.37638 21.9964 5.44254 21.9371 5.5029C21.8778 5.56385 21.8139 5.61841 21.7438 5.666C21.6743 5.71359 21.6009 5.75422 21.5235 5.78672C21.446 5.8198 21.3663 5.84476 21.2844 5.86159C21.2025 5.87843 21.1194 5.88655 21.0358 5.88655H19.8399L22.188 12.6389L32.5494 7.03864L31.3191 3.73559C31.2875 3.65143 31.2649 3.56496 31.2513 3.47557C31.2372 3.38677 31.2321 3.29739 31.2366 3.20743C31.2406 3.11746 31.2535 3.02867 31.2751 2.94161C31.2971 2.85455 31.3271 2.77038 31.366 2.68971C31.4045 2.60903 31.4508 2.53301 31.505 2.4622C31.5587 2.3908 31.6192 2.32638 31.6864 2.26834C31.7532 2.2103 31.8255 2.1598 31.9023 2.11685C31.9792 2.07391 32.06 2.03908 32.1442 2.01354L38.4938 0.0569906C39.1798 -0.154403 39.9045 0.240726 40.1081 0.937112ZM23.0537 15.1305L25.5679 22.3589L30.9608 10.8571L23.0537 15.1305ZM39.6059 25.995L36.912 18.7581C36.7758 18.8404 36.6425 18.927 36.5114 19.0181C36.3808 19.1092 36.2525 19.2038 36.1277 19.3031C36.0022 19.4023 35.8801 19.5051 35.7615 19.6124C35.6423 19.7192 35.5269 19.8294 35.4145 19.9439C35.3026 20.0582 35.1935 20.176 35.0884 20.2973C34.9833 20.418 34.8821 20.5428 34.7844 20.6705C34.6866 20.7975 34.5928 20.9288 34.503 21.0622C34.4137 21.1958 34.3278 21.3322 34.2464 21.4708C34.1645 21.6101 34.0876 21.7517 34.0147 21.8957C33.9413 22.0396 33.8729 22.1859 33.8084 22.3339C33.7446 22.4825 33.6846 22.6323 33.6299 22.7848C33.5745 22.9369 33.5242 23.0907 33.4784 23.2457C33.4327 23.4013 33.3914 23.5579 33.3552 23.7158C33.3185 23.8737 33.2869 24.0327 33.2603 24.1924C33.2337 24.3526 33.2117 24.5133 33.1947 24.6746C33.1772 24.836 33.1653 24.998 33.158 25.1598C33.1506 25.3218 33.1478 25.4843 33.1506 25.6463C33.1529 25.8088 33.1602 25.9707 33.1727 26.1326C33.1845 26.2945 33.2021 26.4559 33.2241 26.6167C33.2456 26.7774 33.2727 26.9371 33.3044 27.096C33.336 27.2551 33.3721 27.413 33.4134 27.5696C33.4547 27.7264 33.5004 27.8819 33.5508 28.0357C33.6016 28.1895 33.6564 28.3416 33.7164 28.492C33.7757 28.6422 33.8401 28.7903 33.9085 28.9365C33.9774 29.0828 34.0503 29.2267 34.1277 29.3683C34.2052 29.5094 34.2865 29.6487 34.3724 29.7851C34.4578 29.9214 34.5476 30.055 34.6414 30.1855C34.7352 30.3161 34.833 30.4438 34.9341 30.568C35.0359 30.6928 35.141 30.8136 35.2494 30.9313C35.3586 31.0492 35.4704 31.1635 35.5863 31.2738C35.7021 31.3847 35.8208 31.4915 35.9429 31.5947C36.0649 31.6975 36.1904 31.7967 36.3181 31.8919C36.4464 31.9865 36.577 32.0776 36.7108 32.1641C36.8442 32.2512 36.9804 32.3336 37.1188 32.4114C37.2573 32.4898 37.3981 32.5634 37.541 32.6325C37.6839 32.7016 37.8292 32.766 37.9762 32.8257C38.1231 32.8861 38.2717 32.9413 38.4214 32.9918C38.5718 33.0417 38.7232 33.0875 38.8764 33.1282C39.0295 33.1693 39.1832 33.2048 39.3386 33.2361C39.4935 33.2668 39.6494 33.293 39.8065 33.3139C39.963 33.3354 40.1202 33.3511 40.2778 33.362C40.4355 33.3731 40.5931 33.3795 40.7514 33.3806C40.9097 33.3813 41.0673 33.3772 41.225 33.3684C41.3832 33.3592 41.5403 33.3452 41.6974 33.3261C41.8545 33.307 42.0105 33.2831 42.1659 33.2541C42.3213 33.2251 42.4761 33.1914 42.6292 33.1525C42.783 33.1136 42.935 33.0695 43.0859 33.0214C43.2368 32.9727 43.386 32.9193 43.5335 32.8612C43.6809 32.8032 43.8267 32.7411 43.9703 32.6737C44.1144 32.6064 44.2557 32.5344 44.3952 32.4578C44.5349 32.3818 44.6721 32.3011 44.8066 32.2158C44.9411 32.131 45.0728 32.0417 45.2023 31.9482C45.3317 31.8548 45.4576 31.7573 45.5814 31.6557C45.7047 31.5547 45.8244 31.449 45.942 31.3399C46.059 31.2308 46.1726 31.1183 46.2827 31.0016C46.3929 30.8855 46.4992 30.7659 46.602 30.6423C46.7048 30.5193 46.8043 30.3934 46.8999 30.2639C46.9948 30.1345 47.0864 30.0021 47.1739 29.8664C47.2609 29.7311 47.344 29.5935 47.4231 29.4531C47.5023 29.3121 47.5768 29.1692 47.6475 29.0242C47.7176 28.8785 47.7837 28.7311 47.8453 28.5819C47.9069 28.4322 47.9639 28.2807 48.0159 28.128C48.0685 27.9748 48.116 27.8198 48.1589 27.6637C48.2024 27.5076 48.2403 27.3503 48.2742 27.1919C48.3075 27.0328 48.3364 26.8732 48.36 26.713C48.3843 26.5528 48.4031 26.3915 48.4172 26.2301C48.4318 26.0682 48.4409 25.9063 48.4454 25.7438C48.4499 25.5818 48.4494 25.4193 48.4438 25.2573C48.4386 25.0948 48.4285 24.933 48.4132 24.7716C48.3979 24.6103 48.3782 24.4489 48.3533 24.2887C48.3284 24.1285 48.2985 23.9695 48.264 23.811C48.2296 23.6526 48.1905 23.4952 48.1465 23.3391C48.1024 23.1836 48.0538 23.0293 48.0007 22.876C47.9475 22.7234 47.8893 22.5725 47.8272 22.4233C47.7651 22.2741 47.6978 22.1273 47.6266 21.9822C47.5554 21.8376 47.4802 21.6949 47.3999 21.555C47.3203 21.4145 47.2361 21.2776 47.1479 21.1429C47.0598 21.0077 46.9676 20.8759 46.8716 20.7471C46.7755 20.6182 46.676 20.4929 46.5721 20.3704C46.4686 20.248 46.3613 20.1284 46.2505 20.0128C46.1392 19.8974 46.025 19.7853 45.9075 19.6769C45.7899 19.5683 45.669 19.4638 45.5453 19.3635C45.4215 19.2624 45.2943 19.1661 45.165 19.0733C45.0349 18.9804 44.9027 18.8922 44.7671 18.8079C44.6321 18.7238 44.4947 18.6438 44.3546 18.5683C44.215 18.4929 44.0726 18.422 43.9285 18.3559C43.7844 18.2891 43.6386 18.2275 43.4905 18.1702C43.3424 18.1132 43.1927 18.061 43.0418 18.0134C42.8909 17.9659 42.7383 17.9229 42.5847 17.8852C42.4309 17.8475 42.2767 17.8143 42.1207 17.7859C41.9653 17.758 41.8088 17.7348 41.6516 17.7168C41.4946 17.6989 41.3374 17.6855 41.1792 17.678C41.0215 17.6698 40.8633 17.6664 40.7056 17.6687C40.5474 17.6704 40.3898 17.6773 40.2321 17.6896C40.0744 17.7017 39.9173 17.7186 39.7608 17.7407C39.6042 17.7627 39.4483 17.79 39.2934 17.8219L41.9873 25.06C42.0161 25.1401 42.0365 25.222 42.0495 25.3061C42.0625 25.3903 42.0675 25.475 42.0641 25.5604C42.0613 25.645 42.05 25.7293 42.0309 25.8122C42.0116 25.8952 41.985 25.9754 41.9505 26.0531C41.9162 26.1303 41.8749 26.204 41.8263 26.2731C41.7782 26.3422 41.724 26.406 41.6635 26.4646C41.603 26.5226 41.5375 26.5749 41.4674 26.6201C41.3968 26.6649 41.3227 26.7031 41.2453 26.7333C41.1679 26.7635 41.0882 26.7862 41.0068 26.8006C40.9249 26.8151 40.8424 26.8215 40.7593 26.8192C40.6768 26.8175 40.5949 26.8071 40.5135 26.7885C40.4327 26.7699 40.3541 26.7438 40.2784 26.7095C40.2022 26.6753 40.1304 26.6335 40.062 26.5853C39.9942 26.5365 39.9308 26.4815 39.8733 26.4199C39.8156 26.359 39.7647 26.2922 39.7195 26.2208C39.6743 26.1495 39.6364 26.074 39.6059 25.995ZM17.7429 24.2179H10.1991C10.1155 24.2179 10.0324 24.2265 9.95046 24.2428C9.86858 24.2597 9.7889 24.2846 9.71142 24.3177C9.63404 24.3508 9.56059 24.3908 9.49109 24.4385C9.42104 24.4866 9.35713 24.5406 9.2978 24.6015C9.23848 24.6625 9.1853 24.7287 9.13899 24.8C9.09269 24.8714 9.05308 24.9469 9.02144 25.0264C8.98926 25.1059 8.96496 25.1877 8.94855 25.2719C8.93214 25.3561 8.92425 25.4414 8.92425 25.5273C8.92425 25.6132 8.93214 25.6984 8.94855 25.7827C8.96496 25.8674 8.98926 25.9492 9.02144 26.0281C9.05308 26.1077 9.09269 26.1831 9.13899 26.2545C9.1853 26.3265 9.23848 26.3926 9.2978 26.453C9.35713 26.514 9.42104 26.5685 9.49109 26.6161C9.56059 26.6637 9.63404 26.7043 9.71142 26.7368C9.7889 26.7699 9.86858 26.7949 9.95046 26.8117C10.0324 26.8285 10.1155 26.8367 10.1991 26.8367H17.7429C17.7027 27.0764 17.6518 27.3137 17.5903 27.5482C17.5287 27.7832 17.4563 28.0143 17.3738 28.2424C17.2913 28.4704 17.1987 28.694 17.0964 28.9127C16.9935 29.1321 16.8811 29.3457 16.759 29.5541C16.6369 29.7624 16.5059 29.9644 16.3657 30.1606C16.2256 30.3562 16.0763 30.5448 15.9192 30.727C15.7616 30.9088 15.5966 31.0822 15.4236 31.2483C15.2507 31.4142 15.0704 31.5715 14.8828 31.7201C14.6958 31.8687 14.5019 32.0085 14.3024 32.1386C14.1023 32.2692 13.8972 32.3899 13.6864 32.5002C13.4756 32.611 13.2603 32.7114 13.0406 32.802C12.8207 32.892 12.597 32.9714 12.3697 33.0405C12.1432 33.1096 11.9131 33.167 11.6809 33.2141C11.4486 33.2611 11.2147 33.297 10.979 33.322C10.744 33.3464 10.5077 33.3604 10.2709 33.362C10.0342 33.3644 9.79789 33.3551 9.56169 33.3348C9.32604 33.3145 9.0915 33.2831 8.85814 33.2408C8.62534 33.1979 8.39475 33.1445 8.16645 33.0795C7.93814 33.015 7.71323 32.9395 7.4917 32.853C7.27074 32.7671 7.05373 32.6708 6.84069 32.5641C6.6282 32.4573 6.42081 32.3405 6.2185 32.2141C6.01619 32.0875 5.8201 31.9512 5.63021 31.806C5.44091 31.661 5.25781 31.5071 5.08149 31.344C4.90574 31.1815 4.73734 31.0109 4.57685 30.8321C4.41635 30.6534 4.26434 30.467 4.12081 30.2743C3.97726 30.0811 3.8422 29.8814 3.71675 29.6753C3.59073 29.4694 3.47488 29.2575 3.36807 29.0404C3.26183 28.8233 3.1652 28.6016 3.07873 28.3752C2.99228 28.1489 2.91598 27.9185 2.85043 27.6852C2.78488 27.4512 2.7295 27.2151 2.68541 26.9765C2.64077 26.7374 2.60743 26.4971 2.58483 26.2551C2.56222 26.0131 2.55035 25.7704 2.54979 25.5273C2.54979 25.2835 2.56053 25.0403 2.582 24.7977C2.60404 24.5551 2.63681 24.3137 2.68033 24.0745C2.72384 23.8348 2.77866 23.598 2.84364 23.3636C2.90863 23.1291 2.98436 22.8986 3.07026 22.6711C3.15672 22.4442 3.25279 22.2213 3.35903 22.0037C3.46527 21.7854 3.58112 21.5736 3.70657 21.3663C3.83203 21.1597 3.96653 20.9589 4.11007 20.765C4.2536 20.5712 4.40562 20.3843 4.56612 20.205C4.7266 20.0257 4.895 19.8539 5.07132 19.6908C5.24707 19.5271 5.43017 19.3727 5.62061 19.2265C5.81049 19.0808 6.00658 18.9444 6.20946 18.8172C6.41176 18.6902 6.61973 18.5729 6.83278 18.4656C7.04582 18.3582 7.2634 18.2613 7.48491 18.1748C7.70701 18.0882 7.93192 18.0128 8.16079 17.9478C8.38966 17.8828 8.62075 17.8289 8.8542 17.7864C9.0881 17.7435 9.3232 17.7116 9.55949 17.6913C9.79624 17.671 10.033 17.6617 10.2704 17.664C10.5077 17.6664 10.744 17.6803 10.9802 17.7052C11.2164 17.7296 11.4509 17.7662 11.6837 17.8132C11.916 17.8607 12.1466 17.9188 12.3737 17.9879C12.6014 18.0575 12.8253 18.1376 13.0456 18.2282C13.266 18.3187 13.4813 18.4197 13.6927 18.5311C13.9035 18.6425 14.1091 18.7633 14.3092 18.8945C14.5098 19.0256 14.7031 19.1655 14.8907 19.3153C15.0783 19.4644 15.2586 19.6228 15.4315 19.7894C15.6044 19.956 15.77 20.1307 15.9271 20.313C16.0843 20.4957 16.2329 20.6856 16.373 20.8818C16.5132 21.0785 16.6442 21.2816 16.7658 21.4911C16.8878 21.7001 16.9997 21.9149 17.102 22.1348C17.2043 22.3548 17.2964 22.5789 17.3783 22.8075C17.4603 23.0362 17.5315 23.2684 17.5925 23.504C17.653 23.7397 17.7033 23.9776 17.7429 24.2179Z",fill:"white"})),sn=t=>E("svg",{width:10,height:10,viewBox:"0 0 10 10",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},E("path",{d:"M9.12114 5C9.12114 7.27602 7.27606 9.1211 5.00002 9.1211C2.724 9.1211 0.87891 7.27602 0.87891 5C0.87891 2.72398 2.724 0.878906 5.00002 0.878906C7.27606 0.878906 9.12114 2.72398 9.12114 5Z",fill:"white"}),E("path",{d:"M5 0C2.24302 0 0 2.24296 0 4.99998C0 7.757 2.24302 10 5 10C7.75698 10 10 7.757 10 4.99998C10 2.24296 7.75704 0 5 0ZM7.87108 4.15544L4.72984 7.29666C4.66434 7.36252 4.58642 7.41474 4.5006 7.45028C4.41478 7.48584 4.32276 7.504 4.22986 7.50374C4.04098 7.50374 3.86344 7.43024 3.72988 7.29666L2.12892 5.69572C2.06304 5.6302 2.01082 5.5523 1.97526 5.46646C1.93971 5.38064 1.92153 5.28862 1.92178 5.19574C1.92178 5.0068 1.99535 4.82926 2.12892 4.6957C2.1944 4.62982 2.27232 4.57758 2.35814 4.54204C2.44398 4.50648 2.536 4.4883 2.6289 4.48856C2.81776 4.48856 2.99536 4.56214 3.12888 4.69574L4.2298 5.79662L6.87102 3.15542C6.93652 3.08956 7.01444 3.03734 7.10026 3.0018C7.18608 2.96626 7.2781 2.94808 7.371 2.94834C7.55986 2.94834 7.73742 3.02186 7.87098 3.15542C8.14678 3.43122 8.14678 3.87976 7.87108 4.15544Z",fill:"#00AB04"}));function un({"data-title":t,"data-color":e,"data-full-width":r,"data-font-color":o,"data-show":a}){const i=j.value;return typeof a>"u"||a!=="true"&&a!==""?d(z,{}):d(z,{children:[d("style",{type:"text/css",children:an}),d("div",{onClick:()=>{bt()},class:"bike-selector-banner_wrapper",children:d("div",{class:`bike-selector-banner ${r==="false"?"floating":""}`,style:{backgroundColor:e??"#000",maxWidth:r??null},children:d(z,{children:[d("h2",{class:"bike-selector-banner_title",style:{color:o==="black"?"#000":"#fff"},children:i?i.brand+" "+i.frameSeries:t}),d("h2",{class:"bike-selector-banner_title_mobile",style:{color:o==="black"?"#000":"#fff"},children:i?i.brand:"Check Compatibility"}),d("div",{class:"bike-selector-banner_icon-wrapper",children:[!!i&&d(sn,{class:"bike-selector-banner_tick"}),d(nn,{class:"bike-selector-banner_svg"})]})]})})})]})}const ln={type:"logger",log(t){this.output("log",t)},warn(t){this.output("warn",t)},error(t){this.output("error",t)},output(t,e){console&&console[t]&&console[t].apply(console,e)}};class yt{constructor(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.init(e,r)}init(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.prefix=r.prefix||"i18next:",this.logger=e||ln,this.options=r,this.debug=r.debug}log(){for(var e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];return this.forward(r,"log","",!0)}warn(){for(var e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];return this.forward(r,"warn","",!0)}error(){for(var e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];return this.forward(r,"error","")}deprecate(){for(var e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];return this.forward(r,"warn","WARNING DEPRECATED: ",!0)}forward(e,r,o,a){return a&&!this.debug?null:(typeof e[0]=="string"&&(e[0]=`${o}${this.prefix} ${e[0]}`),this.logger[r](e))}create(e){return new yt(this.logger,{prefix:`${this.prefix}:${e}:`,...this.options})}clone(e){return e=e||this.options,e.prefix=e.prefix||this.prefix,new yt(this.logger,e)}}var ce=new yt;class Ct{constructor(){this.observers={}}on(e,r){return e.split(" ").forEach(o=>{this.observers[o]||(this.observers[o]=new Map);const a=this.observers[o].get(r)||0;this.observers[o].set(r,a+1)}),this}off(e,r){if(this.observers[e]){if(!r){delete this.observers[e];return}this.observers[e].delete(r)}}emit(e){for(var r=arguments.length,o=new Array(r>1?r-1:0),a=1;a<r;a++)o[a-1]=arguments[a];this.observers[e]&&Array.from(this.observers[e].entries()).forEach(n=>{let[s,u]=n;for(let l=0;l<u;l++)s(...o)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(n=>{let[s,u]=n;for(let l=0;l<u;l++)s.apply(s,[e,...o])})}}const Ye=()=>{let t,e;const r=new Promise((o,a)=>{t=o,e=a});return r.resolve=t,r.reject=e,r},Fo=t=>t==null?"":""+t,cn=(t,e,r)=>{t.forEach(o=>{e[o]&&(r[o]=e[o])})},dn=/###/g,Lo=t=>t&&t.indexOf("###")>-1?t.replace(dn,"."):t,qo=t=>!t||typeof t=="string",We=(t,e,r)=>{const o=typeof e!="string"?e:e.split(".");let a=0;for(;a<o.length-1;){if(qo(t))return{};const i=Lo(o[a]);!t[i]&&r&&(t[i]=new r),Object.prototype.hasOwnProperty.call(t,i)?t=t[i]:t={},++a}return qo(t)?{}:{obj:t,k:Lo(o[a])}},zo=(t,e,r)=>{const{obj:o,k:a}=We(t,e,Object);if(o!==void 0||e.length===1){o[a]=r;return}let i=e[e.length-1],n=e.slice(0,e.length-1),s=We(t,n,Object);for(;s.obj===void 0&&n.length;)i=`${n[n.length-1]}.${i}`,n=n.slice(0,n.length-1),s=We(t,n,Object),s&&s.obj&&typeof s.obj[`${s.k}.${i}`]<"u"&&(s.obj=void 0);s.obj[`${s.k}.${i}`]=r},pn=(t,e,r,o)=>{const{obj:a,k:i}=We(t,e,Object);a[i]=a[i]||[],a[i].push(r)},kt=(t,e)=>{const{obj:r,k:o}=We(t,e);if(r)return r[o]},gn=(t,e,r)=>{const o=kt(t,r);return o!==void 0?o:kt(e,r)},Ro=(t,e,r)=>{for(const o in e)o!=="__proto__"&&o!=="constructor"&&(o in t?typeof t[o]=="string"||t[o]instanceof String||typeof e[o]=="string"||e[o]instanceof String?r&&(t[o]=e[o]):Ro(t[o],e[o],r):t[o]=e[o]);return t},Ne=t=>t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var fn={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const hn=t=>typeof t=="string"?t.replace(/[&<>"'\/]/g,e=>fn[e]):t;class bn{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){const r=this.regExpMap.get(e);if(r!==void 0)return r;const o=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,o),this.regExpQueue.push(e),o}}const mn=[" ",",","?","!",";"],_n=new bn(20),yn=(t,e,r)=>{e=e||"",r=r||"";const o=mn.filter(n=>e.indexOf(n)<0&&r.indexOf(n)<0);if(o.length===0)return!0;const a=_n.getRegExp(`(${o.map(n=>n==="?"?"\\?":n).join("|")})`);let i=!a.test(t);if(!i){const n=t.indexOf(r);n>0&&!a.test(t.substring(0,n))&&(i=!0)}return i},ar=function(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:".";if(!t)return;if(t[e])return t[e];const o=e.split(r);let a=t;for(let i=0;i<o.length;){if(!a||typeof a!="object")return;let n,s="";for(let u=i;u<o.length;++u)if(u!==i&&(s+=r),s+=o[u],n=a[s],n!==void 0){if(["string","number","boolean"].indexOf(typeof n)>-1&&u<o.length-1)continue;i+=u-i+1;break}a=n}return a},vt=t=>t&&t.replace("_","-");class No extends Ct{constructor(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{ns:["translation"],defaultNS:"translation"};super(),this.data=e||{},this.options=r,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}removeNamespaces(e){const r=this.options.ns.indexOf(e);r>-1&&this.options.ns.splice(r,1)}getResource(e,r,o){let a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const i=a.keySeparator!==void 0?a.keySeparator:this.options.keySeparator,n=a.ignoreJSONStructure!==void 0?a.ignoreJSONStructure:this.options.ignoreJSONStructure;let s;e.indexOf(".")>-1?s=e.split("."):(s=[e,r],o&&(Array.isArray(o)?s.push(...o):typeof o=="string"&&i?s.push(...o.split(i)):s.push(o)));const u=kt(this.data,s);return!u&&!r&&!o&&e.indexOf(".")>-1&&(e=s[0],r=s[1],o=s.slice(2).join(".")),u||!n||typeof o!="string"?u:ar(this.data&&this.data[e]&&this.data[e][r],o,i)}addResource(e,r,o,a){let i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1};const n=i.keySeparator!==void 0?i.keySeparator:this.options.keySeparator;let s=[e,r];o&&(s=s.concat(n?o.split(n):o)),e.indexOf(".")>-1&&(s=e.split("."),a=r,r=s[1]),this.addNamespaces(r),zo(this.data,s,a),i.silent||this.emit("added",e,r,o,a)}addResources(e,r,o){let a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(const i in o)(typeof o[i]=="string"||Array.isArray(o[i]))&&this.addResource(e,r,i,o[i],{silent:!0});a.silent||this.emit("added",e,r,o)}addResourceBundle(e,r,o,a,i){let n=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1,skipCopy:!1},s=[e,r];e.indexOf(".")>-1&&(s=e.split("."),a=o,o=r,r=s[1]),this.addNamespaces(r);let u=kt(this.data,s)||{};n.skipCopy||(o=JSON.parse(JSON.stringify(o))),a?Ro(u,o,i):u={...u,...o},zo(this.data,s,u),n.silent||this.emit("added",e,r,o)}removeResourceBundle(e,r){this.hasResourceBundle(e,r)&&delete this.data[e][r],this.removeNamespaces(r),this.emit("removed",e,r)}hasResourceBundle(e,r){return this.getResource(e,r)!==void 0}getResourceBundle(e,r){return r||(r=this.options.defaultNS),this.options.compatibilityAPI==="v1"?{...this.getResource(e,r)}:this.getResource(e,r)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){const r=this.getDataByLanguage(e);return!!(r&&Object.keys(r)||[]).find(a=>r[a]&&Object.keys(r[a]).length>0)}toJSON(){return this.data}}var Po={processors:{},addPostProcessor(t){this.processors[t.name]=t},handle(t,e,r,o,a){return t.forEach(i=>{this.processors[i]&&(e=this.processors[i].process(e,r,o,a))}),e}};const To={};class xt extends Ct{constructor(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),cn(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,this),this.options=r,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=ce.create("translator")}changeLanguage(e){e&&(this.language=e)}exists(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};if(e==null)return!1;const o=this.resolve(e,r);return o&&o.res!==void 0}extractFromKey(e,r){let o=r.nsSeparator!==void 0?r.nsSeparator:this.options.nsSeparator;o===void 0&&(o=":");const a=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator;let i=r.ns||this.options.defaultNS||[];const n=o&&e.indexOf(o)>-1,s=!this.options.userDefinedKeySeparator&&!r.keySeparator&&!this.options.userDefinedNsSeparator&&!r.nsSeparator&&!yn(e,o,a);if(n&&!s){const u=e.match(this.interpolator.nestingRegexp);if(u&&u.length>0)return{key:e,namespaces:i};const l=e.split(o);(o!==a||o===a&&this.options.ns.indexOf(l[0])>-1)&&(i=l.shift()),e=l.join(a)}return typeof i=="string"&&(i=[i]),{key:e,namespaces:i}}translate(e,r,o){if(typeof r!="object"&&this.options.overloadTranslationOptionHandler&&(r=this.options.overloadTranslationOptionHandler(arguments)),typeof r=="object"&&(r={...r}),r||(r={}),e==null)return"";Array.isArray(e)||(e=[String(e)]);const a=r.returnDetails!==void 0?r.returnDetails:this.options.returnDetails,i=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator,{key:n,namespaces:s}=this.extractFromKey(e[e.length-1],r),u=s[s.length-1],l=r.lng||this.language,p=r.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(l&&l.toLowerCase()==="cimode"){if(p){const k=r.nsSeparator||this.options.nsSeparator;return a?{res:`${u}${k}${n}`,usedKey:n,exactUsedKey:n,usedLng:l,usedNS:u,usedParams:this.getUsedParamsDetails(r)}:`${u}${k}${n}`}return a?{res:n,usedKey:n,exactUsedKey:n,usedLng:l,usedNS:u,usedParams:this.getUsedParamsDetails(r)}:n}const c=this.resolve(e,r);let g=c&&c.res;const f=c&&c.usedKey||n,_=c&&c.exactUsedKey||n,m=Object.prototype.toString.apply(g),y=["[object Number]","[object Function]","[object RegExp]"],C=r.joinArrays!==void 0?r.joinArrays:this.options.joinArrays,b=!this.i18nFormat||this.i18nFormat.handleAsObject;if(b&&g&&(typeof g!="string"&&typeof g!="boolean"&&typeof g!="number")&&y.indexOf(m)<0&&!(typeof C=="string"&&Array.isArray(g))){if(!r.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const k=this.options.returnedObjectHandler?this.options.returnedObjectHandler(f,g,{...r,ns:s}):`key '${n} (${this.language})' returned an object instead of string.`;return a?(c.res=k,c.usedParams=this.getUsedParamsDetails(r),c):k}if(i){const k=Array.isArray(g),w=k?[]:{},B=k?_:f;for(const S in g)if(Object.prototype.hasOwnProperty.call(g,S)){const R=`${B}${i}${S}`;w[S]=this.translate(R,{...r,joinArrays:!1,ns:s}),w[S]===R&&(w[S]=g[S])}g=w}}else if(b&&typeof C=="string"&&Array.isArray(g))g=g.join(C),g&&(g=this.extendTranslation(g,e,r,o));else{let k=!1,w=!1;const B=r.count!==void 0&&typeof r.count!="string",S=xt.hasDefaultValue(r),R=B?this.pluralResolver.getSuffix(l,r.count,r):"",q=r.ordinal&&B?this.pluralResolver.getSuffix(l,r.count,{ordinal:!1}):"",U=B&&!r.ordinal&&r.count===0&&this.pluralResolver.shouldUseIntlApi(),V=U&&r[`defaultValue${this.options.pluralSeparator}zero`]||r[`defaultValue${R}`]||r[`defaultValue${q}`]||r.defaultValue;!this.isValidLookup(g)&&S&&(k=!0,g=V),this.isValidLookup(g)||(w=!0,g=n);const G=(r.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&w?void 0:g,x=S&&V!==g&&this.options.updateMissing;if(w||k||x){if(this.logger.log(x?"updateKey":"missingKey",l,u,n,x?V:g),i){const T=this.resolve(n,{...r,keySeparator:!1});T&&T.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let D=[];const N=this.languageUtils.getFallbackCodes(this.options.fallbackLng,r.lng||this.language);if(this.options.saveMissingTo==="fallback"&&N&&N[0])for(let T=0;T<N.length;T++)D.push(N[T]);else this.options.saveMissingTo==="all"?D=this.languageUtils.toResolveHierarchy(r.lng||this.language):D.push(r.lng||this.language);const Y=(T,h,F)=>{const P=S&&F!==g?F:G;this.options.missingKeyHandler?this.options.missingKeyHandler(T,u,h,P,x,r):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(T,u,h,P,x,r),this.emit("missingKey",T,u,h,g)};this.options.saveMissing&&(this.options.saveMissingPlurals&&B?D.forEach(T=>{const h=this.pluralResolver.getSuffixes(T,r);U&&r[`defaultValue${this.options.pluralSeparator}zero`]&&h.indexOf(`${this.options.pluralSeparator}zero`)<0&&h.push(`${this.options.pluralSeparator}zero`),h.forEach(F=>{Y([T],n+F,r[`defaultValue${F}`]||V)})}):Y(D,n,V))}g=this.extendTranslation(g,e,r,c,o),w&&g===n&&this.options.appendNamespaceToMissingKey&&(g=`${u}:${n}`),(w||k)&&this.options.parseMissingKeyHandler&&(this.options.compatibilityAPI!=="v1"?g=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${u}:${n}`:n,k?g:void 0):g=this.options.parseMissingKeyHandler(g))}return a?(c.res=g,c.usedParams=this.getUsedParamsDetails(r),c):g}extendTranslation(e,r,o,a,i){var n=this;if(this.i18nFormat&&this.i18nFormat.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...o},o.lng||this.language||a.usedLng,a.usedNS,a.usedKey,{resolved:a});else if(!o.skipInterpolation){o.interpolation&&this.interpolator.init({...o,interpolation:{...this.options.interpolation,...o.interpolation}});const l=typeof e=="string"&&(o&&o.interpolation&&o.interpolation.skipOnVariables!==void 0?o.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let p;if(l){const g=e.match(this.interpolator.nestingRegexp);p=g&&g.length}let c=o.replace&&typeof o.replace!="string"?o.replace:o;if(this.options.interpolation.defaultVariables&&(c={...this.options.interpolation.defaultVariables,...c}),e=this.interpolator.interpolate(e,c,o.lng||this.language||a.usedLng,o),l){const g=e.match(this.interpolator.nestingRegexp),f=g&&g.length;p<f&&(o.nest=!1)}!o.lng&&this.options.compatibilityAPI!=="v1"&&a&&a.res&&(o.lng=this.language||a.usedLng),o.nest!==!1&&(e=this.interpolator.nest(e,function(){for(var g=arguments.length,f=new Array(g),_=0;_<g;_++)f[_]=arguments[_];return i&&i[0]===f[0]&&!o.context?(n.logger.warn(`It seems you are nesting recursively key: ${f[0]} in key: ${r[0]}`),null):n.translate(...f,r)},o)),o.interpolation&&this.interpolator.reset()}const s=o.postProcess||this.options.postProcess,u=typeof s=="string"?[s]:s;return e!=null&&u&&u.length&&o.applyPostProcessor!==!1&&(e=Po.handle(u,e,r,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...a,usedParams:this.getUsedParamsDetails(o)},...o}:o,this)),e}resolve(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o,a,i,n,s;return typeof e=="string"&&(e=[e]),e.forEach(u=>{if(this.isValidLookup(o))return;const l=this.extractFromKey(u,r),p=l.key;a=p;let c=l.namespaces;this.options.fallbackNS&&(c=c.concat(this.options.fallbackNS));const g=r.count!==void 0&&typeof r.count!="string",f=g&&!r.ordinal&&r.count===0&&this.pluralResolver.shouldUseIntlApi(),_=r.context!==void 0&&(typeof r.context=="string"||typeof r.context=="number")&&r.context!=="",m=r.lngs?r.lngs:this.languageUtils.toResolveHierarchy(r.lng||this.language,r.fallbackLng);c.forEach(y=>{this.isValidLookup(o)||(s=y,!To[`${m[0]}-${y}`]&&this.utils&&this.utils.hasLoadedNamespace&&!this.utils.hasLoadedNamespace(s)&&(To[`${m[0]}-${y}`]=!0,this.logger.warn(`key "${a}" for languages "${m.join(", ")}" won't get resolved as namespace "${s}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),m.forEach(C=>{if(this.isValidLookup(o))return;n=C;const b=[p];if(this.i18nFormat&&this.i18nFormat.addLookupKeys)this.i18nFormat.addLookupKeys(b,p,C,y,r);else{let k;g&&(k=this.pluralResolver.getSuffix(C,r.count,r));const w=`${this.options.pluralSeparator}zero`,B=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(g&&(b.push(p+k),r.ordinal&&k.indexOf(B)===0&&b.push(p+k.replace(B,this.options.pluralSeparator)),f&&b.push(p+w)),_){const S=`${p}${this.options.contextSeparator}${r.context}`;b.push(S),g&&(b.push(S+k),r.ordinal&&k.indexOf(B)===0&&b.push(S+k.replace(B,this.options.pluralSeparator)),f&&b.push(S+w))}}let v;for(;v=b.pop();)this.isValidLookup(o)||(i=v,o=this.getResource(C,y,v,r))}))})}),{res:o,usedKey:a,exactUsedKey:i,usedLng:n,usedNS:s}}isValidLookup(e){return e!==void 0&&!(!this.options.returnNull&&e===null)&&!(!this.options.returnEmptyString&&e==="")}getResource(e,r,o){let a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,r,o,a):this.resourceStore.getResource(e,r,o,a)}getUsedParamsDetails(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const r=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],o=e.replace&&typeof e.replace!="string";let a=o?e.replace:e;if(o&&typeof e.count<"u"&&(a.count=e.count),this.options.interpolation.defaultVariables&&(a={...this.options.interpolation.defaultVariables,...a}),!o){a={...a};for(const i of r)delete a[i]}return a}static hasDefaultValue(e){const r="defaultValue";for(const o in e)if(Object.prototype.hasOwnProperty.call(e,o)&&r===o.substring(0,r.length)&&e[o]!==void 0)return!0;return!1}}const ir=t=>t.charAt(0).toUpperCase()+t.slice(1);class Oo{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=ce.create("languageUtils")}getScriptPartFromCode(e){if(e=vt(e),!e||e.indexOf("-")<0)return null;const r=e.split("-");return r.length===2||(r.pop(),r[r.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(r.join("-"))}getLanguagePartFromCode(e){if(e=vt(e),!e||e.indexOf("-")<0)return e;const r=e.split("-");return this.formatLanguageCode(r[0])}formatLanguageCode(e){if(typeof e=="string"&&e.indexOf("-")>-1){if(typeof Intl<"u"&&typeof Intl.getCanonicalLocales<"u")try{let a=Intl.getCanonicalLocales(e)[0];if(a&&this.options.lowerCaseLng&&(a=a.toLowerCase()),a)return a}catch{}const r=["hans","hant","latn","cyrl","cans","mong","arab"];let o=e.split("-");return this.options.lowerCaseLng?o=o.map(a=>a.toLowerCase()):o.length===2?(o[0]=o[0].toLowerCase(),o[1]=o[1].toUpperCase(),r.indexOf(o[1].toLowerCase())>-1&&(o[1]=ir(o[1].toLowerCase()))):o.length===3&&(o[0]=o[0].toLowerCase(),o[1].length===2&&(o[1]=o[1].toUpperCase()),o[0]!=="sgn"&&o[2].length===2&&(o[2]=o[2].toUpperCase()),r.indexOf(o[1].toLowerCase())>-1&&(o[1]=ir(o[1].toLowerCase())),r.indexOf(o[2].toLowerCase())>-1&&(o[2]=ir(o[2].toLowerCase()))),o.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}getBestMatchFromCodes(e){if(!e)return null;let r;return e.forEach(o=>{if(r)return;const a=this.formatLanguageCode(o);(!this.options.supportedLngs||this.isSupportedCode(a))&&(r=a)}),!r&&this.options.supportedLngs&&e.forEach(o=>{if(r)return;const a=this.getLanguagePartFromCode(o);if(this.isSupportedCode(a))return r=a;r=this.options.supportedLngs.find(i=>{if(i===a)return i;if(!(i.indexOf("-")<0&&a.indexOf("-")<0)&&(i.indexOf("-")>0&&a.indexOf("-")<0&&i.substring(0,i.indexOf("-"))===a||i.indexOf(a)===0&&a.length>1))return i})}),r||(r=this.getFallbackCodes(this.options.fallbackLng)[0]),r}getFallbackCodes(e,r){if(!e)return[];if(typeof e=="function"&&(e=e(r)),typeof e=="string"&&(e=[e]),Array.isArray(e))return e;if(!r)return e.default||[];let o=e[r];return o||(o=e[this.getScriptPartFromCode(r)]),o||(o=e[this.formatLanguageCode(r)]),o||(o=e[this.getLanguagePartFromCode(r)]),o||(o=e.default),o||[]}toResolveHierarchy(e,r){const o=this.getFallbackCodes(r||this.options.fallbackLng||[],e),a=[],i=n=>{n&&(this.isSupportedCode(n)?a.push(n):this.logger.warn(`rejecting language code not found in supportedLngs: ${n}`))};return typeof e=="string"&&(e.indexOf("-")>-1||e.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&i(this.formatLanguageCode(e)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&i(this.getScriptPartFromCode(e)),this.options.load!=="currentOnly"&&i(this.getLanguagePartFromCode(e))):typeof e=="string"&&i(this.formatLanguageCode(e)),o.forEach(n=>{a.indexOf(n)<0&&i(this.formatLanguageCode(n))}),a}}let Cn=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],kn={1:t=>+(t>1),2:t=>+(t!=1),3:t=>0,4:t=>t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2,5:t=>t==0?0:t==1?1:t==2?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5,6:t=>t==1?0:t>=2&&t<=4?1:2,7:t=>t==1?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2,8:t=>t==1?0:t==2?1:t!=8&&t!=11?2:3,9:t=>+(t>=2),10:t=>t==1?0:t==2?1:t<7?2:t<11?3:4,11:t=>t==1||t==11?0:t==2||t==12?1:t>2&&t<20?2:3,12:t=>+(t%10!=1||t%100==11),13:t=>+(t!==0),14:t=>t==1?0:t==2?1:t==3?2:3,15:t=>t%10==1&&t%100!=11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2,16:t=>t%10==1&&t%100!=11?0:t!==0?1:2,17:t=>t==1||t%10==1&&t%100!=11?0:1,18:t=>t==0?0:t==1?1:2,19:t=>t==1?0:t==0||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3,20:t=>t==1?0:t==0||t%100>0&&t%100<20?1:2,21:t=>t%100==1?1:t%100==2?2:t%100==3||t%100==4?3:0,22:t=>t==1?0:t==2?1:(t<0||t>10)&&t%10==0?2:3};const vn=["v1","v2","v3"],xn=["v4"],Uo={zero:0,one:1,two:2,few:3,many:4,other:5},wn=()=>{const t={};return Cn.forEach(e=>{e.lngs.forEach(r=>{t[r]={numbers:e.nr,plurals:kn[e.fc]}})}),t};class Dn{constructor(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.languageUtils=e,this.options=r,this.logger=ce.create("pluralResolver"),(!this.options.compatibilityJSON||xn.includes(this.options.compatibilityJSON))&&(typeof Intl>"u"||!Intl.PluralRules)&&(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=wn(),this.pluralRulesCache={}}addRule(e,r){this.rules[e]=r}clearCache(){this.pluralRulesCache={}}getRule(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.shouldUseIntlApi())try{const o=vt(e==="dev"?"en":e),a=r.ordinal?"ordinal":"cardinal",i=JSON.stringify({cleanedCode:o,type:a});if(i in this.pluralRulesCache)return this.pluralRulesCache[i];const n=new Intl.PluralRules(o,{type:a});return this.pluralRulesCache[i]=n,n}catch{return}return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}needsPlural(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const o=this.getRule(e,r);return this.shouldUseIntlApi()?o&&o.resolvedOptions().pluralCategories.length>1:o&&o.numbers.length>1}getPluralFormsOfKey(e,r){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(e,o).map(a=>`${r}${a}`)}getSuffixes(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const o=this.getRule(e,r);return o?this.shouldUseIntlApi()?o.resolvedOptions().pluralCategories.sort((a,i)=>Uo[a]-Uo[i]).map(a=>`${this.options.prepend}${r.ordinal?`ordinal${this.options.prepend}`:""}${a}`):o.numbers.map(a=>this.getSuffix(e,a,r)):[]}getSuffix(e,r){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const a=this.getRule(e,o);return a?this.shouldUseIntlApi()?`${this.options.prepend}${o.ordinal?`ordinal${this.options.prepend}`:""}${a.select(r)}`:this.getSuffixRetroCompatible(a,r):(this.logger.warn(`no plural rule found for: ${e}`),"")}getSuffixRetroCompatible(e,r){const o=e.noAbs?e.plurals(r):e.plurals(Math.abs(r));let a=e.numbers[o];this.options.simplifyPluralSuffix&&e.numbers.length===2&&e.numbers[0]===1&&(a===2?a="plural":a===1&&(a=""));const i=()=>this.options.prepend&&a.toString()?this.options.prepend+a.toString():a.toString();return this.options.compatibilityJSON==="v1"?a===1?"":typeof a=="number"?`_plural_${a.toString()}`:i():this.options.compatibilityJSON==="v2"||this.options.simplifyPluralSuffix&&e.numbers.length===2&&e.numbers[0]===1?i():this.options.prepend&&o.toString()?this.options.prepend+o.toString():o.toString()}shouldUseIntlApi(){return!vn.includes(this.options.compatibilityJSON)}}const Io=function(t,e,r){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:".",a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=gn(t,e,r);return!i&&a&&typeof r=="string"&&(i=ar(t,r,o),i===void 0&&(i=ar(e,r,o))),i},nr=t=>t.replace(/\$/g,"$$$$");class An{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=ce.create("interpolator"),this.options=e,this.format=e.interpolation&&e.interpolation.format||(r=>r),this.init(e)}init(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});const{escape:r,escapeValue:o,useRawValueToEscape:a,prefix:i,prefixEscaped:n,suffix:s,suffixEscaped:u,formatSeparator:l,unescapeSuffix:p,unescapePrefix:c,nestingPrefix:g,nestingPrefixEscaped:f,nestingSuffix:_,nestingSuffixEscaped:m,nestingOptionsSeparator:y,maxReplaces:C,alwaysFormat:b}=e.interpolation;this.escape=r!==void 0?r:hn,this.escapeValue=o!==void 0?o:!0,this.useRawValueToEscape=a!==void 0?a:!1,this.prefix=i?Ne(i):n||"{{",this.suffix=s?Ne(s):u||"}}",this.formatSeparator=l||",",this.unescapePrefix=p?"":c||"-",this.unescapeSuffix=this.unescapePrefix?"":p||"",this.nestingPrefix=g?Ne(g):f||Ne("$t("),this.nestingSuffix=_?Ne(_):m||Ne(")"),this.nestingOptionsSeparator=y||",",this.maxReplaces=C||1e3,this.alwaysFormat=b!==void 0?b:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const e=(r,o)=>r&&r.source===o?(r.lastIndex=0,r):new RegExp(o,"g");this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(e,r,o,a){let i,n,s;const u=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},l=f=>{if(f.indexOf(this.formatSeparator)<0){const C=Io(r,u,f,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(C,void 0,o,{...a,...r,interpolationkey:f}):C}const _=f.split(this.formatSeparator),m=_.shift().trim(),y=_.join(this.formatSeparator).trim();return this.format(Io(r,u,m,this.options.keySeparator,this.options.ignoreJSONStructure),y,o,{...a,...r,interpolationkey:m})};this.resetRegExp();const p=a&&a.missingInterpolationHandler||this.options.missingInterpolationHandler,c=a&&a.interpolation&&a.interpolation.skipOnVariables!==void 0?a.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:f=>nr(f)},{regex:this.regexp,safeValue:f=>this.escapeValue?nr(this.escape(f)):nr(f)}].forEach(f=>{for(s=0;i=f.regex.exec(e);){const _=i[1].trim();if(n=l(_),n===void 0)if(typeof p=="function"){const y=p(e,i,a);n=typeof y=="string"?y:""}else if(a&&Object.prototype.hasOwnProperty.call(a,_))n="";else if(c){n=i[0];continue}else this.logger.warn(`missed to pass in variable ${_} for interpolating ${e}`),n="";else typeof n!="string"&&!this.useRawValueToEscape&&(n=Fo(n));const m=f.safeValue(n);if(e=e.replace(i[0],m),c?(f.regex.lastIndex+=n.length,f.regex.lastIndex-=i[0].length):f.regex.lastIndex=0,s++,s>=this.maxReplaces)break}}),e}nest(e,r){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a,i,n;const s=(u,l)=>{const p=this.nestingOptionsSeparator;if(u.indexOf(p)<0)return u;const c=u.split(new RegExp(`${p}[ ]*{`));let g=`{${c[1]}`;u=c[0],g=this.interpolate(g,n);const f=g.match(/'/g),_=g.match(/"/g);(f&&f.length%2===0&&!_||_.length%2!==0)&&(g=g.replace(/'/g,'"'));try{n=JSON.parse(g),l&&(n={...l,...n})}catch(m){return this.logger.warn(`failed parsing options string in nesting for key ${u}`,m),`${u}${p}${g}`}return n.defaultValue&&n.defaultValue.indexOf(this.prefix)>-1&&delete n.defaultValue,u};for(;a=this.nestingRegexp.exec(e);){let u=[];n={...o},n=n.replace&&typeof n.replace!="string"?n.replace:n,n.applyPostProcessor=!1,delete n.defaultValue;let l=!1;if(a[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(a[1])){const p=a[1].split(this.formatSeparator).map(c=>c.trim());a[1]=p.shift(),u=p,l=!0}if(i=r(s.call(this,a[1].trim(),n),n),i&&a[0]===e&&typeof i!="string")return i;typeof i!="string"&&(i=Fo(i)),i||(this.logger.warn(`missed to resolve ${a[1]} for nesting ${e}`),i=""),l&&(i=u.reduce((p,c)=>this.format(p,c,o.lng,{...o,interpolationkey:a[1].trim()}),i.trim())),e=e.replace(a[0],i),this.regexp.lastIndex=0}return e}}const Bn=t=>{let e=t.toLowerCase().trim();const r={};if(t.indexOf("(")>-1){const o=t.split("(");e=o[0].toLowerCase().trim();const a=o[1].substring(0,o[1].length-1);e==="currency"&&a.indexOf(":")<0?r.currency||(r.currency=a.trim()):e==="relativetime"&&a.indexOf(":")<0?r.range||(r.range=a.trim()):a.split(";").forEach(n=>{if(n){const[s,...u]=n.split(":"),l=u.join(":").trim().replace(/^'+|'+$/g,""),p=s.trim();r[p]||(r[p]=l),l==="false"&&(r[p]=!1),l==="true"&&(r[p]=!0),isNaN(l)||(r[p]=parseInt(l,10))}})}return{formatName:e,formatOptions:r}},Pe=t=>{const e={};return(r,o,a)=>{let i=a;a&&a.interpolationkey&&a.formatParams&&a.formatParams[a.interpolationkey]&&a[a.interpolationkey]&&(i={...i,[a.interpolationkey]:void 0});const n=o+JSON.stringify(i);let s=e[n];return s||(s=t(vt(o),a),e[n]=s),s(r)}};class Sn{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=ce.create("formatter"),this.options=e,this.formats={number:Pe((r,o)=>{const a=new Intl.NumberFormat(r,{...o});return i=>a.format(i)}),currency:Pe((r,o)=>{const a=new Intl.NumberFormat(r,{...o,style:"currency"});return i=>a.format(i)}),datetime:Pe((r,o)=>{const a=new Intl.DateTimeFormat(r,{...o});return i=>a.format(i)}),relativetime:Pe((r,o)=>{const a=new Intl.RelativeTimeFormat(r,{...o});return i=>a.format(i,o.range||"day")}),list:Pe((r,o)=>{const a=new Intl.ListFormat(r,{...o});return i=>a.format(i)})},this.init(e)}init(e){const o=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}}).interpolation;this.formatSeparator=o.formatSeparator?o.formatSeparator:o.formatSeparator||","}add(e,r){this.formats[e.toLowerCase().trim()]=r}addCached(e,r){this.formats[e.toLowerCase().trim()]=Pe(r)}format(e,r,o){let a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const i=r.split(this.formatSeparator);if(i.length>1&&i[0].indexOf("(")>1&&i[0].indexOf(")")<0&&i.find(s=>s.indexOf(")")>-1)){const s=i.findIndex(u=>u.indexOf(")")>-1);i[0]=[i[0],...i.splice(1,s)].join(this.formatSeparator)}return i.reduce((s,u)=>{const{formatName:l,formatOptions:p}=Bn(u);if(this.formats[l]){let c=s;try{const g=a&&a.formatParams&&a.formatParams[a.interpolationkey]||{},f=g.locale||g.lng||a.locale||a.lng||o;c=this.formats[l](s,f,{...p,...a,...g})}catch(g){this.logger.warn(g)}return c}else this.logger.warn(`there was no format function for ${l}`);return s},e)}}const En=(t,e)=>{t.pending[e]!==void 0&&(delete t.pending[e],t.pendingCount--)};class Fn extends Ct{constructor(e,r,o){let a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};super(),this.backend=e,this.store=r,this.services=o,this.languageUtils=o.languageUtils,this.options=a,this.logger=ce.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=a.maxParallelReads||10,this.readingCalls=0,this.maxRetries=a.maxRetries>=0?a.maxRetries:5,this.retryTimeout=a.retryTimeout>=1?a.retryTimeout:350,this.state={},this.queue=[],this.backend&&this.backend.init&&this.backend.init(o,a.backend,a)}queueLoad(e,r,o,a){const i={},n={},s={},u={};return e.forEach(l=>{let p=!0;r.forEach(c=>{const g=`${l}|${c}`;!o.reload&&this.store.hasResourceBundle(l,c)?this.state[g]=2:this.state[g]<0||(this.state[g]===1?n[g]===void 0&&(n[g]=!0):(this.state[g]=1,p=!1,n[g]===void 0&&(n[g]=!0),i[g]===void 0&&(i[g]=!0),u[c]===void 0&&(u[c]=!0)))}),p||(s[l]=!0)}),(Object.keys(i).length||Object.keys(n).length)&&this.queue.push({pending:n,pendingCount:Object.keys(n).length,loaded:{},errors:[],callback:a}),{toLoad:Object.keys(i),pending:Object.keys(n),toLoadLanguages:Object.keys(s),toLoadNamespaces:Object.keys(u)}}loaded(e,r,o){const a=e.split("|"),i=a[0],n=a[1];r&&this.emit("failedLoading",i,n,r),!r&&o&&this.store.addResourceBundle(i,n,o,void 0,void 0,{skipCopy:!0}),this.state[e]=r?-1:2,r&&o&&(this.state[e]=0);const s={};this.queue.forEach(u=>{pn(u.loaded,[i],n),En(u,e),r&&u.errors.push(r),u.pendingCount===0&&!u.done&&(Object.keys(u.loaded).forEach(l=>{s[l]||(s[l]={});const p=u.loaded[l];p.length&&p.forEach(c=>{s[l][c]===void 0&&(s[l][c]=!0)})}),u.done=!0,u.errors.length?u.callback(u.errors):u.callback())}),this.emit("loaded",s),this.queue=this.queue.filter(u=>!u.done)}read(e,r,o){let a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.retryTimeout,n=arguments.length>5?arguments[5]:void 0;if(!e.length)return n(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:e,ns:r,fcName:o,tried:a,wait:i,callback:n});return}this.readingCalls++;const s=(l,p)=>{if(this.readingCalls--,this.waitingReads.length>0){const c=this.waitingReads.shift();this.read(c.lng,c.ns,c.fcName,c.tried,c.wait,c.callback)}if(l&&p&&a<this.maxRetries){setTimeout(()=>{this.read.call(this,e,r,o,a+1,i*2,n)},i);return}n(l,p)},u=this.backend[o].bind(this.backend);if(u.length===2){try{const l=u(e,r);l&&typeof l.then=="function"?l.then(p=>s(null,p)).catch(s):s(null,l)}catch(l){s(l)}return}return u(e,r,s)}prepareLoading(e,r){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),a&&a();typeof e=="string"&&(e=this.languageUtils.toResolveHierarchy(e)),typeof r=="string"&&(r=[r]);const i=this.queueLoad(e,r,o,a);if(!i.toLoad.length)return i.pending.length||a(),null;i.toLoad.forEach(n=>{this.loadOne(n)})}load(e,r,o){this.prepareLoading(e,r,{},o)}reload(e,r,o){this.prepareLoading(e,r,{reload:!0},o)}loadOne(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const o=e.split("|"),a=o[0],i=o[1];this.read(a,i,"read",void 0,void 0,(n,s)=>{n&&this.logger.warn(`${r}loading namespace ${i} for language ${a} failed`,n),!n&&s&&this.logger.log(`${r}loaded namespace ${i} for language ${a}`,s),this.loaded(e,n,s)})}saveMissing(e,r,o,a,i){let n=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},s=arguments.length>6&&arguments[6]!==void 0?arguments[6]:()=>{};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(r)){this.logger.warn(`did not save key "${o}" as the namespace "${r}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(o==null||o==="")){if(this.backend&&this.backend.create){const u={...n,isUpdate:i},l=this.backend.create.bind(this.backend);if(l.length<6)try{let p;l.length===5?p=l(e,r,o,a,u):p=l(e,r,o,a),p&&typeof p.then=="function"?p.then(c=>s(null,c)).catch(s):s(null,p)}catch(p){s(p)}else l(e,r,o,a,s,u)}!e||!e[0]||this.store.addResource(e[0],r,o,a)}}}const Vo=()=>({debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:t=>{let e={};if(typeof t[1]=="object"&&(e=t[1]),typeof t[1]=="string"&&(e.defaultValue=t[1]),typeof t[2]=="string"&&(e.tDescription=t[2]),typeof t[2]=="object"||typeof t[3]=="object"){const r=t[3]||t[2];Object.keys(r).forEach(o=>{e[o]=r[o]})}return e},interpolation:{escapeValue:!0,format:t=>t,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}),Mo=t=>(typeof t.ns=="string"&&(t.ns=[t.ns]),typeof t.fallbackLng=="string"&&(t.fallbackLng=[t.fallbackLng]),typeof t.fallbackNS=="string"&&(t.fallbackNS=[t.fallbackNS]),t.supportedLngs&&t.supportedLngs.indexOf("cimode")<0&&(t.supportedLngs=t.supportedLngs.concat(["cimode"])),t),wt=()=>{},Ln=t=>{Object.getOwnPropertyNames(Object.getPrototypeOf(t)).forEach(r=>{typeof t[r]=="function"&&(t[r]=t[r].bind(t))})};class Ze extends Ct{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;if(super(),this.options=Mo(e),this.services={},this.logger=ce,this.modules={external:[]},Ln(this),r&&!this.isInitialized&&!e.isClone){if(!this.options.initImmediate)return this.init(e,r),this;setTimeout(()=>{this.init(e,r)},0)}}init(){var e=this;let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0;this.isInitializing=!0,typeof r=="function"&&(o=r,r={}),!r.defaultNS&&r.defaultNS!==!1&&r.ns&&(typeof r.ns=="string"?r.defaultNS=r.ns:r.ns.indexOf("translation")<0&&(r.defaultNS=r.ns[0]));const a=Vo();this.options={...a,...this.options,...Mo(r)},this.options.compatibilityAPI!=="v1"&&(this.options.interpolation={...a.interpolation,...this.options.interpolation}),r.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=r.keySeparator),r.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=r.nsSeparator);const i=p=>p?typeof p=="function"?new p:p:null;if(!this.options.isClone){this.modules.logger?ce.init(i(this.modules.logger),this.options):ce.init(null,this.options);let p;this.modules.formatter?p=this.modules.formatter:typeof Intl<"u"&&(p=Sn);const c=new Oo(this.options);this.store=new No(this.options.resources,this.options);const g=this.services;g.logger=ce,g.resourceStore=this.store,g.languageUtils=c,g.pluralResolver=new Dn(c,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),p&&(!this.options.interpolation.format||this.options.interpolation.format===a.interpolation.format)&&(g.formatter=i(p),g.formatter.init(g,this.options),this.options.interpolation.format=g.formatter.format.bind(g.formatter)),g.interpolator=new An(this.options),g.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},g.backendConnector=new Fn(i(this.modules.backend),g.resourceStore,g,this.options),g.backendConnector.on("*",function(f){for(var _=arguments.length,m=new Array(_>1?_-1:0),y=1;y<_;y++)m[y-1]=arguments[y];e.emit(f,...m)}),this.modules.languageDetector&&(g.languageDetector=i(this.modules.languageDetector),g.languageDetector.init&&g.languageDetector.init(g,this.options.detection,this.options)),this.modules.i18nFormat&&(g.i18nFormat=i(this.modules.i18nFormat),g.i18nFormat.init&&g.i18nFormat.init(this)),this.translator=new xt(this.services,this.options),this.translator.on("*",function(f){for(var _=arguments.length,m=new Array(_>1?_-1:0),y=1;y<_;y++)m[y-1]=arguments[y];e.emit(f,...m)}),this.modules.external.forEach(f=>{f.init&&f.init(this)})}if(this.format=this.options.interpolation.format,o||(o=wt),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const p=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);p.length>0&&p[0]!=="dev"&&(this.options.lng=p[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(p=>{this[p]=function(){return e.store[p](...arguments)}}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(p=>{this[p]=function(){return e.store[p](...arguments),e}});const u=Ye(),l=()=>{const p=(c,g)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),u.resolve(g),o(c,g)};if(this.languages&&this.options.compatibilityAPI!=="v1"&&!this.isInitialized)return p(null,this.t.bind(this));this.changeLanguage(this.options.lng,p)};return this.options.resources||!this.options.initImmediate?l():setTimeout(l,0),u}loadResources(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:wt;const a=typeof e=="string"?e:this.language;if(typeof e=="function"&&(o=e),!this.options.resources||this.options.partialBundledLanguages){if(a&&a.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return o();const i=[],n=s=>{if(!s||s==="cimode")return;this.services.languageUtils.toResolveHierarchy(s).forEach(l=>{l!=="cimode"&&i.indexOf(l)<0&&i.push(l)})};a?n(a):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(u=>n(u)),this.options.preload&&this.options.preload.forEach(s=>n(s)),this.services.backendConnector.load(i,this.options.ns,s=>{!s&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),o(s)})}else o(null)}reloadResources(e,r,o){const a=Ye();return typeof e=="function"&&(o=e,e=void 0),typeof r=="function"&&(o=r,r=void 0),e||(e=this.languages),r||(r=this.options.ns),o||(o=wt),this.services.backendConnector.reload(e,r,i=>{a.resolve(),o(i)}),a}use(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return e.type==="backend"&&(this.modules.backend=e),(e.type==="logger"||e.log&&e.warn&&e.error)&&(this.modules.logger=e),e.type==="languageDetector"&&(this.modules.languageDetector=e),e.type==="i18nFormat"&&(this.modules.i18nFormat=e),e.type==="postProcessor"&&Po.addPostProcessor(e),e.type==="formatter"&&(this.modules.formatter=e),e.type==="3rdParty"&&this.modules.external.push(e),this}setResolvedLanguage(e){if(!(!e||!this.languages)&&!(["cimode","dev"].indexOf(e)>-1))for(let r=0;r<this.languages.length;r++){const o=this.languages[r];if(!(["cimode","dev"].indexOf(o)>-1)&&this.store.hasLanguageSomeTranslations(o)){this.resolvedLanguage=o;break}}}changeLanguage(e,r){var o=this;this.isLanguageChangingTo=e;const a=Ye();this.emit("languageChanging",e);const i=u=>{this.language=u,this.languages=this.services.languageUtils.toResolveHierarchy(u),this.resolvedLanguage=void 0,this.setResolvedLanguage(u)},n=(u,l)=>{l?(i(l),this.translator.changeLanguage(l),this.isLanguageChangingTo=void 0,this.emit("languageChanged",l),this.logger.log("languageChanged",l)):this.isLanguageChangingTo=void 0,a.resolve(function(){return o.t(...arguments)}),r&&r(u,function(){return o.t(...arguments)})},s=u=>{!e&&!u&&this.services.languageDetector&&(u=[]);const l=typeof u=="string"?u:this.services.languageUtils.getBestMatchFromCodes(u);l&&(this.language||i(l),this.translator.language||this.translator.changeLanguage(l),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage&&this.services.languageDetector.cacheUserLanguage(l)),this.loadResources(l,p=>{n(p,l)})};return!e&&this.services.languageDetector&&!this.services.languageDetector.async?s(this.services.languageDetector.detect()):!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(s):this.services.languageDetector.detect(s):s(e),a}getFixedT(e,r,o){var a=this;const i=function(n,s){let u;if(typeof s!="object"){for(var l=arguments.length,p=new Array(l>2?l-2:0),c=2;c<l;c++)p[c-2]=arguments[c];u=a.options.overloadTranslationOptionHandler([n,s].concat(p))}else u={...s};u.lng=u.lng||i.lng,u.lngs=u.lngs||i.lngs,u.ns=u.ns||i.ns,u.keyPrefix!==""&&(u.keyPrefix=u.keyPrefix||o||i.keyPrefix);const g=a.options.keySeparator||".";let f;return u.keyPrefix&&Array.isArray(n)?f=n.map(_=>`${u.keyPrefix}${g}${_}`):f=u.keyPrefix?`${u.keyPrefix}${g}${n}`:n,a.t(f,u)};return typeof e=="string"?i.lng=e:i.lngs=e,i.ns=r,i.keyPrefix=o,i}t(){return this.translator&&this.translator.translate(...arguments)}exists(){return this.translator&&this.translator.exists(...arguments)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const o=r.lng||this.resolvedLanguage||this.languages[0],a=this.options?this.options.fallbackLng:!1,i=this.languages[this.languages.length-1];if(o.toLowerCase()==="cimode")return!0;const n=(s,u)=>{const l=this.services.backendConnector.state[`${s}|${u}`];return l===-1||l===0||l===2};if(r.precheck){const s=r.precheck(this,n);if(s!==void 0)return s}return!!(this.hasResourceBundle(o,e)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||n(o,e)&&(!a||n(i,e)))}loadNamespaces(e,r){const o=Ye();return this.options.ns?(typeof e=="string"&&(e=[e]),e.forEach(a=>{this.options.ns.indexOf(a)<0&&this.options.ns.push(a)}),this.loadResources(a=>{o.resolve(),r&&r(a)}),o):(r&&r(),Promise.resolve())}loadLanguages(e,r){const o=Ye();typeof e=="string"&&(e=[e]);const a=this.options.preload||[],i=e.filter(n=>a.indexOf(n)<0&&this.services.languageUtils.isSupportedCode(n));return i.length?(this.options.preload=a.concat(i),this.loadResources(n=>{o.resolve(),r&&r(n)}),o):(r&&r(),Promise.resolve())}dir(e){if(e||(e=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!e)return"rtl";const r=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],o=this.services&&this.services.languageUtils||new Oo(Vo());return r.indexOf(o.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;return new Ze(e,r)}cloneInstance(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:wt;const o=e.forkResourceStore;o&&delete e.forkResourceStore;const a={...this.options,...e,isClone:!0},i=new Ze(a);return(e.debug!==void 0||e.prefix!==void 0)&&(i.logger=i.logger.clone(e)),["store","services","language"].forEach(s=>{i[s]=this[s]}),i.services={...this.services},i.services.utils={hasLoadedNamespace:i.hasLoadedNamespace.bind(i)},o&&(i.store=new No(this.store.data,a),i.services.resourceStore=i.store),i.translator=new xt(i.services,a),i.translator.on("*",function(s){for(var u=arguments.length,l=new Array(u>1?u-1:0),p=1;p<u;p++)l[p-1]=arguments[p];i.emit(s,...l)}),i.init(a,r),i.translator.options=a,i.translator.backendConnector.services.utils={hasLoadedNamespace:i.hasLoadedNamespace.bind(i)},i}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const ee=Ze.createInstance();ee.createInstance=Ze.createInstance,ee.createInstance,ee.dir,ee.init,ee.loadResources,ee.reloadResources,ee.use,ee.changeLanguage,ee.getFixedT,ee.t,ee.exists,ee.setDefaultNamespace,ee.hasLoadedNamespace,ee.loadNamespaces,ee.loadLanguages;const qn={de:{translation:{bikematrix_poweredby:"Unterstützt von Bike Matrix",bikeselector_addbike_brand_desc:"Die Marke deines Fahrrads ist normalerweise in den unten hervorgehobenen Bereichen zu finden.",bikeselector_addbike_brand_label:"Marke",bikeselector_addbike_brand_select:"Deine Fahrradmarke auswählen",bikeselector_addbike_find_btn:"Mein Fahrrad finden",bikeselector_addbike_framespec_desc:"Deine Rahmenspezifikation ist normalerweise in den unten hervorgehobenen Bereichen zu finden.",bikeselector_addbike_framespec_label:"Rahmenspezifikation",bikeselector_addbike_framespec_select:"Die Rahmenspezifikation deines Fahrrads auswählen",bikeselector_addbike_model_desc:"Dein Fahrradmodell ist normalerweise in den unten hervorgehobenen Bereichen zu finden.",bikeselector_addbike_model_label:"Modell",bikeselector_addbike_model_select:"Dein Fahrradmodell auswählen",bikeselector_addbike_title:"Fahrrad hinzufügen",bikeselector_browse_back_btn:"Zurück zur Bike-Lounge",bikeselector_browse_products_label:"Kompatible Produkte shoppen",bikeselector_browse_shop_btn:"Produkte shoppen",bikeselector_browse_title:"Mit dem Einkauf beginnen!",bikeselector_confirm_brandmodelframespec_label:"Marke, Modell, Rahmenspezifikation",bikeselector_confirm_confirm_btn:"Ja, das ist mein Fahrrad!",bikeselector_confirm_framesize_label:"Rahmengröße",bikeselector_confirm_notyourride_msg:"Nicht dein Fahrrad? Um eine Änderung vorzunehmen, wähle oben ein Feld aus.",bikeselector_confirm_title:"Dein Fahrrad bestätigen",bikeselector_confirm_yearbikespec_label:"Jahr, Ausstattungsvariante",bikeselector_home_add_a_bike:"Fügen Sie unten ein Fahrrad hinzu, um loszulegen ...",bikeselector_home_add_btn:"Fahrrad hinzufügen",bikeselector_home_browse_btn:"Kompatibilität prüfen",bikeselector_home_close_btn:"Schließen",bikeselector_home_empty:"Deine Lounge ist leer!",bikeselector_home_footer_message:"Fahrradhersteller können die Spezifikationen ihrer Fahrräder ohne vorherige Ankündigung ändern. Abweichungen gegenüber der Serienausstattung können Auswirkungen auf die Kompatibilität haben.",bikeselector_home_title:"Meine Bike-Lounge",bikeselector_search_bikespec_label:"Ausstattungsvariante",bikeselector_search_bikespec_select:"Ausstattungsvariante wählen",bikeselector_search_bikespec_select_all:"Alle",bikeselector_search_confirm_btn:"Auswahl bestätigen",bikeselector_search_no_bikes_found:"Keine Fahrräder gefunden",bikeselector_search_number_bikes_found:"{{number_found}} Fahrräder gefunden",bikeselector_search_one_bike_found:"1 Fahrrad gefunden",bikeselector_search_searching:"Suche...",bikeselector_search_title:"Fahrradsuche",bikeselector_search_year_label:"Jahr",bikeselector_size_confirm_btn:"Größe bestätigen",bikeselector_size_framesize_desc:"Die Rahmengröße deines Fahrrads ist normalerweise in den unten hervorgehobenen Bereichen zu finden.",bikeselector_size_framesize_label:"Rahmengröße",bikeselector_size_framesize_one_size:"Einheitsgröße",bikeselector_size_framesize_select:"Deine Rahmengröße wählen",bikeselector_size_title:"Deine Größe wählen",compatible:"Kompatibel",compatible_check_notes:"Kompatibel – Hinweise prüfen",compatiblelist_header:"Kompatible Produkte",compatiblelist_nobikeselected:"Kein Fahrrad ausgewählt. Hier klicken, um dein Fahrrad zur Suche nach kompatiblen Teilen hinzuzufügen",compatiblelist_noresults:"Keine kompatiblen Produkte gefunden",compatiblelist_pageone:"Alle mit Ihrem Fahrrad kompatiblen Produkte finden Sie <a>hier</a>",compatiblelist_unavailable:"Die Kompatibilität für diese Produktkategorie und die von Ihnen ausgewählte Fahrradmarke ist in Kürze verfügbar!",not_compatible:"Nicht kompatibel",productcheck_nobikeselected_label:"Kompatibilität prüfen",productcheck_nobikeselected_message:"Dein Fahrrad hinzufügen, um die Kompatibilität dieses Teils zu prüfen",productcheck_questionmark:"?",category_bike:"Fahrrad",category_bottombracket:"Tretlager",category_bottombracketpart:"Tretlager-Ersatzteile",category_brakeadapter:"Bremsadapter",category_brakeadapterpart:"Bremsadapter-Ersatzteile",category_brakecaliper:"Bremssattel",category_brakecaliperpart:"Bremssattel-Ersatzteile",category_brakecaliperservicekit:"Bremssattel-Servicekit",category_brakelever:"Bremshebel",category_brakeleverpart:"Bremshebel-Ersatzteile",category_brakeleverservicekit:"Bremshebel-Servicekit",category_brakepads:"Bremsbeläge",category_brakerotor:"Bremsscheibe",category_brakerotorpart:"Bremsscheiben-Ersatzteile",category_brakesystem:"Bremssystem",category_brakesystempart:"Bremssystem-Ersatzteile",category_cassette:"Kassette",category_cassettepart:"Kassetten-Ersatzteile",category_chain:"Kette",category_chainguide:"Kettenführung",category_chainguidepart:"Kettenführung-Ersatzteile",category_chainjoiner:"Kettenschloss/-nietstift",category_chainring:"Kettenblatt",category_chainringbolt:"Kettenblattschrauben",category_crankpart:"Kurbelgarnitur-Ersatzteile",category_crankset:"Kurbelgarnitur",category_dropperlever:"Variosattelstützenhebel",category_dropperleverpart:"Variosattelstützenhebel-Ersatzteile",category_ebikebattery:"E-Bike Akku",category_ebikebatterypart:"E-Bike Akku-Ersatzteile",category_ebikecharger:"E-Bike Ladegerät",category_ebikechargerpart:"E-Bike Ladegerät-Ersatzteile",category_ebikecontrolunit:"E-Bike Bedieneinheit",category_ebikecontrolunitpart:"E-Bike Bedieneinheit-Ersatzteile",category_ebikeinterconnect:"E-Bike Kabelstrang",category_ebikeinterconnectpart:"E-Bike Kabelstrang-Ersatzteile",category_ebikemotorsystem:"E-Bike Antriebssystem",category_ebikemotorsystempart:"E-Bike Antriebssystem-Ersatzteile",category_fork:"Gabel",category_forkpart:"Gabel-Ersatzteile",category_forkservicekit:"Gabel-Servicekit",category_frame:"Rahmen",category_framepart:"Rahmen-Ersatzteile",category_frontaxle:"Vorderradachse",category_frontaxlepart:"Vorderradachsen-Ersatzteile",category_frontderailleur:"Umwerfer",category_frontderailleurpart:"Umwerfer-Ersatzteile",category_fronthub:"Vorderradnabe",category_fronthubpart:"Vorderradnaben-Ersatzteile",category_frontwheel:"Vorderrad",category_grips:"Griffe",category_gripspart:"Griff-Ersatzteile",category_handlebar:"Lenker",category_headset:"Steuersatz",category_headsetpart:"Steuersatz-Ersatzteile",category_nipple:"Speichennippel",category_pedals:"Pedale",category_pedalspart:"Pedal-Ersatzteil",category_rearaxle:"Hinterradachse",category_rearaxlepart:"Hinterradachsen-Ersatzteile",category_rearderailleur:"Schaltwerk",category_rearderailleurpart:"Schaltwerk-Ersatzteile",category_rearhub:"Hinterradnabe",category_rearhubpart:"Hinterradnaben-Ersatzteile",category_rearshock:"Hinterbaudämpfer",category_rearshockpart:"Hinterbaudämpfer-Ersatzteile",category_rearshockservicekit:"Hinterbaudämpfer-Servicekit",category_rearwheel:"Hinterrad",category_rim:"Felge",category_saddle:"Sattel",category_seatpost:"Sattelstütze",category_seatpostclamp:"Sattelstützenklemme",category_seatpostclamppart:"Sattelstützenklemmen-Ersatzteile",category_seatpostpart:"Sattelstützen-Ersatzteile",category_seatpostservicekit:"Sattelstützen-Servicekit",category_shiftadapter:"Schaltadapter",category_shiftadapterpart:"Schaltadapter-Ersatzteile",category_shiftbrakecombo:"Schalt-/Bremshebel",category_shiftbrakecombopart:"Schalt-/Bremshebel-Ersatzteile",category_shifter:"Schalthebel",category_shifterpart:"Schalthebel-Ersatzteile",category_spoke:"Speiche",category_stem:"Vorbau",category_stempart:"Vorbau-Ersatzteile",category_tube:"Schlauch",category_tyre:"Reifen",category_wheelset:"Laufradsatz",checksku_message_nobikefound:"Es konnte kein Fahrrad mit der angegebenen Fahrradschlüsselnummer gefunden werden",checksku_message_nocompatibilityinfo:"Keine Informationen zur Kompatibilität",checksku_message_noproductfound:"Nous n’avons pas pu trouver de composant avec le code produit/code-barre/numéro de composant fourni",checksku_message_notcompatible:"Nicht kompatibel",checksku_warning_unabletoperformcheck:"Es konnte keine Prüfung der Kompatibilität durchgeführt werden. Die Kompatibilität muss persönlich überprüft werden."}},it:{translation:{bikematrix_poweredby:"Alimentato da Bike Matrix",bikeselector_addbike_brand_desc:"In genere, la marca della tua bici si trova nelle aree evidenziate di seguito.",bikeselector_addbike_brand_label:"Marca",bikeselector_addbike_brand_select:"Seleziona la marca della tua bici",bikeselector_addbike_find_btn:"Trova la mia bici",bikeselector_addbike_framespec_desc:"In genere, le informazioni sulla serie del telaio della tua bici si trovano nelle aree evidenziate di seguito.",bikeselector_addbike_framespec_label:"Serie del telaio",bikeselector_addbike_framespec_select:"Seleziona la serie del telaio della tua bici",bikeselector_addbike_model_desc:"In genere, il modello della tua bici si trova nelle aree evidenziate di seguito.",bikeselector_addbike_model_label:"Modello",bikeselector_addbike_model_select:"Seleziona il modello della tua bici",bikeselector_addbike_title:"Aggiungi una bici",bikeselector_browse_back_btn:"Torna alla pagina Le mie bici",bikeselector_browse_products_label:"Acquista i prodotti compatibili",bikeselector_browse_shop_btn:"Acquista i prodotti",bikeselector_browse_title:"Inizia l’acquisto!",bikeselector_confirm_brandmodelframespec_label:"Marca, modello, serie del telaio",bikeselector_confirm_confirm_btn:"Sì, questa è la mia bici!",bikeselector_confirm_framesize_label:"Misura del telaio",bikeselector_confirm_notyourride_msg:"Non è la tua bici? Seleziona un campo sopra per apportare una modifica.",bikeselector_confirm_title:"Conferma la tua bici",bikeselector_confirm_yearbikespec_label:"Anno, versione della bici",bikeselector_home_add_a_bike:"Aggiungi una bici qui sotto per iniziare...",bikeselector_home_add_btn:"Aggiungi una bici",bikeselector_home_browse_btn:"Sfoglia compatibilità",bikeselector_home_close_btn:"Chiudi",bikeselector_home_empty:"Il tuo salotto è vuoto!",bikeselector_home_footer_message:"I produttori delle bici possono modificare le specifiche senza preavviso. Eventuali differenze rispetto alle specifiche di serie possono condizionare la compatibilità.",bikeselector_home_title:"Le mie bici",bikeselector_search_bikespec_label:"Versione della bici",bikeselector_search_bikespec_select:"Seleziona la versione della bici",bikeselector_search_bikespec_select_all:"Tutti",bikeselector_search_confirm_btn:"Conferma la scelta",bikeselector_search_no_bikes_found:"Nessuna bici trovata",bikeselector_search_number_bikes_found:"{{number_found}} bici trovate",bikeselector_search_one_bike_found:"1 bici trovata",bikeselector_search_searching:"Ricerca...",bikeselector_search_title:"Ricerca bici",bikeselector_search_year_label:"Anno",bikeselector_size_confirm_btn:"Conferma la misura",bikeselector_size_framesize_desc:"In genere, la misura del telaio della tua bici si trova nelle aree evidenziate di seguito.",bikeselector_size_framesize_label:"Misura del telaio",bikeselector_size_framesize_one_size:"Taglia unica",bikeselector_size_framesize_select:"Seleziona la misura del tuo telaio",bikeselector_size_title:"Seleziona la tua misura",compatible:"Compatibile",compatible_check_notes:"Compatibile: controlla le note",compatiblelist_header:"Prodotti compatibili",compatiblelist_nobikeselected:"Nessuna bici selezionata. Clicca qui per aggiungere la tua bici e verificare la compatibilità dei componenti",compatiblelist_noresults:"Nessun prodotto compatibile trovato",compatiblelist_pageone:"Tutti i prodotti compatibili con la tua bici possono essere visualizzati <a>qui</a>",compatiblelist_unavailable:"La compatibilità per questa categoria di prodotto, per la marca di bici selezionata, sarà presto disponibile!",not_compatible:"Non compatibile",productcheck_nobikeselected_label:"Controlla compatibilità",productcheck_nobikeselected_message:"Aggiungi la tua bici per verificare se questo componente è idoneo",productcheck_questionmark:"?",category_bike:"Bici",category_bottombracket:"Movimento centrale",category_bottombracketpart:"Componente movimento centrale",category_brakeadapter:"Adattatore freno",category_brakeadapterpart:"Componente adattatore freno",category_brakecaliper:"Pinza freno",category_brakecaliperpart:"Componente pinza freno",category_brakecaliperservicekit:"Kit manutenzione pinza freno",category_brakelever:"Leva freno",category_brakeleverpart:"Componente leva freno",category_brakeleverservicekit:"Kit manutenzione leva freno",category_brakepads:"Pastiglie/pattini freno",category_brakerotor:"Rotore freno",category_brakerotorpart:"Componente rotore freno",category_brakesystem:"Impianto frenante",category_brakesystempart:"Componente impianto frenante",category_cassette:"Cassetta",category_cassettepart:"Componente cassetta",category_chain:"Catena",category_chainguide:"Guidacatena",category_chainguidepart:"Componente guidacatena",category_chainjoiner:"Falsamaglia",category_chainring:"Corona",category_chainringbolt:"Vite corona",category_crankpart:"Componente guarnitura",category_crankset:"Guarnitura",category_dropperlever:"Leva reggisella telescopico",category_dropperleverpart:"Componente leva reggisella telescopico",category_ebikebattery:"Batteria eBike",category_ebikebatterypart:"Componente batteria eBike",category_ebikecharger:"Caricabatteria eBike",category_ebikechargerpart:"Componente caricabatteria eBike",category_ebikecontrolunit:"Unità di controllo eBike",category_ebikecontrolunitpart:"Componente unità di controllo eBike",category_ebikeinterconnect:"Interconnessione eBike",category_ebikeinterconnectpart:"Componente interconnessione eBike",category_ebikemotorsystem:"Sistema motore eBike",category_ebikemotorsystempart:"Componente sistema motore eBike",category_fork:"Forcella",category_forkpart:"Componente forcella",category_forkservicekit:"Kit di manutenzione forcella",category_frame:"Telaio",category_framepart:"Componente telaio",category_frontaxle:"Perno anteriore",category_frontaxlepart:"Componente perno anteriore",category_frontderailleur:"Deragliatore anteriore",category_frontderailleurpart:"Componente deragliatore anteriore",category_fronthub:"Mozzo anteriore",category_fronthubpart:"Componente mozzo anteriore",category_frontwheel:"Ruota anteriore",category_grips:"Manopole",category_gripspart:"Componente manopole",category_handlebar:"Manubrio",category_headset:"Serie sterzo",category_headsetpart:"Componente serie sterzo",category_nipple:"Nipplo",category_pedals:"Pedali",category_pedalspart:"Componente pedali",category_rearaxle:"Perno posteriore",category_rearaxlepart:"Componente perno posteriore",category_rearderailleur:"Deragliatore posteriore",category_rearderailleurpart:"Componente deragliatore posteriore",category_rearhub:"Mozzo posteriore",category_rearhubpart:"Componente mozzo posteriore",category_rearshock:"Sospensione posteriore",category_rearshockpart:"Componente sospensione posteriore",category_rearshockservicekit:"Kit manutenzione sospensione posteriore",category_rearwheel:"Ruota posteriore",category_rim:"Cerchio",category_saddle:"Sella",category_seatpost:"Reggisella",category_seatpostclamp:"Morsetto reggisella",category_seatpostclamppart:"Componente morsetto reggisella",category_seatpostpart:"Componente reggisella",category_seatpostservicekit:"Kit manutenzione reggisella",category_shiftadapter:"Adattatore cambio",category_shiftadapterpart:"Componente adattatore cambio",category_shiftbrakecombo:"Comando integrato freno/cambio",category_shiftbrakecombopart:"Componente comando integrato freno/cambio",category_shifter:"Comando cambio",category_shifterpart:"Componente comando cambio",category_spoke:"Raggio",category_stem:"Attacco manubrio",category_stempart:"Componente attacco manubrio",category_tube:"Camera d'aria",category_tyre:"Pneumatico",category_wheelset:"Set ruote",checksku_message_nobikefound:"Impossibile trovare una bici con la chiave di ricerca fornita",checksku_message_nocompatibilityinfo:"Nessuna informazione sulla compatibilità",checksku_message_noproductfound:"Impossibile trovare il componente con lo SKU/codice a barre/codice componente fornito",checksku_message_notcompatible:"Non compatibile",checksku_warning_unabletoperformcheck:"Impossibile eseguire il controllo di compatibilità. Verificare manualmente la compatibilità."}},nl:{translation:{bikematrix_poweredby:"Mogelijk gemaakt door Bike Matrix",bikeselector_addbike_brand_desc:"Het merk van uw fiets kunt u meestal vinden in de hieronder gemarkeerde gebieden.",bikeselector_addbike_brand_label:"Merk",bikeselector_addbike_brand_select:"Selecteer het merk van uw fiets",bikeselector_addbike_find_btn:"Vind mijn fiets",bikeselector_addbike_framespec_desc:"De framespecificaties van uw fiets kunt u meestal vinden in de hieronder gemarkeerde gebieden.",bikeselector_addbike_framespec_label:"Framespecificaties",bikeselector_addbike_framespec_select:"Selecteer de framespecificaties van uw fiets",bikeselector_addbike_model_desc:"Het model van uw fiets kunt u meestal vinden in de hieronder gemarkeerde gebieden.",bikeselector_addbike_model_label:"Model",bikeselector_addbike_model_select:"Selecteer het model van uw fiets",bikeselector_addbike_title:"Fiets toevoegen",bikeselector_browse_back_btn:"Terug naar Fietsenrek",bikeselector_browse_products_label:"Bekijk compatibele producten",bikeselector_browse_shop_btn:"Bekijk producten",bikeselector_browse_title:"Begin met winkelen!",bikeselector_confirm_brandmodelframespec_label:"Merk, model, framespecificaties",bikeselector_confirm_confirm_btn:"Ja, dat is mijn fiets!",bikeselector_confirm_framesize_label:"Framemaat",bikeselector_confirm_notyourride_msg:"Niet uw fiets? Selecteer hierboven een veld om te wijzigen.",bikeselector_confirm_title:"Bevestig uw fiets",bikeselector_confirm_yearbikespec_label:"Jaar, fietsspecificaties",bikeselector_home_add_a_bike:"Voeg hieronder een fiets toe om aan de slag te gaan...",bikeselector_home_add_btn:"Fiets toevoegen",bikeselector_home_browse_btn:"Compatibiliteit bekijken",bikeselector_home_close_btn:"Sluiten",bikeselector_home_empty:"Je lounge is leeg!",bikeselector_home_footer_message:"Fietsfabrikanten kunnen de specificaties van fietsen zonder kennisgeving wijzigen. De compatibiliteit kan veranderen door verschillen in de specificaties van de voorraad.",bikeselector_home_title:"Mijn Fietsenrek",bikeselector_search_bikespec_label:"Fietsspecificaties",bikeselector_search_bikespec_select:"Specificatieniveau selecteren",bikeselector_search_bikespec_select_all:"Alles",bikeselector_search_confirm_btn:"Selectie bevestigen",bikeselector_search_no_bikes_found:"Geen fietsen gevonden",bikeselector_search_number_bikes_found:"{{number_found}} fietsen gevonden",bikeselector_search_one_bike_found:"1 fiets gevonden",bikeselector_search_searching:"Zoeken...",bikeselector_search_title:"Fiets zoeken",bikeselector_search_year_label:"Jaar",bikeselector_size_confirm_btn:"Maat bevestigen",bikeselector_size_framesize_desc:"De framemaat van uw fiets kunt u meestal vinden in de hieronder gemarkeerde gebieden.",bikeselector_size_framesize_label:"Framemaat",bikeselector_size_framesize_one_size:"Eén maat",bikeselector_size_framesize_select:"Selecteer uw framemaat",bikeselector_size_title:"Selecteer de maat",compatible:"Compatibel",compatible_check_notes:"Compatibel - Controleer opmerkingen",compatiblelist_header:"Compatibele producten",compatiblelist_nobikeselected:"Geen fiets geselecteerd. Klik hier om uw fiets toe te voegen voor het opzoeken van compatibele onderdelen",compatiblelist_noresults:"Geen compatibele producten gevonden",compatiblelist_pageone:"Alle producten die compatibel zijn met uw fiets kunt u <a>hier</a> bekijken.",compatiblelist_unavailable:"Compatibiliteit voor deze productcategorie, voor het door u geselecteerde fietsmerk, komt binnenkort!",not_compatible:"Niet compatibel",productcheck_nobikeselected_label:"Compatibiliteit controleren",productcheck_nobikeselected_message:"Voeg uw fiets toe om te controleren of dit onderdeel erop past",productcheck_questionmark:"?",category_bike:"Fiets",category_bottombracket:"Trapas",category_bottombracketpart:"Trapasonderdeel",category_brakeadapter:"Remadapter",category_brakeadapterpart:"Remadapteronderdeel",category_brakecaliper:"Remklauw",category_brakecaliperpart:"Remklauwonderdeel",category_brakecaliperservicekit:"Servicekit remklauw",category_brakelever:"Remhendel",category_brakeleverpart:"Remhendelonderdeel",category_brakeleverservicekit:"Servicekit remhendel",category_brakepads:"Remblokken",category_brakerotor:"Remschijf",category_brakerotorpart:"Remschijfonderdeel",category_brakesystem:"Remsysteem",category_brakesystempart:"Remsysteemonderdeel",category_cassette:"Cassette",category_cassettepart:"Cassetteonderdeel",category_chain:"Ketting",category_chainguide:"Kettinggeleider",category_chainguidepart:"Kettinggeleideronderdeel",category_chainjoiner:"Verbindingsschakel",category_chainring:"Kettingblad",category_chainringbolt:"Kettingbladbout",category_crankpart:"Crankonderdeel",category_crankset:"Crankset",category_dropperlever:"Dropperhendel",category_dropperleverpart:"Dropperhendelonderdeel",category_ebikebattery:"Batterij elektrische fiets",category_ebikebatterypart:"Batterijonderdeel van elektrische fiets",category_ebikecharger:"Oplader elektrische fiets",category_ebikechargerpart:"Opladeronderdeel van elektrische fiets",category_ebikecontrolunit:"Bediening elektrische fiets",category_ebikecontrolunitpart:"Bedieningsonderdeel van elektrische fiets",category_ebikeinterconnect:"Verbinding elektrische fiets",category_ebikeinterconnectpart:"Verbindingsonderdeel van elektrische fiets",category_ebikemotorsystem:"Motor elektrische fiets",category_ebikemotorsystempart:"Motoronderdeel van elektrische fiets",category_fork:"Voorvork",category_forkpart:"Voorvorkonderdeel",category_forkservicekit:"Servicekit voorvork",category_frame:"Frame",category_framepart:"Frameonderdeel",category_frontaxle:"Vooras",category_frontaxlepart:"Voorasonderdeel",category_frontderailleur:"Voorderailleur",category_frontderailleurpart:"Voorderailleuronderdeel",category_fronthub:"Voornaaf",category_fronthubpart:"Voornaafonderdeel",category_frontwheel:"Voorwiel",category_grips:"Handvatten",category_gripspart:"Handvatonderdeel",category_handlebar:"Stuur",category_headset:"Balhoofdstel",category_headsetpart:"Balhoofdonderdeel",category_nipple:"Spaaknippel",category_pedals:"Pedalen",category_pedalspart:"Pedaalonderdeel",category_rearaxle:"Achteras",category_rearaxlepart:"Achterasonderdeel",category_rearderailleur:"Achterderailleur",category_rearderailleurpart:"Achterderailleuronderdeel",category_rearhub:"Achternaaf",category_rearhubpart:"Achternaafonderdeel",category_rearshock:"Schokdemper voor achterwiel",category_rearshockpart:"Schokdemperonderdeel voor achterwiel",category_rearshockservicekit:"Servicekit schokdemper voor achterwiel",category_rearwheel:"Achterwiel",category_rim:"Velg",category_saddle:"Zadel",category_seatpost:"Zadelpen",category_seatpostclamp:"Zadelpenklem",category_seatpostclamppart:"Zadelpenklemonderdeel",category_seatpostpart:"Zadelpenonderdeel",category_seatpostservicekit:"Servicekit zadelpen",category_shiftadapter:"Versnellingsadapter",category_shiftadapterpart:"Versnellingsadapteronderdeel",category_shiftbrakecombo:"Schakel-/remhendel",category_shiftbrakecombopart:"Schakel-/remhendelonderdeel",category_shifter:"Shifter",category_shifterpart:"Shifteronderdeel",category_spoke:"Spaak",category_stem:"Stuurpen",category_stempart:"Stuurpenonderdeel",category_tube:"Binnenband",category_tyre:"Buitenband",category_wheelset:"Wielset",checksku_message_nobikefound:"Kan geen fiets vinden met het opgegeven Fietsnummer",checksku_message_nocompatibilityinfo:"Geen informatie over compatibiliteit",checksku_message_noproductfound:"Kan geen onderdeel vinden met de opgegeven SKU/Barcode/Onderdeelnummer",checksku_message_notcompatible:"Niet compatibel",checksku_warning_unabletoperformcheck:"Kan de compatibiliteitscontrole niet uitvoeren. Controleer de compatibiliteit handmatig."}},"en-GB":{translation:{bikematrix_poweredby:"Powered by Bike Matrix",bikeselector_addbike_brand_desc:"Your bike brand is typically found in the areas highlighted below.",bikeselector_addbike_brand_label:"Brand",bikeselector_addbike_brand_select:"Select your bike brand",bikeselector_addbike_find_btn:"Find my ride",bikeselector_addbike_framespec_desc:"Your bike frame spec is typically found in the areas highlighted below.",bikeselector_addbike_framespec_label:"Frame Spec",bikeselector_addbike_framespec_select:"Select your bike's frame spec",bikeselector_addbike_model_desc:"Your bike model is typically found in the areas highlighted below.",bikeselector_addbike_model_label:"Model",bikeselector_addbike_model_select:"Select your bike model",bikeselector_addbike_title:"Add A Bike",bikeselector_browse_back_btn:"Back to bike Lounge",bikeselector_browse_products_label:"Shop for compatible products",bikeselector_browse_shop_btn:"Shop Products",bikeselector_browse_title:"Start Shopping!",bikeselector_confirm_brandmodelframespec_label:"Brand, Model, Frame Series",bikeselector_confirm_confirm_btn:"Yep, that's my ride!",bikeselector_confirm_framesize_label:"Frame Size",bikeselector_confirm_notyourride_msg:"Not your ride? Select a field above to make a change.",bikeselector_confirm_title:"Confirm Your Ride",bikeselector_confirm_yearbikespec_label:"Year, Bike Spec",bikeselector_home_add_a_bike:"Add a bike below to get started...",bikeselector_home_add_btn:"Add A Bike",bikeselector_home_browse_btn:"Browse Compatiblity",bikeselector_home_close_btn:"Close",bikeselector_home_empty:"Your lounge is empty!",bikeselector_home_footer_message:"Bike manufacturers may change bike specifications without notice. Differences from stock specifications can impact compatibility results.",bikeselector_home_title:"My Bike Lounge",bikeselector_search_bikespec_label:"Bike Spec",bikeselector_search_bikespec_select:"Select spec level",bikeselector_search_bikespec_select_all:"All",bikeselector_search_confirm_btn:"Confirm Selection",bikeselector_search_no_bikes_found:"No bikes found",bikeselector_search_number_bikes_found:"{{number_found}} bikes found",bikeselector_search_one_bike_found:"1 bike found",bikeselector_search_searching:"Searching...",bikeselector_search_title:"Bike Search",bikeselector_search_year_label:"Year",bikeselector_size_confirm_btn:"Confirm Size",bikeselector_size_framesize_desc:"Your bike frame size is typically found in the areas highlighted below.",bikeselector_size_framesize_label:"Frame Size",bikeselector_size_framesize_one_size:"One Size",bikeselector_size_framesize_select:"Select your frame size",bikeselector_size_title:"Select Your Size",compatible:"Compatible",compatible_check_notes:"Compatible - Check Notes",compatiblelist_header:"Compatible Products",compatiblelist_nobikeselected:"No bike selected. Click here to add your ride to check for compatible parts",compatiblelist_noresults:"No compatible products found",compatiblelist_pageone:"All products compatible with your bike can be seen <a>here</a>.",compatiblelist_unavailable:"Compatibility for this product category for your selected bike brand is coming soon!",not_compatible:"Not Compatible",productcheck_nobikeselected_label:"Check Compatiblity",productcheck_nobikeselected_message:"Add your ride to check if this part fits",productcheck_questionmark:"?",category_bike:"Bike",category_bottombracket:"Bottom Bracket",category_bottombracketpart:"Bottom Bracket Part",category_brakeadapter:"Brake Adapter",category_brakeadapterpart:"Brake Adapter Part",category_brakecaliper:"Brake Caliper",category_brakecaliperpart:"Brake Caliper Part",category_brakecaliperservicekit:"Brake Caliper Service Kit",category_brakelever:"Brake Lever",category_brakeleverpart:"Brake Lever Part",category_brakeleverservicekit:"Brake Lever Service Kit",category_brakepads:"Brake Pads",category_brakerotor:"Brake Rotor",category_brakerotorpart:"Brake Rotor Part",category_brakesystem:"Brake System",category_brakesystempart:"Brake System Part",category_cassette:"Cassette",category_cassettepart:"Cassette Part",category_chain:"Chain",category_chainguide:"Chainguide",category_chainguidepart:"Chainguide Part",category_chainjoiner:"Chain Joiner",category_chainring:"Chainring",category_chainringbolt:"Chainring Bolt",category_crankpart:"Crank Part",category_crankset:"Crankset",category_dropperlever:"Dropper Lever",category_dropperleverpart:"Dropper Lever Part",category_ebikebattery:"eBike Battery",category_ebikebatterypart:"eBike Battery Part",category_ebikecharger:"eBike Charger",category_ebikechargerpart:"eBike Charger Part",category_ebikecontrolunit:"eBike Control Unit",category_ebikecontrolunitpart:"eBike Control Unit Part",category_ebikeinterconnect:"eBike Interconnect",category_ebikeinterconnectpart:"eBike Interconnect Part",category_ebikemotorsystem:"eBike Motor System",category_ebikemotorsystempart:"eBike Motor System Part",category_fork:"Fork",category_forkpart:"Fork Part",category_forkservicekit:"Fork Service Kit",category_frame:"Frame",category_framepart:"Frame Part",category_frontaxle:"Front Axle",category_frontaxlepart:"Front Axle Part",category_frontderailleur:"Front Derailleur",category_frontderailleurpart:"Front Derailleur Part",category_fronthub:"Front Hub",category_fronthubpart:"Front Hub Part",category_frontwheel:"Front Wheel",category_grips:"Grips",category_gripspart:"Grips Part",category_handlebar:"Handlebar",category_headset:"Headset",category_headsetpart:"Headset Part",category_nipple:"Nipple",category_pedals:"Pedals",category_pedalspart:"Pedals Part",category_rearaxle:"Rear Axle",category_rearaxlepart:"Rear Axle Part",category_rearderailleur:"Rear Derailleur",category_rearderailleurpart:"Rear Derailleur Part",category_rearhub:"Rear Hub",category_rearhubpart:"Rear Hub Part",category_rearshock:"Rear Shock",category_rearshockpart:"Rear Shock Part",category_rearshockservicekit:"Rear Shock Service Kit",category_rearwheel:"Rear Wheel",category_rim:"Rim",category_saddle:"Saddle",category_seatpost:"Seat Post",category_seatpostclamp:"Seat Post Clamp",category_seatpostclamppart:"Seat Post Clamp Part",category_seatpostpart:"Seat Post Part",category_seatpostservicekit:"Seat Post Service Kit",category_shiftadapter:"Shift Adapter",category_shiftadapterpart:"Shift Adapter Part",category_shiftbrakecombo:"Shift Brake Combo",category_shiftbrakecombopart:"Shift Brake Combo Part",category_shifter:"Shifter",category_shifterpart:"Shifter Part",category_spoke:"Spoke",category_stem:"Stem",category_stempart:"Stem Part",category_tube:"Tube",category_tyre:"Tyre",category_wheelset:"Wheelset",checksku_message_nobikefound:"Could not find a bike with the provided Bike Key",checksku_message_nocompatibilityinfo:"No Compatibility Information",checksku_message_noproductfound:"Could not find a part with the provided SKU/Barcode/Part No",checksku_message_notcompatible:"Not Compatible",checksku_warning_unabletoperformcheck:"Unable to perform compatibility check. Please check the compatibility manually."}},fr:{translation:{bikematrix_poweredby:"Une solution Bike Matrix",bikeselector_addbike_brand_desc:"Votre marque de vélo se trouve généralement dans les zones mises en évidence ci-dessous.",bikeselector_addbike_brand_label:"Marque",bikeselector_addbike_brand_select:"Sélectionnez la marque de votre vélo",bikeselector_addbike_find_btn:"Trouver mon vélo",bikeselector_addbike_framespec_desc:"Votre version de cadre de vélo se trouve généralement dans les zones mises en évidence ci-dessous.",bikeselector_addbike_framespec_label:"Version du cadre",bikeselector_addbike_framespec_select:"Sélectionnez votre version de cadre",bikeselector_addbike_model_desc:"Votre modèle de vélo se trouve généralement dans les zones mises en évidence ci-dessous.",bikeselector_addbike_model_label:"Modèle",bikeselector_addbike_model_select:"Sélectionnez votre modèle de vélo",bikeselector_addbike_title:"Ajouter un vélo",bikeselector_browse_back_btn:"Retourner à mes vélos",bikeselector_browse_products_label:"Voir les produits compatibles",bikeselector_browse_shop_btn:"Voir les produits",bikeselector_browse_title:"Commencer vos achats",bikeselector_confirm_brandmodelframespec_label:"Marque, modèle, version du cadre",bikeselector_confirm_confirm_btn:"Oui, c’est mon vélo !",bikeselector_confirm_framesize_label:"Taille du cadre",bikeselector_confirm_notyourride_msg:"Ce n’est pas votre vélo ? Sélectionnez un champ ci-dessus pour effectuer une modification.",bikeselector_confirm_title:"Confirmer votre vélo",bikeselector_confirm_yearbikespec_label:"Année, version du vélo",bikeselector_home_add_a_bike:"Ajoutez un vélo ci-dessous pour commencer...",bikeselector_home_add_btn:"Ajouter un vélo",bikeselector_home_browse_btn:"Parcourir les compatibilités",bikeselector_home_close_btn:"Fermer",bikeselector_home_empty:"Votre salon est vide !",bikeselector_home_footer_message:"Les fabricants de vélo peuvent changer les caractéristiques des vélos sans préavis. Les différences par rapport aux spécifications d’origine peuvent avoir un impact sur les résultats de compatibilité.",bikeselector_home_title:"Mes vélos",bikeselector_search_bikespec_label:"Version du vélo",bikeselector_search_bikespec_select:"Sélectionnez la version du vélo",bikeselector_search_bikespec_select_all:"Tous",bikeselector_search_confirm_btn:"Confirmer la sélection",bikeselector_search_no_bikes_found:"Aucun vélo trouvé",bikeselector_search_number_bikes_found:"{{number_found}} bikes found",bikeselector_search_one_bike_found:"1 vélo trouvé",bikeselector_search_searching:"Recherche...",bikeselector_search_title:"Recherche du vélo",bikeselector_search_year_label:"Année",bikeselector_size_confirm_btn:"Confirmer la taille",bikeselector_size_framesize_desc:"La taille de votre cadre se trouve généralement dans les zones mises en évidence ci-dessous.",bikeselector_size_framesize_label:"Taille du cadre",bikeselector_size_framesize_one_size:"Taille unique",bikeselector_size_framesize_select:"Sélectionnez votre taille de cadre",bikeselector_size_title:"Sélectionnez votre taille",compatible:"Compatible",compatible_check_notes:"Compatible-vérifier les notes",compatiblelist_header:"Produits compatibles",compatiblelist_nobikeselected:"Aucun vélo sélectionné. Cliquez ici pour ajouter votre vélo et voir les composants compatibles",compatiblelist_noresults:"Aucun produit compatible trouvé",compatiblelist_pageone:"Tous les produits compatibles avec votre vélo peuvent être consultés <a>ici</a>",compatiblelist_unavailable:"La compatibilité pour cette catégorie de produits, pour la marque de vélo que vous avez sélectionnée, sera bientôt disponible !",not_compatible:"Non compatible",productcheck_nobikeselected_label:"Vérifier la compatibilité",productcheck_nobikeselected_message:"Ajoutez votre vélo pour vérifier si ce composant est compatible",productcheck_questionmark:"?",category_bike:"Vélo",category_bottombracket:"Boîtier de pédalier",category_bottombracketpart:"Pièce de boîtier de pédalier",category_brakeadapter:"Adaptateur pour frein",category_brakeadapterpart:"Pièce d’adaptateur pour frein",category_brakecaliper:"Étrier de frein",category_brakecaliperpart:"Pièce d’étrier de frein",category_brakecaliperservicekit:"Kit d’entretien d’étrier de frein",category_brakelever:"Levier de frein",category_brakeleverpart:"Pièce de levier de frein",category_brakeleverservicekit:"Kit d’entretien de levier de frein",category_brakepads:"Patins/plaquettes de frein",category_brakerotor:"Disque de frein",category_brakerotorpart:"Pièce de disque de frein",category_brakesystem:"Système de freinage",category_brakesystempart:"Pièce de système de freinage",category_cassette:"Cassette",category_cassettepart:"Pièce de cassette",category_chain:"Chaîne",category_chainguide:"Guide-chaîne",category_chainguidepart:"Pièce de guide-chaîne",category_chainjoiner:"Attache rapide",category_chainring:"Plateau",category_chainringbolt:"Écrou de plateau",category_crankpart:"Pièce de pédalier",category_crankset:"Pédalier",category_dropperlever:"Levier de tige de selle télescopique",category_dropperleverpart:"Pièce de levier de tige de selle télescopique",category_ebikebattery:"Batterie ebike",category_ebikebatterypart:"Pièce batterie ebike",category_ebikecharger:"Chargeur ebike",category_ebikechargerpart:"Pièce de chargeur ebike",category_ebikecontrolunit:"Commande de contrôle ebike",category_ebikecontrolunitpart:"Pièce de commande de contrôle ebike",category_ebikeinterconnect:"Câbles de connexion ebike",category_ebikeinterconnectpart:"Pièce de câbles connexion ebike",category_ebikemotorsystem:"Système moteur ebike",category_ebikemotorsystempart:"Pièce système moteur ebike",category_fork:"Fourche",category_forkpart:"Pièce de fourche",category_forkservicekit:"Kit d’entretien de fourche",category_frame:"Cadre",category_framepart:"Pièce de cadre",category_frontaxle:"Axe avant",category_frontaxlepart:"Pièce d’axe avant",category_frontderailleur:"Dérailleur avant",category_frontderailleurpart:"Pièce de dérailleur avant",category_fronthub:"Moyeu avant",category_fronthubpart:"Pièce de moyeu avant",category_frontwheel:"Roue avant",category_grips:"Poignées",category_gripspart:"Pièce de poignées",category_handlebar:"Guidon",category_headset:"Jeu de direction",category_headsetpart:"Pièce de jeu de direction",category_nipple:"Écrou de rayon",category_pedals:"Pédales",category_pedalspart:"Pièce de pédales",category_rearaxle:"Axe arrière",category_rearaxlepart:"Pièce d’axe arrière",category_rearderailleur:"Dérailleur arrière",category_rearderailleurpart:"Pièce de dérailleur arrière",category_rearhub:"Moyeu arrière",category_rearhubpart:"Pièce de moyeu arrière",category_rearshock:"Amortisseur arrière",category_rearshockpart:"Pièce d’amortisseur arrière",category_rearshockservicekit:"Kit d’entretien pour amortisseur arrière",category_rearwheel:"Roue arrière",category_rim:"Jante",category_saddle:"Selle",category_seatpost:"Tige de selle",category_seatpostclamp:"Collier de serrage pour tige de selle",category_seatpostclamppart:"Pièce de collier de serrage pour tige de selle",category_seatpostpart:"Pièce de tige de selle",category_seatpostservicekit:"Kit d’entretien de tige de selle",category_shiftadapter:"Adaptateur de commande de vitesse",category_shiftadapterpart:"Pièce d’adaptateur de commande de vitesse",category_shiftbrakecombo:"Combo levier manette",category_shiftbrakecombopart:"Pièce de combo levier manette",category_shifter:"Commande de vitesse",category_shifterpart:"Pièce de commande de vitesse",category_spoke:"Rayon",category_stem:"Potence",category_stempart:"Pièce de potence",category_tube:"Chambre à air",category_tyre:"Pneu",category_wheelset:"Paire de roues",checksku_message_nobikefound:"Nous n’avons pas pu trouver de vélo avec le Code Vélo fourni",checksku_message_nocompatibilityinfo:"Pas d’information concernant la compatibilité",checksku_message_noproductfound:"Nous n’avons pas pu trouver de composant avec le code produit/code-barre/numéro de composant fourni",checksku_message_notcompatible:"Non compatible",checksku_warning_unabletoperformcheck:"Impossible de vérifier la compatibilité. Veuillez vérifier la compatibilité manuellement."}},"en-US":{translation:{bikematrix_poweredby:"Powered by Bike Matrix",bikeselector_addbike_brand_desc:"Your bike brand is typically found in the areas highlighted below.",bikeselector_addbike_brand_label:"Brand",bikeselector_addbike_brand_select:"Select your bike brand",bikeselector_addbike_find_btn:"Find my ride",bikeselector_addbike_framespec_desc:"Your bike frame spec is typically found in the areas highlighted below.",bikeselector_addbike_framespec_label:"Frame Spec",bikeselector_addbike_framespec_select:"Select your bike's frame spec",bikeselector_addbike_model_desc:"Your bike model is typically found in the areas highlighted below.",bikeselector_addbike_model_label:"Model",bikeselector_addbike_model_select:"Select your bike model",bikeselector_addbike_title:"Add A Bike",bikeselector_browse_back_btn:"Back to bike Lounge",bikeselector_browse_products_label:"Shop for compatible products",bikeselector_browse_shop_btn:"Shop Products",bikeselector_browse_title:"Start Shopping!",bikeselector_confirm_brandmodelframespec_label:"Brand, Model, Frame Series",bikeselector_confirm_confirm_btn:"Yep, that's my ride!",bikeselector_confirm_framesize_label:"Frame Size",bikeselector_confirm_notyourride_msg:"Not your ride? Select a field above to make a change.",bikeselector_confirm_title:"Confirm Your Ride",bikeselector_confirm_yearbikespec_label:"Year, Bike Spec",bikeselector_home_add_a_bike:"Add a bike below to get started...",bikeselector_home_add_btn:"Add A Bike",bikeselector_home_browse_btn:"Browse Compatiblity",bikeselector_home_close_btn:"Close",bikeselector_home_empty:"Your lounge is empty!",bikeselector_home_footer_message:"Bike manufacturers may change bike specifications without notice. Differences from stock specifications can impact compatibility results.",bikeselector_home_title:"My Bike Lounge",bikeselector_search_bikespec_label:"Bike Spec",bikeselector_search_bikespec_select:"Select spec level",bikeselector_search_bikespec_select_all:"All",bikeselector_search_confirm_btn:"Confirm Selection",bikeselector_search_no_bikes_found:"No bikes found",bikeselector_search_number_bikes_found:"{{number_found}} bikes found",bikeselector_search_one_bike_found:"1 bike found",bikeselector_search_searching:"Searching...",bikeselector_search_title:"Bike Search",bikeselector_search_year_label:"Year",bikeselector_size_confirm_btn:"Confirm Size",bikeselector_size_framesize_desc:"Your bike frame size is typically found in the areas highlighted below.",bikeselector_size_framesize_label:"Frame Size",bikeselector_size_framesize_one_size:"One Size",bikeselector_size_framesize_select:"Select your frame size",bikeselector_size_title:"Select Your Size",compatible:"Compatible",compatible_check_notes:"Compatible - Check Notes",compatiblelist_header:"Compatible Products",compatiblelist_nobikeselected:"No bike selected. Click here to add your ride to check for compatible parts",compatiblelist_noresults:"No compatible products found",compatiblelist_pageone:"All products compatible with your bike can be seen <a>here</a>.",compatiblelist_unavailable:"Compatibility for this product category for your selected bike brand is coming soon!",not_compatible:"Not Compatible",productcheck_nobikeselected_label:"Check Compatiblity",productcheck_nobikeselected_message:"Add your ride to check if this part fits",productcheck_questionmark:"?",category_bike:"Bike",category_bottombracket:"Bottom Bracket",category_bottombracketpart:"Bottom Bracket Part",category_brakeadapter:"Brake Adapter",category_brakeadapterpart:"Brake Adapter Part",category_brakecaliper:"Brake Caliper",category_brakecaliperpart:"Brake Caliper Part",category_brakecaliperservicekit:"Brake Caliper Service Kit",category_brakelever:"Brake Lever",category_brakeleverpart:"Brake Lever Part",category_brakeleverservicekit:"Brake Lever Service Kit",category_brakepads:"Brake Pads",category_brakerotor:"Brake Rotor",category_brakerotorpart:"Brake Rotor Part",category_brakesystem:"Brake System",category_brakesystempart:"Brake System Part",category_cassette:"Cassette",category_cassettepart:"Cassette Part",category_chain:"Chain",category_chainguide:"Chainguide",category_chainguidepart:"Chainguide Part",category_chainjoiner:"Chain Joiner",category_chainring:"Chainring",category_chainringbolt:"Chainring Bolt",category_crankpart:"Crank Part",category_crankset:"Crankset",category_dropperlever:"Dropper Lever",category_dropperleverpart:"Dropper Lever Part",category_ebikebattery:"eBike Battery",category_ebikebatterypart:"eBike Battery Part",category_ebikecharger:"eBike Charger",category_ebikechargerpart:"eBike Charger Part",category_ebikecontrolunit:"eBike Control Unit",category_ebikecontrolunitpart:"eBike Control Unit Part",category_ebikeinterconnect:"eBike Interconnect",category_ebikeinterconnectpart:"eBike Interconnect Part",category_ebikemotorsystem:"eBike Motor System",category_ebikemotorsystempart:"eBike Motor System Part",category_fork:"Fork",category_forkpart:"Fork Part",category_forkservicekit:"Fork Service Kit",category_frame:"Frame",category_framepart:"Frame Part",category_frontaxle:"Front Axle",category_frontaxlepart:"Front Axle Part",category_frontderailleur:"Front Derailleur",category_frontderailleurpart:"Front Derailleur Part",category_fronthub:"Front Hub",category_fronthubpart:"Front Hub Part",category_frontwheel:"Front Wheel",category_grips:"Grips",category_gripspart:"Grips Part",category_handlebar:"Handlebar",category_headset:"Headset",category_headsetpart:"Headset Part",category_nipple:"Nipple",category_pedals:"Pedals",category_pedalspart:"Pedals Part",category_rearaxle:"Rear Axle",category_rearaxlepart:"Rear Axle Part",category_rearderailleur:"Rear Derailleur",category_rearderailleurpart:"Rear Derailleur Part",category_rearhub:"Rear Hub",category_rearhubpart:"Rear Hub Part",category_rearshock:"Rear Shock",category_rearshockpart:"Rear Shock Part",category_rearshockservicekit:"Rear Shock Service Kit",category_rearwheel:"Rear Wheel",category_rim:"Rim",category_saddle:"Saddle",category_seatpost:"Seat Post",category_seatpostclamp:"Seat Post Clamp",category_seatpostclamppart:"Seat Post Clamp Part",category_seatpostpart:"Seat Post Part",category_seatpostservicekit:"Seat Post Service Kit",category_shiftadapter:"Shift Adapter",category_shiftadapterpart:"Shift Adapter Part",category_shiftbrakecombo:"Shift Brake Combo",category_shiftbrakecombopart:"Shift Brake Combo Part",category_shifter:"Shifter",category_shifterpart:"Shifter Part",category_spoke:"Spoke",category_stem:"Stem",category_stempart:"Stem Part",category_tube:"Tube",category_tyre:"Tire",category_wheelset:"Wheelset",checksku_message_nobikefound:"Could not find a bike with the provided Bike Key",checksku_message_nocompatibilityinfo:"No Compatibility Information",checksku_message_noproductfound:"Could not find a part with the provided SKU/Barcode/Part No",checksku_message_notcompatible:"Not Compatible",checksku_warning_unabletoperformcheck:"Unable to perform compatibility check. Please check the compatibility manually"}},es:{translation:{bikematrix_poweredby:"Con tecnología de Bike Matrix",bikeselector_addbike_brand_desc:"La marca de la bicicleta suele indicarse en los lugares resaltados a continuación.",bikeselector_addbike_brand_label:"Marca",bikeselector_addbike_brand_select:"Selecciona la marca de la bicicleta",bikeselector_addbike_find_btn:"Buscar mi bicicleta",bikeselector_addbike_framespec_desc:"La versión del cuadro de la bicicleta suele indicarse en los lugares resaltados a continuación.",bikeselector_addbike_framespec_label:"Versión del cuadro",bikeselector_addbike_framespec_select:"Selecciona la versión del cuadro de la bicicleta",bikeselector_addbike_model_desc:"El modelo de la bicicleta suele indicarse en los lugares resaltados a continuación.",bikeselector_addbike_model_label:"Modelo",bikeselector_addbike_model_select:"Selecciona el modelo de la bicicleta",bikeselector_addbike_title:"Añadir una bicicleta",bikeselector_browse_back_btn:"Volver a mi rincón ciclista",bikeselector_browse_products_label:"Comprar productos compatibles",bikeselector_browse_shop_btn:"Comprar productos",bikeselector_browse_title:"¡A comprar!",bikeselector_confirm_brandmodelframespec_label:"Marca, modelo y versión del cuadro",bikeselector_confirm_confirm_btn:"¡Ahí está mi bici!",bikeselector_confirm_framesize_label:"Talla del cuadro",bikeselector_confirm_notyourride_msg:"¿No es la que buscas? Selecciona uno de los campos de arriba para modificarlo.",bikeselector_confirm_title:"Confirmación de la bicicleta",bikeselector_confirm_yearbikespec_label:"Año y versión de la bicicleta",bikeselector_home_add_a_bike:"Agregue una bicicleta a continuación para comenzar...",bikeselector_home_add_btn:"Añadir una bicicleta",bikeselector_home_browse_btn:"Ver compatibilidad",bikeselector_home_close_btn:"Cerrar",bikeselector_home_empty:"¡Tu salón está vacío!",bikeselector_home_footer_message:"Los fabricantes pueden modificar la versión de la bicicleta sin previo aviso. Las diferencias con la versión de las unidades en existencias pueden afectar a la compatibilidad.",bikeselector_home_title:"Mi rincón ciclista",bikeselector_search_bikespec_label:"Versión de la bicicleta",bikeselector_search_bikespec_select:"Selecciona la versión",bikeselector_search_bikespec_select_all:"Todos",bikeselector_search_confirm_btn:"Confirmar selección",bikeselector_search_no_bikes_found:"No se encontraron bicicletas",bikeselector_search_number_bikes_found:"{{number_found}} bicicletas encontradas",bikeselector_search_one_bike_found:"1 bicicleta encontrada",bikeselector_search_searching:"Búsqueda...",bikeselector_search_title:"Búsqueda de bicicletas",bikeselector_search_year_label:"Año",bikeselector_size_confirm_btn:"Confirmar talla",bikeselector_size_framesize_desc:"La talla del cuadro de la bicicleta suele indicarse en los lugares resaltados a continuación.",bikeselector_size_framesize_label:"Talla del cuadro",bikeselector_size_framesize_one_size:"Talla única",bikeselector_size_framesize_select:"Selecciona la talla del cuadro",bikeselector_size_title:"Selecciona la talla",compatible:"Compatible",compatible_check_notes:"Compatible - Ver notas",compatiblelist_header:"Productos compatibles",compatiblelist_nobikeselected:"No se ha seleccionado ninguna bicicleta. Haz clic aquí para añadir tu bicicleta y buscar componentes compatibles",compatiblelist_noresults:"No se encontraron productos compatibles",compatiblelist_pageone:"Todos los productos compatibles con tu bicicleta los puedes ver <a>aquí</a>",compatiblelist_unavailable:"¡La compatibilidad para esta categoría de producto, para la marca de bicicleta seleccionada, estará disponible próximamente!",not_compatible:"No compatible",productcheck_nobikeselected_label:"Comprobar compatibilidad",productcheck_nobikeselected_message:"Quieres añadir la bicicleta para comprobar si este componente es adecuado",productcheck_questionmark:"?",category_bike:"Bicicleta",category_bottombracket:"Pedalier",category_bottombracketpart:"Componente del pedalier",category_brakeadapter:"Adaptador de freno",category_brakeadapterpart:"Componente del adaptador de freno",category_brakecaliper:"Pinza de freno",category_brakecaliperpart:"Componente de la pinza de freno",category_brakecaliperservicekit:"Kit de mantenimiento de las pinzas de freno",category_brakelever:"Maneta de freno",category_brakeleverpart:"Componente de la maneta de freno",category_brakeleverservicekit:"Kit de mantenimiento de la maneta de freno",category_brakepads:"Pastillas de freno",category_brakerotor:"Disco de freno",category_brakerotorpart:"Componente del disco de freno",category_brakesystem:"Sistema de frenos",category_brakesystempart:"Componente del sistema de frenos",category_cassette:"Cassette",category_cassettepart:"Componente del cassette",category_chain:"Cadena",category_chainguide:"Guiacadenas",category_chainguidepart:"Componente del guiacadenas",category_chainjoiner:"Enlace de cadena",category_chainring:"Plato",category_chainringbolt:"Tornillo para plato",category_crankpart:"Componente de la biela",category_crankset:"Juego de bielas",category_dropperlever:"Palanca de tija telescópica",category_dropperleverpart:"Componente de la palanca de tija telescópica",category_ebikebattery:"Batería para bicicleta eléctrica",category_ebikebatterypart:"Componente de la batería para bicicleta eléctrica",category_ebikecharger:"Cargador para bicicleta eléctrica",category_ebikechargerpart:"Componente del cargador para bicicleta eléctrica",category_ebikecontrolunit:"Unidad de control para bicicleta eléctrica",category_ebikecontrolunitpart:"Componente de la unidad de control para bicicleta eléctrica",category_ebikeinterconnect:"Sistema de conexión para bicicleta eléctrica",category_ebikeinterconnectpart:"Componente del sistema de conexión para bicicleta eléctrica",category_ebikemotorsystem:"Motor para bicicleta eléctrica",category_ebikemotorsystempart:"Componente del motor para bicicleta eléctrica",category_fork:"Horquilla",category_forkpart:"Componente de la horquilla",category_forkservicekit:"Kit de mantenimiento de la horquilla",category_frame:"Cuadro",category_framepart:"Componente del cuadro",category_frontaxle:"Eje delantero",category_frontaxlepart:"Componente del eje delantero",category_frontderailleur:"Desviador delantero",category_frontderailleurpart:"Componente del desviador delantero",category_fronthub:"Buje delantero",category_fronthubpart:"Componente del buje delantero",category_frontwheel:"Rueda delantera",category_grips:"Puños",category_gripspart:"Componente de los puños",category_handlebar:"Manillar",category_headset:"Dirección",category_headsetpart:"Componente de la dirección",category_nipple:"Válvula",category_pedals:"Pedales",category_pedalspart:"Componente de los pedales",category_rearaxle:"Eje trasero",category_rearaxlepart:"Componente del eje trasero",category_rearderailleur:"Desviador trasero",category_rearderailleurpart:"Componente del desviador trasero",category_rearhub:"Buje trasero",category_rearhubpart:"Componente del buje trasero",category_rearshock:"Amortiguador trasero",category_rearshockpart:"Componente del amortiguador trasero",category_rearshockservicekit:"Kit de mantenimiento del amortiguador trasero",category_rearwheel:"Rueda trasera",category_rim:"Llanta",category_saddle:"Sillín",category_seatpost:"Tija del sillín",category_seatpostclamp:"Abrazadera de la tija del sillín",category_seatpostclamppart:"Componente de la abrazadera de la tija del sillín",category_seatpostpart:"Componente de la tija del sillín",category_seatpostservicekit:"Kit de mantenimiento de la tija del sillín",category_shiftadapter:"Adaptador del cambio",category_shiftadapterpart:"Componente del adaptador del cambio",category_shiftbrakecombo:"Maneta de cambio/freno",category_shiftbrakecombopart:"Componente de la maneta de cambio/freno",category_shifter:"Mando de cambio",category_shifterpart:"Componente del mando de cambio",category_spoke:"Radio",category_stem:"Potencia",category_stempart:"Componente de la potencia",category_tube:"Cámara",category_tyre:"Neumático",category_wheelset:"Juego de ruedas",checksku_message_nobikefound:"No se ha encontrado ninguna bicicleta con la clave indicada",checksku_message_nocompatibilityinfo:"No hay información sobre la compatibilidad",checksku_message_noproductfound:"No se ha encontrado ningún componente con la referencia, el código de barras o el número de pieza indicado",checksku_message_notcompatible:"No compatible",checksku_warning_unabletoperformcheck:"No se puede comprobar la compatibilidad. Comprueba la compatibilidad de forma manual."}}},{slice:zn,forEach:Rn}=[];function Nn(t){return Rn.call(zn.call(arguments,1),e=>{if(e)for(const r in e)t[r]===void 0&&(t[r]=e[r])}),t}const jo=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,Pn=(t,e,r)=>{const o=r||{};o.path=o.path||"/";const a=encodeURIComponent(e);let i=`${t}=${a}`;if(o.maxAge>0){const n=o.maxAge-0;if(Number.isNaN(n))throw new Error("maxAge should be a Number");i+=`; Max-Age=${Math.floor(n)}`}if(o.domain){if(!jo.test(o.domain))throw new TypeError("option domain is invalid");i+=`; Domain=${o.domain}`}if(o.path){if(!jo.test(o.path))throw new TypeError("option path is invalid");i+=`; Path=${o.path}`}if(o.expires){if(typeof o.expires.toUTCString!="function")throw new TypeError("option expires is invalid");i+=`; Expires=${o.expires.toUTCString()}`}if(o.httpOnly&&(i+="; HttpOnly"),o.secure&&(i+="; Secure"),o.sameSite)switch(typeof o.sameSite=="string"?o.sameSite.toLowerCase():o.sameSite){case!0:i+="; SameSite=Strict";break;case"lax":i+="; SameSite=Lax";break;case"strict":i+="; SameSite=Strict";break;case"none":i+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return i},$o={create(t,e,r,o){let a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{path:"/",sameSite:"strict"};r&&(a.expires=new Date,a.expires.setTime(a.expires.getTime()+r*60*1e3)),o&&(a.domain=o),document.cookie=Pn(t,encodeURIComponent(e),a)},read(t){const e=`${t}=`,r=document.cookie.split(";");for(let o=0;o<r.length;o++){let a=r[o];for(;a.charAt(0)===" ";)a=a.substring(1,a.length);if(a.indexOf(e)===0)return a.substring(e.length,a.length)}return null},remove(t){this.create(t,"",-1)}};var Tn={name:"cookie",lookup(t){let{lookupCookie:e}=t;if(e&&typeof document<"u")return $o.read(e)||void 0},cacheUserLanguage(t,e){let{lookupCookie:r,cookieMinutes:o,cookieDomain:a,cookieOptions:i}=e;r&&typeof document<"u"&&$o.create(r,t,o,a,i)}},On={name:"querystring",lookup(t){var o;let{lookupQuerystring:e}=t,r;if(typeof window<"u"){let{search:a}=window.location;!window.location.search&&((o=window.location.hash)==null?void 0:o.indexOf("?"))>-1&&(a=window.location.hash.substring(window.location.hash.indexOf("?")));const n=a.substring(1).split("&");for(let s=0;s<n.length;s++){const u=n[s].indexOf("=");u>0&&n[s].substring(0,u)===e&&(r=n[s].substring(u+1))}}return r}};let Qe=null;const Ho=()=>{if(Qe!==null)return Qe;try{Qe=window!=="undefined"&&window.localStorage!==null;const t="i18next.translate.boo";window.localStorage.setItem(t,"foo"),window.localStorage.removeItem(t)}catch{Qe=!1}return Qe};var Un={name:"localStorage",lookup(t){let{lookupLocalStorage:e}=t;if(e&&Ho())return window.localStorage.getItem(e)||void 0},cacheUserLanguage(t,e){let{lookupLocalStorage:r}=e;r&&Ho()&&window.localStorage.setItem(r,t)}};let Xe=null;const Go=()=>{if(Xe!==null)return Xe;try{Xe=window!=="undefined"&&window.sessionStorage!==null;const t="i18next.translate.boo";window.sessionStorage.setItem(t,"foo"),window.sessionStorage.removeItem(t)}catch{Xe=!1}return Xe};var In={name:"sessionStorage",lookup(t){let{lookupSessionStorage:e}=t;if(e&&Go())return window.sessionStorage.getItem(e)||void 0},cacheUserLanguage(t,e){let{lookupSessionStorage:r}=e;r&&Go()&&window.sessionStorage.setItem(r,t)}},Vn={name:"navigator",lookup(t){const e=[];if(typeof navigator<"u"){const{languages:r,userLanguage:o,language:a}=navigator;if(r)for(let i=0;i<r.length;i++)e.push(r[i]);o&&e.push(o),a&&e.push(a)}return e.length>0?e:void 0}},Mn={name:"htmlTag",lookup(t){let{htmlTag:e}=t,r;const o=e||(typeof document<"u"?document.documentElement:null);return o&&typeof o.getAttribute=="function"&&(r=o.getAttribute("lang")),r}},jn={name:"path",lookup(t){var a;let{lookupFromPathIndex:e}=t;if(typeof window>"u")return;const r=window.location.pathname.match(/\/([a-zA-Z-]*)/g);return Array.isArray(r)?(a=r[typeof e=="number"?e:0])==null?void 0:a.replace("/",""):void 0}},$n={name:"subdomain",lookup(t){var a,i;let{lookupFromSubdomainIndex:e}=t;const r=typeof e=="number"?e+1:1,o=typeof window<"u"&&((i=(a=window.location)==null?void 0:a.hostname)==null?void 0:i.match(/^(\w{2,5})\.(([a-z0-9-]{1,63}\.[a-z]{2,6})|localhost)/i));if(o)return o[r]}};function Hn(){return{order:["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"],lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"],convertDetectedLanguage:t=>t}}class Ko{constructor(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.type="languageDetector",this.detectors={},this.init(e,r)}init(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=e||{languageUtils:{}},this.options=Nn(r,this.options||{},Hn()),typeof this.options.convertDetectedLanguage=="string"&&this.options.convertDetectedLanguage.indexOf("15897")>-1&&(this.options.convertDetectedLanguage=a=>a.replace("-","_")),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=o,this.addDetector(Tn),this.addDetector(On),this.addDetector(Un),this.addDetector(In),this.addDetector(Vn),this.addDetector(Mn),this.addDetector(jn),this.addDetector($n)}addDetector(e){return this.detectors[e.name]=e,this}detect(e){e||(e=this.options.order);let r=[];return e.forEach(o=>{if(this.detectors[o]){let a=this.detectors[o].lookup(this.options);a&&typeof a=="string"&&(a=[a]),a&&(r=r.concat(a))}}),r=r.map(o=>this.options.convertDetectedLanguage(o)),this.services.languageUtils.getBestMatchFromCodes?r:r.length>0?r[0]:null}cacheUserLanguage(e,r){r||(r=this.options.caches),r&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(e)>-1||r.forEach(o=>{this.detectors[o]&&this.detectors[o].cacheUserLanguage(e,this.options)}))}}Ko.type="languageDetector",ee.use(Ra).use(Ko).init({debug:!1,resources:qn,detection:{order:["htmlTag","querystring","cookie","localStorage","sessionStorage","navigator","path","subdomain"]},supportedLngs:["en","en-GB","en-US","de","fr","es","it","nl"],fallbackLng:"en-GB",interpolation:{escapeValue:!1}});const Gn=typeof window<"u";function Te(t,e,r=[],o=null){sa(i=>Gt.value?d(t,{...i}):d(z,{}),e,r,o)}function Kn(){Te(ji,"bikematrix-bikeselector",[],{shadow:!0}),Te(Hi,"bikematrix-productresult",["data-sku"],{shadow:!0}),Te(Yi,"bikematrix-collectionresult",["data-product-id","data-product-skus"],{shadow:!0}),Te(Eo,"bikematrix-compatibilitylabel",["data-type"],{shadow:!0}),Te(on,"bikematrix-compatiblelist",["data-title"]),Te(un,"bikematrix-bikeselectorbanner",["data-title","data-color","data-full-width","data-font-color","data-show"],{shadow:!0})}function Jn(){if(!Gn)return null;const t=Si.getInstance(),e={isInitialized:()=>t.isInitialized(),init:r=>t.initialize(r),refresh:()=>t.refresh(),destroy:()=>t.destroy(),reload:(r=!0)=>t.reload(r),reset:()=>t.reset(),getConfig:()=>t.getConfig(),getCurrentBike:()=>t.getCurrentBike(),getActiveSubscription:()=>t.getActiveSubscription(),updateConfig:r=>t.updateConfig(r),updateSku:r=>t.updateSku(r)};return typeof process<"u"&&process.env.NODE_ENV==="development"&&(e.core=t),window.BikeMatrix=e,Kn(),document.currentScript&&(document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>e.init()):e.init()),e}return Jn()});
|