PageSourceSearch

https://vanermuseet.se/webapp-resource/4.a54be94183a699b74512791/3…/1667915252401/webapp-assets.js

js vanermuseet.se collected 2026-10-02 12:37:03 UTC 21,161 bytes, 515 lines download raw bytes

1AppRegistry.registerBundle({applicationId:'openingHoursContactCenter|1.0.9',bundle: {}});
2AppRegistry.registerModule({applicationId:'openingHoursContactCenter|1.0.9',path:'/template/currentOpenStatus',module:function(define){define(function(require){var _=require('underscore');return function(obj){
3var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};
4with(obj||{}){
5__p+='';
6 if(puffType === "type-1") { 
7__p+='\n\n    <div class="adv-box--white adv-openinghours__currentcontainer">\n        <h2 class="sv-font-rubrik-4 adv-openinghours__heading">'+
8((__t=( heading ))==null?'':_.escape(__t))+
9'</h2>\n        <p class="sv-font-brodtext-liten adv-openinghours__statusrow">\n            ';
10 if (status) { 
11__p+='\n                ';
12 if (status.open) { 
13__p+='\n                    <span class="adv-openinghours__icon adv-openinghours__icon--open"></span>\n                    '+
14((__t=( status.openString ))==null?'':_.escape(__t))+
15' idag\n                ';
16 } else { 
17__p+='\n                    <span class="adv-openinghours__icon adv-openinghours__icon--closed"></span>\n                    Stängt just nu. '+
18((__t=( status.nextTimeOpenString ))==null?'':_.escape(__t))+
19'\n                ';
20 } 
21__p+='\n            ';
22 } else { 
23__p+='\n                På grund av en längre avvikelse kan öppettider just nu inte visas.\n            ';
24 } 
25__p+='\n        </p>\n        <ul class="sv-font-brodtext-liten adv-openinghours__statusrow adv-openinghours__contact">\n            ';
26 if (contact.phone) { 
27__p+='\n                <li class="adv-openinghours__contact-item"><i class="fas fa-mobile-android-alt adv-openinghours__contact-icon"></i> '+
28((__t=( contact.phone ))==null?'':_.escape(__t))+
29'</li>\n            ';
30 } 
31__p+='\n            ';
32 if (contact.email) { 
33__p+='\n                <li class="adv-openinghours__contact-item"><i class="fal fa-envelope adv-openinghours__contact-icon"></i><a href="mailto:'+
34((__t=( contact.email ))==null?'':_.escape(__t))+
35'">'+
36((__t=( contact.email ))==null?'':_.escape(__t))+
37'</a></li>\n            ';
38 } 
39__p+='\n            ';
40 if (contact.address) { 
41__p+='\n                <li class="adv-openinghours__contact-item"><i class="fal fa-map-marker-alt adv-openinghours__contact-icon"></i>'+
42((__t=( contact.address ))==null?'':_.escape(__t))+
43'</li>\n            ';
44 } 
45__p+='\n        </ul>\n        ';
46 if (links) { 
47__p+='\n            <div class="adv-openinghours__links">\n                ';
48 if (links.openinghours) { 
49__p+='\n                    <a class="env-button env-button--small env-button--white-on-white" href="'+
50((__t=( links.openinghours ))==null?'':_.escape(__t))+
51'" title="Visa alla öppettider">Visa alla öppettider</a>\n                ';
52 } 
53__p+='\n                ';
54 if (links.infopage) { 
55__p+='\n                    <a class="env-button env-button--small env-button--white-on-white" href="'+
56((__t=( links.infopage ))==null?'':_.escape(__t))+
57'" title="Gå till sidan om kontaktcenter">Det här kan vi hjälpa dig med</a>\n                ';
58 } 
59__p+='\n            </div>\n        ';
60 } 
61__p+='\n    </div>\n\n';
62 } 
63__p+='\n\n\n';
64 if(puffType === "type-2") { 
65__p+='\n\n        <div class="puffbox '+
66((__t=( puffType ))==null?'':_.escape(__t))+
67'"\n            ';
68 if (image && image.length) { 
69__p+='\n                style="background:url(\''+
70((__t=( image ))==null?'':_.escape(__t))+
71'\'), '+
72((__t=( bkgColor ))==null?'':_.escape(__t))+
73'"\n            ';
74 } 
75__p+='\n        >\n        \n            ';
76 if (heading || exerpt || icon) { 
77__p+='\n                <div class="puffbox--info"\n                    ';
78 if (puffType === "type-3") { 
79__p+='\n                        ';
80 if (bkgColor && bkgColor.length) { 
81__p+='\n                            style="background-color: '+
82((__t=( bkgColor ))==null?'':_.escape(__t))+
83'"\n                        ';
84 } 
85__p+='\n                    ';
86 } 
87__p+='        \n                >\n                    ';
88 if (icon && icon.length) { 
89__p+='\n                        <div class="puffbox--info-icon"><img src="'+
90((__t=( icon ))==null?'':_.escape(__t))+
91'" alt="'+
92((__t=( iconAlt ))==null?'':_.escape(__t))+
93'"></div>\n                    ';
94 } 
95__p+='\n                    ';
96 if (heading && heading.length) { 
97__p+='\n                        <div class="puffbox--info-title" \n                            ';
98 if(textColor != "inherit") { 
99__p+='\n                            style="color: '+
100((__t=( textColor ))==null?'':_.escape(__t))+
101'"\n                            ';
102 } 
103__p+='\n                        > \n                        '+
104((__t=( heading ))==null?'':_.escape(__t))+
105'\n                    </div>\n                    ';
106 } 
107__p+='\n                    ';
108 if (exerpt && exerpt.length) { 
109__p+='\n                        <div class="puffbox--info-text" \n                            ';
110 if(textColor != "inherit") { 
111__p+='\n                                style="color: '+
112((__t=( textColor ))==null?'':_.escape(__t))+
113'"\n                            ';
114 } 
115__p+='\n                        >\n                            '+
116((__t=( exerpt ))==null?'':_.escape(__t))+
117'\n                        </div>\n                    ';
118 } 
119__p+='\n                    <div class="puffbox--info-status"\n                    ';
120 if(textColor != "inherit") { 
121__p+='\n                        style="color: '+
122((__t=( textColor ))==null?'':_.escape(__t))+
123'"\n                    ';
124 } 
125__p+='\n                    >\n                        ';
126 if (status) { 
127__p+='\n                            ';
128 if (status.open) { 
129__p+='\n                                <span class="adv-openinghours__icon adv-openinghours__icon--open"></span>\n                                '+
130((__t=( status.openString ))==null?'':_.escape(__t))+
131' idag\n                            ';
132 } else { 
133__p+='\n                                <span class="adv-openinghours__icon adv-openinghours__icon--closed"></span>\n                                Stängt just nu. '+
134((__t=( status.nextTimeOpenString ))==null?'':_.escape(__t))+
135'\n                            ';
136 } 
137__p+='\n                        ';
138 } else { 
139__p+='\n                            På grund av en längre avvikelse kan öppettider just nu inte visas.\n                        ';
140 } 
141__p+='\n                    </div>\n                    <div class="puffbox--info-contact"\n                    ';
142 if(textColor != "inherit") { 
143__p+='\n                        style="color: '+
144((__t=( textColor ))==null?'':_.escape(__t))+
145'"\n                    ';
146 } 
147__p+='\n                    >\n                        ';
148 if (contact.phone) { 
149__p+='\n                            <div class=""><i class="fas fa-mobile-android-alt adv-openinghours__contact-icon"></i> '+
150((__t=( contact.phone ))==null?'':_.escape(__t))+
151'</div>\n                        ';
152 } 
153__p+='\n                        ';
154 if (contact.email) { 
155__p+='\n                            <div class=""><i class="fal fa-envelope adv-openinghours__contact-icon"></i><a href="mailto:'+
156((__t=( contact.email ))==null?'':_.escape(__t))+
157'">'+
158((__t=( contact.email ))==null?'':_.escape(__t))+
159'</a></div>\n                        ';
160 } 
161__p+='\n                        ';
162 if (contact.address) { 
163__p+='\n                            <div class=""><i class="fal fa-map-marker-alt adv-openinghours__contact-icon"></i>'+
164((__t=( contact.address ))==null?'':_.escape(__t))+
165'</div>\n                        ';
166 } 
167__p+='\n                    </div>\n                    <div class="puffbox--info-actions"\n                    ';
168 if(textColor != "inherit") { 
169__p+='\n                        style="color: '+
170((__t=( textColor ))==null?'':_.escape(__t))+
171'"\n                    ';
172 } 
173__p+='\n                    >\n                        ';
174 if (links) { 
175__p+='\n                            <div class="adv-openinghours__links">\n                                ';
176 if (links.openinghours) { 
177__p+='\n                                    <a class="env-button env-button--small env-button--white-on-white" href="'+
178((__t=( links.openinghours ))==null?'':_.escape(__t))+
179'" title="Visa alla öppettider">Visa alla öppettider</a>\n                                ';
180 } 
181__p+='\n                                ';
182 if (links.infopage) { 
183__p+='\n                                    <a class="env-button env-button--small env-button--white-on-white" href="'+
184((__t=( links.infopage ))==null?'':_.escape(__t))+
185'" title="Gå till sidan om kontaktcenter">Det här kan vi hjälpa dig med</a>\n                                ';
186 } 
187__p+='\n                            </div>\n                        ';
188 } 
189__p+='\n                    </div>\n                </div>\n            ';
190 } 
191__p+='\n\n        </div>\n\n';
192 } 
193__p+='';
194}
195return __p;
196};});}});
197AppRegistry.registerModule({applicationId:'openingHoursContactCenter|1.0.9',path:'/template/openingHoursTable',module:function(define){define(function(require){var _=require('underscore');return function(obj){
198var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};
199with(obj||{}){
200__p+='    <table id="'+
201((__t=( rndId ))==null?'':_.escape(__t))+
202'" class="adv-box--white adv-openinghours__table">\n        <caption>Öppettider</caption>\n        <tbody>\n            <tr>\n                <th class="sv-font-rubrik-4">Dag</th>\n                <th class="sv-font-rubrik-4">Öppet</th>\n                <th class="sv-font-rubrik-4">Övrig information</th>\n            </tr>\n            ';
203 _.each(place.openinghours.normal, function(item) { 
204__p+='\n                <tr>\n                    <td><span class="adv-openinghours__table__day">'+
205((__t=( formatDayName(item.day) ))==null?'':_.escape(__t))+
206'</span></td>\n                    <td><span class="adv-openinghours__table__time">'+
207((__t=( formatOpeningHours(item.open, item.close) ))==null?'':_.escape(__t))+
208'</span></td>\n<!--                    <td>'+
209((__t=( item.comment ? item.comment : "&nbsp;" ))==null?'':__t)+
210'</td>-->\n                    <td></td>\n                </tr>\n            ';
211 }) 
212__p+='\n        </tbody>\n    </table>\n\n\n';
213}
214return __p;
215};});}});
216AppRegistry.registerModule({applicationId:'openingHoursContactCenter|1.0.9',path:'/component/Table',module:function(define){'use strict';define(function(require) {
217
218   'use strict';
219
220   var
221      _                 = require('underscore'),
222      Component         = require('Component'),
223      helperFunctions   = require('/module/common/helperFunctions'),
224      template          = ''; //require('/template/openingHoursTable'); // File don´t exists
225
226   return Component.extend({
227
228      template: template,
229
230      templateFunctions: function() {
231         var context = this;
232         return {
233            formatOpeningHours: function(from, to) {
234               return helperFunctions.formatOpeningHours(from, to);
235            },
236            formatDayName: function(abbr) {
237               return helperFunctions.formatDayName(abbr);
238            }
239         }
240      },
241
242      filterState: function(state) {
243         return _.extend({}, {place: state.place});
244      }
245   });
246});}});
247AppRegistry.registerModule({applicationId:'openingHoursContactCenter|1.0.9',path:'/component/CurrentOpenStatus',module:function(define){'use strict';define(function (require) {
248   'use strict';
249
250   var
251      _ = require('underscore'),
252      Component = require('Component'),
253      helperFunctions = require('/module/common/helperFunctions'),
254      template = require('/template/currentOpenStatus');
255      
256
257   return Component.extend({
258
259      template: template,
260
261      fixDate: function (date) {
262         let day, month, year;
263
264         day = date.getDate();
265         month = date.getMonth() + 1;
266         year = date.getFullYear();
267
268         if (day < 10) {
269            day = '0' + day;
270         }
271
272         if (month < 10) {
273            month = '0' + month;
274         }
275
276         return year + '-' + month + '-' + day;
277      },
278
279      isCurrentlyOpen: function (fromString, toString) {
280         var now = new Date();
281         var startCal = new Date(now.getTime());
282         var stopCal = new Date(now.getTime());
283
284         startCal.setHours(fromString.substring(0, 2), fromString.substring(3, 5));
285         stopCal.setHours(toString.substring(0, 2), toString.substring(3, 5));
286
287         return !(now < startCal || now > stopCal);
288      },
289
290      getNextTimeOpen: function (place) {
291         var today = new Date();
292         var tomorrow = new Date(today.getTime());
293         var dayAfterTomorrow = new Date(today.getTime());
294
295         tomorrow.setDate(tomorrow.getDate() + 1);
296         dayAfterTomorrow.setDate(dayAfterTomorrow.getDate() + 2);
297
298         var javaDays = helperFunctions.getJavaDays();
299
300         /** Kontrollera om det öppnar senare idag */
301         var todayDayString = javaDays[today.getDay() + 1]; // Returnerar typ "mo"
302         var normalToday = _.find(place.openinghours.normal, normalDay => normalDay.day === todayDayString);
303
304         if (normalToday && normalToday.open) {
305            var startCal = new Date(today.getTime());
306            startCal.setHours(normalToday.open.substring(0, 2), normalToday.open.substring(3, 5));
307
308            if (today < startCal) {
309               return "Öppnar klockan " + normalToday.open;
310            }
311
312         }
313
314         /** Kontrollera om morgondagen har avvikande öppettider */
315         var deviatingTomorrow = _.find(place.openinghours.deviating, deviatingDay => deviatingDay.date === this.fixDate(tomorrow));
316
317         if (deviatingTomorrow && deviatingTomorrow.open) {
318            return "Öppet imorgon " + deviatingTomorrow.open;
319         }
320
321         /** Kontrollera om morgondagen har normala öppettider */
322         var tomorrowDayString = javaDays[tomorrow.getDay() + 1]; // Returnerar typ "mo"
323         var normalTomorrow = _.find(place.openinghours.normal, normalDay => normalDay.day === tomorrowDayString);
324
325
326         if ( (typeof deviatingTomorrow === 'undefined') && normalTomorrow && normalTomorrow.open) {
327            return "Öppnar imorgon " + normalTomorrow.open;
328         }
329
330         /** Kontrollera om övermorgon har avvikande öppettider */
331         var deviatingDayAfterTomorrow = _.find(place.openinghours.deviating, deviatingDay => deviatingDay.date === this.fixDate(dayAfterTomorrow));
332
333         if (deviatingDayAfterTomorrow && deviatingDayAfterTomorrow.open) {
334            return "Öppnar i övermorgon " + deviatingDayAfterTomorrow.open;
335         }
336
337         /** Kontrollera om övermorgon har normala öpettider */
338         var dayAfterTomorrowDayString = javaDays[dayAfterTomorrow.getDay() + 1]; // Returnerar typ "mo"
339         var normalDayAfterTomorrow = _.find(place.openinghours.normal, normalDay => normalDay.day === dayAfterTomorrowDayString);
340
341         if ( (typeof deviatingDayAfterTomorrow === 'undefined') && normalDayAfterTomorrow && normalDayAfterTomorrow.open) {
342            return "Öppnar i övermorgon " + normalDayAfterTomorrow.open;
343         }      
344
345         return "Stängt.";
346      },
347
348      getStatus: function (place) {
349         var returnObject = {};
350
351         if (!place.currentdeviation) {
352            var now = new Date();
353            var currentDate = this.fixDate(now);
354
355            var deviatingDay = _.find(place.openinghours.deviating, deviatingDay => deviatingDay.date === currentDate);
356
357            if (deviatingDay) {
358               // Dagens datum har avvikande öppettider. Kontrollerar om det är öppet idag.
359               // Dagens datum finns med som avvikande öppettid
360
361               if (deviatingDay.open && deviatingDay.close) {
362                  //Dagens datum har klockslag för öppet och stängt. Kontrollerar om det är öppet just nu.;
363
364                  if (this.isCurrentlyOpen(deviatingDay.open, deviatingDay.close)) {
365                     returnObject.open = true;
366                     returnObject.openString = deviatingDay.open + " till " + deviatingDay.close;
367                  } else {
368                     returnObject.open = false;
369                     returnObject.nextTimeOpenString = this.getNextTimeOpen(place);
370                  }
371               } else {
372                  // Dagens datum saknar klockslag för öppet och/eller stängt. Det är inte öppet alls idag.;
373                  returnObject.open = false;
374                  returnObject.nextTimeOpenString = this.getNextTimeOpen(place);
375               }
376
377               returnObject.message = deviatingDay.reason;
378            } else {
379               // Dagens datum har inte en avvikande öppettid. Kontrollera om det är öppet nu.
380
381               var javaDays = helperFunctions.getJavaDays();
382               var currentDayString = javaDays[now.getDay() + 1];
383               var currentDateObject = _.find(place.openinghours.normal, weekday => weekday.day === currentDayString);
384
385               if (currentDateObject) {
386                  if (this.isCurrentlyOpen(currentDateObject.open, currentDateObject.close)) {
387                     returnObject.open = true;
388                     returnObject.openString = currentDateObject.open + " till " + currentDateObject.close;
389                  } else {
390                     returnObject.open = false;
391                     returnObject.nextTimeOpenString = this.getNextTimeOpen(place);
392                  }
393               } else {
394                  returnObject.open = false;
395                  returnObject.nextTimeOpenString = this.getNextTimeOpen(place);
396               }
397            }
398
399            return returnObject;
400         }
401
402         return null;
403      },
404
405      filterState: function (state) {
406         return _.extend({}, {
407            heading: state.heading,
408            place: state.place,
409            status: this.getStatus(state.place),
410            contact: state.contact,
411            links: state.links,
412            puffType: state.puffType,
413            exerpt: state.exerpt,
414            bkgColor: state.bkgColor,
415            textColor: state.textColor,
416            icon: state.icon,
417            iconAlt: state.iconAlt,
418            image: state.image
419         });
420      }
421   });
422});}});
423AppRegistry.registerModule({applicationId:'openingHoursContactCenter|1.0.9',path:'/template/error',module:function(define){define(function(require){var _=require('underscore');return function(obj){
424var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};
425with(obj||{}){
426__p+='<div class="adv-box--white adv-openinghours__currentcontainer">\n    <h4 class="sv-font-rubrik-4">Kan inte visa öppettider</h4>\n    <p class="sv-font-brodtext-liten adv-openinghours__statusrow">\n        '+
427((__t=( errorText ))==null?'':_.escape(__t))+
428'\n    </p>\n</div>';
429}
430return __p;
431};});}});
432AppRegistry.registerModule({applicationId:'openingHoursContactCenter|1.0.9',path:'/template/main',module:function(define){define(function(require){var _=require('underscore');return function(obj){
433var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};
434with(obj||{}){
435__p+=''+
436((__t=( renderer.renderComponent('CurrentOpenStatus') ))==null?'':__t)+
437'';
438}
439return __p;
440};});}});
441AppRegistry.registerModule({applicationId:'openingHoursContactCenter|1.0.9',path:'/module/common/helperFunctions',module:function(define){'use strict';define(function(require) {
442    'use strict';
443
444    var 
445        _  = require('underscore');
446
447    return {
448
449        getDays: function() {
450            return {
451                "mo": "MÃ¥ndag",
452                "tu": "Tisdag",
453                "we": "Onsdag",
454                "th": "Torsdag",
455                "fr": "Fredag",
456                "sa": "Lördag",
457                "su": "Söndag"
458            };
459        },
460
461        getJavaDays: function() {
462            return {
463                "2": "mo",
464                "3": "tu",
465                "4": "we",
466                "5": "th",
467                "6": "fr",
468                "7": "sa",
469                "1": "su"
470            };
471        },
472
473        formatDayName: function(abbr) {
474            var days = this.getDays();
475            return days[abbr] ? days[abbr] : '';
476        },
477
478        formatOpeningHours: function(from, to) {
479            var formattedString = '';
480            formattedString += from ? from : '';
481            formattedString += ' - ';
482            formattedString += to ? to : '';
483            return formattedString;
484        }
485    };
486});}});
487AppRegistry.registerModule({applicationId:'openingHoursContactCenter|1.0.9',path:'/main',module:function(define){'use strict';define(function(require) {
488
489   'use strict';
490
491   var
492      _          = require('underscore'),
493      Component  = require('Component'),
494      errorTemplate     = require('/template/error'),
495      mainTemplate      = require('/template/main');
496
497   return Component.extend({
498
499      getTemplate: function() {
500         if (this.state.route === '/error') {
501            return errorTemplate;
502         }
503         return mainTemplate;
504      },
505 
506      filterState: function(state) {
507         return _.extend({}, { 
508            errorText: state.errorText, 
509            route: state.route
510          });
511      }
512
513   });
514
515});}});

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.