PageSourceSearch

https://utviklingsfondet.no/_next/static/chunks/pages/invester/gav…/[slug]/[product]-920997fff26ed73b.js

js utviklingsfondet.no collected 2026-09-24 22:45:58 UTC 18,971 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6244],{33839:function(t,e,i){(window.__NEXT_P=window.__NEXT_P||[]).push(["/invester/gaver-med-mening/[slug]/[product]",function(){return i(86756)}])},27580:function(t,e,i){"use strict";i.d(e,{Z:function(){return h}});var s=i(85157),o=i(18098),r=i(28525),n=i(93288),a=i(18643),l=i.n(a),c=i(34266);function h(t){var e=t.asset,i=(0,r.Z)(t,["asset"]),a=i.ratio||null;return!a&&e.width&&e.height&&(a="".concat(e.width,"/").concat(e.height)),(0,n.jsx)("img",(0,o.Z)((0,s.Z)({style:{aspectRatio:a},srcSet:e.srcset,src:e.url,alt:e.text2},i),{onLoad:function(){c.ScrollTrigger.refresh()}}))}l().registerPlugin(c.ScrollTrigger)},59137:function(t,e,i){"use strict";i.d(e,{W:function(){return s}}),e.Z={allowedTags:["address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","hgroup","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","main","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rb","rp","rt","rtc","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr","svg","rect","path","circle","polygon","polyline","line","text","tspan","defs","g","use","symbol","image"],allowedAttributes:{a:["href","target","title","rel","class"],img:["src","alt","title","class"],div:["class"],p:["class"],span:["class"],h1:["class"],h2:["class"],h3:["class"],h4:["class"],h5:["class"],h6:["class"],li:["class"],ol:["class"],ul:["class"],table:["class"],tr:["class"],td:["class"],th:["class"],svg:["*"],path:["*"],circle:["*"],rect:["*"],line:["*"],polyline:["*"],polygon:["*"],text:["*"],tspan:["*"],g:["*"],defs:["*"],clipPath:["*"],use:["*"],pattern:["*"],mask:["*"],foreignObject:["*"],animate:["*"],animateMotion:["*"],animateTransform:["*"],desc:["*"],title:["*"],style:["*"],iframe:["*"]}};var s={allowedTags:["a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rb","rp","rt","rtc","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","caption"],allowedAttributes:{a:["href","target","title","rel","class"],span:["class"],p:["class"]}}},86756:function(t,e,i){"use strict";i.r(e),i.d(e,{__N_SSG:function(){return M},default:function(){return j}});var s=i(93288),o=i(13473),r=i.n(o),n=i(88082),a=i(88569),l=i.n(a),c=i(21395),h=i(32466),p=i(9011),d=i(87149),u=i(59137),g=i(59354);const f=t=>Math.max(t.offsetHeight,t.scrollHeight);class v{constructor(t={}){const e={content:t.viewport.children[0],direction:"all",pointerMode:"all",scrollMode:void 0,bounce:!0,bounceForce:.1,friction:.05,textSelection:!1,inputsFocus:!0,emulateScroll:!1,preventDefaultOnEmulateScroll:!1,preventPointerMoveDefault:!0,lockScrollOnDragDirection:!1,pointerDownPreventDefault:!0,dragDirectionTolerance:40,onPointerDown(){},onPointerUp(){},onPointerMove(){},onClick(){},onUpdate(){},onWheel(){},shouldScroll:()=>!0};if(this.props={...e,...t},!this.props.viewport||!(this.props.viewport instanceof Element))return void console.error('ScrollBooster init error: "viewport" config property must be present and must be Element');if(!this.props.content)return void console.error("ScrollBooster init error: Viewport does not have any content");this.isDragging=!1,this.isTargetScroll=!1,this.isScrolling=!1,this.isRunning=!1;const i={x:0,y:0};this.position={...i},this.velocity={...i},this.dragStartPosition={...i},this.dragOffset={...i},this.clientOffset={...i},this.dragPosition={...i},this.targetPosition={...i},this.scrollOffset={...i},this.rafID=null,this.events={},this.updateMetrics(),this.handleEvents()}updateOptions(t={}){this.props={...this.props,...t},this.props.onUpdate(this.getState()),this.startAnimationLoop()}updateMetrics(){var t;this.viewport={width:this.props.viewport.clientWidth,height:this.props.viewport.clientHeight},this.content={width:(t=this.props.content,Math.max(t.offsetWidth,t.scrollWidth)),height:f(this.props.content)},this.edgeX={from:Math.min(-this.content.width+this.viewport.width,0),to:0},this.edgeY={from:Math.min(-this.content.height+this.viewport.height,0),to:0},this.props.onUpdate(this.getState()),this.startAnimationLoop()}startAnimationLoop(){this.isRunning=!0,cancelAnimationFrame(this.rafID),this.rafID=requestAnimationFrame((()=>this.animate()))}animate(){if(!this.isRunning)return;this.updateScrollPosition(),this.isMoving()||(this.isRunning=!1,this.isTargetScroll=!1);const t=this.getState();this.setContentPosition(t),this.props.onUpdate(t),this.rafID=requestAnimationFrame((()=>this.animate()))}updateScrollPosition(){this.applyEdgeForce(),this.applyDragForce(),this.applyScrollForce(),this.applyTargetForce();const t=1-this.props.friction;this.velocity.x*=t,this.velocity.y*=t,"vertical"!==this.props.direction&&(this.position.x+=this.velocity.x),"horizontal"!==this.props.direction&&(this.position.y+=this.velocity.y),this.props.bounce&&!this.isScrolling||this.isTargetScroll||(this.position.x=Math.max(Math.min(this.position.x,this.edgeX.to),this.edgeX.from),this.position.y=Math.max(Math.min(this.position.y,this.edgeY.to),this.edgeY.from))}applyForce(t){this.velocity.x+=t.x,this.velocity.y+=t.y}applyEdgeForce(){if(!this.props.bounce||this.isDragging)return;const t=this.position.x<this.edgeX.from,e=this.position.x>this.edgeX.to,i=this.position.y<this.edgeY.from,s=this.position.y>this.edgeY.to,o=t||e,r=i||s;if(!o&&!r)return;const n=t?this.edgeX.from:this.edgeX.to,a=i?this.edgeY.from:this.edgeY.to,l=n-this.position.x,c=a-this.position.y,h={x:l*this.props.bounceForce,y:c*this.props.bounceForce},p=this.position.x+(this.velocity.x+h.x)/this.props.friction,d=this.position.y+(this.velocity.y+h.y)/this.props.friction;(t&&p>=this.edgeX.from||e&&p<=this.edgeX.to)&&(h.x=l*this.props.bounceForce-this.velocity.x),(i&&d>=this.edgeY.from||s&&d<=this.edgeY.to)&&(h.y=c*this.props.bounceForce-this.velocity.y),this.applyForce({x:o?h.x:0,y:r?h.y:0})}applyDragForce(){if(!this.isDragging)return;const t=this.dragPosition.x-this.position.x,e=this.dragPosition.y-this.position.y;this.applyForce({x:t-this.velocity.x,y:e-this.velocity.y})}applyScrollForce(){this.isScrolling&&(this.applyForce({x:this.scrollOffset.x-this.velocity.x,y:this.scrollOffset.y-this.velocity.y}),this.scrollOffset.x=0,this.scrollOffset.y=0)}applyTargetForce(){this.isTargetScroll&&this.applyForce({x:.08*(this.targetPosition.x-this.position.x)-this.velocity.x,y:.08*(this.targetPosition.y-this.position.y)-this.velocity.y})}isMoving(){return this.isDragging||this.isScrolling||Math.abs(this.velocity.x)>=.01||Math.abs(this.velocity.y)>=.01}scrollTo(t={}){this.isTargetScroll=!0,this.targetPosition.x=-t.x||0,this.targetPosition.y=-t.y||0,this.startAnimationLoop()}setPosition(t={}){this.velocity.x=0,this.velocity.y=0,this.position.x=-t.x||0,this.position.y=-t.y||0,this.startAnimationLoop()}getState(){return{isMoving:this.isMoving(),isDragging:!(!this.dragOffset.x&&!this.dragOffset.y),position:{x:-this.position.x,y:-this.position.y},dragOffset:this.dragOffset,dragAngle:this.getDragAngle(this.clientOffset.x,this.clientOffset.y),borderCollision:{left:this.position.x>=this.edgeX.to,right:this.position.x<=this.edgeX.from,top:this.position.y>=this.edgeY.to,bottom:this.position.y<=this.edgeY.from}}}getDragAngle(t,e){return Math.round(Math.atan2(t,e)*(180/Math.PI))}getDragDirection(t,e){return Math.abs(90-Math.abs(t))<=90-e?"horizontal":"vertical"}setContentPosition(t){"transform"===this.props.scrollMode&&(this.props.content.style.transform=`translate(${-t.position.x}px, ${-t.position.y}px)`),"native"===this.props.scrollMode&&(this.props.viewport.scrollTop=t.position.y,this.props.viewport.scrollLeft=t.position.x)}handleEvents(){const t={x:0,y:0},e={x:0,y:0};let i=null,s=null,o=!1;const r=s=>{if(!this.isDragging)return;const r=o?s.touches[0]:s,{pageX:n,pageY:a,clientX:l,clientY:c}=r;this.dragOffset.x=n-t.x,this.dragOffset.y=a-t.y,this.clientOffset.x=l-e.x,this.clientOffset.y=c-e.y,(Math.abs(this.clientOffset.x)>5&&!i||Math.abs(this.clientOffset.y)>5&&!i)&&(i=this.getDragDirection(this.getDragAngle(this.clientOffset.x,this.clientOffset.y),this.props.dragDirectionTolerance)),this.props.lockScrollOnDragDirection&&"all"!==this.props.lockScrollOnDragDirection?i===this.props.lockScrollOnDragDirection&&o?(this.dragPosition.x=this.dragStartPosition.x+this.dragOffset.x,this.dragPosition.y=this.dragStartPosition.y+this.dragOffset.y):o?(this.dragPosition.x=this.dragStartPosition.x,this.dragPosition.y=this.dragStartPosition.y):(this.dragPosition.x=this.dragStartPosition.x+this.dragOffset.x,this.dragPosition.y=this.dragStartPosition.y+this.dragOffset.y):(this.dragPosition.x=this.dragStartPosition.x+this.dragOffset.x,this.dragPosition.y=this.dragStartPosition.y+this.dragOffset.y)};this.events.pointerdown=i=>{o=!(!i.touches||!i.touches[0]),this.props.onPointerDown(this.getState(),i,o);const s=o?i.touches[0]:i,{pageX:n,pageY:a,clientX:l,clientY:c}=s,{viewport:h}=this.props,p=h.getBoundingClientRect();if(l-p.left>=h.clientLeft+h.clientWidth)return;if(c-p.top>=h.clientTop+h.clientHeight)return;if(!this.props.shouldScroll(this.getState(),i))return;if(2===i.button)return;if("mouse"===this.props.pointerMode&&o)return;if("touch"===this.props.pointerMode&&!o)return;if(!(this.props.inputsFocus&&["input","textarea","button","select","label"].indexOf(i.target.nodeName.toLowerCase())>
1-1)){if(this.props.textSelection){const t=((t,e,i)=>{const s=t.childNodes,o=document.createRange();for(let r=0;r<s.length;r++){const t=s[r];if(3!==t.nodeType)continue;o.selectNodeContents(t);const n=o.getBoundingClientRect();if(e>=n.left&&i>=n.top&&e<=n.right&&i<=n.bottom)return t}return!1})(i.target,l,c);if(t)return;(()=>{const t=window.getSelection?window.getSelection():document.selection;t&&(t.removeAllRanges?t.removeAllRanges():t.empty&&t.empty())})()}this.isDragging=!0,t.x=n,t.y=a,e.x=l,e.y=c,this.dragStartPosition.x=this.position.x,this.dragStartPosition.y=this.position.y,r(i),this.startAnimationLoop(),!o&&this.props.pointerDownPreventDefault&&i.preventDefault()}},this.events.pointermove=t=>{!t.cancelable||"all"!==this.props.lockScrollOnDragDirection&&this.props.lockScrollOnDragDirection!==i||t.preventDefault(),r(t),this.props.onPointerMove(this.getState(),t,o)},this.events.pointerup=t=>{this.isDragging=!1,i=null,this.props.onPointerUp(this.getState(),t,o)},this.events.wheel=t=>{const e=this.getState();this.props.emulateScroll&&(this.velocity.x=0,this.velocity.y=0,this.isScrolling=!0,this.scrollOffset.x=-t.deltaX,this.scrollOffset.y=-t.deltaY,this.props.onWheel(e,t),this.startAnimationLoop(),clearTimeout(s),s=setTimeout((()=>this.isScrolling=!1),80),this.props.preventDefaultOnEmulateScroll&&this.getDragDirection(this.getDragAngle(-t.deltaX,-t.deltaY),this.props.dragDirectionTolerance)===this.props.preventDefaultOnEmulateScroll&&t.preventDefault())},this.events.scroll=()=>{const{scrollLeft:t,scrollTop:e}=this.props.viewport;Math.abs(this.position.x+t)>3&&(this.position.x=-t,this.velocity.x=0),Math.abs(this.position.y+e)>3&&(this.position.y=-e,this.velocity.y=0)},this.events.click=t=>{const e=this.getState(),i="vertical"!==this.props.direction?e.dragOffset.x:0,s="horizontal"!==this.props.direction?e.dragOffset.y:0;Math.max(Math.abs(i),Math.abs(s))>5&&(t.preventDefault(),t.stopPropagation()),this.props.onClick(e,t,o)},this.events.contentLoad=()=>this.updateMetrics(),this.events.resize=()=>this.updateMetrics(),this.props.viewport.addEventListener("mousedown",this.events.pointerdown),this.props.viewport.addEventListener("touchstart",this.events.pointerdown,{passive:!1}),this.props.viewport.addEventListener("click",this.events.click),this.props.viewport.addEventListener("wheel",this.events.wheel,{passive:!1}),this.props.viewport.addEventListener("scroll",this.events.scroll),this.props.content.addEventListener("load",this.events.contentLoad,!0),window.addEventListener("mousemove",this.events.pointermove),window.addEventListener("touchmove",this.events.pointermove,{passive:!1}),window.addEventListener("mouseup",this.events.pointerup),window.addEventListener("touchend",this.events.pointerup),window.addEventListener("resize",this.events.resize)}destroy(){this.props.viewport.removeEventListener("mousedown",this.events.pointerdown),this.props.viewport.removeEventListener("touchstart",this.events.pointerdown),this.props.viewport.removeEventListener("click",this.events.click),this.props.viewport.removeEventListener("wheel",this.events.wheel),this.props.viewport.removeEventListener("scroll",this.events.scroll),this.props.content.removeEventListener("load",this.events.contentLoad),window.removeEventListener("mousemove",this.events.pointermove),window.removeEventListener("touchmove",this.events.pointermove),window.removeEventListener("mouseup",this.events.pointerup),window.removeEventListener("touchend",this.events.pointerup),window.removeEventListener("resize",this.events.resize)}}function m(){return m=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var i=arguments[e];for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(t[s]=i[s])}return t},m.apply(this,arguments)}function x(t,e){if(null==t)return{};var i,s,o={},r=Object.keys(t);for(s=0;s<r.length;s++)i=r[s],e.indexOf(i)>=0||(o[i]=t[i]);return o}var y=function(t){void 0===t&&(t={});var e=(0,h.useRef)(null),i=(0,h.useState)(e.current),s=i[0],o=i[1],r=(0,h.useRef)(t),n=(0,h.useCallback)((function(t){var i=r.current,s=i.contentRef,n=m({viewport:t},x(i,["contentRef","viewportRef"]));n.viewport=t,(null==s?void 0:s.current)&&(n.content=s.current),e.current=ne
1w v(n),o(e.current)}),[]),a=(0,h.useCallback)((function(e){if(e){if(t.viewportRef)return void(t.viewportRef.current=e);n(e)}}),[n,t.viewportRef]);return(0,h.useEffect)((function(){var e;(null==(e=t.viewportRef)?void 0:e.current)&&n(t.viewportRef.current)}),[n,t.viewportRef]),(0,h.useEffect)((function(){return function(){var t;return null==(t=e.current)?void 0:t.destroy()}}),[]),[a,s]};var w=i(27580),b=function(t){var e=t.media,i=(0,h.useRef)(null),o=(0,g.Z)(y({direction:"horizontal",friction:.2,scrollMode:"native"}),2),r=o[0],n=o[1],a=(0,h.useState)(0),l=a[0],c=a[1],u=e.length;return(0,h.useEffect)((function(){if(i.current&&u>1&&n){var t=i.current.querySelectorAll(".scroller button")[l];if(t){var e=t.getBoundingClientRect(),s=t.parentNode.getBoundingClientRect(),o=e.left-s.left+e.width/2-s.width/2;n.scrollTo({x:o,y:0})}}}),[l,u,n]),e?(0,s.jsxs)("div",{className:"flex flex-col gap-3 overflow-hidden w-full lg:sticky lg:top-10",style:{aspectRatio:"46/44"},ref:i,children:[(0,s.jsx)("div",{className:"relative w-full flex-1 h-[38rem]",children:(0,s.jsx)(p.M,{initial:!1,children:(0,s.jsx)(d.E.div,{initial:{opacity:0,x:"100%"},animate:{opacity:1,x:0},exit:{opacity:0,x:"-100%"},transition:{duration:.5},className:"absolute inset-0 w-full h-full",children:(0,s.jsx)(w.Z,{asset:e[l],className:"w-full h-full object-cover block",ratio:"auto"})},l)})}),u>1&&(0,s.jsx)("div",{className:"scroller overflow-x-auto overflow-y-hidden scrollbar-hide flex-shrink-0 h-16 md:h-32 cursor-pointer",ref:r,children:(0,s.jsx)("div",{className:"flex gap-3 h-16 md:h-32",children:e.map((function(t,e){return(0,s.jsx)("button",{className:"w-auto h-full cursor-pointer transition-all will-change ".concat(l===e?"border-4 border-copper":""),onClick:function(t){c(e)},style:{aspectRatio:"11/8"},children:(0,s.jsx)(w.Z,{asset:t,className:"w-full h-full object-cover block will-change"})},e)}))})})]}):null},S=i(17001),P=function(t){var e=t.indexPage,i=t.category;return(0,s.jsxs)("div",{className:"breadcrumb text-sm text-dark-blue-grey mb-6 lg:mb-10",children:[(0,s.jsx)(S.Z,{href:e.url,children:e.title})," /"," ",i&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(S.Z,{href:i.url,children:i.title})," /"]})]})},D=i(52907),O=i(55908),k=l()((function(){return Promise.all([i.e(296),i.e(1406),i.e(4340),i.e(8679)]).then(i.bind(i,98679))}),{loadableGenerated:{webpack:function(){return[98679]}},ssr:!1}),M=!0;function j(t){var e,i,o,a,l,g=t.data,f=t.indexPage,v=g&&g.entry,m=(0,n.Z)("common").t,x=(0,c.useRouter)(),y=(0,h.useState)(!1),w=y[0],S=y[1],M=parseInt(v.available),j=!isNaN(M)&&M>0,E=null===(e=v.category)||void 0===e||null===(i=e[0])||void 0===i?void 0:i.categoryType;return(0,s.jsxs)("div",{className:"flex flex-col lg:flex-row lg:flex-wrap gap-10 lg:gap-x-12 3xl:gap-x-[9rem] pt-40 xl:pt-[18rem] pb-24 container max-w-[114rem]",children:[(0,s.jsx)(p.M,{children:w&&(0,s.jsx)(d.E.div,{initial:{opacity:0,y:"50%",x:"-50%"},animate:{opacity:1,y:"-50%",transition:{duration:.3}},exit:{opacity:0,y:"-100%",transition:{duration:.3}},className:"fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 z-50 container flex justify-center",children:(0,s.jsxs)("div",{className:"bg-dark-grey-blue rounded-[1.25rem] px-4 sm:px-12 py-12 sm:py-[3.75rem] text-white-10 text-center max-w-[32rem] w-full",children:[(0,s.jsx)("h2",{className:"text-h4 font-medium mb-4 text-white-10 !font-text",children:m("Added to cart")}),(0,s.jsx)(D.Z,{href:"/cart",className:"bg-white-10 text-black border-none mb-4",children:m("Proceed to checkout")}),(0,s.jsx)("br",{}),(0,s.jsxs)("button",{className:"inline-flex items-center text-text link-with-icon text-white-10",onClick:function(){return S(!1)},children:[(0,s.jsx)("span",{className:"inline-block overflow-hidden icon",children:(0,s.jsx)(O.Z,{className:"mr-4"})}),m("Continue shopping")]})]})})}),(0,s.jsx)("div",{className:"w-full",children:(0,s.jsxs)("button",{className:"inline-flex items-center text-sm text-dark-blue-grey font-medium gap-5",onClick:function(){document.referrer.includes(window.location.host)?x.back():x.push(f.url)},"aria-label":m("Back"),children:[(0,s.jsx)("span",{className:"inline-block overflow-hidden icon",children:(0,s.jsx)(O.Z,{className:"transform rotate-180"})}),m("Back")]})}),(0,s.jsx)("div",{className:"left lg:w-1/2 lg:max-w-3xl relative",children:(0,s.jsx)(b,{media:v.media})}),(0,s.jsxs)("div",{className:"right flex-1 lg:min-w-[25rem] flex-shrink-0",children:[(0,s.jsx)(P,{indexPage:f,category:null===(o=v.category)||void 0===o?void 0:o[0]}),(0,s.jsxs)("h1",{className:"text-h1-xsmall sm:text-h1-small font-heading font-light leading-none mb-8 text-dark-blue-grey-two",children:[v.title,!j&&"giftCard"!==E&&(0,s.jsxs)("span",{className:"text-red",children:[" / ",m("Sold out")]})]}),(0,s.jsx)("div",{className:"text-paragraphs wysiwyg text-text text-black max-w-[27rem] mb-8",dangerouslySetInnerHTML:{__html:r()(v.lead,u.W)}}),(j||"giftCard"===E)&&(0,s.jsx)(k,{type:null===(a=v.category)||void 0===a||null===(l=a[
10])||void 0===l?void 0:l.categoryType,product:v,amount:M,setPopup:S}),v.text3&&(0,s.jsx)("div",{className:"text-paragraphs wysiwyg text-text mt-[3.75rem]",dangerouslySetInnerHTML:{__html:r()(v.text3,u.Z)}})]})]})}},22868:function(){},14777:function(){},99830:function(){},70209:function(){}},function(t){t.O(0,[349,3473,3691,7149,9774,2888,179],(function(){return e=33839,t(t.s=e);var e}));var e=t.O();_N_E=e}]);

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.