UNPKG

liftie

Version:

Clean, simple, easy to read, fast ski resort lift status

165 lines (152 loc) 4.78 kB
mixin overlay(resort, text) .opening-date if resort.href a(href=resort.href, title='Go to official #{ resort.name } page', target='_blank' rel='noopener' )!= text else a!= text mixin header(resort, widget) if resort.href a.icon-alone.resort-link( href=resort.href, title='Go to official #{ resort.name } page', target='_blank' rel='noopener' ) span.ls-external a.resort-name(href='/resort/#{ resort.id }' target=widget && "_blank")= resort.name if !widget if !single if resort.deals a.icon-alone(title=resort.deals.title, href=resort.deals.href, target="_blank", rel="nofollow noopener") span.ls-deal a.right.icon-alone.star span.ls-star if !single a.right.icon-alone.minimax span.ls-minimax mixin lifts(resort) .lifts-status if resort.opening +overlay(resort, 'Opens on <b>' + resort.opening + '</b>') else if !resort.lifts +overlay(resort, 'Lift status coming soon') ul.lifts.expandable if resort.lifts for status, name in resort.lifts.status li.lift span.name #{name} span.status(class='ls-#{status}') mixin stats(resort) .summary-color-bar for key in ['open', 'hold', 'scheduled', 'closed'] div(class='#{key}', style='width:#{ resort.lifts ? resort.lifts.stats.percentage[key] : 25 }%;') ul.summary for key in ['open', 'hold', 'scheduled', 'closed'] li span(class='ls-#{key}')= resort.lifts ? resort.lifts.stats[key] : 0 span #{key} .auto-refresh-reminder span Next update in&nbsp; span.time-to-refresh 60 span &nbsp;seconds mixin weather(resort) .weather.tile(class= resort.weather ? 'visible' : 'hidden') .weather-icon ul li(class= resort.weather ? resort.weather.icon[0] : '') li(class= resort.weather ? resort.weather.icon[1] : '') .temperature .snow-conditions span.conditions span.snowforecast .text .notice Forecast by&nbsp; a(target="_blank", href=resort.weather && resort.weather.notice && resort.weather.notice.href, rel='noopener') img(src=resort.weather && resort.weather.notice && resort.weather.notice.img) mixin snow(resort) .snow.tile(class= resort.snow ? 'visible' : 'hidden') .snowfall span.value span " span &nbsp;snowfall in the last 48 hours .depth span.value span " span &nbsp;snow base span.condition span &nbsp;-&nbsp; span.value .notice != resort.snow && resort.snow.notice mixin addToTrip(resort) if resort.ll a.add-to-trip(href='https://trips.furkot.com/trip?#{addToTrip(resort)}', target='_blank', rel='noopener') span.ls-furkot span Plan trip to #{resort.name} mixin webcam(webcam) .webcam a(target="_blank", rel='noopener') .title img.active(src="") img.inactive(src="") .notice != webcam?.notice mixin webcams(resort) .tile.webcams(class= resort.webcams?.length ? 'visible' : 'hidden') .swipe ul li +webcam(resort.webcams?.[0]) .pager mixin bestDeal(resort) if resort.deals && resort.deals.discount .deal span= resort.deals.title a(title=resort.deals.title, href=resort.deals.href, target="_blank", rel="nofollow noopener")= resort.deals.discount mixin deals(resort) .deals.tile.visible for deal in resort.deals.deals .deal span= deal.title a(title=resort.deals.title, href=resort.deals.href, target="_blank", rel="nofollow noopener")= deal.discount mixin resort(resort, widget) section.panel.resort( data-resort=resort.id, data-timestamp=resort.timestamp, data-opening=resort.opening, data-name=resort.name, data-ll=resort.ll && resort.ll.join(), data-weather=single && resort.weather, data-webcams=single && resort.webcams, data-snow=single && resort.snow, class=resort.open ? 'open' : '' ) header +header(resort, widget) .expandable .basics if !widget && !single +bestDeal(resort) +lifts(resort) footer +stats(resort) if !widget && !single +addToTrip(resort) if !widget && single section.panel.extras.open(class= single ? 'visible' : 'hidden' ) header +addToTrip(resort) +weather(resort) +snow(resort) +webcams(resort) if resort.deals && resort.deals.deals section.panel.extras.open(class= single ? 'visible' : 'hidden' ) header a(href=resort.deals.href, target="_blank", rel="nofollow noopener") span.ls-deal span= resort.deals.title +deals(resort)