mirror of
https://github.com/flarum/framework.git
synced 2024-12-05 17:13:38 +08:00
1 line
675 KiB
Plaintext
1 line
675 KiB
Plaintext
{"version":3,"sources":["webpack://@flarum/core/webpack/bootstrap","webpack://@flarum/core/./admin.ts","webpack://@flarum/core/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://@flarum/core/./node_modules/zepto/dist/zepto.js","webpack://@flarum/core/./node_modules/classNames/index.js","webpack://@flarum/core/./node_modules/dayjs/dayjs.min.js","webpack://@flarum/core/./node_modules/m.attrs.bidi/bidi.js","webpack://@flarum/core/./node_modules/mithril/index.js","webpack://@flarum/core/./node_modules/mousetrap/mousetrap.js","webpack://@flarum/core/./node_modules/bootstrap/js/dropdown.js","webpack://@flarum/core/./node_modules/bootstrap/js/transition.js","webpack://@flarum/core/./node_modules/dayjs/plugin/localizedFormat.js","webpack://@flarum/core/./node_modules/dayjs/plugin/relativeTime.js","webpack://@flarum/core/./node_modules/mousetrap/mousetrap.js-exposed","webpack://@flarum/core/./node_modules/classNames/index.js-exposed","webpack://@flarum/core/./node_modules/dayjs/dayjs.min.js-exposed","webpack://@flarum/core/./node_modules/zepto/dist/zepto.js-exposed","webpack://@flarum/core/./node_modules/mithril/index.js-exposed","webpack://@flarum/core/./node_modules/m.attrs.bidi/bidi.js-exposed","webpack://@flarum/core/./node_modules/dayjs/dayjs.min.js-exposed?da0f","webpack://@flarum/core/./node_modules/hc-sticky/dist/hc-sticky.js","webpack://@flarum/core/./node_modules/jump.js/dist/jump.module.js","webpack://@flarum/core/./node_modules/mithril/api/mount-redraw.js","webpack://@flarum/core/./node_modules/mithril/api/router.js","webpack://@flarum/core/./node_modules/mithril/hyperscript.js","webpack://@flarum/core/./node_modules/mithril/mount-redraw.js","webpack://@flarum/core/./node_modules/mithril/pathname/assign.js","webpack://@flarum/core/./node_modules/mithril/pathname/build.js","webpack://@flarum/core/./node_modules/mithril/pathname/compileTemplate.js","webpack://@flarum/core/./node_modules/mithril/pathname/parse.js","webpack://@flarum/core/./node_modules/mithril/promise/polyfill.js","webpack://@flarum/core/./node_modules/mithril/promise/promise.js","webpack://@flarum/core/./node_modules/mithril/querystring/build.js","webpack://@flarum/core/./node_modules/mithril/querystring/parse.js","webpack://@flarum/core/./node_modules/mithril/render.js","webpack://@flarum/core/./node_modules/mithril/render/fragment.js","webpack://@flarum/core/./node_modules/mithril/render/hyperscript.js","webpack://@flarum/core/./node_modules/mithril/render/hyperscriptVnode.js","webpack://@flarum/core/./node_modules/mithril/render/render.js","webpack://@flarum/core/./node_modules/mithril/render/trust.js","webpack://@flarum/core/./node_modules/mithril/render/vnode.js","webpack://@flarum/core/./node_modules/mithril/request.js","webpack://@flarum/core/./node_modules/mithril/request/request.js","webpack://@flarum/core/./node_modules/mithril/route.js","webpack://@flarum/core/./node_modules/mithril/stream.js","webpack://@flarum/core/./node_modules/mithril/stream/stream.js","webpack://@flarum/core/../../src/utils/isBrowser.js","webpack://@flarum/core/../../src/utils/debounce.js","webpack://@flarum/core/../../src/utils/isFunction.js","webpack://@flarum/core/../../src/utils/getStyleComputedProperty.js","webpack://@flarum/core/../../src/utils/getParentNode.js","webpack://@flarum/core/../../src/utils/getScrollParent.js","webpack://@flarum/core/../../src/utils/isIE.js","webpack://@flarum/core/../../src/utils/getOffsetParent.js","webpack://@flarum/core/../../src/utils/isOffsetContainer.js","webpack://@flarum/core/../../src/utils/getRoot.js","webpack://@flarum/core/../../src/utils/findCommonOffsetParent.js","webpack://@flarum/core/../../src/utils/getScroll.js","webpack://@flarum/core/../../src/utils/includeScroll.js","webpack://@flarum/core/../../src/utils/getBordersSize.js","webpack://@flarum/core/../../src/utils/getWindowSizes.js","webpack://@flarum/core/../../src/utils/getClientRect.js","webpack://@flarum/core/../../src/utils/getBoundingClientRect.js","webpack://@flarum/core/../../src/utils/getOffsetRectRelativeToArbitraryNode.js","webpack://@flarum/core/../../src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","webpack://@flarum/core/../../src/utils/isFixed.js","webpack://@flarum/core/../../src/utils/getFixedPositionOffsetParent.js","webpack://@flarum/core/../../src/utils/getBoundaries.js","webpack://@flarum/core/../../src/utils/computeAutoPlacement.js","webpack://@flarum/core/../../src/utils/getReferenceOffsets.js","webpack://@flarum/core/../../src/utils/getOuterSizes.js","webpack://@flarum/core/../../src/utils/getOppositePlacement.js","webpack://@flarum/core/../../src/utils/getPopperOffsets.js","webpack://@flarum/core/../../src/utils/find.js","webpack://@flarum/core/../../src/utils/findIndex.js","webpack://@flarum/core/../../src/utils/runModifiers.js","webpack://@flarum/core/../../src/methods/update.js","webpack://@flarum/core/../../src/utils/isModifierEnabled.js","webpack://@flarum/core/../../src/utils/getSupportedPropertyName.js","webpack://@flarum/core/../../src/methods/destroy.js","webpack://@flarum/core/../../src/utils/getWindow.js","webpack://@flarum/core/../../src/utils/setupEventListeners.js","webpack://@flarum/core/../../src/methods/enableEventListeners.js","webpack://@flarum/core/../../src/utils/removeEventListeners.js","webpack://@flarum/core/../../src/methods/disableEventListeners.js","webpack://@flarum/core/../../src/utils/isNumeric.js","webpack://@flarum/core/../../src/utils/setStyles.js","webpack://@flarum/core/../../src/utils/setAttributes.js","webpack://@flarum/core/../../src/modifiers/applyStyle.js","webpack://@flarum/core/../../src/utils/getRoundedOffsets.js","webpack://@flarum/core/../../src/modifiers/computeStyle.js","webpack://@flarum/core/../../src/utils/isModifierRequired.js","webpack://@flarum/core/../../src/modifiers/arrow.js","webpack://@flarum/core/../../src/utils/getOppositeVariation.js","webpack://@flarum/core/../../src/methods/placements.js","webpack://@flarum/core/../../src/utils/clockwise.js","webpack://@flarum/core/../../src/modifiers/flip.js","webpack://@flarum/core/../../src/modifiers/keepTogether.js","webpack://@flarum/core/../../src/modifiers/offset.js","webpack://@flarum/core/../../src/modifiers/preventOverflow.js","webpack://@flarum/core/../../src/modifiers/shift.js","webpack://@flarum/core/../../src/modifiers/hide.js","webpack://@flarum/core/../../src/modifiers/inner.js","webpack://@flarum/core/../../src/modifiers/index.js","webpack://@flarum/core/../../src/methods/defaults.js","webpack://@flarum/core/../../src/index.js","webpack://@flarum/core/./node_modules/process/browser.js","webpack://@flarum/core/./node_modules/setimmediate/setImmediate.js","webpack://@flarum/core/./node_modules/timers-browserify/main.js","webpack://@flarum/core/../../../popper/src/utils/isFunction.js","webpack://@flarum/core/(webpack)/buildin/amd-options.js","webpack://@flarum/core/(webpack)/buildin/global.js","webpack://@flarum/core/(webpack)/buildin/harmony-module.js","webpack://@flarum/core/./node_modules/zepto/src/data.js","webpack://@flarum/core/./node_modules/zepto/src/fx.js","webpack://@flarum/core/./node_modules/zepto/src/fx_methods.js","webpack://@flarum/core/./node_modules/zepto/src/selector.js","webpack://@flarum/core/./src/common/index.ts","webpack://@flarum/core/./src/common/utils/patchMithril.ts","webpack://@flarum/core/./src/common/utils/patchZepto.ts","webpack://@flarum/core/external \"m\""],"names":["_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","global","factory","define","window","Zepto","undefined","$","classList","emptyArray","concat","filter","slice","document","elementDisplay","classCache","cssNumber","fragmentRE","singleTagRE","tagExpanderRE","rootNodeRE","capitalRE","methodAttributes","adjacencyOperators","table","createElement","tableRow","containers","readyRE","simpleSelectorRE","class2type","toString","zepto","camelize","uniq","tempParent","propMap","isArray","Array","object","matches","element","selector","nodeType","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","match","parent","parentNode","temp","appendChild","qsa","indexOf","removeChild","type","obj","String","isFunction","value","isWindow","isDocument","DOCUMENT_NODE","isObject","isPlainObject","getPrototypeOf","likeArray","compact","array","item","flatten","fn","str","replace","chr","toUpperCase","dasherize","toLowerCase","idx","classRE","name","RegExp","maybeAddPx","defaultDisplay","nodeName","display","body","getComputedStyle","getPropertyValue","children","map","childNodes","node","Z","dom","len","fragment","html","properties","nodes","container","test","$1","innerHTML","each","attr","isZ","init","context","trim","find","ready","extend","deep","args","shift","forEach","arg","found","maybeID","maybeClass","nameOnly","isSimple","getElementById","getElementsByClassName","getElementsByTagName","querySelectorAll","filtered","contains","documentElement","funcArg","payload","setAttribute","removeAttribute","className","klass","svg","baseVal","deserializeValue","parseJSON","e","isEmptyObject","isNumeric","val","num","Number","isNaN","isFinite","inArray","elem","camelCase","uuid","support","expr","noop","elements","callback","values","push","grep","JSON","parse","split","constructor","reduce","sort","splice","toArray","el","readyState","addEventListener","get","size","remove","every","not","add","is","excludes","has","eq","first","last","result","$this","some","closest","collection","_","parents","ancestors","pluck","contents","contentDocument","siblings","child","empty","property","show","style","replaceWith","newContent","before","wrap","structure","func","clone","index","wrapAll","cloneNode","append","wrapInner","self","unwrap","hide","css","toggle","setting","prev","next","originHtml","text","newText","textContent","join","getAttribute","removeAttr","attribute","prop","removeProp","data","attrName","multiple","selected","offset","coordinates","coords","parentOffset","offsetParent","props","top","left","getBoundingClientRect","pageXOffset","pageYOffset","width","Math","round","height","computedStyle","removeProperty","cssText","hasClass","addClass","cls","newName","removeClass","toggleClass","when","names","scrollTop","hasScrollTop","scrollTo","scrollX","scrollLeft","hasScrollLeft","scrollY","position","parseFloat","detach","dimension","dimensionProperty","m","traverseNode","fun","operator","operatorIndex","inside","argType","arr","copyByClone","nextSibling","firstChild","parentInDocument","insertBefore","src","ownerDocument","defaultView","_zid","isString","handlers","specialEvents","focusinSupported","focus","blur","hover","mouseenter","mouseleave","click","mousedown","mouseup","mousemove","zid","findHandlers","event","ns","matcher","matcherFor","handler","sel","parts","eventCapture","captureSetting","del","realEvent","events","delegator","capture","id","set","related","relatedTarget","proxy","compatible","isImmediatePropagationStopped","_args","preventDefault","stopPropagation","removeEventListener","proxyFn","unshift","TypeError","bind","on","unbind","off","one","returnTrue","returnFalse","ignoreProperties","eventMethods","stopImmediatePropagation","isDefaultPrevented","predicate","sourceMethod","timeStamp","Date","now","defaultPrevented","returnValue","getPreventDefault","createProxy","originalEvent","delegate","undelegate","live","die","autoRemove","evt","currentTarget","liveFired","trigger","Event","dispatchEvent","triggerHandler","createEvent","bubbles","initEvent","jsonpID","rscript","scriptTypeRE","xmlTypeRE","jsonType","htmlType","blankRE","originAnchor","href","location","triggerAndReturn","eventName","triggerGlobal","settings","active","ajaxStart","ajaxStop","ajaxBeforeSend","xhr","beforeSend","ajaxSuccess","deferred","status","success","resolveWith","ajaxComplete","ajaxError","error","rejectWith","complete","ajaxDataFilter","dataFilter","ajaxJSONP","options","ajax","_callbackName","jsonpCallback","callbackName","script","originalCallback","responseData","abort","errorType","abortTimeout","promise","clearTimeout","url","head","timeout","setTimeout","ajaxSettings","XMLHttpRequest","accepts","json","xml","crossDomain","processData","cache","mimeToDataType","mime","appendQuery","query","serializeData","param","traditional","dataType","Deferred","urlAnchor","hashIndex","protocol","host","hasPlaceholder","jsonp","headers","setHeader","nativeSetHeader","setRequestHeader","mimeType","overrideMimeType","contentType","onreadystatechange","getResponseHeader","responseType","response","responseText","eval","responseXML","statusText","async","open","username","password","xhrFields","send","parseArguments","post","getJSON","load","escape","encodeURIComponent","serialize","params","scope","hash","serializeArray","field","disabled","checked","elm","submit","nativeGetComputedStyle","pseudoElement","hasOwn","classNames","classes","inner","module","exports","default","t","n","r","s","u","a","o","h","f","c","d","z","utcOffset","abs","floor","year","month","ceil","p","M","y","w","ms","Q","weekdays","months","l","v","g","format","pl","date","D","locale","$L","utc","$u","$d","NaN","UTC","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","day","hour","minute","second","millisecond","unix","valueOf","getTime","toDate","$locale","weekStart","$set","min","daysInMonth","subtract","substr","meridiem","YY","YYYY","MM","MMM","monthsShort","MMMM","DD","dd","weekdaysMin","ddd","weekdaysShort","dddd","H","HH","hh","A","mm","ss","SSS","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","isDayjs","en","Ls","_package","bidi","tag","attrs","multi","onchange","selectedOptions","x","oninput","option","view","ctrl","hyperscript","require","request","mountRedraw","trust","mount","route","render","redraw","parseQueryString","buildQueryString","parsePathname","buildPathname","vnode","PromisePolyfill","_MAP","_KEYCODE_MAP","_SHIFT_MAP","_SPECIAL_ALIASES","navigator","platform","_REVERSE_MAP","_addEvent","attachEvent","_characterFromEvent","character","fromCharCode","which","shiftKey","_modifiersMatch","modifiers1","modifiers2","_eventModifiers","modifiers","altKey","ctrlKey","metaKey","_preventDefault","_stopPropagation","cancelBubble","_isModifier","_getReverseMap","_pickBestAction","action","_keysFromString","combination","_getKeyInfo","keys","_belongsTo","ancestor","Mousetrap","targetElement","_callbacks","_directMap","_sequenceLevels","_resetTimer","_ignoreNextKeyup","_ignoreNextKeypress","_nextExpectedAction","_resetSequences","doNotReset","activeSequences","_getMatches","sequenceName","level","seq","deleteCombo","combo","deleteSequence","_fireCallback","sequence","stopCallback","srcElement","_handleKey","callbacks","maxLevel","processedSequenceCallback","max","ignoreThisKeypress","_handleKeyEvent","keyCode","handleKey","_resetSequenceTimer","_bindSequence","_increaseSequence","nextAction","_callbackAndReset","isFinal","wrappedCallback","_bindSingle","info","_bindMultiple","combinations","reset","composedPath","initialEventTarget","tagName","isContentEditable","addKeycodes","documentMousetrap","method","charAt","backdrop","Dropdown","VERSION","getParent","$parent","clearMenus","isActive","insertAfter","keydown","desc","$items","Plugin","old","dropdown","Constructor","noConflict","jQuery","transitionEnd","transEndEventNames","WebkitTransition","MozTransition","OTransition","transition","end","emulateTransitionEnd","duration","called","$el","special","bsTransitionEnd","bindType","delegateType","handle","handleObj","LTS","LT","L","LL","LLL","LLLL","formats","relativeTime","future","past","yy","to","from","toNow","fromNow","Error","U","Y","bottom","bottomEnd","innerTop","innerSticker","stickyClass","stickTo","followScroll","responsive","mobileFirst","onStart","onStop","onBeforeResize","onResize","resizeDebounce","disable","queries","queryFlow","console","log","X","querySelector","Helpers","getStyle","innerWidth","stick","isAttached","attach","offsetLeft","release","stop","parseInt","positionLeft","marginLeft","b","S","k","E","T","j","O","C","getCascadedStyle","offsetHeight","right","verticalAlign","boxSizing","marginRight","marginTop","marginBottom","paddingLeft","paddingRight","float","cssFloat","MozBoxSizing","offsetWidth","HTMLDocument","Document","clientHeight","scrollHeight","innerHeight","offsetTop","N","R","B","I","q","F","P","debounce","W","V","refresh","update","destroy","triggerMethod","reinit","hcSticky","defineProperty","writable","configurable","handleEvent","detachEvent","currentStyle","borderTopWidth","borderLeftWidth","margin","easeInOutQuad","_typeof","Symbol","iterator","jumper","start","easing","a11y","distance","timeStart","timeElapsed","loop","timeCurrent","requestAnimationFrame","done","jump","singleton","Vnode","schedule","subscriptions","rendering","pending","sync","root","component","Promise","compileTemplate","sentinel","$window","fireAsync","setPath","path","state","title","history","replaceState","prefix","pushState","currentResolver","currentPath","lastUpdate","SKIP","defaultRoute","routes","compiled","SyntaxError","check","callAsync","setImmediate","resolve","scheduled","onremove","defaultData","ReferenceError","resolveRoute","search","pathname","decodeURIComponent","fail","matchedRoute","localComp","comp","onmatch","then","onbeforeupdate","oncreate","Link","onclick","oninit","onupdate","onbeforeremove","Boolean","button","template","queryIndex","queryEnd","pathEnd","resolved","variadic","newQueryIndex","newHashIndex","newQueryEnd","newPathEnd","querystring","templateData","templateKeys","regexp","extra","exec","executor","resolvers","rejectors","resolveCurrent","rejectCurrent","instance","_instance","list","shouldAbsorb","execute","executeOnce","retry","runs","run","onerror","onFulfilled","onRejection","resolveNext","rejectNext","reject","catch","finally","reason","all","total","count","consume","race","destructure","string","entries","counters","entry","levels","cursor","pop","nextLevel","isNumber","getOwnPropertyDescriptor","hyperscriptVnode","normalizeChildren","selectorParser","selectorCache","isEmpty","compileSelector","attrValue","execSelector","class","newAttrs","$doc","currentRedraw","nameSpace","math","getNameSpace","xmlns","checkState","original","callHook","activeElement","createNodes","vnodes","hooks","createNode","initLifecycle","createText","createHTML","createFragment","createComponent","createTextNode","insertNode","possibleParents","caption","thead","tbody","tfoot","tr","th","td","colgroup","col","domSize","createDocumentFragment","createElementNS","setAttrs","maybeSetContentEditable","setLateSelectAttrs","initComponent","create","$$reentrantLock$$","normalize","updateNodes","removeNodes","isOldKeyed","isKeyed","oldStart","commonLength","getNextSibling","removeNode","updateNode","oldEnd","oe","ve","topSibling","moveNodes","originalNextSibling","vnodesLength","oldIndices","li","pos","matched","lisIndices","getKeyMap","oldIndex","makeLisIndices","oldTag","shouldNotUpdate","updateLifecycle","updateText","updateHTML","updateFragment","updateElement","updateComponent","nodeValue","removeHTML","updateAttrs","lisTemp","il","frag","moveChildToFrag","contenteditable","contentEditable","content","mask","stateResult","attrsResult","reallyRemove","setAttr","isLifecycleMethod","isFormAttribute","updateEvent","setAttributeNS","updateStyle","hasPropertyKey","selectedIndex","nsLastIndex","normalized","uppercaseRegex","capital","normalizeKey","setProperty","EventDict","ev","force","namespace","namespaceURI","prevRedraw","input","oncompletion","callbackCount","PromiseProxy","__proto__","makeRequest","background","hasHeader","assumeJSON","FormData","extract","aborted","replacedAbort","user","deserialize","withCredentials","message","code","config","stringify","random","callbackKey","Stream","lift","scan","merge","combine","scanMerge","warnedHalt","dependentStreams","dependentFns","stream","_changing","_state","_parents","_map","ignoreInitial","createEnd","_unregisterChild","s1","s2","childIndex","streams","changed","mappers","endStream","mapper","acc","origin","tuples","seed","tuple","longerTimeoutBrowsers","timeoutDuration","isBrowser","supportsMicroTasks","getType","functionToCheck","getStyleComputedProperty","overflow","overflowX","overflowY","getScrollParent","getParentNode","isIE11","isIE10","version","noOffsetParent","isIE","getOffsetParent","getRoot","element1","element2","order","Node","range","commonAncestorContainer","isOffsetContainer","element1root","findCommonOffsetParent","side","upperSide","scrollingElement","getScroll","modifier","sideA","axis","sideB","styles","getSize","offsets","rect","sizes","getWindowSizes","horizScrollbar","vertScrollbar","getBordersSize","getClientRect","fixedPosition","runIsIE","isHTML","childrenRect","parentRect","scrollParent","includeScroll","excludeScroll","relativeOffset","getOffsetRectRelativeToArbitraryNode","isFixed","boundaries","getFixedPositionOffsetParent","boundariesElement","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","popper","padding","isPaddingNumber","placement","getBoundaries","rects","refRect","sortedAreas","getArea","filteredAreas","computedPlacement","variation","commonOffsetParent","popperRect","getOuterSizes","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","referenceOffsets","getOppositePlacement","cur","modifiersToRun","ends","findIndex","getReferenceOffsets","computeAutoPlacement","getPopperOffsets","runModifiers","enabled","prefixes","upperProp","toCheck","isModifierEnabled","getSupportedPropertyName","isBody","passive","scrollElement","setupEventListeners","removeEventListeners","unit","attributes","reference","noRound","referenceWidth","popperWidth","isVertical","isVariation","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","isFirefox","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","getRoundedOffsets","prefixedProperty","invertTop","invertLeft","requesting","isRequired","requested","isModifierRequired","arrowElement","sideCapitalized","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","validPlacements","placements","counter","BEHAVIORS","placementOpposite","flipOrder","clockwise","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flippedVariationByContent","flippedVariation","getOppositeVariation","useHeight","fragments","divider","splitRegex","ops","mergeWithPrevious","toValue","op","index2","basePlacement","parseOffset","transformProp","popperStyles","transform","shiftvariation","shiftOffsets","bound","subtractLength","keepTogether","Popper","modifierOptions","eventsEnabled","enableEventListeners","disableEventListeners","Utils","PopperUtils","Defaults","process","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","runClearTimeout","marker","queue","draining","currentQueue","queueIndex","cleanUpNextTick","drainQueue","nextTick","Item","browser","env","argv","versions","addListener","once","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","nextHandle","tasksByHandle","currentlyRunningATask","doc","registerImmediate","Function","task","clearImmediate","runIfPresent","installNextTickImplementation","canUsePostMessage","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","installPostMessageImplementation","messagePrefix","onGlobalMessage","installMessageChannelImplementation","channel","MessageChannel","port1","port2","installReadyStateChangeImplementation","installSetTimeoutImplementation","attachTo","Timeout","setInterval","clearInterval","close","clearFn","_id","_clearFn","unref","ref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","onTimeout","_onTimeout","DEFAULT_OPTIONS","Tooltip","allowHtml","tooltipGenerator","tooltipNode","titleNode","titleText","arrowSelector","directEvents","oppositeEvents","delay","computedDelay","isSet","lastTitle","dispose","updateTitleContent","_events","_setTooltipNodeEvent","relatedreference","relatedreference2","evt2","originalModule","webpackPolyfill","enumerable","dataAttr","exp","expando","getData","store","setData","camelName","attributeData","hasData","removeData","methodName","origFn","eventPrefix","vendors","Webkit","Moz","testEl","supportedTransforms","transitionProperty","transitionDuration","transitionTiming","transitionDelay","animationName","animationDuration","animationTiming","animationDelay","cssReset","normalizeEvent","vendor","fx","speeds","_default","fast","slow","cssPrefix","animationEnd","animate","ease","anim","cssValues","cssProperties","transforms","that","endEvent","fired","clientLeft","docElem","origShow","origHide","origToggle","speed","opacity","scale","fadeTo","fadeIn","fadeOut","fadeToggle","oldQsa","oldMatches","visible","filters","hidden","filterRe","childRe","classTag","taggedParent","dayjs","localizedFormat","patchMithril","withAttr","cb","tooltip","includes","Dimension","sides","leave","animatedScrollTop","bindBeforeSpecialEvents","specialEvent","_init","originalHandler","$target","setup"],"mappings":"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","file":"admin.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/dist/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./admin.ts\");\n","/*\r\n * This file is part of Flarum.\r\n *\r\n * (c) Toby Zerner <toby.zerner@gmail.com>\r\n *\r\n * For the full copyright and license information, please view the LICENSE\r\n * file that was distributed with this source code.\r\n */\r\n\r\nexport * from './src/common';\r\nexport * from './src/admin';","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","/*** IMPORTS FROM imports-loader ***/\n(function() {\n\n/* Zepto v1.2.0 - zepto event ajax form ie - zeptojs.com/license */\n(function(global, factory) {\n if (typeof define === 'function' && define.amd)\n define(function() { return factory(global) })\n else\n factory(global)\n}(this, function(window) {\n var Zepto = (function() {\n var undefined, key, $, classList, emptyArray = [], concat = emptyArray.concat, filter = emptyArray.filter, slice = emptyArray.slice,\n document = window.document,\n elementDisplay = {}, classCache = {},\n cssNumber = { 'column-count': 1, 'columns': 1, 'font-weight': 1, 'line-height': 1,'opacity': 1, 'z-index': 1, 'zoom': 1 },\n fragmentRE = /^\\s*<(\\w+|!)[^>]*>/,\n singleTagRE = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,\n tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/ig,\n rootNodeRE = /^(?:body|html)$/i,\n capitalRE = /([A-Z])/g,\n\n // special attributes that should be get/set via method calls\n methodAttributes = ['val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset'],\n\n adjacencyOperators = [ 'after', 'prepend', 'before', 'append' ],\n table = document.createElement('table'),\n tableRow = document.createElement('tr'),\n containers = {\n 'tr': document.createElement('tbody'),\n 'tbody': table, 'thead': table, 'tfoot': table,\n 'td': tableRow, 'th': tableRow,\n '*': document.createElement('div')\n },\n readyRE = /complete|loaded|interactive/,\n simpleSelectorRE = /^[\\w-]*$/,\n class2type = {},\n toString = class2type.toString,\n zepto = {},\n camelize, uniq,\n tempParent = document.createElement('div'),\n propMap = {\n 'tabindex': 'tabIndex',\n 'readonly': 'readOnly',\n 'for': 'htmlFor',\n 'class': 'className',\n 'maxlength': 'maxLength',\n 'cellspacing': 'cellSpacing',\n 'cellpadding': 'cellPadding',\n 'rowspan': 'rowSpan',\n 'colspan': 'colSpan',\n 'usemap': 'useMap',\n 'frameborder': 'frameBorder',\n 'contenteditable': 'contentEditable'\n },\n isArray = Array.isArray ||\n function(object){ return object instanceof Array }\n\n zepto.matches = function(element, selector) {\n if (!selector || !element || element.nodeType !== 1) return false\n var matchesSelector = element.matches || element.webkitMatchesSelector ||\n element.mozMatchesSelector || element.oMatchesSelector ||\n element.matchesSelector\n if (matchesSelector) return matchesSelector.call(element, selector)\n // fall back to performing a selector:\n var match, parent = element.parentNode, temp = !parent\n if (temp) (parent = tempParent).appendChild(element)\n match = ~zepto.qsa(parent, selector).indexOf(element)\n temp && tempParent.removeChild(element)\n return match\n }\n\n function type(obj) {\n return obj == null ? String(obj) :\n class2type[toString.call(obj)] || \"object\"\n }\n\n function isFunction(value) { return type(value) == \"function\" }\n function isWindow(obj) { return obj != null && obj == obj.window }\n function isDocument(obj) { return obj != null && obj.nodeType == obj.DOCUMENT_NODE }\n function isObject(obj) { return type(obj) == \"object\" }\n function isPlainObject(obj) {\n return isObject(obj) && !isWindow(obj) && Object.getPrototypeOf(obj) == Object.prototype\n }\n\n function likeArray(obj) {\n var length = !!obj && 'length' in obj && obj.length,\n type = $.type(obj)\n\n return 'function' != type && !isWindow(obj) && (\n 'array' == type || length === 0 ||\n (typeof length == 'number' && length > 0 && (length - 1) in obj)\n )\n }\n\n function compact(array) { return filter.call(array, function(item){ return item != null }) }\n function flatten(array) { return array.length > 0 ? $.fn.concat.apply([], array) : array }\n camelize = function(str){ return str.replace(/-+(.)?/g, function(match, chr){ return chr ? chr.toUpperCase() : '' }) }\n function dasherize(str) {\n return str.replace(/::/g, '/')\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')\n .replace(/([a-z\\d])([A-Z])/g, '$1_$2')\n .replace(/_/g, '-')\n .toLowerCase()\n }\n uniq = function(array){ return filter.call(array, function(item, idx){ return array.indexOf(item) == idx }) }\n\n function classRE(name) {\n return name in classCache ?\n classCache[name] : (classCache[name] = new RegExp('(^|\\\\s)' + name + '(\\\\s|$)'))\n }\n\n function maybeAddPx(name, value) {\n return (typeof value == \"number\" && !cssNumber[dasherize(name)]) ? value + \"px\" : value\n }\n\n function defaultDisplay(nodeName) {\n var element, display\n if (!elementDisplay[nodeName]) {\n element = document.createElement(nodeName)\n document.body.appendChild(element)\n display = getComputedStyle(element, '').getPropertyValue(\"display\")\n element.parentNode.removeChild(element)\n display == \"none\" && (display = \"block\")\n elementDisplay[nodeName] = display\n }\n return elementDisplay[nodeName]\n }\n\n function children(element) {\n return 'children' in element ?\n slice.call(element.children) :\n $.map(element.childNodes, function(node){ if (node.nodeType == 1) return node })\n }\n\n function Z(dom, selector) {\n var i, len = dom ? dom.length : 0\n for (i = 0; i < len; i++) this[i] = dom[i]\n this.length = len\n this.selector = selector || ''\n }\n\n // `$.zepto.fragment` takes a html string and an optional tag name\n // to generate DOM nodes from the given html string.\n // The generated DOM nodes are returned as an array.\n // This function can be overridden in plugins for example to make\n // it compatible with browsers that don't support the DOM fully.\n zepto.fragment = function(html, name, properties) {\n var dom, nodes, container\n\n // A special case optimization for a single tag\n if (singleTagRE.test(html)) dom = $(document.createElement(RegExp.$1))\n\n if (!dom) {\n if (html.replace) html = html.replace(tagExpanderRE, \"<$1></$2>\")\n if (name === undefined) name = fragmentRE.test(html) && RegExp.$1\n if (!(name in containers)) name = '*'\n\n container = containers[name]\n container.innerHTML = '' + html\n dom = $.each(slice.call(container.childNodes), function(){\n container.removeChild(this)\n })\n }\n\n if (isPlainObject(properties)) {\n nodes = $(dom)\n $.each(properties, function(key, value) {\n if (methodAttributes.indexOf(key) > -1) nodes[key](value)\n else nodes.attr(key, value)\n })\n }\n\n return dom\n }\n\n // `$.zepto.Z` swaps out the prototype of the given `dom` array\n // of nodes with `$.fn` and thus supplying all the Zepto functions\n // to the array. This method can be overridden in plugins.\n zepto.Z = function(dom, selector) {\n return new Z(dom, selector)\n }\n\n // `$.zepto.isZ` should return `true` if the given object is a Zepto\n // collection. This method can be overridden in plugins.\n zepto.isZ = function(object) {\n return object instanceof zepto.Z\n }\n\n // `$.zepto.init` is Zepto's counterpart to jQuery's `$.fn.init` and\n // takes a CSS selector and an optional context (and handles various\n // special cases).\n // This method can be overridden in plugins.\n zepto.init = function(selector, context) {\n var dom\n // If nothing given, return an empty Zepto collection\n if (!selector) return zepto.Z()\n // Optimize for string selectors\n else if (typeof selector == 'string') {\n selector = selector.trim()\n // If it's a html fragment, create nodes from it\n // Note: In both Chrome 21 and Firefox 15, DOM error 12\n // is thrown if the fragment doesn't begin with <\n if (selector[0] == '<' && fragmentRE.test(selector))\n dom = zepto.fragment(selector, RegExp.$1, context), selector = null\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector)\n // If it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector)\n }\n // If a function is given, call it when the DOM is ready\n else if (isFunction(selector)) return $(document).ready(selector)\n // If a Zepto collection is given, just return it\n else if (zepto.isZ(selector)) return selector\n else {\n // normalize array if an array of nodes is given\n if (isArray(selector)) dom = compact(selector)\n // Wrap DOM nodes.\n else if (isObject(selector))\n dom = [selector], selector = null\n // If it's a html fragment, create nodes from it\n else if (fragmentRE.test(selector))\n dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector)\n // And last but no least, if it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector)\n }\n // create a new Zepto collection from the nodes found\n return zepto.Z(dom, selector)\n }\n\n // `$` will be the base `Zepto` object. When calling this\n // function just call `$.zepto.init, which makes the implementation\n // details of selecting nodes and creating Zepto collections\n // patchable in plugins.\n $ = function(selector, context){\n return zepto.init(selector, context)\n }\n\n function extend(target, source, deep) {\n for (key in source)\n if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {\n if (isPlainObject(source[key]) && !isPlainObject(target[key]))\n target[key] = {}\n if (isArray(source[key]) && !isArray(target[key]))\n target[key] = []\n extend(target[key], source[key], deep)\n }\n else if (source[key] !== undefined) target[key] = source[key]\n }\n\n // Copy all but undefined properties from one or more\n // objects to the `target` object.\n $.extend = function(target){\n var deep, args = slice.call(arguments, 1)\n if (typeof target == 'boolean') {\n deep = target\n target = args.shift()\n }\n args.forEach(function(arg){ extend(target, arg, deep) })\n return target\n }\n\n // `$.zepto.qsa` is Zepto's CSS selector implementation which\n // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`.\n // This method can be overridden in plugins.\n zepto.qsa = function(element, selector){\n var found,\n maybeID = selector[0] == '#',\n maybeClass = !maybeID && selector[0] == '.',\n nameOnly = maybeID || maybeClass ? selector.slice(1) : selector, // Ensure that a 1 char tag name still gets checked\n isSimple = simpleSelectorRE.test(nameOnly)\n return (element.getElementById && isSimple && maybeID) ? // Safari DocumentFragment doesn't have getElementById\n ( (found = element.getElementById(nameOnly)) ? [found] : [] ) :\n (element.nodeType !== 1 && element.nodeType !== 9 && element.nodeType !== 11) ? [] :\n slice.call(\n isSimple && !maybeID && element.getElementsByClassName ? // DocumentFragment doesn't have getElementsByClassName/TagName\n maybeClass ? element.getElementsByClassName(nameOnly) : // If it's simple, it could be a class\n element.getElementsByTagName(selector) : // Or a tag\n element.querySelectorAll(selector) // Or it's not simple, and we need to query all\n )\n }\n\n function filtered(nodes, selector) {\n return selector == null ? $(nodes) : $(nodes).filter(selector)\n }\n\n $.contains = document.documentElement.contains ?\n function(parent, node) {\n return parent !== node && parent.contains(node)\n } :\n function(parent, node) {\n while (node && (node = node.parentNode))\n if (node === parent) return true\n return false\n }\n\n function funcArg(context, arg, idx, payload) {\n return isFunction(arg) ? arg.call(context, idx, payload) : arg\n }\n\n function setAttribute(node, name, value) {\n value == null ? node.removeAttribute(name) : node.setAttribute(name, value)\n }\n\n // access className property while respecting SVGAnimatedString\n function className(node, value){\n var klass = node.className || '',\n svg = klass && klass.baseVal !== undefined\n\n if (value === undefined) return svg ? klass.baseVal : klass\n svg ? (klass.baseVal = value) : (node.className = value)\n }\n\n // \"true\" => true\n // \"false\" => false\n // \"null\" => null\n // \"42\" => 42\n // \"42.5\" => 42.5\n // \"08\" => \"08\"\n // JSON => parse if valid\n // String => self\n function deserializeValue(value) {\n try {\n return value ?\n value == \"true\" ||\n ( value == \"false\" ? false :\n value == \"null\" ? null :\n +value + \"\" == value ? +value :\n /^[\\[\\{]/.test(value) ? $.parseJSON(value) :\n value )\n : value\n } catch(e) {\n return value\n }\n }\n\n $.type = type\n $.isFunction = isFunction\n $.isWindow = isWindow\n $.isArray = isArray\n $.isPlainObject = isPlainObject\n\n $.isEmptyObject = function(obj) {\n var name\n for (name in obj) return false\n return true\n }\n\n $.isNumeric = function(val) {\n var num = Number(val), type = typeof val\n return val != null && type != 'boolean' &&\n (type != 'string' || val.length) &&\n !isNaN(num) && isFinite(num) || false\n }\n\n $.inArray = function(elem, array, i){\n return emptyArray.indexOf.call(array, elem, i)\n }\n\n $.camelCase = camelize\n $.trim = function(str) {\n return str == null ? \"\" : String.prototype.trim.call(str)\n }\n\n // plugin compatibility\n $.uuid = 0\n $.support = { }\n $.expr = { }\n $.noop = function() {}\n\n $.map = function(elements, callback){\n var value, values = [], i, key\n if (likeArray(elements))\n for (i = 0; i < elements.length; i++) {\n value = callback(elements[i], i)\n if (value != null) values.push(value)\n }\n else\n for (key in elements) {\n value = callback(elements[key], key)\n if (value != null) values.push(value)\n }\n return flatten(values)\n }\n\n $.each = function(elements, callback){\n var i, key\n if (likeArray(elements)) {\n for (i = 0; i < elements.length; i++)\n if (callback.call(elements[i], i, elements[i]) === false) return elements\n } else {\n for (key in elements)\n if (callback.call(elements[key], key, elements[key]) === false) return elements\n }\n\n return elements\n }\n\n $.grep = function(elements, callback){\n return filter.call(elements, callback)\n }\n\n if (window.JSON) $.parseJSON = JSON.parse\n\n // Populate the class2type map\n $.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\n class2type[ \"[object \" + name + \"]\" ] = name.toLowerCase()\n })\n\n // Define methods that will be available on all\n // Zepto collections\n $.fn = {\n constructor: zepto.Z,\n length: 0,\n\n // Because a collection acts like an array\n // copy over these useful array functions.\n forEach: emptyArray.forEach,\n reduce: emptyArray.reduce,\n push: emptyArray.push,\n sort: emptyArray.sort,\n splice: emptyArray.splice,\n indexOf: emptyArray.indexOf,\n concat: function(){\n var i, value, args = []\n for (i = 0; i < arguments.length; i++) {\n value = arguments[i]\n args[i] = zepto.isZ(value) ? value.toArray() : value\n }\n return concat.apply(zepto.isZ(this) ? this.toArray() : this, args)\n },\n\n // `map` and `slice` in the jQuery API work differently\n // from their array counterparts\n map: function(fn){\n return $($.map(this, function(el, i){ return fn.call(el, i, el) }))\n },\n slice: function(){\n return $(slice.apply(this, arguments))\n },\n\n ready: function(callback){\n // need to check if document.body exists for IE as that browser reports\n // document ready when it hasn't yet created the body element\n if (readyRE.test(document.readyState) && document.body) callback($)\n else document.addEventListener('DOMContentLoaded', function(){ callback($) }, false)\n return this\n },\n get: function(idx){\n return idx === undefined ? slice.call(this) : this[idx >= 0 ? idx : idx + this.length]\n },\n toArray: function(){ return this.get() },\n size: function(){\n return this.length\n },\n remove: function(){\n return this.each(function(){\n if (this.parentNode != null)\n this.parentNode.removeChild(this)\n })\n },\n each: function(callback){\n emptyArray.every.call(this, function(el, idx){\n return callback.call(el, idx, el) !== false\n })\n return this\n },\n filter: function(selector){\n if (isFunction(selector)) return this.not(this.not(selector))\n return $(filter.call(this, function(element){\n return zepto.matches(element, selector)\n }))\n },\n add: function(selector,context){\n return $(uniq(this.concat($(selector,context))))\n },\n is: function(selector){\n return this.length > 0 && zepto.matches(this[0], selector)\n },\n not: function(selector){\n var nodes=[]\n if (isFunction(selector) && selector.call !== undefined)\n this.each(function(idx){\n if (!selector.call(this,idx)) nodes.push(this)\n })\n else {\n var excludes = typeof selector == 'string' ? this.filter(selector) :\n (likeArray(selector) && isFunction(selector.item)) ? slice.call(selector) : $(selector)\n this.forEach(function(el){\n if (excludes.indexOf(el) < 0) nodes.push(el)\n })\n }\n return $(nodes)\n },\n has: function(selector){\n return this.filter(function(){\n return isObject(selector) ?\n $.contains(this, selector) :\n $(this).find(selector).size()\n })\n },\n eq: function(idx){\n return idx === -1 ? this.slice(idx) : this.slice(idx, + idx + 1)\n },\n first: function(){\n var el = this[0]\n return el && !isObject(el) ? el : $(el)\n },\n last: function(){\n var el = this[this.length - 1]\n return el && !isObject(el) ? el : $(el)\n },\n find: function(selector){\n var result, $this = this\n if (!selector) result = $()\n else if (typeof selector == 'object')\n result = $(selector).filter(function(){\n var node = this\n return emptyArray.some.call($this, function(parent){\n return $.contains(parent, node)\n })\n })\n else if (this.length == 1) result = $(zepto.qsa(this[0], selector))\n else result = this.map(function(){ return zepto.qsa(this, selector) })\n return result\n },\n closest: function(selector, context){\n var nodes = [], collection = typeof selector == 'object' && $(selector)\n this.each(function(_, node){\n while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector)))\n node = node !== context && !isDocument(node) && node.parentNode\n if (node && nodes.indexOf(node) < 0) nodes.push(node)\n })\n return $(nodes)\n },\n parents: function(selector){\n var ancestors = [], nodes = this\n while (nodes.length > 0)\n nodes = $.map(nodes, function(node){\n if ((node = node.parentNode) && !isDocument(node) && ancestors.indexOf(node) < 0) {\n ancestors.push(node)\n return node\n }\n })\n return filtered(ancestors, selector)\n },\n parent: function(selector){\n return filtered(uniq(this.pluck('parentNode')), selector)\n },\n children: function(selector){\n return filtered(this.map(function(){ return children(this) }), selector)\n },\n contents: function() {\n return this.map(function() { return this.contentDocument || slice.call(this.childNodes) })\n },\n siblings: function(selector){\n return filtered(this.map(function(i, el){\n return filter.call(children(el.parentNode), function(child){ return child!==el })\n }), selector)\n },\n empty: function(){\n return this.each(function(){ this.innerHTML = '' })\n },\n // `pluck` is borrowed from Prototype.js\n pluck: function(property){\n return $.map(this, function(el){ return el[property] })\n },\n show: function(){\n return this.each(function(){\n this.style.display == \"none\" && (this.style.display = '')\n if (getComputedStyle(this, '').getPropertyValue(\"display\") == \"none\")\n this.style.display = defaultDisplay(this.nodeName)\n })\n },\n replaceWith: function(newContent){\n return this.before(newContent).remove()\n },\n wrap: function(structure){\n var func = isFunction(structure)\n if (this[0] && !func)\n var dom = $(structure).get(0),\n clone = dom.parentNode || this.length > 1\n\n return this.each(function(index){\n $(this).wrapAll(\n func ? structure.call(this, index) :\n clone ? dom.cloneNode(true) : dom\n )\n })\n },\n wrapAll: function(structure){\n if (this[0]) {\n $(this[0]).before(structure = $(structure))\n var children\n // drill down to the inmost element\n while ((children = structure.children()).length) structure = children.first()\n $(structure).append(this)\n }\n return this\n },\n wrapInner: function(structure){\n var func = isFunction(structure)\n return this.each(function(index){\n var self = $(this), contents = self.contents(),\n dom = func ? structure.call(this, index) : structure\n contents.length ? contents.wrapAll(dom) : self.append(dom)\n })\n },\n unwrap: function(){\n this.parent().each(function(){\n $(this).replaceWith($(this).children())\n })\n return this\n },\n clone: function(){\n return this.map(function(){ return this.cloneNode(true) })\n },\n hide: function(){\n return this.css(\"display\", \"none\")\n },\n toggle: function(setting){\n return this.each(function(){\n var el = $(this)\n ;(setting === undefined ? el.css(\"display\") == \"none\" : setting) ? el.show() : el.hide()\n })\n },\n prev: function(selector){ return $(this.pluck('previousElementSibling')).filter(selector || '*') },\n next: function(selector){ return $(this.pluck('nextElementSibling')).filter(selector || '*') },\n html: function(html){\n return 0 in arguments ?\n this.each(function(idx){\n var originHtml = this.innerHTML\n $(this).empty().append( funcArg(this, html, idx, originHtml) )\n }) :\n (0 in this ? this[0].innerHTML : null)\n },\n text: function(text){\n return 0 in arguments ?\n this.each(function(idx){\n var newText = funcArg(this, text, idx, this.textContent)\n this.textContent = newText == null ? '' : ''+newText\n }) :\n (0 in this ? this.pluck('textContent').join(\"\") : null)\n },\n attr: function(name, value){\n var result\n return (typeof name == 'string' && !(1 in arguments)) ?\n (0 in this && this[0].nodeType == 1 && (result = this[0].getAttribute(name)) != null ? result : undefined) :\n this.each(function(idx){\n if (this.nodeType !== 1) return\n if (isObject(name)) for (key in name) setAttribute(this, key, name[key])\n else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name)))\n })\n },\n removeAttr: function(name){\n return this.each(function(){ this.nodeType === 1 && name.split(' ').forEach(function(attribute){\n setAttribute(this, attribute)\n }, this)})\n },\n prop: function(name, value){\n name = propMap[name] || name\n return (1 in arguments) ?\n this.each(function(idx){\n this[name] = funcArg(this, value, idx, this[name])\n }) :\n (this[0] && this[0][name])\n },\n removeProp: function(name){\n name = propMap[name] || name\n return this.each(function(){ delete this[name] })\n },\n data: function(name, value){\n var attrName = 'data-' + name.replace(capitalRE, '-$1').toLowerCase()\n\n var data = (1 in arguments) ?\n this.attr(attrName, value) :\n this.attr(attrName)\n\n return data !== null ? deserializeValue(data) : undefined\n },\n val: function(value){\n if (0 in arguments) {\n if (value == null) value = \"\"\n return this.each(function(idx){\n this.value = funcArg(this, value, idx, this.value)\n })\n } else {\n return this[0] && (this[0].multiple ?\n $(this[0]).find('option').filter(function(){ return this.selected }).pluck('value') :\n this[0].value)\n }\n },\n offset: function(coordinates){\n if (coordinates) return this.each(function(index){\n var $this = $(this),\n coords = funcArg(this, coordinates, index, $this.offset()),\n parentOffset = $this.offsetParent().offset(),\n props = {\n top: coords.top - parentOffset.top,\n left: coords.left - parentOffset.left\n }\n\n if ($this.css('position') == 'static') props['position'] = 'relative'\n $this.css(props)\n })\n if (!this.length) return null\n if (document.documentElement !== this[0] && !$.contains(document.documentElement, this[0]))\n return {top: 0, left: 0}\n var obj = this[0].getBoundingClientRect()\n return {\n left: obj.left + window.pageXOffset,\n top: obj.top + window.pageYOffset,\n width: Math.round(obj.width),\n height: Math.round(obj.height)\n }\n },\n css: function(property, value){\n if (arguments.length < 2) {\n var element = this[0]\n if (typeof property == 'string') {\n if (!element) return\n return element.style[camelize(property)] || getComputedStyle(element, '').getPropertyValue(property)\n } else if (isArray(property)) {\n if (!element) return\n var props = {}\n var computedStyle = getComputedStyle(element, '')\n $.each(property, function(_, prop){\n props[prop] = (element.style[camelize(prop)] || computedStyle.getPropertyValue(prop))\n })\n return props\n }\n }\n\n var css = ''\n if (type(property) == 'string') {\n if (!value && value !== 0)\n this.each(function(){ this.style.removeProperty(dasherize(property)) })\n else\n css = dasherize(property) + \":\" + maybeAddPx(property, value)\n } else {\n for (key in property)\n if (!property[key] && property[key] !== 0)\n this.each(function(){ this.style.removeProperty(dasherize(key)) })\n else\n css += dasherize(key) + ':' + maybeAddPx(key, property[key]) + ';'\n }\n\n return this.each(function(){ this.style.cssText += ';' + css })\n },\n index: function(element){\n return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0])\n },\n hasClass: function(name){\n if (!name) return false\n return emptyArray.some.call(this, function(el){\n return this.test(className(el))\n }, classRE(name))\n },\n addClass: function(name){\n if (!name) return this\n return this.each(function(idx){\n if (!('className' in this)) return\n classList = []\n var cls = className(this), newName = funcArg(this, name, idx, cls)\n newName.split(/\\s+/g).forEach(function(klass){\n if (!$(this).hasClass(klass)) classList.push(klass)\n }, this)\n classList.length && className(this, cls + (cls ? \" \" : \"\") + classList.join(\" \"))\n })\n },\n removeClass: function(name){\n return this.each(function(idx){\n if (!('className' in this)) return\n if (name === undefined) return className(this, '')\n classList = className(this)\n funcArg(this, name, idx, classList).split(/\\s+/g).forEach(function(klass){\n classList = classList.replace(classRE(klass), \" \")\n })\n className(this, classList.trim())\n })\n },\n toggleClass: function(name, when){\n if (!name) return this\n return this.each(function(idx){\n var $this = $(this), names = funcArg(this, name, idx, className(this))\n names.split(/\\s+/g).forEach(function(klass){\n (when === undefined ? !$this.hasClass(klass) : when) ?\n $this.addClass(klass) : $this.removeClass(klass)\n })\n })\n },\n scrollTop: function(value){\n if (!this.length) return\n var hasScrollTop = 'scrollTop' in this[0]\n if (value === undefined) return hasScrollTop ? this[0].scrollTop : this[0].pageYOffset\n return this.each(hasScrollTop ?\n function(){ this.scrollTop = value } :\n function(){ this.scrollTo(this.scrollX, value) })\n },\n scrollLeft: function(value){\n if (!this.length) return\n var hasScrollLeft = 'scrollLeft' in this[0]\n if (value === undefined) return hasScrollLeft ? this[0].scrollLeft : this[0].pageXOffset\n return this.each(hasScrollLeft ?\n function(){ this.scrollLeft = value } :\n function(){ this.scrollTo(value, this.scrollY) })\n },\n position: function() {\n if (!this.length) return\n\n var elem = this[0],\n // Get *real* offsetParent\n offsetParent = this.offsetParent(),\n // Get correct offsets\n offset = this.offset(),\n parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset()\n\n // Subtract element margins\n // note: when an element has margin: auto the offsetLeft and marginLeft\n // are the same in Safari causing offset.left to incorrectly be 0\n offset.top -= parseFloat( $(elem).css('margin-top') ) || 0\n offset.left -= parseFloat( $(elem).css('margin-left') ) || 0\n\n // Add offsetParent borders\n parentOffset.top += parseFloat( $(offsetParent[0]).css('border-top-width') ) || 0\n parentOffset.left += parseFloat( $(offsetParent[0]).css('border-left-width') ) || 0\n\n // Subtract the two offsets\n return {\n top: offset.top - parentOffset.top,\n left: offset.left - parentOffset.left\n }\n },\n offsetParent: function() {\n return this.map(function(){\n var parent = this.offsetParent || document.body\n while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css(\"position\") == \"static\")\n parent = parent.offsetParent\n return parent\n })\n }\n }\n\n // for now\n $.fn.detach = $.fn.remove\n\n // Generate the `width` and `height` functions\n ;['width', 'height'].forEach(function(dimension){\n var dimensionProperty =\n dimension.replace(/./, function(m){ return m[0].toUpperCase() })\n\n $.fn[dimension] = function(value){\n var offset, el = this[0]\n if (value === undefined) return isWindow(el) ? el['inner' + dimensionProperty] :\n isDocument(el) ? el.documentElement['scroll' + dimensionProperty] :\n (offset = this.offset()) && offset[dimension]\n else return this.each(function(idx){\n el = $(this)\n el.css(dimension, funcArg(this, value, idx, el[dimension]()))\n })\n }\n })\n\n function traverseNode(node, fun) {\n fun(node)\n for (var i = 0, len = node.childNodes.length; i < len; i++)\n traverseNode(node.childNodes[i], fun)\n }\n\n // Generate the `after`, `prepend`, `before`, `append`,\n // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods.\n adjacencyOperators.forEach(function(operator, operatorIndex) {\n var inside = operatorIndex % 2 //=> prepend, append\n\n $.fn[operator] = function(){\n // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings\n var argType, nodes = $.map(arguments, function(arg) {\n var arr = []\n argType = type(arg)\n if (argType == \"array\") {\n arg.forEach(function(el) {\n if (el.nodeType !== undefined) return arr.push(el)\n else if ($.zepto.isZ(el)) return arr = arr.concat(el.get())\n arr = arr.concat(zepto.fragment(el))\n })\n return arr\n }\n return argType == \"object\" || arg == null ?\n arg : zepto.fragment(arg)\n }),\n parent, copyByClone = this.length > 1\n if (nodes.length < 1) return this\n\n return this.each(function(_, target){\n parent = inside ? target : target.parentNode\n\n // convert all methods to a \"before\" operation\n target = operatorIndex == 0 ? target.nextSibling :\n operatorIndex == 1 ? target.firstChild :\n operatorIndex == 2 ? target :\n null\n\n var parentInDocument = $.contains(document.documentElement, parent)\n\n nodes.forEach(function(node){\n if (copyByClone) node = node.cloneNode(true)\n else if (!parent) return $(node).remove()\n\n parent.insertBefore(node, target)\n if (parentInDocument) traverseNode(node, function(el){\n if (el.nodeName != null && el.nodeName.toUpperCase() === 'SCRIPT' &&\n (!el.type || el.type === 'text/javascript') && !el.src){\n var target = el.ownerDocument ? el.ownerDocument.defaultView : window\n target['eval'].call(target, el.innerHTML)\n }\n })\n })\n })\n }\n\n // after => insertAfter\n // prepend => prependTo\n // before => insertBefore\n // append => appendTo\n $.fn[inside ? operator+'To' : 'insert'+(operatorIndex ? 'Before' : 'After')] = function(html){\n $(html)[operator](this)\n return this\n }\n })\n\n zepto.Z.prototype = Z.prototype = $.fn\n\n // Export internal API functions in the `$.zepto` namespace\n zepto.uniq = uniq\n zepto.deserializeValue = deserializeValue\n $.zepto = zepto\n\n return $\n})()\n\nwindow.Zepto = Zepto\nwindow.$ === undefined && (window.$ = Zepto)\n\n;(function($){\n var _zid = 1, undefined,\n slice = Array.prototype.slice,\n isFunction = $.isFunction,\n isString = function(obj){ return typeof obj == 'string' },\n handlers = {},\n specialEvents={},\n focusinSupported = 'onfocusin' in window,\n focus = { focus: 'focusin', blur: 'focusout' },\n hover = { mouseenter: 'mouseover', mouseleave: 'mouseout' }\n\n specialEvents.click = specialEvents.mousedown = specialEvents.mouseup = specialEvents.mousemove = 'MouseEvents'\n\n function zid(element) {\n return element._zid || (element._zid = _zid++)\n }\n function findHandlers(element, event, fn, selector) {\n event = parse(event)\n if (event.ns) var matcher = matcherFor(event.ns)\n return (handlers[zid(element)] || []).filter(function(handler) {\n return handler\n && (!event.e || handler.e == event.e)\n && (!event.ns || matcher.test(handler.ns))\n && (!fn || zid(handler.fn) === zid(fn))\n && (!selector || handler.sel == selector)\n })\n }\n function parse(event) {\n var parts = ('' + event).split('.')\n return {e: parts[0], ns: parts.slice(1).sort().join(' ')}\n }\n function matcherFor(ns) {\n return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)')\n }\n\n function eventCapture(handler, captureSetting) {\n return handler.del &&\n (!focusinSupported && (handler.e in focus)) ||\n !!captureSetting\n }\n\n function realEvent(type) {\n return hover[type] || (focusinSupported && focus[type]) || type\n }\n\n function add(element, events, fn, data, selector, delegator, capture){\n var id = zid(element), set = (handlers[id] || (handlers[id] = []))\n events.split(/\\s/).forEach(function(event){\n if (event == 'ready') return $(document).ready(fn)\n var handler = parse(event)\n handler.fn = fn\n handler.sel = selector\n // emulate mouseenter, mouseleave\n if (handler.e in hover) fn = function(e){\n var related = e.relatedTarget\n if (!related || (related !== this && !$.contains(this, related)))\n return handler.fn.apply(this, arguments)\n }\n handler.del = delegator\n var callback = delegator || fn\n handler.proxy = function(e){\n e = compatible(e)\n if (e.isImmediatePropagationStopped()) return\n e.data = data\n var result = callback.apply(element, e._args == undefined ? [e] : [e].concat(e._args))\n if (result === false) e.preventDefault(), e.stopPropagation()\n return result\n }\n handler.i = set.length\n set.push(handler)\n if ('addEventListener' in element)\n element.addEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture))\n })\n }\n function remove(element, events, fn, selector, capture){\n var id = zid(element)\n ;(events || '').split(/\\s/).forEach(function(event){\n findHandlers(element, event, fn, selector).forEach(function(handler){\n delete handlers[id][handler.i]\n if ('removeEventListener' in element)\n element.removeEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture))\n })\n })\n }\n\n $.event = { add: add, remove: remove }\n\n $.proxy = function(fn, context) {\n var args = (2 in arguments) && slice.call(arguments, 2)\n if (isFunction(fn)) {\n var proxyFn = function(){ return fn.apply(context, args ? args.concat(slice.call(arguments)) : arguments) }\n proxyFn._zid = zid(fn)\n return proxyFn\n } else if (isString(context)) {\n if (args) {\n args.unshift(fn[context], fn)\n return $.proxy.apply(null, args)\n } else {\n return $.proxy(fn[context], fn)\n }\n } else {\n throw new TypeError(\"expected function\")\n }\n }\n\n $.fn.bind = function(event, data, callback){\n return this.on(event, data, callback)\n }\n $.fn.unbind = function(event, callback){\n return this.off(event, callback)\n }\n $.fn.one = function(event, selector, data, callback){\n return this.on(event, selector, data, callback, 1)\n }\n\n var returnTrue = function(){return true},\n returnFalse = function(){return false},\n ignoreProperties = /^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,\n eventMethods = {\n preventDefault: 'isDefaultPrevented',\n stopImmediatePropagation: 'isImmediatePropagationStopped',\n stopPropagation: 'isPropagationStopped'\n }\n\n function compatible(event, source) {\n if (source || !event.isDefaultPrevented) {\n source || (source = event)\n\n $.each(eventMethods, function(name, predicate) {\n var sourceMethod = source[name]\n event[name] = function(){\n this[predicate] = returnTrue\n return sourceMethod && sourceMethod.apply(source, arguments)\n }\n event[predicate] = returnFalse\n })\n\n event.timeStamp || (event.timeStamp = Date.now())\n\n if (source.defaultPrevented !== undefined ? source.defaultPrevented :\n 'returnValue' in source ? source.returnValue === false :\n source.getPreventDefault && source.getPreventDefault())\n event.isDefaultPrevented = returnTrue\n }\n return event\n }\n\n function createProxy(event) {\n var key, proxy = { originalEvent: event }\n for (key in event)\n if (!ignoreProperties.test(key) && event[key] !== undefined) proxy[key] = event[key]\n\n return compatible(proxy, event)\n }\n\n $.fn.delegate = function(selector, event, callback){\n return this.on(event, selector, callback)\n }\n $.fn.undelegate = function(selector, event, callback){\n return this.off(event, selector, callback)\n }\n\n $.fn.live = function(event, callback){\n $(document.body).delegate(this.selector, event, callback)\n return this\n }\n $.fn.die = function(event, callback){\n $(document.body).undelegate(this.selector, event, callback)\n return this\n }\n\n $.fn.on = function(event, selector, data, callback, one){\n var autoRemove, delegator, $this = this\n if (event && !isString(event)) {\n $.each(event, function(type, fn){\n $this.on(type, selector, data, fn, one)\n })\n return $this\n }\n\n if (!isString(selector) && !isFunction(callback) && callback !== false)\n callback = data, data = selector, selector = undefined\n if (callback === undefined || data === false)\n callback = data, data = undefined\n\n if (callback === false) callback = returnFalse\n\n return $this.each(function(_, element){\n if (one) autoRemove = function(e){\n remove(element, e.type, callback)\n return callback.apply(this, arguments)\n }\n\n if (selector) delegator = function(e){\n var evt, match = $(e.target).closest(selector, element).get(0)\n if (match && match !== element) {\n evt = $.extend(createProxy(e), {currentTarget: match, liveFired: element})\n return (autoRemove || callback).apply(match, [evt].concat(slice.call(arguments, 1)))\n }\n }\n\n add(element, event, callback, data, selector, delegator || autoRemove)\n })\n }\n $.fn.off = function(event, selector, callback){\n var $this = this\n if (event && !isString(event)) {\n $.each(event, function(type, fn){\n $this.off(type, selector, fn)\n })\n return $this\n }\n\n if (!isString(selector) && !isFunction(callback) && callback !== false)\n callback = selector, selector = undefined\n\n if (callback === false) callback = returnFalse\n\n return $this.each(function(){\n remove(this, event, callback, selector)\n })\n }\n\n $.fn.trigger = function(event, args){\n event = (isString(event) || $.isPlainObject(event)) ? $.Event(event) : compatible(event)\n event._args = args\n return this.each(function(){\n // handle focus(), blur() by calling them directly\n if (event.type in focus && typeof this[event.type] == \"function\") this[event.type]()\n // items in the collection might not be DOM elements\n else if ('dispatchEvent' in this) this.dispatchEvent(event)\n else $(this).triggerHandler(event, args)\n })\n }\n\n // triggers event handlers on current element just as if an event occurred,\n // doesn't trigger an actual event, doesn't bubble\n $.fn.triggerHandler = function(event, args){\n var e, result\n this.each(function(i, element){\n e = createProxy(isString(event) ? $.Event(event) : event)\n e._args = args\n e.target = element\n $.each(findHandlers(element, event.type || event), function(i, handler){\n result = handler.proxy(e)\n if (e.isImmediatePropagationStopped()) return false\n })\n })\n return result\n }\n\n // shortcut methods for `.bind(event, fn)` for each event type\n ;('focusin focusout focus blur load resize scroll unload click dblclick '+\n 'mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave '+\n 'change select keydown keypress keyup error').split(' ').forEach(function(event) {\n $.fn[event] = function(callback) {\n return (0 in arguments) ?\n this.bind(event, callback) :\n this.trigger(event)\n }\n })\n\n $.Event = function(type, props) {\n if (!isString(type)) props = type, type = props.type\n var event = document.createEvent(specialEvents[type] || 'Events'), bubbles = true\n if (props) for (var name in props) (name == 'bubbles') ? (bubbles = !!props[name]) : (event[name] = props[name])\n event.initEvent(type, bubbles, true)\n return compatible(event)\n }\n\n})(Zepto)\n\n;(function($){\n var jsonpID = +new Date(),\n document = window.document,\n key,\n name,\n rscript = /<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi,\n scriptTypeRE = /^(?:text|application)\\/javascript/i,\n xmlTypeRE = /^(?:text|application)\\/xml/i,\n jsonType = 'application/json',\n htmlType = 'text/html',\n blankRE = /^\\s*$/,\n originAnchor = document.createElement('a')\n\n originAnchor.href = window.location.href\n\n // trigger a custom event and return false if it was cancelled\n function triggerAndReturn(context, eventName, data) {\n var event = $.Event(eventName)\n $(context).trigger(event, data)\n return !event.isDefaultPrevented()\n }\n\n // trigger an Ajax \"global\" event\n function triggerGlobal(settings, context, eventName, data) {\n if (settings.global) return triggerAndReturn(context || document, eventName, data)\n }\n\n // Number of active Ajax requests\n $.active = 0\n\n function ajaxStart(settings) {\n if (settings.global && $.active++ === 0) triggerGlobal(settings, null, 'ajaxStart')\n }\n function ajaxStop(settings) {\n if (settings.global && !(--$.active)) triggerGlobal(settings, null, 'ajaxStop')\n }\n\n // triggers an extra global event \"ajaxBeforeSend\" that's like \"ajaxSend\" but cancelable\n function ajaxBeforeSend(xhr, settings) {\n var context = settings.context\n if (settings.beforeSend.call(context, xhr, settings) === false ||\n triggerGlobal(settings, context, 'ajaxBeforeSend', [xhr, settings]) === false)\n return false\n\n triggerGlobal(settings, context, 'ajaxSend', [xhr, settings])\n }\n function ajaxSuccess(data, xhr, settings, deferred) {\n var context = settings.context, status = 'success'\n settings.success.call(context, data, status, xhr)\n if (deferred) deferred.resolveWith(context, [data, status, xhr])\n triggerGlobal(settings, context, 'ajaxSuccess', [xhr, settings, data])\n ajaxComplete(status, xhr, settings)\n }\n // type: \"timeout\", \"error\", \"abort\", \"parsererror\"\n function ajaxError(error, type, xhr, settings, deferred) {\n var context = settings.context\n settings.error.call(context, xhr, type, error)\n if (deferred) deferred.rejectWith(context, [xhr, type, error])\n triggerGlobal(settings, context, 'ajaxError', [xhr, settings, error || type])\n ajaxComplete(type, xhr, settings)\n }\n // status: \"success\", \"notmodified\", \"error\", \"timeout\", \"abort\", \"parsererror\"\n function ajaxComplete(status, xhr, settings) {\n var context = settings.context\n settings.complete.call(context, xhr, status)\n triggerGlobal(settings, context, 'ajaxComplete', [xhr, settings])\n ajaxStop(settings)\n }\n\n function ajaxDataFilter(data, type, settings) {\n if (settings.dataFilter == empty) return data\n var context = settings.context\n return settings.dataFilter.call(context, data, type)\n }\n\n // Empty function, used as default callback\n function empty() {}\n\n $.ajaxJSONP = function(options, deferred){\n if (!('type' in options)) return $.ajax(options)\n\n var _callbackName = options.jsonpCallback,\n callbackName = ($.isFunction(_callbackName) ?\n _callbackName() : _callbackName) || ('Zepto' + (jsonpID++)),\n script = document.createElement('script'),\n originalCallback = window[callbackName],\n responseData,\n abort = function(errorType) {\n $(script).triggerHandler('error', errorType || 'abort')\n },\n xhr = { abort: abort }, abortTimeout\n\n if (deferred) deferred.promise(xhr)\n\n $(script).on('load error', function(e, errorType){\n clearTimeout(abortTimeout)\n $(script).off().remove()\n\n if (e.type == 'error' || !responseData) {\n ajaxError(null, errorType || 'error', xhr, options, deferred)\n } else {\n ajaxSuccess(responseData[0], xhr, options, deferred)\n }\n\n window[callbackName] = originalCallback\n if (responseData && $.isFunction(originalCallback))\n originalCallback(responseData[0])\n\n originalCallback = responseData = undefined\n })\n\n if (ajaxBeforeSend(xhr, options) === false) {\n abort('abort')\n return xhr\n }\n\n window[callbackName] = function(){\n responseData = arguments\n }\n\n script.src = options.url.replace(/\\?(.+)=\\?/, '?$1=' + callbackName)\n document.head.appendChild(script)\n\n if (options.timeout > 0) abortTimeout = setTimeout(function(){\n abort('timeout')\n }, options.timeout)\n\n return xhr\n }\n\n $.ajaxSettings = {\n // Default type of request\n type: 'GET',\n // Callback that is executed before request\n beforeSend: empty,\n // Callback that is executed if the request succeeds\n success: empty,\n // Callback that is executed the the server drops error\n error: empty,\n // Callback that is executed on request complete (both: error and success)\n complete: empty,\n // The context for the callbacks\n context: null,\n // Whether to trigger \"global\" Ajax events\n global: true,\n // Transport\n xhr: function () {\n return new window.XMLHttpRequest()\n },\n // MIME types mapping\n // IIS returns Javascript as \"application/x-javascript\"\n accepts: {\n script: 'text/javascript, application/javascript, application/x-javascript',\n json: jsonType,\n xml: 'application/xml, text/xml',\n html: htmlType,\n text: 'text/plain'\n },\n // Whether the request is to another domain\n crossDomain: false,\n // Default timeout\n timeout: 0,\n // Whether data should be serialized to string\n processData: true,\n // Whether the browser should be allowed to cache GET responses\n cache: true,\n //Used to handle the raw response data of XMLHttpRequest.\n //This is a pre-filtering function to sanitize the response.\n //The sanitized response should be returned\n dataFilter: empty\n }\n\n function mimeToDataType(mime) {\n if (mime) mime = mime.split(';', 2)[0]\n return mime && ( mime == htmlType ? 'html' :\n mime == jsonType ? 'json' :\n scriptTypeRE.test(mime) ? 'script' :\n xmlTypeRE.test(mime) && 'xml' ) || 'text'\n }\n\n function appendQuery(url, query) {\n if (query == '') return url\n return (url + '&' + query).replace(/[&?]{1,2}/, '?')\n }\n\n // serialize payload and append it to the URL for GET requests\n function serializeData(options) {\n if (options.processData && options.data && $.type(options.data) != \"string\")\n options.data = $.param(options.data, options.traditional)\n if (options.data && (!options.type || options.type.toUpperCase() == 'GET' || 'jsonp' == options.dataType))\n options.url = appendQuery(options.url, options.data), options.data = undefined\n }\n\n $.ajax = function(options){\n var settings = $.extend({}, options || {}),\n deferred = $.Deferred && $.Deferred(),\n urlAnchor, hashIndex\n for (key in $.ajaxSettings) if (settings[key] === undefined) settings[key] = $.ajaxSettings[key]\n\n ajaxStart(settings)\n\n if (!settings.crossDomain) {\n urlAnchor = document.createElement('a')\n urlAnchor.href = settings.url\n // cleans up URL for .href (IE only), see https://github.com/madrobby/zepto/pull/1049\n urlAnchor.href = urlAnchor.href\n settings.crossDomain = (originAnchor.protocol + '//' + originAnchor.host) !== (urlAnchor.protocol + '//' + urlAnchor.host)\n }\n\n if (!settings.url) settings.url = window.location.toString()\n if ((hashIndex = settings.url.indexOf('#')) > -1) settings.url = settings.url.slice(0, hashIndex)\n serializeData(settings)\n\n var dataType = settings.dataType, hasPlaceholder = /\\?.+=\\?/.test(settings.url)\n if (hasPlaceholder) dataType = 'jsonp'\n\n if (settings.cache === false || (\n (!options || options.cache !== true) &&\n ('script' == dataType || 'jsonp' == dataType)\n ))\n settings.url = appendQuery(settings.url, '_=' + Date.now())\n\n if ('jsonp' == dataType) {\n if (!hasPlaceholder)\n settings.url = appendQuery(settings.url,\n settings.jsonp ? (settings.jsonp + '=?') : settings.jsonp === false ? '' : 'callback=?')\n return $.ajaxJSONP(settings, deferred)\n }\n\n var mime = settings.accepts[dataType],\n headers = { },\n setHeader = function(name, value) { headers[name.toLowerCase()] = [name, value] },\n protocol = /^([\\w-]+:)\\/\\//.test(settings.url) ? RegExp.$1 : window.location.protocol,\n xhr = settings.xhr(),\n nativeSetHeader = xhr.setRequestHeader,\n abortTimeout\n\n if (deferred) deferred.promise(xhr)\n\n if (!settings.crossDomain) setHeader('X-Requested-With', 'XMLHttpRequest')\n setHeader('Accept', mime || '*/*')\n if (mime = settings.mimeType || mime) {\n if (mime.indexOf(',') > -1) mime = mime.split(',', 2)[0]\n xhr.overrideMimeType && xhr.overrideMimeType(mime)\n }\n if (settings.contentType || (settings.contentType !== false && settings.data && settings.type.toUpperCase() != 'GET'))\n setHeader('Content-Type', settings.contentType || 'application/x-www-form-urlencoded')\n\n if (settings.headers) for (name in settings.headers) setHeader(name, settings.headers[name])\n xhr.setRequestHeader = setHeader\n\n xhr.onreadystatechange = function(){\n if (xhr.readyState == 4) {\n xhr.onreadystatechange = empty\n clearTimeout(abortTimeout)\n var result, error = false\n if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304 || (xhr.status == 0 && protocol == 'file:')) {\n dataType = dataType || mimeToDataType(settings.mimeType || xhr.getResponseHeader('content-type'))\n\n if (xhr.responseType == 'arraybuffer' || xhr.responseType == 'blob')\n result = xhr.response\n else {\n result = xhr.responseText\n\n try {\n // http://perfectionkills.com/global-eval-what-are-the-options/\n // sanitize response accordingly if data filter callback provided\n result = ajaxDataFilter(result, dataType, settings)\n if (dataType == 'script') (1,eval)(result)\n else if (dataType == 'xml') result = xhr.responseXML\n else if (dataType == 'json') result = blankRE.test(result) ? null : $.parseJSON(result)\n } catch (e) { error = e }\n\n if (error) return ajaxError(error, 'parsererror', xhr, settings, deferred)\n }\n\n ajaxSuccess(result, xhr, settings, deferred)\n } else {\n ajaxError(xhr.statusText || null, xhr.status ? 'error' : 'abort', xhr, settings, deferred)\n }\n }\n }\n\n if (ajaxBeforeSend(xhr, settings) === false) {\n xhr.abort()\n ajaxError(null, 'abort', xhr, settings, deferred)\n return xhr\n }\n\n var async = 'async' in settings ? settings.async : true\n xhr.open(settings.type, settings.url, async, settings.username, settings.password)\n\n if (settings.xhrFields) for (name in settings.xhrFields) xhr[name] = settings.xhrFields[name]\n\n for (name in headers) nativeSetHeader.apply(xhr, headers[name])\n\n if (settings.timeout > 0) abortTimeout = setTimeout(function(){\n xhr.onreadystatechange = empty\n xhr.abort()\n ajaxError(null, 'timeout', xhr, settings, deferred)\n }, settings.timeout)\n\n // avoid sending empty string (#319)\n xhr.send(settings.data ? settings.data : null)\n return xhr\n }\n\n // handle optional data/success arguments\n function parseArguments(url, data, success, dataType) {\n if ($.isFunction(data)) dataType = success, success = data, data = undefined\n if (!$.isFunction(success)) dataType = success, success = undefined\n return {\n url: url\n , data: data\n , success: success\n , dataType: dataType\n }\n }\n\n $.get = function(/* url, data, success, dataType */){\n return $.ajax(parseArguments.apply(null, arguments))\n }\n\n $.post = function(/* url, data, success, dataType */){\n var options = parseArguments.apply(null, arguments)\n options.type = 'POST'\n return $.ajax(options)\n }\n\n $.getJSON = function(/* url, data, success */){\n var options = parseArguments.apply(null, arguments)\n options.dataType = 'json'\n return $.ajax(options)\n }\n\n $.fn.load = function(url, data, success){\n if (!this.length) return this\n var self = this, parts = url.split(/\\s/), selector,\n options = parseArguments(url, data, success),\n callback = options.success\n if (parts.length > 1) options.url = parts[0], selector = parts[1]\n options.success = function(response){\n self.html(selector ?\n $('<div>').html(response.replace(rscript, \"\")).find(selector)\n : response)\n callback && callback.apply(self, arguments)\n }\n $.ajax(options)\n return this\n }\n\n var escape = encodeURIComponent\n\n function serialize(params, obj, traditional, scope){\n var type, array = $.isArray(obj), hash = $.isPlainObject(obj)\n $.each(obj, function(key, value) {\n type = $.type(value)\n if (scope) key = traditional ? scope :\n scope + '[' + (hash || type == 'object' || type == 'array' ? key : '') + ']'\n // handle data in serializeArray() format\n if (!scope && array) params.add(value.name, value.value)\n // recurse into nested objects\n else if (type == \"array\" || (!traditional && type == \"object\"))\n serialize(params, value, traditional, key)\n else params.add(key, value)\n })\n }\n\n $.param = function(obj, traditional){\n var params = []\n params.add = function(key, value) {\n if ($.isFunction(value)) value = value()\n if (value == null) value = \"\"\n this.push(escape(key) + '=' + escape(value))\n }\n serialize(params, obj, traditional)\n return params.join('&').replace(/%20/g, '+')\n }\n})(Zepto)\n\n;(function($){\n $.fn.serializeArray = function() {\n var name, type, result = [],\n add = function(value) {\n if (value.forEach) return value.forEach(add)\n result.push({ name: name, value: value })\n }\n if (this[0]) $.each(this[0].elements, function(_, field){\n type = field.type, name = field.name\n if (name && field.nodeName.toLowerCase() != 'fieldset' &&\n !field.disabled && type != 'submit' && type != 'reset' && type != 'button' && type != 'file' &&\n ((type != 'radio' && type != 'checkbox') || field.checked))\n add($(field).val())\n })\n return result\n }\n\n $.fn.serialize = function(){\n var result = []\n this.serializeArray().forEach(function(elm){\n result.push(encodeURIComponent(elm.name) + '=' + encodeURIComponent(elm.value))\n })\n return result.join('&')\n }\n\n $.fn.submit = function(callback) {\n if (0 in arguments) this.bind('submit', callback)\n else if (this.length) {\n var event = $.Event('submit')\n this.eq(0).trigger(event)\n if (!event.isDefaultPrevented()) this.get(0).submit()\n }\n return this\n }\n\n})(Zepto)\n\n;(function(){\n // getComputedStyle shouldn't freak out when called\n // without a valid element as argument\n try {\n getComputedStyle(undefined)\n } catch(e) {\n var nativeGetComputedStyle = getComputedStyle\n window.getComputedStyle = function(element, pseudoElement){\n try {\n return nativeGetComputedStyle(element, pseudoElement)\n } catch(e) {\n return null\n }\n }\n }\n})()\n return Zepto\n}))\n\n}.call(window));","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\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) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\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","!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):t.dayjs=n()}(this,function(){\"use strict\";var t=\"millisecond\",n=\"second\",e=\"minute\",r=\"hour\",i=\"day\",s=\"week\",u=\"month\",a=\"quarter\",o=\"year\",h=/^(\\d{4})-?(\\d{1,2})-?(\\d{0,2})[^0-9]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?.?(\\d{1,3})?$/,f=/\\[([^\\]]+)]|Y{2,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,c=function(t,n,e){var r=String(t);return!r||r.length>=n?t:\"\"+Array(n+1-r.length).join(e)+t},d={s:c,z:function(t){var n=-t.utcOffset(),e=Math.abs(n),r=Math.floor(e/60),i=e%60;return(n<=0?\"+\":\"-\")+c(r,2,\"0\")+\":\"+c(i,2,\"0\")},m:function(t,n){var e=12*(n.year()-t.year())+(n.month()-t.month()),r=t.clone().add(e,u),i=n-r<0,s=t.clone().add(e+(i?-1:1),u);return Number(-(e+(n-r)/(i?r-s:s-r))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(h){return{M:u,y:o,w:s,d:i,h:r,m:e,s:n,ms:t,Q:a}[h]||String(h||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},$={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\")},l=\"en\",m={};m[l]=$;var y=function(t){return t instanceof v},M=function(t,n,e){var r;if(!t)return l;if(\"string\"==typeof t)m[t]&&(r=t),n&&(m[t]=n,r=t);else{var i=t.name;m[i]=t,r=i}return e||(l=r),r},g=function(t,n,e){if(y(t))return t.clone();var r=n?\"string\"==typeof n?{format:n,pl:e}:n:{};return r.date=t,new v(r)},D=d;D.l=M,D.i=y,D.w=function(t,n){return g(t,{locale:n.$L,utc:n.$u})};var v=function(){function c(t){this.$L=this.$L||M(t.locale,null,!0),this.parse(t)}var d=c.prototype;return d.parse=function(t){this.$d=function(t){var n=t.date,e=t.utc;if(null===n)return new Date(NaN);if(D.u(n))return new Date;if(n instanceof Date)return new Date(n);if(\"string\"==typeof n&&!/Z$/i.test(n)){var r=n.match(h);if(r)return e?new Date(Date.UTC(r[1],r[2]-1,r[3]||1,r[4]||0,r[5]||0,r[6]||0,r[7]||0)):new Date(r[1],r[2]-1,r[3]||1,r[4]||0,r[5]||0,r[6]||0,r[7]||0)}return new Date(n)}(t),this.init()},d.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},d.$utils=function(){return D},d.isValid=function(){return!(\"Invalid Date\"===this.$d.toString())},d.isSame=function(t,n){var e=g(t);return this.startOf(n)<=e&&e<=this.endOf(n)},d.isAfter=function(t,n){return g(t)<this.startOf(n)},d.isBefore=function(t,n){return this.endOf(n)<g(t)},d.$g=function(t,n,e){return D.u(t)?this[n]:this.set(e,t)},d.year=function(t){return this.$g(t,\"$y\",o)},d.month=function(t){return this.$g(t,\"$M\",u)},d.day=function(t){return this.$g(t,\"$W\",i)},d.date=function(t){return this.$g(t,\"$D\",\"date\")},d.hour=function(t){return this.$g(t,\"$H\",r)},d.minute=function(t){return this.$g(t,\"$m\",e)},d.second=function(t){return this.$g(t,\"$s\",n)},d.millisecond=function(n){return this.$g(n,\"$ms\",t)},d.unix=function(){return Math.floor(this.valueOf()/1e3)},d.valueOf=function(){return this.$d.getTime()},d.startOf=function(t,a){var h=this,f=!!D.u(a)||a,c=D.p(t),d=function(t,n){var e=D.w(h.$u?Date.UTC(h.$y,n,t):new Date(h.$y,n,t),h);return f?e:e.endOf(i)},$=function(t,n){return D.w(h.toDate()[t].apply(h.toDate(),(f?[0,0,0,0]:[23,59,59,999]).slice(n)),h)},l=this.$W,m=this.$M,y=this.$D,M=\"set\"+(this.$u?\"UTC\":\"\");switch(c){case o:return f?d(1,0):d(31,11);case u:return f?d(1,m):d(0,m+1);case s:var g=this.$locale().weekStart||0,v=(l<g?l+7:l)-g;return d(f?y-v:y+(6-v),m);case i:case\"date\":return $(M+\"Hours\",0);case r:return $(M+\"Minutes\",1);case e:return $(M+\"Seconds\",2);case n:return $(M+\"Milliseconds\",3);default:return this.clone()}},d.endOf=function(t){return this.startOf(t,!1)},d.$set=function(s,a){var h,f=D.p(s),c=\"set\"+(this.$u?\"UTC\":\"\"),d=(h={},h[i]=c+\"Date\",h.date=c+\"Date\",h[u]=c+\"Month\",h[o]=c+\"FullYear\",h[r]=c+\"Hours\",h[e]=c+\"Minutes\",h[n]=c+\"Seconds\",h[t]=c+\"Milliseconds\",h)[f],$=f===i?this.$D+(a-this.$W):a;if(f===u||f===o){var l=this.clone().set(\"date\",1);l.$d[d]($),l.init(),this.$d=l.set(\"date\",Math.min(this.$D,l.daysInMonth())).toDate()}else d&&this.$d[d]($);return this.init(),this},d.set=function(t,n){return this.clone().$set(t,n)},d.get=function(t){return this[D.p(t)]()},d.add=function(t,a){var h,f=this;t=Number(t);var c=D.p(a),d=function(n){var e=g(f);return D.w(e.date(e.date()+Math.round(n*t)),f)};if(c===u)return this.set(u,this.$M+t);if(c===o)return this.set(o,this.$y+t);if(c===i)return d(1);if(c===s)return d(7);var $=(h={},h[e]=6e4,h[r]=36e5,h[n]=1e3,h)[c]||1,l=this.valueOf()+t*$;return D.w(l,this)},d.subtract=function(t,n){return this.add(-1*t,n)},d.format=function(t){var n=this;if(!this.isValid())return\"Invalid Date\";var e=t||\"YYYY-MM-DDTHH:mm:ssZ\",r=D.z(this),i=this.$locale(),s=this.$H,u=this.$m,a=this.$M,o=i.weekdays,h=i.months,c=function(t,r,i,s){return t&&(t[r]||t(n,e))||i[r].substr(0,s)},d=function(t){return D.s(s%12||12,t,\"0\")},$=i.meridiem||function(t,n,e){var r=t<12?\"AM\":\"PM\";return e?r.toLowerCase():r},l={YY:String(this.$y).slice(-2),YYYY:this.$y,M:a+1,MM:D.s(a+1,2,\"0\"),MMM:c(i.monthsShort,a,h,3),MMMM:h[a]||h(this,e),D:this.$D,DD:D.s(this.$D,2,\"0\"),d:String(this.$W),dd:c(i.weekdaysMin,this.$W,o,2),ddd:c(i.weekdaysShort,this.$W,o,3),dddd:o[this.$W],H:String(s),HH:D.s(s,2,\"0\"),h:d(1),hh:d(2),a:$(s,u,!0),A:$(s,u,!1),m:String(u),mm:D.s(u,2,\"0\"),s:String(this.$s),ss:D.s(this.$s,2,\"0\"),SSS:D.s(this.$ms,3,\"0\"),Z:r};return e.replace(f,function(t,n){return n||l[t]||r.replace(\":\",\"\")})},d.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},d.diff=function(t,h,f){var c,d=D.p(h),$=g(t),l=6e4*($.utcOffset()-this.utcOffset()),m=this-$,y=D.m(this,$);return y=(c={},c[o]=y/12,c[u]=y,c[a]=y/3,c[s]=(m-l)/6048e5,c[i]=(m-l)/864e5,c[r]=m/36e5,c[e]=m/6e4,c[n]=m/1e3,c)[d]||m,f?y:D.a(y)},d.daysInMonth=function(){return this.endOf(u).$D},d.$locale=function(){return m[this.$L]},d.locale=function(t,n){if(!t)return this.$L;var e=this.clone();return e.$L=M(t,n,!0),e},d.clone=function(){return D.w(this.toDate(),this)},d.toDate=function(){return new Date(this.$d)},d.toJSON=function(){return this.isValid()?this.toISOString():null},d.toISOString=function(){return this.$d.toISOString()},d.toString=function(){return this.$d.toUTCString()},c}();return g.prototype=v.prototype,g.extend=function(t,n){return t(n,v,g),g},g.locale=M,g.isDayjs=y,g.unix=function(t){return g(1e3*t)},g.en=m[l],g.Ls=m,g});\n","( function _package( factory ){\r\n\tif( typeof define === 'function' && define.amd ){\r\n\t\tdefine( [ 'mithril' ], factory )\r\n\t}\r\n\telse if( typeof exports === 'object' ){\r\n\t\tmodule.exports = factory( require( 'mithril' ) )\r\n\t}\r\n\telse{\r\n\t\tfactory( m )\r\n\t}\r\n}( function define( m ){\r\n\tfunction bidi( node, prop ){\r\n\t\tvar type = node.tag === 'select'\r\n\t\t\t? node.attrs.multi\r\n\t\t\t\t? 'multi'\r\n\t\t\t\t: 'select'\r\n\t\t\t: node.attrs.type\r\n\r\n\t\t// Setup: bind listeners\r\n\t\tif( type === 'multi' ){\r\n\t\t\tnode.attrs.onchange = function(){\r\n\t\t\t\tprop( [].slice.call( this.selectedOptions, function( x ){\r\n\t\t\t\t\treturn x.value\r\n\t\t\t\t} ) )\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if( type === 'select' ){\r\n\t\t\tnode.attrs.onchange = function( e ){\r\n\t\t\t\tprop( this.selectedOptions[ 0 ].value )\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if( type === 'checkbox' ){\r\n\t\t\tnode.attrs.onchange = function( e ){\r\n\t\t\t\tprop( this.checked )\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tnode.attrs.onchange = node.attrs.oninput = function( e ){\r\n\t\t\t\tprop( this.value )\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif( node.tag === 'select' ){\r\n\t\t\tnode.children.forEach( function( option ){\r\n\t\t\t\tif( option.attrs.value === prop() || option.children[ 0 ] === prop() ){\r\n\t\t\t\t\toption.attrs.selected = true\r\n\t\t\t\t}\r\n\t\t\t} )\r\n\t\t}\r\n\t\telse if( type === 'checkbox' ){\r\n\t\t\tnode.attrs.checked = prop()\r\n\t\t}\r\n\t\telse if( type === 'radio' ){\r\n\t\t\tnode.attrs.checked = prop() === node.attrs.value\r\n\t\t}\r\n\t\telse {\r\n\t\t\tnode.attrs.value = prop()\r\n\t\t}\r\n\r\n\t\treturn node\r\n\t}\r\n\r\n\tbidi.view = function( ctrl, node, prop ){\r\n\t return bidi( node, node.attrs.bidi )\r\n\t}\r\n\r\n\tif( m.attrs ) m.attrs.bidi = bidi\r\n\t\r\n\tm.bidi = bidi\r\n\r\n\treturn bidi\r\n} ) )\r\n","\"use strict\"\n\nvar hyperscript = require(\"./hyperscript\")\nvar request = require(\"./request\")\nvar mountRedraw = require(\"./mount-redraw\")\n\nvar m = function m() { return hyperscript.apply(this, arguments) }\nm.m = hyperscript\nm.trust = hyperscript.trust\nm.fragment = hyperscript.fragment\nm.mount = mountRedraw.mount\nm.route = require(\"./route\")\nm.render = require(\"./render\")\nm.redraw = mountRedraw.redraw\nm.request = request.request\nm.jsonp = request.jsonp\nm.parseQueryString = require(\"./querystring/parse\")\nm.buildQueryString = require(\"./querystring/build\")\nm.parsePathname = require(\"./pathname/parse\")\nm.buildPathname = require(\"./pathname/build\")\nm.vnode = require(\"./render/vnode\")\nm.PromisePolyfill = require(\"./promise/polyfill\")\n\nmodule.exports = m\n","/*global define:false */\n/**\n * Copyright 2012-2017 Craig Campbell\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * Mousetrap is a simple keyboard shortcut library for Javascript with\n * no external dependencies\n *\n * @version 1.6.3\n * @url craig.is/killing/mice\n */\n(function(window, document, undefined) {\n\n // Check if mousetrap is used inside browser, if not, return\n if (!window) {\n return;\n }\n\n /**\n * mapping of special keycodes to their corresponding keys\n *\n * everything in this dictionary cannot use keypress events\n * so it has to be here to map to the correct keycodes for\n * keyup/keydown events\n *\n * @type {Object}\n */\n var _MAP = {\n 8: 'backspace',\n 9: 'tab',\n 13: 'enter',\n 16: 'shift',\n 17: 'ctrl',\n 18: 'alt',\n 20: 'capslock',\n 27: 'esc',\n 32: 'space',\n 33: 'pageup',\n 34: 'pagedown',\n 35: 'end',\n 36: 'home',\n 37: 'left',\n 38: 'up',\n 39: 'right',\n 40: 'down',\n 45: 'ins',\n 46: 'del',\n 91: 'meta',\n 93: 'meta',\n 224: 'meta'\n };\n\n /**\n * mapping for special characters so they can support\n *\n * this dictionary is only used incase you want to bind a\n * keyup or keydown event to one of these keys\n *\n * @type {Object}\n */\n var _KEYCODE_MAP = {\n 106: '*',\n 107: '+',\n 109: '-',\n 110: '.',\n 111 : '/',\n 186: ';',\n 187: '=',\n 188: ',',\n 189: '-',\n 190: '.',\n 191: '/',\n 192: '`',\n 219: '[',\n 220: '\\\\',\n 221: ']',\n 222: '\\''\n };\n\n /**\n * this is a mapping of keys that require shift on a US keypad\n * back to the non shift equivelents\n *\n * this is so you can use keyup events with these keys\n *\n * note that this will only work reliably on US keyboards\n *\n * @type {Object}\n */\n var _SHIFT_MAP = {\n '~': '`',\n '!': '1',\n '@': '2',\n '#': '3',\n '$': '4',\n '%': '5',\n '^': '6',\n '&': '7',\n '*': '8',\n '(': '9',\n ')': '0',\n '_': '-',\n '+': '=',\n ':': ';',\n '\\\"': '\\'',\n '<': ',',\n '>': '.',\n '?': '/',\n '|': '\\\\'\n };\n\n /**\n * this is a list of special strings you can use to map\n * to modifier keys when you specify your keyboard shortcuts\n *\n * @type {Object}\n */\n var _SPECIAL_ALIASES = {\n 'option': 'alt',\n 'command': 'meta',\n 'return': 'enter',\n 'escape': 'esc',\n 'plus': '+',\n 'mod': /Mac|iPod|iPhone|iPad/.test(navigator.platform) ? 'meta' : 'ctrl'\n };\n\n /**\n * variable to store the flipped version of _MAP from above\n * needed to check if we should use keypress or not when no action\n * is specified\n *\n * @type {Object|undefined}\n */\n var _REVERSE_MAP;\n\n /**\n * loop through the f keys, f1 to f19 and add them to the map\n * programatically\n */\n for (var i = 1; i < 20; ++i) {\n _MAP[111 + i] = 'f' + i;\n }\n\n /**\n * loop through to map numbers on the numeric keypad\n */\n for (i = 0; i <= 9; ++i) {\n\n // This needs to use a string cause otherwise since 0 is falsey\n // mousetrap will never fire for numpad 0 pressed as part of a keydown\n // event.\n //\n // @see https://github.com/ccampbell/mousetrap/pull/258\n _MAP[i + 96] = i.toString();\n }\n\n /**\n * cross browser add event method\n *\n * @param {Element|HTMLDocument} object\n * @param {string} type\n * @param {Function} callback\n * @returns void\n */\n function _addEvent(object, type, callback) {\n if (object.addEventListener) {\n object.addEventListener(type, callback, false);\n return;\n }\n\n object.attachEvent('on' + type, callback);\n }\n\n /**\n * takes the event and returns the key character\n *\n * @param {Event} e\n * @return {string}\n */\n function _characterFromEvent(e) {\n\n // for keypress events we should return the character as is\n if (e.type == 'keypress') {\n var character = String.fromCharCode(e.which);\n\n // if the shift key is not pressed then it is safe to assume\n // that we want the character to be lowercase. this means if\n // you accidentally have caps lock on then your key bindings\n // will continue to work\n //\n // the only side effect that might not be desired is if you\n // bind something like 'A' cause you want to trigger an\n // event when capital A is pressed caps lock will no longer\n // trigger the event. shift+a will though.\n if (!e.shiftKey) {\n character = character.toLowerCase();\n }\n\n return character;\n }\n\n // for non keypress events the special maps are needed\n if (_MAP[e.which]) {\n return _MAP[e.which];\n }\n\n if (_KEYCODE_MAP[e.which]) {\n return _KEYCODE_MAP[e.which];\n }\n\n // if it is not in the special map\n\n // with keydown and keyup events the character seems to always\n // come in as an uppercase character whether you are pressing shift\n // or not. we should make sure it is always lowercase for comparisons\n return String.fromCharCode(e.which).toLowerCase();\n }\n\n /**\n * checks if two arrays are equal\n *\n * @param {Array} modifiers1\n * @param {Array} modifiers2\n * @returns {boolean}\n */\n function _modifiersMatch(modifiers1, modifiers2) {\n return modifiers1.sort().join(',') === modifiers2.sort().join(',');\n }\n\n /**\n * takes a key event and figures out what the modifiers are\n *\n * @param {Event} e\n * @returns {Array}\n */\n function _eventModifiers(e) {\n var modifiers = [];\n\n if (e.shiftKey) {\n modifiers.push('shift');\n }\n\n if (e.altKey) {\n modifiers.push('alt');\n }\n\n if (e.ctrlKey) {\n modifiers.push('ctrl');\n }\n\n if (e.metaKey) {\n modifiers.push('meta');\n }\n\n return modifiers;\n }\n\n /**\n * prevents default for this event\n *\n * @param {Event} e\n * @returns void\n */\n function _preventDefault(e) {\n if (e.preventDefault) {\n e.preventDefault();\n return;\n }\n\n e.returnValue = false;\n }\n\n /**\n * stops propogation for this event\n *\n * @param {Event} e\n * @returns void\n */\n function _stopPropagation(e) {\n if (e.stopPropagation) {\n e.stopPropagation();\n return;\n }\n\n e.cancelBubble = true;\n }\n\n /**\n * determines if the keycode specified is a modifier key or not\n *\n * @param {string} key\n * @returns {boolean}\n */\n function _isModifier(key) {\n return key == 'shift' || key == 'ctrl' || key == 'alt' || key == 'meta';\n }\n\n /**\n * reverses the map lookup so that we can look for specific keys\n * to see what can and can't use keypress\n *\n * @return {Object}\n */\n function _getReverseMap() {\n if (!_REVERSE_MAP) {\n _REVERSE_MAP = {};\n for (var key in _MAP) {\n\n // pull out the numeric keypad from here cause keypress should\n // be able to detect the keys from the character\n if (key > 95 && key < 112) {\n continue;\n }\n\n if (_MAP.hasOwnProperty(key)) {\n _REVERSE_MAP[_MAP[key]] = key;\n }\n }\n }\n return _REVERSE_MAP;\n }\n\n /**\n * picks the best action based on the key combination\n *\n * @param {string} key - character for key\n * @param {Array} modifiers\n * @param {string=} action passed in\n */\n function _pickBestAction(key, modifiers, action) {\n\n // if no action was picked in we should try to pick the one\n // that we think would work best for this key\n if (!action) {\n action = _getReverseMap()[key] ? 'keydown' : 'keypress';\n }\n\n // modifier keys don't work as expected with keypress,\n // switch to keydown\n if (action == 'keypress' && modifiers.length) {\n action = 'keydown';\n }\n\n return action;\n }\n\n /**\n * Converts from a string key combination to an array\n *\n * @param {string} combination like \"command+shift+l\"\n * @return {Array}\n */\n function _keysFromString(combination) {\n if (combination === '+') {\n return ['+'];\n }\n\n combination = combination.replace(/\\+{2}/g, '+plus');\n return combination.split('+');\n }\n\n /**\n * Gets info for a specific key combination\n *\n * @param {string} combination key combination (\"command+s\" or \"a\" or \"*\")\n * @param {string=} action\n * @returns {Object}\n */\n function _getKeyInfo(combination, action) {\n var keys;\n var key;\n var i;\n var modifiers = [];\n\n // take the keys from this pattern and figure out what the actual\n // pattern is all about\n keys = _keysFromString(combination);\n\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n\n // normalize key names\n if (_SPECIAL_ALIASES[key]) {\n key = _SPECIAL_ALIASES[key];\n }\n\n // if this is not a keypress event then we should\n // be smart about using shift keys\n // this will only work for US keyboards however\n if (action && action != 'keypress' && _SHIFT_MAP[key]) {\n key = _SHIFT_MAP[key];\n modifiers.push('shift');\n }\n\n // if this key is a modifier then add it to the list of modifiers\n if (_isModifier(key)) {\n modifiers.push(key);\n }\n }\n\n // depending on what the key combination is\n // we will try to pick the best event for it\n action = _pickBestAction(key, modifiers, action);\n\n return {\n key: key,\n modifiers: modifiers,\n action: action\n };\n }\n\n function _belongsTo(element, ancestor) {\n if (element === null || element === document) {\n return false;\n }\n\n if (element === ancestor) {\n return true;\n }\n\n return _belongsTo(element.parentNode, ancestor);\n }\n\n function Mousetrap(targetElement) {\n var self = this;\n\n targetElement = targetElement || document;\n\n if (!(self instanceof Mousetrap)) {\n return new Mousetrap(targetElement);\n }\n\n /**\n * element to attach key events to\n *\n * @type {Element}\n */\n self.target = targetElement;\n\n /**\n * a list of all the callbacks setup via Mousetrap.bind()\n *\n * @type {Object}\n */\n self._callbacks = {};\n\n /**\n * direct map of string combinations to callbacks used for trigger()\n *\n * @type {Object}\n */\n self._directMap = {};\n\n /**\n * keeps track of what level each sequence is at since multiple\n * sequences can start out with the same sequence\n *\n * @type {Object}\n */\n var _sequenceLevels = {};\n\n /**\n * variable to store the setTimeout call\n *\n * @type {null|number}\n */\n var _resetTimer;\n\n /**\n * temporary state where we will ignore the next keyup\n *\n * @type {boolean|string}\n */\n var _ignoreNextKeyup = false;\n\n /**\n * temporary state where we will ignore the next keypress\n *\n * @type {boolean}\n */\n var _ignoreNextKeypress = false;\n\n /**\n * are we currently inside of a sequence?\n * type of action (\"keyup\" or \"keydown\" or \"keypress\") or false\n *\n * @type {boolean|string}\n */\n var _nextExpectedAction = false;\n\n /**\n * resets all sequence counters except for the ones passed in\n *\n * @param {Object} doNotReset\n * @returns void\n */\n function _resetSequences(doNotReset) {\n doNotReset = doNotReset || {};\n\n var activeSequences = false,\n key;\n\n for (key in _sequenceLevels) {\n if (doNotReset[key]) {\n activeSequences = true;\n continue;\n }\n _sequenceLevels[key] = 0;\n }\n\n if (!activeSequences) {\n _nextExpectedAction = false;\n }\n }\n\n /**\n * finds all callbacks that match based on the keycode, modifiers,\n * and action\n *\n * @param {string} character\n * @param {Array} modifiers\n * @param {Event|Object} e\n * @param {string=} sequenceName - name of the sequence we are looking for\n * @param {string=} combination\n * @param {number=} level\n * @returns {Array}\n */\n function _getMatches(character, modifiers, e, sequenceName, combination, level) {\n var i;\n var callback;\n var matches = [];\n var action = e.type;\n\n // if there are no events related to this keycode\n if (!self._callbacks[character]) {\n return [];\n }\n\n // if a modifier key is coming up on its own we should allow it\n if (action == 'keyup' && _isModifier(character)) {\n modifiers = [character];\n }\n\n // loop through all callbacks for the key that was pressed\n // and see if any of them match\n for (i = 0; i < self._callbacks[character].length; ++i) {\n callback = self._callbacks[character][i];\n\n // if a sequence name is not specified, but this is a sequence at\n // the wrong level then move onto the next match\n if (!sequenceName && callback.seq && _sequenceLevels[callback.seq] != callback.level) {\n continue;\n }\n\n // if the action we are looking for doesn't match the action we got\n // then we should keep going\n if (action != callback.action) {\n continue;\n }\n\n // if this is a keypress event and the meta key and control key\n // are not pressed that means that we need to only look at the\n // character, otherwise check the modifiers as well\n //\n // chrome will not fire a keypress if meta or control is down\n // safari will fire a keypress if meta or meta+shift is down\n // firefox will fire a keypress if meta or control is down\n if ((action == 'keypress' && !e.metaKey && !e.ctrlKey) || _modifiersMatch(modifiers, callback.modifiers)) {\n\n // when you bind a combination or sequence a second time it\n // should overwrite the first one. if a sequenceName or\n // combination is specified in this call it does just that\n //\n // @todo make deleting its own method?\n var deleteCombo = !sequenceName && callback.combo == combination;\n var deleteSequence = sequenceName && callback.seq == sequenceName && callback.level == level;\n if (deleteCombo || deleteSequence) {\n self._callbacks[character].splice(i, 1);\n }\n\n matches.push(callback);\n }\n }\n\n return matches;\n }\n\n /**\n * actually calls the callback function\n *\n * if your callback function returns false this will use the jquery\n * convention - prevent default and stop propogation on the event\n *\n * @param {Function} callback\n * @param {Event} e\n * @returns void\n */\n function _fireCallback(callback, e, combo, sequence) {\n\n // if this event should not happen stop here\n if (self.stopCallback(e, e.target || e.srcElement, combo, sequence)) {\n return;\n }\n\n if (callback(e, combo) === false) {\n _preventDefault(e);\n _stopPropagation(e);\n }\n }\n\n /**\n * handles a character key event\n *\n * @param {string} character\n * @param {Array} modifiers\n * @param {Event} e\n * @returns void\n */\n self._handleKey = function(character, modifiers, e) {\n var callbacks = _getMatches(character, modifiers, e);\n var i;\n var doNotReset = {};\n var maxLevel = 0;\n var processedSequenceCallback = false;\n\n // Calculate the maxLevel for sequences so we can only execute the longest callback sequence\n for (i = 0; i < callbacks.length; ++i) {\n if (callbacks[i].seq) {\n maxLevel = Math.max(maxLevel, callbacks[i].level);\n }\n }\n\n // loop through matching callbacks for this key event\n for (i = 0; i < callbacks.length; ++i) {\n\n // fire for all sequence callbacks\n // this is because if for example you have multiple sequences\n // bound such as \"g i\" and \"g t\" they both need to fire the\n // callback for matching g cause otherwise you can only ever\n // match the first one\n if (callbacks[i].seq) {\n\n // only fire callbacks for the maxLevel to prevent\n // subsequences from also firing\n //\n // for example 'a option b' should not cause 'option b' to fire\n // even though 'option b' is part of the other sequence\n //\n // any sequences that do not match here will be discarded\n // below by the _resetSequences call\n if (callbacks[i].level != maxLevel) {\n continue;\n }\n\n processedSequenceCallback = true;\n\n // keep a list of which sequences were matches for later\n doNotReset[callbacks[i].seq] = 1;\n _fireCallback(callbacks[i].callback, e, callbacks[i].combo, callbacks[i].seq);\n continue;\n }\n\n // if there were no sequence matches but we are still here\n // that means this is a regular match so we should fire that\n if (!processedSequenceCallback) {\n _fireCallback(callbacks[i].callback, e, callbacks[i].combo);\n }\n }\n\n // if the key you pressed matches the type of sequence without\n // being a modifier (ie \"keyup\" or \"keypress\") then we should\n // reset all sequences that were not matched by this event\n //\n // this is so, for example, if you have the sequence \"h a t\" and you\n // type \"h e a r t\" it does not match. in this case the \"e\" will\n // cause the sequence to reset\n //\n // modifier keys are ignored because you can have a sequence\n // that contains modifiers such as \"enter ctrl+space\" and in most\n // cases the modifier key will be pressed before the next key\n //\n // also if you have a sequence such as \"ctrl+b a\" then pressing the\n // \"b\" key will trigger a \"keypress\" and a \"keydown\"\n //\n // the \"keydown\" is expected when there is a modifier, but the\n // \"keypress\" ends up matching the _nextExpectedAction since it occurs\n // after and that causes the sequence to reset\n //\n // we ignore keypresses in a sequence that directly follow a keydown\n // for the same character\n var ignoreThisKeypress = e.type == 'keypress' && _ignoreNextKeypress;\n if (e.type == _nextExpectedAction && !_isModifier(character) && !ignoreThisKeypress) {\n _resetSequences(doNotReset);\n }\n\n _ignoreNextKeypress = processedSequenceCallback && e.type == 'keydown';\n };\n\n /**\n * handles a keydown event\n *\n * @param {Event} e\n * @returns void\n */\n function _handleKeyEvent(e) {\n\n // normalize e.which for key events\n // @see http://stackoverflow.com/questions/4285627/javascript-keycode-vs-charcode-utter-confusion\n if (typeof e.which !== 'number') {\n e.which = e.keyCode;\n }\n\n var character = _characterFromEvent(e);\n\n // no character found then stop\n if (!character) {\n return;\n }\n\n // need to use === for the character check because the character can be 0\n if (e.type == 'keyup' && _ignoreNextKeyup === character) {\n _ignoreNextKeyup = false;\n return;\n }\n\n self.handleKey(character, _eventModifiers(e), e);\n }\n\n /**\n * called to set a 1 second timeout on the specified sequence\n *\n * this is so after each key press in the sequence you have 1 second\n * to press the next key before you have to start over\n *\n * @returns void\n */\n function _resetSequenceTimer() {\n clearTimeout(_resetTimer);\n _resetTimer = setTimeout(_resetSequences, 1000);\n }\n\n /**\n * binds a key sequence to an event\n *\n * @param {string} combo - combo specified in bind call\n * @param {Array} keys\n * @param {Function} callback\n * @param {string=} action\n * @returns void\n */\n function _bindSequence(combo, keys, callback, action) {\n\n // start off by adding a sequence level record for this combination\n // and setting the level to 0\n _sequenceLevels[combo] = 0;\n\n /**\n * callback to increase the sequence level for this sequence and reset\n * all other sequences that were active\n *\n * @param {string} nextAction\n * @returns {Function}\n */\n function _increaseSequence(nextAction) {\n return function() {\n _nextExpectedAction = nextAction;\n ++_sequenceLevels[combo];\n _resetSequenceTimer();\n };\n }\n\n /**\n * wraps the specified callback inside of another function in order\n * to reset all sequence counters as soon as this sequence is done\n *\n * @param {Event} e\n * @returns void\n */\n function _callbackAndReset(e) {\n _fireCallback(callback, e, combo);\n\n // we should ignore the next key up if the action is key down\n // or keypress. this is so if you finish a sequence and\n // release the key the final key will not trigger a keyup\n if (action !== 'keyup') {\n _ignoreNextKeyup = _characterFromEvent(e);\n }\n\n // weird race condition if a sequence ends with the key\n // another sequence begins with\n setTimeout(_resetSequences, 10);\n }\n\n // loop through keys one at a time and bind the appropriate callback\n // function. for any key leading up to the final one it should\n // increase the sequence. after the final, it should reset all sequences\n //\n // if an action is specified in the original bind call then that will\n // be used throughout. otherwise we will pass the action that the\n // next key in the sequence should match. this allows a sequence\n // to mix and match keypress and keydown events depending on which\n // ones are better suited to the key provided\n for (var i = 0; i < keys.length; ++i) {\n var isFinal = i + 1 === keys.length;\n var wrappedCallback = isFinal ? _callbackAndReset : _increaseSequence(action || _getKeyInfo(keys[i + 1]).action);\n _bindSingle(keys[i], wrappedCallback, action, combo, i);\n }\n }\n\n /**\n * binds a single keyboard combination\n *\n * @param {string} combination\n * @param {Function} callback\n * @param {string=} action\n * @param {string=} sequenceName - name of sequence if part of sequence\n * @param {number=} level - what part of the sequence the command is\n * @returns void\n */\n function _bindSingle(combination, callback, action, sequenceName, level) {\n\n // store a direct mapped reference for use with Mousetrap.trigger\n self._directMap[combination + ':' + action] = callback;\n\n // make sure multiple spaces in a row become a single space\n combination = combination.replace(/\\s+/g, ' ');\n\n var sequence = combination.split(' ');\n var info;\n\n // if this pattern is a sequence of keys then run through this method\n // to reprocess each pattern one key at a time\n if (sequence.length > 1) {\n _bindSequence(combination, sequence, callback, action);\n return;\n }\n\n info = _getKeyInfo(combination, action);\n\n // make sure to initialize array if this is the first time\n // a callback is added for this key\n self._callbacks[info.key] = self._callbacks[info.key] || [];\n\n // remove an existing match if there is one\n _getMatches(info.key, info.modifiers, {type: info.action}, sequenceName, combination, level);\n\n // add this call back to the array\n // if it is a sequence put it at the beginning\n // if not put it at the end\n //\n // this is important because the way these are processed expects\n // the sequence ones to come first\n self._callbacks[info.key][sequenceName ? 'unshift' : 'push']({\n callback: callback,\n modifiers: info.modifiers,\n action: info.action,\n seq: sequenceName,\n level: level,\n combo: combination\n });\n }\n\n /**\n * binds multiple combinations to the same callback\n *\n * @param {Array} combinations\n * @param {Function} callback\n * @param {string|undefined} action\n * @returns void\n */\n self._bindMultiple = function(combinations, callback, action) {\n for (var i = 0; i < combinations.length; ++i) {\n _bindSingle(combinations[i], callback, action);\n }\n };\n\n // start!\n _addEvent(targetElement, 'keypress', _handleKeyEvent);\n _addEvent(targetElement, 'keydown', _handleKeyEvent);\n _addEvent(targetElement, 'keyup', _handleKeyEvent);\n }\n\n /**\n * binds an event to mousetrap\n *\n * can be a single key, a combination of keys separated with +,\n * an array of keys, or a sequence of keys separated by spaces\n *\n * be sure to list the modifier keys first to make sure that the\n * correct key ends up getting bound (the last key in the pattern)\n *\n * @param {string|Array} keys\n * @param {Function} callback\n * @param {string=} action - 'keypress', 'keydown', or 'keyup'\n * @returns void\n */\n Mousetrap.prototype.bind = function(keys, callback, action) {\n var self = this;\n keys = keys instanceof Array ? keys : [keys];\n self._bindMultiple.call(self, keys, callback, action);\n return self;\n };\n\n /**\n * unbinds an event to mousetrap\n *\n * the unbinding sets the callback function of the specified key combo\n * to an empty function and deletes the corresponding key in the\n * _directMap dict.\n *\n * TODO: actually remove this from the _callbacks dictionary instead\n * of binding an empty function\n *\n * the keycombo+action has to be exactly the same as\n * it was defined in the bind method\n *\n * @param {string|Array} keys\n * @param {string} action\n * @returns void\n */\n Mousetrap.prototype.unbind = function(keys, action) {\n var self = this;\n return self.bind.call(self, keys, function() {}, action);\n };\n\n /**\n * triggers an event that has already been bound\n *\n * @param {string} keys\n * @param {string=} action\n * @returns void\n */\n Mousetrap.prototype.trigger = function(keys, action) {\n var self = this;\n if (self._directMap[keys + ':' + action]) {\n self._directMap[keys + ':' + action]({}, keys);\n }\n return self;\n };\n\n /**\n * resets the library back to its initial state. this is useful\n * if you want to clear out the current keyboard shortcuts and bind\n * new ones - for example if you switch to another page\n *\n * @returns void\n */\n Mousetrap.prototype.reset = function() {\n var self = this;\n self._callbacks = {};\n self._directMap = {};\n return self;\n };\n\n /**\n * should we stop this event before firing off callbacks\n *\n * @param {Event} e\n * @param {Element} element\n * @return {boolean}\n */\n Mousetrap.prototype.stopCallback = function(e, element) {\n var self = this;\n\n // if the element has the class \"mousetrap\" then no need to stop\n if ((' ' + element.className + ' ').indexOf(' mousetrap ') > -1) {\n return false;\n }\n\n if (_belongsTo(element, self.target)) {\n return false;\n }\n\n // Events originating from a shadow DOM are re-targetted and `e.target` is the shadow host,\n // not the initial event target in the shadow tree. Note that not all events cross the\n // shadow boundary.\n // For shadow trees with `mode: 'open'`, the initial event target is the first element in\n // the event’s composed path. For shadow trees with `mode: 'closed'`, the initial event\n // target cannot be obtained.\n if ('composedPath' in e && typeof e.composedPath === 'function') {\n // For open shadow trees, update `element` so that the following check works.\n var initialEventTarget = e.composedPath()[0];\n if (initialEventTarget !== e.target) {\n element = initialEventTarget;\n }\n }\n\n // stop for input, select, and textarea\n return element.tagName == 'INPUT' || element.tagName == 'SELECT' || element.tagName == 'TEXTAREA' || element.isContentEditable;\n };\n\n /**\n * exposes _handleKey publicly so it can be overwritten by extensions\n */\n Mousetrap.prototype.handleKey = function() {\n var self = this;\n return self._handleKey.apply(self, arguments);\n };\n\n /**\n * allow custom key mappings\n */\n Mousetrap.addKeycodes = function(object) {\n for (var key in object) {\n if (object.hasOwnProperty(key)) {\n _MAP[key] = object[key];\n }\n }\n _REVERSE_MAP = null;\n };\n\n /**\n * Init the global mousetrap functions\n *\n * This method is needed to allow the global mousetrap functions to work\n * now that mousetrap is a constructor function.\n */\n Mousetrap.init = function() {\n var documentMousetrap = Mousetrap(document);\n for (var method in documentMousetrap) {\n if (method.charAt(0) !== '_') {\n Mousetrap[method] = (function(method) {\n return function() {\n return documentMousetrap[method].apply(documentMousetrap, arguments);\n };\n } (method));\n }\n }\n };\n\n Mousetrap.init();\n\n // expose mousetrap to the global object\n window.Mousetrap = Mousetrap;\n\n // expose as a common js module\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = Mousetrap;\n }\n\n // expose mousetrap as an AMD module\n if (typeof define === 'function' && define.amd) {\n define(function() {\n return Mousetrap;\n });\n }\n}) (typeof window !== 'undefined' ? window : null, typeof window !== 'undefined' ? document : null);\n","/* ========================================================================\n * Bootstrap: dropdown.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // DROPDOWN CLASS DEFINITION\n // =========================\n\n var backdrop = '.dropdown-backdrop'\n var toggle = '[data-toggle=\"dropdown\"]'\n var Dropdown = function (element) {\n $(element).on('click.bs.dropdown', this.toggle)\n }\n\n Dropdown.VERSION = '3.4.1'\n\n function getParent($this) {\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = selector !== '#' ? $(document).find(selector) : null\n\n return $parent && $parent.length ? $parent : $this.parent()\n }\n\n function clearMenus(e) {\n if (e && e.which === 3) return\n $(backdrop).remove()\n $(toggle).each(function () {\n var $this = $(this)\n var $parent = getParent($this)\n var relatedTarget = { relatedTarget: this }\n\n if (!$parent.hasClass('open')) return\n\n if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\n\n $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this.attr('aria-expanded', 'false')\n $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))\n })\n }\n\n Dropdown.prototype.toggle = function (e) {\n var $this = $(this)\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n clearMenus()\n\n if (!isActive) {\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n // if mobile we use a backdrop because click events don't delegate\n $(document.createElement('div'))\n .addClass('dropdown-backdrop')\n .insertAfter($(this))\n .on('click', clearMenus)\n }\n\n var relatedTarget = { relatedTarget: this }\n $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this\n .trigger('focus')\n .attr('aria-expanded', 'true')\n\n $parent\n .toggleClass('open')\n .trigger($.Event('shown.bs.dropdown', relatedTarget))\n }\n\n return false\n }\n\n Dropdown.prototype.keydown = function (e) {\n if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\n\n var $this = $(this)\n\n e.preventDefault()\n e.stopPropagation()\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n if (!isActive && e.which != 27 || isActive && e.which == 27) {\n if (e.which == 27) $parent.find(toggle).trigger('focus')\n return $this.trigger('click')\n }\n\n var desc = ' li:not(.disabled):visible a'\n var $items = $parent.find('.dropdown-menu' + desc)\n\n if (!$items.length) return\n\n var index = $items.index(e.target)\n\n if (e.which == 38 && index > 0) index-- // up\n if (e.which == 40 && index < $items.length - 1) index++ // down\n if (!~index) index = 0\n\n $items.eq(index).trigger('focus')\n }\n\n\n // DROPDOWN PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.dropdown')\n\n if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.dropdown\n\n $.fn.dropdown = Plugin\n $.fn.dropdown.Constructor = Dropdown\n\n\n // DROPDOWN NO CONFLICT\n // ====================\n\n $.fn.dropdown.noConflict = function () {\n $.fn.dropdown = old\n return this\n }\n\n\n // APPLY TO STANDARD DROPDOWN ELEMENTS\n // ===================================\n\n $(document)\n .on('click.bs.dropdown.data-api', clearMenus)\n .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\n .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: transition.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#transitions\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CSS TRANSITION SUPPORT (Shoutout: https://modernizr.com/)\n // ============================================================\n\n function transitionEnd() {\n var el = document.createElement('bootstrap')\n\n var transEndEventNames = {\n WebkitTransition : 'webkitTransitionEnd',\n MozTransition : 'transitionend',\n OTransition : 'oTransitionEnd otransitionend',\n transition : 'transitionend'\n }\n\n for (var name in transEndEventNames) {\n if (el.style[name] !== undefined) {\n return { end: transEndEventNames[name] }\n }\n }\n\n return false // explicit for ie8 ( ._.)\n }\n\n // https://blog.alexmaccaw.com/css-transitions\n $.fn.emulateTransitionEnd = function (duration) {\n var called = false\n var $el = this\n $(this).one('bsTransitionEnd', function () { called = true })\n var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n setTimeout(callback, duration)\n return this\n }\n\n $(function () {\n $.support.transition = transitionEnd()\n\n if (!$.support.transition) return\n\n $.event.special.bsTransitionEnd = {\n bindType: $.support.transition.end,\n delegateType: $.support.transition.end,\n handle: function (e) {\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n }\n }\n })\n\n}(jQuery);\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):e.dayjs_plugin_localizedFormat=t()}(this,function(){\"use strict\";return function(e,t,o){var n=t.prototype,r=n.format,M={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"};o.en.formats=M;n.format=function(e){void 0===e&&(e=\"YYYY-MM-DDTHH:mm:ssZ\");var t=this.$locale().formats,o=void 0===t?{}:t,n=e.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(e,t,n){var r=n&&n.toUpperCase();return t||o[n]||M[n]||o[r].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,function(e,t,o){return t||o.slice(1)})});return r.call(this,n)}}});\n","!function(r,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):r.dayjs_plugin_relativeTime=t()}(this,function(){\"use strict\";return function(r,t,e){var n=t.prototype;e.en.relativeTime={future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"};var o=function(r,t,n,o){for(var d,i,u=n.$locale().relativeTime,a=[{l:\"s\",r:44,d:\"second\"},{l:\"m\",r:89},{l:\"mm\",r:44,d:\"minute\"},{l:\"h\",r:89},{l:\"hh\",r:21,d:\"hour\"},{l:\"d\",r:35},{l:\"dd\",r:25,d:\"day\"},{l:\"M\",r:45},{l:\"MM\",r:10,d:\"month\"},{l:\"y\",r:17},{l:\"yy\",d:\"year\"}],f=a.length,s=0;s<f;s+=1){var l=a[s];l.d&&(d=o?e(r).diff(n,l.d,!0):n.diff(r,l.d,!0));var h=Math.round(Math.abs(d));if(h<=l.r||!l.r){1===h&&s>0&&(l=a[s-1]),i=u[l.l].replace(\"%d\",h);break}}return t?i:(d>0?u.future:u.past).replace(\"%s\",i)};n.to=function(r,t){return o(r,t,this,!0)},n.from=function(r,t){return o(r,t,this)};var d=function(r){return r.$u?e.utc():e()};n.toNow=function(r){return this.to(d(this),r)},n.fromNow=function(r){return this.from(d(this),r)}}});\n","module.exports = global[\"Mousetrap\"] = require(\"-!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js??ref--5!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\source-map-loader\\\\index.js!.\\\\mousetrap.js\");","module.exports = global[\"classNames\"] = require(\"-!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js??ref--5!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\source-map-loader\\\\index.js!.\\\\index.js\");","module.exports = global[\"dayjs\"] = require(\"-!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js??ref--5!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\source-map-loader\\\\index.js!.\\\\dayjs.min.js\");","module.exports = global[\"jQuery\"] = require(\"-!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js??ref--5!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\imports-loader\\\\index.js?this=>window!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\source-map-loader\\\\index.js!.\\\\zepto.js\");","module.exports = global[\"m\"] = require(\"-!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js??ref--5!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\source-map-loader\\\\index.js!.\\\\index.js\");","if(!global[\"m\"]) global[\"m\"] = {};\nmodule.exports = global[\"m\"][\"bidi\"] = require(\"-!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js??ref--5!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\source-map-loader\\\\index.js!.\\\\bidi.js\");","module.exports = global[\"moment\"] = require(\"-!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\expose-loader\\\\index.js?dayjs!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js??ref--5!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\source-map-loader\\\\index.js!.\\\\dayjs.min.js\");","/*!\n * HC-Sticky\n * =========\n * Version: 2.2.3\n * Author: Some Web Media\n * Author URL: http://somewebmedia.com\n * Plugin URL: https://github.com/somewebmedia/hc-sticky\n * Description: Cross-browser plugin that makes any element on your page visible while you scroll\n * License: MIT\n */\n!function(t,e){\"use strict\";if(\"object\"==typeof module&&\"object\"==typeof module.exports){if(!t.document)throw new Error(\"HC-Sticky requires a browser to run.\");module.exports=e(t)}else\"function\"==typeof define&&define.amd?define(\"hcSticky\",[],e(t)):e(t)}(\"undefined\"!=typeof window?window:this,function(U){\"use strict\";var Y={top:0,bottom:0,bottomEnd:0,innerTop:0,innerSticker:null,stickyClass:\"sticky\",stickTo:null,followScroll:!0,responsive:null,mobileFirst:!1,onStart:null,onStop:null,onBeforeResize:null,onResize:null,resizeDebounce:100,disable:!1,queries:null,queryFlow:\"down\"},$=function(t,e,o){console.log(\"%c! HC Sticky:%c \"+t+\"%c \"+o+\" is now deprecated and will be removed. Use%c \"+e+\"%c instead.\",\"color: red\",\"color: darkviolet\",\"color: black\",\"color: darkviolet\",\"color: black\")},Q=U.document,X=function(n,f){var o=this;if(\"string\"==typeof n&&(n=Q.querySelector(n)),!n)return!1;f.queries&&$(\"queries\",\"responsive\",\"option\"),f.queryFlow&&$(\"queryFlow\",\"mobileFirst\",\"option\");var p={},d=X.Helpers,s=n.parentNode;\"static\"===d.getStyle(s,\"position\")&&(s.style.position=\"relative\");var u=function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};d.isEmptyObject(t)&&!d.isEmptyObject(p)||(p=Object.assign({},Y,p,t))},t=function(){return p.disable},e=function(){var t,e=p.responsive||p.queries;if(e){var o=U.innerWidth;if(t=f,(p=Object.assign({},Y,t||{})).mobileFirst)for(var i in e)i<=o&&!d.isEmptyObject(e[i])&&u(e[i]);else{var n=[];for(var s in e){var r={};r[s]=e[s],n.push(r)}for(var l=n.length-1;0<=l;l--){var a=n[l],c=Object.keys(a)[0];o<=c&&!d.isEmptyObject(a[c])&&u(a[c])}}}},r={css:{},position:null,stick:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};d.hasClass(n,p.stickyClass)||(!1===l.isAttached&&l.attach(),r.position=\"fixed\",n.style.position=\"fixed\",n.style.left=l.offsetLeft+\"px\",n.style.width=l.width,void 0===t.bottom?n.style.bottom=\"auto\":n.style.bottom=t.bottom+\"px\",void 0===t.top?n.style.top=\"auto\":n.style.top=t.top+\"px\",n.classList?n.classList.add(p.stickyClass):n.className+=\" \"+p.stickyClass,p.onStart&&p.onStart.call(n,Object.assign({},p)))},release:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};if(t.stop=t.stop||!1,!0===t.stop||\"fixed\"===r.position||null===r.position||!(void 0===t.top&&void 0===t.bottom||void 0!==t.top&&(parseInt(d.getStyle(n,\"top\"))||0)===t.top||void 0!==t.bottom&&(parseInt(d.getStyle(n,\"bottom\"))||0)===t.bottom)){!0===t.stop?!0===l.isAttached&&l.detach():!1===l.isAttached&&l.attach();var e=t.position||r.css.position;r.position=e,n.style.position=e,n.style.left=!0===t.stop?r.css.left:l.positionLeft+\"px\",n.style.width=\"absolute\"!==e?r.css.width:l.width,void 0===t.bottom?n.style.bottom=!0===t.stop?\"\":\"auto\":n.style.bottom=t.bottom+\"px\",void 0===t.top?n.style.top=!0===t.stop?\"\":\"auto\":n.style.top=t.top+\"px\",n.classList?n.classList.remove(p.stickyClass):n.className=n.className.replace(new RegExp(\"(^|\\\\b)\"+p.stickyClass.split(\" \").join(\"|\")+\"(\\\\b|$)\",\"gi\"),\" \"),p.onStop&&p.onStop.call(n,Object.assign({},p))}}},l={el:Q.createElement(\"div\"),offsetLeft:null,positionLeft:null,width:null,isAttached:!1,init:function(){for(var t in l.el.className=\"sticky-spacer\",r.css)l.el.style[t]=r.css[t];l.el.style[\"z-index\"]=\"-1\";var e=d.getStyle(n);l.offsetLeft=d.offset(n).left-(parseInt(e.marginLeft)||0),l.positionLeft=d.position(n).left,l.width=d.getStyle(n,\"width\")},attach:function(){s.insertBefore(l.el,n),l.isAttached=!0},detach:function(){l.el=s.removeChild(l.el),l.isAttached=!1}},a=void 0,c=void 0,g=void 0,m=void 0,h=void 0,v=void 0,y=void 0,b=void 0,S=void 0,w=void 0,k=void 0,E=void 0,x=void 0,L=void 0,T=void 0,j=void 0,O=void 0,C=void 0,i=function(){var t,e,o,i;r.css=(t=n,e=d.getCascadedStyle(t),o=d.getStyle(t),i={height:t.offsetHeight+\"px\",left:e.left,right:e.right,top:e.top,bottom:e.bottom,position:o.position,display:o.display,verticalAlign:o.verticalAlign,boxSizing:o.boxSizing,marginLeft:e.marginLeft,marginRight:e.marginRight,marginTop:e.marginTop,marginBottom:e.marginBottom,paddingLeft:e.paddingLeft,paddingRight:e.paddingRight},e.float&&(i.float=e.float||\"none\"),e.cssFloat&&(i.cssFloat=e.cssFloat||\"none\"),o.MozBoxSizing&&(i.MozBoxSizing=o.MozBoxSizing),i.width=\"auto\"!==e.width?e.width:\"border-box\"===i.boxSizing||\"border-box\"===i.MozBoxSizing?t.offsetWidth+\"px\":o.width,i),l.init(),a=!(!p.stickTo||!(\"document\"===p.stickTo||p.stickTo.nodeType&&9===p.stickTo.nodeType||\"object\"==typeof p.stickTo&&p.stickTo instanceof(\"undefined\"!=typeof HTMLDocument?HTMLDocument:Document))),c=p.stickTo?a?Q:\"string\"==typeof p.stickTo?Q.querySelector(p.stickTo):p.stickTo:s,T=(C=function(){var t=n.offsetHeight+(parseInt(r.css.marginTop)||0)+(parseInt(r.css.marginBottom)||0),e=(T||0)-t;return-1<=e&&e<=1?T:t})(),m=(O=function(){return a?Math.max(Q.documentElement.clientHeight,Q.body.scrollHeight,Q.documentElement.scrollHeight,Q.body.offsetHeight,Q.documentElement.offsetHeight):c.offsetHeight})(),h=a?0:d.offset(c).top,v=p.stickTo?a?0:d.offset(s).top:h,y=U.innerHeight,j=n.offsetTop-(parseInt(r.css.marginTop)||0),g=p.innerSticker?\"string\"==typeof p.innerSticker?Q.querySelector(p.innerSticker):p.innerSticker:null,b=isNaN(p.top)&&-1<p.top.indexOf(\"%\")?parseFloat(p.top)/100*y:p.top,S=isNaN(p.bottom)&&-1<p.bottom.indexOf(\"%\")?parseFloat(p.bottom)/100*y:p.bottom,w=g?g.offsetTop:p.innerTop?p.innerTop:0,k=isNaN(p.bottomEnd)&&-1<p.bottomEnd.indexOf(\"%\")?parseFloat(p.bottomEnd)/100*y:p.bottomEnd,E=h-b+w+j},z=U.pageYOffset||Q.documentElement.scrollTop,N=0,H=void 0,R=function(){T=C(),m=O(),x=h+m-b-k,L=y<T;var t=U.pageYOffset||Q.documentElement.scrollTop,e=d.offset(n).top,o=e-t,i=void 0;H=t<z?\"up\":\"down\",N=t-z,E<(z=t)?x+b+(L?S:0)-(p.followScroll&&L?0:b)<=t+T-w-(y-(E-w)<T-w&&p.followScroll&&0<(i=T-y-w)?i:0)?r.release({position:\"absolute\",bottom:v+s.offsetHeight-x-b}):L&&p.followScroll?\"down\"===H?o+T+S<=y+.9?r.stick({bottom:S}):\"fixed\"===r.position&&r.release({position:\"absolute\",top:e-b-E-N+w}):Math.ceil(o+w)<0&&\"fixed\"===r.position?r.release({position:\"absolute\",top:e-b-E+w-N}):t+b-w<=e&&r.stick({top:b-w}):r.stick({top:b-w}):r.release({stop:!0})},A=!1,B=!1,I=function(){A&&(d.event.unbind(U,\"scroll\",R),A=!1)},q=function(){null!==n.offsetParent&&\"none\"!==d.getStyle(n,\"display\")?(i(),m<=T?I():(R(),A||(d.event.bind(U,\"scroll\",R),A=!0))):I()},F=function(){n.style.position=\"\",n.style.left=\"\",n.style.top=\"\",n.style.bottom=\"\",n.style.width=\"\",n.classList?n.classList.remove(p.stickyClass):n.className=n.className.replace(new RegExp(\"(^|\\\\b)\"+p.stickyClass.split(\" \").join(\"|\")+\"(\\\\b|$)\",\"gi\"),\" \"),r.css={},!(r.position=null)===l.isAttached&&l.detach()},M=function(){F(),e(),t()?I():q()},D=function(){p.onBeforeResize&&p.onBeforeResize.call(n,Object.assign({},p)),M(),p.onResize&&p.onResize.call(n,Object.assign({},p))},P=p.resizeDebounce?d.debounce(D,p.resizeDebounce):D,W=function(){B&&(d.event.unbind(U,\"resize\",P),B=!1),I()},V=function(){B||(d.event.bind(U,\"resize\",P),B=!0),e(),t()?I():q()};this.options=function(t){return t?p[t]:Object.assign({},p)},this.refresh=M,this.update=function(t){u(t),f=Object.assign({},f,t||{}),M()},this.attach=V,this.detach=W,this.destroy=function(){W(),F()},this.triggerMethod=function(t,e){\"function\"==typeof o[t]&&o[t](e)},this.reinit=function(){$(\"reinit\",\"refresh\",\"method\"),M()},u(f),V(),d.event.bind(U,\"load\",M)};if(void 0!==U.jQuery){var i=U.jQuery,n=\"hcSticky\";i.fn.extend({hcSticky:function(e,o){return this.length?\"options\"===e?i.data(this.get(0),n).options():this.each(function(){var t=i.data(this,n);t?t.triggerMethod(e,o):(t=new X(this,e),i.data(this,n,t))}):this}})}return U.hcSticky=U.hcSticky||X,X}),function(c){\"use strict\";var t=c.hcSticky,f=c.document;\"function\"!=typeof Object.assign&&Object.defineProperty(Object,\"assign\",{value:function(t,e){if(null==t)throw new TypeError(\"Cannot convert undefined or null to object\");for(var o=Object(t),i=1;i<arguments.length;i++){var n=arguments[i];if(null!=n)for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(o[s]=n[s])}return o},writable:!0,configurable:!0}),Array.prototype.forEach||(Array.prototype.forEach=function(t){var e,o;if(null==this)throw new TypeError(\"this is null or not defined\");var i=Object(this),n=i.length>>>0;if(\"function\"!=typeof t)throw new TypeError(t+\" is not a function\");for(1<arguments.length&&(e=arguments[1]),o=0;o<n;){var s;o in i&&(s=i[o],t.call(e,s,o,i)),o++}});var e=function(){var t=f.documentElement,e=function(){};function i(t){var e=c.event;return e.target=e.target||e.srcElement||t,e}t.addEventListener?e=function(t,e,o){t.addEventListener(e,o,!1)}:t.attachEvent&&(e=function(e,t,o){e[t+o]=o.handleEvent?function(){var t=i(e);o.handleEvent.call(o,t)}:function(){var t=i(e);o.call(e,t)},e.attachEvent(\"on\"+t,e[t+o])});var o=function(){};return t.removeEventListener?o=function(t,e,o){t.removeEventListener(e,o,!1)}:t.detachEvent&&(o=function(e,o,i){e.detachEvent(\"on\"+o,e[o+i]);try{delete e[o+i]}catch(t){e[o+i]=void 0}}),{bind:e,unbind:o}}(),r=function(t,e){return c.getComputedStyle?e?f.defaultView.getComputedStyle(t,null).getPropertyValue(e):f.defaultView.getComputedStyle(t,null):t.currentStyle?e?t.currentStyle[e.replace(/-\\w/g,function(t){return t.toUpperCase().replace(\"-\",\"\")})]:t.currentStyle:void 0},l=function(t){var e=t.getBoundingClientRect(),o=c.pageYOffset||f.documentElement.scrollTop,i=c.pageXOffset||f.documentElement.scrollLeft;return{top:e.top+o,left:e.left+i}};t.Helpers={isEmptyObject:function(t){for(var e in t)return!1;return!0},debounce:function(i,n,s){var r=void 0;return function(){var t=this,e=arguments,o=s&&!r;clearTimeout(r),r=setTimeout(function(){r=null,s||i.apply(t,e)},n),o&&i.apply(t,e)}},hasClass:function(t,e){return t.classList?t.classList.contains(e):new RegExp(\"(^| )\"+e+\"( |$)\",\"gi\").test(t.className)},offset:l,position:function(t){var e=t.offsetParent,o=l(e),i=l(t),n=r(e),s=r(t);return o.top+=parseInt(n.borderTopWidth)||0,o.left+=parseInt(n.borderLeftWidth)||0,{top:i.top-o.top-(parseInt(s.marginTop)||0),left:i.left-o.left-(parseInt(s.marginLeft)||0)}},getStyle:r,getCascadedStyle:function(t){var e=t.cloneNode(!0);e.style.display=\"none\",Array.prototype.slice.call(e.querySelectorAll('input[type=\"radio\"]')).forEach(function(t){t.removeAttribute(\"name\")}),t.parentNode.insertBefore(e,t.nextSibling);var o=void 0;e.currentStyle?o=e.currentStyle:c.getComputedStyle&&(o=f.defaultView.getComputedStyle(e,null));var i={};for(var n in o)!isNaN(n)||\"string\"!=typeof o[n]&&\"number\"!=typeof o[n]||(i[n]=o[n]);if(Object.keys(i).length<3)for(var s in i={},o)isNaN(s)||(i[o[s].replace(/-\\w/g,function(t){return t.toUpperCase().replace(\"-\",\"\")})]=o.getPropertyValue(o[s]));if(i.margin||\"auto\"!==i.marginLeft?i.margin||i.marginLeft!==i.marginRight||i.marginLeft!==i.marginTop||i.marginLeft!==i.marginBottom||(i.margin=i.marginLeft):i.margin=\"auto\",!i.margin&&\"0px\"===i.marginLeft&&\"0px\"===i.marginRight){var r=t.offsetLeft-t.parentNode.offsetLeft,l=r-(parseInt(i.left)||0)-(parseInt(i.right)||0),a=t.parentNode.offsetWidth-t.offsetWidth-r-(parseInt(i.right)||0)+(parseInt(i.left)||0)-l;0!==a&&1!==a||(i.margin=\"auto\")}return e.parentNode.removeChild(e),e=null,i},event:e}}(window);","// Robert Penner's easeInOutQuad\n\n// find the rest of his easing functions here: http://robertpenner.com/easing/\n// find them exported for ES6 consumption here: https://github.com/jaxgeller/ez.js\n\nvar easeInOutQuad = function easeInOutQuad(t, b, c, d) {\n t /= d / 2;\n if (t < 1) return c / 2 * t * t + b;\n t--;\n return -c / 2 * (t * (t - 2) - 1) + b;\n};\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar jumper = function jumper() {\n // private variable cache\n // no variables are created during a jump, preventing memory leaks\n\n var element = void 0; // element to scroll to (node)\n\n var start = void 0; // where scroll starts (px)\n var stop = void 0; // where scroll stops (px)\n\n var offset = void 0; // adjustment from the stop position (px)\n var easing = void 0; // easing function (function)\n var a11y = void 0; // accessibility support flag (boolean)\n\n var distance = void 0; // distance of scroll (px)\n var duration = void 0; // scroll duration (ms)\n\n var timeStart = void 0; // time scroll started (ms)\n var timeElapsed = void 0; // time spent scrolling thus far (ms)\n\n var next = void 0; // next scroll position (px)\n\n var callback = void 0; // to call when done scrolling (function)\n\n // scroll position helper\n\n function location() {\n return window.scrollY || window.pageYOffset;\n }\n\n // element offset helper\n\n function top(element) {\n return element.getBoundingClientRect().top + start;\n }\n\n // rAF loop helper\n\n function loop(timeCurrent) {\n // store time scroll started, if not started already\n if (!timeStart) {\n timeStart = timeCurrent;\n }\n\n // determine time spent scrolling so far\n timeElapsed = timeCurrent - timeStart;\n\n // calculate next scroll position\n next = easing(timeElapsed, start, distance, duration);\n\n // scroll to it\n window.scrollTo(0, next);\n\n // check progress\n timeElapsed < duration ? window.requestAnimationFrame(loop) // continue scroll loop\n : done(); // scrolling is done\n }\n\n // scroll finished helper\n\n function done() {\n // account for rAF time rounding inaccuracies\n window.scrollTo(0, start + distance);\n\n // if scrolling to an element, and accessibility is enabled\n if (element && a11y) {\n // add tabindex indicating programmatic focus\n element.setAttribute('tabindex', '-1');\n\n // focus the element\n element.focus();\n }\n\n // if it exists, fire the callback\n if (typeof callback === 'function') {\n callback();\n }\n\n // reset time for next jump\n timeStart = false;\n }\n\n // API\n\n function jump(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // resolve options, or use defaults\n duration = options.duration || 1000;\n offset = options.offset || 0;\n callback = options.callback; // \"undefined\" is a suitable default, and won't be called\n easing = options.easing || easeInOutQuad;\n a11y = options.a11y || false;\n\n // cache starting position\n start = location();\n\n // resolve target\n switch (typeof target === 'undefined' ? 'undefined' : _typeof(target)) {\n // scroll from current position\n case 'number':\n element = undefined; // no element to scroll to\n a11y = false; // make sure accessibility is off\n stop = start + target;\n break;\n\n // scroll to element (node)\n // bounding rect is relative to the viewport\n case 'object':\n element = target;\n stop = top(element);\n break;\n\n // scroll to element (selector)\n // bounding rect is relative to the viewport\n case 'string':\n element = document.querySelector(target);\n stop = top(element);\n break;\n }\n\n // resolve scroll distance, accounting for offset\n distance = stop - start + offset;\n\n // resolve duration\n switch (_typeof(options.duration)) {\n // number in ms\n case 'number':\n duration = options.duration;\n break;\n\n // function passed the distance of the scroll\n case 'function':\n duration = options.duration(distance);\n break;\n }\n\n // start the loop\n window.requestAnimationFrame(loop);\n }\n\n // expose only the jump method\n return jump;\n};\n\n// export singleton\n\nvar singleton = jumper();\n\nexport default singleton;\n","\"use strict\"\n\nvar Vnode = require(\"../render/vnode\")\n\nmodule.exports = function(render, schedule, console) {\n\tvar subscriptions = []\n\tvar rendering = false\n\tvar pending = false\n\n\tfunction sync() {\n\t\tif (rendering) throw new Error(\"Nested m.redraw.sync() call\")\n\t\trendering = true\n\t\tfor (var i = 0; i < subscriptions.length; i += 2) {\n\t\t\ttry { render(subscriptions[i], Vnode(subscriptions[i + 1]), redraw) }\n\t\t\tcatch (e) { console.error(e) }\n\t\t}\n\t\trendering = false\n\t}\n\n\tfunction redraw() {\n\t\tif (!pending) {\n\t\t\tpending = true\n\t\t\tschedule(function() {\n\t\t\t\tpending = false\n\t\t\t\tsync()\n\t\t\t})\n\t\t}\n\t}\n\n\tredraw.sync = sync\n\n\tfunction mount(root, component) {\n\t\tif (component != null && component.view == null && typeof component !== \"function\") {\n\t\t\tthrow new TypeError(\"m.mount(element, component) expects a component, not a vnode\")\n\t\t}\n\n\t\tvar index = subscriptions.indexOf(root)\n\t\tif (index >= 0) {\n\t\t\tsubscriptions.splice(index, 2)\n\t\t\trender(root, [], redraw)\n\t\t}\n\n\t\tif (component != null) {\n\t\t\tsubscriptions.push(root, component)\n\t\t\trender(root, Vnode(component), redraw)\n\t\t}\n\t}\n\n\treturn {mount: mount, redraw: redraw}\n}\n","\"use strict\"\n\nvar Vnode = require(\"../render/vnode\")\nvar m = require(\"../render/hyperscript\")\nvar Promise = require(\"../promise/promise\")\n\nvar buildPathname = require(\"../pathname/build\")\nvar parsePathname = require(\"../pathname/parse\")\nvar compileTemplate = require(\"../pathname/compileTemplate\")\nvar assign = require(\"../pathname/assign\")\n\nvar sentinel = {}\n\nmodule.exports = function($window, mountRedraw) {\n\tvar fireAsync\n\n\tfunction setPath(path, data, options) {\n\t\tpath = buildPathname(path, data)\n\t\tif (fireAsync != null) {\n\t\t\tfireAsync()\n\t\t\tvar state = options ? options.state : null\n\t\t\tvar title = options ? options.title : null\n\t\t\tif (options && options.replace) $window.history.replaceState(state, title, route.prefix + path)\n\t\t\telse $window.history.pushState(state, title, route.prefix + path)\n\t\t}\n\t\telse {\n\t\t\t$window.location.href = route.prefix + path\n\t\t}\n\t}\n\n\tvar currentResolver = sentinel, component, attrs, currentPath, lastUpdate\n\n\tvar SKIP = route.SKIP = {}\n\n\tfunction route(root, defaultRoute, routes) {\n\t\tif (root == null) throw new Error(\"Ensure the DOM element that was passed to `m.route` is not undefined\")\n\t\t// 0 = start\n\t\t// 1 = init\n\t\t// 2 = ready\n\t\tvar state = 0\n\n\t\tvar compiled = Object.keys(routes).map(function(route) {\n\t\t\tif (route[0] !== \"/\") throw new SyntaxError(\"Routes must start with a `/`\")\n\t\t\tif ((/:([^\\/\\.-]+)(\\.{3})?:/).test(route)) {\n\t\t\t\tthrow new SyntaxError(\"Route parameter names must be separated with either `/`, `.`, or `-`\")\n\t\t\t}\n\t\t\treturn {\n\t\t\t\troute: route,\n\t\t\t\tcomponent: routes[route],\n\t\t\t\tcheck: compileTemplate(route),\n\t\t\t}\n\t\t})\n\t\tvar callAsync = typeof setImmediate === \"function\" ? setImmediate : setTimeout\n\t\tvar p = Promise.resolve()\n\t\tvar scheduled = false\n\t\tvar onremove\n\n\t\tfireAsync = null\n\n\t\tif (defaultRoute != null) {\n\t\t\tvar defaultData = parsePathname(defaultRoute)\n\n\t\t\tif (!compiled.some(function (i) { return i.check(defaultData) })) {\n\t\t\t\tthrow new ReferenceError(\"Default route doesn't match any known routes\")\n\t\t\t}\n\t\t}\n\n\t\tfunction resolveRoute() {\n\t\t\tscheduled = false\n\t\t\t// Consider the pathname holistically. The prefix might even be invalid,\n\t\t\t// but that's not our problem.\n\t\t\tvar prefix = $window.location.hash\n\t\t\tif (route.prefix[0] !== \"#\") {\n\t\t\t\tprefix = $window.location.search + prefix\n\t\t\t\tif (route.prefix[0] !== \"?\") {\n\t\t\t\t\tprefix = $window.location.pathname + prefix\n\t\t\t\t\tif (prefix[0] !== \"/\") prefix = \"/\" + prefix\n\t\t\t\t}\n\t\t\t}\n\t\t\t// This seemingly useless `.concat()` speeds up the tests quite a bit,\n\t\t\t// since the representation is consistently a relatively poorly\n\t\t\t// optimized cons string.\n\t\t\tvar path = prefix.concat()\n\t\t\t\t.replace(/(?:%[a-f89][a-f0-9])+/gim, decodeURIComponent)\n\t\t\t\t.slice(route.prefix.length)\n\t\t\tvar data = parsePathname(path)\n\n\t\t\tassign(data.params, $window.history.state)\n\n\t\t\tfunction fail() {\n\t\t\t\tif (path === defaultRoute) throw new Error(\"Could not resolve default route \" + defaultRoute)\n\t\t\t\tsetPath(defaultRoute, null, {replace: true})\n\t\t\t}\n\n\t\t\tloop(0)\n\t\t\tfunction loop(i) {\n\t\t\t\t// 0 = init\n\t\t\t\t// 1 = scheduled\n\t\t\t\t// 2 = done\n\t\t\t\tfor (; i < compiled.length; i++) {\n\t\t\t\t\tif (compiled[i].check(data)) {\n\t\t\t\t\t\tvar payload = compiled[i].component\n\t\t\t\t\t\tvar matchedRoute = compiled[i].route\n\t\t\t\t\t\tvar localComp = payload\n\t\t\t\t\t\tvar update = lastUpdate = function(comp) {\n\t\t\t\t\t\t\tif (update !== lastUpdate) return\n\t\t\t\t\t\t\tif (comp === SKIP) return loop(i + 1)\n\t\t\t\t\t\t\tcomponent = comp != null && (typeof comp.view === \"function\" || typeof comp === \"function\")? comp : \"div\"\n\t\t\t\t\t\t\tattrs = data.params, currentPath = path, lastUpdate = null\n\t\t\t\t\t\t\tcurrentResolver = payload.render ? payload : null\n\t\t\t\t\t\t\tif (state === 2) mountRedraw.redraw()\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tstate = 2\n\t\t\t\t\t\t\t\tmountRedraw.redraw.sync()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// There's no understating how much I *wish* I could\n\t\t\t\t\t\t// use `async`/`await` here...\n\t\t\t\t\t\tif (payload.view || typeof payload === \"function\") {\n\t\t\t\t\t\t\tpayload = {}\n\t\t\t\t\t\t\tupdate(localComp)\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (payload.onmatch) {\n\t\t\t\t\t\t\tp.then(function () {\n\t\t\t\t\t\t\t\treturn payload.onmatch(data.params, path, matchedRoute)\n\t\t\t\t\t\t\t}).then(update, fail)\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse update(\"div\")\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfail()\n\t\t\t}\n\t\t}\n\n\t\t// Set it unconditionally so `m.route.set` and `m.route.Link` both work,\n\t\t// even if neither `pushState` nor `hashchange` are supported. It's\n\t\t// cleared if `hashchange` is used, since that makes it automatically\n\t\t// async.\n\t\tfireAsync = function() {\n\t\t\tif (!scheduled) {\n\t\t\t\tscheduled = true\n\t\t\t\tcallAsync(resolveRoute)\n\t\t\t}\n\t\t}\n\n\t\tif (typeof $window.history.pushState === \"function\") {\n\t\t\tonremove = function() {\n\t\t\t\t$window.removeEventListener(\"popstate\", fireAsync, false)\n\t\t\t}\n\t\t\t$window.addEventListener(\"popstate\", fireAsync, false)\n\t\t} else if (route.prefix[0] === \"#\") {\n\t\t\tfireAsync = null\n\t\t\tonremove = function() {\n\t\t\t\t$window.removeEventListener(\"hashchange\", resolveRoute, false)\n\t\t\t}\n\t\t\t$window.addEventListener(\"hashchange\", resolveRoute, false)\n\t\t}\n\n\t\treturn mountRedraw.mount(root, {\n\t\t\tonbeforeupdate: function() {\n\t\t\t\tstate = state ? 2 : 1\n\t\t\t\treturn !(!state || sentinel === currentResolver)\n\t\t\t},\n\t\t\toncreate: resolveRoute,\n\t\t\tonremove: onremove,\n\t\t\tview: function() {\n\t\t\t\tif (!state || sentinel === currentResolver) return\n\t\t\t\t// Wrap in a fragment to preserve existing key semantics\n\t\t\t\tvar vnode = [Vnode(component, attrs.key, attrs)]\n\t\t\t\tif (currentResolver) vnode = currentResolver.render(vnode[0])\n\t\t\t\treturn vnode\n\t\t\t},\n\t\t})\n\t}\n\troute.set = function(path, data, options) {\n\t\tif (lastUpdate != null) {\n\t\t\toptions = options || {}\n\t\t\toptions.replace = true\n\t\t}\n\t\tlastUpdate = null\n\t\tsetPath(path, data, options)\n\t}\n\troute.get = function() {return currentPath}\n\troute.prefix = \"#!\"\n\troute.Link = {\n\t\tview: function(vnode) {\n\t\t\tvar options = vnode.attrs.options\n\t\t\t// Remove these so they don't get overwritten\n\t\t\tvar attrs = {}, onclick, href\n\t\t\tassign(attrs, vnode.attrs)\n\t\t\t// The first two are internal, but the rest are magic attributes\n\t\t\t// that need censored to not screw up rendering.\n\t\t\tattrs.selector = attrs.options = attrs.key = attrs.oninit =\n\t\t\tattrs.oncreate = attrs.onbeforeupdate = attrs.onupdate =\n\t\t\tattrs.onbeforeremove = attrs.onremove = null\n\n\t\t\t// Do this now so we can get the most current `href` and `disabled`.\n\t\t\t// Those attributes may also be specified in the selector, and we\n\t\t\t// should honor that.\n\t\t\tvar child = m(vnode.attrs.selector || \"a\", attrs, vnode.children)\n\n\t\t\t// Let's provide a *right* way to disable a route link, rather than\n\t\t\t// letting people screw up accessibility on accident.\n\t\t\t//\n\t\t\t// The attribute is coerced so users don't get surprised over\n\t\t\t// `disabled: 0` resulting in a button that's somehow routable\n\t\t\t// despite being visibly disabled.\n\t\t\tif (child.attrs.disabled = Boolean(child.attrs.disabled)) {\n\t\t\t\tchild.attrs.href = null\n\t\t\t\tchild.attrs[\"aria-disabled\"] = \"true\"\n\t\t\t\t// If you *really* do want to do this on a disabled link, use\n\t\t\t\t// an `oncreate` hook to add it.\n\t\t\t\tchild.attrs.onclick = null\n\t\t\t} else {\n\t\t\t\tonclick = child.attrs.onclick\n\t\t\t\thref = child.attrs.href\n\t\t\t\tchild.attrs.href = route.prefix + href\n\t\t\t\tchild.attrs.onclick = function(e) {\n\t\t\t\t\tvar result\n\t\t\t\t\tif (typeof onclick === \"function\") {\n\t\t\t\t\t\tresult = onclick.call(e.currentTarget, e)\n\t\t\t\t\t} else if (onclick == null || typeof onclick !== \"object\") {\n\t\t\t\t\t\t// do nothing\n\t\t\t\t\t} else if (typeof onclick.handleEvent === \"function\") {\n\t\t\t\t\t\tonclick.handleEvent(e)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Adapted from React Router's implementation:\n\t\t\t\t\t// https://github.com/ReactTraining/react-router/blob/520a0acd48ae1b066eb0b07d6d4d1790a1d02482/packages/react-router-dom/modules/Link.js\n\t\t\t\t\t//\n\t\t\t\t\t// Try to be flexible and intuitive in how we handle links.\n\t\t\t\t\t// Fun fact: links aren't as obvious to get right as you\n\t\t\t\t\t// would expect. There's a lot more valid ways to click a\n\t\t\t\t\t// link than this, and one might want to not simply click a\n\t\t\t\t\t// link, but right click or command-click it to copy the\n\t\t\t\t\t// link target, etc. Nope, this isn't just for blind people.\n\t\t\t\t\tif (\n\t\t\t\t\t\t// Skip if `onclick` prevented default\n\t\t\t\t\t\tresult !== false && !e.defaultPrevented &&\n\t\t\t\t\t\t// Ignore everything but left clicks\n\t\t\t\t\t\t(e.button === 0 || e.which === 0 || e.which === 1) &&\n\t\t\t\t\t\t// Let the browser handle `target=_blank`, etc.\n\t\t\t\t\t\t(!e.currentTarget.target || e.currentTarget.target === \"_self\") &&\n\t\t\t\t\t\t// No modifier keys\n\t\t\t\t\t\t!e.ctrlKey && !e.metaKey && !e.shiftKey && !e.altKey\n\t\t\t\t\t) {\n\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\te.redraw = false\n\t\t\t\t\t\troute.set(href, null, options)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn child\n\t\t},\n\t}\n\troute.param = function(key) {\n\t\treturn attrs && key != null ? attrs[key] : attrs\n\t}\n\n\treturn route\n}\n","\"use strict\"\n\nvar hyperscript = require(\"./render/hyperscript\")\n\nhyperscript.trust = require(\"./render/trust\")\nhyperscript.fragment = require(\"./render/fragment\")\n\nmodule.exports = hyperscript\n","\"use strict\"\n\nvar render = require(\"./render\")\n\nmodule.exports = require(\"./api/mount-redraw\")(render, requestAnimationFrame, console)\n","\"use strict\"\n\nmodule.exports = Object.assign || function(target, source) {\n\tif(source) Object.keys(source).forEach(function(key) { target[key] = source[key] })\n}\n","\"use strict\"\n\nvar buildQueryString = require(\"../querystring/build\")\nvar assign = require(\"./assign\")\n\n// Returns `path` from `template` + `params`\nmodule.exports = function(template, params) {\n\tif ((/:([^\\/\\.-]+)(\\.{3})?:/).test(template)) {\n\t\tthrow new SyntaxError(\"Template parameter names *must* be separated\")\n\t}\n\tif (params == null) return template\n\tvar queryIndex = template.indexOf(\"?\")\n\tvar hashIndex = template.indexOf(\"#\")\n\tvar queryEnd = hashIndex < 0 ? template.length : hashIndex\n\tvar pathEnd = queryIndex < 0 ? queryEnd : queryIndex\n\tvar path = template.slice(0, pathEnd)\n\tvar query = {}\n\n\tassign(query, params)\n\n\tvar resolved = path.replace(/:([^\\/\\.-]+)(\\.{3})?/g, function(m, key, variadic) {\n\t\tdelete query[key]\n\t\t// If no such parameter exists, don't interpolate it.\n\t\tif (params[key] == null) return m\n\t\t// Escape normal parameters, but not variadic ones.\n\t\treturn variadic ? params[key] : encodeURIComponent(String(params[key]))\n\t})\n\n\t// In case the template substitution adds new query/hash parameters.\n\tvar newQueryIndex = resolved.indexOf(\"?\")\n\tvar newHashIndex = resolved.indexOf(\"#\")\n\tvar newQueryEnd = newHashIndex < 0 ? resolved.length : newHashIndex\n\tvar newPathEnd = newQueryIndex < 0 ? newQueryEnd : newQueryIndex\n\tvar result = resolved.slice(0, newPathEnd)\n\n\tif (queryIndex >= 0) result += template.slice(queryIndex, queryEnd)\n\tif (newQueryIndex >= 0) result += (queryIndex < 0 ? \"?\" : \"&\") + resolved.slice(newQueryIndex, newQueryEnd)\n\tvar querystring = buildQueryString(query)\n\tif (querystring) result += (queryIndex < 0 && newQueryIndex < 0 ? \"?\" : \"&\") + querystring\n\tif (hashIndex >= 0) result += template.slice(hashIndex)\n\tif (newHashIndex >= 0) result += (hashIndex < 0 ? \"\" : \"&\") + resolved.slice(newHashIndex)\n\treturn result\n}\n","\"use strict\"\n\nvar parsePathname = require(\"./parse\")\n\n// Compiles a template into a function that takes a resolved path (without query\n// strings) and returns an object containing the template parameters with their\n// parsed values. This expects the input of the compiled template to be the\n// output of `parsePathname`. Note that it does *not* remove query parameters\n// specified in the template.\nmodule.exports = function(template) {\n\tvar templateData = parsePathname(template)\n\tvar templateKeys = Object.keys(templateData.params)\n\tvar keys = []\n\tvar regexp = new RegExp(\"^\" + templateData.path.replace(\n\t\t// I escape literal text so people can use things like `:file.:ext` or\n\t\t// `:lang-:locale` in routes. This is all merged into one pass so I\n\t\t// don't also accidentally escape `-` and make it harder to detect it to\n\t\t// ban it from template parameters.\n\t\t/:([^\\/.-]+)(\\.{3}|\\.(?!\\.)|-)?|[\\\\^$*+.()|\\[\\]{}]/g,\n\t\tfunction(m, key, extra) {\n\t\t\tif (key == null) return \"\\\\\" + m\n\t\t\tkeys.push({k: key, r: extra === \"...\"})\n\t\t\tif (extra === \"...\") return \"(.*)\"\n\t\t\tif (extra === \".\") return \"([^/]+)\\\\.\"\n\t\t\treturn \"([^/]+)\" + (extra || \"\")\n\t\t}\n\t) + \"$\")\n\treturn function(data) {\n\t\t// First, check the params. Usually, there isn't any, and it's just\n\t\t// checking a static set.\n\t\tfor (var i = 0; i < templateKeys.length; i++) {\n\t\t\tif (templateData.params[templateKeys[i]] !== data.params[templateKeys[i]]) return false\n\t\t}\n\t\t// If no interpolations exist, let's skip all the ceremony\n\t\tif (!keys.length) return regexp.test(data.path)\n\t\tvar values = regexp.exec(data.path)\n\t\tif (values == null) return false\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tdata.params[keys[i].k] = keys[i].r ? values[i + 1] : decodeURIComponent(values[i + 1])\n\t\t}\n\t\treturn true\n\t}\n}\n","\"use strict\"\n\nvar parseQueryString = require(\"../querystring/parse\")\n\n// Returns `{path, params}` from `url`\nmodule.exports = function(url) {\n\tvar queryIndex = url.indexOf(\"?\")\n\tvar hashIndex = url.indexOf(\"#\")\n\tvar queryEnd = hashIndex < 0 ? url.length : hashIndex\n\tvar pathEnd = queryIndex < 0 ? queryEnd : queryIndex\n\tvar path = url.slice(0, pathEnd).replace(/\\/{2,}/g, \"/\")\n\n\tif (!path) path = \"/\"\n\telse {\n\t\tif (path[0] !== \"/\") path = \"/\" + path\n\t\tif (path.length > 1 && path[path.length - 1] === \"/\") path = path.slice(0, -1)\n\t}\n\treturn {\n\t\tpath: path,\n\t\tparams: queryIndex < 0\n\t\t\t? {}\n\t\t\t: parseQueryString(url.slice(queryIndex + 1, queryEnd)),\n\t}\n}\n","\"use strict\"\n/** @constructor */\nvar PromisePolyfill = function(executor) {\n\tif (!(this instanceof PromisePolyfill)) throw new Error(\"Promise must be called with `new`\")\n\tif (typeof executor !== \"function\") throw new TypeError(\"executor must be a function\")\n\n\tvar self = this, resolvers = [], rejectors = [], resolveCurrent = handler(resolvers, true), rejectCurrent = handler(rejectors, false)\n\tvar instance = self._instance = {resolvers: resolvers, rejectors: rejectors}\n\tvar callAsync = typeof setImmediate === \"function\" ? setImmediate : setTimeout\n\tfunction handler(list, shouldAbsorb) {\n\t\treturn function execute(value) {\n\t\t\tvar then\n\t\t\ttry {\n\t\t\t\tif (shouldAbsorb && value != null && (typeof value === \"object\" || typeof value === \"function\") && typeof (then = value.then) === \"function\") {\n\t\t\t\t\tif (value === self) throw new TypeError(\"Promise can't be resolved w/ itself\")\n\t\t\t\t\texecuteOnce(then.bind(value))\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcallAsync(function() {\n\t\t\t\t\t\tif (!shouldAbsorb && list.length === 0) console.error(\"Possible unhandled promise rejection:\", value)\n\t\t\t\t\t\tfor (var i = 0; i < list.length; i++) list[i](value)\n\t\t\t\t\t\tresolvers.length = 0, rejectors.length = 0\n\t\t\t\t\t\tinstance.state = shouldAbsorb\n\t\t\t\t\t\tinstance.retry = function() {execute(value)}\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (e) {\n\t\t\t\trejectCurrent(e)\n\t\t\t}\n\t\t}\n\t}\n\tfunction executeOnce(then) {\n\t\tvar runs = 0\n\t\tfunction run(fn) {\n\t\t\treturn function(value) {\n\t\t\t\tif (runs++ > 0) return\n\t\t\t\tfn(value)\n\t\t\t}\n\t\t}\n\t\tvar onerror = run(rejectCurrent)\n\t\ttry {then(run(resolveCurrent), onerror)} catch (e) {onerror(e)}\n\t}\n\n\texecuteOnce(executor)\n}\nPromisePolyfill.prototype.then = function(onFulfilled, onRejection) {\n\tvar self = this, instance = self._instance\n\tfunction handle(callback, list, next, state) {\n\t\tlist.push(function(value) {\n\t\t\tif (typeof callback !== \"function\") next(value)\n\t\t\telse try {resolveNext(callback(value))} catch (e) {if (rejectNext) rejectNext(e)}\n\t\t})\n\t\tif (typeof instance.retry === \"function\" && state === instance.state) instance.retry()\n\t}\n\tvar resolveNext, rejectNext\n\tvar promise = new PromisePolyfill(function(resolve, reject) {resolveNext = resolve, rejectNext = reject})\n\thandle(onFulfilled, instance.resolvers, resolveNext, true), handle(onRejection, instance.rejectors, rejectNext, false)\n\treturn promise\n}\nPromisePolyfill.prototype.catch = function(onRejection) {\n\treturn this.then(null, onRejection)\n}\nPromisePolyfill.prototype.finally = function(callback) {\n\treturn this.then(\n\t\tfunction(value) {\n\t\t\treturn PromisePolyfill.resolve(callback()).then(function() {\n\t\t\t\treturn value\n\t\t\t})\n\t\t},\n\t\tfunction(reason) {\n\t\t\treturn PromisePolyfill.resolve(callback()).then(function() {\n\t\t\t\treturn PromisePolyfill.reject(reason);\n\t\t\t})\n\t\t}\n\t)\n}\nPromisePolyfill.resolve = function(value) {\n\tif (value instanceof PromisePolyfill) return value\n\treturn new PromisePolyfill(function(resolve) {resolve(value)})\n}\nPromisePolyfill.reject = function(value) {\n\treturn new PromisePolyfill(function(resolve, reject) {reject(value)})\n}\nPromisePolyfill.all = function(list) {\n\treturn new PromisePolyfill(function(resolve, reject) {\n\t\tvar total = list.length, count = 0, values = []\n\t\tif (list.length === 0) resolve([])\n\t\telse for (var i = 0; i < list.length; i++) {\n\t\t\t(function(i) {\n\t\t\t\tfunction consume(value) {\n\t\t\t\t\tcount++\n\t\t\t\t\tvalues[i] = value\n\t\t\t\t\tif (count === total) resolve(values)\n\t\t\t\t}\n\t\t\t\tif (list[i] != null && (typeof list[i] === \"object\" || typeof list[i] === \"function\") && typeof list[i].then === \"function\") {\n\t\t\t\t\tlist[i].then(consume, reject)\n\t\t\t\t}\n\t\t\t\telse consume(list[i])\n\t\t\t})(i)\n\t\t}\n\t})\n}\nPromisePolyfill.race = function(list) {\n\treturn new PromisePolyfill(function(resolve, reject) {\n\t\tfor (var i = 0; i < list.length; i++) {\n\t\t\tlist[i].then(resolve, reject)\n\t\t}\n\t})\n}\n\nmodule.exports = PromisePolyfill\n","\"use strict\"\n\nvar PromisePolyfill = require(\"./polyfill\")\n\nif (typeof window !== \"undefined\") {\n\tif (typeof window.Promise === \"undefined\") {\n\t\twindow.Promise = PromisePolyfill\n\t} else if (!window.Promise.prototype.finally) {\n\t\twindow.Promise.prototype.finally = PromisePolyfill.prototype.finally\n\t}\n\tmodule.exports = window.Promise\n} else if (typeof global !== \"undefined\") {\n\tif (typeof global.Promise === \"undefined\") {\n\t\tglobal.Promise = PromisePolyfill\n\t} else if (!global.Promise.prototype.finally) {\n\t\tglobal.Promise.prototype.finally = PromisePolyfill.prototype.finally\n\t}\n\tmodule.exports = global.Promise\n} else {\n\tmodule.exports = PromisePolyfill\n}\n","\"use strict\"\n\nmodule.exports = function(object) {\n\tif (Object.prototype.toString.call(object) !== \"[object Object]\") return \"\"\n\n\tvar args = []\n\tfor (var key in object) {\n\t\tdestructure(key, object[key])\n\t}\n\n\treturn args.join(\"&\")\n\n\tfunction destructure(key, value) {\n\t\tif (Array.isArray(value)) {\n\t\t\tfor (var i = 0; i < value.length; i++) {\n\t\t\t\tdestructure(key + \"[\" + i + \"]\", value[i])\n\t\t\t}\n\t\t}\n\t\telse if (Object.prototype.toString.call(value) === \"[object Object]\") {\n\t\t\tfor (var i in value) {\n\t\t\t\tdestructure(key + \"[\" + i + \"]\", value[i])\n\t\t\t}\n\t\t}\n\t\telse args.push(encodeURIComponent(key) + (value != null && value !== \"\" ? \"=\" + encodeURIComponent(value) : \"\"))\n\t}\n}\n","\"use strict\"\n\nmodule.exports = function(string) {\n\tif (string === \"\" || string == null) return {}\n\tif (string.charAt(0) === \"?\") string = string.slice(1)\n\n\tvar entries = string.split(\"&\"), counters = {}, data = {}\n\tfor (var i = 0; i < entries.length; i++) {\n\t\tvar entry = entries[i].split(\"=\")\n\t\tvar key = decodeURIComponent(entry[0])\n\t\tvar value = entry.length === 2 ? decodeURIComponent(entry[1]) : \"\"\n\n\t\tif (value === \"true\") value = true\n\t\telse if (value === \"false\") value = false\n\n\t\tvar levels = key.split(/\\]\\[?|\\[/)\n\t\tvar cursor = data\n\t\tif (key.indexOf(\"[\") > -1) levels.pop()\n\t\tfor (var j = 0; j < levels.length; j++) {\n\t\t\tvar level = levels[j], nextLevel = levels[j + 1]\n\t\t\tvar isNumber = nextLevel == \"\" || !isNaN(parseInt(nextLevel, 10))\n\t\t\tif (level === \"\") {\n\t\t\t\tvar key = levels.slice(0, j).join()\n\t\t\t\tif (counters[key] == null) {\n\t\t\t\t\tcounters[key] = Array.isArray(cursor) ? cursor.length : 0\n\t\t\t\t}\n\t\t\t\tlevel = counters[key]++\n\t\t\t}\n\t\t\t// Disallow direct prototype pollution\n\t\t\telse if (level === \"__proto__\") break\n\t\t\tif (j === levels.length - 1) cursor[level] = value\n\t\t\telse {\n\t\t\t\t// Read own properties exclusively to disallow indirect\n\t\t\t\t// prototype pollution\n\t\t\t\tvar desc = Object.getOwnPropertyDescriptor(cursor, level)\n\t\t\t\tif (desc != null) desc = desc.value\n\t\t\t\tif (desc == null) cursor[level] = desc = isNumber ? [] : {}\n\t\t\t\tcursor = desc\n\t\t\t}\n\t\t}\n\t}\n\treturn data\n}\n","\"use strict\"\n\nmodule.exports = require(\"./render/render\")(window)\n","\"use strict\"\n\nvar Vnode = require(\"../render/vnode\")\nvar hyperscriptVnode = require(\"./hyperscriptVnode\")\n\nmodule.exports = function() {\n\tvar vnode = hyperscriptVnode.apply(0, arguments)\n\n\tvnode.tag = \"[\"\n\tvnode.children = Vnode.normalizeChildren(vnode.children)\n\treturn vnode\n}\n","\"use strict\"\n\nvar Vnode = require(\"../render/vnode\")\nvar hyperscriptVnode = require(\"./hyperscriptVnode\")\n\nvar selectorParser = /(?:(^|#|\\.)([^#\\.\\[\\]]+))|(\\[(.+?)(?:\\s*=\\s*(\"|'|)((?:\\\\[\"'\\]]|.)*?)\\5)?\\])/g\nvar selectorCache = {}\nvar hasOwn = {}.hasOwnProperty\n\nfunction isEmpty(object) {\n\tfor (var key in object) if (hasOwn.call(object, key)) return false\n\treturn true\n}\n\nfunction compileSelector(selector) {\n\tvar match, tag = \"div\", classes = [], attrs = {}\n\twhile (match = selectorParser.exec(selector)) {\n\t\tvar type = match[1], value = match[2]\n\t\tif (type === \"\" && value !== \"\") tag = value\n\t\telse if (type === \"#\") attrs.id = value\n\t\telse if (type === \".\") classes.push(value)\n\t\telse if (match[3][0] === \"[\") {\n\t\t\tvar attrValue = match[6]\n\t\t\tif (attrValue) attrValue = attrValue.replace(/\\\\([\"'])/g, \"$1\").replace(/\\\\\\\\/g, \"\\\\\")\n\t\t\tif (match[4] === \"class\") classes.push(attrValue)\n\t\t\telse attrs[match[4]] = attrValue === \"\" ? attrValue : attrValue || true\n\t\t}\n\t}\n\tif (classes.length > 0) attrs.className = classes.join(\" \")\n\treturn selectorCache[selector] = {tag: tag, attrs: attrs}\n}\n\nfunction execSelector(state, vnode) {\n\tvar attrs = vnode.attrs\n\tvar children = Vnode.normalizeChildren(vnode.children)\n\tvar hasClass = hasOwn.call(attrs, \"class\")\n\tvar className = hasClass ? attrs.class : attrs.className\n\n\tvnode.tag = state.tag\n\tvnode.attrs = null\n\tvnode.children = undefined\n\n\tif (!isEmpty(state.attrs) && !isEmpty(attrs)) {\n\t\tvar newAttrs = {}\n\n\t\tfor (var key in attrs) {\n\t\t\tif (hasOwn.call(attrs, key)) newAttrs[key] = attrs[key]\n\t\t}\n\n\t\tattrs = newAttrs\n\t}\n\n\tfor (var key in state.attrs) {\n\t\tif (hasOwn.call(state.attrs, key) && key !== \"className\" && !hasOwn.call(attrs, key)){\n\t\t\tattrs[key] = state.attrs[key]\n\t\t}\n\t}\n\tif (className != null || state.attrs.className != null) attrs.className =\n\t\tclassName != null\n\t\t\t? state.attrs.className != null\n\t\t\t\t? String(state.attrs.className) + \" \" + String(className)\n\t\t\t\t: className\n\t\t\t: state.attrs.className != null\n\t\t\t\t? state.attrs.className\n\t\t\t\t: null\n\n\tif (hasClass) attrs.class = null\n\n\tfor (var key in attrs) {\n\t\tif (hasOwn.call(attrs, key) && key !== \"key\") {\n\t\t\tvnode.attrs = attrs\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif (Array.isArray(children) && children.length === 1 && children[0] != null && children[0].tag === \"#\") {\n\t\tvnode.text = children[0].children\n\t} else {\n\t\tvnode.children = children\n\t}\n\n\treturn vnode\n}\n\nfunction hyperscript(selector) {\n\tif (selector == null || typeof selector !== \"string\" && typeof selector !== \"function\" && typeof selector.view !== \"function\") {\n\t\tthrow Error(\"The selector must be either a string or a component.\");\n\t}\n\n\tvar vnode = hyperscriptVnode.apply(1, arguments)\n\n\tif (typeof selector === \"string\") {\n\t\tvnode.children = Vnode.normalizeChildren(vnode.children)\n\t\tif (selector !== \"[\") return execSelector(selectorCache[selector] || compileSelector(selector), vnode)\n\t}\n\n\tvnode.tag = selector\n\treturn vnode\n}\n\nmodule.exports = hyperscript\n","\"use strict\"\n\nvar Vnode = require(\"../render/vnode\")\n\n// Call via `hyperscriptVnode.apply(startOffset, arguments)`\n//\n// The reason I do it this way, forwarding the arguments and passing the start\n// offset in `this`, is so I don't have to create a temporary array in a\n// performance-critical path.\n//\n// In native ES6, I'd instead add a final `...args` parameter to the\n// `hyperscript` and `fragment` factories and define this as\n// `hyperscriptVnode(...args)`, since modern engines do optimize that away. But\n// ES5 (what Mithril requires thanks to IE support) doesn't give me that luxury,\n// and engines aren't nearly intelligent enough to do either of these:\n//\n// 1. Elide the allocation for `[].slice.call(arguments, 1)` when it's passed to\n// another function only to be indexed.\n// 2. Elide an `arguments` allocation when it's passed to any function other\n// than `Function.prototype.apply` or `Reflect.apply`.\n//\n// In ES6, it'd probably look closer to this (I'd need to profile it, though):\n// module.exports = function(attrs, ...children) {\n// if (attrs == null || typeof attrs === \"object\" && attrs.tag == null && !Array.isArray(attrs)) {\n// if (children.length === 1 && Array.isArray(children[0])) children = children[0]\n// } else {\n// children = children.length === 0 && Array.isArray(attrs) ? attrs : [attrs, ...children]\n// attrs = undefined\n// }\n//\n// if (attrs == null) attrs = {}\n// return Vnode(\"\", attrs.key, attrs, children)\n// }\nmodule.exports = function() {\n\tvar attrs = arguments[this], start = this + 1, children\n\n\tif (attrs == null) {\n\t\tattrs = {}\n\t} else if (typeof attrs !== \"object\" || attrs.tag != null || Array.isArray(attrs)) {\n\t\tattrs = {}\n\t\tstart = this\n\t}\n\n\tif (arguments.length === start + 1) {\n\t\tchildren = arguments[start]\n\t\tif (!Array.isArray(children)) children = [children]\n\t} else {\n\t\tchildren = []\n\t\twhile (start < arguments.length) children.push(arguments[start++])\n\t}\n\n\treturn Vnode(\"\", attrs.key, attrs, children)\n}\n","\"use strict\"\n\nvar Vnode = require(\"../render/vnode\")\n\nmodule.exports = function($window) {\n\tvar $doc = $window && $window.document\n\tvar currentRedraw\n\n\tvar nameSpace = {\n\t\tsvg: \"http://www.w3.org/2000/svg\",\n\t\tmath: \"http://www.w3.org/1998/Math/MathML\"\n\t}\n\n\tfunction getNameSpace(vnode) {\n\t\treturn vnode.attrs && vnode.attrs.xmlns || nameSpace[vnode.tag]\n\t}\n\n\t//sanity check to discourage people from doing `vnode.state = ...`\n\tfunction checkState(vnode, original) {\n\t\tif (vnode.state !== original) throw new Error(\"`vnode.state` must not be modified\")\n\t}\n\n\t//Note: the hook is passed as the `this` argument to allow proxying the\n\t//arguments without requiring a full array allocation to do so. It also\n\t//takes advantage of the fact the current `vnode` is the first argument in\n\t//all lifecycle methods.\n\tfunction callHook(vnode) {\n\t\tvar original = vnode.state\n\t\ttry {\n\t\t\treturn this.apply(original, arguments)\n\t\t} finally {\n\t\t\tcheckState(vnode, original)\n\t\t}\n\t}\n\n\t// IE11 (at least) throws an UnspecifiedError when accessing document.activeElement when\n\t// inside an iframe. Catch and swallow this error, and heavy-handidly return null.\n\tfunction activeElement() {\n\t\ttry {\n\t\t\treturn $doc.activeElement\n\t\t} catch (e) {\n\t\t\treturn null\n\t\t}\n\t}\n\t//create\n\tfunction createNodes(parent, vnodes, start, end, hooks, nextSibling, ns) {\n\t\tfor (var i = start; i < end; i++) {\n\t\t\tvar vnode = vnodes[i]\n\t\t\tif (vnode != null) {\n\t\t\t\tcreateNode(parent, vnode, hooks, ns, nextSibling)\n\t\t\t}\n\t\t}\n\t}\n\tfunction createNode(parent, vnode, hooks, ns, nextSibling) {\n\t\tvar tag = vnode.tag\n\t\tif (typeof tag === \"string\") {\n\t\t\tvnode.state = {}\n\t\t\tif (vnode.attrs != null) initLifecycle(vnode.attrs, vnode, hooks)\n\t\t\tswitch (tag) {\n\t\t\t\tcase \"#\": createText(parent, vnode, nextSibling); break\n\t\t\t\tcase \"<\": createHTML(parent, vnode, ns, nextSibling); break\n\t\t\t\tcase \"[\": createFragment(parent, vnode, hooks, ns, nextSibling); break\n\t\t\t\tdefault: createElement(parent, vnode, hooks, ns, nextSibling)\n\t\t\t}\n\t\t}\n\t\telse createComponent(parent, vnode, hooks, ns, nextSibling)\n\t}\n\tfunction createText(parent, vnode, nextSibling) {\n\t\tvnode.dom = $doc.createTextNode(vnode.children)\n\t\tinsertNode(parent, vnode.dom, nextSibling)\n\t}\n\tvar possibleParents = {caption: \"table\", thead: \"table\", tbody: \"table\", tfoot: \"table\", tr: \"tbody\", th: \"tr\", td: \"tr\", colgroup: \"table\", col: \"colgroup\"}\n\tfunction createHTML(parent, vnode, ns, nextSibling) {\n\t\tvar match = vnode.children.match(/^\\s*?<(\\w+)/im) || []\n\t\t// not using the proper parent makes the child element(s) vanish.\n\t\t// var div = document.createElement(\"div\")\n\t\t// div.innerHTML = \"<td>i</td><td>j</td>\"\n\t\t// console.log(div.innerHTML)\n\t\t// --> \"ij\", no <td> in sight.\n\t\tvar temp = $doc.createElement(possibleParents[match[1]] || \"div\")\n\t\tif (ns === \"http://www.w3.org/2000/svg\") {\n\t\t\ttemp.innerHTML = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\">\" + vnode.children + \"</svg>\"\n\t\t\ttemp = temp.firstChild\n\t\t} else {\n\t\t\ttemp.innerHTML = vnode.children\n\t\t}\n\t\tvnode.dom = temp.firstChild\n\t\tvnode.domSize = temp.childNodes.length\n\t\t// Capture nodes to remove, so we don't confuse them.\n\t\tvnode.instance = []\n\t\tvar fragment = $doc.createDocumentFragment()\n\t\tvar child\n\t\twhile (child = temp.firstChild) {\n\t\t\tvnode.instance.push(child)\n\t\t\tfragment.appendChild(child)\n\t\t}\n\t\tinsertNode(parent, fragment, nextSibling)\n\t}\n\tfunction createFragment(parent, vnode, hooks, ns, nextSibling) {\n\t\tvar fragment = $doc.createDocumentFragment()\n\t\tif (vnode.children != null) {\n\t\t\tvar children = vnode.children\n\t\t\tcreateNodes(fragment, children, 0, children.length, hooks, null, ns)\n\t\t}\n\t\tvnode.dom = fragment.firstChild\n\t\tvnode.domSize = fragment.childNodes.length\n\t\tinsertNode(parent, fragment, nextSibling)\n\t}\n\tfunction createElement(parent, vnode, hooks, ns, nextSibling) {\n\t\tvar tag = vnode.tag\n\t\tvar attrs = vnode.attrs\n\t\tvar is = attrs && attrs.is\n\n\t\tns = getNameSpace(vnode) || ns\n\n\t\tvar element = ns ?\n\t\t\tis ? $doc.createElementNS(ns, tag, {is: is}) : $doc.createElementNS(ns, tag) :\n\t\t\tis ? $doc.createElement(tag, {is: is}) : $doc.createElement(tag)\n\t\tvnode.dom = element\n\n\t\tif (attrs != null) {\n\t\t\tsetAttrs(vnode, attrs, ns)\n\t\t}\n\n\t\tinsertNode(parent, element, nextSibling)\n\n\t\tif (!maybeSetContentEditable(vnode)) {\n\t\t\tif (vnode.text != null) {\n\t\t\t\tif (vnode.text !== \"\") element.textContent = vnode.text\n\t\t\t\telse vnode.children = [Vnode(\"#\", undefined, undefined, vnode.text, undefined, undefined)]\n\t\t\t}\n\t\t\tif (vnode.children != null) {\n\t\t\t\tvar children = vnode.children\n\t\t\t\tcreateNodes(element, children, 0, children.length, hooks, null, ns)\n\t\t\t\tif (vnode.tag === \"select\" && attrs != null) setLateSelectAttrs(vnode, attrs)\n\t\t\t}\n\t\t}\n\t}\n\tfunction initComponent(vnode, hooks) {\n\t\tvar sentinel\n\t\tif (typeof vnode.tag.view === \"function\") {\n\t\t\tvnode.state = Object.create(vnode.tag)\n\t\t\tsentinel = vnode.state.view\n\t\t\tif (sentinel.$$reentrantLock$$ != null) return\n\t\t\tsentinel.$$reentrantLock$$ = true\n\t\t} else {\n\t\t\tvnode.state = void 0\n\t\t\tsentinel = vnode.tag\n\t\t\tif (sentinel.$$reentrantLock$$ != null) return\n\t\t\tsentinel.$$reentrantLock$$ = true\n\t\t\tvnode.state = (vnode.tag.prototype != null && typeof vnode.tag.prototype.view === \"function\") ? new vnode.tag(vnode) : vnode.tag(vnode)\n\t\t}\n\t\tinitLifecycle(vnode.state, vnode, hooks)\n\t\tif (vnode.attrs != null) initLifecycle(vnode.attrs, vnode, hooks)\n\t\tvnode.instance = Vnode.normalize(callHook.call(vnode.state.view, vnode))\n\t\tif (vnode.instance === vnode) throw Error(\"A view cannot return the vnode it received as argument\")\n\t\tsentinel.$$reentrantLock$$ = null\n\t}\n\tfunction createComponent(parent, vnode, hooks, ns, nextSibling) {\n\t\tinitComponent(vnode, hooks)\n\t\tif (vnode.instance != null) {\n\t\t\tcreateNode(parent, vnode.instance, hooks, ns, nextSibling)\n\t\t\tvnode.dom = vnode.instance.dom\n\t\t\tvnode.domSize = vnode.dom != null ? vnode.instance.domSize : 0\n\t\t}\n\t\telse {\n\t\t\tvnode.domSize = 0\n\t\t}\n\t}\n\n\t//update\n\t/**\n\t * @param {Element|Fragment} parent - the parent element\n\t * @param {Vnode[] | null} old - the list of vnodes of the last `render()` call for\n\t * this part of the tree\n\t * @param {Vnode[] | null} vnodes - as above, but for the current `render()` call.\n\t * @param {Function[]} hooks - an accumulator of post-render hooks (oncreate/onupdate)\n\t * @param {Element | null} nextSibling - the next DOM node if we're dealing with a\n\t * fragment that is not the last item in its\n\t * parent\n\t * @param {'svg' | 'math' | String | null} ns) - the current XML namespace, if any\n\t * @returns void\n\t */\n\t// This function diffs and patches lists of vnodes, both keyed and unkeyed.\n\t//\n\t// We will:\n\t//\n\t// 1. describe its general structure\n\t// 2. focus on the diff algorithm optimizations\n\t// 3. discuss DOM node operations.\n\n\t// ## Overview:\n\t//\n\t// The updateNodes() function:\n\t// - deals with trivial cases\n\t// - determines whether the lists are keyed or unkeyed based on the first non-null node\n\t// of each list.\n\t// - diffs them and patches the DOM if needed (that's the brunt of the code)\n\t// - manages the leftovers: after diffing, are there:\n\t// - old nodes left to remove?\n\t// \t - new nodes to insert?\n\t// \t deal with them!\n\t//\n\t// The lists are only iterated over once, with an exception for the nodes in `old` that\n\t// are visited in the fourth part of the diff and in the `removeNodes` loop.\n\n\t// ## Diffing\n\t//\n\t// Reading https://github.com/localvoid/ivi/blob/ddc09d06abaef45248e6133f7040d00d3c6be853/packages/ivi/src/vdom/implementation.ts#L617-L837\n\t// may be good for context on longest increasing subsequence-based logic for moving nodes.\n\t//\n\t// In order to diff keyed lists, one has to\n\t//\n\t// 1) match nodes in both lists, per key, and update them accordingly\n\t// 2) create the nodes present in the new list, but absent in the old one\n\t// 3) remove the nodes present in the old list, but absent in the new one\n\t// 4) figure out what nodes in 1) to move in order to minimize the DOM operations.\n\t//\n\t// To achieve 1) one can create a dictionary of keys => index (for the old list), then iterate\n\t// over the new list and for each new vnode, find the corresponding vnode in the old list using\n\t// the map.\n\t// 2) is achieved in the same step: if a new node has no corresponding entry in the map, it is new\n\t// and must be created.\n\t// For the removals, we actually remove the nodes that have been updated from the old list.\n\t// The nodes that remain in that list after 1) and 2) have been performed can be safely removed.\n\t// The fourth step is a bit more complex and relies on the longest increasing subsequence (LIS)\n\t// algorithm.\n\t//\n\t// the longest increasing subsequence is the list of nodes that can remain in place. Imagine going\n\t// from `1,2,3,4,5` to `4,5,1,2,3` where the numbers are not necessarily the keys, but the indices\n\t// corresponding to the keyed nodes in the old list (keyed nodes `e,d,c,b,a` => `b,a,e,d,c` would\n\t// match the above lists, for example).\n\t//\n\t// In there are two increasing subsequences: `4,5` and `1,2,3`, the latter being the longest. We\n\t// can update those nodes without moving them, and only call `insertNode` on `4` and `5`.\n\t//\n\t// @localvoid adapted the algo to also support node deletions and insertions (the `lis` is actually\n\t// the longest increasing subsequence *of old nodes still present in the new list*).\n\t//\n\t// It is a general algorithm that is fireproof in all circumstances, but it requires the allocation\n\t// and the construction of a `key => oldIndex` map, and three arrays (one with `newIndex => oldIndex`,\n\t// the `LIS` and a temporary one to create the LIS).\n\t//\n\t// So we cheat where we can: if the tails of the lists are identical, they are guaranteed to be part of\n\t// the LIS and can be updated without moving them.\n\t//\n\t// If two nodes are swapped, they are guaranteed not to be part of the LIS, and must be moved (with\n\t// the exception of the last node if the list is fully reversed).\n\t//\n\t// ## Finding the next sibling.\n\t//\n\t// `updateNode()` and `createNode()` expect a nextSibling parameter to perform DOM operations.\n\t// When the list is being traversed top-down, at any index, the DOM nodes up to the previous\n\t// vnode reflect the content of the new list, whereas the rest of the DOM nodes reflect the old\n\t// list. The next sibling must be looked for in the old list using `getNextSibling(... oldStart + 1 ...)`.\n\t//\n\t// In the other scenarios (swaps, upwards traversal, map-based diff),\n\t// the new vnodes list is traversed upwards. The DOM nodes at the bottom of the list reflect the\n\t// bottom part of the new vnodes list, and we can use the `v.dom` value of the previous node\n\t// as the next sibling (cached in the `nextSibling` variable).\n\n\n\t// ## DOM node moves\n\t//\n\t// In most scenarios `updateNode()` and `createNode()` perform the DOM operations. However,\n\t// this is not the case if the node moved (second and fourth part of the diff algo). We move\n\t// the old DOM nodes before updateNode runs because it enables us to use the cached `nextSibling`\n\t// variable rather than fetching it using `getNextSibling()`.\n\t//\n\t// The fourth part of the diff currently inserts nodes unconditionally, leading to issues\n\t// like #1791 and #1999. We need to be smarter about those situations where adjascent old\n\t// nodes remain together in the new list in a way that isn't covered by parts one and\n\t// three of the diff algo.\n\n\tfunction updateNodes(parent, old, vnodes, hooks, nextSibling, ns) {\n\t\tif (old === vnodes || old == null && vnodes == null) return\n\t\telse if (old == null || old.length === 0) createNodes(parent, vnodes, 0, vnodes.length, hooks, nextSibling, ns)\n\t\telse if (vnodes == null || vnodes.length === 0) removeNodes(parent, old, 0, old.length)\n\t\telse {\n\t\t\tvar isOldKeyed = old[0] != null && old[0].key != null\n\t\t\tvar isKeyed = vnodes[0] != null && vnodes[0].key != null\n\t\t\tvar start = 0, oldStart = 0\n\t\t\tif (!isOldKeyed) while (oldStart < old.length && old[oldStart] == null) oldStart++\n\t\t\tif (!isKeyed) while (start < vnodes.length && vnodes[start] == null) start++\n\t\t\tif (isKeyed === null && isOldKeyed == null) return // both lists are full of nulls\n\t\t\tif (isOldKeyed !== isKeyed) {\n\t\t\t\tremoveNodes(parent, old, oldStart, old.length)\n\t\t\t\tcreateNodes(parent, vnodes, start, vnodes.length, hooks, nextSibling, ns)\n\t\t\t} else if (!isKeyed) {\n\t\t\t\t// Don't index past the end of either list (causes deopts).\n\t\t\t\tvar commonLength = old.length < vnodes.length ? old.length : vnodes.length\n\t\t\t\t// Rewind if necessary to the first non-null index on either side.\n\t\t\t\t// We could alternatively either explicitly create or remove nodes when `start !== oldStart`\n\t\t\t\t// but that would be optimizing for sparse lists which are more rare than dense ones.\n\t\t\t\tstart = start < oldStart ? start : oldStart\n\t\t\t\tfor (; start < commonLength; start++) {\n\t\t\t\t\to = old[start]\n\t\t\t\t\tv = vnodes[start]\n\t\t\t\t\tif (o === v || o == null && v == null) continue\n\t\t\t\t\telse if (o == null) createNode(parent, v, hooks, ns, getNextSibling(old, start + 1, nextSibling))\n\t\t\t\t\telse if (v == null) removeNode(parent, o)\n\t\t\t\t\telse updateNode(parent, o, v, hooks, getNextSibling(old, start + 1, nextSibling), ns)\n\t\t\t\t}\n\t\t\t\tif (old.length > commonLength) removeNodes(parent, old, start, old.length)\n\t\t\t\tif (vnodes.length > commonLength) createNodes(parent, vnodes, start, vnodes.length, hooks, nextSibling, ns)\n\t\t\t} else {\n\t\t\t\t// keyed diff\n\t\t\t\tvar oldEnd = old.length - 1, end = vnodes.length - 1, map, o, v, oe, ve, topSibling\n\n\t\t\t\t// bottom-up\n\t\t\t\twhile (oldEnd >= oldStart && end >= start) {\n\t\t\t\t\toe = old[oldEnd]\n\t\t\t\t\tve = vnodes[end]\n\t\t\t\t\tif (oe.key !== ve.key) break\n\t\t\t\t\tif (oe !== ve) updateNode(parent, oe, ve, hooks, nextSibling, ns)\n\t\t\t\t\tif (ve.dom != null) nextSibling = ve.dom\n\t\t\t\t\toldEnd--, end--\n\t\t\t\t}\n\t\t\t\t// top-down\n\t\t\t\twhile (oldEnd >= oldStart && end >= start) {\n\t\t\t\t\to = old[oldStart]\n\t\t\t\t\tv = vnodes[start]\n\t\t\t\t\tif (o.key !== v.key) break\n\t\t\t\t\toldStart++, start++\n\t\t\t\t\tif (o !== v) updateNode(parent, o, v, hooks, getNextSibling(old, oldStart, nextSibling), ns)\n\t\t\t\t}\n\t\t\t\t// swaps and list reversals\n\t\t\t\twhile (oldEnd >= oldStart && end >= start) {\n\t\t\t\t\tif (start === end) break\n\t\t\t\t\tif (o.key !== ve.key || oe.key !== v.key) break\n\t\t\t\t\ttopSibling = getNextSibling(old, oldStart, nextSibling)\n\t\t\t\t\tmoveNodes(parent, oe, topSibling)\n\t\t\t\t\tif (oe !== v) updateNode(parent, oe, v, hooks, topSibling, ns)\n\t\t\t\t\tif (++start <= --end) moveNodes(parent, o, nextSibling)\n\t\t\t\t\tif (o !== ve) updateNode(parent, o, ve, hooks, nextSibling, ns)\n\t\t\t\t\tif (ve.dom != null) nextSibling = ve.dom\n\t\t\t\t\toldStart++; oldEnd--\n\t\t\t\t\toe = old[oldEnd]\n\t\t\t\t\tve = vnodes[end]\n\t\t\t\t\to = old[oldStart]\n\t\t\t\t\tv = vnodes[start]\n\t\t\t\t}\n\t\t\t\t// bottom up once again\n\t\t\t\twhile (oldEnd >= oldStart && end >= start) {\n\t\t\t\t\tif (oe.key !== ve.key) break\n\t\t\t\t\tif (oe !== ve) updateNode(parent, oe, ve, hooks, nextSibling, ns)\n\t\t\t\t\tif (ve.dom != null) nextSibling = ve.dom\n\t\t\t\t\toldEnd--, end--\n\t\t\t\t\toe = old[oldEnd]\n\t\t\t\t\tve = vnodes[end]\n\t\t\t\t}\n\t\t\t\tif (start > end) removeNodes(parent, old, oldStart, oldEnd + 1)\n\t\t\t\telse if (oldStart > oldEnd) createNodes(parent, vnodes, start, end + 1, hooks, nextSibling, ns)\n\t\t\t\telse {\n\t\t\t\t\t// inspired by ivi https://github.com/ivijs/ivi/ by Boris Kaul\n\t\t\t\t\tvar originalNextSibling = nextSibling, vnodesLength = end - start + 1, oldIndices = new Array(vnodesLength), li=0, i=0, pos = 2147483647, matched = 0, map, lisIndices\n\t\t\t\t\tfor (i = 0; i < vnodesLength; i++) oldIndices[i] = -1\n\t\t\t\t\tfor (i = end; i >= start; i--) {\n\t\t\t\t\t\tif (map == null) map = getKeyMap(old, oldStart, oldEnd + 1)\n\t\t\t\t\t\tve = vnodes[i]\n\t\t\t\t\t\tvar oldIndex = map[ve.key]\n\t\t\t\t\t\tif (oldIndex != null) {\n\t\t\t\t\t\t\tpos = (oldIndex < pos) ? oldIndex : -1 // becomes -1 if nodes were re-ordered\n\t\t\t\t\t\t\toldIndices[i-start] = oldIndex\n\t\t\t\t\t\t\toe = old[oldIndex]\n\t\t\t\t\t\t\told[oldIndex] = null\n\t\t\t\t\t\t\tif (oe !== ve) updateNode(parent, oe, ve, hooks, nextSibling, ns)\n\t\t\t\t\t\t\tif (ve.dom != null) nextSibling = ve.dom\n\t\t\t\t\t\t\tmatched++\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tnextSibling = originalNextSibling\n\t\t\t\t\tif (matched !== oldEnd - oldStart + 1) removeNodes(parent, old, oldStart, oldEnd + 1)\n\t\t\t\t\tif (matched === 0) createNodes(parent, vnodes, start, end + 1, hooks, nextSibling, ns)\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (pos === -1) {\n\t\t\t\t\t\t\t// the indices of the indices of the items that are part of the\n\t\t\t\t\t\t\t// longest increasing subsequence in the oldIndices list\n\t\t\t\t\t\t\tlisIndices = makeLisIndices(oldIndices)\n\t\t\t\t\t\t\tli = lisIndices.length - 1\n\t\t\t\t\t\t\tfor (i = end; i >= start; i--) {\n\t\t\t\t\t\t\t\tv = vnodes[i]\n\t\t\t\t\t\t\t\tif (oldIndices[i-start] === -1) createNode(parent, v, hooks, ns, nextSibling)\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tif (lisIndices[li] === i - start) li--\n\t\t\t\t\t\t\t\t\telse moveNodes(parent, v, nextSibling)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (v.dom != null) nextSibling = vnodes[i].dom\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfor (i = end; i >= start; i--) {\n\t\t\t\t\t\t\t\tv = vnodes[i]\n\t\t\t\t\t\t\t\tif (oldIndices[i-start] === -1) createNode(parent, v, hooks, ns, nextSibling)\n\t\t\t\t\t\t\t\tif (v.dom != null) nextSibling = vnodes[i].dom\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tfunction updateNode(parent, old, vnode, hooks, nextSibling, ns) {\n\t\tvar oldTag = old.tag, tag = vnode.tag\n\t\tif (oldTag === tag) {\n\t\t\tvnode.state = old.state\n\t\t\tvnode.events = old.events\n\t\t\tif (shouldNotUpdate(vnode, old)) return\n\t\t\tif (typeof oldTag === \"string\") {\n\t\t\t\tif (vnode.attrs != null) {\n\t\t\t\t\tupdateLifecycle(vnode.attrs, vnode, hooks)\n\t\t\t\t}\n\t\t\t\tswitch (oldTag) {\n\t\t\t\t\tcase \"#\": updateText(old, vnode); break\n\t\t\t\t\tcase \"<\": updateHTML(parent, old, vnode, ns, nextSibling); break\n\t\t\t\t\tcase \"[\": updateFragment(parent, old, vnode, hooks, nextSibling, ns); break\n\t\t\t\t\tdefault: updateElement(old, vnode, hooks, ns)\n\t\t\t\t}\n\t\t\t}\n\t\t\telse updateComponent(parent, old, vnode, hooks, nextSibling, ns)\n\t\t}\n\t\telse {\n\t\t\tremoveNode(parent, old)\n\t\t\tcreateNode(parent, vnode, hooks, ns, nextSibling)\n\t\t}\n\t}\n\tfunction updateText(old, vnode) {\n\t\tif (old.children.toString() !== vnode.children.toString()) {\n\t\t\told.dom.nodeValue = vnode.children\n\t\t}\n\t\tvnode.dom = old.dom\n\t}\n\tfunction updateHTML(parent, old, vnode, ns, nextSibling) {\n\t\tif (old.children !== vnode.children) {\n\t\t\tremoveHTML(parent, old)\n\t\t\tcreateHTML(parent, vnode, ns, nextSibling)\n\t\t}\n\t\telse {\n\t\t\tvnode.dom = old.dom\n\t\t\tvnode.domSize = old.domSize\n\t\t\tvnode.instance = old.instance\n\t\t}\n\t}\n\tfunction updateFragment(parent, old, vnode, hooks, nextSibling, ns) {\n\t\tupdateNodes(parent, old.children, vnode.children, hooks, nextSibling, ns)\n\t\tvar domSize = 0, children = vnode.children\n\t\tvnode.dom = null\n\t\tif (children != null) {\n\t\t\tfor (var i = 0; i < children.length; i++) {\n\t\t\t\tvar child = children[i]\n\t\t\t\tif (child != null && child.dom != null) {\n\t\t\t\t\tif (vnode.dom == null) vnode.dom = child.dom\n\t\t\t\t\tdomSize += child.domSize || 1\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (domSize !== 1) vnode.domSize = domSize\n\t\t}\n\t}\n\tfunction updateElement(old, vnode, hooks, ns) {\n\t\tvar element = vnode.dom = old.dom\n\t\tns = getNameSpace(vnode) || ns\n\n\t\tif (vnode.tag === \"textarea\") {\n\t\t\tif (vnode.attrs == null) vnode.attrs = {}\n\t\t\tif (vnode.text != null) {\n\t\t\t\tvnode.attrs.value = vnode.text //FIXME handle multiple children\n\t\t\t\tvnode.text = undefined\n\t\t\t}\n\t\t}\n\t\tupdateAttrs(vnode, old.attrs, vnode.attrs, ns)\n\t\tif (!maybeSetContentEditable(vnode)) {\n\t\t\tif (old.text != null && vnode.text != null && vnode.text !== \"\") {\n\t\t\t\tif (old.text.toString() !== vnode.text.toString()) old.dom.firstChild.nodeValue = vnode.text\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (old.text != null) old.children = [Vnode(\"#\", undefined, undefined, old.text, undefined, old.dom.firstChild)]\n\t\t\t\tif (vnode.text != null) vnode.children = [Vnode(\"#\", undefined, undefined, vnode.text, undefined, undefined)]\n\t\t\t\tupdateNodes(element, old.children, vnode.children, hooks, null, ns)\n\t\t\t}\n\t\t}\n\t}\n\tfunction updateComponent(parent, old, vnode, hooks, nextSibling, ns) {\n\t\tvnode.instance = Vnode.normalize(callHook.call(vnode.state.view, vnode))\n\t\tif (vnode.instance === vnode) throw Error(\"A view cannot return the vnode it received as argument\")\n\t\tupdateLifecycle(vnode.state, vnode, hooks)\n\t\tif (vnode.attrs != null) updateLifecycle(vnode.attrs, vnode, hooks)\n\t\tif (vnode.instance != null) {\n\t\t\tif (old.instance == null) createNode(parent, vnode.instance, hooks, ns, nextSibling)\n\t\t\telse updateNode(parent, old.instance, vnode.instance, hooks, nextSibling, ns)\n\t\t\tvnode.dom = vnode.instance.dom\n\t\t\tvnode.domSize = vnode.instance.domSize\n\t\t}\n\t\telse if (old.instance != null) {\n\t\t\tremoveNode(parent, old.instance)\n\t\t\tvnode.dom = undefined\n\t\t\tvnode.domSize = 0\n\t\t}\n\t\telse {\n\t\t\tvnode.dom = old.dom\n\t\t\tvnode.domSize = old.domSize\n\t\t}\n\t}\n\tfunction getKeyMap(vnodes, start, end) {\n\t\tvar map = Object.create(null)\n\t\tfor (; start < end; start++) {\n\t\t\tvar vnode = vnodes[start]\n\t\t\tif (vnode != null) {\n\t\t\t\tvar key = vnode.key\n\t\t\t\tif (key != null) map[key] = start\n\t\t\t}\n\t\t}\n\t\treturn map\n\t}\n\t// Lifted from ivi https://github.com/ivijs/ivi/\n\t// takes a list of unique numbers (-1 is special and can\n\t// occur multiple times) and returns an array with the indices\n\t// of the items that are part of the longest increasing\n\t// subsequece\n\tvar lisTemp = []\n\tfunction makeLisIndices(a) {\n\t\tvar result = [0]\n\t\tvar u = 0, v = 0, i = 0\n\t\tvar il = lisTemp.length = a.length\n\t\tfor (var i = 0; i < il; i++) lisTemp[i] = a[i]\n\t\tfor (var i = 0; i < il; ++i) {\n\t\t\tif (a[i] === -1) continue\n\t\t\tvar j = result[result.length - 1]\n\t\t\tif (a[j] < a[i]) {\n\t\t\t\tlisTemp[i] = j\n\t\t\t\tresult.push(i)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tu = 0\n\t\t\tv = result.length - 1\n\t\t\twhile (u < v) {\n\t\t\t\t// Fast integer average without overflow.\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tvar c = (u >>> 1) + (v >>> 1) + (u & v & 1)\n\t\t\t\tif (a[result[c]] < a[i]) {\n\t\t\t\t\tu = c + 1\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tv = c\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (a[i] < a[result[u]]) {\n\t\t\t\tif (u > 0) lisTemp[i] = result[u - 1]\n\t\t\t\tresult[u] = i\n\t\t\t}\n\t\t}\n\t\tu = result.length\n\t\tv = result[u - 1]\n\t\twhile (u-- > 0) {\n\t\t\tresult[u] = v\n\t\t\tv = lisTemp[v]\n\t\t}\n\t\tlisTemp.length = 0\n\t\treturn result\n\t}\n\n\tfunction getNextSibling(vnodes, i, nextSibling) {\n\t\tfor (; i < vnodes.length; i++) {\n\t\t\tif (vnodes[i] != null && vnodes[i].dom != null) return vnodes[i].dom\n\t\t}\n\t\treturn nextSibling\n\t}\n\n\t// This covers a really specific edge case:\n\t// - Parent node is keyed and contains child\n\t// - Child is removed, returns unresolved promise in `onbeforeremove`\n\t// - Parent node is moved in keyed diff\n\t// - Remaining children still need moved appropriately\n\t//\n\t// Ideally, I'd track removed nodes as well, but that introduces a lot more\n\t// complexity and I'm not exactly interested in doing that.\n\tfunction moveNodes(parent, vnode, nextSibling) {\n\t\tvar frag = $doc.createDocumentFragment()\n\t\tmoveChildToFrag(parent, frag, vnode)\n\t\tinsertNode(parent, frag, nextSibling)\n\t}\n\tfunction moveChildToFrag(parent, frag, vnode) {\n\t\t// Dodge the recursion overhead in a few of the most common cases.\n\t\twhile (vnode.dom != null && vnode.dom.parentNode === parent) {\n\t\t\tif (typeof vnode.tag !== \"string\") {\n\t\t\t\tvnode = vnode.instance\n\t\t\t\tif (vnode != null) continue\n\t\t\t} else if (vnode.tag === \"<\") {\n\t\t\t\tfor (var i = 0; i < vnode.instance.length; i++) {\n\t\t\t\t\tfrag.appendChild(vnode.instance[i])\n\t\t\t\t}\n\t\t\t} else if (vnode.tag !== \"[\") {\n\t\t\t\t// Don't recurse for text nodes *or* elements, just fragments\n\t\t\t\tfrag.appendChild(vnode.dom)\n\t\t\t} else if (vnode.children.length === 1) {\n\t\t\t\tvnode = vnode.children[0]\n\t\t\t\tif (vnode != null) continue\n\t\t\t} else {\n\t\t\t\tfor (var i = 0; i < vnode.children.length; i++) {\n\t\t\t\t\tvar child = vnode.children[i]\n\t\t\t\t\tif (child != null) moveChildToFrag(parent, frag, child)\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t}\n\n\tfunction insertNode(parent, dom, nextSibling) {\n\t\tif (nextSibling != null) parent.insertBefore(dom, nextSibling)\n\t\telse parent.appendChild(dom)\n\t}\n\n\tfunction maybeSetContentEditable(vnode) {\n\t\tif (vnode.attrs == null || (\n\t\t\tvnode.attrs.contenteditable == null && // attribute\n\t\t\tvnode.attrs.contentEditable == null // property\n\t\t)) return false\n\t\tvar children = vnode.children\n\t\tif (children != null && children.length === 1 && children[0].tag === \"<\") {\n\t\t\tvar content = children[0].children\n\t\t\tif (vnode.dom.innerHTML !== content) vnode.dom.innerHTML = content\n\t\t}\n\t\telse if (vnode.text != null || children != null && children.length !== 0) throw new Error(\"Child node of a contenteditable must be trusted\")\n\t\treturn true\n\t}\n\n\t//remove\n\tfunction removeNodes(parent, vnodes, start, end) {\n\t\tfor (var i = start; i < end; i++) {\n\t\t\tvar vnode = vnodes[i]\n\t\t\tif (vnode != null) removeNode(parent, vnode)\n\t\t}\n\t}\n\tfunction removeNode(parent, vnode) {\n\t\tvar mask = 0\n\t\tvar original = vnode.state\n\t\tvar stateResult, attrsResult\n\t\tif (typeof vnode.tag !== \"string\" && typeof vnode.state.onbeforeremove === \"function\") {\n\t\t\tvar result = callHook.call(vnode.state.onbeforeremove, vnode)\n\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\tmask = 1\n\t\t\t\tstateResult = result\n\t\t\t}\n\t\t}\n\t\tif (vnode.attrs && typeof vnode.attrs.onbeforeremove === \"function\") {\n\t\t\tvar result = callHook.call(vnode.attrs.onbeforeremove, vnode)\n\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tmask |= 2\n\t\t\t\tattrsResult = result\n\t\t\t}\n\t\t}\n\t\tcheckState(vnode, original)\n\n\t\t// If we can, try to fast-path it and avoid all the overhead of awaiting\n\t\tif (!mask) {\n\t\t\tonremove(vnode)\n\t\t\tremoveChild(parent, vnode)\n\t\t} else {\n\t\t\tif (stateResult != null) {\n\t\t\t\tvar next = function () {\n\t\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\t\tif (mask & 1) { mask &= 2; if (!mask) reallyRemove() }\n\t\t\t\t}\n\t\t\t\tstateResult.then(next, next)\n\t\t\t}\n\t\t\tif (attrsResult != null) {\n\t\t\t\tvar next = function () {\n\t\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\t\tif (mask & 2) { mask &= 1; if (!mask) reallyRemove() }\n\t\t\t\t}\n\t\t\t\tattrsResult.then(next, next)\n\t\t\t}\n\t\t}\n\n\t\tfunction reallyRemove() {\n\t\t\tcheckState(vnode, original)\n\t\t\tonremove(vnode)\n\t\t\tremoveChild(parent, vnode)\n\t\t}\n\t}\n\tfunction removeHTML(parent, vnode) {\n\t\tfor (var i = 0; i < vnode.instance.length; i++) {\n\t\t\tparent.removeChild(vnode.instance[i])\n\t\t}\n\t}\n\tfunction removeChild(parent, vnode) {\n\t\t// Dodge the recursion overhead in a few of the most common cases.\n\t\twhile (vnode.dom != null && vnode.dom.parentNode === parent) {\n\t\t\tif (typeof vnode.tag !== \"string\") {\n\t\t\t\tvnode = vnode.instance\n\t\t\t\tif (vnode != null) continue\n\t\t\t} else if (vnode.tag === \"<\") {\n\t\t\t\tremoveHTML(parent, vnode)\n\t\t\t} else {\n\t\t\t\tif (vnode.tag !== \"[\") {\n\t\t\t\t\tparent.removeChild(vnode.dom)\n\t\t\t\t\tif (!Array.isArray(vnode.children)) break\n\t\t\t\t}\n\t\t\t\tif (vnode.children.length === 1) {\n\t\t\t\t\tvnode = vnode.children[0]\n\t\t\t\t\tif (vnode != null) continue\n\t\t\t\t} else {\n\t\t\t\t\tfor (var i = 0; i < vnode.children.length; i++) {\n\t\t\t\t\t\tvar child = vnode.children[i]\n\t\t\t\t\t\tif (child != null) removeChild(parent, child)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t}\n\tfunction onremove(vnode) {\n\t\tif (typeof vnode.tag !== \"string\" && typeof vnode.state.onremove === \"function\") callHook.call(vnode.state.onremove, vnode)\n\t\tif (vnode.attrs && typeof vnode.attrs.onremove === \"function\") callHook.call(vnode.attrs.onremove, vnode)\n\t\tif (typeof vnode.tag !== \"string\") {\n\t\t\tif (vnode.instance != null) onremove(vnode.instance)\n\t\t} else {\n\t\t\tvar children = vnode.children\n\t\t\tif (Array.isArray(children)) {\n\t\t\t\tfor (var i = 0; i < children.length; i++) {\n\t\t\t\t\tvar child = children[i]\n\t\t\t\t\tif (child != null) onremove(child)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t//attrs\n\tfunction setAttrs(vnode, attrs, ns) {\n\t\tfor (var key in attrs) {\n\t\t\tsetAttr(vnode, key, null, attrs[key], ns)\n\t\t}\n\t}\n\tfunction setAttr(vnode, key, old, value, ns) {\n\t\tif (key === \"key\" || key === \"is\" || value == null || isLifecycleMethod(key) || (old === value && !isFormAttribute(vnode, key)) && typeof value !== \"object\") return\n\t\tif (key[0] === \"o\" && key[1] === \"n\") return updateEvent(vnode, key, value)\n\t\tif (key.slice(0, 6) === \"xlink:\") vnode.dom.setAttributeNS(\"http://www.w3.org/1999/xlink\", key.slice(6), value)\n\t\telse if (key === \"style\") updateStyle(vnode.dom, old, value)\n\t\telse if (hasPropertyKey(vnode, key, ns)) {\n\t\t\tif (key === \"value\") {\n\t\t\t\t// Only do the coercion if we're actually going to check the value.\n\t\t\t\t/* eslint-disable no-implicit-coercion */\n\t\t\t\t//setting input[value] to same value by typing on focused element moves cursor to end in Chrome\n\t\t\t\tif ((vnode.tag === \"input\" || vnode.tag === \"textarea\") && vnode.dom.value === \"\" + value && vnode.dom === activeElement()) return\n\t\t\t\t//setting select[value] to same value while having select open blinks select dropdown in Chrome\n\t\t\t\tif (vnode.tag === \"select\" && old !== null && vnode.dom.value === \"\" + value) return\n\t\t\t\t//setting option[value] to same value while having select open blinks select dropdown in Chrome\n\t\t\t\tif (vnode.tag === \"option\" && old !== null && vnode.dom.value === \"\" + value) return\n\t\t\t\t/* eslint-enable no-implicit-coercion */\n\t\t\t}\n\t\t\t// If you assign an input type that is not supported by IE 11 with an assignment expression, an error will occur.\n\t\t\tif (vnode.tag === \"input\" && key === \"type\") vnode.dom.setAttribute(key, value)\n\t\t\telse vnode.dom[key] = value\n\t\t} else {\n\t\t\tif (typeof value === \"boolean\") {\n\t\t\t\tif (value) vnode.dom.setAttribute(key, \"\")\n\t\t\t\telse vnode.dom.removeAttribute(key)\n\t\t\t}\n\t\t\telse vnode.dom.setAttribute(key === \"className\" ? \"class\" : key, value)\n\t\t}\n\t}\n\tfunction removeAttr(vnode, key, old, ns) {\n\t\tif (key === \"key\" || key === \"is\" || old == null || isLifecycleMethod(key)) return\n\t\tif (key[0] === \"o\" && key[1] === \"n\" && !isLifecycleMethod(key)) updateEvent(vnode, key, undefined)\n\t\telse if (key === \"style\") updateStyle(vnode.dom, old, null)\n\t\telse if (\n\t\t\thasPropertyKey(vnode, key, ns)\n\t\t\t&& key !== \"className\"\n\t\t\t&& !(key === \"value\" && (\n\t\t\t\tvnode.tag === \"option\"\n\t\t\t\t|| vnode.tag === \"select\" && vnode.dom.selectedIndex === -1 && vnode.dom === activeElement()\n\t\t\t))\n\t\t\t&& !(vnode.tag === \"input\" && key === \"type\")\n\t\t) {\n\t\t\tvnode.dom[key] = null\n\t\t} else {\n\t\t\tvar nsLastIndex = key.indexOf(\":\")\n\t\t\tif (nsLastIndex !== -1) key = key.slice(nsLastIndex + 1)\n\t\t\tif (old !== false) vnode.dom.removeAttribute(key === \"className\" ? \"class\" : key)\n\t\t}\n\t}\n\tfunction setLateSelectAttrs(vnode, attrs) {\n\t\tif (\"value\" in attrs) {\n\t\t\tif(attrs.value === null) {\n\t\t\t\tif (vnode.dom.selectedIndex !== -1) vnode.dom.value = null\n\t\t\t} else {\n\t\t\t\tvar normalized = \"\" + attrs.value // eslint-disable-line no-implicit-coercion\n\t\t\t\tif (vnode.dom.value !== normalized || vnode.dom.selectedIndex === -1) {\n\t\t\t\t\tvnode.dom.value = normalized\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (\"selectedIndex\" in attrs) setAttr(vnode, \"selectedIndex\", null, attrs.selectedIndex, undefined)\n\t}\n\tfunction updateAttrs(vnode, old, attrs, ns) {\n\t\tif (attrs != null) {\n\t\t\tfor (var key in attrs) {\n\t\t\t\tsetAttr(vnode, key, old && old[key], attrs[key], ns)\n\t\t\t}\n\t\t}\n\t\tvar val\n\t\tif (old != null) {\n\t\t\tfor (var key in old) {\n\t\t\t\tif (((val = old[key]) != null) && (attrs == null || attrs[key] == null)) {\n\t\t\t\t\tremoveAttr(vnode, key, val, ns)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tfunction isFormAttribute(vnode, attr) {\n\t\treturn attr === \"value\" || attr === \"checked\" || attr === \"selectedIndex\" || attr === \"selected\" && vnode.dom === activeElement() || vnode.tag === \"option\" && vnode.dom.parentNode === $doc.activeElement\n\t}\n\tfunction isLifecycleMethod(attr) {\n\t\treturn attr === \"oninit\" || attr === \"oncreate\" || attr === \"onupdate\" || attr === \"onremove\" || attr === \"onbeforeremove\" || attr === \"onbeforeupdate\"\n\t}\n\tfunction hasPropertyKey(vnode, key, ns) {\n\t\t// Filter out namespaced keys\n\t\treturn ns === undefined && (\n\t\t\t// If it's a custom element, just keep it.\n\t\t\tvnode.tag.indexOf(\"-\") > -1 || vnode.attrs != null && vnode.attrs.is ||\n\t\t\t// If it's a normal element, let's try to avoid a few browser bugs.\n\t\t\tkey !== \"href\" && key !== \"list\" && key !== \"form\" && key !== \"width\" && key !== \"height\"// && key !== \"type\"\n\t\t\t// Defer the property check until *after* we check everything.\n\t\t) && key in vnode.dom\n\t}\n\n\t//style\n\tvar uppercaseRegex = /[A-Z]/g\n\tfunction toLowerCase(capital) { return \"-\" + capital.toLowerCase() }\n\tfunction normalizeKey(key) {\n\t\treturn key[0] === \"-\" && key[1] === \"-\" ? key :\n\t\t\tkey === \"cssFloat\" ? \"float\" :\n\t\t\t\tkey.replace(uppercaseRegex, toLowerCase)\n\t}\n\tfunction updateStyle(element, old, style) {\n\t\tif (old === style) {\n\t\t\t// Styles are equivalent, do nothing.\n\t\t} else if (style == null) {\n\t\t\t// New style is missing, just clear it.\n\t\t\telement.style.cssText = \"\"\n\t\t} else if (typeof style !== \"object\") {\n\t\t\t// New style is a string, let engine deal with patching.\n\t\t\telement.style.cssText = style\n\t\t} else if (old == null || typeof old !== \"object\") {\n\t\t\t// `old` is missing or a string, `style` is an object.\n\t\t\telement.style.cssText = \"\"\n\t\t\t// Add new style properties\n\t\t\tfor (var key in style) {\n\t\t\t\tvar value = style[key]\n\t\t\t\tif (value != null) element.style.setProperty(normalizeKey(key), String(value))\n\t\t\t}\n\t\t} else {\n\t\t\t// Both old & new are (different) objects.\n\t\t\t// Update style properties that have changed\n\t\t\tfor (var key in style) {\n\t\t\t\tvar value = style[key]\n\t\t\t\tif (value != null && (value = String(value)) !== String(old[key])) {\n\t\t\t\t\telement.style.setProperty(normalizeKey(key), value)\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Remove style properties that no longer exist\n\t\t\tfor (var key in old) {\n\t\t\t\tif (old[key] != null && style[key] == null) {\n\t\t\t\t\telement.style.removeProperty(normalizeKey(key))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Here's an explanation of how this works:\n\t// 1. The event names are always (by design) prefixed by `on`.\n\t// 2. The EventListener interface accepts either a function or an object\n\t// with a `handleEvent` method.\n\t// 3. The object does not inherit from `Object.prototype`, to avoid\n\t// any potential interference with that (e.g. setters).\n\t// 4. The event name is remapped to the handler before calling it.\n\t// 5. In function-based event handlers, `ev.target === this`. We replicate\n\t// that below.\n\t// 6. In function-based event handlers, `return false` prevents the default\n\t// action and stops event propagation. We replicate that below.\n\tfunction EventDict() {\n\t\t// Save this, so the current redraw is correctly tracked.\n\t\tthis._ = currentRedraw\n\t}\n\tEventDict.prototype = Object.create(null)\n\tEventDict.prototype.handleEvent = function (ev) {\n\t\tvar handler = this[\"on\" + ev.type]\n\t\tvar result\n\t\tif (typeof handler === \"function\") result = handler.call(ev.currentTarget, ev)\n\t\telse if (typeof handler.handleEvent === \"function\") handler.handleEvent(ev)\n\t\tif (this._ && ev.redraw !== false) (0, this._)()\n\t\tif (result === false) {\n\t\t\tev.preventDefault()\n\t\t\tev.stopPropagation()\n\t\t}\n\t}\n\n\t//event\n\tfunction updateEvent(vnode, key, value) {\n\t\tif (vnode.events != null) {\n\t\t\tif (vnode.events[key] === value) return\n\t\t\tif (value != null && (typeof value === \"function\" || typeof value === \"object\")) {\n\t\t\t\tif (vnode.events[key] == null) vnode.dom.addEventListener(key.slice(2), vnode.events, false)\n\t\t\t\tvnode.events[key] = value\n\t\t\t} else {\n\t\t\t\tif (vnode.events[key] != null) vnode.dom.removeEventListener(key.slice(2), vnode.events, false)\n\t\t\t\tvnode.events[key] = undefined\n\t\t\t}\n\t\t} else if (value != null && (typeof value === \"function\" || typeof value === \"object\")) {\n\t\t\tvnode.events = new EventDict()\n\t\t\tvnode.dom.addEventListener(key.slice(2), vnode.events, false)\n\t\t\tvnode.events[key] = value\n\t\t}\n\t}\n\n\t//lifecycle\n\tfunction initLifecycle(source, vnode, hooks) {\n\t\tif (typeof source.oninit === \"function\") callHook.call(source.oninit, vnode)\n\t\tif (typeof source.oncreate === \"function\") hooks.push(callHook.bind(source.oncreate, vnode))\n\t}\n\tfunction updateLifecycle(source, vnode, hooks) {\n\t\tif (typeof source.onupdate === \"function\") hooks.push(callHook.bind(source.onupdate, vnode))\n\t}\n\tfunction shouldNotUpdate(vnode, old) {\n\t\tdo {\n\t\t\tif (vnode.attrs != null && typeof vnode.attrs.onbeforeupdate === \"function\") {\n\t\t\t\tvar force = callHook.call(vnode.attrs.onbeforeupdate, vnode, old)\n\t\t\t\tif (force !== undefined && !force) break\n\t\t\t}\n\t\t\tif (typeof vnode.tag !== \"string\" && typeof vnode.state.onbeforeupdate === \"function\") {\n\t\t\t\tvar force = callHook.call(vnode.state.onbeforeupdate, vnode, old)\n\t\t\t\tif (force !== undefined && !force) break\n\t\t\t}\n\t\t\treturn false\n\t\t} while (false); // eslint-disable-line no-constant-condition\n\t\tvnode.dom = old.dom\n\t\tvnode.domSize = old.domSize\n\t\tvnode.instance = old.instance\n\t\t// One would think having the actual latest attributes would be ideal,\n\t\t// but it doesn't let us properly diff based on our current internal\n\t\t// representation. We have to save not only the old DOM info, but also\n\t\t// the attributes used to create it, as we diff *that*, not against the\n\t\t// DOM directly (with a few exceptions in `setAttr`). And, of course, we\n\t\t// need to save the children and text as they are conceptually not\n\t\t// unlike special \"attributes\" internally.\n\t\tvnode.attrs = old.attrs\n\t\tvnode.children = old.children\n\t\tvnode.text = old.text\n\t\treturn true\n\t}\n\n\treturn function(dom, vnodes, redraw) {\n\t\tif (!dom) throw new TypeError(\"Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.\")\n\t\tvar hooks = []\n\t\tvar active = activeElement()\n\t\tvar namespace = dom.namespaceURI\n\n\t\t// First time rendering into a node clears it out\n\t\tif (dom.vnodes == null) dom.textContent = \"\"\n\n\t\tvnodes = Vnode.normalizeChildren(Array.isArray(vnodes) ? vnodes : [vnodes])\n\t\tvar prevRedraw = currentRedraw\n\t\ttry {\n\t\t\tcurrentRedraw = typeof redraw === \"function\" ? redraw : undefined\n\t\t\tupdateNodes(dom, dom.vnodes, vnodes, hooks, null, namespace === \"http://www.w3.org/1999/xhtml\" ? undefined : namespace)\n\t\t} finally {\n\t\t\tcurrentRedraw = prevRedraw\n\t\t}\n\t\tdom.vnodes = vnodes\n\t\t// `document.activeElement` can return null: https://html.spec.whatwg.org/multipage/interaction.html#dom-document-activeelement\n\t\tif (active != null && activeElement() !== active && typeof active.focus === \"function\") active.focus()\n\t\tfor (var i = 0; i < hooks.length; i++) hooks[i]()\n\t}\n}\n","\"use strict\"\n\nvar Vnode = require(\"../render/vnode\")\n\nmodule.exports = function(html) {\n\tif (html == null) html = \"\"\n\treturn Vnode(\"<\", undefined, undefined, html, undefined, undefined)\n}\n","\"use strict\"\n\nfunction Vnode(tag, key, attrs, children, text, dom) {\n\treturn {tag: tag, key: key, attrs: attrs, children: children, text: text, dom: dom, domSize: undefined, state: undefined, events: undefined, instance: undefined}\n}\nVnode.normalize = function(node) {\n\tif (Array.isArray(node)) return Vnode(\"[\", undefined, undefined, Vnode.normalizeChildren(node), undefined, undefined)\n\tif (node == null || typeof node === \"boolean\") return null\n\tif (typeof node === \"object\") return node\n\treturn Vnode(\"#\", undefined, undefined, String(node), undefined, undefined)\n}\nVnode.normalizeChildren = function(input) {\n\tvar children = []\n\tif (input.length) {\n\t\tvar isKeyed = input[0] != null && input[0].key != null\n\t\t// Note: this is a *very* perf-sensitive check.\n\t\t// Fun fact: merging the loop like this is somehow faster than splitting\n\t\t// it, noticeably so.\n\t\tfor (var i = 1; i < input.length; i++) {\n\t\t\tif ((input[i] != null && input[i].key != null) !== isKeyed) {\n\t\t\t\tthrow new TypeError(\"Vnodes must either always have keys or never have keys!\")\n\t\t\t}\n\t\t}\n\t\tfor (var i = 0; i < input.length; i++) {\n\t\t\tchildren[i] = Vnode.normalize(input[i])\n\t\t}\n\t}\n\treturn children\n}\n\nmodule.exports = Vnode\n","\"use strict\"\n\nvar PromisePolyfill = require(\"./promise/promise\")\nvar mountRedraw = require(\"./mount-redraw\")\n\nmodule.exports = require(\"./request/request\")(window, PromisePolyfill, mountRedraw.redraw)\n","\"use strict\"\n\nvar buildPathname = require(\"../pathname/build\")\n\nmodule.exports = function($window, Promise, oncompletion) {\n\tvar callbackCount = 0\n\n\tfunction PromiseProxy(executor) {\n\t\treturn new Promise(executor)\n\t}\n\n\t// In case the global Promise is some userland library's where they rely on\n\t// `foo instanceof this.constructor`, `this.constructor.resolve(value)`, or\n\t// similar. Let's *not* break them.\n\tPromiseProxy.prototype = Promise.prototype\n\tPromiseProxy.__proto__ = Promise // eslint-disable-line no-proto\n\n\tfunction makeRequest(factory) {\n\t\treturn function(url, args) {\n\t\t\tif (typeof url !== \"string\") { args = url; url = url.url }\n\t\t\telse if (args == null) args = {}\n\t\t\tvar promise = new Promise(function(resolve, reject) {\n\t\t\t\tfactory(buildPathname(url, args.params), args, function (data) {\n\t\t\t\t\tif (typeof args.type === \"function\") {\n\t\t\t\t\t\tif (Array.isArray(data)) {\n\t\t\t\t\t\t\tfor (var i = 0; i < data.length; i++) {\n\t\t\t\t\t\t\t\tdata[i] = new args.type(data[i])\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse data = new args.type(data)\n\t\t\t\t\t}\n\t\t\t\t\tresolve(data)\n\t\t\t\t}, reject)\n\t\t\t})\n\t\t\tif (args.background === true) return promise\n\t\t\tvar count = 0\n\t\t\tfunction complete() {\n\t\t\t\tif (--count === 0 && typeof oncompletion === \"function\") oncompletion()\n\t\t\t}\n\n\t\t\treturn wrap(promise)\n\n\t\t\tfunction wrap(promise) {\n\t\t\t\tvar then = promise.then\n\t\t\t\t// Set the constructor, so engines know to not await or resolve\n\t\t\t\t// this as a native promise. At the time of writing, this is\n\t\t\t\t// only necessary for V8, but their behavior is the correct\n\t\t\t\t// behavior per spec. See this spec issue for more details:\n\t\t\t\t// https://github.com/tc39/ecma262/issues/1577. Also, see the\n\t\t\t\t// corresponding comment in `request/tests/test-request.js` for\n\t\t\t\t// a bit more background on the issue at hand.\n\t\t\t\tpromise.constructor = PromiseProxy\n\t\t\t\tpromise.then = function() {\n\t\t\t\t\tcount++\n\t\t\t\t\tvar next = then.apply(promise, arguments)\n\t\t\t\t\tnext.then(complete, function(e) {\n\t\t\t\t\t\tcomplete()\n\t\t\t\t\t\tif (count === 0) throw e\n\t\t\t\t\t})\n\t\t\t\t\treturn wrap(next)\n\t\t\t\t}\n\t\t\t\treturn promise\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction hasHeader(args, name) {\n\t\tfor (var key in args.headers) {\n\t\t\tif ({}.hasOwnProperty.call(args.headers, key) && name.test(key)) return true\n\t\t}\n\t\treturn false\n\t}\n\n\treturn {\n\t\trequest: makeRequest(function(url, args, resolve, reject) {\n\t\t\tvar method = args.method != null ? args.method.toUpperCase() : \"GET\"\n\t\t\tvar body = args.body\n\t\t\tvar assumeJSON = (args.serialize == null || args.serialize === JSON.serialize) && !(body instanceof $window.FormData)\n\t\t\tvar responseType = args.responseType || (typeof args.extract === \"function\" ? \"\" : \"json\")\n\n\t\t\tvar xhr = new $window.XMLHttpRequest(), aborted = false\n\t\t\tvar original = xhr, replacedAbort\n\t\t\tvar abort = xhr.abort\n\n\t\t\txhr.abort = function() {\n\t\t\t\taborted = true\n\t\t\t\tabort.call(this)\n\t\t\t}\n\n\t\t\txhr.open(method, url, args.async !== false, typeof args.user === \"string\" ? args.user : undefined, typeof args.password === \"string\" ? args.password : undefined)\n\n\t\t\tif (assumeJSON && body != null && !hasHeader(args, /^content-type$/i)) {\n\t\t\t\txhr.setRequestHeader(\"Content-Type\", \"application/json; charset=utf-8\")\n\t\t\t}\n\t\t\tif (typeof args.deserialize !== \"function\" && !hasHeader(args, /^accept$/i)) {\n\t\t\t\txhr.setRequestHeader(\"Accept\", \"application/json, text/*\")\n\t\t\t}\n\t\t\tif (args.withCredentials) xhr.withCredentials = args.withCredentials\n\t\t\tif (args.timeout) xhr.timeout = args.timeout\n\t\t\txhr.responseType = responseType\n\n\t\t\tfor (var key in args.headers) {\n\t\t\t\tif ({}.hasOwnProperty.call(args.headers, key)) {\n\t\t\t\t\txhr.setRequestHeader(key, args.headers[key])\n\t\t\t\t}\n\t\t\t}\n\n\t\t\txhr.onreadystatechange = function(ev) {\n\t\t\t\t// Don't throw errors on xhr.abort().\n\t\t\t\tif (aborted) return\n\n\t\t\t\tif (ev.target.readyState === 4) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvar success = (ev.target.status >= 200 && ev.target.status < 300) || ev.target.status === 304 || (/^file:\\/\\//i).test(url)\n\t\t\t\t\t\t// When the response type isn't \"\" or \"text\",\n\t\t\t\t\t\t// `xhr.responseText` is the wrong thing to use.\n\t\t\t\t\t\t// Browsers do the right thing and throw here, and we\n\t\t\t\t\t\t// should honor that and do the right thing by\n\t\t\t\t\t\t// preferring `xhr.response` where possible/practical.\n\t\t\t\t\t\tvar response = ev.target.response, message\n\n\t\t\t\t\t\tif (responseType === \"json\") {\n\t\t\t\t\t\t\t// For IE and Edge, which don't implement\n\t\t\t\t\t\t\t// `responseType: \"json\"`.\n\t\t\t\t\t\t\tif (!ev.target.responseType && typeof args.extract !== \"function\") response = JSON.parse(ev.target.responseText)\n\t\t\t\t\t\t} else if (!responseType || responseType === \"text\") {\n\t\t\t\t\t\t\t// Only use this default if it's text. If a parsed\n\t\t\t\t\t\t\t// document is needed on old IE and friends (all\n\t\t\t\t\t\t\t// unsupported), the user should use a custom\n\t\t\t\t\t\t\t// `config` instead. They're already using this at\n\t\t\t\t\t\t\t// their own risk.\n\t\t\t\t\t\t\tif (response == null) response = ev.target.responseText\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (typeof args.extract === \"function\") {\n\t\t\t\t\t\t\tresponse = args.extract(ev.target, args)\n\t\t\t\t\t\t\tsuccess = true\n\t\t\t\t\t\t} else if (typeof args.deserialize === \"function\") {\n\t\t\t\t\t\t\tresponse = args.deserialize(response)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (success) resolve(response)\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\ttry { message = ev.target.responseText }\n\t\t\t\t\t\t\tcatch (e) { message = response }\n\t\t\t\t\t\t\tvar error = new Error(message)\n\t\t\t\t\t\t\terror.code = ev.target.status\n\t\t\t\t\t\t\terror.response = response\n\t\t\t\t\t\t\treject(error)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch (e) {\n\t\t\t\t\t\treject(e)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (typeof args.config === \"function\") {\n\t\t\t\txhr = args.config(xhr, args, url) || xhr\n\n\t\t\t\t// Propagate the `abort` to any replacement XHR as well.\n\t\t\t\tif (xhr !== original) {\n\t\t\t\t\treplacedAbort = xhr.abort\n\t\t\t\t\txhr.abort = function() {\n\t\t\t\t\t\taborted = true\n\t\t\t\t\t\treplacedAbort.call(this)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (body == null) xhr.send()\n\t\t\telse if (typeof args.serialize === \"function\") xhr.send(args.serialize(body))\n\t\t\telse if (body instanceof $window.FormData) xhr.send(body)\n\t\t\telse xhr.send(JSON.stringify(body))\n\t\t}),\n\t\tjsonp: makeRequest(function(url, args, resolve, reject) {\n\t\t\tvar callbackName = args.callbackName || \"_mithril_\" + Math.round(Math.random() * 1e16) + \"_\" + callbackCount++\n\t\t\tvar script = $window.document.createElement(\"script\")\n\t\t\t$window[callbackName] = function(data) {\n\t\t\t\tdelete $window[callbackName]\n\t\t\t\tscript.parentNode.removeChild(script)\n\t\t\t\tresolve(data)\n\t\t\t}\n\t\t\tscript.onerror = function() {\n\t\t\t\tdelete $window[callbackName]\n\t\t\t\tscript.parentNode.removeChild(script)\n\t\t\t\treject(new Error(\"JSONP request failed\"))\n\t\t\t}\n\t\t\tscript.src = url + (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") +\n\t\t\t\tencodeURIComponent(args.callbackKey || \"callback\") + \"=\" +\n\t\t\t\tencodeURIComponent(callbackName)\n\t\t\t$window.document.documentElement.appendChild(script)\n\t\t}),\n\t}\n}\n","\"use strict\"\n\nvar mountRedraw = require(\"./mount-redraw\")\n\nmodule.exports = require(\"./api/router\")(window, mountRedraw)\n","\"use strict\"\n\nmodule.exports = require(\"./stream/stream\")\n","/* eslint-disable */\n;(function() {\n\"use strict\"\n/* eslint-enable */\nStream.SKIP = {}\nStream.lift = lift\nStream.scan = scan\nStream.merge = merge\nStream.combine = combine\nStream.scanMerge = scanMerge\nStream[\"fantasy-land/of\"] = Stream\n\nvar warnedHalt = false\nObject.defineProperty(Stream, \"HALT\", {\n\tget: function() {\n\t\twarnedHalt || console.log(\"HALT is deprecated and has been renamed to SKIP\");\n\t\twarnedHalt = true\n\t\treturn Stream.SKIP\n\t}\n})\n\nfunction Stream(value) {\n\tvar dependentStreams = []\n\tvar dependentFns = []\n\n\tfunction stream(v) {\n\t\tif (arguments.length && v !== Stream.SKIP) {\n\t\t\tvalue = v\n\t\t\tif (open(stream)) {\n\t\t\t\tstream._changing()\n\t\t\t\tstream._state = \"active\"\n\t\t\t\tdependentStreams.forEach(function(s, i) { s(dependentFns[i](value)) })\n\t\t\t}\n\t\t}\n\n\t\treturn value\n\t}\n\n\tstream.constructor = Stream\n\tstream._state = arguments.length && value !== Stream.SKIP ? \"active\" : \"pending\"\n\tstream._parents = []\n\n\tstream._changing = function() {\n\t\tif (open(stream)) stream._state = \"changing\"\n\t\tdependentStreams.forEach(function(s) {\n\t\t\ts._changing()\n\t\t})\n\t}\n\n\tstream._map = function(fn, ignoreInitial) {\n\t\tvar target = ignoreInitial ? Stream() : Stream(fn(value))\n\t\ttarget._parents.push(stream)\n\t\tdependentStreams.push(target)\n\t\tdependentFns.push(fn)\n\t\treturn target\n\t}\n\n\tstream.map = function(fn) {\n\t\treturn stream._map(fn, stream._state !== \"active\")\n\t}\n\n\tvar end\n\tfunction createEnd() {\n\t\tend = Stream()\n\t\tend.map(function(value) {\n\t\t\tif (value === true) {\n\t\t\t\tstream._parents.forEach(function (p) {p._unregisterChild(stream)})\n\t\t\t\tstream._state = \"ended\"\n\t\t\t\tstream._parents.length = dependentStreams.length = dependentFns.length = 0\n\t\t\t}\n\t\t\treturn value\n\t\t})\n\t\treturn end\n\t}\n\n\tstream.toJSON = function() { return value != null && typeof value.toJSON === \"function\" ? value.toJSON() : value }\n\n\tstream[\"fantasy-land/map\"] = stream.map\n\tstream[\"fantasy-land/ap\"] = function(x) { return combine(function(s1, s2) { return s1()(s2()) }, [x, stream]) }\n\n\tstream._unregisterChild = function(child) {\n\t\tvar childIndex = dependentStreams.indexOf(child)\n\t\tif (childIndex !== -1) {\n\t\t\tdependentStreams.splice(childIndex, 1)\n\t\t\tdependentFns.splice(childIndex, 1)\n\t\t}\n\t}\n\n\tObject.defineProperty(stream, \"end\", {\n\t\tget: function() { return end || createEnd() }\n\t})\n\n\treturn stream\n}\n\nfunction combine(fn, streams) {\n\tvar ready = streams.every(function(s) {\n\t\tif (s.constructor !== Stream)\n\t\t\tthrow new Error(\"Ensure that each item passed to stream.combine/stream.merge/lift is a stream\")\n\t\treturn s._state === \"active\"\n\t})\n\tvar stream = ready\n\t\t? Stream(fn.apply(null, streams.concat([streams])))\n\t\t: Stream()\n\n\tvar changed = []\n\n\tvar mappers = streams.map(function(s) {\n\t\treturn s._map(function(value) {\n\t\t\tchanged.push(s)\n\t\t\tif (ready || streams.every(function(s) { return s._state !== \"pending\" })) {\n\t\t\t\tready = true\n\t\t\t\tstream(fn.apply(null, streams.concat([changed])))\n\t\t\t\tchanged = []\n\t\t\t}\n\t\t\treturn value\n\t\t}, true)\n\t})\n\n\tvar endStream = stream.end.map(function(value) {\n\t\tif (value === true) {\n\t\t\tmappers.forEach(function(mapper) { mapper.end(true) })\n\t\t\tendStream.end(true)\n\t\t}\n\t\treturn undefined\n\t})\n\n\treturn stream\n}\n\nfunction merge(streams) {\n\treturn combine(function() { return streams.map(function(s) { return s() }) }, streams)\n}\n\nfunction scan(fn, acc, origin) {\n\tvar stream = origin.map(function(v) {\n\t\tvar next = fn(acc, v)\n\t\tif (next !== Stream.SKIP) acc = next\n\t\treturn next\n\t})\n\tstream(acc)\n\treturn stream\n}\n\nfunction scanMerge(tuples, seed) {\n\tvar streams = tuples.map(function(tuple) { return tuple[0] })\n\n\tvar stream = combine(function() {\n\t\tvar changed = arguments[arguments.length - 1]\n\t\tstreams.forEach(function(stream, i) {\n\t\t\tif (changed.indexOf(stream) > -1)\n\t\t\t\tseed = tuples[i][1](seed, stream())\n\t\t})\n\n\t\treturn seed\n\t}, streams)\n\n\tstream(seed)\n\n\treturn stream\n}\n\nfunction lift() {\n\tvar fn = arguments[0]\n\tvar streams = Array.prototype.slice.call(arguments, 1)\n\treturn merge(streams).map(function(streams) {\n\t\treturn fn.apply(undefined, streams)\n\t})\n}\n\nfunction open(s) {\n\treturn s._state === \"pending\" || s._state === \"active\" || s._state === \"changing\"\n}\n\nif (typeof module !== \"undefined\") module[\"exports\"] = Stream\nelse if (typeof window.m === \"function\" && !(\"stream\" in window.m)) window.m.stream = Stream\nelse window.m = {stream : Stream}\n\n}());\n","export default typeof window !== 'undefined' && typeof document !== 'undefined';\n","import isBrowser from './isBrowser';\n\nconst longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nlet timeoutDuration = 0;\nfor (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nexport function microtaskDebounce(fn) {\n let called = false\n return () => {\n if (called) {\n return\n }\n called = true\n window.Promise.resolve().then(() => {\n called = false\n fn()\n })\n }\n}\n\nexport function taskDebounce(fn) {\n let scheduled = false;\n return () => {\n if (!scheduled) {\n scheduled = true;\n setTimeout(() => {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nexport default (supportsMicroTasks\n ? microtaskDebounce\n : taskDebounce);\n","/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nexport default function isFunction(functionToCheck) {\n const getType = {};\n return (\n functionToCheck &&\n getType.toString.call(functionToCheck) === '[object Function]'\n );\n}\n","/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nexport default function getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n const window = element.ownerDocument.defaultView;\n const css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n","/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nexport default function getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nexport default function getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body\n case '#document':\n return element.body\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nexport default function isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nexport default function getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n const noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n let offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n const nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (\n ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n getStyleComputedProperty(offsetParent, 'position') === 'static'\n ) {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n const { nodeName } = element;\n if (nodeName === 'BODY') {\n return false;\n }\n return (\n nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element\n );\n}\n","/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nexport default function getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nexport default function findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n const order =\n element1.compareDocumentPosition(element2) &\n Node.DOCUMENT_POSITION_FOLLOWING;\n const start = order ? element1 : element2;\n const end = order ? element2 : element1;\n\n // Get common ancestor container\n const range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n const { commonAncestorContainer } = range;\n\n // Both nodes are inside #document\n if (\n (element1 !== commonAncestorContainer &&\n element2 !== commonAncestorContainer) ||\n start.contains(end)\n ) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n const element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n","/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nexport default function getScroll(element, side = 'top') {\n const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n const nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n const html = element.ownerDocument.documentElement;\n const scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n","import getScroll from './getScroll';\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nexport default function includeScroll(rect, element, subtract = false) {\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n const modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n","/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nexport default function getBordersSize(styles, axis) {\n const sideA = axis === 'x' ? 'Left' : 'Top';\n const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return (\n parseFloat(styles[`border${sideA}Width`], 10) +\n parseFloat(styles[`border${sideB}Width`], 10)\n );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(\n body[`offset${axis}`],\n body[`scroll${axis}`],\n html[`client${axis}`],\n html[`offset${axis}`],\n html[`scroll${axis}`],\n isIE(10)\n ? (parseInt(html[`offset${axis}`]) + \n parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n : 0 \n );\n}\n\nexport default function getWindowSizes(document) {\n const body = document.body;\n const html = document.documentElement;\n const computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle),\n };\n}\n","/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nexport default function getClientRect(offsets) {\n return {\n ...offsets,\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height,\n };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nexport default function getBoundingClientRect(element) {\n let rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n }\n else {\n rect = element.getBoundingClientRect();\n }\n }\n catch(e){}\n\n const result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top,\n };\n\n // subtract scrollbar size from sizes\n const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n const width =\n sizes.width || element.clientWidth || result.right - result.left;\n const height =\n sizes.height || element.clientHeight || result.bottom - result.top;\n\n let horizScrollbar = element.offsetWidth - width;\n let vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n const styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n const isIE10 = runIsIE(10);\n const isHTML = parent.nodeName === 'HTML';\n const childrenRect = getBoundingClientRect(children);\n const parentRect = getBoundingClientRect(parent);\n const scrollParent = getScrollParent(children);\n\n const styles = getStyleComputedProperty(parent);\n const borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n const borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if(fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n let offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height,\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n const marginTop = parseFloat(styles.marginTop, 10);\n const marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (\n isIE10 && !fixedPosition\n ? parent.contains(scrollParent)\n : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n ) {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n const html = element.ownerDocument.documentElement;\n const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n const width = Math.max(html.clientWidth, window.innerWidth || 0);\n const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n const scrollTop = !excludeScroll ? getScroll(html) : 0;\n const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n const offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width,\n height,\n };\n\n return getClientRect(offset);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nexport default function isFixed(element) {\n const nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n const parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nexport default function getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n let el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nexport default function getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement,\n fixedPosition = false\n) {\n // NOTE: 1 DOM access here\n\n let boundaries = { top: 0, left: 0 };\n const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport' ) {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n }\n\n else {\n // Handle other cases based on DOM element used as boundaries\n let boundariesNode;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n const offsets = getOffsetRectRelativeToArbitraryNode(\n boundariesNode,\n offsetParent,\n fixedPosition\n );\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n const { height, width } = getWindowSizes(popper.ownerDocument);\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n const isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0; \n boundaries.top += isPaddingNumber ? padding : padding.top || 0; \n boundaries.right -= isPaddingNumber ? padding : padding.right || 0; \n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0; \n\n return boundaries;\n}\n","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeAutoPlacement(\n placement,\n refRect,\n popper,\n reference,\n boundariesElement,\n padding = 0\n) {\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n const boundaries = getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement\n );\n\n const rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top,\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height,\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom,\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height,\n },\n };\n\n const sortedAreas = Object.keys(rects)\n .map(key => ({\n key,\n ...rects[key],\n area: getArea(rects[key]),\n }))\n .sort((a, b) => b.area - a.area);\n\n const filteredAreas = sortedAreas.filter(\n ({ width, height }) =>\n width >= popper.clientWidth && height >= popper.clientHeight\n );\n\n const computedPlacement = filteredAreas.length > 0\n ? filteredAreas[0].key\n : sortedAreas[0].key;\n\n const variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n","/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nexport default function getOuterSizes(element) {\n const window = element.ownerDocument.defaultView;\n const styles = window.getComputedStyle(element);\n const x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n const y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n const result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x,\n };\n return result;\n}\n","/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nexport default function getOppositePlacement(placement) {\n const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n const popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n const popperOffsets = {\n width: popperRect.width,\n height: popperRect.height,\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n const mainSide = isHoriz ? 'top' : 'left';\n const secondarySide = isHoriz ? 'left' : 'top';\n const measurement = isHoriz ? 'height' : 'width';\n const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] =\n referenceOffsets[mainSide] +\n referenceOffsets[measurement] / 2 -\n popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] =\n referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] =\n referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n","/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n","import find from './find';\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(cur => cur[prop] === value);\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n const match = find(arr, obj => obj[prop] === value);\n return arr.indexOf(match);\n}\n","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nexport default function runModifiers(modifiers, data, ends) {\n const modifiersToRun = ends === undefined\n ? modifiers\n : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(modifier => {\n if (modifier['function']) { // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n const fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n","import computeAutoPlacement from '../utils/computeAutoPlacement';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nexport default function update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n let data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {},\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(\n this.state,\n this.popper,\n this.reference,\n this.options.positionFixed\n );\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(\n this.options.placement,\n data.offsets.reference,\n this.popper,\n this.reference,\n this.options.modifiers.flip.boundariesElement,\n this.options.modifiers.flip.padding\n );\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(\n this.popper,\n data.offsets.reference,\n data.placement\n );\n\n data.offsets.popper.position = this.options.positionFixed\n ? 'fixed'\n : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n","/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(\n ({ name, enabled }) => enabled && name === modifierName\n );\n}\n","/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nexport default function getSupportedPropertyName(property) {\n const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (let i = 0; i < prefixes.length; i++) {\n const prefix = prefixes[i];\n const toCheck = prefix ? `${prefix}${upperProp}` : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n","import isModifierEnabled from '../utils/isModifierEnabled';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nexport default function destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n","/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nexport default function getWindow(element) {\n const ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n const isBody = scrollParent.nodeName === 'BODY';\n const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(\n getScrollParent(target.parentNode),\n event,\n callback,\n scrollParents\n );\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function setupEventListeners(\n reference,\n options,\n state,\n updateBound\n) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n const scrollElement = getScrollParent(reference);\n attachToScrollParents(\n scrollElement,\n 'scroll',\n state.updateBound,\n state.scrollParents\n );\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n","import setupEventListeners from '../utils/setupEventListeners';\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nexport default function enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(\n this.reference,\n this.options,\n this.state,\n this.scheduleUpdate\n );\n }\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(target => {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n","import removeEventListeners from '../utils/removeEventListeners';\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nexport default function disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n","/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nexport default function isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","import isNumeric from './isNumeric';\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setStyles(element, styles) {\n Object.keys(styles).forEach(prop => {\n let unit = '';\n // add unit if the value is numeric and is one of the following\n if (\n ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n -1 &&\n isNumeric(styles[prop])\n ) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n","/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function(prop) {\n const value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n","import setStyles from '../utils/setStyles';\nimport setAttributes from '../utils/setAttributes';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport computeAutoPlacement from '../utils/computeAutoPlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nexport default function applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nexport function applyStyleOnLoad(\n reference,\n popper,\n options,\n modifierOptions,\n state\n) {\n // compute reference element offsets\n const referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n const placement = computeAutoPlacement(\n options.placement,\n referenceOffsets,\n popper,\n reference,\n options.modifiers.flip.boundariesElement,\n options.modifiers.flip.padding\n );\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n","/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nexport default function getRoundedOffsets(data, shouldRound) {\n const { popper, reference } = data.offsets;\n const { round, floor } = Math;\n const noRound = v => v;\n \n const referenceWidth = round(reference.width);\n const popperWidth = round(popper.width);\n \n const isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n const isVariation = data.placement.indexOf('-') !== -1;\n const sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n const bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n const horizontalToInteger = !shouldRound\n ? noRound\n : isVertical || isVariation || sameWidthParity\n ? round\n : floor;\n const verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(\n bothOddWidth && !isVariation && shouldRound\n ? popper.left - 1\n : popper.left\n ),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right),\n };\n}\n","import getSupportedPropertyName from '../utils/getSupportedPropertyName';\nimport find from '../utils/find';\nimport getOffsetParent from '../utils/getOffsetParent';\nimport getBoundingClientRect from '../utils/getBoundingClientRect';\nimport getRoundedOffsets from '../utils/getRoundedOffsets';\nimport isBrowser from '../utils/isBrowser';\n\nconst isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeStyle(data, options) {\n const { x, y } = options;\n const { popper } = data.offsets;\n\n // Remove this legacy support in Popper.js v2\n const legacyGpuAccelerationOption = find(\n data.instance.modifiers,\n modifier => modifier.name === 'applyStyle'\n ).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn(\n 'WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'\n );\n }\n const gpuAcceleration =\n legacyGpuAccelerationOption !== undefined\n ? legacyGpuAccelerationOption\n : options.gpuAcceleration;\n\n const offsetParent = getOffsetParent(data.instance.popper);\n const offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n const styles = {\n position: popper.position,\n };\n\n const offsets = getRoundedOffsets(\n data,\n window.devicePixelRatio < 2 || !isFirefox\n );\n\n const sideA = x === 'bottom' ? 'top' : 'bottom';\n const sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n const prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n let left, top;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = `translate3d(${left}px, ${top}px, 0)`;\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n const invertTop = sideA === 'bottom' ? -1 : 1;\n const invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = `${sideA}, ${sideB}`;\n }\n\n // Attributes\n const attributes = {\n 'x-placement': data.placement,\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = { ...attributes, ...data.attributes };\n data.styles = { ...styles, ...data.styles };\n data.arrowStyles = { ...data.offsets.arrow, ...data.arrowStyles };\n\n return data;\n}\n","import find from './find';\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nexport default function isModifierRequired(\n modifiers,\n requestingName,\n requestedName\n) {\n const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n const isRequired =\n !!requesting &&\n modifiers.some(modifier => {\n return (\n modifier.name === requestedName &&\n modifier.enabled &&\n modifier.order < requesting.order\n );\n });\n\n if (!isRequired) {\n const requesting = `\\`${requestingName}\\``;\n const requested = `\\`${requestedName}\\``;\n console.warn(\n `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n );\n }\n return isRequired;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOuterSizes from '../utils/getOuterSizes';\nimport isModifierRequired from '../utils/isModifierRequired';\nimport getStyleComputedProperty from '../utils/getStyleComputedProperty';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function arrow(data, options) {\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n let arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn(\n 'WARNING: `arrow.element` must be child of its popper element!'\n );\n return data;\n }\n }\n\n const placement = data.placement.split('-')[0];\n const { popper, reference } = data.offsets;\n const isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n const len = isVertical ? 'height' : 'width';\n const sideCapitalized = isVertical ? 'Top' : 'Left';\n const side = sideCapitalized.toLowerCase();\n const altSide = isVertical ? 'left' : 'top';\n const opSide = isVertical ? 'bottom' : 'right';\n const arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -=\n popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] +=\n reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n const center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n const css = getStyleComputedProperty(data.instance.popper);\n const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`], 10);\n const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`], 10);\n let sideValue =\n center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = {\n [side]: Math.round(sideValue),\n [altSide]: '', // make sure to unset any eventual altSide value from the DOM node\n };\n\n return data;\n}\n","/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nexport default function getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n","/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nexport default [\n 'auto-start',\n 'auto',\n 'auto-end',\n 'top-start',\n 'top',\n 'top-end',\n 'right-start',\n 'right',\n 'right-end',\n 'bottom-end',\n 'bottom',\n 'bottom-start',\n 'left-end',\n 'left',\n 'left-start',\n];\n","import placements from '../methods/placements';\n\n// Get rid of `auto` `auto-start` and `auto-end`\nconst validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nexport default function clockwise(placement, counter = false) {\n const index = validPlacements.indexOf(placement);\n const arr = validPlacements\n .slice(index + 1)\n .concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n","import getOppositePlacement from '../utils/getOppositePlacement';\nimport getOppositeVariation from '../utils/getOppositeVariation';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\nimport getBoundaries from '../utils/getBoundaries';\nimport isModifierEnabled from '../utils/isModifierEnabled';\nimport clockwise from '../utils/clockwise';\n\nconst BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise',\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n const boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n options.boundariesElement,\n data.positionFixed\n );\n\n let placement = data.placement.split('-')[0];\n let placementOpposite = getOppositePlacement(placement);\n let variation = data.placement.split('-')[1] || '';\n\n let flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach((step, index) => {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n const popperOffsets = data.offsets.popper;\n const refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n const floor = Math.floor;\n const overlapsRef =\n (placement === 'left' &&\n floor(popperOffsets.right) > floor(refOffsets.left)) ||\n (placement === 'right' &&\n floor(popperOffsets.left) < floor(refOffsets.right)) ||\n (placement === 'top' &&\n floor(popperOffsets.bottom) > floor(refOffsets.top)) ||\n (placement === 'bottom' &&\n floor(popperOffsets.top) < floor(refOffsets.bottom));\n\n const overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n const overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n const overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n const overflowsBottom =\n floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n const overflowsBoundaries =\n (placement === 'left' && overflowsLeft) ||\n (placement === 'right' && overflowsRight) ||\n (placement === 'top' && overflowsTop) ||\n (placement === 'bottom' && overflowsBottom);\n\n // flip the variation if required\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n const flippedVariationByRef =\n !!options.flipVariations &&\n ((isVertical && variation === 'start' && overflowsLeft) ||\n (isVertical && variation === 'end' && overflowsRight) ||\n (!isVertical && variation === 'start' && overflowsTop) ||\n (!isVertical && variation === 'end' && overflowsBottom));\n\n // flips variation if popper content overflows boundaries\n const flippedVariationByContent =\n !!options.flipVariationsByContent &&\n ((isVertical && variation === 'start' && overflowsRight) ||\n (isVertical && variation === 'end' && overflowsLeft) ||\n (!isVertical && variation === 'start' && overflowsBottom) ||\n (!isVertical && variation === 'end' && overflowsTop));\n\n const flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = {\n ...data.offsets.popper,\n ...getPopperOffsets(\n data.instance.popper,\n data.offsets.reference,\n data.placement\n ),\n };\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function keepTogether(data) {\n const { popper, reference } = data.offsets;\n const placement = data.placement.split('-')[0];\n const floor = Math.floor;\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n const side = isVertical ? 'right' : 'bottom';\n const opSide = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] =\n floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n","import isNumeric from '../utils/isNumeric';\nimport getClientRect from '../utils/getClientRect';\nimport find from '../utils/find';\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nexport function toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n const split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n const value = +split[1];\n const unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n let element;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n const rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n let size;\n if (unit === 'vh') {\n size = Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n );\n } else {\n size = Math.max(\n document.documentElement.clientWidth,\n window.innerWidth || 0\n );\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nexport function parseOffset(\n offset,\n popperOffsets,\n referenceOffsets,\n basePlacement\n) {\n const offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n const useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n const fragments = offset.split(/(\\+|\\-)/).map(frag => frag.trim());\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n const divider = fragments.indexOf(\n find(fragments, frag => frag.search(/,|\\s/) !== -1)\n );\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn(\n 'Offsets separated by white space(s) are deprecated, use a comma (,) instead.'\n );\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n const splitRegex = /\\s*,\\s*|\\s+/;\n let ops = divider !== -1\n ? [\n fragments\n .slice(0, divider)\n .concat([fragments[divider].split(splitRegex)[0]]),\n [fragments[divider].split(splitRegex)[1]].concat(\n fragments.slice(divider + 1)\n ),\n ]\n : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map((op, index) => {\n // Most of the units rely on the orientation of the popper\n const measurement = (index === 1 ? !useHeight : useHeight)\n ? 'height'\n : 'width';\n let mergeWithPrevious = false;\n return (\n op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce((a, b) => {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(str => toValue(str, measurement, popperOffsets, referenceOffsets))\n );\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach((op, index) => {\n op.forEach((frag, index2) => {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nexport default function offset(data, { offset }) {\n const { placement, offsets: { popper, reference } } = data;\n const basePlacement = placement.split('-')[0];\n\n let offsets;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n","import getOffsetParent from '../utils/getOffsetParent';\nimport getBoundaries from '../utils/getBoundaries';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function preventOverflow(data, options) {\n let boundariesElement =\n options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n const transformProp = getSupportedPropertyName('transform');\n const popperStyles = data.instance.popper.style; // assignment to help minification\n const { top, left, [transformProp]: transform } = popperStyles;\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n const boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n boundariesElement,\n data.positionFixed\n );\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n const order = options.priority;\n let popper = data.offsets.popper;\n\n const check = {\n primary(placement) {\n let value = popper[placement];\n if (\n popper[placement] < boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return { [placement]: value };\n },\n secondary(placement) {\n const mainSide = placement === 'right' ? 'left' : 'top';\n let value = popper[mainSide];\n if (\n popper[placement] > boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.min(\n popper[mainSide],\n boundaries[placement] -\n (placement === 'right' ? popper.width : popper.height)\n );\n }\n return { [mainSide]: value };\n },\n };\n\n order.forEach(placement => {\n const side =\n ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = { ...popper, ...check[side](placement) };\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function shift(data) {\n const placement = data.placement;\n const basePlacement = placement.split('-')[0];\n const shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n const { reference, popper } = data.offsets;\n const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n const side = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n const shiftOffsets = {\n start: { [side]: reference[side] },\n end: {\n [side]: reference[side] + reference[measurement] - popper[measurement],\n },\n };\n\n data.offsets.popper = { ...popper, ...shiftOffsets[shiftvariation] };\n }\n\n return data;\n}\n","import isModifierRequired from '../utils/isModifierRequired';\nimport find from '../utils/find';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n const refRect = data.offsets.reference;\n const bound = find(\n data.instance.modifiers,\n modifier => modifier.name === 'preventOverflow'\n ).boundaries;\n\n if (\n refRect.bottom < bound.top ||\n refRect.left > bound.right ||\n refRect.top > bound.bottom ||\n refRect.right < bound.left\n ) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOppositePlacement from '../utils/getOppositePlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function inner(data) {\n const placement = data.placement;\n const basePlacement = placement.split('-')[0];\n const { popper, reference } = data.offsets;\n const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] =\n reference[basePlacement] -\n (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n","import applyStyle, { applyStyleOnLoad } from './applyStyle';\nimport computeStyle from './computeStyle';\nimport arrow from './arrow';\nimport flip from './flip';\nimport keepTogether from './keepTogether';\nimport offset from './offset';\nimport preventOverflow from './preventOverflow';\nimport shift from './shift';\nimport hide from './hide';\nimport inner from './inner';\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nexport default {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift,\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0,\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent',\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether,\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]',\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false,\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner,\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide,\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right',\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined,\n },\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n","import modifiers from '../modifiers/index';\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nexport default {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: () => {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: () => {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers,\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n","import Popper from 'popper.js';\nimport isFunction from '../../popper/src/utils/isFunction';\n\nconst DEFAULT_OPTIONS = {\n container: false,\n delay: 0,\n html: false,\n placement: 'top',\n title: '',\n template:\n '<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n offset: 0,\n arrowSelector: '.tooltip-arrow, .tooltip__arrow',\n innerSelector: '.tooltip-inner, .tooltip__inner',\n};\n\nexport default class Tooltip {\n /**\n * Create a new Tooltip.js instance\n * @class Tooltip\n * @param {HTMLElement} reference - The DOM node used as reference of the tooltip (it can be a jQuery element).\n * @param {Object} options\n * @param {String} options.placement='top'\n * Placement of the popper accepted values: `top(-start, -end), right(-start, -end), bottom(-start, -end),\n * left(-start, -end)`\n * @param {String} options.arrowSelector='.tooltip-arrow, .tooltip__arrow' - className used to locate the DOM arrow element in the tooltip.\n * @param {String} options.innerSelector='.tooltip-inner, .tooltip__inner' - className used to locate the DOM inner element in the tooltip.\n * @param {HTMLElement|String|false} options.container=false - Append the tooltip to a specific element.\n * @param {Number|Object} options.delay=0\n * Delay showing and hiding the tooltip (ms) - does not apply to manual trigger type.\n * If a number is supplied, delay is applied to both hide/show.\n * Object structure is: `{ show: 500, hide: 100 }`\n * @param {Boolean} options.html=false - Insert HTML into the tooltip. If false, the content will inserted with `textContent`.\n * @param {String} [options.template='<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>']\n * Base HTML to used when creating the tooltip.\n * The tooltip's `title` will be injected into the `.tooltip-inner` or `.tooltip__inner`.\n * `.tooltip-arrow` or `.tooltip__arrow` will become the tooltip's arrow.\n * The outermost wrapper element should have the `.tooltip` class.\n * @param {String|HTMLElement|TitleFunction} options.title='' - Default title value if `title` attribute isn't present.\n * @param {String} [options.trigger='hover focus']\n * How tooltip is triggered - click, hover, focus, manual.\n * You may pass multiple triggers; separate them with a space. `manual` cannot be combined with any other trigger.\n * @param {Boolean} options.closeOnClickOutside=false - Close a popper on click outside of the popper and reference element. This has effect only when options.trigger is 'click'.\n * @param {String|HTMLElement} options.boundariesElement\n * The element used as boundaries for the tooltip. For more information refer to Popper.js'\n * [boundariesElement docs](https://popper.js.org/popper-documentation.html)\n * @param {Number|String} options.offset=0 - Offset of the tooltip relative to its reference. For more information refer to Popper.js'\n * [offset docs](https://popper.js.org/popper-documentation.html)\n * @param {Object} options.popperOptions={} - Popper options, will be passed directly to popper instance. For more information refer to Popper.js'\n * [options docs](https://popper.js.org/popper-documentation.html)\n * @return {Object} instance - The generated tooltip instance\n */\n constructor(reference, options) {\n // apply user options over default ones\n options = { ...DEFAULT_OPTIONS, ...options };\n\n reference.jquery && (reference = reference[0]);\n\n // cache reference and options\n this.reference = reference;\n this.options = options;\n\n // get events list\n const events =\n typeof options.trigger === 'string'\n ? options.trigger\n .split(' ')\n .filter(\n trigger => ['click', 'hover', 'focus'].indexOf(trigger) !== -1\n )\n : [];\n\n // set initial state\n this._isOpen = false;\n this._popperOptions = {};\n\n // set event listeners\n this._setEventListeners(reference, events, options);\n }\n\n //\n // Public methods\n //\n\n /**\n * Reveals an element's tooltip. This is considered a \"manual\" triggering of the tooltip.\n * Tooltips with zero-length titles are never displayed.\n * @method Tooltip#show\n * @memberof Tooltip\n */\n show = () => this._show(this.reference, this.options);\n\n /**\n * Hides an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @method Tooltip#hide\n * @memberof Tooltip\n */\n hide = () => this._hide();\n\n /**\n * Hides and destroys an element’s tooltip.\n * @method Tooltip#dispose\n * @memberof Tooltip\n */\n dispose = () => this._dispose();\n\n /**\n * Toggles an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @method Tooltip#toggle\n * @memberof Tooltip\n */\n toggle = () => {\n if (this._isOpen) {\n return this.hide();\n } else {\n return this.show();\n }\n };\n\n /**\n * Updates the tooltip's title content\n * @method Tooltip#updateTitleContent\n * @memberof Tooltip\n * @param {String|HTMLElement} title - The new content to use for the title\n */\n updateTitleContent = (title) => this._updateTitleContent(title);\n\n //\n // Private methods\n //\n\n _events = [];\n\n /**\n * Creates a new tooltip node\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} reference\n * @param {String} template\n * @param {String|HTMLElement|TitleFunction} title\n * @param {Boolean} allowHtml\n * @return {HTMLElement} tooltipNode\n */\n _create(reference, template, title, allowHtml) {\n // create tooltip element\n const tooltipGenerator = window.document.createElement('div');\n tooltipGenerator.innerHTML = template.trim();\n const tooltipNode = tooltipGenerator.childNodes[0];\n\n // add unique ID to our tooltip (needed for accessibility reasons)\n tooltipNode.id = `tooltip_${Math.random()\n .toString(36)\n .substr(2, 10)}`;\n\n // set initial `aria-hidden` state to `false` (it's visible!)\n tooltipNode.setAttribute('aria-hidden', 'false');\n\n // add title to tooltip\n const titleNode = tooltipGenerator.querySelector(this.options.innerSelector);\n this._addTitleContent(reference, title, allowHtml, titleNode);\n\n // return the generated tooltip node\n return tooltipNode;\n }\n\n _addTitleContent(reference, title, allowHtml, titleNode) {\n if (title.nodeType === 1 || title.nodeType === 11) {\n // if title is a element node or document fragment, append it only if allowHtml is true\n allowHtml && titleNode.appendChild(title);\n } else if (isFunction(title)) {\n // if title is a function, call it and set textContent or innerHtml depending by `allowHtml` value\n const titleText = title.call(reference);\n allowHtml\n ? (titleNode.innerHTML = titleText)\n : (titleNode.textContent = titleText);\n } else {\n // if it's just a simple text, set textContent or innerHtml depending by `allowHtml` value\n allowHtml ? (titleNode.innerHTML = title) : (titleNode.textContent = title);\n }\n }\n\n _show(reference, options) {\n // don't show if it's already visible\n // or if it's not being showed\n if (this._isOpen && !this._isOpening) {\n return this;\n }\n this._isOpen = true;\n\n // if the tooltipNode already exists, just show it\n if (this._tooltipNode) {\n this._tooltipNode.style.visibility = 'visible';\n this._tooltipNode.setAttribute('aria-hidden', 'false');\n this.popperInstance.update();\n return this;\n }\n\n // get title\n const title = reference.getAttribute('title') || options.title;\n\n // don't show tooltip if no title is defined\n if (!title) {\n return this;\n }\n\n // create tooltip node\n const tooltipNode = this._create(\n reference,\n options.template,\n title,\n options.html\n );\n\n // Add `aria-describedby` to our reference element for accessibility reasons\n reference.setAttribute('aria-describedby', tooltipNode.id);\n\n // append tooltip to container\n const container = this._findContainer(options.container, reference);\n\n this._append(tooltipNode, container);\n\n this._popperOptions = {\n ...options.popperOptions,\n placement: options.placement,\n };\n\n this._popperOptions.modifiers = {\n ...this._popperOptions.modifiers,\n arrow: {\n ...(this._popperOptions.modifiers && this._popperOptions.modifiers.arrow),\n element: options.arrowSelector,\n },\n offset: {\n ...(this._popperOptions.modifiers && this._popperOptions.modifiers.offset),\n offset: options.offset,\n },\n };\n\n if (options.boundariesElement) {\n this._popperOptions.modifiers.preventOverflow = {\n boundariesElement: options.boundariesElement,\n };\n }\n\n this.popperInstance = new Popper(\n reference,\n tooltipNode,\n this._popperOptions\n );\n\n this._tooltipNode = tooltipNode;\n\n return this;\n }\n\n _hide(/*reference, options*/) {\n // don't hide if it's already hidden\n if (!this._isOpen) {\n return this;\n }\n\n this._isOpen = false;\n\n // hide tooltipNode\n this._tooltipNode.style.visibility = 'hidden';\n this._tooltipNode.setAttribute('aria-hidden', 'true');\n\n return this;\n }\n\n _dispose() {\n // remove event listeners first to prevent any unexpected behaviour\n this._events.forEach(({ func, event }) => {\n this.reference.removeEventListener(event, func);\n });\n this._events = [];\n\n if (this._tooltipNode) {\n this._hide();\n\n // destroy instance\n this.popperInstance.destroy();\n\n // destroy tooltipNode if removeOnDestroy is not set, as popperInstance.destroy() already removes the element\n if (!this.popperInstance.options.removeOnDestroy) {\n this._tooltipNode.parentNode.removeChild(this._tooltipNode);\n this._tooltipNode = null;\n }\n }\n return this;\n }\n\n _findContainer(container, reference) {\n // if container is a query, get the relative element\n if (typeof container === 'string') {\n container = window.document.querySelector(container);\n } else if (container === false) {\n // if container is `false`, set it to reference parent\n container = reference.parentNode;\n }\n return container;\n }\n\n /**\n * Append tooltip to container\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} tooltipNode\n * @param {HTMLElement|String|false} container\n */\n _append(tooltipNode, container) {\n container.appendChild(tooltipNode);\n }\n\n _setEventListeners(reference, events, options) {\n const directEvents = [];\n const oppositeEvents = [];\n\n events.forEach(event => {\n switch (event) {\n case 'hover':\n directEvents.push('mouseenter');\n oppositeEvents.push('mouseleave');\n break;\n case 'focus':\n directEvents.push('focus');\n oppositeEvents.push('blur');\n break;\n case 'click':\n directEvents.push('click');\n oppositeEvents.push('click');\n break;\n }\n });\n\n // schedule show tooltip\n directEvents.forEach(event => {\n const func = evt => {\n if (this._isOpening === true) {\n return;\n }\n evt.usedByTooltip = true;\n this._scheduleShow(reference, options.delay, options, evt);\n };\n this._events.push({ event, func });\n reference.addEventListener(event, func);\n });\n\n // schedule hide tooltip\n oppositeEvents.forEach(event => {\n const func = evt => {\n if (evt.usedByTooltip === true) {\n return;\n }\n this._scheduleHide(reference, options.delay, options, evt);\n };\n this._events.push({ event, func });\n reference.addEventListener(event, func);\n if (event === 'click' && options.closeOnClickOutside) {\n document.addEventListener('mousedown', e => {\n if (!this._isOpening) {\n return;\n }\n const popper = this.popperInstance.popper;\n if (reference.contains(e.target) ||\n popper.contains(e.target)) {\n return;\n }\n func(e);\n }, true);\n }\n });\n }\n\n _scheduleShow(reference, delay, options /*, evt */) {\n this._isOpening = true;\n // defaults to 0\n const computedDelay = (delay && delay.show) || delay || 0;\n this._showTimeout = window.setTimeout(\n () => this._show(reference, options),\n computedDelay\n );\n }\n\n _scheduleHide(reference, delay, options, evt) {\n this._isOpening = false;\n // defaults to 0\n const computedDelay = (delay && delay.hide) || delay || 0;\n window.clearTimeout(this._showTimeout);\n window.setTimeout(() => {\n if (this._isOpen === false) {\n return;\n }\n if (!document.body.contains(this._tooltipNode)) {\n return;\n }\n\n // if we are hiding because of a mouseleave, we must check that the new\n // reference isn't the tooltip, because in this case we don't want to hide it\n if (evt.type === 'mouseleave') {\n const isSet = this._setTooltipNodeEvent(evt, reference, delay, options);\n\n // if we set the new event, don't hide the tooltip yet\n // the new event will take care to hide it if necessary\n if (isSet) {\n return;\n }\n }\n\n this._hide(reference, options);\n }, computedDelay);\n }\n\n _setTooltipNodeEvent = (evt, reference, delay, options) => {\n const relatedreference =\n evt.relatedreference || evt.toElement || evt.relatedTarget;\n\n const callback = evt2 => {\n const relatedreference2 =\n evt2.relatedreference || evt2.toElement || evt2.relatedTarget;\n\n // Remove event listener after call\n this._tooltipNode.removeEventListener(evt.type, callback);\n\n // If the new reference is not the reference element\n if (!reference.contains(relatedreference2)) {\n // Schedule to hide tooltip\n this._scheduleHide(reference, options.delay, options, evt2);\n }\n };\n\n if (this._tooltipNode.contains(relatedreference)) {\n // listen to mouseleave on the tooltip element to be able to hide the tooltip\n this._tooltipNode.addEventListener(evt.type, callback);\n return true;\n }\n\n return false;\n };\n\n _updateTitleContent(title) {\n if(typeof this._tooltipNode === 'undefined') {\n if(typeof this.options.title !== 'undefined') {\n this.options.title = title;\n }\n return;\n }\n const titleNode = this._tooltipNode.querySelector(this.options.innerSelector);\n this._clearTitleContent(titleNode, this.options.html, this.reference.getAttribute('title') || this.options.title)\n this._addTitleContent(this.reference, title, this.options.html, titleNode);\n this.options.title = title;\n this.popperInstance.update();\n }\n\n _clearTitleContent(titleNode, allowHtml, lastTitle) {\n if(lastTitle.nodeType === 1 || lastTitle.nodeType === 11) {\n allowHtml && titleNode.removeChild(lastTitle);\n } else {\n allowHtml ? titleNode.innerHTML = '' : titleNode.textContent = '';\n }\n }\n\n}\n\n/**\n * Title function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback TitleFunction\n * @return {String} placement - The desired title.\n */\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n\n function installSetTimeoutImplementation() {\n registerImmediate = function(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n\n // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n\n // Don't get fooled by e.g. browserify environments.\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self));\n","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n","/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nexport default function isFunction(functionToCheck) {\n const getType = {};\n return (\n functionToCheck &&\n getType.toString.call(functionToCheck) === '[object Function]'\n );\n}\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = function(originalModule) {\n\tif (!originalModule.webpackPolyfill) {\n\t\tvar module = Object.create(originalModule);\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"exports\", {\n\t\t\tenumerable: true\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","// Zepto.js\n// (c) 2010-2016 Thomas Fuchs\n// Zepto.js may be freely distributed under the MIT license.\n\n// The following code is heavily inspired by jQuery's $.fn.data()\n\n;(function($){\n var data = {}, dataAttr = $.fn.data, camelize = $.camelCase,\n exp = $.expando = 'Zepto' + (+new Date()), emptyArray = []\n\n // Get value from node:\n // 1. first try key as given,\n // 2. then try camelized key,\n // 3. fall back to reading \"data-*\" attribute.\n function getData(node, name) {\n var id = node[exp], store = id && data[id]\n if (name === undefined) return store || setData(node)\n else {\n if (store) {\n if (name in store) return store[name]\n var camelName = camelize(name)\n if (camelName in store) return store[camelName]\n }\n return dataAttr.call($(node), name)\n }\n }\n\n // Store value under camelized key on node\n function setData(node, name, value) {\n var id = node[exp] || (node[exp] = ++$.uuid),\n store = data[id] || (data[id] = attributeData(node))\n if (name !== undefined) store[camelize(name)] = value\n return store\n }\n\n // Read all \"data-*\" attributes from a node\n function attributeData(node) {\n var store = {}\n $.each(node.attributes || emptyArray, function(i, attr){\n if (attr.name.indexOf('data-') == 0)\n store[camelize(attr.name.replace('data-', ''))] =\n $.zepto.deserializeValue(attr.value)\n })\n return store\n }\n\n $.fn.data = function(name, value) {\n return value === undefined ?\n // set multiple values via object\n $.isPlainObject(name) ?\n this.each(function(i, node){\n $.each(name, function(key, value){ setData(node, key, value) })\n }) :\n // get value from first element\n (0 in this ? getData(this[0], name) : undefined) :\n // set value on all elements\n this.each(function(){ setData(this, name, value) })\n }\n\n $.data = function(elem, name, value) {\n return $(elem).data(name, value)\n }\n\n $.hasData = function(elem) {\n var id = elem[exp], store = id && data[id]\n return store ? !$.isEmptyObject(store) : false\n }\n\n $.fn.removeData = function(names) {\n if (typeof names == 'string') names = names.split(/\\s+/)\n return this.each(function(){\n var id = this[exp], store = id && data[id]\n if (store) $.each(names || store, function(key){\n delete store[names ? camelize(this) : key]\n })\n })\n }\n\n // Generate extended `remove` and `empty` functions\n ;['remove', 'empty'].forEach(function(methodName){\n var origFn = $.fn[methodName]\n $.fn[methodName] = function() {\n var elements = this.find('*')\n if (methodName === 'remove') elements = elements.add(this)\n elements.removeData()\n return origFn.call(this)\n }\n })\n})(Zepto)\n","// Zepto.js\n// (c) 2010-2016 Thomas Fuchs\n// Zepto.js may be freely distributed under the MIT license.\n\n;(function($, undefined){\n var prefix = '', eventPrefix,\n vendors = { Webkit: 'webkit', Moz: '', O: 'o' },\n testEl = document.createElement('div'),\n supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i,\n transform,\n transitionProperty, transitionDuration, transitionTiming, transitionDelay,\n animationName, animationDuration, animationTiming, animationDelay,\n cssReset = {}\n\n function dasherize(str) { return str.replace(/([A-Z])/g, '-$1').toLowerCase() }\n function normalizeEvent(name) { return eventPrefix ? eventPrefix + name : name.toLowerCase() }\n\n if (testEl.style.transform === undefined) $.each(vendors, function(vendor, event){\n if (testEl.style[vendor + 'TransitionProperty'] !== undefined) {\n prefix = '-' + vendor.toLowerCase() + '-'\n eventPrefix = event\n return false\n }\n })\n\n transform = prefix + 'transform'\n cssReset[transitionProperty = prefix + 'transition-property'] =\n cssReset[transitionDuration = prefix + 'transition-duration'] =\n cssReset[transitionDelay = prefix + 'transition-delay'] =\n cssReset[transitionTiming = prefix + 'transition-timing-function'] =\n cssReset[animationName = prefix + 'animation-name'] =\n cssReset[animationDuration = prefix + 'animation-duration'] =\n cssReset[animationDelay = prefix + 'animation-delay'] =\n cssReset[animationTiming = prefix + 'animation-timing-function'] = ''\n\n $.fx = {\n off: (eventPrefix === undefined && testEl.style.transitionProperty === undefined),\n speeds: { _default: 400, fast: 200, slow: 600 },\n cssPrefix: prefix,\n transitionEnd: normalizeEvent('TransitionEnd'),\n animationEnd: normalizeEvent('AnimationEnd')\n }\n\n $.fn.animate = function(properties, duration, ease, callback, delay){\n if ($.isFunction(duration))\n callback = duration, ease = undefined, duration = undefined\n if ($.isFunction(ease))\n callback = ease, ease = undefined\n if ($.isPlainObject(duration))\n ease = duration.easing, callback = duration.complete, delay = duration.delay, duration = duration.duration\n if (duration) duration = (typeof duration == 'number' ? duration :\n ($.fx.speeds[duration] || $.fx.speeds._default)) / 1000\n if (delay) delay = parseFloat(delay) / 1000\n return this.anim(properties, duration, ease, callback, delay)\n }\n\n $.fn.anim = function(properties, duration, ease, callback, delay){\n var key, cssValues = {}, cssProperties, transforms = '',\n that = this, wrappedCallback, endEvent = $.fx.transitionEnd,\n fired = false\n\n if (duration === undefined) duration = $.fx.speeds._default / 1000\n if (delay === undefined) delay = 0\n if ($.fx.off) duration = 0\n\n if (typeof properties == 'string') {\n // keyframe animation\n cssValues[animationName] = properties\n cssValues[animationDuration] = duration + 's'\n cssValues[animationDelay] = delay + 's'\n cssValues[animationTiming] = (ease || 'linear')\n endEvent = $.fx.animationEnd\n } else {\n cssProperties = []\n // CSS transitions\n for (key in properties)\n if (supportedTransforms.test(key)) transforms += key + '(' + properties[key] + ') '\n else cssValues[key] = properties[key], cssProperties.push(dasherize(key))\n\n if (transforms) cssValues[transform] = transforms, cssProperties.push(transform)\n if (duration > 0 && typeof properties === 'object') {\n cssValues[transitionProperty] = cssProperties.join(', ')\n cssValues[transitionDuration] = duration + 's'\n cssValues[transitionDelay] = delay + 's'\n cssValues[transitionTiming] = (ease || 'linear')\n }\n }\n\n wrappedCallback = function(event){\n if (typeof event !== 'undefined') {\n if (event.target !== event.currentTarget) return // makes sure the event didn't bubble from \"below\"\n $(event.target).unbind(endEvent, wrappedCallback)\n } else\n $(this).unbind(endEvent, wrappedCallback) // triggered by setTimeout\n\n fired = true\n $(this).css(cssReset)\n callback && callback.call(this)\n }\n if (duration > 0){\n this.bind(endEvent, wrappedCallback)\n // transitionEnd is not always firing on older Android phones\n // so make sure it gets fired\n setTimeout(function(){\n if (fired) return\n wrappedCallback.call(that)\n }, ((duration + delay) * 1000) + 25)\n }\n\n // trigger page reflow so new elements can animate\n this.size() && this.get(0).clientLeft\n\n this.css(cssValues)\n\n if (duration <= 0) setTimeout(function() {\n that.each(function(){ wrappedCallback.call(this) })\n }, 0)\n\n return this\n }\n\n testEl = null\n})(Zepto)\n","// Zepto.js\n// (c) 2010-2016 Thomas Fuchs\n// Zepto.js may be freely distributed under the MIT license.\n\n;(function($, undefined){\n var document = window.document, docElem = document.documentElement,\n origShow = $.fn.show, origHide = $.fn.hide, origToggle = $.fn.toggle\n\n function anim(el, speed, opacity, scale, callback) {\n if (typeof speed == 'function' && !callback) callback = speed, speed = undefined\n var props = { opacity: opacity }\n if (scale) {\n props.scale = scale\n el.css($.fx.cssPrefix + 'transform-origin', '0 0')\n }\n return el.animate(props, speed, null, callback)\n }\n\n function hide(el, speed, scale, callback) {\n return anim(el, speed, 0, scale, function(){\n origHide.call($(this))\n callback && callback.call(this)\n })\n }\n\n $.fn.show = function(speed, callback) {\n origShow.call(this)\n if (speed === undefined) speed = 0\n else this.css('opacity', 0)\n return anim(this, speed, 1, '1,1', callback)\n }\n\n $.fn.hide = function(speed, callback) {\n if (speed === undefined) return origHide.call(this)\n else return hide(this, speed, '0,0', callback)\n }\n\n $.fn.toggle = function(speed, callback) {\n if (speed === undefined || typeof speed == 'boolean')\n return origToggle.call(this, speed)\n else return this.each(function(){\n var el = $(this)\n el[el.css('display') == 'none' ? 'show' : 'hide'](speed, callback)\n })\n }\n\n $.fn.fadeTo = function(speed, opacity, callback) {\n return anim(this, speed, opacity, null, callback)\n }\n\n $.fn.fadeIn = function(speed, callback) {\n var target = this.css('opacity')\n if (target > 0) this.css('opacity', 0)\n else target = 1\n return origShow.call(this).fadeTo(speed, target, callback)\n }\n\n $.fn.fadeOut = function(speed, callback) {\n return hide(this, speed, null, callback)\n }\n\n $.fn.fadeToggle = function(speed, callback) {\n return this.each(function(){\n var el = $(this)\n el[\n (el.css('opacity') == 0 || el.css('display') == 'none') ? 'fadeIn' : 'fadeOut'\n ](speed, callback)\n })\n }\n\n})(Zepto)\n","// Zepto.js\n// (c) 2010-2016 Thomas Fuchs\n// Zepto.js may be freely distributed under the MIT license.\n\n;(function($){\n var zepto = $.zepto, oldQsa = zepto.qsa, oldMatches = zepto.matches\n\n function visible(elem){\n elem = $(elem)\n return !!(elem.width() || elem.height()) && elem.css(\"display\") !== \"none\"\n }\n\n // Implements a subset from:\n // http://api.jquery.com/category/selectors/jquery-selector-extensions/\n //\n // Each filter function receives the current index, all nodes in the\n // considered set, and a value if there were parentheses. The value\n // of `this` is the node currently being considered. The function returns the\n // resulting node(s), null, or undefined.\n //\n // Complex selectors are not supported:\n // li:has(label:contains(\"foo\")) + li:has(label:contains(\"bar\"))\n // ul.inner:first > li\n var filters = $.expr[':'] = {\n visible: function(){ if (visible(this)) return this },\n hidden: function(){ if (!visible(this)) return this },\n selected: function(){ if (this.selected) return this },\n checked: function(){ if (this.checked) return this },\n parent: function(){ return this.parentNode },\n first: function(idx){ if (idx === 0) return this },\n last: function(idx, nodes){ if (idx === nodes.length - 1) return this },\n eq: function(idx, _, value){ if (idx === value) return this },\n contains: function(idx, _, text){ if ($(this).text().indexOf(text) > -1) return this },\n has: function(idx, _, sel){ if (zepto.qsa(this, sel).length) return this }\n }\n\n var filterRe = new RegExp('(.*):(\\\\w+)(?:\\\\(([^)]+)\\\\))?$\\\\s*'),\n childRe = /^\\s*>/,\n classTag = 'Zepto' + (+new Date())\n\n function process(sel, fn) {\n // quote the hash in `a[href^=#]` expression\n sel = sel.replace(/=#\\]/g, '=\"#\"]')\n var filter, arg, match = filterRe.exec(sel)\n if (match && match[2] in filters) {\n filter = filters[match[2]], arg = match[3]\n sel = match[1]\n if (arg) {\n var num = Number(arg)\n if (isNaN(num)) arg = arg.replace(/^[\"']|[\"']$/g, '')\n else arg = num\n }\n }\n return fn(sel, filter, arg)\n }\n\n zepto.qsa = function(node, selector) {\n return process(selector, function(sel, filter, arg){\n try {\n var taggedParent\n if (!sel && filter) sel = '*'\n else if (childRe.test(sel))\n // support \"> *\" child queries by tagging the parent node with a\n // unique class and prepending that classname onto the selector\n taggedParent = $(node).addClass(classTag), sel = '.'+classTag+' '+sel\n\n var nodes = oldQsa(node, sel)\n } catch(e) {\n console.error('error performing selector: %o', selector)\n throw e\n } finally {\n if (taggedParent) taggedParent.removeClass(classTag)\n }\n return !filter ? nodes :\n zepto.uniq($.map(nodes, function(n, i){ return filter.call(n, i, nodes, arg) }))\n })\n }\n\n zepto.matches = function(node, selector){\n return process(selector, function(sel, filter, arg){\n return (!sel || oldMatches(node, sel)) &&\n (!filter || filter.call(node, null, arg) === node)\n })\n }\n})(Zepto)\n","import 'expose-loader?jQuery!zepto';\nimport 'expose-loader?moment!expose-loader?dayjs!dayjs';\nimport 'expose-loader?m!mithril';\nimport 'expose-loader?m.bidi!m.attrs.bidi';\nimport 'expose-loader?Mousetrap!mousetrap';\nimport 'expose-loader?classNames!classNames';\n\nimport 'zepto/src/selector';\nimport 'zepto/src/data';\nimport 'zepto/src/fx';\nimport 'zepto/src/fx_methods';\n\nimport './utils/patchZepto';\n\nimport 'hc-sticky';\nimport 'bootstrap/js/dropdown';\nimport 'bootstrap/js/transition';\n\nimport relativeTime from 'dayjs/plugin/relativeTime';\nimport localizedFormat from 'dayjs/plugin/localizedFormat';\n\ndayjs.extend(relativeTime);\ndayjs.extend(localizedFormat);\n\nimport patchMithril from './utils/patchMithril';\n\npatchMithril();\n\n// import * as Extend from './extend/index';\n\n// export { Extend };\n","import prop from 'mithril/stream';\n\nexport default () => {\n m.withAttr = (key: string, cb: Function) => function () {\n cb(this.getAttribute(key));\n };\n\n m.prop = prop;\n}\n","import jump from 'jump.js';\nimport Tooltip from 'tooltip.js';\n\n// add $.fn.tooltip\n$.fn.tooltip = function (option) {\n return this.each(function () {\n const $this = $(this);\n let data = $this.data('bs.tooltip');\n const options = typeof option === 'object' && option || {};\n\n if ($this.attr('title')) {\n options.title = $this.attr('title');\n $this.removeAttr('title');\n $this.attr('data-original-title', options.title);\n }\n\n if (option === 'destroy') option = 'dispose';\n\n if (!data && ['dispose', 'hide'].includes(option)) return;\n\n if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)));\n if (typeof option === 'string' && data[option]) data[option]();\n });\n};\n\n// add $.fn.outerWidth and $.fn.outerHeight\n['width', 'height'].forEach(function(dimension) {\n const Dimension = dimension.replace(/./, function (m) {\n return m[0].toUpperCase()\n });\n\n $.fn[`outer${Dimension}`] = function(margin) {\n const elem = this;\n\n if (elem) {\n const sides = {'width': ['left', 'right'], 'height': ['top', 'bottom']};\n let size = elem[dimension]();\n\n sides[dimension].forEach(function(side) {\n if (margin) size += parseInt(elem.css('margin-' + side), 10);\n });\n\n return size;\n } else {\n return null;\n }\n };\n});\n\n// allow use of $(':input')\n// @ts-ignore\n$.expr[':']['input'] = function() {\n if (('disabled' in this) || ['INPUT', 'SELECT', 'TEXTAREA', 'BUTTON'].includes(this.tagName)) return this;\n};\n\n// add $().hover() method\n$.fn.hover = function(hover, leave) {\n return this\n .on('mouseenter', hover)\n .on('mouseleave', leave || hover);\n};\n\n// add animated scroll\n$.fn.animatedScrollTop = function (to, duration = $.fx.speeds._default, callback) {\n if (typeof to === 'number') to -= (window.scrollY || window.pageYOffset);\n\n jump(to, {\n duration: $.fx.speeds[duration] || duration,\n callback\n });\n\n return this;\n};\n\n// required for compatibility with jquery plugins\n// ex: bootstrap plugins\n$.fn.extend = $.extend.bind($);\n\n/**\n * Enable special events on Zepto\n * @license Original Copyright 2013 Enideo. Released under dual MIT and GPL licenses.\n */\n// @ts-ignore\n$.event.special = $.event.special || {};\n\nconst bindBeforeSpecialEvents = $.fn.bind;\n\n$.fn.bind = function(eventName, data, callback) {\n const el = this;\n\n if (!callback){\n callback = data;\n data = null;\n }\n\n $.each(eventName.split(/\\s/), (key: string, value: any) : boolean => {\n value = value.split(/\\./)[0];\n\n if(value in $.event.special){\n let specialEvent = $.event.special[value];\n\n /// init enable special events on Zepto\n if(!specialEvent._init) {\n specialEvent._init = true;\n\n /// intercept and replace the special event handler to add functionality\n specialEvent.originalHandler = specialEvent.handler;\n specialEvent.handler = function(){\n\n /// make event argument writable, like on jQuery\n const args = Array.prototype.slice.call(arguments);\n\n args[0] = $.extend({},args[0]);\n\n /// define the event handle, $.event.dispatch is only for newer versions of jQuery\n $.event.handle = function(){\n\n /// make context of trigger the event element\n const args = Array.prototype.slice.call(arguments);\n const event = args[0];\n const $target = $(event.target);\n\n $target.trigger.apply( $target, arguments );\n };\n\n specialEvent.originalHandler.apply(this,args);\n }\n }\n\n /// setup special events on Zepto\n specialEvent.setup.apply(el, [data]);\n }\n\n return true;\n });\n\n return bindBeforeSpecialEvents.apply(this, [eventName, callback]);\n};\n","module.exports = m;"],"sourceRoot":""} |