liftie 4.0.1 → 4.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Makefile +6 -0
- package/app.js +1 -1
- package/lib/client/resort/webcams.js +4 -4
- package/package.json +13 -13
- package/public/scripts/liftie.js +1462 -1430
- package/public/scripts/liftie.js.map +4 -4
- package/public/stylesheets/style.css +2 -2
- package/views/layout.jade +2 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../node_modules/.pnpm/
|
|
4
|
-
"sourcesContent": ["\nvar styles = [\n 'webkitTransform',\n 'MozTransform',\n 'msTransform',\n 'OTransform',\n 'transform'\n];\n\nvar el = document.createElement('p');\nvar style;\n\nfor (var i = 0; i < styles.length; i++) {\n style = styles[i];\n if (null != el.style[style]) {\n module.exports = style;\n break;\n }\n}\n", "\nvar prop = require('transform-property');\n\n// IE <=8 doesn't have `getComputedStyle`\nif (!prop || !window.getComputedStyle) {\n module.exports = false;\n\n} else {\n var map = {\n webkitTransform: '-webkit-transform',\n OTransform: '-o-transform',\n msTransform: '-ms-transform',\n MozTransform: '-moz-transform',\n transform: 'transform'\n };\n\n // from: https://gist.github.com/lorenzopolidori/3794226\n var el = document.createElement('div');\n el.style[prop] = 'translate3d(1px,1px,1px)';\n document.body.insertBefore(el, null);\n var val = getComputedStyle(el).getPropertyValue(map[prop]);\n document.body.removeChild(el);\n module.exports = null != val && val.length && 'none' != val;\n}\n", "\n/**\n * Expose `Emitter`.\n */\n\nif (typeof module !== 'undefined') {\n module.exports = Emitter;\n}\n\n/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nfunction Emitter(obj) {\n if (obj) return mixin(obj);\n};\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n", "module.exports = events;\n\nfunction events(el, obj) {\n var handlers = {};\n\n function bind(name, handler, opts) {\n if (!handler) {\n handler = name;\n }\n if (typeof(handler) === 'string') {\n handler = obj[handler].bind(obj);\n }\n el.addEventListener(name, handler, opts);\n handlers[name] = {\n handler: handler,\n opts: opts\n };\n }\n\n function do_unbind(name) {\n var h = handlers[name];\n if (!h) { return; }\n el.removeEventListener(name, h.handler, h.opts);\n delete handlers[name];\n }\n\n function unbind(name) {\n if (!name) { return unbindAll(); }\n do_unbind(name);\n }\n\n function unbindAll() {\n Object.keys(handlers).forEach(do_unbind);\n }\n\n return {\n bind: bind,\n unbind: unbind\n };\n}\n", "\n/**\n * Module dependencies.\n */\n\nvar has3d = require('has-translate3d');\nvar Emitter = require('emitter');\nvar events = require('@pirxpilot/events');\nvar min = Math.min;\nvar max = Math.max;\n\n/**\n * Expose `Swipe`.\n */\n\nmodule.exports = Swipe;\n\n/**\n * Turn `el` into a swipeable list.\n *\n * @param {Element} el\n * @api public\n */\n\nfunction Swipe(el) {\n if (!(this instanceof Swipe)) return new Swipe(el);\n if (!el) throw new TypeError('Swipe() requires an element');\n this.child = el.children[0];\n this.touchAction('none');\n this.currentEl = this.children().visible[0];\n this.currentVisible = 0;\n this.current = 0;\n this.el = el;\n this.refresh();\n this.interval(5000);\n this.duration(300);\n this.fastThreshold(200);\n this.threshold(0.5);\n this.show(0, 0, { silent: true });\n this.bind();\n}\n\n/**\n * Mixin `Emitter`.\n */\n\nEmitter(Swipe.prototype);\n\n/**\n * Set the swipe threshold to `n`.\n *\n * This is the factor required for swipe\n * to detect when a slide has passed the\n * given threshold, and may display the next\n * or previous slide. For example the default\n * of `.5` means that the user must swipe _beyond_\n * half of the side width.\n *\n * @param {Number} n\n * @api public\n */\n\nSwipe.prototype.threshold = function(n){\n this._threshold = n;\n};\n\n/**\n * Set the \"fast\" swipe threshold to `ms`.\n *\n * This is the amount of time in milliseconds\n * which determines if a swipe was \"fast\" or not. When\n * the swipe's duration is less than `ms` only 1/10th of\n * the slide's width must be exceeded to display the previous\n * or next slide.\n *\n * @param {Number} n\n * @api public\n */\n\nSwipe.prototype.fastThreshold = function(ms){\n this._fastThreshold = ms;\n};\n\n/**\n * Refresh sizing data.\n *\n * @api public\n */\n\nSwipe.prototype.refresh = function(){\n var children = this.children();\n var visible = children.visible.length;\n var prev = this.visible || visible;\n\n var i = indexOf(children.visible, this.currentEl);\n\n // we removed/added item(s), update current\n if (visible < prev && i <= this.currentVisible && i >= 0) {\n this.currentVisible -= this.currentVisible - i;\n } else if (visible > prev && i > this.currentVisible) {\n this.currentVisible += i - this.currentVisible;\n }\n\n this.visible = visible;\n this.childWidth = this.el.getBoundingClientRect().width;\n this.width = Math.ceil(this.childWidth * visible);\n this.child.style.width = this.width + 'px';\n this.child.style.height = this.height + 'px';\n this.show(this.currentVisible, 0, { silent: true });\n};\n\n/**\n * Bind event handlers.\n *\n * @api public\n */\n\nSwipe.prototype.bind = function(){\n this.events = events(this.child, this);\n this.docEvents = events(document, this);\n\n if ('PointerEvent' in window) {\n // MS IE touch events\n this.events.bind('pointerdown', 'ontouchstart');\n this.events.bind('pointermove', 'ontouchmove');\n this.events.bind('pointerup', 'ontouchend');\n this.events.bind('pointercancel', 'ontouchend');\n } else {\n // standard mouse click events\n this.events.bind('mousedown', 'ontouchstart');\n this.events.bind('mousemove', 'ontouchmove');\n this.docEvents.bind('mouseup', 'ontouchend');\n\n // W3C touch events\n this.events.bind('touchstart', 'ontouchstart');\n this.events.bind('touchmove', 'ontouchmove');\n this.docEvents.bind('touchend', 'ontouchend');\n }\n};\n\n/**\n * Unbind event handlers.\n *\n * @api public\n */\n\nSwipe.prototype.unbind = function(){\n this.events.unbind();\n this.docEvents.unbind();\n};\n\n/**\n * Handle touchstart.\n *\n * @api private\n */\n\nSwipe.prototype.ontouchstart = function(e){\n this.transitionDuration(0);\n this.dx = 0;\n this.updown = null;\n\n if ('PointerEvent' in window) {\n e.target.setPointerCapture(e.pointerId);\n }\n var touch = this.getTouch(e);\n this.down = {\n x: touch.pageX,\n y: touch.pageY,\n at: new Date()\n };\n};\n\n/**\n * Handle touchmove.\n *\n * For the first and last slides\n * we apply some resistence to help\n * indicate that you're at the edges.\n *\n * @api private\n */\n\nSwipe.prototype.ontouchmove = function(e){\n if (!this.down || this.updown) return;\n var touch = this.getTouch(e);\n\n // TODO: ignore more than one finger\n if (!touch) return;\n\n var down = this.down;\n var x = touch.pageX;\n var w = this.childWidth;\n var i = this.currentVisible;\n this.dx = x - down.x;\n\n // determine dy and the slope\n if (null == this.updown) {\n var y = touch.pageY;\n var dy = y - down.y;\n var slope = dy / this.dx;\n\n // if is greater than 1 or -1, we're swiping up/down\n if (slope > 1 || slope < -1) {\n this.updown = true;\n return;\n } else {\n this.updown = false;\n }\n }\n\n e.preventDefault();\n\n var dir = this.dx < 0 ? 1 : 0;\n if (this.isFirst() && 0 === dir) this.dx /= 2;\n if (this.isLast() && 1 === dir) this.dx /= 2;\n this.translate((i * w) + -this.dx);\n};\n\n/**\n * Handle touchend.\n *\n * @api private\n */\n\nSwipe.prototype.ontouchend = function(e){\n e.stopPropagation();\n if (!this.down) return;\n\n if ('PointerEvent' in window) {\n e.target.releasePointerCapture(e.pointerId);\n }\n // setup\n var dx = this.dx;\n var w = this.childWidth;\n\n // < 200ms swipe\n var ms = new Date() - this.down.at;\n var threshold = ms < this._fastThreshold ? w / 10 : w * this._threshold;\n var dir = dx < 0 ? 1 : 0;\n var half = Math.abs(dx) >= threshold;\n\n // clear\n this.down = null;\n\n // first -> next\n if (this.isFirst() && 1 == dir && half) return this.next();\n\n // first -> first\n if (this.isFirst()) return this.prev();\n\n // last -> last\n if (this.isLast() && 1 == dir) return this.next();\n\n // N -> N + 1\n if (1 === dir && half) return this.next();\n\n // N -> N - 1\n if (0 === dir && half) return this.prev();\n\n // N -> N\n this.show(this.currentVisible);\n};\n\n/**\n * Set transition duration to `ms`.\n *\n * @param {Number} ms\n * @return {Swipe} self\n * @api public\n */\n\nSwipe.prototype.duration = function(ms){\n this._duration = ms;\n return this;\n};\n\n/**\n * Set cycle interval to `ms`.\n *\n * @param {Number} ms\n * @return {Swipe} self\n * @api public\n */\n\nSwipe.prototype.interval = function(ms){\n this._interval = ms;\n return this;\n};\n\n/**\n * Play through all the elements.\n *\n * @return {Swipe} self\n * @api public\n */\n\nSwipe.prototype.play = function(){\n if (this.timer) return;\n this.timer = setInterval(this.cycle.bind(this), this._interval);\n return this;\n};\n\n/**\n * Stop playing.\n *\n * @return {Swipe} self\n * @api public\n */\n\nSwipe.prototype.stop = function(){\n clearInterval(this.timer);\n this.timer = null;\n return this;\n};\n\n/**\n * Show the next slide, when the end\n * is reached start from the beginning.\n *\n * @api public\n */\n\nSwipe.prototype.cycle = function(){\n if (this.isLast()) {\n this.currentVisible = -1;\n this.next();\n } else {\n this.next();\n }\n};\n\n/**\n * Check if we're on the first visible slide.\n *\n * @return {Boolean}\n * @api public\n */\n\nSwipe.prototype.isFirst = function(){\n return this.currentVisible === 0;\n};\n\n/**\n * Check if we're on the last visible slide.\n *\n * @return {Boolean}\n * @api public\n */\n\nSwipe.prototype.isLast = function(){\n return this.currentVisible == this.visible - 1;\n};\n\n/**\n * Show the previous slide, if any.\n *\n * @return {Swipe} self\n * @api public\n */\n\nSwipe.prototype.prev = function(){\n this.show(this.currentVisible - 1);\n return this;\n};\n\n/**\n * Show the next slide, if any.\n *\n * @return {Swipe} self\n * @api public\n */\n\nSwipe.prototype.next = function(){\n this.show(this.currentVisible + 1);\n return this;\n};\n\n/**\n * Show slide `i`.\n *\n * Emits `show `event\n *\n * @param {Number} i\n * @return {Swipe} self\n * @api public\n */\n\nSwipe.prototype.show = function(i, ms, options){\n options = options || {};\n if (null == ms) ms = this._duration;\n var self = this;\n var children = this.children();\n i = max(0, min(i, children.visible.length - 1));\n this.currentVisible = i;\n this.currentEl = children.visible[i];\n this.current = indexOf(children.all, this.currentEl);\n this.transitionDuration(ms);\n this.translate(this.childWidth * i);\n\n if (!options.silent) {\n this.emit('showing', this.current, this.currentEl);\n if (!ms) return this;\n this.child.addEventListener('transitionend', function shown() {\n if (self.current == i) self.emit('show', self.current, self.currentEl);\n self.child.removeEventListener('transitionend', shown);\n });\n }\n return this;\n};\n\n/**\n * Return children categorized by visibility.\n *\n * @return {Object}\n * @api private\n */\n\nSwipe.prototype.children = function(){\n var els = this.child.children;\n\n var ret = {\n all: els,\n visible: [],\n hidden: []\n };\n\n for (var i = 0; i < els.length; i++) {\n var el = els[i];\n if (visible(el)) {\n ret.visible.push(el);\n } else {\n ret.hidden.push(el);\n }\n }\n\n return ret;\n};\n\n/**\n * Set transition duration.\n *\n * @api private\n */\n\nSwipe.prototype.transitionDuration = function(ms){\n var s = this.child.style;\n s.transition = ms + 'ms transform';\n};\n\n/**\n * Translate to `x`.\n *\n * TODO: use translate component\n *\n * @api private\n */\n\nSwipe.prototype.translate = function(x){\n var s = this.child.style;\n x = -x;\n if (has3d) {\n s.transform = 'translate3d(' + x + 'px, 0, 0)';\n } else {\n s.transform = 'translateX(' + x + 'px)';\n }\n};\n\n/**\n * Sets the \"touchAction\" CSS style property to `value`.\n *\n * @api private\n */\n\nSwipe.prototype.touchAction = function(value){\n var s = this.child.style;\n s.touchAction = value;\n};\n\n/**\n * Gets the appropriate \"touch\" object for the `e` event. The event may be from\n * a \"mouse\", \"touch\", or \"Pointer\" event, so the normalization happens here.\n *\n * @api private\n */\n\nSwipe.prototype.getTouch = function(e){\n // \"mouse\" and \"Pointer\" events just use the event object itself\n var touch = e;\n if (e.changedTouches && e.changedTouches.length > 0) {\n // W3C \"touch\" events use the `changedTouches` array\n touch = e.changedTouches[0];\n }\n return touch;\n};\n\n/**\n * Return index of `el` in `els`.\n *\n * @param {Array} els\n * @param {Element} el\n * @return {Number}\n * @api private\n */\n\nfunction indexOf(els, el) {\n for (var i = 0; i < els.length; i++) {\n if (els[i] == el) return i;\n }\n return -1;\n}\n\n/**\n * Check if `el` is visible.\n *\n * @param {Element} el\n * @return {Boolean}\n * @api private\n */\n\nfunction visible(el) {\n return getComputedStyle(el).display != 'none';\n}\n", "// see: http://www.w3.org/html/wg/drafts/html/master/single-page.html#void-elements\nvar voids = [\n 'area', 'base', 'br', 'col', 'embed',\n 'hr', 'img', 'input', 'keygen', 'link',\n 'menuitem', 'meta', 'param', 'source', 'track', 'wbr'\n].reduce(function(o, v) {\n o[v] = true;\n return o;\n}, Object.create(null));\n\nfunction htmlTag(tag, content, attrStr) {\n var text = ['<',\n tag,\n attrStr ? ' ' + attrStr : '',\n '>'\n ];\n if(!voids[tag]) {\n text = text.concat([\n content || '',\n '</',\n tag,\n '>'\n ]);\n }\n return text;\n}\n\nfunction xmlTag(tag, content, attrStr) {\n var text = ['<',\n tag,\n attrStr ? ' ' + attrStr : '',\n ];\n if (!content || !content.length) {\n text.push('/>');\n } else {\n text = text.concat([\n '>',\n content,\n '</',\n tag,\n '>'\n ]);\n }\n return text;\n}\n\nfunction toStr(tagFn, tag, content, attrs) {\n var attrStr, classes, ids;\n\n if (typeof content !== 'string') {\n attrs = content;\n content = '';\n }\n\n tag = tag || '';\n attrs = attrs || {};\n\n classes = tag.split('.');\n tag = classes.shift() || 'div';\n if (classes.length) {\n classes = classes.join(' ');\n if (attrs['class']) {\n attrs['class'] += ' ' + classes;\n } else {\n attrs['class'] = classes;\n }\n }\n ids = tag.split('#');\n if (ids.length > 1) {\n tag = ids[0] || 'div';\n attrs.id = ids[1];\n }\n\n attrStr = Object.keys(attrs).map(function(attr) {\n return attr + '=\"' + attrs[attr] + '\"';\n }).join(' ');\n\n return tagFn(tag, content, attrStr).join('');\n}\n\nmodule.exports = toStr.bind(null, htmlTag);\nmodule.exports.xml = toStr.bind(null, xmlTag);", "var Emitter = require('emitter');\nvar el = require('el');\n\nmodule.exports = Pager;\n\nfunction Pager(el) {\n if (!(this instanceof Pager)) {\n return new Pager(el);\n }\n this._total = 0;\n this._current = 0;\n this.el = el;\n el.addEventListener('click', this.onclick.bind(this));\n}\n\nEmitter(Pager.prototype);\n\n\nPager.prototype.total = function total(t) {\n this._total = t;\n return this;\n};\n\nPager.prototype.onclick = function onclick(e) {\n var page, target = e.target || e.srcElement;\n page = Array.prototype.indexOf.call(this.el.children, target);\n if (page < 0) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n this.select(page);\n};\n\nPager.prototype.select = function select(page, opts) {\n var silent = opts && opts.silent;\n if (page === this._current) {\n return;\n }\n Array.prototype.forEach.call(this.el.children, function(a, i) {\n a.className = (i == page) ? 'active' : 'inactive';\n });\n this._current = page;\n if (!silent) {\n this.emit('show', this._current);\n }\n return this;\n};\n\nPager.prototype.render = function render() {\n var i, html = [];\n for(i = 0; i < this._total; i++) {\n html.push(i !== this._current ? 'a.inactive' : 'a.active');\n }\n this.el.innerHTML = html.map(function(item) {\n return el(item);\n }).join('');\n return this;\n};\n\n\n\n\n\n\n\n\n", "\n/**\n * map\n */\n\nvar map = {\n backspace: 8\n , command: 91\n , tab: 9\n , clear: 12\n , enter: 13\n , shift: 16\n , ctrl: 17\n , alt: 18\n , capslock: 20\n , escape: 27\n , esc: 27\n , space: 32\n , pageup: 33\n , pagedown: 34\n , end: 35\n , home: 36\n , left: 37\n , up: 38\n , right: 39\n , down: 40\n , del: 46\n , comma: 188\n , f1: 112\n , f2: 113\n , f3: 114\n , f4: 115\n , f5: 116\n , f6: 117\n , f7: 118\n , f8: 119\n , f9: 120\n , f10: 121\n , f11: 122\n , f12: 123\n , ',': 188\n , '.': 190\n , '/': 191\n , '`': 192\n , '-': 189\n , '=': 187\n , ';': 186\n , '[': 219\n , '\\\\': 220\n , ']': 221\n , '\\'': 222\n};\n\n/**\n * find a keycode.\n *\n * @param {String} name\n * @return {Number}\n */\n\nmodule.exports = function(name){\n return map[name.toLowerCase()] || name.toUpperCase().charCodeAt(0);\n};\n", "\n/**\n * dependencies\n */\n\nvar keycode = require('keycode');\n\n/**\n * Export `sequence`\n */\n\nmodule.exports = sequence;\n\n/**\n * Create sequence fn with `keys`.\n * optional `ms` which defaults\n * to `500ms` and `fn`.\n *\n * Example:\n *\n * seq = sequence('a b c', fn);\n * el.addEventListener('keydown', seq);\n *\n * @param {String} keys\n * @param {Number} ms\n * @param {Function} fn\n * @return {Function}\n * @api public\n */\n\nfunction sequence(keys, ms, fn){\n var codes = keys.split(/ +/).map(keycode)\n , clen = codes.length\n , seq = []\n , i = 0\n , prev;\n\n if (2 == arguments.length) {\n fn = ms;\n ms = 500;\n }\n\n return function(e){\n var code = codes[i++];\n if (42 != code && code != e.which) return reset();\n if (prev && new Date - prev > ms) return reset();\n var len = seq.push(e.which);\n prev = new Date;\n if (len != clen) return;\n reset();\n fn(e);\n };\n\n function reset(){\n prev = null;\n seq = [];\n i = 0;\n }\n};\n", "\n\nmodule.exports = os();\n\nfunction os() {\n var ua = navigator.userAgent;\n if (/mac/i.test(ua)) return 'mac';\n if (/win/i.test(ua)) return 'windows';\n if (/linux/i.test(ua)) return 'linux';\n}\n", "\n/**\n * Module Dependencies.\n */\n\nvar sequence = require('yields-k-sequence');\nvar keycode = require('yields-keycode');\nvar os = require('component-os');\n\n/**\n * modifiers.\n */\n\nvar modifiers = {\n 224: 'command',\n 91: 'command',\n 93: 'command',\n 16: 'shift',\n 17: 'ctrl',\n 18: 'alt'\n};\n\n/**\n * Super key.\n * (must use subscript vs. dot notation to avoid issues with older browsers)\n */\n\nexports['super'] = 'mac' == os\n ? 'command'\n : 'ctrl';\n\n/**\n * Handle the given `KeyboardEvent` or bind\n * a new `keys` handler.\n *\n * @param {String|KeyboardEvent} e\n * @param {Function} fn\n * @api private\n */\n\nexports.handle = function(e, fn){\n var ignore = this.ignore;\n var event = e.type;\n var code = e.which;\n\n // bind\n if (fn) return this.bind(e, fn);\n\n // modifiers\n var mod = modifiers[code];\n if ('keydown' == event && mod) {\n this['super'] = exports['super'] == mod;\n this[mod] = true;\n this.modifiers = true;\n this.active++;\n return;\n }\n\n // ignore\n if (ignore && ignore(e)) return;\n\n // listeners\n var all = this.listeners;\n\n // match\n for (var i = 0; i < all.length; ++i) {\n var invoke = true;\n var obj = all[i];\n var seq = obj.seq;\n var mods = obj.mods;\n fn = seq || obj.fn;\n\n if (!seq && code != obj.code) continue;\n if (event != obj.event) continue;\n if (this.active != obj.mods.length) continue;\n\n for (var j = 0; j < mods.length; ++j) {\n if (!this[mods[j]]) {\n invoke = null;\n break;\n }\n }\n\n if (invoke) {\n fn(e);\n }\n }\n};\n\n/**\n * Destroy this `k` dispatcher instance.\n *\n * @api public\n */\n\nexports.destroy = function(){\n this.el.removeEventListener('keydown', this._handle);\n this.el.removeEventListener('keyup', this._handle);\n this.el.removeEventListener('keyup', this._clear);\n this.el.removeEventListener('focus', this._clear);\n this.listeners = [];\n};\n\n/**\n * Unbind the given `keys` with optional `fn`.\n *\n * Example:\n *\n * k.unbind('enter, tab', myListener); // unbind `myListener` from `enter, tab` keys\n * k.unbind('enter, tab'); // unbind all `enter, tab` listeners\n * k.unbind(); // unbind all listeners\n *\n * @param {String} keys\n * @param {Function} fn\n * @return {k}\n * @api public\n */\n\nexports.unbind = function(keys, fn){\n var fns = this.listeners;\n var len = fns.length;\n var all;\n\n // unbind all\n if (0 === arguments.length) {\n this.listeners = [];\n return this;\n }\n\n // parse\n all = parseKeys(keys);\n\n // unbind\n for (var i = 0; i < all.length; ++i) {\n for (var j = 0, obj; j < len; ++j) {\n obj = fns[j];\n if (!obj) continue;\n if (fn && obj.fn != fn) continue;\n if (obj.key != all[i].key) continue;\n if (!matches(obj, all[i])) continue;\n fns.splice(j--, 1);\n }\n }\n\n return this;\n};\n\n/**\n * Bind the given `keys` to `fn` with optional `event`\n *\n * Example:\n *\n * k.bind('shift + tab, ctrl + a', function(e){});\n *\n * @param {String} event\n * @param {String} keys\n * @param {Function} fn\n * @return {k}\n * @api public\n */\n\nexports.bind = function(event, keys, fn){\n var fns = this.listeners;\n var len;\n var all;\n\n if (2 == arguments.length) {\n fn = keys;\n keys = event;\n event = 'keydown';\n }\n\n all = parseKeys(keys);\n len = all.length;\n\n for (var i = 0; i < len; ++i) {\n var obj = all[i];\n obj.seq = obj.seq && sequence(obj.key, fn);\n obj.event = event;\n obj.fn = fn;\n fns.push(obj);\n }\n\n return this;\n};\n\n/**\n * Bind keyup with `keys` and `fn`.\n *\n * @param {String} keys\n * @param {Function} fn\n * @return {k}\n * @api public\n */\n\nexports.up = function(keys, fn){\n return this.bind('keyup', keys, fn);\n};\n\n/**\n * Bind keydown with `keys` and `fn`.\n *\n * @param {String} keys\n * @param {Function} fn\n * @return {k}\n * @api public\n */\n\nexports.down = function(keys, fn){\n return this.bind('keydown', keys, fn);\n};\n\n/**\n * Clear all modifiers on `keyup`.\n *\n * @api private\n */\n\nexports.clear = function(e){\n var code = e.keyCode || e.which;\n if (!(code in modifiers)) return;\n this.active--;\n this[modifiers[code]] = null;\n this.modifiers = this.command\n || this.shift\n || this.ctrl\n || this.alt;\n};\n\n/**\n * Clear all modifiers on `focus`.\n *\n * @api private\n */\n\nexports.reset = function(){\n this.active = 0;\n this.modifiers =\n this.command =\n this.shift =\n this.ctrl =\n this.alt = null;\n};\n\n/**\n * Ignore all input elements by default.\n *\n * @param {Event} e\n * @return {Boolean}\n * @api private\n */\n\nexports.ignore = function(e){\n var el = e.target || e.srcElement;\n var name = el.tagName.toLowerCase();\n return 'textarea' == name\n || 'select' == name\n || 'input' == name;\n};\n\n/**\n * Parse the given `keys`.\n *\n * @param {String} keys\n * @return {Array}\n * @api private\n */\n\nfunction parseKeys(keys){\n keys = keys.replace('super', exports['super']);\n\n var all = ',' != keys\n ? keys.split(/ *, */)\n : [','];\n\n var ret = [];\n for (var i = 0; i < all.length; ++i) {\n if ('' === all[i]) continue;\n var mods = all[i].split(/ *\\+ */);\n var key = mods.pop() || ',';\n\n ret.push({\n seq: !! (~key.indexOf(' ') || ~key.indexOf('*')),\n code: keycode(key),\n mods: mods,\n key: key\n });\n }\n\n return ret;\n}\n\n/**\n * Check if the given `a` matches `b`.\n *\n * @param {Object} a\n * @param {Object} b\n * @return {Boolean}\n * @api private\n */\n\nfunction matches(a, b){\n return 0 === b.mods.length || eql(a, b);\n}\n\n/**\n * Shallow eql util.\n *\n * TODO: move to yields/eql\n *\n * @param {Array} a\n * @param {Array} b\n * @return {Boolean}\n * @api private\n */\n\nfunction eql(a, b){\n a = a.mods.sort().toString();\n b = b.mods.sort().toString();\n return a == b;\n}\n", "\n/**\n * Module Dependencies.\n */\n\nvar proto = require('./proto');\n\n/**\n * Create a new dispatcher with `el`.\n *\n * example:\n *\n * var k = require('k')(window);\n * k('shift + tab', function(){});\n *\n * @param {Element} el\n * @return {Function}\n * @api public\n */\n\nmodule.exports = function(el){\n function k(e, fn){ k.handle(e, fn); }\n k._handle = proto.handle.bind(k);\n k._clear = proto.clear.bind(k);\n k._reset = proto.reset.bind(k);\n el.addEventListener('keydown', k._handle, false);\n el.addEventListener('keyup', k._handle, false);\n el.addEventListener('keyup', k._clear, false);\n el.addEventListener('focus', k._reset, false);\n for (var p in proto) k[p] = proto[p];\n k.listeners = [];\n k.active = 0;\n k.el = el;\n return k;\n};\n", "function debounce(function_, wait = 100, options = {}) {\n\tif (typeof function_ !== 'function') {\n\t\tthrow new TypeError(`Expected the first parameter to be a function, got \\`${typeof function_}\\`.`);\n\t}\n\n\tif (wait < 0) {\n\t\tthrow new RangeError('`wait` must not be negative.');\n\t}\n\n\t// TODO: Deprecate the boolean parameter at some point.\n\tconst {immediate} = typeof options === 'boolean' ? {immediate: options} : options;\n\n\tlet storedContext;\n\tlet storedArguments;\n\tlet timeoutId;\n\tlet timestamp;\n\tlet result;\n\n\tfunction run() {\n\t\tconst callContext = storedContext;\n\t\tconst callArguments = storedArguments;\n\t\tstoredContext = undefined;\n\t\tstoredArguments = undefined;\n\t\tresult = function_.apply(callContext, callArguments);\n\t\treturn result;\n\t}\n\n\tfunction later() {\n\t\tconst last = Date.now() - timestamp;\n\n\t\tif (last < wait && last >= 0) {\n\t\t\ttimeoutId = setTimeout(later, wait - last);\n\t\t} else {\n\t\t\ttimeoutId = undefined;\n\n\t\t\tif (!immediate) {\n\t\t\t\tresult = run();\n\t\t\t}\n\t\t}\n\t}\n\n\tconst debounced = function (...arguments_) {\n\t\tif (\n\t\t\tstoredContext\n\t\t\t&& this !== storedContext\n\t\t\t&& Object.getPrototypeOf(this) === Object.getPrototypeOf(storedContext)\n\t\t) {\n\t\t\tthrow new Error('Debounced method called with different contexts of the same prototype.');\n\t\t}\n\n\t\tstoredContext = this; // eslint-disable-line unicorn/no-this-assignment\n\t\tstoredArguments = arguments_;\n\t\ttimestamp = Date.now();\n\n\t\tconst callNow = immediate && !timeoutId;\n\n\t\tif (!timeoutId) {\n\t\t\ttimeoutId = setTimeout(later, wait);\n\t\t}\n\n\t\tif (callNow) {\n\t\t\tresult = run();\n\t\t}\n\n\t\treturn result;\n\t};\n\n\tObject.defineProperty(debounced, 'isPending', {\n\t\tget() {\n\t\t\treturn timeoutId !== undefined;\n\t\t},\n\t});\n\n\tdebounced.clear = () => {\n\t\tif (!timeoutId) {\n\t\t\treturn;\n\t\t}\n\n\t\tclearTimeout(timeoutId);\n\t\ttimeoutId = undefined;\n\t};\n\n\tdebounced.flush = () => {\n\t\tif (!timeoutId) {\n\t\t\treturn;\n\t\t}\n\n\t\tdebounced.trigger();\n\t};\n\n\tdebounced.trigger = () => {\n\t\tresult = run();\n\n\t\tdebounced.clear();\n\t};\n\n\treturn debounced;\n}\n\n// Adds compatibility for ES modules\nmodule.exports.debounce = debounce;\n\nmodule.exports = debounce;\n", "/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n", "import cookie from 'js-cookie';\n\nexport default function about() {\n const s = document.querySelector('.hidden .about');\n if (!s) {\n // no hidden 'about' section - nothing to do\n return;\n }\n if (!check()) {\n // we already have a cookie\n return;\n }\n const section = s.parentNode;\n const trigger = s.querySelector('a.close');\n trigger.addEventListener('click', e => {\n close();\n e.preventDefault();\n });\n open();\n\n function check() {\n return window.parent === window && typeof cookie.get('resorts-open') === 'undefined';\n }\n\n function close() {\n section.classList.add('hidden');\n }\n\n function open() {\n section.classList.remove('hidden');\n }\n}\n", "/**\n * @param {Array} elements list of affected element\n * @param {Element} trigger button|link that flips min, max state\n */\nexport default function minimax(node, selector) {\n const my = {\n trigger: node.querySelector(selector),\n state: 'open', // by default trigger 'open' state\n fn() {}\n };\n\n const self = {\n state,\n on\n };\n\n function onclick(e) {\n e.preventDefault();\n const state = node.classList.toggle(my.state);\n my.fn.call(null, state);\n }\n\n function state(s) {\n my.state = s;\n return self;\n }\n\n function on(fn) {\n my.fn = fn;\n return self;\n }\n\n if (my.trigger) {\n my.trigger.addEventListener('click', onclick);\n }\n\n return self;\n}\n", "export function removeAllChildren(node) {\n while (node.hasChildNodes()) {\n node.removeChild(node.lastChild);\n }\n}\n\nexport function next({ nextElementSibling, nextSibling }) {\n return nextElementSibling || nextSibling;\n}\n", "import * as dom from './dom.js';\n\nrender.section = 0;\nrender.type = 'lifts';\n\nconst states = ['open', 'hold', 'scheduled', 'closed'];\n\nfunction renderStatus(node, status) {\n dom.removeAllChildren(node);\n if (status) {\n node.innerHTML = Object.keys(status)\n .map(name => {\n const klass = `status ls-${status[name]}`;\n return `<li class=\"lift\"><span class=\"name\">${name}</span><span class=\"${klass}\"></span></li>`;\n })\n .join('');\n }\n}\n\nfunction renderStats(node, stats) {\n states.forEach(s => (node.querySelector(`.ls-${s}`).innerHTML = stats ? stats[s] : 0));\n}\n\nfunction renderColorBar(node, percentage) {\n states.forEach(state => {\n const width = `width:${percentage ? percentage[state] : 25}%;`;\n node.querySelector(`.${state}`).setAttribute('style', width);\n });\n}\n\nexport default function render(node, { status, stats }) {\n renderStatus(node.querySelector('.lifts'), status);\n renderStats(node.querySelector('.summary'), stats);\n renderColorBar(node.querySelector('.summary-color-bar'), stats.percentage);\n}\n", "const day = 24 * 60 * 60 * 1000;\n\nrender.section = 1;\nrender.type = 'snow';\n\n// .snow\n// .snowfall= resort.snow.snowfall\n// .depth= resort.snow.depth\n// .condition= resort.snow.condition\n// .notice= resort.snow.notice\n\nfunction renderField(div, field, snow) {\n const el = div.querySelector(`.${field}`);\n const value = snow[field];\n el.querySelector('.value').innerHTML = value || '';\n el.classList.toggle('hidden', !value);\n}\n\nexport default function render(div, snow) {\n if (Date.now() - snow.timestamp > day) {\n return false;\n }\n renderField(div, 'snowfall', snow);\n renderField(div, 'depth', snow);\n renderField(div, 'condition', snow);\n div.querySelector('.notice').innerHTML = snow.notice || '';\n return true;\n}\n", "const day = 24 * 60 * 60 * 1000;\n\nrender.section = 1;\nrender.type = 'weather';\n\n// .weather\n// .weather-icon\n// ul\n// li(class=#{resort.weather.icon[0]}\n// li(class=#{resort.weather.icon[1]}\n// .snowforecast!= resort.weather.snow + '\"'\n// .temperature!= resort.weather.temperature.max + '°F'\n// .conditions= resort.weather.conditions\n// .text= resort.weather.text\n// .notice Forecast by \n// a(target=\"_blank\")\n// img\n\nfunction renderIcon(li, icon) {\n if (Array.isArray(icon)) {\n icon.forEach((cl, i) => li.item(i).setAttribute('class', cl));\n }\n}\n\nfunction renderNotice(el, notice) {\n if (!notice) {\n return el.classList.add('hidden');\n }\n el.classList.remove('hidden');\n el = el.querySelector('a');\n el.setAttribute('href', notice.href);\n el.setAttribute('title', `Go to ${notice.site}`);\n el = el.querySelector('img');\n el.setAttribute('src', notice.img);\n el.setAttribute('style', `width:${notice.width}px;`);\n el.setAttribute('alt', notice.site);\n}\n\nexport default function render(div, weather) {\n if (Date.now() - weather.timestamp > day) {\n return false;\n }\n renderIcon(div.querySelectorAll('.weather-icon > ul > li'), weather.icon);\n div.querySelector('.temperature').innerHTML = `${weather.temperature.max}°F`;\n const snowforecast = div.querySelector('.snowforecast');\n snowforecast.classList.toggle('hidden', !weather.snow);\n if (weather.snow) {\n snowforecast.innerHTML = `${weather.snow}\"`;\n }\n div.querySelector('.conditions').innerHTML = weather.conditions;\n div.querySelector('.text').innerHTML = weather.text;\n renderNotice(div.querySelector('.notice'), weather.notice);\n return true;\n}\n", "import swipe from '@pirxpilot/swipe';\nimport pager from 'tiny-pager';\n\nrender.section = 1;\nrender.type = 'webcams';\n\nconst DELAY = 15 * 60 * 1000; // update every 15 minutes\n\nfunction swiper(el) {\n const ui = {\n swipe: swipe(el.swipe),\n pager: pager(el.pager)\n };\n\n function refresh(count) {\n ui.swipe.refresh();\n ui.pager.total(count).render();\n\n // hide/show pager\n el.pager.classList.toggle('hidden', count < 2);\n }\n\n function current() {\n return ui.swipe.currentVisible;\n }\n\n ui.pager.on('show', n => {\n ui.swipe.show(n, null, {\n silent: true\n });\n });\n ui.swipe.on('show', n => {\n ui.pager.select(n, {\n silent: true\n });\n });\n\n return {\n refresh,\n current\n };\n}\n\nexport default function render(div, webcams) {\n let cams;\n let timer;\n let ui;\n\n function refresh() {\n cams.forEach(it => {\n const imgs = it.node.querySelectorAll('img');\n const fn = swap.bind(null, imgs, it);\n for (let i = 0; i < imgs.length; i++) {\n imgs[i].onload = fn;\n }\n imgs[it.inactive].setAttribute('src', imgs[it.active].getAttribute('src'));\n });\n }\n\n // div.webcam\n // a\n // img.active\n // img.inactive\n // .title\n // .notice\n\n function initCam(cam, { source, image, name, notice }) {\n cam.querySelector('a').setAttribute('href', source);\n cam.querySelector('img.active').setAttribute('src', image);\n cam.querySelector('img.inactive').setAttribute('src', '');\n cam.querySelector('.title').innerHTML = name;\n cam.querySelector('.notice').innerHTML = notice || '';\n cams.push({\n node: cam,\n active: 0,\n inactive: 1\n });\n }\n\n function init() {\n if (timer) {\n clearInterval(timer);\n timer = undefined;\n }\n cams = [];\n const ul = div.querySelector('ul');\n const li = ul.querySelectorAll('li');\n webcams.forEach((webcam, i) => {\n let cam;\n if (i < li.length) {\n cam = li[i];\n } else {\n cam = ul.appendChild(li[0].cloneNode(true));\n }\n initCam(cam.querySelector('.webcam'), webcam);\n });\n for (let i = Math.max(1, webcams.length); i < li.length; i++) {\n ul.removeChild(li[i]);\n }\n if (!ui) {\n ui = swiper({\n swipe: div.querySelector('.swipe'),\n pager: div.querySelector('.pager')\n });\n }\n ui.refresh(webcams.length);\n\n if (!cams.length) {\n return false;\n }\n\n timer = setInterval(refresh, DELAY);\n return true;\n }\n\n function swap(imgs, it) {\n it.active = (it.active + 1) % 2;\n it.inactive = (it.inactive + 1) % 2;\n imgs[it.inactive].setAttribute('class', 'inactive');\n imgs[it.active].setAttribute('class', 'active');\n imgs[it.inactive].setAttribute('src', '');\n }\n\n // called every minute\n init();\n}\n", "import * as dom from './dom.js';\nimport lifts from './lifts.js';\nimport snow from './snow.js';\nimport weather from './weather.js';\nimport webcams from './webcams.js';\n\nfunction renderOpening(node, opening) {\n if (opening) {\n opening = opening.split('-');\n if (new Date(opening[0], opening[1] - 1, opening[2]).getTime() <= Date.now()) {\n node.dataset.opening = '';\n node = node.querySelector('.opening-date');\n node.parentNode.removeChild(node);\n }\n }\n}\n\nconst plugins = [lifts, weather, webcams, snow];\n\nfunction renderPlugins(node, getData) {\n const sec = dom.next(node); // extras section\n plugins.forEach(plugin => {\n const data = getData(plugin.type);\n if (!data) {\n return;\n }\n const el = plugin.section ? sec.querySelector(`.${plugin.type}`) : node;\n if (!el) {\n return;\n }\n const show = plugin(el, data);\n if (typeof show === 'boolean') {\n el.classList.toggle('visible', show);\n el.classList.toggle('hiddent', !show);\n }\n });\n}\n\nfunction render(node, resort) {\n const tsPrev = JSON.parse(node.dataset.timestamp);\n const tsCurr = resort.timestamp;\n\n renderPlugins(node, plugin => {\n if (!resort[plugin] || !tsCurr[plugin]) {\n // no data for a plugin\n return;\n }\n if (tsPrev[plugin] && tsCurr[plugin] <= tsPrev[plugin]) {\n // no new data - skip update\n return;\n }\n return resort[plugin];\n });\n renderOpening(node, node.dataset.opening);\n node.dataset.timestamp = JSON.stringify(tsCurr);\n}\n\nconst MAX = 12; // update every 12th time\n\nexport default function resort(node) {\n let updateCounter = MAX;\n\n function updateTimeToRefresh(counter) {\n const ttr = node.querySelector('.time-to-refresh');\n ttr.innerHTML = counter * 5;\n }\n\n function refresh(now) {\n const id = node.dataset.resort;\n\n if (!node.classList.contains('open')) {\n // skip closed resorts\n return;\n }\n if (now) {\n updateCounter = 0;\n } else {\n updateCounter -= 1;\n }\n\n if (updateCounter > 0) {\n updateTimeToRefresh(updateCounter);\n return;\n }\n updateCounter = MAX;\n updateTimeToRefresh(updateCounter);\n\n fetch(`/api/resort/${id}`)\n .then(res => res.json())\n .then(resort => render(node, resort));\n }\n\n function init() {\n const ds = node.dataset;\n\n updateTimeToRefresh(MAX);\n\n renderPlugins(node, plugin => {\n const data = ds[plugin];\n return data && JSON.parse(data);\n });\n }\n\n return {\n init,\n refresh,\n node\n };\n}\n", "import K from '@pirxpilot/k';\nimport cookie from 'js-cookie';\n\nconst k = K(window);\n\nexport default function state(nodes, st, keys) {\n const cookieName = `resorts-${st}`;\n\n const self = {\n load,\n save,\n update,\n read\n };\n\n function find(id) {\n return nodes.find(n => n.dataset.resort === id);\n }\n\n function read() {\n const text = cookie.get(cookieName);\n return text?.length ? text.split(',') : [];\n }\n\n function write(arr) {\n cookie.set(cookieName, arr.join(','), {\n expires: 30,\n path: '/',\n secure: window.location.protocol === 'https:',\n sameSite: 'strict'\n });\n }\n\n function update() {\n const state = read().reduce((memo, id) => {\n memo[id] = true;\n return memo;\n }, {});\n\n nodes.forEach(({ dataset, classList }) => {\n const id = dataset.resort;\n state[id] = classList.contains(st);\n });\n\n const selected = Object.keys(state).filter(id => state[id]);\n\n write(selected);\n return selected;\n }\n\n function save() {\n const selected = nodes.filter(n => n.classList.contains(st)).map(n => n.dataset.resort);\n\n write(selected);\n return selected;\n }\n\n function load() {\n const selected = read();\n selected.forEach(id => {\n const node = find(id);\n if (node) {\n node.classList.add(st);\n }\n });\n return selected;\n }\n\n function all(on) {\n nodes.forEach(n => n.classList.toggle(st, on));\n update();\n }\n\n if (keys) {\n k(keys.on, all.bind(null, true));\n k(keys.off, all.bind(null, false));\n }\n\n return self;\n}\n", "export default function stats() {\n const pie = document.querySelector('.stats .pie');\n if (!pie) {\n return;\n }\n const data = JSON.parse(pie.dataset.stats);\n let ac = 0;\n const { style } = pie;\n Object.entries(data.percentage).forEach(([key, value]) => style.setProperty(`--${key}`, `${(ac += value)}%`));\n}\n", "export default function tag(node) {\n let count;\n\n function update(c) {\n if (!count) {\n return;\n }\n count.innerHTML = c;\n node.classList.toggle('hidden', c <= 0);\n }\n\n if (node) {\n count = node.querySelector('.count');\n }\n\n return {\n update\n };\n}\n", "import debounce from 'debounce';\n\nfunction notify() {\n const widget = document.querySelector('.widget');\n if (!widget) {\n return;\n }\n window.parent.postMessage(\n {\n height: widget.scrollHeight,\n resort: window.location.pathname.split('/').pop()\n },\n '*'\n );\n}\n\nexport default function postHeight() {\n if (window === window.parent) {\n // we are not embedded - nothing to do\n return;\n }\n notify();\n window.addEventListener('resize', debounce(notify, 300), true);\n}\n", "function registrationHandler({ scope, installing, waiting, active }) {\n console.log('SW', scope);\n\n if (installing) {\n console.log('installing', installing.state);\n }\n if (waiting) {\n console.log('waiting', waiting.state);\n }\n if (active) {\n console.log('active', active.state);\n }\n}\n\nexport default function register(url = '/sw.js') {\n if (navigator.serviceWorker && document.documentElement.hasAttribute('data-service-worker')) {\n return navigator.serviceWorker\n .register(url)\n .then(registrationHandler)\n .catch(reason => console.log('SW registration failed!', reason));\n }\n}\n", "import about from '../about/index.js';\nimport minimax from '../minimax/index.js';\nimport resort from '../resort/index.js';\nimport state from '../state/index.js';\nimport stats from '../stats/index.js';\nimport tag from '../tag/index.js';\nimport height from './height.js';\nimport serviceWorker from './service-worker.js';\n\nserviceWorker();\ninit();\n\nfunction init() {\n const rnodes = Array.from(document.querySelectorAll('.resort'));\n\n const opens = state(rnodes, 'open', {\n on: 'shift + o',\n off: 'shift + x'\n });\n\n const starred = state(rnodes, 'starred');\n const starredTag = tag(document.querySelector('.tags .starred'));\n\n const resorts = rnodes.map(r => resort(r));\n\n resorts.forEach(r => {\n minimax(r.node, '.minimax')\n .state('open')\n .on(open => {\n if (open) {\n r.refresh(true);\n }\n opens.update();\n });\n minimax(r.node, '.star')\n .state('starred')\n .on(() => starredTag.update(starred.update().length));\n r.init();\n });\n window.setInterval(() => resorts.forEach(r => r.refresh()), 5 * 1000);\n about();\n opens.update();\n starredTag.update(starred.load().length);\n\n stats();\n height();\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["
|
|
3
|
+
"sources": ["../../node_modules/.pnpm/component-emitter@2.0.0/node_modules/component-emitter/index.js", "../../node_modules/.pnpm/yields-keycode@1.1.0/node_modules/yields-keycode/index.js", "../../node_modules/.pnpm/yields-k-sequence@0.1.0/node_modules/yields-k-sequence/index.js", "../../node_modules/.pnpm/component-os@0.0.1/node_modules/component-os/index.js", "../../node_modules/.pnpm/@pirxpilot+k@1.0.1/node_modules/@pirxpilot/k/lib/proto.js", "../../node_modules/.pnpm/@pirxpilot+k@1.0.1/node_modules/@pirxpilot/k/lib/index.js", "../../node_modules/.pnpm/js-cookie@3.0.5/node_modules/js-cookie/dist/js.cookie.mjs", "../../lib/client/about/index.js", "../../lib/client/minimax/index.js", "../../lib/client/resort/dom.js", "../../lib/client/resort/lifts.js", "../../lib/client/resort/snow.js", "../../lib/client/resort/weather.js", "../../node_modules/.pnpm/@pirxpilot+events@3.0.0/node_modules/@pirxpilot/events/index.js", "../../node_modules/.pnpm/@pirxpilot+swipe@3.0.0/node_modules/@pirxpilot/swipe/index.js", "../../node_modules/.pnpm/tiny-pager@2.0.0/node_modules/tiny-pager/index.js", "../../node_modules/.pnpm/el-component@2.0.2/node_modules/el-component/index.js", "../../lib/client/resort/webcams.js", "../../lib/client/resort/index.js", "../../lib/client/state/index.js", "../../lib/client/stats/index.js", "../../lib/client/tag/index.js", "../../node_modules/.pnpm/debounce@3.0.0/node_modules/debounce/index.js", "../../lib/client/boot/height.js", "../../lib/client/boot/service-worker.js", "../../lib/client/boot/index.js"],
|
|
4
|
+
"sourcesContent": ["function Emitter(object) {\n\tif (object) {\n\t\treturn mixin(object);\n\t}\n\n\tthis._callbacks = new Map();\n}\n\nfunction mixin(object) {\n\tObject.assign(object, Emitter.prototype);\n\tobject._callbacks = new Map();\n\treturn object;\n}\n\nEmitter.prototype.on = function (event, listener) {\n\tconst callbacks = this._callbacks.get(event) ?? [];\n\tcallbacks.push(listener);\n\tthis._callbacks.set(event, callbacks);\n\treturn this;\n};\n\nEmitter.prototype.once = function (event, listener) {\n\tconst on = (...arguments_) => {\n\t\tthis.off(event, on);\n\t\tlistener.apply(this, arguments_);\n\t};\n\n\ton.fn = listener;\n\tthis.on(event, on);\n\treturn this;\n};\n\nEmitter.prototype.off = function (event, listener) {\n\tif (event === undefined && listener === undefined) {\n\t\tthis._callbacks.clear();\n\t\treturn this;\n\t}\n\n\tif (listener === undefined) {\n\t\tthis._callbacks.delete(event);\n\t\treturn this;\n\t}\n\n\tconst callbacks = this._callbacks.get(event);\n\tif (callbacks) {\n\t\tfor (const [index, callback] of callbacks.entries()) {\n\t\t\tif (callback === listener || callback.fn === listener) {\n\t\t\t\tcallbacks.splice(index, 1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (callbacks.length === 0) {\n\t\t\tthis._callbacks.delete(event);\n\t\t} else {\n\t\t\tthis._callbacks.set(event, callbacks);\n\t\t}\n\t}\n\n\treturn this;\n};\n\nEmitter.prototype.emit = function (event, ...arguments_) {\n\tconst callbacks = this._callbacks.get(event);\n\tif (callbacks) {\n\t\t// Create a copy of the callbacks array to avoid issues if it's modified during iteration\n\t\tconst callbacksCopy = [...callbacks];\n\n\t\tfor (const callback of callbacksCopy) {\n\t\t\tcallback.apply(this, arguments_);\n\t\t}\n\t}\n\n\treturn this;\n};\n\nEmitter.prototype.listeners = function (event) {\n\treturn this._callbacks.get(event) ?? [];\n};\n\nEmitter.prototype.listenerCount = function (event) {\n\tif (event) {\n\t\treturn this.listeners(event).length;\n\t}\n\n\tlet totalCount = 0;\n\tfor (const callbacks of this._callbacks.values()) {\n\t\ttotalCount += callbacks.length;\n\t}\n\n\treturn totalCount;\n};\n\nEmitter.prototype.hasListeners = function (event) {\n\treturn this.listenerCount(event) > 0;\n};\n\n// Aliases\nEmitter.prototype.addEventListener = Emitter.prototype.on;\nEmitter.prototype.removeListener = Emitter.prototype.off;\nEmitter.prototype.removeEventListener = Emitter.prototype.off;\nEmitter.prototype.removeAllListeners = Emitter.prototype.off;\n\nif (typeof module !== 'undefined') {\n\tmodule.exports = Emitter;\n}\n", "\n/**\n * map\n */\n\nvar map = {\n backspace: 8\n , command: 91\n , tab: 9\n , clear: 12\n , enter: 13\n , shift: 16\n , ctrl: 17\n , alt: 18\n , capslock: 20\n , escape: 27\n , esc: 27\n , space: 32\n , pageup: 33\n , pagedown: 34\n , end: 35\n , home: 36\n , left: 37\n , up: 38\n , right: 39\n , down: 40\n , del: 46\n , comma: 188\n , f1: 112\n , f2: 113\n , f3: 114\n , f4: 115\n , f5: 116\n , f6: 117\n , f7: 118\n , f8: 119\n , f9: 120\n , f10: 121\n , f11: 122\n , f12: 123\n , ',': 188\n , '.': 190\n , '/': 191\n , '`': 192\n , '-': 189\n , '=': 187\n , ';': 186\n , '[': 219\n , '\\\\': 220\n , ']': 221\n , '\\'': 222\n};\n\n/**\n * find a keycode.\n *\n * @param {String} name\n * @return {Number}\n */\n\nmodule.exports = function(name){\n return map[name.toLowerCase()] || name.toUpperCase().charCodeAt(0);\n};\n", "\n/**\n * dependencies\n */\n\nvar keycode = require('keycode');\n\n/**\n * Export `sequence`\n */\n\nmodule.exports = sequence;\n\n/**\n * Create sequence fn with `keys`.\n * optional `ms` which defaults\n * to `500ms` and `fn`.\n *\n * Example:\n *\n * seq = sequence('a b c', fn);\n * el.addEventListener('keydown', seq);\n *\n * @param {String} keys\n * @param {Number} ms\n * @param {Function} fn\n * @return {Function}\n * @api public\n */\n\nfunction sequence(keys, ms, fn){\n var codes = keys.split(/ +/).map(keycode)\n , clen = codes.length\n , seq = []\n , i = 0\n , prev;\n\n if (2 == arguments.length) {\n fn = ms;\n ms = 500;\n }\n\n return function(e){\n var code = codes[i++];\n if (42 != code && code != e.which) return reset();\n if (prev && new Date - prev > ms) return reset();\n var len = seq.push(e.which);\n prev = new Date;\n if (len != clen) return;\n reset();\n fn(e);\n };\n\n function reset(){\n prev = null;\n seq = [];\n i = 0;\n }\n};\n", "\n\nmodule.exports = os();\n\nfunction os() {\n var ua = navigator.userAgent;\n if (/mac/i.test(ua)) return 'mac';\n if (/win/i.test(ua)) return 'windows';\n if (/linux/i.test(ua)) return 'linux';\n}\n", "\n/**\n * Module Dependencies.\n */\n\nvar sequence = require('yields-k-sequence');\nvar keycode = require('yields-keycode');\nvar os = require('component-os');\n\n/**\n * modifiers.\n */\n\nvar modifiers = {\n 224: 'command',\n 91: 'command',\n 93: 'command',\n 16: 'shift',\n 17: 'ctrl',\n 18: 'alt'\n};\n\n/**\n * Super key.\n * (must use subscript vs. dot notation to avoid issues with older browsers)\n */\n\nexports['super'] = 'mac' == os\n ? 'command'\n : 'ctrl';\n\n/**\n * Handle the given `KeyboardEvent` or bind\n * a new `keys` handler.\n *\n * @param {String|KeyboardEvent} e\n * @param {Function} fn\n * @api private\n */\n\nexports.handle = function(e, fn){\n var ignore = this.ignore;\n var event = e.type;\n var code = e.which;\n\n // bind\n if (fn) return this.bind(e, fn);\n\n // modifiers\n var mod = modifiers[code];\n if ('keydown' == event && mod) {\n this['super'] = exports['super'] == mod;\n this[mod] = true;\n this.modifiers = true;\n this.active++;\n return;\n }\n\n // ignore\n if (ignore && ignore(e)) return;\n\n // listeners\n var all = this.listeners;\n\n // match\n for (var i = 0; i < all.length; ++i) {\n var invoke = true;\n var obj = all[i];\n var seq = obj.seq;\n var mods = obj.mods;\n fn = seq || obj.fn;\n\n if (!seq && code != obj.code) continue;\n if (event != obj.event) continue;\n if (this.active != obj.mods.length) continue;\n\n for (var j = 0; j < mods.length; ++j) {\n if (!this[mods[j]]) {\n invoke = null;\n break;\n }\n }\n\n if (invoke) {\n fn(e);\n }\n }\n};\n\n/**\n * Destroy this `k` dispatcher instance.\n *\n * @api public\n */\n\nexports.destroy = function(){\n this.el.removeEventListener('keydown', this._handle);\n this.el.removeEventListener('keyup', this._handle);\n this.el.removeEventListener('keyup', this._clear);\n this.el.removeEventListener('focus', this._clear);\n this.listeners = [];\n};\n\n/**\n * Unbind the given `keys` with optional `fn`.\n *\n * Example:\n *\n * k.unbind('enter, tab', myListener); // unbind `myListener` from `enter, tab` keys\n * k.unbind('enter, tab'); // unbind all `enter, tab` listeners\n * k.unbind(); // unbind all listeners\n *\n * @param {String} keys\n * @param {Function} fn\n * @return {k}\n * @api public\n */\n\nexports.unbind = function(keys, fn){\n var fns = this.listeners;\n var len = fns.length;\n var all;\n\n // unbind all\n if (0 === arguments.length) {\n this.listeners = [];\n return this;\n }\n\n // parse\n all = parseKeys(keys);\n\n // unbind\n for (var i = 0; i < all.length; ++i) {\n for (var j = 0, obj; j < len; ++j) {\n obj = fns[j];\n if (!obj) continue;\n if (fn && obj.fn != fn) continue;\n if (obj.key != all[i].key) continue;\n if (!matches(obj, all[i])) continue;\n fns.splice(j--, 1);\n }\n }\n\n return this;\n};\n\n/**\n * Bind the given `keys` to `fn` with optional `event`\n *\n * Example:\n *\n * k.bind('shift + tab, ctrl + a', function(e){});\n *\n * @param {String} event\n * @param {String} keys\n * @param {Function} fn\n * @return {k}\n * @api public\n */\n\nexports.bind = function(event, keys, fn){\n var fns = this.listeners;\n var len;\n var all;\n\n if (2 == arguments.length) {\n fn = keys;\n keys = event;\n event = 'keydown';\n }\n\n all = parseKeys(keys);\n len = all.length;\n\n for (var i = 0; i < len; ++i) {\n var obj = all[i];\n obj.seq = obj.seq && sequence(obj.key, fn);\n obj.event = event;\n obj.fn = fn;\n fns.push(obj);\n }\n\n return this;\n};\n\n/**\n * Bind keyup with `keys` and `fn`.\n *\n * @param {String} keys\n * @param {Function} fn\n * @return {k}\n * @api public\n */\n\nexports.up = function(keys, fn){\n return this.bind('keyup', keys, fn);\n};\n\n/**\n * Bind keydown with `keys` and `fn`.\n *\n * @param {String} keys\n * @param {Function} fn\n * @return {k}\n * @api public\n */\n\nexports.down = function(keys, fn){\n return this.bind('keydown', keys, fn);\n};\n\n/**\n * Clear all modifiers on `keyup`.\n *\n * @api private\n */\n\nexports.clear = function(e){\n var code = e.keyCode || e.which;\n if (!(code in modifiers)) return;\n this.active--;\n this[modifiers[code]] = null;\n this.modifiers = this.command\n || this.shift\n || this.ctrl\n || this.alt;\n};\n\n/**\n * Clear all modifiers on `focus`.\n *\n * @api private\n */\n\nexports.reset = function(){\n this.active = 0;\n this.modifiers =\n this.command =\n this.shift =\n this.ctrl =\n this.alt = null;\n};\n\n/**\n * Ignore all input elements by default.\n *\n * @param {Event} e\n * @return {Boolean}\n * @api private\n */\n\nexports.ignore = function(e){\n var el = e.target || e.srcElement;\n var name = el.tagName.toLowerCase();\n return 'textarea' == name\n || 'select' == name\n || 'input' == name;\n};\n\n/**\n * Parse the given `keys`.\n *\n * @param {String} keys\n * @return {Array}\n * @api private\n */\n\nfunction parseKeys(keys){\n keys = keys.replace('super', exports['super']);\n\n var all = ',' != keys\n ? keys.split(/ *, */)\n : [','];\n\n var ret = [];\n for (var i = 0; i < all.length; ++i) {\n if ('' === all[i]) continue;\n var mods = all[i].split(/ *\\+ */);\n var key = mods.pop() || ',';\n\n ret.push({\n seq: !! (~key.indexOf(' ') || ~key.indexOf('*')),\n code: keycode(key),\n mods: mods,\n key: key\n });\n }\n\n return ret;\n}\n\n/**\n * Check if the given `a` matches `b`.\n *\n * @param {Object} a\n * @param {Object} b\n * @return {Boolean}\n * @api private\n */\n\nfunction matches(a, b){\n return 0 === b.mods.length || eql(a, b);\n}\n\n/**\n * Shallow eql util.\n *\n * TODO: move to yields/eql\n *\n * @param {Array} a\n * @param {Array} b\n * @return {Boolean}\n * @api private\n */\n\nfunction eql(a, b){\n a = a.mods.sort().toString();\n b = b.mods.sort().toString();\n return a == b;\n}\n", "\n/**\n * Module Dependencies.\n */\n\nvar proto = require('./proto');\n\n/**\n * Create a new dispatcher with `el`.\n *\n * example:\n *\n * var k = require('k')(window);\n * k('shift + tab', function(){});\n *\n * @param {Element} el\n * @return {Function}\n * @api public\n */\n\nmodule.exports = function(el){\n function k(e, fn){ k.handle(e, fn); }\n k._handle = proto.handle.bind(k);\n k._clear = proto.clear.bind(k);\n k._reset = proto.reset.bind(k);\n el.addEventListener('keydown', k._handle, false);\n el.addEventListener('keyup', k._handle, false);\n el.addEventListener('keyup', k._clear, false);\n el.addEventListener('focus', k._reset, false);\n for (var p in proto) k[p] = proto[p];\n k.listeners = [];\n k.active = 0;\n k.el = el;\n return k;\n};\n", "/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n", "import cookie from 'js-cookie';\n\nexport default function about() {\n const s = document.querySelector('.hidden .about');\n if (!s) {\n // no hidden 'about' section - nothing to do\n return;\n }\n if (!check()) {\n // we already have a cookie\n return;\n }\n const section = s.parentNode;\n const trigger = s.querySelector('a.close');\n trigger.addEventListener('click', e => {\n close();\n e.preventDefault();\n });\n open();\n\n function check() {\n return window.parent === window && typeof cookie.get('resorts-open') === 'undefined';\n }\n\n function close() {\n section.classList.add('hidden');\n }\n\n function open() {\n section.classList.remove('hidden');\n }\n}\n", "/**\n * @param {Array} elements list of affected element\n * @param {Element} trigger button|link that flips min, max state\n */\nexport default function minimax(node, selector) {\n const my = {\n trigger: node.querySelector(selector),\n state: 'open', // by default trigger 'open' state\n fn() {}\n };\n\n const self = {\n state,\n on\n };\n\n function onclick(e) {\n e.preventDefault();\n const state = node.classList.toggle(my.state);\n my.fn.call(null, state);\n }\n\n function state(s) {\n my.state = s;\n return self;\n }\n\n function on(fn) {\n my.fn = fn;\n return self;\n }\n\n if (my.trigger) {\n my.trigger.addEventListener('click', onclick);\n }\n\n return self;\n}\n", "export function removeAllChildren(node) {\n while (node.hasChildNodes()) {\n node.removeChild(node.lastChild);\n }\n}\n\nexport function next({ nextElementSibling, nextSibling }) {\n return nextElementSibling || nextSibling;\n}\n", "import * as dom from './dom.js';\n\nrender.section = 0;\nrender.type = 'lifts';\n\nconst states = ['open', 'hold', 'scheduled', 'closed'];\n\nfunction renderStatus(node, status) {\n dom.removeAllChildren(node);\n if (status) {\n node.innerHTML = Object.keys(status)\n .map(name => {\n const klass = `status ls-${status[name]}`;\n return `<li class=\"lift\"><span class=\"name\">${name}</span><span class=\"${klass}\"></span></li>`;\n })\n .join('');\n }\n}\n\nfunction renderStats(node, stats) {\n states.forEach(s => (node.querySelector(`.ls-${s}`).innerHTML = stats ? stats[s] : 0));\n}\n\nfunction renderColorBar(node, percentage) {\n states.forEach(state => {\n const width = `width:${percentage ? percentage[state] : 25}%;`;\n node.querySelector(`.${state}`).setAttribute('style', width);\n });\n}\n\nexport default function render(node, { status, stats }) {\n renderStatus(node.querySelector('.lifts'), status);\n renderStats(node.querySelector('.summary'), stats);\n renderColorBar(node.querySelector('.summary-color-bar'), stats.percentage);\n}\n", "const day = 24 * 60 * 60 * 1000;\n\nrender.section = 1;\nrender.type = 'snow';\n\n// .snow\n// .snowfall= resort.snow.snowfall\n// .depth= resort.snow.depth\n// .condition= resort.snow.condition\n// .notice= resort.snow.notice\n\nfunction renderField(div, field, snow) {\n const el = div.querySelector(`.${field}`);\n const value = snow[field];\n el.querySelector('.value').innerHTML = value || '';\n el.classList.toggle('hidden', !value);\n}\n\nexport default function render(div, snow) {\n if (Date.now() - snow.timestamp > day) {\n return false;\n }\n renderField(div, 'snowfall', snow);\n renderField(div, 'depth', snow);\n renderField(div, 'condition', snow);\n div.querySelector('.notice').innerHTML = snow.notice || '';\n return true;\n}\n", "const day = 24 * 60 * 60 * 1000;\n\nrender.section = 1;\nrender.type = 'weather';\n\n// .weather\n// .weather-icon\n// ul\n// li(class=#{resort.weather.icon[0]}\n// li(class=#{resort.weather.icon[1]}\n// .snowforecast!= resort.weather.snow + '\"'\n// .temperature!= resort.weather.temperature.max + '°F'\n// .conditions= resort.weather.conditions\n// .text= resort.weather.text\n// .notice Forecast by \n// a(target=\"_blank\")\n// img\n\nfunction renderIcon(li, icon) {\n if (Array.isArray(icon)) {\n icon.forEach((cl, i) => li.item(i).setAttribute('class', cl));\n }\n}\n\nfunction renderNotice(el, notice) {\n if (!notice) {\n return el.classList.add('hidden');\n }\n el.classList.remove('hidden');\n el = el.querySelector('a');\n el.setAttribute('href', notice.href);\n el.setAttribute('title', `Go to ${notice.site}`);\n el = el.querySelector('img');\n el.setAttribute('src', notice.img);\n el.setAttribute('style', `width:${notice.width}px;`);\n el.setAttribute('alt', notice.site);\n}\n\nexport default function render(div, weather) {\n if (Date.now() - weather.timestamp > day) {\n return false;\n }\n renderIcon(div.querySelectorAll('.weather-icon > ul > li'), weather.icon);\n div.querySelector('.temperature').innerHTML = `${weather.temperature.max}°F`;\n const snowforecast = div.querySelector('.snowforecast');\n snowforecast.classList.toggle('hidden', !weather.snow);\n if (weather.snow) {\n snowforecast.innerHTML = `${weather.snow}\"`;\n }\n div.querySelector('.conditions').innerHTML = weather.conditions;\n div.querySelector('.text').innerHTML = weather.text;\n renderNotice(div.querySelector('.notice'), weather.notice);\n return true;\n}\n", "export default function events(el, obj) {\n const handlers = new Map();\n\n function bind(name, handler, opts) {\n if (!handler) {\n handler = name;\n }\n if (typeof handler === 'string') {\n handler = obj[handler].bind(obj);\n }\n el.addEventListener(name, handler, opts);\n handlers.set(name, {\n handler,\n opts\n });\n }\n\n function do_unbind(name) {\n const h = handlers.get(name);\n if (h) {\n el.removeEventListener(name, h.handler, h.opts);\n handlers.delete(name);\n }\n }\n\n function unbind(name) {\n return name ? do_unbind(name) : unbindAll();\n }\n\n function unbindAll() {\n handlers.forEach((h, name) => el.removeEventListener(name, h.handler, h.opts));\n handlers.clear();\n }\n\n return {\n bind,\n unbind\n };\n}\n", "import events from '@pirxpilot/events';\nimport Emitter from 'component-emitter';\n\n/**\n * Turn `el` into a swipeable list.\n *\n * @param {Element} el\n * @api public\n */\n\nexport default class Swipe extends Emitter {\n #duration = 300;\n #interval = 5000;\n #threshold = 0.5;\n #fastThreshold = 200;\n\n constructor(el) {\n super();\n if (!el) throw new TypeError('Swipe() requires an element');\n this.child = el.children[0];\n this.touchAction('none');\n this.currentEl = this.children().visible[0];\n this.currentVisible = 0;\n this.current = 0;\n this.el = el;\n this.refresh();\n this.show(0, 0, { silent: true });\n this.bind();\n }\n\n /**\n * Set the swipe threshold to `n`.\n *\n * This is the factor required for swipe\n * to detect when a slide has passed the\n * given threshold, and may display the next\n * or previous slide. For example the default\n * of `.5` means that the user must swipe _beyond_\n * half of the side width.\n *\n * @param {Number} n\n * @api public\n */\n\n threshold(n) {\n this.#threshold = n;\n }\n\n /**\n * Set the \"fast\" swipe threshold to `ms`.\n *\n * This is the amount of time in milliseconds\n * which determines if a swipe was \"fast\" or not. When\n * the swipe's duration is less than `ms` only 1/10th of\n * the slide's width must be exceeded to display the previous\n * or next slide.\n *\n * @param {Number} n\n * @api public\n */\n\n fastThreshold(ms) {\n this.#fastThreshold = ms;\n }\n\n /**\n * Refresh sizing data.\n *\n * @api public\n */\n\n refresh() {\n const children = this.children();\n const visible = children.visible.length;\n const prev = this.visible || visible;\n\n const i = indexOf(children.visible, this.currentEl);\n\n // we removed/added item(s), update current\n if (visible < prev && i <= this.currentVisible && i >= 0) {\n this.currentVisible = i;\n } else if (visible > prev && i > this.currentVisible) {\n this.currentVisible = i;\n }\n\n this.visible = visible;\n this.childWidth = this.el.getBoundingClientRect().width;\n this.width = Math.ceil(this.childWidth * visible);\n this.child.style.width = `${this.width}px`;\n this.child.style.height = `${this.height}px`;\n this.show(this.currentVisible, 0, { silent: true });\n }\n\n /**\n * Bind event handlers.\n *\n * @api public\n */\n\n bind() {\n this.events = events(this.child, this);\n\n this.events.bind('pointerdown', 'ontouchstart');\n this.events.bind('pointermove', 'ontouchmove');\n this.events.bind('pointerup', 'ontouchend');\n this.events.bind('pointercancel', 'ontouchend');\n }\n\n /**\n * Unbind event handlers.\n *\n * @api public\n */\n\n unbind() {\n this.events.unbind();\n }\n\n /**\n * Handle touchstart.\n *\n * @api private\n */\n\n ontouchstart(e) {\n this.transitionDuration(0);\n this.dx = 0;\n this.updown = null;\n\n e.target.setPointerCapture(e.pointerId);\n this.down = {\n x: e.pageX,\n y: e.pageY,\n at: new Date()\n };\n }\n\n /**\n * Handle touchmove.\n *\n * For the first and last slides\n * we apply some resistence to help\n * indicate that you're at the edges.\n *\n * @api private\n */\n\n ontouchmove(e) {\n if (!this.down || this.updown) return;\n\n // TODO: ignore more than one finger\n if (!e) return;\n\n const down = this.down;\n const x = e.pageX;\n const w = this.childWidth;\n const i = this.currentVisible;\n this.dx = x - down.x;\n\n // determine dy and the slope\n if (null == this.updown) {\n const y = e.pageY;\n const dy = y - down.y;\n const slope = dy / this.dx;\n\n // if is greater than 1 or -1, we're swiping up/down\n if (slope > 1 || slope < -1) {\n this.updown = true;\n return;\n }\n this.updown = false;\n }\n\n e.preventDefault();\n\n const dir = this.dx < 0 ? 1 : 0;\n if (this.isFirst() && 0 === dir) this.dx /= 2;\n if (this.isLast() && 1 === dir) this.dx /= 2;\n this.translate(i * w + -this.dx);\n }\n\n /**\n * Handle touchend.\n *\n * @api private\n */\n\n ontouchend(e) {\n e.stopPropagation();\n if (!this.down) return;\n\n e.target.releasePointerCapture(e.pointerId);\n\n // setup\n const dx = this.dx;\n const w = this.childWidth;\n\n // < 200ms swipe\n const ms = Date.now() - this.down.at;\n const threshold = ms < this.#fastThreshold ? w / 10 : w * this.#threshold;\n const dir = dx < 0 ? 1 : 0;\n const half = Math.abs(dx) >= threshold;\n\n // clear\n this.down = null;\n\n // first -> next\n if (this.isFirst() && 1 === dir && half) return this.next();\n\n // first -> first\n if (this.isFirst()) return this.prev();\n\n // last -> last\n if (this.isLast() && 1 === dir) return this.next();\n\n // N -> N + 1\n if (1 === dir && half) return this.next();\n\n // N -> N - 1\n if (0 === dir && half) return this.prev();\n\n // N -> N\n this.show(this.currentVisible);\n }\n\n /**\n * Set transition duration to `ms`.\n *\n * @param {Number} ms\n * @return {Swipe} self\n * @api public\n */\n\n duration(ms) {\n this.#duration = ms;\n return this;\n }\n\n /**\n * Set cycle interval to `ms`.\n *\n * @param {Number} ms\n * @return {Swipe} self\n * @api public\n */\n\n interval(ms) {\n this.#interval = ms;\n return this;\n }\n\n /**\n * Play through all the elements.\n *\n * @return {Swipe} self\n * @api public\n */\n\n play() {\n if (this.timer) return;\n this.timer = setInterval(this.cycle.bind(this), this.#interval);\n return this;\n }\n\n /**\n * Stop playing.\n *\n * @return {Swipe} self\n * @api public\n */\n\n stop() {\n clearInterval(this.timer);\n this.timer = null;\n return this;\n }\n\n /**\n * Show the next slide, when the end\n * is reached start from the beginning.\n *\n * @api public\n */\n\n cycle() {\n if (this.isLast()) {\n this.currentVisible = -1;\n this.next();\n } else {\n this.next();\n }\n }\n\n /**\n * Check if we're on the first visible slide.\n *\n * @return {Boolean}\n * @api public\n */\n\n isFirst() {\n return this.currentVisible === 0;\n }\n\n /**\n * Check if we're on the last visible slide.\n *\n * @return {Boolean}\n * @api public\n */\n\n isLast() {\n return this.currentVisible === this.visible - 1;\n }\n\n /**\n * Show the previous slide, if any.\n *\n * @return {Swipe} self\n * @api public\n */\n\n prev() {\n this.show(this.currentVisible - 1);\n return this;\n }\n\n /**\n * Show the next slide, if any.\n *\n * @return {Swipe} self\n * @api public\n */\n\n next() {\n this.show(this.currentVisible + 1);\n return this;\n }\n\n /**\n * Show slide `i`.\n *\n * Emits `show `event\n *\n * @param {Number} i\n * @return {Swipe} self\n * @api public\n */\n\n show(i, ms = this.#duration, { silent } = {}) {\n const children = this.children();\n i = Math.max(0, Math.min(i, children.visible.length - 1));\n this.currentVisible = i;\n this.currentEl = children.visible[i];\n this.current = indexOf(children.all, this.currentEl);\n this.transitionDuration(ms);\n this.translate(this.childWidth * i);\n\n if (!silent) {\n this.emit('showing', this.current, this.currentEl);\n if (!ms) return this;\n this.child.addEventListener(\n 'transitionend',\n () => {\n if (this.current === i) this.emit('show', this.current, this.currentEl);\n },\n { once: true }\n );\n }\n return this;\n }\n\n /**\n * Return children categorized by visibility.\n *\n * @return {Object}\n * @api private\n */\n\n children() {\n const els = this.child.children;\n\n const ret = {\n all: els,\n visible: [],\n hidden: []\n };\n\n for (let i = 0; i < els.length; i++) {\n const el = els[i];\n if (visible(el)) {\n ret.visible.push(el);\n } else {\n ret.hidden.push(el);\n }\n }\n\n return ret;\n }\n\n /**\n * Set transition duration.\n *\n * @api private\n */\n\n transitionDuration(ms) {\n this.child.style.transition = `${ms}ms transform`;\n }\n\n /**\n * Translate to `x`.\n *\n * TODO: use translate component\n *\n * @api private\n */\n\n translate(x) {\n this.child.style.transform = `translate3d(${-x}px, 0, 0)`;\n }\n\n /**\n * Sets the \"touchAction\" CSS style property to `value`.\n *\n * @api private\n */\n\n touchAction(value) {\n this.child.style.touchAction = value;\n }\n}\n\n/**\n * Return index of `el` in `els`.\n *\n * @param {Array} els\n * @param {Element} el\n * @return {Number}\n */\n\nfunction indexOf(els, el) {\n for (let i = 0; i < els.length; i++) {\n if (els[i] === el) return i;\n }\n return -1;\n}\n\n/**\n * Check if `el` is visible.\n *\n * @param {Element} el\n * @return {Boolean}\n */\n\nfunction visible(el) {\n return getComputedStyle(el).display !== 'none';\n}\n", "import Emitter from 'component-emitter';\nimport el from 'el-component';\n\nexport default class Pager extends Emitter {\n #total = 0;\n #current = 0;\n\n constructor(el) {\n super();\n this.el = el;\n el.addEventListener('click', this.onclick.bind(this));\n }\n\n total(t) {\n this.#total = t;\n return this;\n }\n\n onclick(e) {\n const target = e.target || e.srcElement;\n const page = Array.prototype.indexOf.call(this.el.children, target);\n if (page < 0) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n this.select(page);\n }\n\n select(page, opts) {\n if (page === this.#current) {\n return;\n }\n Array.prototype.forEach.call(this.el.children, (a, i) => {\n a.className = i === page ? 'active' : 'inactive';\n });\n this.#current = page;\n if (!opts?.silent) {\n this.emit('show', this.#current);\n }\n return this;\n }\n\n render() {\n const html = new Array(this.#total);\n for (let i = 0; i < this.#total; i++) {\n html[i] = el(i !== this.#current ? 'a.inactive' : 'a.active');\n }\n this.el.innerHTML = html.join('');\n return this;\n }\n}\n", "// see: http://www.w3.org/html/wg/drafts/html/master/single-page.html#void-elements\nconst voids = new Set([\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'menuitem',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr'\n]);\n\nfunction htmlTag(tag, content, attrStr) {\n const text = ['<', tag, attrStr ? ` ${attrStr}` : '', '>'];\n if (!voids.has(tag)) {\n text.push(content || '', '</', tag, '>');\n }\n return text;\n}\n\nfunction xmlTag(tag, content, attrStr) {\n const text = ['<', tag, attrStr ? ` ${attrStr}` : ''];\n if (!content || !content.length) {\n text.push('/>');\n } else {\n text.push('>', content, '</', tag, '>');\n }\n return text;\n}\n\nfunction toStr(tagFn, tagStr, content, attrs) {\n if (typeof content !== 'string') {\n attrs = content;\n content = '';\n }\n\n attrs = attrs || {};\n\n let [tag = 'div', ...classes] = tagStr?.split('.') || [];\n if (classes.length) {\n const classesStr = classes.join(' ');\n if (attrs['class']) {\n attrs['class'] += ` ${classesStr}`;\n } else {\n attrs['class'] = classesStr;\n }\n }\n const ids = tag.split('#');\n if (ids.length > 1) {\n tag = ids[0] || 'div';\n attrs.id = ids[1];\n }\n\n const attrStr = Object.entries(attrs)\n .map(([attr, value]) => `${attr}=\"${value}\"`)\n .join(' ');\n\n return tagFn(tag, content, attrStr).join('');\n}\n\nexport default toStr.bind(null, htmlTag);\nexport const xml = toStr.bind(null, xmlTag);\n", "import Swipe from '@pirxpilot/swipe';\nimport Pager from 'tiny-pager';\n\nrender.section = 1;\nrender.type = 'webcams';\n\nconst DELAY = 15 * 60 * 1000; // update every 15 minutes\n\nfunction swiper(el) {\n const ui = {\n swipe: new Swipe(el.swipe),\n pager: new Pager(el.pager)\n };\n\n function refresh(count) {\n ui.swipe.refresh();\n ui.pager.total(count).render();\n\n // hide/show pager\n el.pager.classList.toggle('hidden', count < 2);\n }\n\n function current() {\n return ui.swipe.currentVisible;\n }\n\n ui.pager.on('show', n => {\n ui.swipe.show(n, null, {\n silent: true\n });\n });\n ui.swipe.on('show', n => {\n ui.pager.select(n, {\n silent: true\n });\n });\n\n return {\n refresh,\n current\n };\n}\n\nexport default function render(div, webcams) {\n let cams;\n let timer;\n let ui;\n\n function refresh() {\n cams.forEach(it => {\n const imgs = it.node.querySelectorAll('img');\n const fn = swap.bind(null, imgs, it);\n for (let i = 0; i < imgs.length; i++) {\n imgs[i].onload = fn;\n }\n imgs[it.inactive].setAttribute('src', imgs[it.active].getAttribute('src'));\n });\n }\n\n // div.webcam\n // a\n // img.active\n // img.inactive\n // .title\n // .notice\n\n function initCam(cam, { source, image, name, notice }) {\n cam.querySelector('a').setAttribute('href', source);\n cam.querySelector('img.active').setAttribute('src', image);\n cam.querySelector('img.inactive').setAttribute('src', '');\n cam.querySelector('.title').innerHTML = name;\n cam.querySelector('.notice').innerHTML = notice || '';\n cams.push({\n node: cam,\n active: 0,\n inactive: 1\n });\n }\n\n function init() {\n if (timer) {\n clearInterval(timer);\n timer = undefined;\n }\n cams = [];\n const ul = div.querySelector('ul');\n const li = ul.querySelectorAll('li');\n webcams.forEach((webcam, i) => {\n let cam;\n if (i < li.length) {\n cam = li[i];\n } else {\n cam = ul.appendChild(li[0].cloneNode(true));\n }\n initCam(cam.querySelector('.webcam'), webcam);\n });\n for (let i = Math.max(1, webcams.length); i < li.length; i++) {\n ul.removeChild(li[i]);\n }\n if (!ui) {\n ui = swiper({\n swipe: div.querySelector('.swipe'),\n pager: div.querySelector('.pager')\n });\n }\n ui.refresh(webcams.length);\n\n if (!cams.length) {\n return false;\n }\n\n timer = setInterval(refresh, DELAY);\n return true;\n }\n\n function swap(imgs, it) {\n it.active = (it.active + 1) % 2;\n it.inactive = (it.inactive + 1) % 2;\n imgs[it.inactive].setAttribute('class', 'inactive');\n imgs[it.active].setAttribute('class', 'active');\n imgs[it.inactive].setAttribute('src', '');\n }\n\n // called every minute\n init();\n}\n", "import * as dom from './dom.js';\nimport lifts from './lifts.js';\nimport snow from './snow.js';\nimport weather from './weather.js';\nimport webcams from './webcams.js';\n\nfunction renderOpening(node, opening) {\n if (opening) {\n opening = opening.split('-');\n if (new Date(opening[0], opening[1] - 1, opening[2]).getTime() <= Date.now()) {\n node.dataset.opening = '';\n node = node.querySelector('.opening-date');\n node.parentNode.removeChild(node);\n }\n }\n}\n\nconst plugins = [lifts, weather, webcams, snow];\n\nfunction renderPlugins(node, getData) {\n const sec = dom.next(node); // extras section\n plugins.forEach(plugin => {\n const data = getData(plugin.type);\n if (!data) {\n return;\n }\n const el = plugin.section ? sec.querySelector(`.${plugin.type}`) : node;\n if (!el) {\n return;\n }\n const show = plugin(el, data);\n if (typeof show === 'boolean') {\n el.classList.toggle('visible', show);\n el.classList.toggle('hiddent', !show);\n }\n });\n}\n\nfunction render(node, resort) {\n const tsPrev = JSON.parse(node.dataset.timestamp);\n const tsCurr = resort.timestamp;\n\n renderPlugins(node, plugin => {\n if (!resort[plugin] || !tsCurr[plugin]) {\n // no data for a plugin\n return;\n }\n if (tsPrev[plugin] && tsCurr[plugin] <= tsPrev[plugin]) {\n // no new data - skip update\n return;\n }\n return resort[plugin];\n });\n renderOpening(node, node.dataset.opening);\n node.dataset.timestamp = JSON.stringify(tsCurr);\n}\n\nconst MAX = 12; // update every 12th time\n\nexport default function resort(node) {\n let updateCounter = MAX;\n\n function updateTimeToRefresh(counter) {\n const ttr = node.querySelector('.time-to-refresh');\n ttr.innerHTML = counter * 5;\n }\n\n function refresh(now) {\n const id = node.dataset.resort;\n\n if (!node.classList.contains('open')) {\n // skip closed resorts\n return;\n }\n if (now) {\n updateCounter = 0;\n } else {\n updateCounter -= 1;\n }\n\n if (updateCounter > 0) {\n updateTimeToRefresh(updateCounter);\n return;\n }\n updateCounter = MAX;\n updateTimeToRefresh(updateCounter);\n\n fetch(`/api/resort/${id}`)\n .then(res => res.json())\n .then(resort => render(node, resort));\n }\n\n function init() {\n const ds = node.dataset;\n\n updateTimeToRefresh(MAX);\n\n renderPlugins(node, plugin => {\n const data = ds[plugin];\n return data && JSON.parse(data);\n });\n }\n\n return {\n init,\n refresh,\n node\n };\n}\n", "import K from '@pirxpilot/k';\nimport cookie from 'js-cookie';\n\nconst k = K(window);\n\nexport default function state(nodes, st, keys) {\n const cookieName = `resorts-${st}`;\n\n const self = {\n load,\n save,\n update,\n read\n };\n\n function find(id) {\n return nodes.find(n => n.dataset.resort === id);\n }\n\n function read() {\n const text = cookie.get(cookieName);\n return text?.length ? text.split(',') : [];\n }\n\n function write(arr) {\n cookie.set(cookieName, arr.join(','), {\n expires: 30,\n path: '/',\n secure: window.location.protocol === 'https:',\n sameSite: 'strict'\n });\n }\n\n function update() {\n const state = read().reduce((memo, id) => {\n memo[id] = true;\n return memo;\n }, {});\n\n nodes.forEach(({ dataset, classList }) => {\n const id = dataset.resort;\n state[id] = classList.contains(st);\n });\n\n const selected = Object.keys(state).filter(id => state[id]);\n\n write(selected);\n return selected;\n }\n\n function save() {\n const selected = nodes.filter(n => n.classList.contains(st)).map(n => n.dataset.resort);\n\n write(selected);\n return selected;\n }\n\n function load() {\n const selected = read();\n selected.forEach(id => {\n const node = find(id);\n if (node) {\n node.classList.add(st);\n }\n });\n return selected;\n }\n\n function all(on) {\n nodes.forEach(n => n.classList.toggle(st, on));\n update();\n }\n\n if (keys) {\n k(keys.on, all.bind(null, true));\n k(keys.off, all.bind(null, false));\n }\n\n return self;\n}\n", "export default function stats() {\n const pie = document.querySelector('.stats .pie');\n if (!pie) {\n return;\n }\n const data = JSON.parse(pie.dataset.stats);\n let ac = 0;\n const { style } = pie;\n Object.entries(data.percentage).forEach(([key, value]) => style.setProperty(`--${key}`, `${(ac += value)}%`));\n}\n", "export default function tag(node) {\n let count;\n\n function update(c) {\n if (!count) {\n return;\n }\n count.innerHTML = c;\n node.classList.toggle('hidden', c <= 0);\n }\n\n if (node) {\n count = node.querySelector('.count');\n }\n\n return {\n update\n };\n}\n", "export default function debounce(function_, wait = 100, options = {}) {\n\tif (typeof function_ !== 'function') {\n\t\tthrow new TypeError(`Expected the first parameter to be a function, got \\`${typeof function_}\\`.`);\n\t}\n\n\tif (wait < 0) {\n\t\tthrow new RangeError('`wait` must not be negative.');\n\t}\n\n\tif (typeof options === 'boolean') {\n\t\tthrow new TypeError('The `options` parameter must be an object, not a boolean. Use `{immediate: true}` instead.');\n\t}\n\n\tconst {immediate} = options;\n\n\tlet storedContext;\n\tlet storedArguments;\n\tlet timeoutId;\n\tlet timestamp;\n\tlet result;\n\n\tfunction run() {\n\t\tconst callContext = storedContext;\n\t\tconst callArguments = storedArguments;\n\t\tstoredContext = undefined;\n\t\tstoredArguments = undefined;\n\t\tresult = function_.apply(callContext, callArguments);\n\t\treturn result;\n\t}\n\n\tfunction later() {\n\t\tconst last = Date.now() - timestamp;\n\n\t\tif (last < wait && last >= 0) {\n\t\t\ttimeoutId = setTimeout(later, wait - last);\n\t\t} else {\n\t\t\ttimeoutId = undefined;\n\n\t\t\tif (!immediate) {\n\t\t\t\tresult = run();\n\t\t\t}\n\t\t}\n\t}\n\n\tconst debounced = function (...arguments_) {\n\t\tif (\n\t\t\tstoredContext\n\t\t\t&& this !== storedContext\n\t\t\t&& Object.getPrototypeOf(this) === Object.getPrototypeOf(storedContext)\n\t\t) {\n\t\t\tthrow new Error('Debounced method called with different contexts of the same prototype.');\n\t\t}\n\n\t\tstoredContext = this; // eslint-disable-line unicorn/no-this-assignment\n\t\tstoredArguments = arguments_;\n\t\ttimestamp = Date.now();\n\n\t\tconst callNow = immediate && !timeoutId;\n\n\t\tif (!timeoutId) {\n\t\t\ttimeoutId = setTimeout(later, wait);\n\t\t}\n\n\t\tif (callNow) {\n\t\t\tresult = run();\n\t\t\treturn result;\n\t\t}\n\n\t\treturn undefined;\n\t};\n\n\tObject.defineProperty(debounced, 'isPending', {\n\t\tget() {\n\t\t\treturn timeoutId !== undefined;\n\t\t},\n\t});\n\n\tdebounced.clear = () => {\n\t\tif (!timeoutId) {\n\t\t\treturn;\n\t\t}\n\n\t\tclearTimeout(timeoutId);\n\t\ttimeoutId = undefined;\n\t\tstoredContext = undefined;\n\t\tstoredArguments = undefined;\n\t};\n\n\tdebounced.flush = () => {\n\t\tif (!timeoutId) {\n\t\t\treturn;\n\t\t}\n\n\t\tdebounced.trigger();\n\t};\n\n\tdebounced.trigger = () => {\n\t\tresult = run();\n\n\t\tdebounced.clear();\n\t};\n\n\treturn debounced;\n}\n", "import debounce from 'debounce';\n\nfunction notify() {\n const widget = document.querySelector('.widget');\n if (!widget) {\n return;\n }\n window.parent.postMessage(\n {\n height: widget.scrollHeight,\n resort: window.location.pathname.split('/').pop()\n },\n '*'\n );\n}\n\nexport default function postHeight() {\n if (window === window.parent) {\n // we are not embedded - nothing to do\n return;\n }\n notify();\n window.addEventListener('resize', debounce(notify, 300), true);\n}\n", "function registrationHandler({ scope, installing, waiting, active }) {\n console.log('SW', scope);\n\n if (installing) {\n console.log('installing', installing.state);\n }\n if (waiting) {\n console.log('waiting', waiting.state);\n }\n if (active) {\n console.log('active', active.state);\n }\n}\n\nexport default function register(url = '/sw.js') {\n if (navigator.serviceWorker && document.documentElement.hasAttribute('data-service-worker')) {\n return navigator.serviceWorker\n .register(url)\n .then(registrationHandler)\n .catch(reason => console.log('SW registration failed!', reason));\n }\n}\n", "import about from '../about/index.js';\nimport minimax from '../minimax/index.js';\nimport resort from '../resort/index.js';\nimport state from '../state/index.js';\nimport stats from '../stats/index.js';\nimport tag from '../tag/index.js';\nimport height from './height.js';\nimport serviceWorker from './service-worker.js';\n\nserviceWorker();\ninit();\n\nfunction init() {\n const rnodes = Array.from(document.querySelectorAll('.resort'));\n\n const opens = state(rnodes, 'open', {\n on: 'shift + o',\n off: 'shift + x'\n });\n\n const starred = state(rnodes, 'starred');\n const starredTag = tag(document.querySelector('.tags .starred'));\n\n const resorts = rnodes.map(r => resort(r));\n\n resorts.forEach(r => {\n minimax(r.node, '.minimax')\n .state('open')\n .on(open => {\n if (open) {\n r.refresh(true);\n }\n opens.update();\n });\n minimax(r.node, '.star')\n .state('starred')\n .on(() => starredTag.update(starred.update().length));\n r.init();\n });\n window.setInterval(() => resorts.forEach(r => r.refresh()), 5 * 1000);\n about();\n opens.update();\n starredTag.update(starred.load().length);\n\n stats();\n height();\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Emitter", "k", "converter", "state", "stats", "state", "render", "day", "render", "Emitter", "visible", "import_component_emitter", "tag", "Emitter", "render", "init", "render", "resort", "init", "K", "state", "init"]
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
@font-face {
|
|
2
2
|
font-family: "lift-status";
|
|
3
|
-
src: url("/
|
|
3
|
+
src: url("/stylesheets/fonts/OEQfOpxZ4A-lift-status.woff2") format("woff2");
|
|
4
4
|
font-weight: normal;
|
|
5
5
|
font-style: normal;
|
|
6
6
|
}
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
}
|
|
80
80
|
@font-face {
|
|
81
81
|
font-family: "iconvault";
|
|
82
|
-
src: url("/
|
|
82
|
+
src: url("/stylesheets/fonts/qGg5C7akoM-iconvault_forecastfont.woff2") format("woff2");
|
|
83
83
|
font-weight: normal;
|
|
84
84
|
font-style: normal;
|
|
85
85
|
}
|
package/views/layout.jade
CHANGED
|
@@ -11,11 +11,11 @@ mixin liftie-script(name)
|
|
|
11
11
|
- var c = cachify(name + min + '.js', true);
|
|
12
12
|
|
|
13
13
|
script(
|
|
14
|
+
type='module'
|
|
14
15
|
src=staticHost + c.path,
|
|
15
16
|
nonce=cspNonce,
|
|
16
17
|
integrity=staticHost ? c.integrity : undefined,
|
|
17
18
|
crossorigin=staticHost ? 'anonymous' : undefined,
|
|
18
|
-
defer
|
|
19
19
|
)
|
|
20
20
|
|
|
21
21
|
|
|
@@ -37,7 +37,7 @@ html(
|
|
|
37
37
|
head
|
|
38
38
|
title= title
|
|
39
39
|
+description('description')
|
|
40
|
-
meta(name='
|
|
40
|
+
meta(name='mobile-web-app-capable', content='yes')
|
|
41
41
|
meta(name='application-name', content='Liftie')
|
|
42
42
|
meta(name='theme-color', content='#f5f8ff')
|
|
43
43
|
meta(name='viewport', content='width=device-width, initial-scale=1')
|