PageSourceSearch

https://sollentunacentrum.se/dist/client/assets/DailyFootfall-VicClBlH.js

js sollentunacentrum.se collected 2026-09-26 14:25:00 UTC 9,179 bytes, 1 lines download raw bytes

1import{a as S}from"./index-BX4p_2E3.js";import{L as H}from"./LoadingSpinner-BysyIPFJ.js";import{_ as v}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{c as d,o,a as i,F as g,d as f,n as y,t as u,r as x,p as D,m as c,b as I,l as L}from"./runtime-dom.esm-bundler-DjT8oBXG.js";import{a as _}from"./index-B24KBrnw.js";import{r as b,t as k,a as N}from"./index-Dr74XzEq.js";import{s as m,i as A}from"./index-DIOrrkEg.js";import{g as M}from"./index-DlrhC3lK.js";import{b as w,f as B}from"./index-4nUR4sHy.js";var C=864e5;function O(s,e){b(2,arguments);var a=m(s),r=m(e),n=a.getTime()-w(a),t=r.getTime()-w(r);return Math.round((n-t)/C)}function V(s,e){var a=s.getFullYear()-e.getFullYear()||s.getMonth()-e.getMonth()||s.getDate()-e.getDate()||s.getHours()-e.getHours()||s.getMinutes()-e.getMinutes()||s.getSeconds()-e.getSeconds()||s.getMilliseconds()-e.getMilliseconds();return a<0?-1:a>0?1:a}function G(s,e){b(2,arguments);var a=k(s),r=k(e),n=V(a,r),t=Math.abs(O(a,r));a.setDate(a.getDate()-n*t);var l=+(V(a,r)===-n),h=n*(t-l);return h===0?0:h}function E(s,e){b(2,arguments);var a=N(e);return _(s,-a)}const P={name:"FootfallGraph",props:{hours:Array},emits:["hover:hour"],setup(){return{yAxisHeight:40,xAxisWidth:100,barSpacingRatio:.4}},data(){return{hoveringIndex:-1}},computed:{barWidth(){return this.xAxisWidth*(1-this.barSpacingRatio)/this.hours.length},barGap(){return this.xAxisWidth*this.barSpacingRatio/(this.hours.length-1)},actualFootfallPoints(){const s=this.hours.findIndex(a=>a.actual===0),e=[];for(let a=0;a<s;
1a++)e.push([(this.barWidth+this.barGap)*a+this.barWidth*.5,this.yAxisHeight-this.yAxisHeight*this.hours[a].actual]);return e},polylinePoints(){return this.actualFootfallPoints.map(s=>s[0]+","+s[1]).join(" ")}},watch:{hoveringIndex(s){s===-1?this.$emit("hover:hour",null):this.$emit("hover:hour",{hour:this.hours[s],index:s})}}},T=["viewBox"],j=["transform"],Y=["x2"],z=["y1","x2","y2"],q=["y1","x2","y2"],U=["y1","x2","y2"],J=["transform"],K=["transform"],Q=["width","height","x"],R=["x","width","height","onMouseenter"],X=["points"],Z=["cx","cy"],$=["transform"],ee=["x"];function te(s,e,a,r,n,t){return o(),d("svg",{class:"footfall-graph",viewBox:`0 0 100 ${r.yAxisHeight+15}`},[i("g",{transform:`translate(${(100-r.xAxisWidth)/2} 5)`},[i("line",{x1:0,y1:0,x2:r.xAxisWidth,y2:0,stroke:"rgb(225, 225, 225)","stroke-width":".25"},null,8,Y),i("line",{x1:0,y1:r.yAxisHeight*.3333,x2:r.xAxisWidth,y2:r.yAxisHeight*.3333,stroke:"rgb(225, 225, 225)","stroke-width":".25"},null,8,z),i("line",{x1:0,y1:r.yAxisHeight*.6666,x2:r.xAxisWidth,y2:r.yAxisHeight*.6666,stroke:"rgb(225, 225, 225)","stroke-width":".25"},null,8,q),i("line",{x1:0,y1:r.yAxisHeight,x2:r.xAxisWidth,y2:r.yAxisHeight,stroke:"rgb(225, 225, 225)","stroke-width":".25"},null,8,U)],8,j),i("g",{transform:`translate(${(100-r.xAxisWidth)/2} 5)`,onMouseleave:e[0]||(e[0]=l=>n.hoveringIndex=-1)},[i("g",{class:"footfall-graph__bars",transform:`scale(1,-1) translate(0,-${r.yAxisHeight})`},[(o(!0),d(g,null,f(a.hours,(l,h)=>(o(),d("g",{key:l.title},[i("rect",{class:y(["footfall-graph__bar",{"footfall-graph__bar--dimmed":n.hoveringIndex>=0&&n.hoveringIndex!==h}]),width:t.barWidth,height:r.yAxisHeight*l.expected,x:(t.barWidth+t.barGap)*h,y:0},null,10,Q),i("rect",{fill:"transparent",x:(t.barWidth+t.barGap)*h-t.barGap*.5,y:"0",width:t.barWidth+t.barGap,height:r.yAxisHeight,onMouseenter:p=>n.hoveringIndex=h},null,40,R)]))),128))],8,K),i("polyline",{class:y(["footfall-graph__line",{"footfall-graph__line--dimmed":n.hoveringIndex>=0&&n.hoveringIndex<t.actualFootfallPoints.length}]),points:t.polylinePoints},null,10,X),i("g",null,[(o(!0),d(g,null,f(t.actualFootfallPoints,(l,h)=>(o(),d("circle",{key:h,class:y(["footfall-graph__dot",{"footfall-graph__dot--dimmed":n.hoveringIndex!==h}]),r:1.2,cx:l[0],cy:l[1]},null,10,Z))),128))]),i("g",{class:"footfall-graph__labels",transform:`translate(0 ${r.yAxisHeight})`},[(o(!0),d(g,null,f(a.hours,(l,h)=>(o(),d("text",{key:l.title,class:y(["footfall-graph__label",{"footfall-graph__label--highlight":l.showLabel&&n.hoveringIndex<0||n.hoveringIndex===h}]),x:(t.barWidth+t.barGap)*h+t.barWidth*.5,"text-anchor":"middle",y:"6"},u(l.title),11,ee))),128))],8,$)],40,J)],8,T)}const ae=v(P,[["render",te]]),se={name:"FootfallWeekdaySelector",props:{modelValue:Date,maxDaysAhead:Number,label:String,i18n:{type:Object,default:()=>({})}},emits:["update:modelValue"],computed:{prevDisabled(){return A(this.modelValue,new Date)},nextDisabled(){return A(this.modelValue,_(new Date,this.maxDaysAhead))}},methods:{prev(){this.$emit("update:modelValue",E(this.modelValue,1))},next(){this.$emit("update:modelValue",_(this.modelValue,1))}}},ie={class:"footfall-weekday-selector"},re=["disabled"],ne={class:"sr-only"},oe={class:"footfall-weekday-selector__weekday"},le=["disabled"],de={class:"sr-only"};function he(s,e,a,r,n,t){return o(),d("div",ie,[i("button",{class:"btn",disabled:t.prevDisabled,onClick:e[0]||(e[0]=(...l)=>t.prev&&t.prev(...l))},[i("span",ne,u(a.i18n.showPreviousDay||"Vis forrige dag"),1),e[2]||(e[2]=i("svg",{class:"icon icon--medium",viewBox:"0 0 24 24"},[i("g",{transform:"translate(4 0)"},[i("polyline",{points:"12,2 3,12 12,22"})])],-1))],8,re),i("div",oe,[i("span",null,u(a.label),1)]),i("button",{class:"btn",disabled:t.nextDisabled,onClick:e[1]||(e[1]=(...l)=>t.next&&t.next(...l))},[i("span",de,u(a.i18n.showNextDay||"Vis neste dag"),1),e[3]||(e[3]=i("svg",{class:"icon icon--medium",viewBox:"0 0 24 24"},[i("g",{transform:"translate(-4 0)"},[i("polyline",{points:"12,2 21,12 12,22"})])],-1))],8,le)])}const ue=v(se,[["render",he]]),W=s=>{if(!s)return 0;const e=.2;return Math.min(1,s*(1-e)+e)},ce={name:"DailyFootfall",components:{LoadingSpinner:H,FootfallGraph:ae,FootfallWeekdaySelector:ue},props:{endpoint:{type:String,default:""},centerId:{type:Number,default:0},maxDaysAhead:{type:Number,default:3},openDaysAhead:{type:Array},showHeading:Boolean,i18n:{type:Object,default:()=>({})}}
1,data(){return{loading:!1,loaded:!1,hours:[],date:m(new Date),visitorNowLevel:0}},computed:{url(){return`${this.endpoint}?centerId=${this.centerId}&date=${B(this.date,"yyyy-MM-dd")}`},currentExpected(){return this.visitorNowLevel},today(){return m(new Date)},isChosenDayOpen(){const s=G(this.date,this.today);return!Array.isArray(this.openDaysAhead)||this.openDaysAhead.length<=s?!0:this.openDaysAhead[s]},dayLabel(){return[this.i18n.sunday||"Søndag",this.i18n.monday||"Mandag",this.i18n.tuesday||"Tirsdag",this.i18n.wednesday||"Onsdag",this.i18n.thursday||"Torsdag",this.i18n.friday||"Fredag",this.i18n.saturday||"Lørdag"][M(this.date)]},closedDayLabel(){return(this.i18n.closedOnDay||"Stengt på {day}").replace("{day}",this.dayLabel.toLowerCase())}},watch:{url:{handler:"loadEvents",immediate:!0}},methods:{async loadEvents(s){if(!(!s||s.startsWith("?")))try{this.loaded=!1,this.loading=!0,this.hours=[];const{data:e}=await S.get(s),a=9,r=21,n=[];for(let t=a;t<=r;t++)n.push({hour:t,title:String(t),expected:e.Comparison[t]?W(e.Comparison[t]):0,actual:e.Live[t]?W(e.Live[t]):0,showLabel:t%3===0});this.visitorNowLevel=e.VisitorsNowLevel,this.hours=n}catch(e){console.error(e)}finally{this.loading=!1,this.loaded=!0}}}},ge={key:1,class:"grid-col-item u-center-mobile"},ye={key:0,class:"medium-title u-center margin-bottom--sm"},me={class:"footfall-graph-container"},fe={class:"margin-top--sm margin-bottom u-center"},xe={key:0},_e={key:0},ve={key:1},be={key:2},pe={class:"u-flex u-flex-align-center margin-bottom--sm margin-top u-small u-full-width"},De={class:"u-flex u-flex-align-center u-small u-full-width"};function ke(s,e,a,r,n,t){const l=x("LoadingSpinner"),h=x("FootfallGraph"),p=x("FootfallWeekdaySelector");
1return o(),d("div",null,[n.loading?(o(),D(l,{key:0})):n.loaded?(o(),d("div",ge,[a.showHeading?(o(),d("h2",ye,u(a.i18n.footfallHeading||"Besøk på senteret"),1)):c("",!0),i("div",me,[i("div",fe,[t.isChosenDayOpen?t.currentExpected!=null&&t.currentExpected>0?(o(),d(g,{key:1},[L(u(a.i18n.rightNow||"Akkurat nå")+": ",1),i("strong",null,[t.currentExpected===3?(o(),d("span",_e,u(a.i18n.usuallyVeryBusy||"Vanligvis veldig travelt"),1)):t.currentExpected===2?(o(),d("span",ve,u(a.i18n.usuallySlightlyBusy||"Vanligvis litt travelt"),1)):(o(),d("span",be,u(a.i18n.usuallyNotBusy||"Vanligvis ikke altfor travelt"),1))])],64)):c("",!0):(o(),d("em",xe,u(t.closedDayLabel),1))]),t.isChosenDayOpen?(o(),D(h,{key:0,class:"margin-bottom--sm u-full-width",hours:n.hours},null,8,["hours"])):c("",!0),I(p,{modelValue:n.date,"onUpdate:modelValue":e[0]||(e[0]=F=>n.date=F),label:t.dayLabel,"max-days-ahead":a.maxDaysAhead,i18n:a.i18n},null,8,["modelValue","label","max-days-ahead","i18n"]),t.isChosenDayOpen?(o(),d(g,{key:1},[i("div",pe,[e[1]||(e[1]=i("svg",{viewBox:"0 0 8 8",class:"icon margin-right"},[i("line",{class:"footfall-graph__line",x1:0,y1:4,x2:32,y2:4})],-1)),i("span",null,u(a.i18n.actualVisitsToday||"Faktisk besøk i dag"),1)]),i("div",De,[e[2]||(e[2]=i("svg",{viewBox:"0 0 8 8",class:"icon margin-right"},[i("rect",{class:"footfall-graph__bar",width:8,height:8,x:0,y:0})],-1)),i("span",null,u(a.i18n.expectedVisitsToday||"Forventet besøk i dag"),1)])],64)):c("",!0)])])):c("",!0)])}const Ne=v(ce,[["render",ke]]);export{Ne 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.