PageSourceSearch

https://www.harborn.com/_nuxt/DcN6RGf-.js

js harborn.com collected 2026-10-05 09:34:49 UTC 13,246 bytes, 32 lines download raw bytes

1import{u as $}from"./CWULblP4.js";import{d as v,A as E,g as r,e as n,i as c,m as g,t as _,f as o,v as H,k as T,p as y,j as f,h as S,y as M,H as W,F as L,r as F,J as B,D as N,x as z,C as Y,a as j,u as R,w as U,c as k,E as G,b as V,l as q}from"./BWVc8IJF.js";import{L as J,I as Q}from"./CEXqIrhC.js";import{s as K}from"./wgVL2Cdu.js";import Z from"./XvIxtr1l.js";import{g as ee}from"./rX5mY-HP.js";import{u as te}from"./ChM6cm01.js";import{u as ie}from"./Cmz9WHbG.js";import{u as D}from"./BOSBS1yl.js";import"./DPr15Oec.js";const se=`
2#ifdef GL_ES
3  precision mediump float;
4#endif
5
6uniform vec4 resolution;
7uniform vec2 mouse;
8uniform vec2 threshold;
9uniform float time;
10uniform float pixelRatio;
11uniform sampler2D image0;
12uniform sampler2D image1;
13
14vec2 mirrored(vec2 v) {
15  vec2 m = mod(v,2.);
16  return mix(m,2.0 - m, step(1.0 ,m));
17}
18
19void main() {
20  // uvs and textures
21  vec2 uv = pixelRatio*gl_FragCoord.xy / resolution.xy ;
22  vec2 vUv = (uv - vec2(0.5))*resolution.zw + vec2(0.5);
23  vUv.y = 1. - vUv.y;
24  vec4 tex1 = texture2D(image1,mirrored(vUv));
25  vec2 fake3d = vec2(vUv.x + (tex1.r - 0.5)*mouse.x/threshold.x, vUv.y + (tex1.r - 0.5)*mouse.y/threshold.y);
26  gl_FragColor = texture2D(image0,mirrored(fake3d));
27}`,ae=`
28attribute vec2 a_position;
29
30void main() {
31  gl_Position = vec4( a_position, 0, 1 );
32}`;function A(i,e,s,t){this.name=i,this.suffix=e,this.gl=t,this.program=s,this.location=t.getUniformLocation(s,i)}A.prototype.set=function(...e){const s=`uniform${this.suffix}`,t=[this.location].concat(e);this.gl[s].apply(this.gl,t)};function x(i){const e=i.createBuffer();i.bindBuffer(i.ARRAY_BUFFER,e),i.bufferData(i.ARRAY_BUFFER,x.verts,i.STATIC_DRAW)}function oe(i,e){const s=new Image;return s.src=i,s.onload=e,s.crossOrigin="",s}function ne(i,e){const s=[];let t=i.length;function a(){t-=1,t===0&&e(s)}for(let l=0;l<t;++l){const h=oe(i[l],a);s.push(h)}}class re{initialize(e){this.container=document.getElementById(e),this.container&&(this.canvas=document.createElement("canvas"),this.container.appendChild(this.canvas),this.gl=this.canvas.getContext("webgl"),this.ratio=window.devicePixelRatio,this.windowWidth=window.innerWidth,this.windowHeight=window.innerHeight,this.mouseX=0,this.mouseY=0,this.mouseTargetX=0,this.mouseTargetY=0,this.imageOriginal=this.container.getAttribute("data-imageOriginal"),this.imageDepth=this.container.getAttribute("data-imageDepth"),this.vth=this.container.getAttribute("data-verticalThreshold"),this.hth=this.container.getAttribute("data-horizontalThreshold"),this.imageURLs=[this.imageOriginal,this.imageDepth],this.textures=[],this.startTime=new Date().getTime(),this.createScene(),this.addTexture(),this.mouseMove())}addShader(e,s){const t=this.gl.createShader(s);if(this.gl.shaderSource(t,e),this.gl.compileShader(t),!this.gl.getShaderParameter(t,this.gl.COMPILE_STATUS))throw new Error(`Shader compile error: ${this.gl.getShaderInfoLog(t)}`);this.gl.attachShader(this.program,t)}resizeHandler(){this.windowWidth=window.innerWidth,this.windowHeight=window.innerHeight,this.width=this.container.offsetWidth,this.height=this.container.offsetHeight,this.canvas.width=this.width*this.ratio,this.canvas.height=this.height*this.ratio,this.canvas.style.width=`${this.width}px`,this.canvas.style.height=`${this.height}px`;let e,s;this.height/this.width<this.imageAspect?(e=1,s=this.height/this.width/this.imageAspect):(e=this.width/this.height*this.imageAspect,s=1),this.uResolution.set(this.width,this.height,e,s),this.uRatio.set(1/this.ratio),this.uThreshold.set(this.hth,this.vth),this.gl.viewport(0,0,this.width*this.ratio,this.height*this.ratio)}resize(){this.resizeHandler(),window.addEventListener("resize",this.resizeHandler.bind(this))}createScene(){this.program=this.gl.createProgram(),this.addShader(ae,this.gl.VERTEX_SHADER),this.addShader(se,this.gl.FRAGMENT_SHADER),this.gl.linkProgram(this.program),this.gl.useProgram(this.program),this.uResolution=new A("resolution","4f",this.program,this.gl),this.uMouse=new A("mouse","2f",this.program,this.gl),this.uTime=new A("time","1f",this.program,this.gl),this.uRatio=new A("pixelRatio","1f",this.program,this.gl),this.uThreshold=new A("threshold","2f",this.program,this.gl),this.billboard=new x(this.gl),this.positionLocation=this.gl.getAttribLocation(this.program,"a_position"),this.gl.enableVertexAttribArray(this.positionLocation),this.gl.vertexAttribPointer(this.positionLocation,2,this.gl.FLOAT,!1,0,0)}addTexture(){const e=this;ne(this.imageURLs,e.start.bind(this))}start(e){const s=this,{gl:t}=s;
32this.imageAspect=e[0].naturalHeight/e[0].naturalWidth;for(let h=0;h<e.length;h+=1){const m=t.createTexture();t.bindTexture(t.TEXTURE_2D,m),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,e[h]),this.textures.push(m)}const a=this.gl.getUniformLocation(this.program,"image0"),l=this.gl.getUniformLocation(this.program,"image1");this.gl.uniform1i(a,0),this.gl.uniform1i(l,1),this.gl.activeTexture(this.gl.TEXTURE0),this.gl.bindTexture(this.gl.TEXTURE_2D,this.textures[0]),this.gl.activeTexture(this.gl.TEXTURE1),this.gl.bindTexture(this.gl.TEXTURE_2D,this.textures[1]),this.resize(),this.render()}mouseMove(){const e=this;document.addEventListener("mousemove",s=>{const t=e.windowWidth/2,a=e.windowHeight/2;e.mouseTargetX=(t-s.clientX)/t,e.mouseTargetY=(a-s.clientY)/a})}render(){const s=(new Date().getTime()-this.startTime)/1e3;this.uTime.set(s),this.mouseX+=(this.mouseTargetX-this.mouseX)*.05,this.mouseY+=(this.mouseTargetY-this.mouseY)*.05,this.uMouse.set(this.mouseX,this.mouseY),this.billboard.render(this.gl),requestAnimationFrame(this.render.bind(this))}}x.verts=new Float32Array([-1,-1,1,-1,-1,1,1,1]);x.prototype.render=function(e){e.drawArrays(e.TRIANGLE_STRIP,0,4)};const le={class:"detail-hero"},ce=["data-imageOriginal","data-imageDepth"],he={class:"detail-hero__title"},ue={class:"detail-hero__subtitle"},me=v({__name:"AppAboutUsDetailHero",props:{employee:{type:Object,required:!0}},setup(i){const{animateWords:e}=$(),s=i,t=H(null),a=T(()=>s.employee.profileImage),l=T(()=>{const u=a.value?.image?a.value.image.data.attributes.url:null,d=a.value?.depthMap?a.value.depthMap.data.attributes.url:null;return{original:u,depthMap:d}});function h(){new re().initialize("gl")}const m=()=>{s.employee&&(e(t.value?.querySelector(".detail-hero__title"),1.2,0),e(t.value?.querySelector(".detail-hero__subtitle"),1.2,0,.4))};return E(()=>{h(),m()}),(u,d)=>(o(),r("div",le,[n(l).original&&n(l).depthMap?(o(),r("div",{key:0,id:"gl",class:"detail-hero__image","data-imageOriginal":u.$image.getUrl(n(l).original),"data-imageDepth":u.$image.getUrl(n(l).depthMap),"data-horizontalThreshold":"35","data-verticalThreshold":"15"},null,8,ce)):c("",!0),g("div",{ref_key:"textContent",ref:t,class:"detail-hero__content grid-padding"},[g("h1",he,_(i.employee.fullName),1),g("div",ue,_(i.employee.function),1)],512)]))}}),de=Object.assign(y(me,[["__scopeId","data-v-035e0c37"]]),{__name:"AppAboutUsDetailHero"}),ge={class:"employee-contact"},pe={class:"employee-contact__details grid-padding--horizontal content"},fe={key:0,class:"employee-contact__details__link"},_e=["href"],ve={key:1,class:"employee-contact__details__link"},ye=["href"],be={key:0,class:"employee-contact__social"},Ae=["href","aria-label"],Te=["href","aria-label"],we=v({__name:"AppAboutUsDetailContact",props:{employee:{type:Object,required:!0}},setup(i){const e=s=>s.replace(/\s+/g,"");return(s,t)=>(o(),r("div",ge,[g("div",pe,[i.employee.email?(o(),r("span",fe,[g("a",{href:`mailto:${i.employee.email}`,class:"link",rel:"noopener noreferrer"},_(i.employee.email),9,_e)])):c("",!0),i.employee.phonenumber?(o(),r("span",ve,[g("a",{href:`tel:${e(i.employee.phonenumber)}`,class:"link",rel:"noopener noreferrer"},_(i.employee.phonenumber),9,ye)])):c("",!0)]),i.employee.linkedIn||i.employee.instagram?(o(),r("div",be,[i.employee.linkedIn?(o(),r("a",{key:0,href:i.employee.linkedIn,target:"_blank",rel:"noopener noreferrer","aria-label":i.employee.linkedIn,class:"employee-contact__social__link employee-contact__social__link--linkedin"},[f(n(J),{class:"employee-contact__social__icon"})],8,Ae)):c("",!0),i.employee.instagram?(o(),r("a",{key:1,href:i.employee.instagram,target:"_blank",rel:"noopener noreferrer","aria-label":i.employee.linkedIn,class:"employee-contact__social__link employee-contact__social__link--instagram"},[f(n(Q),{class:"employee-contact__social__icon"})],8,Te)):c("",!0)])):c("",!0)]))}}),xe=Object.assign(y(we,[["__scopeId","data-v-d3deca74"]]),{__name:"AppAboutUsDetailContact"}),Ee={key:0,class:"employee-content col grid-padding--right grid-padding--bottom"},Ie={key:0},Re=v({__name:"AppAboutUsDetailContent",props:{content:{type:Object,default:void 0}}
32,setup(i){return(e,s)=>{const t=M;return i.content?(o(),r("div",Ee,[i.content.title?(o(),r("h2",Ie,_(i.content.title),1)):c("",!0),i.content.text?(o(),S(t,{key:1,content:i.content.text},null,8,["content"])):c("",!0)])):c("",!0)}}}),Ue=Object.assign(y(Re,[["__scopeId","data-v-ab6568cc"]]),{__name:"AppAboutUsDetailContent"}),ke={key:0,class:"fun-facts col grid-padding--top"},De={class:"fun-facts__title"},w=1,$e=v({__name:"AppAboutUsDetailFunFacts",props:{funFacts:{type:Array,default:()=>[]}},setup(i){const e=i,{animateRevealFromRight:s}=$();let t=null;const a=T(()=>e.funFacts.length-w),l=T(()=>e.funFacts.slice(0,w)),h=T(()=>e.funFacts.filter(u=>!l.value.includes(u))),m=()=>{const u=Math.floor(Math.random()*a.value),d=Math.floor(Math.random()*w),b=`.fun-facts__fact:nth-child(${d+2}) .fun-facts__fact-mask`;s(b,()=>{l.value.splice(d,1,h.value[u])})};return E(()=>{funFacts.value&&funFacts.value.length>0&&(t=K(m,8e3))}),W(()=>{t&&clearInterval(t)}),(u,d)=>i.funFacts&&i.funFacts.length>0?(o(),r("div",ke,[g("span",De,_(u.$t("about-us.detail.fun-facts.title")),1),(o(),r(L,null,F(w,b=>g("div",{key:b,class:"fun-facts__fact"},[B(" “"+_(n(l)[b-1].fact)+"” ",1),d[0]||(d[0]=g("div",{class:"fun-facts__fact-mask"},null,-1))])),64))])):c("",!0)}}),Se=Object.assign(y($e,[["__scopeId","data-v-b0d3d667"]]),{__name:"AppAboutUsDetailFunFacts"}),Le={key:0,class:"song"},Fe=["src"],Ce=v({__name:"AppAboutUsDetailWorkAnthem",props:{spotifyId:{type:String,default:null}},setup(i){return(e,s)=>i.spotifyId?(o(),r("div",Le,[g("iframe",{title:"Spotify",src:`https://open.spotify.com/embed/track/${i.spotifyId}?utm_source=generator&theme=0`,width:"100%",height:"80",allowfullscreen:!1,allow:"autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture"},null,8,Fe)])):c("",!0)}}),Pe=Object.assign(y(Ce,[["__scopeId","data-v-5b17db17"]]),{__name:"AppAboutUsDetailWorkAnthem"}),Oe=v({__name:"AppAboutUsDetailExtraImages",props:{images:{type:Array,default:()=>[]}},setup(i){return E(()=>{document.querySelectorAll(".images__image-inner").forEach(e=>{const t=e.offsetHeight/3;setTimeout(()=>{const a=N.timeline({scrollTrigger:{trigger:e,start:()=>e.offsetHeight*-1,end:"max",scrub:1,invalidateOnRefresh:!0}});a.from(e,{y:`-${t}px`,ease:"Expo.easeOut"}),a.to(e,{y:0,ease:"Expo.easeOut"})})})}),(e,s)=>i.images&&i.images.length>0?(o(),r("div",{key:0,class:z(["images",`images--${i.images.length}`])},[(o(!0),r(L,null,F(i.images,(t,a)=>(o(),r("div",{key:`${a}-detail-extra-image`,class:"images__image"},[g("div",{class:"images__image-inner",style:Y({backgroundImage:`url(${e.$image.getUrl(t.image.data.attributes.url)})`})},null,4)]))),128))],2)):c("",!0)}}),Xe=Object.assign(y(Oe,[["__scopeId","data-v-c69e3ef1"]]),{__name:"AppAboutUsDetailExtraImages"}),He={key:0,class:"people-detail"},Me={class:"people-detail__content row"},We=v({__name:"[slug]",async setup(i){let e,s;const t=j(),{slug:a}=t.params,{fullPath:l}=t,{locale:h}=R(),{data:m,error:u}=([e,s]=U(()=>D(`/api/employees/${a}`,{params:{locale:h.value}},"$P5WVy1LPkl")),e=await e,s(),e),{data:d,error:b}=([e,s]=U(()=>D("/api/employees",{params:{locale:h.value}},"$LO5W-CQ4HL")),e=await e,s(),e);if(!m.value?.data?.length)throw k({statusCode:404,statusMessage:`404 Page '${l}' Not Found`});if(u.value||b.value)throw k({statusCode:500,statusMessage:"Unknown error fetching data"});const C=G(),I=m.value?ee(m.value):void 0;m.value&&I&&C(I);const p=T(()=>m.value?.data[0]?.attributes),{createBreadcrumbSchema:P}=ie(),{t:O}=R(),X=q();return V([P([{name:O("pages.about-us"),item:`/${h.value}/about-us`},{name:p.value?.fullName||"",item:`${X.public.baseUrl}${t.fullPath}`}])]),te({seo:p.value?.seo,title:p.value?.fullName,type:"profile"}),(Be,Ne)=>n(p)?(o(),r("div",He,[f(de,{employee:n(p)},null,8,["employee"]),f(xe,{employee:n(p)},null,8,["employee"]),g("div",Me,[f(Ue,{content:n(p).content,class:"people-detail__body"},null,8,["content"]),f(Se,{"fun-facts":n(p).funFacts,class:"people-detail__fun-facts"},null,8,["fun-facts"])]),f(Pe,{"spotify-id":n(p).spotifySongId},null,8,["spotify-id"]),f(Xe,{images:n(p).extraImages},null,8,["images"]),n(d)&&n(d).data?.length?(o(),S(Z,{key:0,employees:n(d).data,class:"people-detail__employees grid-padding--top grid-padding--bottom"},null,8,["employees"])):c("",!0)])):c("",!0)}}),et=y(We,[["__scopeId","data-v-fc31ad22"]]);export{et as default};

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.