PageSourceSearch

https://www.granngarden.se/dist/8646.539bef82.js

js granngarden.se collected 2026-09-24 18:18:11 UTC 9,343 bytes, 1 lines download raw bytes

1"use strict";(self.fkaWebpackJsonp=self.fkaWebpackJsonp||[]).push([[8646],{8646:(t,a,e)=>{e.r(a),e.d(a,{default:()=>R});var n=e(641),i=e(33);const r={class:"product-quantity__wrapper"},u={key:0,class:"product-quantity__loading button button--placeholder"},l={key:1,class:"product-quantity__submit"},s=["disabled"],o=["href"];var d=e(3751);const c=["aria-label","disabled"],p=["for"],v=["id","value","min","disabled","max"],b=["aria-label","disabled"],y={class:"quantity-input__feedback-wrapper",role:"alert"},m={key:0,class:"quantity-input__text"},h={key:1,class:"quantity-input__text"},g={key:2,class:"quantity-input__text"};var f=e(4324),k=e(953);const C=(0,n.pM)({name:"QuantityInput",mixins:[(0,f.m)()],emits:["change"],props:{id:{type:String,required:!0},value:{type:Number,default:1},min:{type:Number,default:1},max:{type:Number,default:1},cart:Boolean,disabled:Boolean,quantityStep:{type:Number,default:1}},setup(t,{emit:a}){const e=(0,k.KR)(!1),i=(0,k.KR)(!1),r=(0,k.KR)(!1),u=(0,n.EW)((()=>t.disabled||0===t.max));(0,n.wB)((()=>t.value),(a=>{a>t.max&&(r.value=!0)})),(0,n.wB)((()=>t.max),(a=>{t.value<=a?r.value=!1:r.value=!0}));const l=(0,n.EW)((()=>{const{value:a,min:e}=t;return 1===a&&a<=e}));return{isDisabled:u,subtract:()=>{const{value:n,min:u,quantityStep:l}=t;i.value=!1,r.value=!1,e.value=u!==l&&n-l<u,a("change",n-l<=u?u:n-l)},add:()=>{const{value:n,max:u,quantityStep:l}=t;e.value=!1,i.value=!1,n+l>u&&(r.value=!0),a("change",n+l>=u?u:n+l)},blur:n=>{const{min:u,max:l,quantityStep:s}=t;if(n.currentTarget instanceof HTMLInputElement){e.value=!1,r.value=!1,i.value=!1;const t=parseInt(n.currentTarget.value);if(t>l)r.value=!0,n.currentTarget.value=l.toString(),a("change",l);else if(t<u)a("change",u),e.value=!0;else if(t<1)n.currentTarget.value="1",a("change",1);else if(s>1&&t%s!=0){i.value=!0;const e=Math.floor(t/s)*s;n.currentTarget.value=e.toString(),a("change",e)}else a("change",t)}},enter:t=>{t.currentTarget instanceof HTMLInputElement&&t.currentTarget.blur()},showMinFeedback:e,showMaxFeedback:r,showPallFeedback:i,additionalMinCondition:l}}});var _=e(6262);const q=(0,_.A)(C,[["render",function(t,a,e,r,u,l){return(0,n.uX)(),(0,n.CE)(n.FK,null,[(0,n.Lk)("div",{class:(0,i.C4)(["quantity-input",{"quantity-input--disabled":t.isDisabled,"quantity-input--cart":t.cart}]),"data-initialized":"true"},[(0,n.Lk)("button",{"aria-label":t.translate("decrease"),class:"quantity-input__button quantity-input__button--subtract",type:"button",onClick:a[0]||(a[0]=(0,d.D$)(((...a)=>t.subtract&&t.subtract(...a)),["prevent"])),disabled:t.isDisabled||t.additionalMinCondition||t.showMinFeedback}," − ",8,c),(0,n.Lk)("label",{for:t.id,class:"sr-only"},(0,i.v_)(t.translate("quantity")),9,p),(0,n.Lk)("input",{id:t.id,type:"number",name:"quantity",value:t.value,min:t.min,class:(0,i.C4)(["quantity-input__input",{"quantity-input__input--error":t.showMinFeedback||t.showMaxFeedback}]),ref:"quantity",onKeyup:a[1]||(a[1]=(0,d.jR)(((...a)=>t.enter&&t.enter(...a)),["enter"])),onBlur:a[2]||(a[2]=(...a)=>t.blur&&t.blur(...a)),disabled:t.isDisabled,max:t.max,required:""},null,42,v),(0,n.Lk)("button",{"aria-label":t.translate("increase"),class:"quantity-input__button quantity-input__button--add",type:"button",onClick:a[3]||(a[3]=(0,d.D$)(((...a)=>t.add&&t.add(...a)),["prevent"])),disabled:t.isDisabled||t.showMaxFeedback}," + ",8,b)],2),(0,n.Lk)("div",y,[t.showMinFeedback?((0,n.uX)(),(0,n.CE)("span",m,(0,i.v_)(t.translateFormat([t.min],"minQuantity")),1)):(0,n.Q3)("",!0),t.showMaxFeedback?((0,n.uX)(),(0,n.CE)("span",h,(0,i.v_)(t.translateFormat([t.max],"maxQuantity")),1)):(0,n.Q3)("",!0),t.showPallFeedback?((0,n.uX)(),(0,n.CE)("span",g,(0,i.v_)(t.translateFormat([t.quantityStep],"pallQuantity")),1)):(0,n.Q3)("",!0)])],64)}]]);var E=e(7258),S=e(9901),w=e(9590),N=e(8857),I=e(6998),F=e(2908),x=e(3165),W=e(9635),Q=e(5052),M=e(7985),P=e(4303),A=e(2649),V=e(5094),T=e(2124),L=e(3233),B=e(1304);const O=(0,n.pM)({name:"ProductQuantity",mixins:[(0,f.m)()],components:{QuantityInput:q,Alert:E.default,Icon:Q.A},props:{initialInventory:Object,productCode:String,initialQuantity:Number,quantityStep:Number,initialVariantNumber:String,purchaseUrl:String,isService:Boolean,activeVariantNumber:String},setup(t){const a=(0,T.Pj)(),e=(0,k.KR)(t.initialQuantity??1),i=(0,k.KR)(!1);(0,n.wB)((()=>t.activeVariantNumber),(()=>{t.activeVariantNumber&&(i.value=!1)}));const r=(0,n.EW)((()=>a?(0,S.Uo)(a):null)),u=(0,n.EW)((()=>Array.isArray(s.value)&&s.value.length>0)),l=(0,n.EW)((()=>
1{if(a){const e=(0,w.hj)(a);if(t.initialVariantNumber)return e[t.initialVariantNumber];if(r.value)return e[r.value]}})),s=(0,n.EW)((()=>{if(a&&(t.productCode??r.value)){return(0,W.RP)(a).filter((a=>a.productNumber===t.productCode))}return[]})),o=(0,n.EW)((()=>{if(!Array.isArray(s.value)||0===s.value.length)return!0;const a=r.value??t.initialVariantNumber,e=s.value.find((t=>t.variantNumber===a))||s.value[0];return 0===e?.price})),d=(0,n.EW)((()=>t.productCode&&a?(0,w.xy)(a)[t.productCode]:null)),c=(0,n.EW)((()=>t.initialInventory??d.value??l.value)),p=(0,n.EW)((()=>!(c.value?.webInventoryStatus===F.R.NotInStock&&c.value?.availabilityInfo.availabilityStatus!=x.U.ForcedPurchaseButton)));(0,n.wB)((()=>d.value),(()=>{e.value<h.value&&(e.value=h.value)}));const v=(0,n.EW)((()=>!!m.value||(c.value?.availabilityInfo.showPurchaseButton??!1))),b=(0,n.EW)((()=>{if(!a||!t.productCode)return null;const e=(0,w.Qf)(a);return Object.prototype.hasOwnProperty.call(e,t.productCode)?e[t.productCode]:null})),y=(0,n.EW)((()=>(0,N.h8)(b.value))),m=(0,n.EW)((()=>b.value===N.an.Failed)),h=(0,n.EW)((()=>c.value?.minOrderableQuantity??1)),g=(0,n.EW)((()=>c.value?.maxOrderableQuantity??0)),f=(0,n.EW)((()=>e.value>g.value)),C=(0,n.EW)((()=>!c.value?.availabilityInfo.showPurchaseButton||f.value)),_=(0,n.EW)((()=>!!a&&(0,I.H2)(a).adding));return{change:t=>{e.value=t},handleAddToCart:async n=>{if(!a)return void V.z("Store not found");i.value=!1,n.preventDefault();const r={productNumber:t.productCode??"",variantNumber:t.activeVariantNumber??""};if((0,I.Uk)(a,{adding:!0,error:!1}),""===t.activeVariantNumber&&l.value)return i.value=!0,void(0,I.Uk)(a,{adding:!1,error:!1});try{const n=t.activeVariantNumber??"",i=e.value??t.initialQuantity??1,u=await M.A.post("/api/cart/item",{lineId:"",productNumber:t.productCode??"",variantNumber:n,quantity:i}),l=await u.json();l.dataLayers&&l.dataLayers.forEach((t=>{const a=JSON.parse(t);A.V(a)})),(0,I.nM)(a,l),(0,I.Uk)(a,{adding:!1,items:[r],error:!1}),(0,B.Io)({cartRef:l.cartId,items:(l.items||[]).map((t=>({itemId:t.variantNumber||t.productNumber,quantity:t.quantity})))});const s={eventType:"add-to-cart",cartId:l.cartId,productDetails:[{product:{id:`p_${t.productCode??n}`,primaryProductId:t.productCode??n,type:"PRIMARY",variants:n?[{id:`v_${n}`,primaryProductId:t.productCode??n,type:"VARIANT"}]:[],priceInfo:{price:(l.items?.[0].price||0)+"",currencyCode:"SEK"},title:l.items?.[0]?.name||t.productCode},quantity:i}]},o=L.F.getAttributionFromUrl();o&&(s.attributionToken=o,L.F.addAttribution(t.productCode,o)),L.F.trackRetailEvent(s)}catch(t){let e=!0;throw t instanceof P.G&&(e=t.message),(0,I.Uk)(a,{adding:!1,items:[r],error:e}),t}},disabled:C,max:g,isNotOutOfOnlineStock:p,min:h,isMissingVariantSelect:i,value:e,areFetching:y,isPriceZero:o,showPurchaseButton:v,addingToCart:_,hasLoadedPrices:u}}}),R=(0,_.A)(O,[["render",function(t,a,e,d,c,p){const v=(0,n.g2)("Alert"),b=(0,n.g2)("quantity-input"),y=(0,n.g2)("icon");return(0,n.uX)(),(0,n.CE)("div",r,[t.areFetching?((0,n.uX)(),(0,n.CE)("div",u,[(0,n.Lk)("span",null,(0,i.v_)(t.translate("loading")),1)])):(0,n.Q3)("",!0),!t.isNotOutOfOnlineStock||t.areFetching||t.isPriceZero?(0,n.Q3)("",!0):((0,n.uX)(),(0,n.CE)(n.FK,{key:1},[t.isMissingVariantSelect?((0,n.uX)(),(0,n.Wv)(v,{key:0,"aria-live":"polite",showIcon:!0,message:t.translate("missingSelectedVariant"),isClosable:!1,outline:!1},null,8,["message"])):(0,n.Q3)("",!0),t.showPurchaseButton?((0,n.uX)(),(0,n.CE)("div",l,[t.isService?(0,n.Q3)("",!0):((0,n.uX)(),(0,n.Wv)(b,{key:0,id:"product-quantity-selector",value:t.value,disabled:t.disabled||t.isMissingVariantSelect,onChange:t.change,lang:t.translate("quantityInput"),min:t.min,max:t.max,"quantity-step":t.quantityStep},null,8,["value","disabled","onChange","lang","min","max","quantity-step"])),t.purchaseUrl?(0,n.Q3)("",!0):((0,n.uX)(),(0,n.CE)("button",{key:1,type:"submit",disabled:t.disabled||t.isMissingVariantSelect,class:(0,i.C4)(["product-quantity__buy",{"button--loading":t.addingToCart,"product-quantity__buy--disabled":t.disabled||t.isMissingVariantSelect}]),onClick:a[0]||(a[0]=(...a)=>t.handleAddToCart&&t.handleAddToCart(...a)),ref:"purchase"},[(0,n.bF)(y,{icon:"shopping-cart",width:"23",height:"23"}),(0,n.Lk)("span",null,(0,i.v_)(t.translate("buy")),1)],10,s)),t.purchaseUrl?((0,n.uX)(),(0,n.CE)("a",{key:2,href:t.purchaseUrl,target:"_blank",rel:"noopener",class:"product-quantity__buy button button--primary-buy",ref:"purchase"},[(0,n.bF)(y,{icon:"cart",width:"30",height:"28"}),(0,n.Lk)("span",null,(0,i.v_)(t.translate("bookHere")),1)],8,o)):(0,n.Q3)("",!0)])):(0,n.Q3)("",!0)],64)),t.isPriceZero&&t.hasLoadedPrices&&!t.areFetching?((0,n.uX)(),(0,n.Wv)(v,{key:2,lang:t.translate("quantityInput"),showIcon:!0,message:t.translate("missingPriceOnline"),isClosable:!1,outline:!1},null,8,["lang","message"])):(0,n.Q3)("",!0)])}]])}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.