{"version":3,"file":"SubNavBar-KV_STF-G.js","sources":["../../../node_modules/eventemitter3/index.js","../../../node_modules/subscribe-ui-event/dist-es/lib/supportPassiveEvent.js","../../../node_modules/subscribe-ui-event/dist-es/globalVars.js","../../../node_modules/subscribe-ui-event/dist-es/lib/listen.js","../../../node_modules/subscribe-ui-event/dist-es/AugmentedEvent.js","../../../node_modules/performance-now/lib/performance-now.js","../../../node_modules/raf/index.js","../../../node_modules/subscribe-ui-event/dist-es/lib/rAFThrottle.js","../../../node_modules/subscribe-ui-event/dist-es/constants.js","../../../node_modules/subscribe-ui-event/dist-es/mainEventConnectors.js","../../../node_modules/subscribe-ui-event/dist-es/subscribe.js","../../../node_modules/subscribe-ui-event/index.es.js","../../../node_modules/react-stickynode/node_modules/classnames/index.js","../../../node_modules/shallowequal/index.js","../../../node_modules/react-stickynode/dist/es/Sticky.js","../../../frontend/src/Utils/Types/UI.ts","../../../frontend/src/Components/SubNavBar/SubNavBar.tsx"],"sourcesContent":["'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","let passiveSupported = false; // eslint-disable-line\n\nif (typeof window !== 'undefined') {\n try {\n const options = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line getter-return\n get() {\n passiveSupported = true;\n }\n });\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (err) {} // eslint-disable-line no-empty\n}\nexport default passiveSupported;","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\nimport EventEmitter from 'eventemitter3';\nimport supportPassiveEvent from './lib/supportPassiveEvent';\nexport default {\n connections: {},\n EE: new EventEmitter(),\n enableResizeInfo: false,\n enableScrollInfo: false,\n listeners: {},\n removers: [],\n supportPassiveEvent\n};","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\nimport globalVars from '../globalVars';\nconst {\n supportPassiveEvent\n} = globalVars;\nconst defaultEventOption = {\n capture: false,\n passive: false\n};\n\n/**\n * Cross-browser addEventListener.\n * @method listen\n * @param {Object} target - The target to add event listener.\n * @param {String} eventType - The event type.\n * @param {Function} handler - The event handler.\n * @param {Object} handler - The options object that specifies\n * characteristics about the event listener.\n * @return {Object} The object to be able to remove the handler.\n */\nfunction listen(target, eventType, handler, options) {\n let add = 'addEventListener';\n let remove = 'removeEventListener';\n let type = eventType;\n const eventOptions = supportPassiveEvent ? Object.assign({}, defaultEventOption, options) : false;\n if (!target.addEventListener && target.attachEvent) {\n add = 'attachEvent';\n remove = 'detachEvent';\n type = `on${eventType}`;\n }\n target[add](type, handler, eventOptions);\n return {\n remove() {\n target[remove](eventType, handler);\n }\n };\n}\nexport default listen;","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\nimport globalVars from './globalVars';\nlet resize = {\n // eslint-disable-line prefer-const\n width: 0,\n height: 0\n};\nlet scroll = {\n // eslint-disable-line prefer-const\n delta: 0,\n top: 0\n};\nlet touch = {\n // eslint-disable-line prefer-const\n axisIntention: '',\n startX: 0,\n startY: 0,\n deltaX: 0,\n deltaY: 0\n};\nconst INTENTION_THRESHOLD = 5;\nconst getXY = pos => {\n let t = {\n x: 0,\n y: 0\n }; // eslint-disable-line prefer-const\n const docBody = document.body;\n const docEl = document.documentElement;\n if (pos.pageX || pos.pageY) {\n t.x = pos.pageX;\n t.y = pos.pageY;\n } else {\n t.x = pos.clientX + docBody.scrollLeft + docEl.scrollLeft;\n t.y = pos.clientY + docBody.scrollTop + docEl.scrollTop;\n }\n return t;\n};\n\n/**\n * ArgmentedEvent will hold some global information, such like window scroll postion,\n * so that those information is only calculated once.\n * @param {Object} option - The option for SyntheticEvent\n */\nclass AugmentedEvent {\n constructor() {\n let option = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const mainType = (option.mainType || '').toLowerCase();\n const subType = (option.subType || '').toLowerCase();\n this.mainType = mainType;\n this.subType = subType;\n this.type = mainType + subType.charAt(0).toUpperCase() + subType.slice(1) || '';\n this.scroll = scroll;\n this.resize = resize;\n this.touch = touch;\n }\n update(e) {\n const {\n mainType,\n subType\n } = this;\n const docEl = document.documentElement;\n if (globalVars.enableScrollInfo && (mainType === 'scroll' || mainType === 'touchmove')) {\n const top = docEl.scrollTop + document.body.scrollTop;\n // Prevent delta from being 0\n if (top !== this.scroll.top) {\n this.scroll.delta = top - this.scroll.top;\n this.scroll.top = top;\n }\n }\n if (globalVars.enableResizeInfo && mainType === 'resize') {\n this.resize.width = window.innerWidth || docEl.clientWidth;\n this.resize.height = window.innerHeight || docEl.clientHeight;\n }\n if (globalVars.enableTouchInfo && e.touches && (mainType === 'touchstart' || mainType === 'touchmove' || mainType === 'touchend')) {\n let pos;\n let absX;\n let absY;\n if (mainType === 'touchstart' || subType === 'start') {\n pos = getXY(e.touches[0]);\n this.touch.axisIntention = '';\n this.touch.startX = pos.x;\n this.touch.startY = pos.y;\n this.touch.deltaX = 0;\n this.touch.deltaY = 0;\n } else if (mainType === 'touchmove') {\n pos = getXY(e.touches[0]);\n this.touch.deltaX = pos.x - this.touch.startX;\n this.touch.deltaY = pos.y - this.touch.startY;\n if (this.touch.axisIntention === '') {\n absX = Math.abs(this.touch.deltaX);\n absY = Math.abs(this.touch.deltaY);\n if (absX > INTENTION_THRESHOLD && absX >= absY) {\n this.touch.axisIntention = 'x';\n } else if (absY > INTENTION_THRESHOLD && absY > absX) {\n this.touch.axisIntention = 'y';\n }\n }\n }\n }\n }\n}\nexport default AugmentedEvent;","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\nimport rAF from 'raf';\nconst getTime = Date.now || /* istanbul ignore next */function () {\n return new Date().getTime();\n};\nfunction rAFThrottle(func) {\n let throttle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 15;\n let context;\n let args;\n let last = 0;\n let requestId = 0;\n const later = function () {\n const now = getTime();\n const remaining = throttle - (now - last);\n if (remaining <= 0) {\n last = now;\n requestId = 0;\n func.apply(context, args);\n } else {\n requestId = rAF(later);\n }\n };\n return function throttledFunc() {\n context = this;\n args = arguments; // eslint-disable-line prefer-rest-params\n\n if (!requestId) {\n requestId = rAF(later);\n }\n };\n}\nexport default rAFThrottle;","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\nexport const EVENT_END_DELAY = 100;\nexport const DEFAULT_THROTTLE_RATE = 50;","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\nimport AugmentedEvent from './AugmentedEvent';\nimport globalVars from './globalVars';\nimport listen from './lib/listen';\nimport rAFThrottle from './lib/rAFThrottle';\n\n// constants\nimport { EVENT_END_DELAY } from './constants';\nconst {\n connections,\n EE,\n listeners,\n removers\n} = globalVars;\n\n// global variables\nlet doc;\nlet win;\nlet body;\nlet hashId = 0;\nif (typeof window !== 'undefined') {\n win = window;\n doc = win.document || document;\n body = doc.body;\n}\nfunction getHash(domNode) {\n return domNode.id || `target-id-${hashId++}`; // eslint-disable-line\n}\nfunction noop() {}\nfunction throttle(func, wait) {\n let lastCall = 0;\n return function () {\n const now = Date.now();\n if (now - lastCall >= wait) {\n lastCall = now;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n func.apply(this, args);\n }\n };\n}\n\n/**\n * Connect a throttled event to a throttled main event, and return an event remover.\n * The number of connections to a throttled main event will be kept. If all throttled events\n * are removed, then remove throttled main event.\n * @method connectThrottle\n * @param {String} throttledEvent - A throttled event\n * @param {Function} cb - Callback function\n * @param {Object} ctx - The \"this\"\n * @param {String} throttledMainEvent - A throttled main event\n * @return {Object} An event remover\n */\nfunction connectThrottle(throttledEvent, cb, ctx, throttledMainEvent) {\n EE.on(throttledEvent, cb || noop, ctx);\n throttledMainEvent = throttledMainEvent || throttledEvent;\n connections[throttledMainEvent] = (connections[throttledMainEvent] || 0) + 1;\n return {\n _type: throttledEvent,\n _cb: cb,\n _ctx: ctx,\n unsubscribe: function unsubscribe() {\n if (!this._type) {\n return;\n }\n EE.removeListener(throttledEvent, cb, ctx);\n connections[throttledMainEvent]--;\n if (connections[throttledMainEvent] === 0) {\n listeners[throttledMainEvent].remove();\n listeners[throttledMainEvent] = undefined;\n }\n this._type = undefined;\n this._cb = undefined;\n this._ctx = undefined;\n\n // remove the remover from removers array\n for (let i = removers.length - 1; i >= 0; i--) {\n const remover = removers[i];\n if (remover === this) {\n removers.splice(i, 1);\n break;\n }\n }\n }\n };\n}\n\n/**\n * Connect to event, event start and event end.\n * @method connectContinuousEvent\n * @param {Object} target - The target of a main event, window or document.\n * @param {String} mainEvent - A browser event, like scroll or resize.\n * @param {String} event - A subscribe event.\n * @param {Object} eventOptions - An options pass to event listener\n */\nfunction connectContinuousEvent(target, mainEvent, event) {\n return function throttleEvent(throttleRate, cb, options, eventOptions) {\n const context = options.context;\n const domTarget = options.target;\n const domId = domTarget && getHash(domTarget);\n const targetPart = domId ? `:${domId}` : '';\n const throttledStartEvent = `${mainEvent}Start:${throttleRate}${targetPart}`;\n const throttledEndEvent = `${mainEvent}End:${throttleRate}${targetPart}`;\n const throttledMainEvent = `${mainEvent}:${throttleRate}${targetPart}`;\n const throttledEvent = `${event}:${throttleRate}${targetPart}`;\n const remover = connectThrottle(throttledEvent, cb, context, throttledMainEvent);\n removers.push(remover);\n if (listeners[throttledMainEvent]) {\n return remover;\n }\n const ae = {\n start: new AugmentedEvent({\n mainType: mainEvent,\n subType: 'start'\n }),\n // start\n main: new AugmentedEvent({\n mainType: mainEvent\n }),\n // main\n end: new AugmentedEvent({\n mainType: mainEvent,\n subType: 'end'\n })\n };\n\n // No throttle for throttleRate = 0\n // end\n if (throttleRate === 'raf') {\n throttleRate = 16; // Set as a number for setTimeout later.\n handler = rAFThrottle(handler);\n } else if (throttleRate > 0) {\n handler = throttle(handler, throttleRate);\n }\n let timer;\n function endCallback(e) {\n ae.end.update(e);\n EE.emit(throttledEndEvent, e, ae.end);\n timer = null;\n }\n function handler(e) {\n if (!timer) {\n ae.start.update(e);\n EE.emit(throttledStartEvent, e, ae.start);\n }\n clearTimeout(timer);\n ae.main.update(e);\n EE.emit(throttledMainEvent, e, ae.main);\n timer = setTimeout(endCallback.bind(null, e), throttleRate + EVENT_END_DELAY);\n }\n listeners[throttledMainEvent] = listen(domTarget || target, mainEvent, handler, eventOptions);\n return remover;\n };\n}\nfunction connectDiscreteEvent(target, event) {\n return function throttleEvent(throttleRate, cb, options, eventOptions) {\n const context = options.context;\n const domTarget = options.target;\n const domId = domTarget && getHash(domTarget);\n\n // no throttling for discrete event\n const throttledEvent = `${event}:0${domId ? `:${domId}` : ''}`;\n const remover = connectThrottle(throttledEvent, cb, context);\n removers.push(remover);\n if (listeners[throttledEvent]) {\n return remover;\n }\n const ae = new AugmentedEvent({\n mainType: event\n });\n function handler(e) {\n ae.update(e);\n EE.emit(throttledEvent, e, ae);\n }\n listeners[throttledEvent] = listen(domTarget || target, event, handler, eventOptions);\n return remover;\n };\n}\nexport default {\n scrollStart: connectContinuousEvent(win, 'scroll', 'scrollStart'),\n scrollEnd: connectContinuousEvent(win, 'scroll', 'scrollEnd'),\n scroll: connectContinuousEvent(win, 'scroll', 'scroll'),\n resizeStart: connectContinuousEvent(win, 'resize', 'resizeStart'),\n resizeEnd: connectContinuousEvent(win, 'resize', 'resizeEnd'),\n resize: connectContinuousEvent(win, 'resize', 'resize'),\n visibilitychange: connectDiscreteEvent(doc, 'visibilitychange'),\n touchmoveStart: connectContinuousEvent(body, 'touchmove', 'touchmoveStart'),\n touchmoveEnd: connectContinuousEvent(body, 'touchmove', 'touchmoveEnd'),\n touchmove: connectContinuousEvent(body, 'touchmove', 'touchmove'),\n touchstart: connectDiscreteEvent(body, 'touchstart'),\n touchend: connectDiscreteEvent(body, 'touchend')\n};","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\nimport globalVars from './globalVars';\nimport mainEventConnectors from './mainEventConnectors';\n\n// constants\nimport { DEFAULT_THROTTLE_RATE } from './constants';\n\n/**\n * Subscribe to UI events.\n * @method subscribe\n * @param {String} type - The type of event.\n * @param {Function} cb - The callback function.\n * @param {Object} options.context - The caller.\n * @param {Number} options.throttleRate - The amount of time for throttling.\n * @param {Boolean} options.useRAF - Use rAF for throttling if true.\n * @param {Object} options.eventOptions - Option to pass to event listener\n * @return {Object} The object with unsubscribe function.\n */\nfunction subscribe(type, cb) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const useRAF = options.useRAF || false;\n let throttleRate = parseInt(options.throttleRate, 10);\n const eventOptions = options.eventOptions;\n if (isNaN(throttleRate)) {\n throttleRate = DEFAULT_THROTTLE_RATE;\n }\n if (useRAF) {\n throttleRate = 'raf';\n }\n\n // once those variables enabled, then never disabled.\n globalVars.enableScrollInfo = globalVars.enableScrollInfo || options.enableScrollInfo || false;\n globalVars.enableResizeInfo = globalVars.enableResizeInfo || options.enableResizeInfo || false;\n globalVars.enableTouchInfo = globalVars.enableTouchInfo || options.enableTouchInfo || false;\n return mainEventConnectors[type](throttleRate, cb, options, eventOptions);\n}\nexport default subscribe;","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\nimport listenLib from './dist-es/lib/listen';\nimport subscribeLib from './dist-es/subscribe';\nimport unsubscribeLib from './dist-es/unsubscribe';\n\nvar IS_CLIENT = typeof window !== 'undefined';\n\nfunction warn() {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n 'Warning: the function is client-side only, does not work on server side',\n ); // eslint-disable-line\n }\n}\n\nexport var listen = IS_CLIENT ? listenLib : warn;\nexport var subscribe = IS_CLIENT ? subscribeLib : warn;\nexport var unsubscribe = IS_CLIENT ? unsubscribeLib : warn;\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\n'use strict';\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { subscribe } from 'subscribe-ui-event';\nimport classNames from 'classnames';\nimport shallowEqual from 'shallowequal';\n\n// constants\nconst STATUS_ORIGINAL = 0; // The default status, locating at the original position.\nconst STATUS_RELEASED = 1; // The released status, locating at somewhere on document but not default one.\nconst STATUS_FIXED = 2; // The sticky status, locating fixed to the top or the bottom of screen.\n\nlet TRANSFORM_PROP = 'transform';\n\n// global variable for all instances\nlet doc;\nlet docBody;\nlet docEl;\nlet canEnableTransforms = true; // Use transform by default, so no Sticky on lower-end browser when no Modernizr\nlet M;\nlet scrollDelta = 0;\nlet win;\nlet winHeight = -1;\nclass Sticky extends Component {\n constructor(props, context) {\n super(props, context);\n this.handleResize = this.handleResize.bind(this);\n this.handleScroll = this.handleScroll.bind(this);\n this.handleScrollStart = this.handleScrollStart.bind(this);\n this.delta = 0;\n this.stickyTop = 0;\n this.stickyBottom = 0;\n this.frozen = false;\n this.skipNextScrollEvent = false;\n this.scrollTop = -1;\n this.bottomBoundaryTarget;\n this.topTarget;\n this.subscribers;\n this.state = {\n top: 0,\n // A top offset from viewport top where Sticky sticks to when scrolling up\n bottom: 0,\n // A bottom offset from viewport top where Sticky sticks to when scrolling down\n width: 0,\n // Sticky width\n height: 0,\n // Sticky height\n x: 0,\n // The original x of Sticky\n y: 0,\n // The original y of Sticky\n topBoundary: 0,\n // The top boundary on document\n bottomBoundary: Infinity,\n // The bottom boundary on document\n status: STATUS_ORIGINAL,\n // The Sticky status\n pos: 0,\n // Real y-axis offset for rendering position-fixed and position-relative\n activated: false // once browser info is available after mounted, it becomes true to avoid checksum error\n };\n }\n getTargetHeight(target) {\n return target && target.offsetHeight || 0;\n }\n getTopPosition(top) {\n // a top argument can be provided to override reading from the props\n top = top || this.props.top || 0;\n if (typeof top === 'string') {\n if (!this.topTarget) {\n this.topTarget = doc.querySelector(top);\n }\n top = this.getTargetHeight(this.topTarget);\n }\n return top;\n }\n getTargetBottom(target) {\n if (!target) {\n return -1;\n }\n const rect = target.getBoundingClientRect();\n return this.scrollTop + rect.bottom;\n }\n getBottomBoundary(bottomBoundary) {\n // a bottomBoundary can be provided to avoid reading from the props\n let boundary = bottomBoundary || this.props.bottomBoundary;\n\n // TODO, bottomBoundary was an object, depricate it later.\n if (typeof boundary === 'object') {\n boundary = boundary.value || boundary.target || 0;\n }\n if (typeof boundary === 'string') {\n if (!this.bottomBoundaryTarget) {\n this.bottomBoundaryTarget = doc.querySelector(boundary);\n }\n boundary = this.getTargetBottom(this.bottomBoundaryTarget);\n }\n return boundary && boundary > 0 ? boundary : Infinity;\n }\n reset() {\n this.setState({\n status: STATUS_ORIGINAL,\n pos: 0\n });\n }\n release(pos) {\n this.setState({\n status: STATUS_RELEASED,\n pos: pos - this.state.y\n });\n }\n fix(pos) {\n this.setState({\n status: STATUS_FIXED,\n pos: pos\n });\n }\n\n /**\n * Update the initial position, width, and height. It should update whenever children change.\n * @param {Object} options optional top and bottomBoundary new values\n */\n updateInitialDimension(options) {\n options = options || {};\n if (!this.outerElement || !this.innerElement) {\n return;\n }\n const outerRect = this.outerElement.getBoundingClientRect();\n const innerRect = this.innerElement.getBoundingClientRect();\n const width = outerRect.width || outerRect.right - outerRect.left;\n const height = innerRect.height || innerRect.bottom - innerRect.top;\n const outerY = outerRect.top + this.scrollTop;\n this.setState({\n top: this.getTopPosition(options.top),\n bottom: Math.min(this.state.top + height, winHeight),\n width,\n height,\n x: outerRect.left,\n y: outerY,\n bottomBoundary: this.getBottomBoundary(options.bottomBoundary),\n topBoundary: outerY\n });\n }\n handleResize(e, ae) {\n if (this.props.shouldFreeze()) {\n return;\n }\n winHeight = ae.resize.height;\n this.updateInitialDimension();\n this.update();\n }\n handleScrollStart(e, ae) {\n this.frozen = this.props.shouldFreeze();\n if (this.frozen) {\n return;\n }\n if (this.scrollTop === ae.scroll.top) {\n // Scroll position hasn't changed,\n // do nothing\n this.skipNextScrollEvent = true;\n } else {\n this.scrollTop = ae.scroll.top;\n this.updateInitialDimension();\n }\n }\n handleScroll(e, ae) {\n // Scroll doesn't need to be handled\n if (this.skipNextScrollEvent) {\n this.skipNextScrollEvent = false;\n return;\n }\n scrollDelta = ae.scroll.delta;\n this.scrollTop = ae.scroll.top;\n this.update();\n }\n\n /**\n * Update Sticky position.\n */\n update() {\n var disabled = !this.props.enabled || this.state.bottomBoundary - this.state.topBoundary <= this.state.height || this.state.width === 0 && this.state.height === 0;\n if (disabled) {\n if (this.state.status !== STATUS_ORIGINAL) {\n this.reset();\n }\n return;\n }\n var delta = scrollDelta;\n // \"top\" and \"bottom\" are the positions that this.state.top and this.state.bottom project\n // on document from viewport.\n var top = this.scrollTop + this.state.top;\n var bottom = this.scrollTop + this.state.bottom;\n\n // There are 2 principles to make sure Sticky won't get wrong so much:\n // 1. Reset Sticky to the original postion when \"top\" <= topBoundary\n // 2. Release Sticky to the bottom boundary when \"bottom\" >= bottomBoundary\n if (top <= this.state.topBoundary) {\n // #1\n this.reset();\n } else if (bottom >= this.state.bottomBoundary) {\n // #2\n this.stickyBottom = this.state.bottomBoundary;\n this.stickyTop = this.stickyBottom - this.state.height;\n this.release(this.stickyTop);\n } else {\n if (this.state.height > winHeight - this.state.top) {\n // In this case, Sticky is higher then viewport minus top offset\n switch (this.state.status) {\n case STATUS_ORIGINAL:\n this.release(this.state.y);\n this.stickyTop = this.state.y;\n this.stickyBottom = this.stickyTop + this.state.height;\n // Commentting out \"break\" is on purpose, because there is a chance to transit to FIXED\n // from ORIGINAL when calling window.scrollTo().\n // break;\n /* eslint-disable-next-line no-fallthrough */\n case STATUS_RELEASED:\n // If \"top\" and \"bottom\" are inbetween stickyTop and stickyBottom, then Sticky is in\n // RELEASE status. Otherwise, it changes to FIXED status, and its bottom sticks to\n // viewport bottom when scrolling down, or its top sticks to viewport top when scrolling up.\n this.stickyBottom = this.stickyTop + this.state.height;\n if (delta > 0 && bottom > this.stickyBottom) {\n this.fix(this.state.bottom - this.state.height);\n } else if (delta < 0 && top < this.stickyTop) {\n this.fix(this.state.top);\n }\n break;\n case STATUS_FIXED:\n var toRelease = true;\n var pos = this.state.pos;\n var height = this.state.height;\n // In regular cases, when Sticky is in FIXED status,\n // 1. it's top will stick to the screen top,\n // 2. it's bottom will stick to the screen bottom,\n // 3. if not the cases above, then it's height gets changed\n if (delta > 0 && pos === this.state.top) {\n // case 1, and scrolling down\n this.stickyTop = top - delta;\n this.stickyBottom = this.stickyTop + height;\n } else if (delta < 0 && pos === this.state.bottom - height) {\n // case 2, and scrolling up\n this.stickyBottom = bottom - delta;\n this.stickyTop = this.stickyBottom - height;\n } else if (pos !== this.state.bottom - height && pos !== this.state.top) {\n // case 3\n // This case only happens when Sticky's bottom sticks to the screen bottom and\n // its height gets changed. Sticky should be in RELEASE status and update its\n // sticky bottom by calculating how much height it changed.\n const deltaHeight = pos + height - this.state.bottom;\n this.stickyBottom = bottom - delta + deltaHeight;\n this.stickyTop = this.stickyBottom - height;\n } else {\n toRelease = false;\n }\n if (toRelease) {\n this.release(this.stickyTop);\n }\n break;\n }\n } else {\n // In this case, Sticky is shorter then viewport minus top offset\n // and will always fix to the top offset of viewport\n this.fix(this.state.top);\n }\n }\n this.delta = delta;\n }\n componentDidUpdate(prevProps, prevState) {\n if (prevState.status !== this.state.status && this.props.onStateChange) {\n this.props.onStateChange({\n status: this.state.status\n });\n }\n\n // check if we are up-to-date, is triggered in case of scroll restoration\n if (this.state.top !== prevState.top) {\n this.updateInitialDimension();\n this.update();\n }\n const arePropsChanged = !shallowEqual(this.props, prevProps);\n if (arePropsChanged) {\n // if the props for enabling are toggled, then trigger the update or reset depending on the current props\n if (prevProps.enabled !== this.props.enabled) {\n if (this.props.enabled) {\n this.setState({\n activated: true\n }, () => {\n this.updateInitialDimension();\n this.update();\n });\n } else {\n this.setState({\n activated: false\n }, () => {\n this.reset();\n });\n }\n }\n // if the top or bottomBoundary props were changed, then trigger the update\n else if (prevProps.top !== this.props.top || prevProps.bottomBoundary !== this.props.bottomBoundary) {\n this.updateInitialDimension();\n this.update();\n }\n }\n }\n componentWillUnmount() {\n const subscribers = this.subscribers || [];\n for (var i = subscribers.length - 1; i >= 0; i--) {\n this.subscribers[i].unsubscribe();\n }\n }\n componentDidMount() {\n // Only initialize the globals if this is the first\n // time this component type has been mounted\n if (!win) {\n win = window;\n doc = document;\n docEl = doc.documentElement;\n docBody = doc.body;\n winHeight = win.innerHeight || docEl.clientHeight;\n M = window.Modernizr;\n // No Sticky on lower-end browser when no Modernizr\n if (M && M.prefixed) {\n canEnableTransforms = M.csstransforms3d;\n TRANSFORM_PROP = M.prefixed('transform');\n }\n }\n\n // when mount, the scrollTop is not necessary on the top\n this.scrollTop = docBody.scrollTop + docEl.scrollTop;\n if (this.props.enabled) {\n this.setState({\n activated: true\n });\n this.updateInitialDimension();\n this.update();\n }\n // bind the listeners regardless if initially enabled - allows the component to toggle sticky functionality\n this.subscribers = [subscribe('scrollStart', this.handleScrollStart.bind(this), {\n useRAF: true\n }), subscribe('scroll', this.handleScroll.bind(this), {\n useRAF: true,\n enableScrollInfo: true\n }), subscribe('resize', this.handleResize.bind(this), {\n enableResizeInfo: true\n })];\n }\n translate(style, pos) {\n const enableTransforms = canEnableTransforms && this.props.enableTransforms;\n if (enableTransforms && this.state.activated) {\n style[TRANSFORM_PROP] = 'translate3d(0,' + Math.round(pos) + 'px,0)';\n } else {\n style.top = pos + 'px';\n }\n }\n shouldComponentUpdate(nextProps, nextState) {\n return !this.props.shouldFreeze() && !(shallowEqual(this.props, nextProps) && shallowEqual(this.state, nextState));\n }\n render() {\n // TODO, \"overflow: auto\" prevents collapse, need a good way to get children height\n const innerStyle = {\n position: this.state.status === STATUS_FIXED ? 'fixed' : 'relative',\n top: this.state.status === STATUS_FIXED ? '0px' : '',\n zIndex: this.props.innerZ\n };\n const outerStyle = {};\n\n // always use translate3d to enhance the performance\n this.translate(innerStyle, this.state.pos);\n if (this.state.status !== STATUS_ORIGINAL) {\n innerStyle.width = this.state.width + 'px';\n outerStyle.height = this.state.height + 'px';\n }\n const outerClasses = classNames('sticky-outer-wrapper', this.props.className, {\n [this.props.activeClass]: this.state.status === STATUS_FIXED,\n [this.props.releasedClass]: this.state.status === STATUS_RELEASED\n });\n const innerClasses = classNames('sticky-inner-wrapper', this.props.innerClass, {\n [this.props.innerActiveClass]: this.state.status === STATUS_FIXED\n });\n const children = this.props.children;\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: outer => {\n this.outerElement = outer;\n },\n className: outerClasses,\n style: outerStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: inner => {\n this.innerElement = inner;\n },\n className: innerClasses,\n style: innerStyle\n }, typeof children === 'function' ? children({\n status: this.state.status\n }) : children));\n }\n}\nSticky.displayName = 'Sticky';\nSticky.defaultProps = {\n shouldFreeze: function () {\n return false;\n },\n enabled: true,\n top: 0,\n bottomBoundary: 0,\n enableTransforms: true,\n activeClass: 'active',\n releasedClass: 'released',\n onStateChange: null,\n innerClass: '',\n innerActiveClass: ''\n};\n\n/**\n * @param {Bool} enabled A switch to enable or disable Sticky.\n * @param {String/Number} top A top offset px for Sticky. Could be a selector representing a node\n * whose height should serve as the top offset.\n * @param {String/Number} bottomBoundary A bottom boundary px on document where Sticky will stop.\n * Could be a selector representing a node whose bottom should serve as the bottom boudary.\n */\nSticky.propTypes = {\n children: PropTypes.element,\n enabled: PropTypes.bool,\n top: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n bottomBoundary: PropTypes.oneOfType([PropTypes.object,\n // TODO, may remove\n PropTypes.string, PropTypes.number]),\n enableTransforms: PropTypes.bool,\n activeClass: PropTypes.string,\n releasedClass: PropTypes.string,\n innerClass: PropTypes.string,\n innerActiveClass: PropTypes.string,\n className: PropTypes.string,\n onStateChange: PropTypes.func,\n shouldFreeze: PropTypes.func,\n innerZ: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nSticky.STATUS_ORIGINAL = STATUS_ORIGINAL;\nSticky.STATUS_RELEASED = STATUS_RELEASED;\nSticky.STATUS_FIXED = STATUS_FIXED;\nexport default Sticky;","import { useTheme } from '@mui/material/styles';\n\nimport useWidth from '../../Hooks/useWidth';\n\nexport const useNavBarHeight = () => {\n const theme = useTheme();\n const isMobile = useWidth('down', 'sm');\n\n return isMobile ? 0 : theme.mixins.toolbar['@media (min-width:600px)'].minHeight;\n};\n","import React from 'react';\nimport { Toolbar } from '@mui/material';\nimport { styled } from '@mui/material/styles';\nimport Sticky from 'react-stickynode';\n\nimport { useNavBarHeight } from '../../Utils/Types/UI';\n\nexport const FOOTER_HEIGHT = 65;\nexport const MOBILE_FOOTER_HEIGHT = 155;\n\nconst StyledContainer = styled('div')(({ theme: { breakpoints, mixins, palette } }: any) => ({\n backgroundColor: palette.grey[50],\n display: 'flex',\n flexDirection: 'column',\n minHeight: `calc(100vh - ${mixins.toolbar['@media (min-width:600px)'].minHeight}px - ${FOOTER_HEIGHT}px)`,\n [breakpoints.down('xs')]: {\n minHeight: `calc(100vh - ${mixins.toolbar.minHeight}px - ${MOBILE_FOOTER_HEIGHT}px)`,\n },\n}));\n\nconst StyledSticky = styled(Sticky)(({ theme: { zIndex } }: any) => ({\n '& .sticky-inner-wrapper': {\n zIndex: zIndex.appBar - 1,\n },\n}));\n\nconst StyledToolbar = styled(Toolbar)(({ theme: { shadows, spacing } }: any) => ({\n backgroundColor: 'white',\n boxShadow: shadows[1],\n paddingTop: spacing(2),\n paddingBottom: spacing(2),\n}));\n\nfunction SubNavBar({ navbar, children }: any) {\n return (\n \n \n {navbar}\n \n {children}\n \n );\n}\n\nexport default SubNavBar;\n"],"names":["has","prefix","Events","EE","fn","context","once","addListener","emitter","event","listener","evt","clearEvent","EventEmitter","names","events","name","handlers","i","l","ee","listeners","a1","a2","a3","a4","a5","len","args","length","j","module","passiveSupported","options","globalVars","supportPassiveEvent","defaultEventOption","listen","target","eventType","handler","add","remove","type","eventOptions","resize","scroll","touch","INTENTION_THRESHOLD","getXY","pos","t","docBody","docEl","AugmentedEvent","option","mainType","subType","top","absX","absY","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","performanceNowModule","hr","this","now","require$$0","root","global","vendors","suffix","raf","caf","last","id","queue","frameDuration","callback","_now","next","cp","e","handle","rafModule","object","getTime","rAFThrottle","func","throttle","requestId","later","rAF","EVENT_END_DELAY","DEFAULT_THROTTLE_RATE","connections","removers","doc","win","body","hashId","getHash","domNode","noop","wait","lastCall","_len","_key","connectThrottle","throttledEvent","cb","ctx","throttledMainEvent","connectContinuousEvent","mainEvent","throttleRate","domTarget","domId","targetPart","throttledStartEvent","throttledEndEvent","remover","ae","timer","endCallback","connectDiscreteEvent","mainEventConnectors","subscribe","useRAF","IS_CLIENT","warn","subscribeLib","hasOwn","classNames","classes","arg","argType","inner","key","shallowequal","objA","objB","compare","compareContext","ret","keysA","keysB","bHasOwnProperty","idx","valueA","valueB","STATUS_ORIGINAL","STATUS_RELEASED","STATUS_FIXED","TRANSFORM_PROP","canEnableTransforms","M","scrollDelta","winHeight","Sticky","Component","props","rect","bottomBoundary","boundary","outerRect","innerRect","width","height","outerY","disabled","delta","bottom","toRelease","deltaHeight","prevProps","prevState","shallowEqual","subscribers","style","nextProps","nextState","innerStyle","outerStyle","outerClasses","innerClasses","children","React","outer","PropTypes","useNavBarHeight","theme","useTheme","isMobile","useWidth","mixins","toolbar","minHeight","FOOTER_HEIGHT","MOBILE_FOOTER_HEIGHT","StyledContainer","styled","_ref","_ref$theme","breakpoints","palette","_defineProperty","backgroundColor","grey","display","flexDirection","concat","down","StyledSticky","_ref3","zIndex","appBar","StyledToolbar","Toolbar","_ref4","_ref4$theme","shadows","spacing","boxShadow","paddingTop","paddingBottom","SubNavBar","_ref5","navbar","createElement","disableGutters"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]}