liftie 4.2.5 → 4.2.6

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "liftie",
3
- "version": "4.2.5",
3
+ "version": "4.2.6",
4
4
  "description": "Clean, simple, easy to read, fast ski resort lift status",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -45,7 +45,7 @@
45
45
  "dynload": "^1.0.2",
46
46
  "el-component": "~2",
47
47
  "errorhandler": "^1.5.0",
48
- "esbuild": "^0.27.1",
48
+ "esbuild": "^0.27.3",
49
49
  "htmlparser2": "~10",
50
50
  "js-cookie": "^3.0.5",
51
51
  "limiter": "~3",
@@ -57,7 +57,7 @@
57
57
  "to-title-case": "^1.0.0"
58
58
  },
59
59
  "devDependencies": {
60
- "@biomejs/biome": "2.3.14",
60
+ "@biomejs/biome": "2.4.0",
61
61
  "@pirxpilot/stylus": "^1.2.0",
62
62
  "commander": "~14",
63
63
  "postcss": "~8",
@@ -1044,7 +1044,7 @@ function visible(el) {
1044
1044
  // node_modules/.pnpm/tiny-pager@2.0.0/node_modules/tiny-pager/index.js
1045
1045
  var import_component_emitter2 = __toESM(require_component_emitter(), 1);
1046
1046
 
1047
- // node_modules/.pnpm/el-component@2.0.2/node_modules/el-component/index.js
1047
+ // node_modules/.pnpm/el-component@2.0.3/node_modules/el-component/index.js
1048
1048
  var voids = /* @__PURE__ */ new Set([
1049
1049
  "area",
1050
1050
  "base",
@@ -1080,12 +1080,13 @@ function xmlTag(tag2, content, attrStr) {
1080
1080
  return text;
1081
1081
  }
1082
1082
  function toStr(tagFn, tagStr, content, attrs) {
1083
+ var _a;
1083
1084
  if (typeof content !== "string") {
1084
1085
  attrs = content;
1085
1086
  content = "";
1086
1087
  }
1087
- attrs = attrs || {};
1088
- let [tag2 = "div", ...classes] = (tagStr == null ? void 0 : tagStr.split(".")) || [];
1088
+ attrs != null ? attrs : attrs = {};
1089
+ let [tag2 = "div", ...classes] = (_a = tagStr == null ? void 0 : tagStr.split(".")) != null ? _a : [];
1089
1090
  if (classes.length) {
1090
1091
  const classesStr = classes.join(" ");
1091
1092
  if (attrs["class"]) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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 + '&deg;F'\n// .conditions= resort.weather.conditions\n// .text= resort.weather.text\n// .notice Forecast by&nbsp;\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}&deg;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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",
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.3/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 + '&deg;F'\n// .conditions= resort.weather.conditions\n// .text= resort.weather.text\n// .notice Forecast by&nbsp;\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}&deg;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 ??= {};\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
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
  }