UNPKG

@visitscotland/component-library

Version:
1 lines 7.16 kB
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.VsItineraryStopInfo=e():t.VsItineraryStopInfo=e()}(self,(function(){return(self.webpackChunk_visitscotland_component_library=self.webpackChunk_visitscotland_component_library||[]).push([[5269],{219:function(t,e,s){"use strict";s.d(e,{A:function(){return n.A}});var n=s(70463)},17634:function(){},23014:function(t,e,s){"use strict";s.d(e,{X:function(){return n.X}});var n=s(35510)},35510:function(t,e,s){"use strict";s.d(e,{X:function(){return d}});var n=s(20641),r=s(90033),i={class:"vs-itinerary-stop-info","data-test":"vs-itinerary-stop-info"},a={key:0,class:"itinerary-stop-info__times mb-0","data-test":"vs-itinerary-stop-status"},o={key:1,"data-test":"vs-itinerary-stop-hours"},u={key:1,"data-test":"vs-stop-link"},c={key:2,"data-test":"vs-stop-charge-text"};function d(t,e,s,d,h,l){var p=(0,n.g2)("VsIcon"),g=(0,n.g2)("VsLink");return(0,n.uX)(),(0,n.CE)("div",i,[(0,n.bF)(p,{icon:"vs-icon-feedback-information",class:"vs-address__map-marker me-050"}),(0,n.Lk)("div",null,[h.isCurrentTimeframe?((0,n.uX)(),(0,n.CE)(n.FK,{key:0},[l.hoursMessage.length>0?((0,n.uX)(),(0,n.CE)("p",a,[(0,n.eW)((0,r.toDisplayString)(l.hoursMessage),1),e[0]||(e[0]=(0,n.Lk)("br",null,null,-1))])):(0,n.Q3)("",!0),!h.closedLongTerm&&void 0!==h.currentDayData[0]&&void 0!==h.currentDayData[0].state&&l.provisionalMessage.length>0?((0,n.uX)(),(0,n.CE)("p",o,(0,r.toDisplayString)(l.provisionalMessage)+". ",1)):(0,n.Q3)("",!0)],64)):(0,n.Q3)("",!0),t.$slots["stop-link-text"]&&null!==s.openingTimesLink?((0,n.uX)(),(0,n.CE)("p",u,[(0,n.bF)(g,{href:s.openingTimesLink},{default:(0,n.k6)((function(){return[(0,n.RG)(t.$slots,"stop-link-text")]})),_:3},8,["href"])])):(0,n.Q3)("",!0),t.$slots["stop-charge-text"]?((0,n.uX)(),(0,n.CE)("p",c,[(0,n.RG)(t.$slots,"stop-charge-text")])):(0,n.Q3)("",!0)])])}},45972:function(t,e,s){"use strict";var n=s(85072),r=s.n(n),i=s(97825),a=s.n(i),o=s(77659),u=s.n(o),c=s(55056),d=s.n(c),h=s(10540),l=s.n(h),p=s(41113),g=s.n(p),y=s(17634),f=s.n(y),m={};m.styleTagTransform=g(),m.setAttributes=d(),m.insert=u().bind(null,"head"),m.domAPI=a(),m.insertStyleElement=l(),r()(f(),m),f()&&f().locals&&f().locals},70463:function(t,e,s){"use strict";var n=s(82284),r=s(46422),i=s(45676);e.A={name:"VsItineraryStopInfo",status:"prototype",release:"0.0.1",components:{VsIcon:r.default,VsLink:i.default},props:{openingHours:{type:[String,Object],required:!1,default:null},openingTimesLink:{type:String,required:!1,default:null},closedText:{type:String,required:!0},closingSoonText:{type:String,required:!0},openText:{type:String,required:!0},usualText:{type:String,required:!0},provisionalText:{type:String,required:!0},temporarilyClosedText:{type:String,required:!0},toText:{type:String,required:!0},andText:{type:String,required:!0}},data:function(){return{openingMessage:"",currentDayData:{},currentTime:{},dayDataIndex:0,closedLongTerm:!1,ukDate:"",isCurrentTimeframe:!1,parsedHours:{}}},computed:{hoursMessage:function(){var t="";if(this.closedLongTerm)t=this.temporarilyClosedText;else if(this.currentDayData.length>0)switch(this.openingMessage){case"closed":t=this.closedText;break;case"closing soon":t=this.closingSoonText;break;case"open":t=this.openText;break;default:t=""}return t},provisionalMessage:function(){var t=this,e="";if(void 0!==this.currentDayData[0]){var s="open"===this.currentDayData[0].state?this.openText:this.closedText;e=this.currentDayData[0].provisional?"".concat(this.provisionalText," ").concat(s.toLowerCase()," ").concat(this.currentDayData[0].day):"".concat(this.usualText," ").concat(s.toLowerCase()," ").concat(this.currentDayData[0].day),"closed"!==this.currentDayData[0].state&&void 0!==this.currentDayData[this.dayDataIndex]&&void 0!==this.currentDayData[this.dayDataIndex].startTime&&void 0!==this.currentDayData[this.dayDataIndex].endTime&&""!==this.currentDayData[this.dayDataIndex].startTime&&""!==this.currentDayData[this.dayDataIndex].endTime&&this.currentDayData.forEach((function(s,n){e+=" ".concat(s.startTime," ").concat(t.toText," ").concat(s.endTime),n+1<t.currentDayData.length&&(e+=" ".concat(t.andText," "))}))}return e}},created:function(){this.parseIncomingData(),this.getCurrentTime(),this.isActiveDate(),this.getCurrentHoursInfo()},methods:{parseIncomingData:function(){if("object"!==(0,n.A)(this.openingHours)){var t=this.openingHours.replace(/'/g,'"');this.parsedHours=JSON.parse(t)}else this.parsedHours=this.openingHours;this.parsedHours.closedLongTerm&&(this.closedLongTerm=!0)},getCurrentTime:function(){var t=new Date,e=t.toLocaleTimeString("en-GB",{timeZone:"Europe/London"});this.ukDate=t.toLocaleDateString("en-GB",{timeZone:"Europe/London"});var s=e.substring(0,2),n=e.substring(3,6),r=t.getDay();this.currentTime.hours=parseInt(s,10),this.currentTime.minutes=parseInt(n,10),this.currentTime.day=r},isActiveDate:function(){if(void 0!==this.parsedHours.period){var t="".concat(this.ukDate.substring(3,5),"/").concat(this.ukDate.substring(0,2),"/").concat(this.ukDate.substring(6,10)),e=new Date(this.parsedHours.period.startDay),s=new Date(this.parsedHours.period.endDay),n=new Date(t);this.isCurrentTimeframe=n<s&&n>e}else this.isCurrentTimeframe=!0},getCurrentHoursInfo:function(){var t=this.returnDayName(this.currentTime.day);if(void 0!==this.parsedHours.days){var e=this.parsedHours.days.filter((function(e){return e.key===t}));void 0!==e&&(this.currentDayData=e,this.compareTimes(this.currentTime,this.currentDayData,this.dayDataIndex))}},compareTimes:function(t,e,s){if(void 0!==e[s].startTime&&void 0!==e[s].endTime&&e[s].startTime.length>0&&e[s].endTime.length>0){var n=e[s].startTime,r=e[s].endTime,i=parseInt(n.substring(0,n.indexOf(":")),10),a=parseInt(n.substring(n.indexOf(":")+1,n.length),10),o=parseInt(r.substring(0,r.indexOf(":")),10),u=parseInt(r.substring(r.indexOf(":")+1,r.length),10),c=this.calculateClosingSoon(o,u);"closed"===e[s].state||i>t.hours||i===t.hours&&a>t.minutes||o<t.hours||o===t.hours&&u<t.minutes?this.openingMessage="closed":this.withinClosingSoonTime(t,c)?this.openingMessage="closing soon":this.openingMessage="open","closed"===this.openingMessage&&e.length>s+1&&(this.dayDataIndex+=1,this.compareTimes(this.currentTime,this.currentDayData,this.dayDataIndex))}else"closed"===e[s].state&&(this.openingMessage="closed")},returnDayName:function(t){var e="";switch(t){case 1:e="monday";break;case 2:e="tuesday";break;case 3:e="wednesday";break;case 4:e="thursday";break;case 5:e="friday";break;case 6:e="saturday";break;case 7:e="sunday";break;default:e=""}return e},calculateClosingSoon:function(t,e){var s,n;return e<30?(s=t-1,n=e-30+60):(s=t,n=e-30),{hours:s,mins:n}},withinClosingSoonTime:function(t,e){return!(e.hours>t.hours||e.hours===t.hours&&e.mins>t.minutes)}}}},77672:function(t,e,s){"use strict";s(45972)},97097:function(t,e,s){"use strict";s.r(e);var n=s(23014),r=s(219);s(77672);const i=(0,s(66262).A)(r.A,[["render",n.X]]);e.default=i}},function(t){return t.O(0,[641,6262,7510,3751,4467,7527,8086,810,4982,6422,8745,5676],(function(){return t(t.s=97097)})),t.O()}])}));