{"version":3,"sources":["webpack:///./build-targets/portal/src/js/lib/bootstrap-select.js","webpack:///./node_modules/@material/ripple/util.js","webpack:///./node_modules/@material/menu-surface/constants.js","webpack:///./node_modules/@material/list/component.js","webpack:///./node_modules/tinycolor2/cjs/tinycolor.js","webpack:///./node_modules/@material/base/foundation.js","webpack:///./node_modules/focus-visible/dist/focus-visible.js","webpack:///./node_modules/classlist-polyfill/src/index.js","webpack:///./src/js/lib/semver.browser.js","webpack:///./src/js/lib/bootstrap.js","webpack:///./src/js/lib/bootstrap-netx.js","webpack:///./node_modules/@material/base/component.js","webpack:///./src/js/lib/nx-lazyloader.js","webpack:///./src/js/lib/imagesloaded.pkgd.js","webpack:///./src/js/lib/formValidation-netx.js","webpack:///./src/js/lib/formValidation/dist/js/formValidation.js","webpack:///./src/js/lib/formValidation/dist/js/framework/bootstrap.js","webpack:///./src/js/lib/wavesurfer/wavesurfer.js","webpack:///./src/js/lib/videojs/video.dev.js","webpack:///./build-targets/portal/src/js/lib/bootstrap-select-netx.js","webpack:///./src/js/lib/nx-drag/jquery-netx-dragselect.js","webpack:///./node_modules/@material/menu-surface/util.js","webpack:///./node_modules/@material/menu-surface/component.js","webpack:///./node_modules/@material/menu/constants.js","webpack:///./node_modules/@material/menu/foundation.js","webpack:///./node_modules/@material/menu/component.js","webpack:///./node_modules/@material/dom/ponyfill.js","webpack:///./node_modules/@material/dom/events.js","webpack:///./node_modules/@material/ripple/constants.js","webpack:///./node_modules/@material/ripple/foundation.js","webpack:///./node_modules/@material/ripple/component.js","webpack:///./node_modules/@material/menu-surface/foundation.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./node_modules/@material/list/constants.js","webpack:///./node_modules/@material/list/foundation.js","webpack:///./npm/javascript-detect-element-resize/detect-element-resize.js","webpack:///./src/js/lib/nx-drag/jquery-netx-drag.js"],"names":["$","toString","defineProperty","indexOf","includes","String","prototype","object","$defineProperty","Object","result","error","search","this","TypeError","string","call","stringLength","length","searchString","searchLength","position","arguments","undefined","pos","Number","start","Math","min","max","value","configurable","writable","startsWith","index","charCodeAt","keys","o","k","r","hasOwnProperty","push","valHooks","useDefault","_set","select","set","elem","data","apply","changed_arguments","normalizeToBase","text","each","re","ch","replace","fn","triggerNative","eventName","event","el","dispatchEvent","Event","bubbles","document","createEvent","initEvent","fireEvent","createEventObject","eventType","trigger","expr","pseudos","icontains","obj","meta","$obj","find","toUpperCase","ibegins","aicontains","aibegins","createEscaper","map","escaper","match","source","join","testRegexp","RegExp","replaceRegexp","test","htmlEscape","htmlUnescape","Selectpicker","element","options","$element","$newElement","$button","$menu","$lis","title","attr","winPad","windowPadding","val","render","refresh","setStyle","selectAll","deselectAll","destroy","remove","show","hide","init","Plugin","option","args","_option","shift","chain","$this","is","i","config","extend","DEFAULTS","selectpicker","defaults","template","Function","VERSION","noneSelectedText","noneResultsText","countSelectedText","numSelected","numTotal","maxOptionsText","numAll","numGroup","selectAllText","deselectAllText","doneButton","doneButtonText","multipleSeparator","styleBase","style","size","selectedTextFormat","width","container","hideDisabled","showSubtext","showIcon","showContent","dropupAuto","header","liveSearch","liveSearchPlaceholder","liveSearchNormalize","liveSearchStyle","actionsBox","iconBase","tickIcon","showTick","caret","maxOptions","mobile","selectOnTab","dropdownAlignRight","constructor","that","id","addClass","liObj","multiple","prop","autofocus","createView","after","appendTo","children","$menuInner","$searchbox","removeClass","click","e","preventDefault","focus","checkDisabled","clickListener","liveSearchListener","setWidth","selectPosition","on","hasAttribute","off","validity","valid","setTimeout","createDropdown","inputGroup","parent","hasClass","searchbox","actionsbox","donebutton","drop","$drop","li","createLi","innerHTML","reloadLi","_li","optID","titleOption","createElement","liIndex","generateLI","content","classes","optgroup","generateA","inline","tokens","html","className","insertBefore","firstChild","selectedIndex","selected","$selectOptions","prevHiddenIndex","optionClass","cssText","subtext","icon","$parent","isOptgroup","tagName","isOptgroupDisabled","disabled","isDisabled","next","$options","filter","optGroupClass","label","labelSubtext","showDivider","previousElementSibling","prevHidden","eq","findLis","updateLi","notDisabled","setDisabled","parentNode","setSelected","togglePlaceholder","tabIndex","selectedItems","toArray","split","totalCount","not","trim","status","buttonClass","liHeight","sizeInfo","newElement","menu","menuInner","divider","a","cloneNode","actions","appendChild","createTextNode","input","body","offsetHeight","headerHeight","searchHeight","actionsHeight","doneButtonHeight","dividerHeight","outerHeight","menuStyle","getComputedStyle","menuPadding","vert","parseInt","paddingTop","css","paddingBottom","borderTopWidth","borderBottomWidth","horiz","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","menuExtras","marginTop","marginBottom","marginLeft","marginRight","removeChild","setSize","menuHeight","menuWidth","getHeight","getWidth","selectOffsetTop","selectOffsetBot","selectOffsetLeft","selectOffsetRight","$window","window","selectHeight","selectWidth","offsetWidth","divHeight","getPos","containerPos","offset","$container","top","left","scrollTop","height","scrollLeft","getSize","minHeight","include","classList","contains","lis","getElementsByTagName","lisVisible","Array","optGroup","toggleClass","overflow","optIndex","slice","last","divLength","$selectClone","clone","$selectClone2","ulWidth","outerWidth","btnWidth","$bsContainer","actualHeight","getPlacement","append","detach","removeAttr","$document","keyCode","offsetTop","clickedIndex","prevValue","prevIndex","triggerChange","stopPropagation","$option","state","$optgroup","maxOptionsGrp","blur","maxReached","maxReachedGrp","optgroupID","maxOptionsArr","maxTxt","maxTxtGrp","$notify","delay","fadeOut","currentTarget","target","change","$no_results","$hideItems","$searchBase","_searchStyle","$foundDiv","$lisVisible","first","begins","changeAll","lisVisLen","selectedOptions","origIndex","getAttribute","toggle","keydown","$items","isActive","selector","keyCodeMap","count","keyIndex","toLowerCase","substring","before","removeData","old","Constructor","noConflict","$selectpicker","jQuery","supportsCssVariables_","supportsCssVariables","windowObj","forceRefresh","CSS","supportsCssVars","supports","explicitlySupportsCssVars","weAreFeatureDetectingSafari10plus","node","head","computedStyle","hasPseudoVarBug","borderTopStyle","detectEdgePseudoVarBug","getNormalizedEventCoords","evt","pageOffset","clientRect","x","y","normalizedX","normalizedY","documentX","documentY","type","touchEvent","changedTouches","pageX","pageY","mouseEvent","CornerBit","Corner","cssClasses","ANCHOR","ANIMATING_CLOSED","ANIMATING_OPEN","FIXED","OPEN","ROOT","strings","CLOSED_EVENT","OPENED_EVENT","FOCUSABLE_ELEMENTS","numbers","TRANSITION_OPEN_DURATION","TRANSITION_CLOSE_DURATION","MARGIN_TO_EDGE","ANCHOR_TO_MENU_SURFACE_WIDTH_RATIO","MDCList","_super","foundation_","setVerticalOrientation","enumerable","get","root_","querySelectorAll","LIST_ITEM_CLASS","setWrapFocus","isSingleSelectionList","setSingleSelection","getSelectedIndex","setSelectedIndex","attachTo","root","initialSyncWithDOM","handleClick_","handleClickEvent_","bind","handleKeydown_","handleKeydownEvent_","focusInEventListener_","handleFocusInEvent_","focusOutEventListener_","handleFocusOutEvent_","listen","layout","initializeListType","unlisten","direction","ARIA_ORIENTATION","vertical","ARIA_ORIENTATION_HORIZONTAL","forEach","setAttribute","FOCUSABLE_CHILD_ELEMENTS","_this","checkboxListItems","ARIA_ROLE_CHECKBOX_SELECTOR","singleSelectedListItem","querySelector","LIST_ITEM_ACTIVATED_CLASS","LIST_ITEM_SELECTED_CLASS","radioSelectedListItem","ARIA_CHECKED_RADIO_SELECTOR","preselectedItems","ARIA_CHECKED_CHECKBOX_SELECTOR","listItem","listElements","setUseActivatedClass","singleSelection","getDefaultFoundation","adapter","addClassForElementIndex","add","focusItemAtIndex","getAttributeForElementIndex","getFocusedElementIndex","activeElement","getListItemCount","hasCheckboxAtIndex","CHECKBOX_SELECTOR","hasRadioAtIndex","RADIO_SELECTOR","isCheckboxCheckedAtIndex","checked","isFocusInsideList","isRootFocused","notifyAction","emit","ACTION_EVENT","removeClassForElementIndex","setAttributeForElementIndex","setCheckedCheckboxOrRadioAtIndex","isChecked","toggleEl","CHECKBOX_RADIO_SELECTOR","setTabIndexForListItemChildren","listItemIndex","tabIndexValue","CHILD_ELEMENTS_TO_TOGGLE_TABINDEX","getListItemIndex_","eventTarget","nearestParent","handleFocusIn","handleFocusOut","handleKeydown","toggleCheckbox","handleClick","module","exports","trimLeft","trimRight","tinycolor","color","opts","rgb","inputToRGB","_originalInput","_r","_g","g","_b","b","_a","_roundA","round","_format","format","_gradientType","gradientType","_ok","ok","s","v","l","stringInputToObject","isValidCSSUnit","rgbToRgb","substr","h","convertToPercentage","hsvToRgb","hslToRgb","boundAlpha","bound01","rgbToHsl","d","hue2rgb","p","q","t","rgbToHsv","floor","f","mod","rgbToHex","allow3Char","hex","pad2","charAt","rgbaToHex","allow4Char","convertDecimalToHex","rgbaToArgbHex","desaturate","amount","hsl","toHsl","clamp01","saturate","greyscale","lighten","brighten","toRgb","darken","spin","hue","complement","polyad","number","isNaN","Error","step","splitcomplement","analogous","results","slices","part","ret","monochromatic","hsv","toHsv","modification","isDark","getBrightness","isLight","isValid","getOriginalInput","getFormat","getAlpha","getLuminance","RsRGB","GsRGB","BsRGB","pow","setAlpha","toHsvString","toHslString","toHex","toHexString","toHex8","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","concat","_applyCombination","triad","tetrad","fromRatio","newColor","equals","color1","color2","random","mix","rgb1","rgb2","readability","c1","c2","isReadable","wcag2","wcag2Parms","out","validateWCAG2Parms","level","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","names","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","flip","flipped","parseFloat","n","isOnePointZero","processPercent","isPercentage","abs","parseIntFromHex","c","convertHexToDecimal","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","matchers","rgba","hsla","hsva","hex3","hex6","hex4","hex8","exec","named","parms","factory","MDCFoundation","adapter_","applyFocusVisiblePolyfill","scope","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesAllowlist","url","tel","email","password","date","month","week","time","datetime","isValidFocusTarget","nodeName","focusTriggersKeyboardModality","readOnly","isContentEditable","addFocusVisibleClass","removeFocusVisibleClass","removeAttribute","onKeyDown","metaKey","altKey","ctrlKey","onPointerDown","onFocus","onBlur","clearTimeout","onVisibilityChange","visibilityState","addInitialPointerMoveListeners","addEventListener","onInitialPointerMove","removeInitialPointerMoveListeners","removeEventListener","nodeType","Node","DOCUMENT_FRAGMENT_NODE","host","DOCUMENT_NODE","documentElement","CustomEvent","initCustomEvent","self","createElementNS","view","classListProp","protoProp","elemCtrProto","Element","objCtr","strTrim","arrIndexOf","item","len","DOMEx","message","name","code","DOMException","checkTokenAndGetIndex","token","ClassList","trimmedClasses","_updateClassName","classListProto","classListGetter","updated","splice","force","method","classListPropDesc","ex","__defineGetter__","testElement","createMethod","original","DOMTokenList","_toggle","SemVer","SEMVER_SPEC_VERSION","MAX_SAFE_INTEGER","src","R","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","MAINVERSION","MAINVERSIONLOOSE","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","PRERELEASE","PRERELEASELOOSE","BUILDIDENTIFIER","BUILD","FULL","FULLPLAIN","LOOSEPLAIN","LOOSE","GTLT","XRANGEIDENTIFIERLOOSE","XRANGEIDENTIFIER","XRANGEPLAIN","XRANGEPLAINLOOSE","XRANGE","XRANGELOOSE","LONETILDE","TILDETRIM","TILDE","TILDELOOSE","LONECARET","CARETTRIM","CARET","CARETLOOSE","COMPARATORLOOSE","COMPARATOR","COMPARATORTRIM","HYPHENRANGE","HYPHENRANGELOOSE","STAR","parse","version","loose","er","m","raw","major","minor","patch","prerelease","num","build","clean","inspect","compare","other","compareMain","comparePre","compareIdentifiers","inc","release","identifier","diff","version1","version2","v1","v2","key","numeric","anum","bnum","rcompare","gt","lt","neq","gte","lte","cmp","op","Comparator","comp","semver","ANY","operator","rcompareIdentifiers","compareLoose","sort","list","rsort","Range","range","parseRange","isX","hyphenReplace","$0","from","fM","fm","fp","fpr","fb","to","tM","tm","tp","tpr","tb","testSet","allowed","satisfies","outside","hilo","gtfn","ltefn","ltfn","ecomp","comparators","high","low","comparator","comps","hr","compRe","_","M","pr","replaceCaret","replaceCarets","replaceTilde","replaceTildes","gtlt","xM","xm","xp","replaceXRange","replaceXRanges","replaceStars","parseComparator","toComparators","maxSatisfying","versions","validRange","ltr","gtr","jquery","emulateTransitionEnd","duration","called","$el","one","support","transition","end","transEndEventNames","WebkitTransition","MozTransition","OTransition","transitionEnd","special","bsTransitionEnd","bindType","delegateType","handle","handleObj","handler","Button","isLoading","setState","loadingText","resetText","proxy","changed","closest","$input","button","$btn","Carousel","$indicators","paused","sliding","interval","$active","keyboard","pause","cycle","action","slide","TRANSITION_DURATION","wrap","which","prev","clearInterval","setInterval","getItemIndex","getItemForDirection","active","activeIndex","itemIndex","$next","isCycling","relatedTarget","slideEvent","isDefaultPrevented","$nextIndicator","slidEvent","carousel","clickHandler","href","$target","slideIndex","$carousel","Dropdown","getParent","clearMenus","insertAfter","dropdown","DISALLOWED_ATTRIBUTES","uriAttrs","DefaultWhitelist","area","br","col","div","em","h1","h2","h3","h4","h5","h6","img","ol","pre","small","span","sub","sup","strong","u","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","allowedAttributeList","attrName","inArray","Boolean","nodeValue","regExp","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","implementation","createHTMLDocument","createdDocument","whitelistKeys","elements","elName","attributeList","attributes","whitelistedAttributes","j","len2","Tooltip","enabled","timeout","hoverState","inState","animation","placement","viewport","padding","sanitize","getOptions","$viewport","isFunction","hover","triggers","eventIn","eventOut","enter","leave","_options","fixTitle","getDefaults","dataAttributes","dataAttr","getDelegateOptions","tip","isInStateTrue","hasContent","inDom","ownerDocument","$tip","tipId","getUID","setContent","autoToken","autoPlace","display","getPosition","actualWidth","orgPlacement","viewportDim","bottom","right","calculatedOffset","getCalculatedOffset","applyPlacement","complete","prevHoverState","setOffset","using","props","delta","getViewportAdjustedDelta","isVertical","arrowDelta","arrowOffsetPosition","replaceArrow","dimension","arrow","getTitle","callback","$e","isBody","elRect","getBoundingClientRect","isSvg","SVGElement","elOffset","scroll","outerDims","viewportPadding","viewportDimensions","topEdgeOffset","bottomEdgeOffset","leftEdgeOffset","rightEdgeOffset","prefix","getElementById","$arrow","enable","disable","toggleEnabled","tooltip","hasBoundingClientRect","svgRelated","console","warn","boundingClientRect","pick","MDCComponent","foundation","_i","initialize","_args","evtType","evtData","shouldBubble","detail","Model","Backbone","Collection","BOUND_TRIGGERS","LazyLoader","canRender","destroyed","validBounds","canScroll","contentBounds","horizontal","uuid","uniqueId","now","throttle","checkItems","loadItems","debouncedCheckItems","debounce","throttledResize","resize","throttledResizeContent","resizeContent","padsChanged","forwardOnly","childrenEl","scrollContainer","sizingEl","padItemTemplate","oldScrollSize","hasActiveItem","lastScroll","scrollCorrection","beginningPads","endPads","x1","x2","y1","y2","stageBounds","ready","changes","userScrolled","validDimensions","checkSize","scrollWidth","scrollHeight","bindEvents","rendering","requestAnimationFrame","scrollTo","reachedEnd","reachedBeginning","activeItem","getElementsByClassName","bringItemToView","onlazyloadactive","fromCustomEvent","onlazyloadinactive","stopImmediatePropagation","listenTo","pad","padRemoved","bounds","intersection","checkScrollArea","lazyLoadedForward","connectObserver","disconnectObserver","bindScrollEvents","bindResizeEvents","unbindScrollEvents","cevent","instance","boundResizeEvents","addResizeListener","onresize","onccontentresize","boundScrollEvents","onscroll","passive","itemPosition","scrollPos","observer","MutationObserver","mutationRecords","mutationRecord","addedNodes","addCount","itemAdded","observe","childList","checkEnabled","toSet","syncing","_checkItems_horizontal","_checkItems_vertical","lastItem","getLastChild","getRelativeRect","firstItem","getFirstChild","checkPadding","unpadBeginning","padBeginning","unpadEnd","padEnd","sw","sh","scrollAreaX","clientWidth","scrollAreaY","clientHeight","unbindEvents","disconnect","firstPad","findWhere","lastPad","accountForMargins","itemRect","computedStyles","itemEl","forward","items","lazyLoadItems","padItems","times","side","_padBeginning","pads","cloned","_padEnd","lastChild","child","beginning","idx","padEls","rect","ceil","scrollingForward","manualScroll","_scroll_forward","_scroll_backward","lastRect","firstRect","stopListening","unbindResizeEvents","removeResizeListener","Events","EvEmitter","proto","listener","events","_events","listeners","once","onceEvents","_onceEvents","emitEvent","onceListeners","isOnce","makeArray","ary","isArray","ImagesLoaded","onAlways","getImages","jqDeferred","Deferred","check","create","images","addElementImages","addImage","background","addElementBackgroundImages","elementNodeTypes","childImgs","LoadingImage","Background","Image","reURL","matches","backgroundImage","addBackground","loadingImage","onProgress","image","progress","progressedCount","hasAnyBroken","isLoaded","notify","debug","log","isComplete","jqMethod","getIsImageComplete","confirm","naturalWidth","proxyImage","handleEvent","onload","onerror","makeJQueryPlugin","imagesLoaded","promise","LVBHandler","sortBy","FormValidation","Validator","regexp","validate","validator","$field","insensitive","getFieldValue","isString","lookup","html5Attributes","completion","validatorName","deferred","extra","then","some","resolve","attributeProfile","cleared","i18n","numberAttr","spec1","spec2","numLength","getLocale","isNumeric","getDynamicOption","originalStringLengthValidate","Framework","Bootstrap","disableSubmitButtons","Base","ns","field","fields","getFieldElements","row","rest","updateStatus","AddOn","I18n","form","namespace","$form","formValidation","DEFAULT_OPTIONS","_namespace","$invalidFields","$submitButton","$hiddenButton","STATUS_NOT_VALIDATED","STATUS_VALIDATING","STATUS_INVALID","STATUS_VALID","STATUS_IGNORED","DEFAULT_MESSAGE","_ieVersion","all","documentMode","_changeEvent","_submitIfValid","_cacheFields","_init","_exceedThreshold","threshold","addOns","autoFocus","control","invalid","err","clazz","formInit","formPreValidate","formError","formSuccess","fieldAdded","fieldRemoved","fieldInit","fieldError","fieldSuccess","fieldStatus","localeChanged","validatorError","validatorSuccess","validatorIgnored","excluded","validating","feedback","live","locale","onPreValidate","onError","onSuccess","verbose","elementClass","declarative","_parseOptions","feedbackIcons","group","submitButtons","_parseAddOnOptions","prependTo","submit","_initField","addOn","bv","fv","Helper","validators","alias","total","updateAll","_getFieldTrigger","$message","_getMessageContainer","_getMessage","$icon","_showTooltip","_hideTooltip","_fixIcon","onStatus","onIgnored","onLiveChange","validateField","_isExcluded","excludedAttr","attrMap","optionName","optionAttrName","optionValue","html5AttrName","html5AttrMap","aliasAttr","validatorSet","attribute","enableByHtml5","onsuccess","transformer","emptyOptions","isEmptyObject","_submit","_onSuccess","_onError","isOptionEnabled","_onFieldValidated","counter","numValidators","defaultSubmit","_createTooltip","_destroyTooltip","getNamespace","getStatus","isValidField","isValidContainer","$f","$errors","offLiveChange","$fields","updateMessage","isValidating","isNotValidated","$allErrors","numIgnored","validateResult","stop","reject","done","response","addField","enableFieldValidators","getForm","getInvalidFields","getMessages","messages","getSubmitButton","removeField","resetField","resetValue","resetForm","revalidateField","setLocale","updateOption","validateContainer","params","framework","functionName","func","pop","context","year","day","notInFuture","numDays","currentDate","Date","currentYear","getFullYear","currentMonth","getMonth","currentDay","getDate","parameters","luhn","mul","prodArr","sum","mod11And10","mod37And36","alphabet","modulus","base64","between","notInclusive","inclusive","minValue","maxValue","bic","blank","dfd","choice","less","more","numChoices","SUPPORTED_TYPES","KEYWORD_COLORS","types","_hex","_hsl","_hsla","_keyword","_rgb","_rgba","creditCard","cards","AMERICAN_EXPRESS","DINERS_CLUB","DINERS_CLUB_US","DISCOVER","JCB","LASER","MAESTRO","MASTERCARD","SOLO","UNIONPAY","VISA","cusip","converted","cvv","ccfield","creditCardField","creditCardType","separator","formats","dateFormat","timeFormat","amOrPm","sections","minutes","hours","seconds","minOption","maxOption","_parseDate","_formatDate","getTime","dateSection","timeSection","replacer","dd","mm","yy","yyyy","getHours","hh","H","HH","getMinutes","MM","getSeconds","ss","different","compareWith","compareValue","digits","ean","weight","ein","CAMPUS","ANDOVER","ATLANTA","AUSTIN","BROOKHAVEN","CINCINNATI","FRESNO","KANSAS_CITY","MEMPHIS","OGDEN","PHILADELPHIA","INTERNET","SMALL_BUSINESS_ADMINISTRATION","campus","emailAddress","emailRegExp","addresses","_splitEmailAddresses","emailAddresses","quotedFragments","quotedFragmentCount","emailAddressArray","nextEmailAddress","splitEmailAddressFragments","splitEmailAddressFragmentCount","file","extension","maxfiles","minfiles","maxsize","minsize","maxtotalsize","mintotalsize","ext","extensions","File","FileList","FileReader","files","totalSize","maxFiles","minFiles","lastIndexOf","minSize","maxSize","maxTotalSize","minTotalSize","greaterThan","compareTo","compareToValue","grid","iban","country","countries","AD","AE","AL","AO","AT","AZ","BA","BE","BF","BG","BH","BI","BJ","BR","CH","CI","CM","CR","CV","CY","CZ","DE","DK","DO","DZ","EE","ES","FI","FO","FR","GB","GE","GI","GL","GR","GT","HR","HU","IE","IL","IR","IS","IT","JO","KW","KZ","LB","LI","LT","LU","LV","MC","MD","ME","MG","MK","ML","MR","MT","MU","MZ","NL","NO","PK","PL","PS","PT","QA","RO","RS","SA","SE","SI","SK","SM","SN","TL","TN","TR","VG","XK","sepa","REGEX","SEPA_COUNTRIES","isSepaCountry","temp","CL","CN","TH","ZA","COUNTRY_CODES","_validateJMBG","countryCode","rr","_ba","_mk","_me","_rs","_si","_bg","_br","d1","d2","_ch","_cl","_cn","adminDivisionCodes","provincial","prefectural","county","dob","inRange","rangeDef","_cz","_dk","_ee","_lt","_es","isDNI","isNIE","isCIF","letter","tmp","lastDigit","_fi","_hr","_ie","getCheckDigit","_is","century","gender","_lv","_nl","_pl","_ro","_se","_sk","_sm","_th","_za","identical","imei","imo","integer","thousandsseparator","decimalseparator","badInput","decimalSeparator","thousandsSeparator","thousandsReplacer","isFinite","ip","ipv4","ipv6","ipv4Regex","ipv6Regex","isbn","checksum","chars","isin","ismn","issn","lessThan","mac","meid","cd","cdCalc","notEmpty","required","phone","IN","MA","RU","US","VE","fail","pattern","remote","crossdomain","datatype","validkey","timer","validKey","JSON","ajaxOptions","dataType","headers","runCallback","xhr","ajax","success","abort","crossDomain","rtn","sedol","siren","siret","base","baseValue","dotX","dotY","precision","sign","floatMod","stringCase","upper","utf8bytes","maxLength","minLength","utf8Bytes","str","utf8Length","uri","allowlocal","allowemptyprotocol","protocol","allowLocal","allowEmptyProtocol","patterns","vat","EL","_at","_be","egn","pnf","cnpj","_cy","translation","_de","dni","nie","cif","_fr","_gb","firstTwo","lastThree","_gr","_el","_hu","_it","_lu","_mt","_no","_pt","_ru","sum1","weight1","sum2","weight2","res","_ve","vin","A","B","C","D","E","F","G","J","K","L","N","P","S","T","U","V","W","X","Y","Z","weights","reminder","zipCode","CA","SG","firstChar","secondChar","fifthChar","regexps","$fieldParent","popover","bootstrapValidator","modules","installedModules","__webpack_require__","moduleId","getter","__esModule","property","_ajax","_interopRequireDefault","default","_getId","_max","_min","_observer","_extend","_style","_requestAnimationFrame","_frame","_debounce","_createClass","defineProperties","descriptor","protoProps","staticProps","Observer","_classCallCheck","handlers","un","_this2","_len","_key","_len2","_key2","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","util","newObj","_interopRequireWildcard","_defineProperty","PLAYING","PAUSED","FINISHED","WebAudio","_util$Observer","_this$stateBehaviors","_this$states","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","audioContext","offlineAudioContext","stateBehaviors","addOnAudioProcess","getPlayedPercents","getDuration","getCurrentTime","startPosition","getPlayedTime","removeOnAudioProcess","ac","getAudioContext","lastPlay","currentTime","scheduledPause","states","analyser","buffer","filters","gainNode","mergedPeaks","offlineAc","peaks","playbackRate","scriptNode","splitPeaks","explicitDuration","subClass","superClass","setPrototypeOf","_inherits","AudioContext","webkitAudioContext","WaveSurferAudioContext","sampleRate","WaveSurferOfflineAudioContext","OfflineAudioContext","webkitOfflineAudioContext","createVolumeNode","createScriptNode","createAnalyserNode","setPlaybackRate","audioRate","setLength","connect","setFilters","disconnectFilters","reduce","curr","createScriptProcessor","scriptBufferSize","createJavaScriptNode","destination","onaudioprocess","createAnalyser","createGain","createGainNode","deviceId","audio","Audio","setSinkId","Promise","autoplay","dest","createMediaStreamDestination","URL","createObjectURL","stream","gain","setValueAtTime","arraybuffer","errback","getOfflineAudioContext","decodeAudioData","channels","numberOfChannels","newBuffer","createBuffer","sampleSize","sampleStep","chan","getChannelData","splitChannels","isPaused","unAll","disconnectSource","closeAudioContext","close","createSource","createBufferSource","noteGrainOn","noteOff","adjustedTime","seekTo","resume","play","_drawer2","_webaudio2","_mediaelement2","_peakcache2","PluginClass","ws","WaveSurfer","defaultParams","autoCenter","backend","barHeight","barGap","cursorColor","cursorWidth","dragSelection","fillParent","forceDecode","hideScrollbar","interact","loopSelection","maxCanvasWidth","mediaContainer","mediaControls","mediaType","minPxPerSec","normalize","partialRender","pixelRatio","devicePixelRatio","screen","deviceXDPI","logicalXDPI","plugins","progressColor","removeMediaElementOnDestroy","renderer","responsive","scrollParent","skipLength","waveColor","backends","MediaElement","savedVolume","isMuted","tmpEvents","currentAjax","drawer","peakCache","Drawer","Backend","initialisedPluginList","isDestroyed","isReady","prevWidth","_onResize","wrapper","registerPlugins","createDrawer","createBackend","createPeakCache","plugin","addPlugin","deferInit","initPlugin","_this3","pluginStaticProp","Instance","getOwnPropertyNames","destroyPlugin","_this4","_this5","drawBuffer","_this6","supportsWebAudio","_this7","skip","seekAndCenter","recenter","_this8","oldScrollParent","newVolume","setVolume","getVolume","rate","getPlaybackRate","setMute","mute","updateCursor","setHeight","resized","nominalWidth","parentWidth","getScrollX","newRanges","addRangeToPeakCache","getPeaks","drawPeaks","pxPerSec","_this9","decodeArrayBuffer","loadDecodedBuffer","load","blob","_this10","reader","loadArrayBuffer","readAsArrayBuffer","empty","preload","preloadIgnoreReasons","activeReasons","reason","loadBuffer","loadMediaElement","_this11","getArrayBuffer","setPeaks","urlOrElt","_this12","elt","loadElt","_this13","_this14","responseType","statusText","percentComplete","lengthComputable","loaded","accuracy","noWindow","arr","json","stringify","open","encodeURIComponent","quality","getImage","cancelAjax","clearTmpEvents","destroyAllPlugins","_observer2","XMLHttpRequest","fired100","send","values","largest","smallest","Infinity","sources","styles","_requestAnimationFrame2","wait","immediate","timestamp","later","debounced","callNow","clear","flush","_drawer","MultiCanvas","_Drawer","maxCanvasElementWidth","hasProgressCanvas","halfPixel","canvases","progressWave","createWrapper","createElements","zIndex","boxSizing","borderRightStyle","pointerEvents","addCanvas","borderRightColor","totalWidth","requiredCanvases","removeCanvas","entry","canvasWidth","updateDimensions","clearWaveForEntry","leftOffset","wave","waveCtx","getContext","progressCtx","lastEntry","parentElement","elementWidth","canvas","offsetLeft","clearRect","channelIndex","prepareDraw","_ref","absmax","hasMinVals","offsetY","halfH","peakIndexScale","bar","barWidth","scale","peak","fillRect","_ref2","reflectedPeaks","drawLine","setFillStyles","drawLineToContext","ctx","canvasStart","canvasEnd","beginPath","moveTo","lineTo","_peak","_h","closePath","fill","startCanvas","endCanvas","fillRectToContext","frame","channelPeaks","fillStyle","toDataURL","lastPos","userSelect","webkitUserSelect","overflowX","overflowY","setupWrapperEvents","noPrevent","clientX","targetTouches","bbox","scrollbarHeight","clientY","clearWave","drawBars","drawWave","percent","recenterOnPosition","half","maxScroll","updateSize","_progress","minPxDelta","newPos","updateProgress","_get","receiver","desc","getOwnPropertyDescriptor","_webaudio","_WebAudio","media","volume","elementPosition","onPlayEnd","createTimer","onAudioProcess","controls","prevMedia","_load","seekable","clearPlayEnd","setPlayEnd","_onPlayEnd","PeakCache","clearPeakCache","peakCacheRanges","peakCacheLength","uncachedRanges","uncachedRangePairs","peakCacheRangePairs","define","vttjs","cueShim","regionShim","oldVTTCue","oldVTTRegion","_dereq_","global","topLevel","minDoc","doccy","getNative","isObject","FUNC_ERROR_TEXT","nativeMax","maxTimeoutId","stamp","thisArg","timeoutId","trailingCall","lastCalled","maxWait","trailing","leading","cancel","isCalled","delayed","remaining","maxDelayed","leadingCall","restParam","otherArgs","arrayCopy","array","arrayEach","iteratee","baseCopy","baseFor","createBaseFor","keysIn","baseForIn","baseMergeDeep","isArrayLike","isObjectLike","isTypedArray","baseMerge","customizer","stackA","stackB","isSrcArr","srcValue","isCommon","isArguments","isPlainObject","toPlainObject","mergeFunc","toObject","baseProperty","identity","bindCallback","argCount","collection","accumulator","isIterateeCall","createAssigner","assigner","guard","fromRight","keysFunc","iterable","getLength","isNative","isLength","isHostObject","reIsUint","isIndex","shimKeys","propsLength","allowIndexes","unindexedChars","objectProto","propertyIsEnumerable","arrayTag","objToString","funcTag","reIsHostCtor","fnToString","reIsNative","objectTag","Ctor","ownLast","subValue","stringTag","argsTag","boolTag","dateTag","errorTag","mapTag","numberTag","regexpTag","setTag","weakMapTag","arrayBufferTag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","typedArrayTags","nativeKeys","enumPrototypes","shadowProps","errorProto","stringProto","nonEnumProps","isProto","skipIndexes","skipErrorProps","enumErrorProps","skipProto","nonEnumShadows","tag","nonEnums","nonEnum","merge","arrayProto","spliceObjects","Symbol","getOwnPropertySymbols","iterator","sym","symVal","syms","canBeObject","hasSymbols","propIsEnumerable","source1","objTarget","getPolyfill","shim","foreach","toStr","arePropertyDescriptorsSupported","supportsDescriptors","predicate","predicates","hasOwn","ERROR_MESSAGE","funcType","bound","binder","boundLength","boundArgs","Empty","has","isArgs","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","ctor","blacklistedKeys","$console","$frame","$frameElement","$frames","$self","$webkitIndexedDB","$webkitStorageInfo","hasAutomationEqualityBug","equalsConstructorPrototypeIfNotBuggy","keysShim","theKeys","skipConstructor","keysWorksWithArguments","originalKeys","callee","lacksProperEnumerationOrder","assign","letters","actual","assignHasPendingExceptions","preventExtensions","thrower","polyfill","SafeParseTuple","reviver","sa","parseHeaders","xtend","forEachArray","isEmpty","initParams","createXHR","_createXHR","readystatechange","readyState","loadFunc","getBody","responseText","responseXML","isJson","failureResponse","statusCode","rawRequest","errorFunc","timeoutTimer","aborted","useXDR","getAllResponseHeaders","cors","XDomainRequest","sync","onreadystatechange","onprogress","ontimeout","username","withCredentials","setRequestHeader","beforeSend","noop","alert","prompt","forEachString","forEachObject","arg","_buttonJs2","_componentJs2","BigPlayButton","_Button","player","buildCSSClass","player_","controlText_","registerComponent","_clickableComponentJs2","_component2","_utilsLogJs2","_objectAssign2","_ClickableComponent","createEl","role","createControlTextEl","addChild","handleKeyPress","Dom","Fn","_globalDocument2","ClickableComponent","_Component","emitTapEvents","handleFocus","handleBlur","controlTextEl_","controlText","localize","el_","_button2","CloseButton","_globalWindow2","Guid","_utilsToTitleCaseJs2","_utilsMergeOptionsJs2","Component","options_","id_","newGUID","name_","children_","childIndex_","childNameIndex_","initChildren","reportTouchActivity","enableTouchActivity","dispose","removeElData","properties","language","languages","primaryLang","contentEl","contentEl_","getChildById","getChild","component","componentName","componentClassName","componentClass","ComponentClass","getComponent","refNode","childFound","compEl","parentOptions","handleAdd","workingChildren","Tech","playerOptions","newChild","wchild","isTech","second","third","removeOnDispose","guid","cleanRemover","newFunc","_arguments","hash","isReady_","readyQueue_","triggerReady","readyQueue","$$","classToCheck","hasElClass","classToAdd","addElClass","classToRemove","removeElClass","classToToggle","toggleElClass","lockShowing","unlockShowing","skipListeners","dimensions","widthOrHeight","pxIndex","currentDimension","computedWidthOrHeight","getPropertyValue","currentStyle","rule","currentDimensions","currentWidth","currentHeight","touchStart","firstTouch","tapMovementThreshold","touchTimeThreshold","couldBeTap","touches","xdiff","ydiff","sqrt","noTap","reportUserActivity","report","touchHolding","touchEnd","disposeFn","intervalId","components_","videojs","subObj","_name","ControlBar","dir","loadEvent","FullscreenToggle","isFullscreen","exitFullscreen","requestFullscreen","LiveDisplay","updateShowing","MuteToggle","update","tech_","muted","vol","toMute","PlayToggle","handlePlay","handlePause","_menuMenuButtonJs2","_menuMenuJs2","_playbackRateMenuItemJs2","PlaybackRateMenuButton","_MenuButton","updateVisibility","updateLabel","labelEl_","createMenu","rates","playbackRates","updateARIAAttributes","currentRate","newRate","playbackRateSupported","_menuMenuItemJs2","PlaybackRateMenuItem","_MenuItem","contentElType","LoadProgressBar","buffered","bufferedEnd","percentify","_utilsFormatTimeJs2","_lodashCompatFunctionThrottle2","MouseTimeDisplay","controlBar","progressControl","keepTooltipsInside","handleMouseMove","newTime","calculateDistance","findElPosition","difference","clampPosition_","tooltipWidthHalf","getPointerPosition","playerWidth","actualPosition","PlayProgressBar","updateDataAttr","scrubbing","getCache","ProgressControl","_sliderSliderJs2","SeekBar","_Slider","tooltipProgressBar","updateAriaAttributes","tooltipWidth","tooltipStyle","maxWidth","minWidth","getPercent","toFixed","handleMouseDown","videoWasPlaying","handleMouseUp","stepForward","stepBack","playerEvent","TooltipProgressBar","formattedTime","_spacerJs2","CustomControlSpacer","_Spacer","Spacer","_textTrackMenuItemJs2","CaptionSettingsMenuItem","_TextTrackMenuItem","mode","_textTrackButtonJs2","_captionSettingsMenuItemJs2","CaptionsButton","_TextTrackButton","createItems","kind_","_chaptersTrackMenuItemJs2","ChaptersButton","tracks","textTracks","track","chaptersTrack","_length","unshift","insertElFirst","cues","remoteTextTrackEl","remoteTextTrackEls","getTrackElementByTrack_","cue","mi","ChaptersTrackMenuItem","startTime","DescriptionsButton","changeHandler","handleTracksChange","OffTextTrackMenuItem","SubtitlesButton","_offTextTrackMenuItemJs2","TextTrackButton","updateHandler","TextTrackMenuItem","onchange","kind","CurrentTimeDisplay","updateContent","localizedText","formattedTime_","DurationDisplay","duration_","RemainingTimeDisplay","remainingTime","TimeDivider","VolumeBar","checkMuted","VolumeControl","VolumeLevel","_popupPopupJs2","_popupPopupButtonJs2","_muteToggleJs2","_volumeControlVolumeBarJs2","VolumeMenuButton","_PopupButton","volumeBar","volumeUpdate","orientationClass","createPopup","popup","vb","menuContent","attachVolumeBarEvents","_modalDialog2","_utilsMergeOptions2","ErrorDisplay","_ModalDialog","fillAlways","temporary","uncloseable","EventTarget","allowedEvents_","ael","fixEvent","_utilsLog2","super_","extendFn","subClassMethods","methods","FullscreenApi","apiMap","specApi","browserApi","LoadingSpinner","MediaError","defaultMessages","errorTypes","errNum","_menuJs2","MenuButton","enabled_","handleSubmenuKeyPress","buttonPressed_","addItem","menuButtonClass","unpressButton","pressButton","MenuItem","selectable","attrs","_selected","Menu","focusedChild_","stepChild","MODAL_CLASS_NAME","ESC","ModalDialog","opened_","hasBeenOpened_","hasBeenFilled_","closeable","descEl_","textContent","description","wasPlaying_","opened","closeable_","_close","fillWith","parentEl","nextSiblingEl","nextSibling","insertContent","emptyEl","content_","browser","_utilsTimeRangesJs","_utilsBufferJs","stylesheet","_fullscreenApiJs2","_mediaErrorJs2","_safeJsonParseTuple2","_tracksTextTrackListConverterJs2","_techTechJs2","Player","languagesToLower","getTagSettings","techOrder","tagAttributes","getElAttributes","languages_","cache_","poster_","poster","controls_","scrubbing_","playerOptionsCopy","isAudio","flexNotSupported_","IS_IOS","players","userActive","listenForUserActivity_","handleFullscreenChange_","handleStageClick_","styleEl_","playerId","VIDEOJS_NO_DYNAMIC_STYLE","createStyleElement","defaultsStyleEl","fluid","aspectRatio","links","linkEl","initNetworkState_","networkState","_dimension","privDimension","parsedVal","updateStyleEl_","bool","fluid_","ratio","aspectRatio_","idClass","ratioParts","videoWidth","videoHeight","ratioMultiplier","width_","height_","setTextContent","_width","_height","techEl","loadTech_","techName","unloadTech_","getTech","disposeMediaElement","techName_","techOptions","nativeControlsForTouch","textTracks_","loop","currentType_","techComponent","handleTechReady_","jsonToTextTracks","textTracksJson_","handleTechLoadStart_","handleTechWaiting_","handleTechCanPlay_","handleTechCanPlayThrough_","handleTechPlaying_","handleTechEnded_","handleTechSeeking_","handleTechSeeked_","handleTechPlay_","handleTechFirstPlay_","handleTechPause_","handleTechProgress_","handleTechDurationChange_","handleTechFullscreenChange_","handleTechError_","handleTechSuspend_","handleTechAbort_","handleTechEmptied_","handleTechStalled_","handleTechLoadedMetaData_","handleTechLoadedData_","handleTechTimeUpdate_","handleTechRateChange_","handleTechVolumeChange_","handleTechTextTrackChange_","handleTechPosterChange_","usingNativeControls","techGet_","addTechControlsListeners_","textTracksToJson","tech","safety","IWillNotUseThisInPlugins","errorText","removeTechControlsListeners_","handleTechClick_","handleTechTouchStart_","handleTechTouchMove_","handleTechTouchEnd_","handleTechTap_","techCall_","hasStarted","_hasStarted","hasStarted_","starttime","userWasActive","isScrubbing","createTimeRange","bufferedPercent","percentAsDecimal","_muted","supportsFullScreen","isFS","isFullscreen_","fsApi","fullscreenchange","documentFullscreenChange","fullscreenElement","enterFullWindow","exitFullWindow","isFullWindow","docOrigOverflow","fullWindowOnEscKey","canPlayType","can","isSupported","selectSource","techs","findFirstPassingTechSourcePair","outerArray","innerArray","tester","found","outerChoice","innerChoice","finder","canPlaySource","sourceOrder","currentTech","sourceList_","sourceTech","notSupportedMessage","reset","currentSrc","currentType","usingNativeControls_","error_","errorDisplay","ended","seeking","userActivity_","userActive_","mouseInProgress","lastMoveX","lastMoveY","handleActivity","screenX","screenY","inactivityTimeout","isAudio_","remoteTextTracks","addTextTrack","addRemoteTextTrack","removeRemoteTextTrack","_ref3$track","language_","toJSON","createModal","modal","baseOptions","tagOptions","dataSetup","_safeParseTuple","hasChildNodes","childNodes","childName","navigator","html5","flash","defaultVolume","userLanguage","handleLoadedMetaData_","handleLoadedData_","handleUserActive_","handleUserInactive_","handleTimeUpdate_","handleVolumeChange_","handleError_","_playerJs2","PopupButton","Popup","PosterImage","BACKGROUND_SIZE_SUPPORTED","fallbackImg_","setSrc","_windowLoaded","autoSetup","vids","audios","mediaEls","mediaEl","autoSetupTimeout","vjs","hasLoaded","Slider","barName","doc","blockTextSelection","unblockTextSelection","percentage","vertical_","FlashRtmpDecorator","Flash","streamingFormats","streamFromParts","connection","streamToParts","parts","connEnd","streamBegin","isStreamingType","srcType","RTMP_RE","isStreamingSrc","rtmpSourceHandler","canHandleSource","handleSource","srcParts","registerSourceHandler","_tech2","Url","_flashRtmp2","_Tech","setSource","onReady","onEvent","lastSeekTarget_","swf","objId","techId","flashVars","embed","setCurrentTime","vjs_play","vjs_pause","_src","getAbsoluteURL","vjs_src","vjs_setProperty","vjs_getProperty","currentSource_","vjs_load","setPoster","ranges","enterFullScreen","_api","_readWrite","_readOnly","_createSetter","attrUpper","_createGetter","withSourceHandlers","nativeSourceHandler","guessMimeType","getFileExtension","currSwf","getEl","checkReady","swfID","ActiveXObject","GetVariable","mimeTypes","enabledPlugin","getEmbedCode","objTag","flashVarsString","paramsString","attrsString","registerTech","_techJs2","Html5","handleLateInit_","nodes","nodesLength","removeNodes","featuresNativeTextTracks","addTrackElement_","addTrack_","handleTextTrackChange_","handleTextTrackChange","handleTextTrackAdd_","handleTextTrackAdd","handleTextTrackRemove_","handleTextTrackRemove","proxyNativeTextTracks_","TOUCH_ENABLED","IS_IPHONE","IS_NATIVE_ANDROID","setControls","tt","emulatedTt","removeTrack_","setElAttributes","settingsAttrs","overwriteAttrs","_ret","loadstartFired","setLoadstartFired","triggerLoadstart","eventsToTrigger","srcElement","tryToPlay","catch","setMuted","webkitEnterFullScreen","userAgent","video","HAVE_METADATA","exitFullScreen","webkitExitFullScreen","resetMediaElement","setPreload","setAutoplay","setLoop","defaultMuted","played","htmlTrackElement","srclang","trackElement","removeTrackElement_","TEST_VID","canControlVolume","canControlPlaybackRate","IS_ANDROID","IS_CHROME","supportsNativeTextTracks","supportsTextTracks","IS_FIREFOX","mpegurlRE","mp4RE","patchCanPlayType","ANDROID_VERSION","IS_OLD_ANDROID","unpatchCanPlayType","MediaLoader","_tracksHtmlTrackElement2","_tracksHtmlTrackElementList2","_tracksTextTrack2","_tracksTextTrackList2","featuresProgressEvents","manualProgressOn","featuresTimeupdateEvents","manualTimeUpdatesOn","nativeCaptions","nativeTextTracks","emulateTextTracks","initTextTrackListeners","onDurationChange","manualProgress","trackProgress","manualProgressOff","stopTrackingProgress","progressInterval","numBufferedPercent","bufferedPercent_","manualTimeUpdates","trackCurrentTime","stopTrackingCurrentTime","manualTimeUpdatesOff","currentTimeInterval","manuallyTriggered","textTrackListChanges","script","updateDisplay","textTracksChanges","remoteTextTracks_","remoteTextTrackEls_","createTrackHelper","techs_","featuresVolumeControl","featuresFullscreenResize","featuresPlaybackRate","sourceHandlers","selectSourceHandler","srcObj","fnName","originalFn","sourceHandler_","disposeSourceHandler","HtmlTrackElementList","trackElements","IS_IE8","trackElements_","trackElement_","_length2","_length3","_eventTarget2","NONE","LOADING","LOADED","ERROR","HTMLTrackElement","_EventTarget","TextTrackCueList","setCues_","length_","oldLength","cues_","defineProp","getCueById","darkGray","lightGray","fontMap","monospace","sansSerif","serif","monospaceSansSerif","monospaceSerif","proportionalSansSerif","proportionalSerif","casual","smallcaps","TextTrackDisplay","toggleDisplay","modes","trackList","firstDesc","firstCaptions","clearDisplay","descriptionsTrack","captionsSubtitlesTrack","updateForTrack","overrides","getValues","cueDiv","displayState","textOpacity","tryUpdateStyle","constructColor","backgroundColor","backgroundOpacity","windowColor","windowOpacity","edgeStyle","textShadow","fontPercent","fontSize","fontFamily","fontVariant","opacity","TextTrackMode","hidden","showing","TextTrackKind","subtitles","captions","descriptions","chapters","metadata","trackToJson_","acc","endTime","trackEls","trackObjs","trackEl","addedTrack","addCue","TextTrackList","tracks_","rtrack","getTrackById","_event","addtrack","removetrack","TextTrackSettings","persistTextTrackSettings","saveSettings","restoreSettings","captionOptionsMenuTemplate","textEdge","getSelectedOptionValue","fgColor","bgColor","bgOpacity","setValues","setSelectedOption","localStorage","getItem","setItem","removeItem","ttDisplay","selectedOption","_textTrackCueList2","TextTrackEnum","_utilsUrlJs","_xhr2","parseCues","srcContent","parser","WebVTT","Parser","StringDecoder","errors","oncue","onparsingerror","onflush","groupCollapsed","groupEnd","loadTrack","crossOrigin","isCrossOrigin","responseBody","loadHandler","loaded_","TextTrack","default_","activeCues_","activeCues","timeupdateHandler","newMode","ct","removeCue","_removeCue","removed","cuechange","USER_AGENT","webkitVersionMap","appleWebkitVersion","IS_IPAD","IS_IPOD","IOS_VERSION","IS_EDGE","DocumentTouch","_timeRangesJs","bufferedDuration","_logJs2","defaultBehaviors","Proxy","getElData","hasElData","isEl","isTextNode","normalizeContent","appendContent","_templateObject","_taggedTemplateLiteralLoose","_tsml2","isNonBlankString","throwIfWhitespace","classRegExp","createQuerier","propName","innerText","elData","elIdAttr","attrValue","knownBooleans","attrVal","onselectstart","box","docEl","clientLeft","pageXOffset","clientTop","pageYOffset","boxW","boxH","boxY","boxX","_handleMultipleEvents","dispatcher","handlersCopy","isImmediatePropagationStopped","attachEvent","removeType","_cleanUpEvents","elemData","isPropagationStopped","defaultPrevented","targetData","returnTrue","returnFalse","fromElement","toElement","returnValue","cancelBubble","charCode","detachEvent","_guidJs","uid","formatTime","guide","gm","gh","_guid","_logType","argsArray","history","mergeOptions","_lodashCompatObjectMerge2","isPlain","styleSheet","createTimeRanges","createTimeRangesObj","getRange","valueIndex","rangeIndex","rangeCheck","maxIndex","toTitleCase","parseUrl","addToBody","details","path","pathParts","winLoc","location","urlInfo","setup","_player2","_pluginsJs2","_srcJsUtilsMergeOptionsJs2","_tracksTextTrackJs2","_extendJs2","_utilsCreateDeprecationProxyJs2","HTMLVideoElement","getPlayers","addLanguage","_merge","setAttributes","getAttributes","VTTCue","VTTRegion","restore","directionSetting","alignSetting","findAlignSetting","cobj","isIE8","baseObj","hasBeenReset","_id","_pauseOnExit","_startTime","_endTime","_text","_region","_vertical","_snapToLines","_line","_lineAlign","_position","_positionAlign","_size","_align","setting","findDirectionSetting","SyntaxError","getCueAsHTML","convertCueToDOMTree","scrollSetting","isValidPercentValue","_lines","_regionAnchorX","_regionAnchorY","_viewportAnchorX","_viewportAnchorY","_scroll","findScrollSetting","_objCreate","ParsingError","errorData","parseTimeStamp","computeSeconds","Settings","parseOptions","keyValueDelim","groupDelim","groups","kv","parseCue","regionList","oInput","consumeTimeStamp","ts","Errors","BadTimeStamp","skipWhitespace","settings","region","alt","vals","vals0","line","lineAlign","snapToLines","align","middle","positionAlign","consumeCueSettings","BadSignature","dflt","defaultKey","ESCAPE","TAG_NAME","ruby","rt","lang","TAG_ANNOTATION","NEEDS_PARENT","parseContent","nextToken","unescape1","unescape","shouldAdd","current","localName","annotation","rootDiv","tagStack","createProcessingInstruction","strongRTLChars","StyleBox","CueStyleBox","styleOptions","writingMode","unicodeBidi","applyStyles","textAlign","font","whiteSpace","nodeStack","pushNodes","nextTextNode","determineBidi","stylesunicodeBidi","textPos","formatStyle","move","BoxPosition","lh","rects","getClientRects","lineHeight","moveBoxToLinePosition","styleBox","containerBox","boxPositions","boxPosition","linePos","textTrackList","mediaElement","computeLinePos","axis","maxPosition","initialAxis","reverse","calculatedPercentage","bestPosition","specifiedPosition","overlapsOppositeAxis","within","overlapsAny","intersectPercentage","findBestPosition","toCSSCompatValues","unit","toMove","overlaps","b2","boxes","reference","getSimpleBoxPosition","decode","decodeURIComponent","cuetext","processCues","overlay","paddedOverlay","margin","shouldCompute","decoder","TextDecoder","reportOrThrowError","collectNextLine","parseHeader","xy","anchor","lines","regionAnchorX","regionAnchorY","viewportAnchorX","viewportAnchorY","onregion","parseRegion","alreadyCollectedLine","hasSubstring","CDN_VERSION","HELP_IMPROVE_VIDEOJS","hostname","availWidth","availHeight","pathname","modifyLis","$text","lastUl","doneText","cancelEl","bindBodyScroll","unbindBodyScroll","onbodyscroll","$dropdownButton","$dropdownMenu","$scrollTarget","boundY","boundY2","capture","NetxDragSelect","baseName","clickTimer","checkingClick","dblClicked","boundContainer","$proxyEl","targetItem","targetItems","controlKey","shiftKey","lastAddedIndex","focued","tempSelection","dragBox","$itemContainer","class","ghostBoxClass","netxDrag","is_touch","_bindItems","_dragHandler","isHidden","onDragStart","onDragMove","diffLeft","diffTop","os","scrollDiffX","scrollDiffY","w","con_scroll_y","con_scroll_x","ui","pointer","diff_top","diff_left","ms_init_pos","itemContainer","calculateItemBoundOffset","fadeIn","relative","_overlap","onDragStop","addToSelection","lingerTimer","$doc","$win","$scrollContainer","_getDragData","_getOffset","$elements","dragSelectedClass","_addToSelection","_ignoreSelect","$item","_getDragEvent","_e","_contentsChanged","ignoreSelect","bLeft","bTop","removeFromSelection","_removeFromSelection","unselect","updateItems","netxDragSelect","scrollAreaSize","cachedCssTransformPropertyName_","DefaultFocusState","MDCMenuSurface","anchorElement","setFixedPosition","handleBodyClick_","handleBodyClick","registerBodyClickListener_","deregisterBodyClickListener_","isOpen","skipRestoreFocus","quickOpen","setQuickOpen","hoistMenuToBody","setIsHoisted","isHoisted","setMenuSurfaceAnchorElement","isFixed","setAbsolutePosition","setAnchorCorner","corner","setAnchorMargin","hasAnchor","notifyClose","notifyOpen","isElementInContainer","isRtl","setTransformOrigin","origin","propertyName","globalObj","setProperty","isFocused","saveFocus","previousFocus_","restoreFocus","getInnerDimensions","getAnchorDimensions","getWindowDimensions","innerWidth","innerHeight","getBodyDimensions","getWindowScroll","setPosition","setMaxHeight","maxHeight","MENU_SELECTED_LIST_ITEM","MENU_SELECTION_GROUP","ARIA_CHECKED_ATTR","LIST_SELECTOR","SELECTED_EVENT","FOCUS_ROOT_INDEX","MDCMenuFoundation","defaultAdapter","closeAnimationEndTimerId_","defaultFocusState_","LIST_ROOT","addClassToElementAtIndex","removeClassFromElementAtIndex","addAttributeToElementAtIndex","removeAttributeFromElementAtIndex","elementContainsClass","closeSurface","getElementIndex","notifySelected","getMenuItemCount","focusListRoot","getSelectedSiblingOfItemAtIndex","isSelectableItemAtIndex","handleItemAction","handleMenuSurfaceOpened","FIRST_ITEM","LAST_ITEM","setDefaultFocusState","focusState","validatedIndex_","prevSelectedIndex","menuSize","MDCMenu","menuSurfaceFactory","listFactory","menuSurfaceFactory_","listFactory_","menuSurface_","list_","wrapFocus","handleItemAction_","handleMenuSurfaceOpened_","getOptionByIndex","setAnchorElement","selectedItemEl","webkitMatchesSelector","msMatchesSelector","supportsPassive_","applyPassive","isSupported_1","BG_FOCUSED","FG_ACTIVATION","FG_DEACTIVATION","UNBOUNDED","VAR_FG_SCALE","VAR_FG_SIZE","VAR_FG_TRANSLATE_END","VAR_FG_TRANSLATE_START","VAR_LEFT","VAR_TOP","DEACTIVATION_TIMEOUT_MS","FG_DEACTIVATION_MS","INITIAL_ORIGIN_SCALE","PADDING","TAP_DELAY_MS","ACTIVATION_EVENT_TYPES","POINTER_DEACTIVATION_EVENT_TYPES","activatedTargets","MDCRippleFoundation","activationAnimationHasEnded_","activationTimer_","fgDeactivationRemovalTimer_","fgScale_","frame_","initialSize_","layoutFrame_","maxRadius_","unboundedCoords_","activationState_","defaultActivationState_","activationTimerCallback_","runDeactivationUXLogicIfReady_","activateHandler_","activate_","deactivateHandler_","deactivate_","focusHandler_","blurHandler_","resizeHandler_","browserSupportsCssVars","computeBoundingRect","containsEventTarget","deregisterDocumentInteractionHandler","deregisterInteractionHandler","deregisterResizeHandler","getWindowPageOffset","isSurfaceActive","isSurfaceDisabled","isUnbounded","registerDocumentInteractionHandler","registerInteractionHandler","registerResizeHandler","updateCssVariable","supportsPressRipple","supportsPressRipple_","registerRootHandlers_","ROOT_1","UNBOUNDED_1","layoutInternal_","ROOT_2","UNBOUNDED_2","removeCssVars_","deregisterRootHandlers_","deregisterDeactivationHandlers_","activate","deactivate","cancelAnimationFrame","setUnbounded","unbounded","activationEvent","hasDeactivationUXRun","isActivated","isProgrammatic","wasActivatedByPointer","wasElementMadeActive","registerDeactivationHandlers_","rippleStrings","activationState","previousActivationEvent","previousActivationEvent_","resetActivationState_","checkElementMadeActive_","animateActivation_","translateStart","translateEnd","_c","getFgTranslationCoordinates_","startPoint","endPoint","rmBoundedActivationClasses_","animateDeactivation_","maxDim","updateLayoutCssVars_","MDCRipple","ripple","createAdapter","varName","unbounded_","setUnbounded_","dataset","MDCMenuSurfaceFoundation","isOpen_","isQuickOpen_","isHoistedElement_","isFixedPosition_","openAnimationEndTimerId_","animationRequestId_","anchorCorner_","TOP_START","anchorMargin_","position_","isFixedPosition","isFinite_","dimensions_","autoPosition_","maybeRestoreFocus_","measurements_","getAutoLayoutMeasurements_","getOriginCorner_","maxMenuSurfaceHeight","getMenuSurfaceMaxHeight_","verticalAlignment","hasBit_","BOTTOM","horizontalAlignment","RIGHT","horizontalOffset","getHorizontalOriginOffset_","verticalOffset","getVerticalOriginOffset_","anchorSize","surfaceSize","adjustPositionForHoistedElement_","anchorRect","bodySize","viewportSize","windowScroll","viewportDistance","TOP_LEFT","isBottomAligned","availableTop","availableBottom","topOverflow","bottomOverflow","setBit_","isFlipRtl","FLIP_RTL","avoidHorizontalOverlap","isAlignedRight","availableLeft","availableRight","leftOverflow","rightOverflow","isBottomAnchored","isRightAligned","rightOffset","avoidVerticalOverlap","e_1","props_1","props_1_1","e_1_1","return","childHasFocus","bit","extendStatics","__extends","__","__assign","__awaiter","generator","fulfilled","rejected","__generator","sent","trys","ops","verb","__values","__read","ar","__spread","LIST_ITEM_DISABLED_CLASS","ARIA_CHECKED","ARIA_CURRENT","ARIA_SELECTED","UNSET_INDEX","ELEMENTS_KEY_ALLOWED_IN","MDCListFoundation","wrapFocus_","isVertical_","isSingleSelectionList_","selectedIndex_","focusedItemIndex_","useActivatedClass_","ariaCurrentAttrValue_","isCheckboxList_","isRadioList_","useActivated","isIndexValid_","setCheckboxAtIndex_","setRadioAtIndex_","setSingleSelectionAtIndex_","setTabindexToFirstSelectedItem_","isRootListItem","isArrowLeft","isArrowUp","isArrowRight","isArrowDown","isHome","isEnd","isEnter","isSpace","focusLastElement","focusFirstElement","currentIndex","nextIndex","preventDefaultEvent_","focusNextElement","focusPrevElement","isSelectableList_","setSelectedIndexOnAction_","setTabindexAtIndex_","lastIndex","selectedClassName","setAriaForSingleSelectionAtIndex_","isAriaCurrent","ariaAttribute","ariaAttributeValue","targetIndex","minIndex","isIndexInRange_","listSize","toggleCheckboxAtIndex_","selectedIndexes","raf","stylesCreated","requestFrame","cancelFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","_resetTriggers","__resizeTriggers__","expand","firstElementChild","contract","lastElementChild","expandChild","scrollListener","__resizeRAF__","__resizeLast__","checkTriggers","__resizeListeners__","keyframeprefix","animationstartevent","domPrefixes","startEvents","pfx","elm","animationName","animationKeyframes","animationStyle","createStyles","NetxDrag","initialized","stand_alone","$body","win_size","calculateBoundContainer","calculateScrollContainer","debouncedUpdateItems","overlapped","is_dragging","_updateStageSize","diff_top_correction","$boundContainer","_nsEvent","mutations","addedClassList","removedClassList","removedNodes","additions","removals","mutation","calculateScrollBoundOffset","isUndefined","pntr_evts","drag_start","_onDragStop","eStr","initMouseEvent","_getMousePos","originalEvent","oe","helperHeight","helperWidth","diff_x","diff_y","ms_actl_pos","adjustX","adjustY","$helper","el_init_os","win_scroll_x","win_scroll_y","_ignoreDrag","_manageScroll","_scrollIn","maxX","maxY","scrollIncrement","lingered","lingeredAlertTimer","el_init_pos","mouseMove","mse","distance","_onDragStart","_onDragMove","onDragHandler","dragstart","$curr_zones","zone","loitering","draggingClass","autoscroll","last_pos","prev_position","drag","dragend","allowNegative"],"mappings":"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,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,IAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAS,MAAS,MAAS,MAC3D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,KAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,M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","file":"29.bundle.min.js?2.22.31.f488ddff.1688766848291","sourcesContent":["(function ($) {\n\t'use strict';\n\n\t//\n\tif (!String.prototype.includes) {\n\t\t(function () {\n\t\t\t'use strict'; // needed to support `apply`/`call` with `undefined`/`null`\n\t\t\tvar toString = {}.toString;\n\t\t\tvar defineProperty = (function () {\n\t\t\t\t// IE 8 only supports `Object.defineProperty` on DOM elements\n\t\t\t\ttry {\n\t\t\t\t\tvar object = {};\n\t\t\t\t\tvar $defineProperty = Object.defineProperty;\n\t\t\t\t\tvar result =\n\t\t\t\t\t\t$defineProperty(object, object, object) && $defineProperty;\n\t\t\t\t} catch (error) {}\n\t\t\t\treturn result;\n\t\t\t})();\n\t\t\tvar indexOf = ''.indexOf;\n\t\t\tvar includes = function (search) {\n\t\t\t\tif (this == null) {\n\t\t\t\t\tthrow new TypeError();\n\t\t\t\t}\n\t\t\t\tvar string = String(this);\n\t\t\t\tif (search && toString.call(search) == '[object RegExp]') {\n\t\t\t\t\tthrow new TypeError();\n\t\t\t\t}\n\t\t\t\tvar stringLength = string.length;\n\t\t\t\tvar searchString = String(search);\n\t\t\t\tvar searchLength = searchString.length;\n\t\t\t\tvar position = arguments.length > 1 ? arguments[1] : undefined;\n\t\t\t\t// `ToInteger`\n\t\t\t\tvar pos = position ? Number(position) : 0;\n\t\t\t\tif (pos != pos) {\n\t\t\t\t\t// better `isNaN`\n\t\t\t\t\tpos = 0;\n\t\t\t\t}\n\t\t\t\tvar start = Math.min(Math.max(pos, 0), stringLength);\n\t\t\t\t// Avoid the `indexOf` call if no match is possible\n\t\t\t\tif (searchLength + start > stringLength) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\treturn indexOf.call(string, searchString, pos) != -1;\n\t\t\t};\n\t\t\tif (defineProperty) {\n\t\t\t\tdefineProperty(String.prototype, 'includes', {\n\t\t\t\t\tvalue: includes,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tString.prototype.includes = includes;\n\t\t\t}\n\t\t})();\n\t}\n\n\tif (!String.prototype.startsWith) {\n\t\t(function () {\n\t\t\t'use strict'; // needed to support `apply`/`call` with `undefined`/`null`\n\t\t\tvar defineProperty = (function () {\n\t\t\t\t// IE 8 only supports `Object.defineProperty` on DOM elements\n\t\t\t\ttry {\n\t\t\t\t\tvar object = {};\n\t\t\t\t\tvar $defineProperty = Object.defineProperty;\n\t\t\t\t\tvar result =\n\t\t\t\t\t\t$defineProperty(object, object, object) && $defineProperty;\n\t\t\t\t} catch (error) {}\n\t\t\t\treturn result;\n\t\t\t})();\n\t\t\tvar toString = {}.toString;\n\t\t\tvar startsWith = function (search) {\n\t\t\t\tif (this == null) {\n\t\t\t\t\tthrow new TypeError();\n\t\t\t\t}\n\t\t\t\tvar string = String(this);\n\t\t\t\tif (search && toString.call(search) == '[object RegExp]') {\n\t\t\t\t\tthrow new TypeError();\n\t\t\t\t}\n\t\t\t\tvar stringLength = string.length;\n\t\t\t\tvar searchString = String(search);\n\t\t\t\tvar searchLength = searchString.length;\n\t\t\t\tvar position = arguments.length > 1 ? arguments[1] : undefined;\n\t\t\t\t// `ToInteger`\n\t\t\t\tvar pos = position ? Number(position) : 0;\n\t\t\t\tif (pos != pos) {\n\t\t\t\t\t// better `isNaN`\n\t\t\t\t\tpos = 0;\n\t\t\t\t}\n\t\t\t\tvar start = Math.min(Math.max(pos, 0), stringLength);\n\t\t\t\t// Avoid the `indexOf` call if no match is possible\n\t\t\t\tif (searchLength + start > stringLength) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tvar index = -1;\n\t\t\t\twhile (++index < searchLength) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tstring.charCodeAt(start + index) != searchString.charCodeAt(index)\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t};\n\t\t\tif (defineProperty) {\n\t\t\t\tdefineProperty(String.prototype, 'startsWith', {\n\t\t\t\t\tvalue: startsWith,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tString.prototype.startsWith = startsWith;\n\t\t\t}\n\t\t})();\n\t}\n\n\tif (!Object.keys) {\n\t\tObject.keys = function (\n\t\t\to, // object\n\t\t\tk, // key\n\t\t\tr, // result array\n\t\t) {\n\t\t\t// initialize object and result\n\t\t\tr = [];\n\t\t\t// iterate over object keys\n\t\t\t// fill result array with non-prototypical keys\n\t\t\tfor (k in o) r.hasOwnProperty.call(o, k) && r.push(k);\n\t\t\t// return result\n\t\t\treturn r;\n\t\t};\n\t}\n\n\t// set data-selected on select element if the value has been programmatically selected\n\t// prior to initialization of bootstrap-select\n\t// * consider removing or replacing an alternative method *\n\tvar valHooks = {\n\t\tuseDefault: false,\n\t\t_set: $.valHooks.select.set,\n\t};\n\n\t$.valHooks.select.set = function (elem, value) {\n\t\tif (value && !valHooks.useDefault) $(elem).data('selected', true);\n\n\t\treturn valHooks._set.apply(this, arguments);\n\t};\n\n\tvar changed_arguments = null;\n\t$.fn.triggerNative = function (eventName) {\n\t\tvar el = this[0],\n\t\t\tevent;\n\n\t\tif (el.dispatchEvent) {\n\t\t\t// for modern browsers & IE9+\n\t\t\tif (typeof Event === 'function') {\n\t\t\t\t// For modern browsers\n\t\t\t\tevent = new Event(eventName, {\n\t\t\t\t\tbubbles: true,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// For IE since it doesn't support Event constructor\n\t\t\t\tevent = document.createEvent('Event');\n\t\t\t\tevent.initEvent(eventName, true, false);\n\t\t\t}\n\n\t\t\tel.dispatchEvent(event);\n\t\t} else if (el.fireEvent) {\n\t\t\t// for IE8\n\t\t\tevent = document.createEventObject();\n\t\t\tevent.eventType = eventName;\n\t\t\tel.fireEvent('on' + eventName, event);\n\t\t} else {\n\t\t\t// fall back to jQuery.trigger\n\t\t\tthis.trigger(eventName);\n\t\t}\n\t};\n\t//\n\n\t// Case insensitive contains search\n\t$.expr.pseudos.icontains = function (obj, index, meta) {\n\t\tvar $obj = $(obj).find('a');\n\t\tvar haystack = ($obj.data('tokens') || $obj.text())\n\t\t\t.toString()\n\t\t\t.toUpperCase();\n\t\treturn haystack.includes(meta[3].toUpperCase());\n\t};\n\n\t// Case insensitive begins search\n\t$.expr.pseudos.ibegins = function (obj, index, meta) {\n\t\tvar $obj = $(obj).find('a');\n\t\tvar haystack = ($obj.data('tokens') || $obj.text())\n\t\t\t.toString()\n\t\t\t.toUpperCase();\n\t\treturn haystack.startsWith(meta[3].toUpperCase());\n\t};\n\n\t// Case and accent insensitive contains search\n\t$.expr.pseudos.aicontains = function (obj, index, meta) {\n\t\tvar $obj = $(obj).find('a');\n\t\tvar haystack = (\n\t\t\t$obj.data('tokens') ||\n\t\t\t$obj.data('normalizedText') ||\n\t\t\t$obj.text()\n\t\t)\n\t\t\t.toString()\n\t\t\t.toUpperCase();\n\t\treturn haystack.includes(meta[3].toUpperCase());\n\t};\n\n\t// Case and accent insensitive begins search\n\t$.expr.pseudos.aibegins = function (obj, index, meta) {\n\t\tvar $obj = $(obj).find('a');\n\t\tvar haystack = (\n\t\t\t$obj.data('tokens') ||\n\t\t\t$obj.data('normalizedText') ||\n\t\t\t$obj.text()\n\t\t)\n\t\t\t.toString()\n\t\t\t.toUpperCase();\n\t\treturn haystack.startsWith(meta[3].toUpperCase());\n\t};\n\n\t/**\n\t * Remove all diatrics from the given text.\n\t * @access private\n\t * @param {String} text\n\t * @returns {String}\n\t */\n\tfunction normalizeToBase(text) {\n\t\tvar rExps = [\n\t\t\t{re: /[\\xC0-\\xC6]/g, ch: 'A'},\n\t\t\t{re: /[\\xE0-\\xE6]/g, ch: 'a'},\n\t\t\t{re: /[\\xC8-\\xCB]/g, ch: 'E'},\n\t\t\t{re: /[\\xE8-\\xEB]/g, ch: 'e'},\n\t\t\t{re: /[\\xCC-\\xCF]/g, ch: 'I'},\n\t\t\t{re: /[\\xEC-\\xEF]/g, ch: 'i'},\n\t\t\t{re: /[\\xD2-\\xD6]/g, ch: 'O'},\n\t\t\t{re: /[\\xF2-\\xF6]/g, ch: 'o'},\n\t\t\t{re: /[\\xD9-\\xDC]/g, ch: 'U'},\n\t\t\t{re: /[\\xF9-\\xFC]/g, ch: 'u'},\n\t\t\t{re: /[\\xC7-\\xE7]/g, ch: 'c'},\n\t\t\t{re: /[\\xD1]/g, ch: 'N'},\n\t\t\t{re: /[\\xF1]/g, ch: 'n'},\n\t\t];\n\t\t$.each(rExps, function () {\n\t\t\ttext = text ? text.replace(this.re, this.ch) : '';\n\t\t});\n\t\treturn text;\n\t}\n\n\t// List of HTML entities for escaping.\n\tvar escapeMap = {\n\t\t'&': '&',\n\t\t'<': '<',\n\t\t'>': '>',\n\t\t'\"': '"',\n\t\t\"'\": ''',\n\t\t'`': '`',\n\t};\n\n\tvar unescapeMap = {\n\t\t'&': '&',\n\t\t'<': '<',\n\t\t'>': '>',\n\t\t'"': '\"',\n\t\t''': \"'\",\n\t\t'`': '`',\n\t};\n\n\t// Functions for escaping and unescaping strings to/from HTML interpolation.\n\tvar createEscaper = function (map) {\n\t\tvar escaper = function (match) {\n\t\t\treturn map[match];\n\t\t};\n\t\t// Regexes for identifying a key that needs to be escaped.\n\t\tvar source = '(?:' + Object.keys(map).join('|') + ')';\n\t\tvar testRegexp = RegExp(source);\n\t\tvar replaceRegexp = RegExp(source, 'g');\n\t\treturn function (string) {\n\t\t\tstring = string == null ? '' : '' + string;\n\t\t\treturn testRegexp.test(string)\n\t\t\t\t? string.replace(replaceRegexp, escaper)\n\t\t\t\t: string;\n\t\t};\n\t};\n\n\tvar htmlEscape = createEscaper(escapeMap);\n\tvar htmlUnescape = createEscaper(unescapeMap);\n\n\tvar Selectpicker = function (element, options) {\n\t\t// bootstrap-select has been initialized - revert valHooks.select.set back to its original function\n\t\tif (!valHooks.useDefault) {\n\t\t\t$.valHooks.select.set = valHooks._set;\n\t\t\tvalHooks.useDefault = true;\n\t\t}\n\n\t\tthis.$element = $(element);\n\t\tthis.$newElement = null;\n\t\tthis.$button = null;\n\t\tthis.$menu = null;\n\t\tthis.$lis = null;\n\t\tthis.options = options;\n\n\t\t// If we have no title yet, try to pull it from the html title attribute (jQuery doesnt' pick it up as it's not a\n\t\t// data-attribute)\n\t\tif (this.options.title === null) {\n\t\t\tthis.options.title = this.$element.attr('title');\n\t\t}\n\n\t\t// Format window padding\n\t\tvar winPad = this.options.windowPadding;\n\t\tif (typeof winPad === 'number') {\n\t\t\tthis.options.windowPadding = [winPad, winPad, winPad, winPad];\n\t\t}\n\n\t\t//Expose public methods\n\t\tthis.val = Selectpicker.prototype.val;\n\t\tthis.render = Selectpicker.prototype.render;\n\t\tthis.refresh = Selectpicker.prototype.refresh;\n\t\tthis.setStyle = Selectpicker.prototype.setStyle;\n\t\tthis.selectAll = Selectpicker.prototype.selectAll;\n\t\tthis.deselectAll = Selectpicker.prototype.deselectAll;\n\t\tthis.destroy = Selectpicker.prototype.destroy;\n\t\tthis.remove = Selectpicker.prototype.remove;\n\t\tthis.show = Selectpicker.prototype.show;\n\t\tthis.hide = Selectpicker.prototype.hide;\n\n\t\tthis.init();\n\t};\n\n\tSelectpicker.VERSION = '1.12.2';\n\n\t// part of this is duplicated in i18n/defaults-en_US.js. Make sure to update both.\n\tSelectpicker.DEFAULTS = {\n\t\tnoneSelectedText: 'Nothing selected',\n\t\tnoneResultsText: 'No results matched {0}',\n\t\tcountSelectedText: function (numSelected, numTotal) {\n\t\t\treturn numSelected == 1 ? '{0} item selected' : '{0} items selected';\n\t\t},\n\t\tmaxOptionsText: function (numAll, numGroup) {\n\t\t\treturn [\n\t\t\t\tnumAll == 1\n\t\t\t\t\t? 'Limit reached ({n} item max)'\n\t\t\t\t\t: 'Limit reached ({n} items max)',\n\t\t\t\tnumGroup == 1\n\t\t\t\t\t? 'Group limit reached ({n} item max)'\n\t\t\t\t\t: 'Group limit reached ({n} items max)',\n\t\t\t];\n\t\t},\n\t\tselectAllText: 'Select All',\n\t\tdeselectAllText: 'Deselect All',\n\t\tdoneButton: false,\n\t\tdoneButtonText: 'Close',\n\t\tmultipleSeparator: ', ',\n\t\tstyleBase: 'btn',\n\t\tstyle: 'btn-default',\n\t\tsize: 'auto',\n\t\ttitle: null,\n\t\tselectedTextFormat: 'values',\n\t\twidth: false,\n\t\tcontainer: false,\n\t\thideDisabled: false,\n\t\tshowSubtext: false,\n\t\tshowIcon: true,\n\t\tshowContent: true,\n\t\tdropupAuto: true,\n\t\theader: false,\n\t\tliveSearch: false,\n\t\tliveSearchPlaceholder: null,\n\t\tliveSearchNormalize: false,\n\t\tliveSearchStyle: 'contains',\n\t\tactionsBox: false,\n\t\ticonBase: 'glyphicon',\n\t\ttickIcon: 'glyphicon-ok',\n\t\tshowTick: false,\n\t\ttemplate: {\n\t\t\tcaret: '',\n\t\t},\n\t\tmaxOptions: false,\n\t\tmobile: false,\n\t\tselectOnTab: false,\n\t\tdropdownAlignRight: false,\n\t\twindowPadding: 0,\n\t};\n\n\tSelectpicker.prototype = {\n\t\tconstructor: Selectpicker,\n\n\t\tinit: function () {\n\t\t\tvar that = this,\n\t\t\t\tid = this.$element.attr('id');\n\n\t\t\tthis.$element.addClass('bs-select-hidden');\n\n\t\t\t// store originalIndex (key) and newIndex (value) in this.liObj for fast accessibility\n\t\t\t// allows us to do this.$lis.eq(that.liObj[index]) instead of this.$lis.filter('[data-original-index=\"' + index + '\"]')\n\t\t\tthis.liObj = {};\n\t\t\tthis.multiple = this.$element.prop('multiple');\n\t\t\tthis.autofocus = this.$element.prop('autofocus');\n\t\t\tthis.$newElement = this.createView();\n\t\t\tthis.$element.after(this.$newElement).appendTo(this.$newElement);\n\t\t\tthis.$button = this.$newElement.children('button');\n\t\t\tthis.$menu = this.$newElement.children('.dropdown-menu');\n\t\t\tthis.$menuInner = this.$menu.children('.inner');\n\t\t\tthis.$searchbox = this.$menu.find('input');\n\n\t\t\tthis.$element.removeClass('bs-select-hidden');\n\n\t\t\tif (this.options.dropdownAlignRight === true)\n\t\t\t\tthis.$menu.addClass('dropdown-menu-right');\n\n\t\t\tif (typeof id !== 'undefined') {\n\t\t\t\tthis.$button.attr('data-id', id);\n\t\t\t\t$('label[for=\"' + id + '\"]').click(function (e) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tthat.$button.focus();\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.checkDisabled();\n\t\t\tthis.clickListener();\n\t\t\tif (this.options.liveSearch) this.liveSearchListener();\n\t\t\tthis.render();\n\t\t\tthis.setStyle();\n\t\t\tthis.setWidth();\n\t\t\tif (this.options.container) this.selectPosition();\n\t\t\tthis.$menu.data('this', this);\n\t\t\tthis.$newElement.data('this', this);\n\t\t\tif (this.options.mobile) this.mobile();\n\n\t\t\tthis.$newElement.on({\n\t\t\t\t'hide.bs.dropdown': function (e) {\n\t\t\t\t\tthat.$menuInner.attr('aria-expanded', false);\n\t\t\t\t\tthat.$element.trigger('hide.bs.select', e);\n\t\t\t\t},\n\t\t\t\t'hidden.bs.dropdown': function (e) {\n\t\t\t\t\tthat.$element.trigger('hidden.bs.select', e);\n\t\t\t\t},\n\t\t\t\t'show.bs.dropdown': function (e) {\n\t\t\t\t\tthat.$menuInner.attr('aria-expanded', true);\n\t\t\t\t\tthat.$element.trigger('show.bs.select', e);\n\t\t\t\t},\n\t\t\t\t'shown.bs.dropdown': function (e) {\n\t\t\t\t\tthat.$element.trigger('shown.bs.select', e);\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tif (that.$element[0].hasAttribute('required')) {\n\t\t\t\tthis.$element.on('invalid', function () {\n\t\t\t\t\tthat.$button.addClass('bs-invalid').focus();\n\n\t\t\t\t\tthat.$element.on({\n\t\t\t\t\t\t'focus.bs.select': function () {\n\t\t\t\t\t\t\tthat.$button.focus();\n\t\t\t\t\t\t\tthat.$element.off('focus.bs.select');\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'shown.bs.select': function () {\n\t\t\t\t\t\t\tthat.$element\n\t\t\t\t\t\t\t\t.val(that.$element.val()) // set the value to hide the validation message in Chrome when menu is opened\n\t\t\t\t\t\t\t\t.off('shown.bs.select');\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'rendered.bs.select': function () {\n\t\t\t\t\t\t\t// if select is no longer invalid, remove the bs-invalid class\n\t\t\t\t\t\t\tif (this.validity.valid) that.$button.removeClass('bs-invalid');\n\t\t\t\t\t\t\tthat.$element.off('rendered.bs.select');\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tsetTimeout(function () {\n\t\t\t\tthat.$element.trigger('loaded.bs.select');\n\t\t\t});\n\t\t},\n\n\t\tcreateDropdown: function () {\n\t\t\t// Options\n\t\t\t// If we are multiple or showTick option is set, then add the show-tick class\n\t\t\tvar showTick = this.multiple || this.options.showTick ? ' show-tick' : '',\n\t\t\t\tinputGroup = this.$element.parent().hasClass('input-group')\n\t\t\t\t\t? ' input-group-btn'\n\t\t\t\t\t: '',\n\t\t\t\tautofocus = this.autofocus ? ' autofocus' : '';\n\t\t\t// Elements\n\t\t\tvar header = this.options.header\n\t\t\t\t? '
' +\n\t\t\t\t this.options.header +\n\t\t\t\t '
'\n\t\t\t\t: '';\n\t\t\tvar searchbox = this.options.liveSearch\n\t\t\t\t? '
' +\n\t\t\t\t '' +\n\t\t\t\t '
'\n\t\t\t\t: '';\n\t\t\tvar actionsbox =\n\t\t\t\tthis.multiple && this.options.actionsBox\n\t\t\t\t\t? '
' +\n\t\t\t\t\t '
' +\n\t\t\t\t\t '' +\n\t\t\t\t\t '' +\n\t\t\t\t\t '
' +\n\t\t\t\t\t '
'\n\t\t\t\t\t: '';\n\t\t\tvar donebutton =\n\t\t\t\tthis.multiple && this.options.doneButton\n\t\t\t\t\t? '
' +\n\t\t\t\t\t '
' +\n\t\t\t\t\t '' +\n\t\t\t\t\t '
' +\n\t\t\t\t\t '
'\n\t\t\t\t\t: '';\n\t\t\tvar drop =\n\t\t\t\t'
' +\n\t\t\t\t'' +\n\t\t\t\t'
' +\n\t\t\t\theader +\n\t\t\t\tsearchbox +\n\t\t\t\tactionsbox +\n\t\t\t\t'' +\n\t\t\t\tdonebutton +\n\t\t\t\t'
' +\n\t\t\t\t'
';\n\n\t\t\treturn $(drop);\n\t\t},\n\n\t\tcreateView: function () {\n\t\t\tvar $drop = this.createDropdown(),\n\t\t\t\tli = this.createLi();\n\n\t\t\t$drop.find('ul')[0].innerHTML = li;\n\t\t\treturn $drop;\n\t\t},\n\n\t\treloadLi: function () {\n\t\t\t// rebuild\n\t\t\tvar li = this.createLi();\n\t\t\tthis.$menuInner[0].innerHTML = li;\n\t\t},\n\n\t\tcreateLi: function () {\n\t\t\tvar that = this,\n\t\t\t\t_li = [],\n\t\t\t\toptID = 0,\n\t\t\t\ttitleOption = document.createElement('option'),\n\t\t\t\tliIndex = -1; // increment liIndex whenever a new
  • element is created to ensure liObj is correct\n\n\t\t\t// Helper functions\n\t\t\t/**\n\t\t\t * @param content\n\t\t\t * @param [index]\n\t\t\t * @param [classes]\n\t\t\t * @param [optgroup]\n\t\t\t * @returns {string}\n\t\t\t */\n\t\t\tvar generateLI = function (content, index, classes, optgroup) {\n\t\t\t\treturn (\n\t\t\t\t\t'' +\n\t\t\t\t\tcontent +\n\t\t\t\t\t'
  • '\n\t\t\t\t);\n\t\t\t};\n\n\t\t\t/**\n\t\t\t * @param text\n\t\t\t * @param [classes]\n\t\t\t * @param [inline]\n\t\t\t * @param [tokens]\n\t\t\t * @returns {string}\n\t\t\t */\n\t\t\tvar generateA = function (text, classes, inline, tokens) {\n\t\t\t\treturn (\n\t\t\t\t\t'' +\n\t\t\t\t\ttext +\n\t\t\t\t\t'' +\n\t\t\t\t\t''\n\t\t\t\t);\n\t\t\t};\n\n\t\t\tif (this.options.title && !this.multiple) {\n\t\t\t\t// this option doesn't create a new
  • element, but does add a new option, so liIndex is decreased\n\t\t\t\t// since liObj is recalculated on every refresh, liIndex needs to be decreased even if the titleOption is already appended\n\t\t\t\tliIndex--;\n\n\t\t\t\tif (!this.$element.find('.bs-title-option').length) {\n\t\t\t\t\t// Use native JS to prepend option (faster)\n\t\t\t\t\tvar element = this.$element[0];\n\t\t\t\t\ttitleOption.className = 'bs-title-option';\n\t\t\t\t\ttitleOption.innerHTML = this.options.title;\n\t\t\t\t\ttitleOption.value = '';\n\t\t\t\t\telement.insertBefore(titleOption, element.firstChild);\n\t\t\t\t\t// Check if selected or data-selected attribute is already set on an option. If not, select the titleOption option.\n\t\t\t\t\t// the selected item may have been changed by user or programmatically before the bootstrap select plugin runs,\n\t\t\t\t\t// if so, the select will have the data-selected attribute\n\t\t\t\t\tvar $opt = $(element.options[element.selectedIndex]);\n\t\t\t\t\tif (\n\t\t\t\t\t\t$opt.attr('selected') === undefined &&\n\t\t\t\t\t\tthis.$element.data('selected') === undefined\n\t\t\t\t\t) {\n\t\t\t\t\t\ttitleOption.selected = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar $selectOptions = this.$element.find('option');\n\n\t\t\t$selectOptions.each(function (index) {\n\t\t\t\tvar $this = $(this);\n\n\t\t\t\tliIndex++;\n\n\t\t\t\tif ($this.hasClass('bs-title-option')) return;\n\n\t\t\t\t// Get the class and text for the option\n\t\t\t\tvar optionClass = this.className || '',\n\t\t\t\t\tinline = htmlEscape(this.style.cssText),\n\t\t\t\t\ttext = $this.data('content') ? $this.data('content') : $this.html(),\n\t\t\t\t\ttokens = $this.data('tokens') ? $this.data('tokens') : null,\n\t\t\t\t\tsubtext =\n\t\t\t\t\t\ttypeof $this.data('subtext') !== 'undefined'\n\t\t\t\t\t\t\t? '' +\n\t\t\t\t\t\t\t $this.data('subtext') +\n\t\t\t\t\t\t\t ''\n\t\t\t\t\t\t\t: '',\n\t\t\t\t\ticon =\n\t\t\t\t\t\ttypeof $this.data('icon') !== 'undefined'\n\t\t\t\t\t\t\t? ' '\n\t\t\t\t\t\t\t: '',\n\t\t\t\t\t$parent = $this.parent(),\n\t\t\t\t\tisOptgroup = $parent[0].tagName === 'OPTGROUP',\n\t\t\t\t\tisOptgroupDisabled = isOptgroup && $parent[0].disabled,\n\t\t\t\t\tisDisabled = this.disabled || isOptgroupDisabled,\n\t\t\t\t\tprevHiddenIndex;\n\n\t\t\t\tif (icon !== '' && isDisabled) {\n\t\t\t\t\ticon = '' + icon + '';\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\tthat.options.hideDisabled &&\n\t\t\t\t\t((isDisabled && !isOptgroup) || isOptgroupDisabled)\n\t\t\t\t) {\n\t\t\t\t\t// set prevHiddenIndex - the index of the first hidden option in a group of hidden options\n\t\t\t\t\t// used to determine whether or not a divider should be placed after an optgroup if there are\n\t\t\t\t\t// hidden options between the optgroup and the first visible option\n\t\t\t\t\tprevHiddenIndex = $this.data('prevHiddenIndex');\n\t\t\t\t\t$this\n\t\t\t\t\t\t.next()\n\t\t\t\t\t\t.data(\n\t\t\t\t\t\t\t'prevHiddenIndex',\n\t\t\t\t\t\t\tprevHiddenIndex !== undefined ? prevHiddenIndex : index,\n\t\t\t\t\t\t);\n\n\t\t\t\t\tliIndex--;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!$this.data('content')) {\n\t\t\t\t\t// Prepend any icon and append any subtext to the main text.\n\t\t\t\t\ttext = icon + '' + text + subtext + '';\n\t\t\t\t}\n\n\t\t\t\tif (isOptgroup && $this.data('divider') !== true) {\n\t\t\t\t\tif (that.options.hideDisabled && isDisabled) {\n\t\t\t\t\t\tif ($parent.data('allOptionsDisabled') === undefined) {\n\t\t\t\t\t\t\tvar $options = $parent.children();\n\t\t\t\t\t\t\t$parent.data(\n\t\t\t\t\t\t\t\t'allOptionsDisabled',\n\t\t\t\t\t\t\t\t$options.filter(':disabled').length === $options.length,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ($parent.data('allOptionsDisabled')) {\n\t\t\t\t\t\t\tliIndex--;\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tvar optGroupClass = ' ' + $parent[0].className || '';\n\n\t\t\t\t\tif ($this.index() === 0) {\n\t\t\t\t\t\t// Is it the first option of the optgroup?\n\t\t\t\t\t\toptID += 1;\n\n\t\t\t\t\t\t// Get the opt group label\n\t\t\t\t\t\tvar label = $parent[0].label,\n\t\t\t\t\t\t\tlabelSubtext =\n\t\t\t\t\t\t\t\ttypeof $parent.data('subtext') !== 'undefined'\n\t\t\t\t\t\t\t\t\t? '' +\n\t\t\t\t\t\t\t\t\t $parent.data('subtext') +\n\t\t\t\t\t\t\t\t\t ''\n\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\tlabelIcon = $parent.data('icon')\n\t\t\t\t\t\t\t\t? ' '\n\t\t\t\t\t\t\t\t: '';\n\n\t\t\t\t\t\tlabel =\n\t\t\t\t\t\t\tlabelIcon +\n\t\t\t\t\t\t\t'' +\n\t\t\t\t\t\t\thtmlEscape(label) +\n\t\t\t\t\t\t\tlabelSubtext +\n\t\t\t\t\t\t\t'';\n\n\t\t\t\t\t\tif (index !== 0 && _li.length > 0) {\n\t\t\t\t\t\t\t// Is it NOT the first option of the select && are there elements in the dropdown?\n\t\t\t\t\t\t\tliIndex++;\n\t\t\t\t\t\t\t_li.push(generateLI('', null, 'divider', optID + 'div'));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tliIndex++;\n\t\t\t\t\t\t_li.push(\n\t\t\t\t\t\t\tgenerateLI(label, null, 'dropdown-header' + optGroupClass, optID),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (that.options.hideDisabled && isDisabled) {\n\t\t\t\t\t\tliIndex--;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t_li.push(\n\t\t\t\t\t\tgenerateLI(\n\t\t\t\t\t\t\tgenerateA(\n\t\t\t\t\t\t\t\ttext,\n\t\t\t\t\t\t\t\t'opt ' + optionClass + optGroupClass,\n\t\t\t\t\t\t\t\tinline,\n\t\t\t\t\t\t\t\ttokens,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tindex,\n\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\toptID,\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t} else if ($this.data('divider') === true) {\n\t\t\t\t\t_li.push(generateLI('', index, 'divider'));\n\t\t\t\t} else if ($this.data('hidden') === true) {\n\t\t\t\t\t// set prevHiddenIndex - the index of the first hidden option in a group of hidden options\n\t\t\t\t\t// used to determine whether or not a divider should be placed after an optgroup if there are\n\t\t\t\t\t// hidden options between the optgroup and the first visible option\n\t\t\t\t\tprevHiddenIndex = $this.data('prevHiddenIndex');\n\t\t\t\t\t$this\n\t\t\t\t\t\t.next()\n\t\t\t\t\t\t.data(\n\t\t\t\t\t\t\t'prevHiddenIndex',\n\t\t\t\t\t\t\tprevHiddenIndex !== undefined ? prevHiddenIndex : index,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t_li.push(\n\t\t\t\t\t\tgenerateLI(\n\t\t\t\t\t\t\tgenerateA(text, optionClass, inline, tokens),\n\t\t\t\t\t\t\tindex,\n\t\t\t\t\t\t\t'hidden is-hidden',\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tvar showDivider =\n\t\t\t\t\t\tthis.previousElementSibling &&\n\t\t\t\t\t\tthis.previousElementSibling.tagName === 'OPTGROUP';\n\n\t\t\t\t\t// if previous element is not an optgroup and hideDisabled is true\n\t\t\t\t\tif (!showDivider && that.options.hideDisabled) {\n\t\t\t\t\t\tprevHiddenIndex = $this.data('prevHiddenIndex');\n\n\t\t\t\t\t\tif (prevHiddenIndex !== undefined) {\n\t\t\t\t\t\t\t// select the element **before** the first hidden element in the group\n\t\t\t\t\t\t\tvar prevHidden = $selectOptions.eq(prevHiddenIndex)[0]\n\t\t\t\t\t\t\t\t.previousElementSibling;\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tprevHidden &&\n\t\t\t\t\t\t\t\tprevHidden.tagName === 'OPTGROUP' &&\n\t\t\t\t\t\t\t\t!prevHidden.disabled\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tshowDivider = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (showDivider) {\n\t\t\t\t\t\tliIndex++;\n\t\t\t\t\t\t_li.push(generateLI('', null, 'divider', optID + 'div'));\n\t\t\t\t\t}\n\t\t\t\t\t_li.push(\n\t\t\t\t\t\tgenerateLI(generateA(text, optionClass, inline, tokens), index),\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tthat.liObj[index] = liIndex;\n\t\t\t});\n\n\t\t\t//If we are not multiple, we don't have a selected item, and we don't have a title, select the first element so something is set in the button\n\t\t\tif (\n\t\t\t\t!this.multiple &&\n\t\t\t\tthis.$element.find('option:selected').length === 0 &&\n\t\t\t\t!this.options.title\n\t\t\t) {\n\t\t\t\tthis.$element\n\t\t\t\t\t.find('option')\n\t\t\t\t\t.eq(0)\n\t\t\t\t\t.prop('selected', true)\n\t\t\t\t\t.attr('selected', 'selected');\n\t\t\t}\n\n\t\t\treturn _li.join('');\n\t\t},\n\n\t\tfindLis: function () {\n\t\t\tif (this.$lis == null) this.$lis = this.$menu.find('li');\n\t\t\treturn this.$lis;\n\t\t},\n\n\t\t/**\n\t\t * @param [updateLi] defaults to true\n\t\t */\n\t\trender: function (updateLi) {\n\t\t\tvar that = this,\n\t\t\t\tnotDisabled,\n\t\t\t\t$selectOptions = this.$element.find('option');\n\n\t\t\t//Update the LI to match the SELECT\n\t\t\tif (updateLi !== false) {\n\t\t\t\t$selectOptions.each(function (index) {\n\t\t\t\t\tvar $lis = that.findLis().eq(that.liObj[index]);\n\n\t\t\t\t\tthat.setDisabled(\n\t\t\t\t\t\tindex,\n\t\t\t\t\t\tthis.disabled ||\n\t\t\t\t\t\t\t(this.parentNode.tagName === 'OPTGROUP' &&\n\t\t\t\t\t\t\t\tthis.parentNode.disabled),\n\t\t\t\t\t\t$lis,\n\t\t\t\t\t);\n\t\t\t\t\tthat.setSelected(index, this.selected, $lis);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.togglePlaceholder();\n\n\t\t\tthis.tabIndex();\n\n\t\t\tvar selectedItems = $selectOptions\n\t\t\t\t.map(function () {\n\t\t\t\t\tif (this.selected) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tthat.options.hideDisabled &&\n\t\t\t\t\t\t\t(this.disabled ||\n\t\t\t\t\t\t\t\t(this.parentNode.tagName === 'OPTGROUP' &&\n\t\t\t\t\t\t\t\t\tthis.parentNode.disabled))\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\tvar $this = $(this),\n\t\t\t\t\t\t\ticon =\n\t\t\t\t\t\t\t\t$this.data('icon') && that.options.showIcon\n\t\t\t\t\t\t\t\t\t? ' '\n\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\tsubtext;\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tthat.options.showSubtext &&\n\t\t\t\t\t\t\t$this.data('subtext') &&\n\t\t\t\t\t\t\t!that.multiple\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tsubtext =\n\t\t\t\t\t\t\t\t' ' +\n\t\t\t\t\t\t\t\t$this.data('subtext') +\n\t\t\t\t\t\t\t\t'';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsubtext = '';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (typeof $this.attr('title') !== 'undefined') {\n\t\t\t\t\t\t\treturn $this.attr('title');\n\t\t\t\t\t\t} else if ($this.data('content') && that.options.showContent) {\n\t\t\t\t\t\t\treturn $this.data('content').toString();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn icon + $this.html() + subtext;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.toArray();\n\n\t\t\t//Fixes issue in IE10 occurring when no default option is selected and at least one option is disabled\n\t\t\t//Convert all the values into a comma delimited string\n\t\t\tvar title = !this.multiple\n\t\t\t\t? selectedItems[0]\n\t\t\t\t: selectedItems.join(this.options.multipleSeparator);\n\n\t\t\t//If this is multi select, and the selectText type is count, the show 1 of 2 selected etc..\n\t\t\tif (\n\t\t\t\tthis.multiple &&\n\t\t\t\tthis.options.selectedTextFormat.indexOf('count') > -1\n\t\t\t) {\n\t\t\t\tvar max = this.options.selectedTextFormat.split('>');\n\t\t\t\tif (\n\t\t\t\t\t(max.length > 1 && selectedItems.length > max[1]) ||\n\t\t\t\t\t(max.length == 1 && selectedItems.length >= 2)\n\t\t\t\t) {\n\t\t\t\t\tnotDisabled = this.options.hideDisabled ? ', [disabled]' : '';\n\t\t\t\t\tvar totalCount = $selectOptions.not(\n\t\t\t\t\t\t\t'[data-divider=\"true\"], [data-hidden=\"true\"]' + notDisabled,\n\t\t\t\t\t\t).length,\n\t\t\t\t\t\ttr8nText =\n\t\t\t\t\t\t\ttypeof this.options.countSelectedText === 'function'\n\t\t\t\t\t\t\t\t? this.options.countSelectedText(\n\t\t\t\t\t\t\t\t\t\tselectedItems.length,\n\t\t\t\t\t\t\t\t\t\ttotalCount,\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: this.options.countSelectedText;\n\t\t\t\t\ttitle = tr8nText\n\t\t\t\t\t\t.replace('{0}', selectedItems.length.toString())\n\t\t\t\t\t\t.replace('{1}', totalCount.toString());\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.options.title == undefined) {\n\t\t\t\tthis.options.title = this.$element.attr('title');\n\t\t\t}\n\n\t\t\tif (this.options.selectedTextFormat == 'static') {\n\t\t\t\ttitle = this.options.title;\n\t\t\t}\n\n\t\t\t//If we dont have a title, then use the default, or if nothing is set at all, use the not selected text\n\t\t\tif (!title) {\n\t\t\t\ttitle =\n\t\t\t\t\ttypeof this.options.title !== 'undefined'\n\t\t\t\t\t\t? this.options.title\n\t\t\t\t\t\t: this.options.noneSelectedText;\n\t\t\t}\n\n\t\t\t//strip all HTML tags and trim the result, then unescape any escaped tags\n\t\t\tthis.$button.attr(\n\t\t\t\t'title',\n\t\t\t\thtmlUnescape($.trim(title.replace(/<[^>]*>?/g, ''))),\n\t\t\t);\n\t\t\tthis.$button.children('.filter-option').html(title);\n\n\t\t\tthis.$element.trigger('rendered.bs.select');\n\t\t},\n\n\t\t/**\n\t\t * @param [style]\n\t\t * @param [status]\n\t\t */\n\t\tsetStyle: function (style, status) {\n\t\t\tif (this.$element.attr('class')) {\n\t\t\t\tthis.$newElement.addClass(\n\t\t\t\t\tthis.$element\n\t\t\t\t\t\t.attr('class')\n\t\t\t\t\t\t.replace(\n\t\t\t\t\t\t\t/selectpicker|mobile-device|bs-select-hidden|validate\\[.*\\]/gi,\n\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tvar buttonClass = style ? style : this.options.style;\n\n\t\t\tif (status == 'add') {\n\t\t\t\tthis.$button.addClass(buttonClass);\n\t\t\t} else if (status == 'remove') {\n\t\t\t\tthis.$button.removeClass(buttonClass);\n\t\t\t} else {\n\t\t\t\tthis.$button.removeClass(this.options.style);\n\t\t\t\tthis.$button.addClass(buttonClass);\n\t\t\t}\n\t\t},\n\n\t\tliHeight: function (refresh) {\n\t\t\tif (!refresh && (this.options.size === false || this.sizeInfo)) return;\n\n\t\t\tvar newElement = document.createElement('div'),\n\t\t\t\tmenu = document.createElement('div'),\n\t\t\t\tmenuInner = document.createElement('ul'),\n\t\t\t\tdivider = document.createElement('li'),\n\t\t\t\tli = document.createElement('li'),\n\t\t\t\ta = document.createElement('a'),\n\t\t\t\ttext = document.createElement('span'),\n\t\t\t\theader =\n\t\t\t\t\tthis.options.header && this.$menu.find('.popover-title').length > 0\n\t\t\t\t\t\t? this.$menu.find('.popover-title')[0].cloneNode(true)\n\t\t\t\t\t\t: null,\n\t\t\t\tsearch = this.options.liveSearch ? document.createElement('div') : null,\n\t\t\t\tactions =\n\t\t\t\t\tthis.options.actionsBox &&\n\t\t\t\t\tthis.multiple &&\n\t\t\t\t\tthis.$menu.find('.bs-actionsbox').length > 0\n\t\t\t\t\t\t? this.$menu.find('.bs-actionsbox')[0].cloneNode(true)\n\t\t\t\t\t\t: null,\n\t\t\t\tdoneButton =\n\t\t\t\t\tthis.options.doneButton &&\n\t\t\t\t\tthis.multiple &&\n\t\t\t\t\tthis.$menu.find('.bs-donebutton').length > 0\n\t\t\t\t\t\t? this.$menu.find('.bs-donebutton')[0].cloneNode(true)\n\t\t\t\t\t\t: null;\n\n\t\t\ttext.className = 'text';\n\t\t\tnewElement.className = this.$menu[0].parentNode.className + ' open';\n\t\t\tmenu.className = 'dropdown-menu open';\n\t\t\tmenuInner.className = 'dropdown-menu inner';\n\t\t\tdivider.className = 'divider';\n\n\t\t\ttext.appendChild(document.createTextNode('Inner text'));\n\t\t\ta.appendChild(text);\n\t\t\tli.appendChild(a);\n\t\t\tmenuInner.appendChild(li);\n\t\t\tmenuInner.appendChild(divider);\n\t\t\tif (header) menu.appendChild(header);\n\t\t\tif (search) {\n\t\t\t\tvar input = document.createElement('input');\n\t\t\t\tsearch.className = 'bs-searchbox';\n\t\t\t\tinput.className = 'form-control';\n\t\t\t\tsearch.appendChild(input);\n\t\t\t\tmenu.appendChild(search);\n\t\t\t}\n\t\t\tif (actions) menu.appendChild(actions);\n\t\t\tmenu.appendChild(menuInner);\n\t\t\tif (doneButton) menu.appendChild(doneButton);\n\t\t\tnewElement.appendChild(menu);\n\n\t\t\tdocument.body.appendChild(newElement);\n\n\t\t\tvar liHeight = a.offsetHeight,\n\t\t\t\theaderHeight = header ? header.offsetHeight : 0,\n\t\t\t\tsearchHeight = search ? search.offsetHeight : 0,\n\t\t\t\tactionsHeight = actions ? actions.offsetHeight : 0,\n\t\t\t\tdoneButtonHeight = doneButton ? doneButton.offsetHeight : 0,\n\t\t\t\tdividerHeight = $(divider).outerHeight(true),\n\t\t\t\t// fall back to jQuery if getComputedStyle is not supported\n\t\t\t\tmenuStyle =\n\t\t\t\t\ttypeof getComputedStyle === 'function'\n\t\t\t\t\t\t? getComputedStyle(menu)\n\t\t\t\t\t\t: false,\n\t\t\t\t$menu = menuStyle ? null : $(menu),\n\t\t\t\tmenuPadding = {\n\t\t\t\t\tvert:\n\t\t\t\t\t\tparseInt(\n\t\t\t\t\t\t\tmenuStyle ? menuStyle.paddingTop : $menu.css('paddingTop'),\n\t\t\t\t\t\t) +\n\t\t\t\t\t\tparseInt(\n\t\t\t\t\t\t\tmenuStyle ? menuStyle.paddingBottom : $menu.css('paddingBottom'),\n\t\t\t\t\t\t) +\n\t\t\t\t\t\tparseInt(\n\t\t\t\t\t\t\tmenuStyle\n\t\t\t\t\t\t\t\t? menuStyle.borderTopWidth\n\t\t\t\t\t\t\t\t: $menu.css('borderTopWidth'),\n\t\t\t\t\t\t) +\n\t\t\t\t\t\tparseInt(\n\t\t\t\t\t\t\tmenuStyle\n\t\t\t\t\t\t\t\t? menuStyle.borderBottomWidth\n\t\t\t\t\t\t\t\t: $menu.css('borderBottomWidth'),\n\t\t\t\t\t\t),\n\t\t\t\t\thoriz:\n\t\t\t\t\t\tparseInt(\n\t\t\t\t\t\t\tmenuStyle ? menuStyle.paddingLeft : $menu.css('paddingLeft'),\n\t\t\t\t\t\t) +\n\t\t\t\t\t\tparseInt(\n\t\t\t\t\t\t\tmenuStyle ? menuStyle.paddingRight : $menu.css('paddingRight'),\n\t\t\t\t\t\t) +\n\t\t\t\t\t\tparseInt(\n\t\t\t\t\t\t\tmenuStyle\n\t\t\t\t\t\t\t\t? menuStyle.borderLeftWidth\n\t\t\t\t\t\t\t\t: $menu.css('borderLeftWidth'),\n\t\t\t\t\t\t) +\n\t\t\t\t\t\tparseInt(\n\t\t\t\t\t\t\tmenuStyle\n\t\t\t\t\t\t\t\t? menuStyle.borderRightWidth\n\t\t\t\t\t\t\t\t: $menu.css('borderRightWidth'),\n\t\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tmenuExtras = {\n\t\t\t\t\tvert:\n\t\t\t\t\t\tmenuPadding.vert +\n\t\t\t\t\t\tparseInt(menuStyle ? menuStyle.marginTop : $menu.css('marginTop')) +\n\t\t\t\t\t\tparseInt(\n\t\t\t\t\t\t\tmenuStyle ? menuStyle.marginBottom : $menu.css('marginBottom'),\n\t\t\t\t\t\t) +\n\t\t\t\t\t\t2,\n\t\t\t\t\thoriz:\n\t\t\t\t\t\tmenuPadding.horiz +\n\t\t\t\t\t\tparseInt(\n\t\t\t\t\t\t\tmenuStyle ? menuStyle.marginLeft : $menu.css('marginLeft'),\n\t\t\t\t\t\t) +\n\t\t\t\t\t\tparseInt(\n\t\t\t\t\t\t\tmenuStyle ? menuStyle.marginRight : $menu.css('marginRight'),\n\t\t\t\t\t\t) +\n\t\t\t\t\t\t2,\n\t\t\t\t};\n\n\t\t\tdocument.body.removeChild(newElement);\n\n\t\t\tthis.sizeInfo = {\n\t\t\t\tliHeight: liHeight,\n\t\t\t\theaderHeight: headerHeight,\n\t\t\t\tsearchHeight: searchHeight,\n\t\t\t\tactionsHeight: actionsHeight,\n\t\t\t\tdoneButtonHeight: doneButtonHeight,\n\t\t\t\tdividerHeight: dividerHeight,\n\t\t\t\tmenuPadding: menuPadding,\n\t\t\t\tmenuExtras: menuExtras,\n\t\t\t};\n\t\t},\n\n\t\tsetSize: function () {\n\t\t\tthis.findLis();\n\t\t\tthis.liHeight();\n\n\t\t\tif (this.options.header) this.$menu.css('padding-top', 0);\n\t\t\tif (this.options.size === false) return;\n\n\t\t\tvar that = this,\n\t\t\t\t$menu = this.$menu,\n\t\t\t\t$menuInner = this.$menuInner,\n\t\t\t\t$window = $(window),\n\t\t\t\tselectHeight = this.$newElement[0].offsetHeight,\n\t\t\t\tselectWidth = this.$newElement[0].offsetWidth,\n\t\t\t\tliHeight = this.sizeInfo['liHeight'],\n\t\t\t\theaderHeight = this.sizeInfo['headerHeight'],\n\t\t\t\tsearchHeight = this.sizeInfo['searchHeight'],\n\t\t\t\tactionsHeight = this.sizeInfo['actionsHeight'],\n\t\t\t\tdoneButtonHeight = this.sizeInfo['doneButtonHeight'],\n\t\t\t\tdivHeight = this.sizeInfo['dividerHeight'],\n\t\t\t\tmenuPadding = this.sizeInfo['menuPadding'],\n\t\t\t\tmenuExtras = this.sizeInfo['menuExtras'],\n\t\t\t\tnotDisabled = this.options.hideDisabled ? '.disabled' : '',\n\t\t\t\tmenuHeight,\n\t\t\t\tmenuWidth,\n\t\t\t\tgetHeight,\n\t\t\t\tgetWidth,\n\t\t\t\tselectOffsetTop,\n\t\t\t\tselectOffsetBot,\n\t\t\t\tselectOffsetLeft,\n\t\t\t\tselectOffsetRight,\n\t\t\t\tgetPos = function () {\n\t\t\t\t\tvar pos = that.$newElement.offset(),\n\t\t\t\t\t\t$container = $(that.options.container),\n\t\t\t\t\t\tcontainerPos;\n\n\t\t\t\t\tif (that.options.container && !$container.is('body')) {\n\t\t\t\t\t\tcontainerPos = $container.offset();\n\t\t\t\t\t\tcontainerPos.top += parseInt($container.css('borderTopWidth'));\n\t\t\t\t\t\tcontainerPos.left += parseInt($container.css('borderLeftWidth'));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontainerPos = {top: 0, left: 0};\n\t\t\t\t\t}\n\n\t\t\t\t\tvar winPad = that.options.windowPadding;\n\t\t\t\t\tselectOffsetTop = pos.top - containerPos.top - $window.scrollTop();\n\t\t\t\t\tselectOffsetBot =\n\t\t\t\t\t\t$window.height() -\n\t\t\t\t\t\tselectOffsetTop -\n\t\t\t\t\t\tselectHeight -\n\t\t\t\t\t\tcontainerPos.top -\n\t\t\t\t\t\twinPad[2];\n\t\t\t\t\tselectOffsetLeft =\n\t\t\t\t\t\tpos.left - containerPos.left - $window.scrollLeft();\n\t\t\t\t\tselectOffsetRight =\n\t\t\t\t\t\t$window.width() -\n\t\t\t\t\t\tselectOffsetLeft -\n\t\t\t\t\t\tselectWidth -\n\t\t\t\t\t\tcontainerPos.left -\n\t\t\t\t\t\twinPad[1];\n\t\t\t\t\tselectOffsetTop -= winPad[0];\n\t\t\t\t\tselectOffsetLeft -= winPad[3];\n\t\t\t\t};\n\n\t\t\tgetPos();\n\n\t\t\tif (this.options.size === 'auto') {\n\t\t\t\tvar getSize = function () {\n\t\t\t\t\tvar minHeight,\n\t\t\t\t\t\thasClass = function (className, include) {\n\t\t\t\t\t\t\treturn function (element) {\n\t\t\t\t\t\t\t\tif (include) {\n\t\t\t\t\t\t\t\t\treturn element.classList\n\t\t\t\t\t\t\t\t\t\t? element.classList.contains(className)\n\t\t\t\t\t\t\t\t\t\t: $(element).hasClass(className);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\treturn !(element.classList\n\t\t\t\t\t\t\t\t\t\t? element.classList.contains(className)\n\t\t\t\t\t\t\t\t\t\t: $(element).hasClass(className));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlis = that.$menuInner[0].getElementsByTagName('li'),\n\t\t\t\t\t\tlisVisible = Array.prototype.filter\n\t\t\t\t\t\t\t? Array.prototype.filter.call(lis, hasClass('hidden', false))\n\t\t\t\t\t\t\t: that.$lis.not('.hidden'),\n\t\t\t\t\t\toptGroup = Array.prototype.filter\n\t\t\t\t\t\t\t? Array.prototype.filter.call(\n\t\t\t\t\t\t\t\t\tlisVisible,\n\t\t\t\t\t\t\t\t\thasClass('dropdown-header', true),\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: lisVisible.filter('.dropdown-header');\n\n\t\t\t\t\tgetPos();\n\t\t\t\t\tmenuHeight = selectOffsetBot - menuExtras.vert;\n\t\t\t\t\tmenuWidth = selectOffsetRight - menuExtras.horiz;\n\n\t\t\t\t\tif (that.options.container) {\n\t\t\t\t\t\tif (!$menu.data('height')) $menu.data('height', $menu.height());\n\t\t\t\t\t\tgetHeight = $menu.data('height');\n\n\t\t\t\t\t\tif (!$menu.data('width')) $menu.data('width', $menu.width());\n\t\t\t\t\t\tgetWidth = $menu.data('width');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgetHeight = $menu.height();\n\t\t\t\t\t\tgetWidth = $menu.width();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (that.options.dropupAuto) {\n\t\t\t\t\t\tthat.$newElement.toggleClass(\n\t\t\t\t\t\t\t'dropup',\n\t\t\t\t\t\t\tselectOffsetTop > selectOffsetBot &&\n\t\t\t\t\t\t\t\tmenuHeight - menuExtras.vert < getHeight,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (that.$newElement.hasClass('dropup')) {\n\t\t\t\t\t\tmenuHeight = selectOffsetTop - menuExtras.vert;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (that.options.dropdownAlignRight === 'auto') {\n\t\t\t\t\t\t$menu.toggleClass(\n\t\t\t\t\t\t\t'dropdown-menu-right',\n\t\t\t\t\t\t\tselectOffsetLeft > selectOffsetRight &&\n\t\t\t\t\t\t\t\tmenuWidth - menuExtras.horiz < getWidth - selectWidth,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (lisVisible.length + optGroup.length > 3) {\n\t\t\t\t\t\tminHeight = liHeight * 3 + menuExtras.vert - 2;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tminHeight = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\t$menu.css({\n\t\t\t\t\t\t'max-height': menuHeight + 'px',\n\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\t'min-height':\n\t\t\t\t\t\t\tminHeight +\n\t\t\t\t\t\t\theaderHeight +\n\t\t\t\t\t\t\tsearchHeight +\n\t\t\t\t\t\t\tactionsHeight +\n\t\t\t\t\t\t\tdoneButtonHeight +\n\t\t\t\t\t\t\t'px',\n\t\t\t\t\t});\n\t\t\t\t\t$menuInner.css({\n\t\t\t\t\t\t'max-height':\n\t\t\t\t\t\t\tmenuHeight -\n\t\t\t\t\t\t\theaderHeight -\n\t\t\t\t\t\t\tsearchHeight -\n\t\t\t\t\t\t\tactionsHeight -\n\t\t\t\t\t\t\tdoneButtonHeight -\n\t\t\t\t\t\t\tmenuPadding.vert +\n\t\t\t\t\t\t\t'px',\n\t\t\t\t\t\t'overflow-y': 'auto',\n\t\t\t\t\t\t'min-height': Math.max(minHeight - menuPadding.vert, 0) + 'px',\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t\tgetSize();\n\t\t\t\tthis.$searchbox\n\t\t\t\t\t.off('input.getSize propertychange.getSize')\n\t\t\t\t\t.on('input.getSize propertychange.getSize', getSize);\n\t\t\t\t$window\n\t\t\t\t\t.off('resize.getSize scroll.getSize')\n\t\t\t\t\t.on('resize.getSize scroll.getSize', getSize);\n\t\t\t} else if (\n\t\t\t\tthis.options.size &&\n\t\t\t\tthis.options.size != 'auto' &&\n\t\t\t\tthis.$lis.not(notDisabled).length > this.options.size\n\t\t\t) {\n\t\t\t\tvar optIndex = this.$lis\n\t\t\t\t\t\t.not('.divider')\n\t\t\t\t\t\t.not(notDisabled)\n\t\t\t\t\t\t.children()\n\t\t\t\t\t\t.slice(0, this.options.size)\n\t\t\t\t\t\t.last()\n\t\t\t\t\t\t.parent()\n\t\t\t\t\t\t.index(),\n\t\t\t\t\tdivLength = this.$lis.slice(0, optIndex + 1).filter('.divider')\n\t\t\t\t\t\t.length;\n\t\t\t\tmenuHeight =\n\t\t\t\t\tliHeight * this.options.size +\n\t\t\t\t\tdivLength * divHeight +\n\t\t\t\t\tmenuPadding.vert;\n\n\t\t\t\tif (that.options.container) {\n\t\t\t\t\tif (!$menu.data('height')) $menu.data('height', $menu.height());\n\t\t\t\t\tgetHeight = $menu.data('height');\n\t\t\t\t} else {\n\t\t\t\t\tgetHeight = $menu.height();\n\t\t\t\t}\n\n\t\t\t\tif (that.options.dropupAuto) {\n\t\t\t\t\t//noinspection JSUnusedAssignment\n\t\t\t\t\tthis.$newElement.toggleClass(\n\t\t\t\t\t\t'dropup',\n\t\t\t\t\t\tselectOffsetTop > selectOffsetBot &&\n\t\t\t\t\t\t\tmenuHeight - menuExtras.vert < getHeight,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\t$menu.css({\n\t\t\t\t\t'max-height':\n\t\t\t\t\t\tmenuHeight +\n\t\t\t\t\t\theaderHeight +\n\t\t\t\t\t\tsearchHeight +\n\t\t\t\t\t\tactionsHeight +\n\t\t\t\t\t\tdoneButtonHeight +\n\t\t\t\t\t\t'px',\n\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t'min-height': '',\n\t\t\t\t});\n\t\t\t\t$menuInner.css({\n\t\t\t\t\t'max-height': menuHeight - menuPadding.vert + 'px',\n\t\t\t\t\t'overflow-y': 'auto',\n\t\t\t\t\t'min-height': '',\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tsetWidth: function () {\n\t\t\tif (this.options.width === 'auto') {\n\t\t\t\tthis.$menu.css('min-width', '0');\n\n\t\t\t\t// Get correct width if element is hidden\n\t\t\t\tvar $selectClone = this.$menu.parent().clone().appendTo('body'),\n\t\t\t\t\t$selectClone2 = this.options.container\n\t\t\t\t\t\t? this.$newElement.clone().appendTo('body')\n\t\t\t\t\t\t: $selectClone,\n\t\t\t\t\tulWidth = $selectClone.children('.dropdown-menu').outerWidth(),\n\t\t\t\t\tbtnWidth = $selectClone2\n\t\t\t\t\t\t.css('width', 'auto')\n\t\t\t\t\t\t.children('button')\n\t\t\t\t\t\t.outerWidth();\n\n\t\t\t\t$selectClone.remove();\n\t\t\t\t$selectClone2.remove();\n\n\t\t\t\t// Set width to whatever's larger, button title or longest option\n\t\t\t\tthis.$newElement.css('width', Math.max(ulWidth, btnWidth) + 'px');\n\t\t\t} else if (this.options.width === 'fit') {\n\t\t\t\t// Remove inline min-width so width can be changed from 'auto'\n\t\t\t\tthis.$menu.css('min-width', '');\n\t\t\t\tthis.$newElement.css('width', '').addClass('fit-width');\n\t\t\t} else if (this.options.width) {\n\t\t\t\t// Remove inline min-width so width can be changed from 'auto'\n\t\t\t\tthis.$menu.css('min-width', '');\n\t\t\t\tthis.$newElement.css('width', this.options.width);\n\t\t\t} else {\n\t\t\t\t// Remove inline min-width/width so width can be changed\n\t\t\t\tthis.$menu.css('min-width', '');\n\t\t\t\tthis.$newElement.css('width', '');\n\t\t\t}\n\t\t\t// Remove fit-width class if width is changed programmatically\n\t\t\tif (\n\t\t\t\tthis.$newElement.hasClass('fit-width') &&\n\t\t\t\tthis.options.width !== 'fit'\n\t\t\t) {\n\t\t\t\tthis.$newElement.removeClass('fit-width');\n\t\t\t}\n\t\t},\n\n\t\tselectPosition: function () {\n\t\t\tthis.$bsContainer = $('
    ');\n\n\t\t\tvar that = this,\n\t\t\t\t$container = $(this.options.container),\n\t\t\t\tpos,\n\t\t\t\tcontainerPos,\n\t\t\t\tactualHeight,\n\t\t\t\tgetPlacement = function ($element) {\n\t\t\t\t\tthat.$bsContainer\n\t\t\t\t\t\t.addClass(\n\t\t\t\t\t\t\t$element.attr('class').replace(/form-control|fit-width/gi, ''),\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.toggleClass('dropup', $element.hasClass('dropup'));\n\t\t\t\t\tpos = $element.offset();\n\n\t\t\t\t\tif (!$container.is('body')) {\n\t\t\t\t\t\tcontainerPos = $container.offset();\n\t\t\t\t\t\tcontainerPos.top +=\n\t\t\t\t\t\t\tparseInt($container.css('borderTopWidth')) -\n\t\t\t\t\t\t\t$container.scrollTop();\n\t\t\t\t\t\tcontainerPos.left +=\n\t\t\t\t\t\t\tparseInt($container.css('borderLeftWidth')) -\n\t\t\t\t\t\t\t$container.scrollLeft();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontainerPos = {top: 0, left: 0};\n\t\t\t\t\t}\n\n\t\t\t\t\tactualHeight = $element.hasClass('dropup')\n\t\t\t\t\t\t? 0\n\t\t\t\t\t\t: $element[0].offsetHeight;\n\n\t\t\t\t\tthat.$bsContainer.css({\n\t\t\t\t\t\ttop: pos.top - containerPos.top + actualHeight,\n\t\t\t\t\t\tleft: pos.left - containerPos.left,\n\t\t\t\t\t\twidth: $element[0].offsetWidth,\n\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\tthis.$button.on('click', function () {\n\t\t\t\tvar $this = $(this);\n\n\t\t\t\tif (that.isDisabled()) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tgetPlacement(that.$newElement);\n\n\t\t\t\tthat.$bsContainer\n\t\t\t\t\t.appendTo(that.options.container)\n\t\t\t\t\t.toggleClass('open', !$this.hasClass('open'))\n\t\t\t\t\t.append(that.$menu);\n\t\t\t});\n\n\t\t\t$(window).on('resize scroll', function () {\n\t\t\t\tgetPlacement(that.$newElement);\n\t\t\t});\n\n\t\t\tthis.$element.on('hide.bs.select', function () {\n\t\t\t\tthat.$menu.data('height', that.$menu.height());\n\t\t\t\tthat.$bsContainer.detach();\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * @param {number} index - the index of the option that is being changed\n\t\t * @param {boolean} selected - true if the option is being selected, false if being deselected\n\t\t * @param {JQuery} $lis - the 'li' element that is being modified\n\t\t */\n\t\tsetSelected: function (index, selected, $lis) {\n\t\t\tif (!$lis) {\n\t\t\t\tthis.togglePlaceholder(); // check if setSelected is being called by changing the value of the select\n\t\t\t\t$lis = this.findLis().eq(this.liObj[index]);\n\t\t\t}\n\n\t\t\t$lis\n\t\t\t\t.toggleClass('selected', selected)\n\t\t\t\t.find('a')\n\t\t\t\t.attr('aria-selected', selected);\n\t\t},\n\n\t\t/**\n\t\t * @param {number} index - the index of the option that is being disabled\n\t\t * @param {boolean} disabled - true if the option is being disabled, false if being enabled\n\t\t * @param {JQuery} $lis - the 'li' element that is being modified\n\t\t */\n\t\tsetDisabled: function (index, disabled, $lis) {\n\t\t\tif (!$lis) {\n\t\t\t\t$lis = this.findLis().eq(this.liObj[index]);\n\t\t\t}\n\n\t\t\tif (disabled) {\n\t\t\t\t$lis\n\t\t\t\t\t.addClass('disabled')\n\t\t\t\t\t.children('a')\n\t\t\t\t\t.attr('href', '#')\n\t\t\t\t\t.attr('tabindex', -1)\n\t\t\t\t\t.attr('aria-disabled', true);\n\t\t\t} else {\n\t\t\t\t$lis\n\t\t\t\t\t.removeClass('disabled')\n\t\t\t\t\t.children('a')\n\t\t\t\t\t.removeAttr('href')\n\t\t\t\t\t.attr('tabindex', 0)\n\t\t\t\t\t.attr('aria-disabled', false);\n\t\t\t}\n\t\t},\n\n\t\tisDisabled: function () {\n\t\t\treturn this.$element[0].disabled;\n\t\t},\n\n\t\tcheckDisabled: function () {\n\t\t\tvar that = this;\n\n\t\t\tif (this.isDisabled()) {\n\t\t\t\tthis.$newElement.addClass('disabled');\n\t\t\t\tthis.$button\n\t\t\t\t\t.addClass('disabled')\n\t\t\t\t\t.attr('tabindex', -1)\n\t\t\t\t\t.attr('aria-disabled', true);\n\t\t\t} else {\n\t\t\t\tif (this.$button.hasClass('disabled')) {\n\t\t\t\t\tthis.$newElement.removeClass('disabled');\n\t\t\t\t\tthis.$button.removeClass('disabled').attr('aria-disabled', false);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\tthis.$button.attr('tabindex') == -1 &&\n\t\t\t\t\t!this.$element.data('tabindex')\n\t\t\t\t) {\n\t\t\t\t\tthis.$button.removeAttr('tabindex');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.$button.click(function () {\n\t\t\t\treturn !that.isDisabled();\n\t\t\t});\n\t\t},\n\n\t\ttogglePlaceholder: function () {\n\t\t\tvar value = this.$element.val();\n\t\t\tthis.$button.toggleClass(\n\t\t\t\t'bs-placeholder',\n\t\t\t\tvalue === null ||\n\t\t\t\t\tvalue === '' ||\n\t\t\t\t\t(value.constructor === Array && value.length === 0),\n\t\t\t);\n\t\t},\n\n\t\ttabIndex: function () {\n\t\t\tif (\n\t\t\t\tthis.$element.data('tabindex') !== this.$element.attr('tabindex') &&\n\t\t\t\tthis.$element.attr('tabindex') !== -98 &&\n\t\t\t\tthis.$element.attr('tabindex') !== '-98'\n\t\t\t) {\n\t\t\t\tthis.$element.data('tabindex', this.$element.attr('tabindex'));\n\t\t\t\tthis.$button.attr('tabindex', this.$element.data('tabindex'));\n\t\t\t}\n\n\t\t\tthis.$element.attr('tabindex', -98);\n\t\t},\n\n\t\tclickListener: function () {\n\t\t\tvar that = this,\n\t\t\t\t$document = $(document);\n\n\t\t\t$document.data('spaceSelect', false);\n\n\t\t\tthis.$button.on('keyup', function (e) {\n\t\t\t\tif (\n\t\t\t\t\t/(32)/.test(e.keyCode.toString(10)) &&\n\t\t\t\t\t$document.data('spaceSelect')\n\t\t\t\t) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\t$document.data('spaceSelect', false);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.$button.on('click', function () {\n\t\t\t\tthat.setSize();\n\t\t\t});\n\n\t\t\tthis.$element.on('shown.bs.select', function () {\n\t\t\t\tif (!that.options.liveSearch && !that.multiple) {\n\t\t\t\t\tthat.$menuInner.find('.selected a').focus();\n\t\t\t\t} else if (!that.multiple) {\n\t\t\t\t\tvar selectedIndex = that.liObj[that.$element[0].selectedIndex];\n\n\t\t\t\t\tif (typeof selectedIndex !== 'number' || that.options.size === false)\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// scroll to selected option\n\t\t\t\t\tvar offset =\n\t\t\t\t\t\tthat.$lis.eq(selectedIndex)[0].offsetTop -\n\t\t\t\t\t\tthat.$menuInner[0].offsetTop;\n\t\t\t\t\toffset =\n\t\t\t\t\t\toffset -\n\t\t\t\t\t\tthat.$menuInner[0].offsetHeight / 2 +\n\t\t\t\t\t\tthat.sizeInfo.liHeight / 2;\n\t\t\t\t\tthat.$menuInner[0].scrollTop = offset;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.$menuInner.on('click', 'li a', function (e) {\n\t\t\t\tvar $this = $(this),\n\t\t\t\t\tclickedIndex = $this.parent().data('originalIndex'),\n\t\t\t\t\tprevValue = that.$element.val(),\n\t\t\t\t\tprevIndex = that.$element.prop('selectedIndex'),\n\t\t\t\t\ttriggerChange = true;\n\n\t\t\t\t// Don't close on multi choice menu\n\t\t\t\tif (that.multiple && that.options.maxOptions !== 1) {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t}\n\n\t\t\t\te.preventDefault();\n\n\t\t\t\t//Don't run if we have been disabled\n\t\t\t\tif (!that.isDisabled() && !$this.parent().hasClass('disabled')) {\n\t\t\t\t\tvar $options = that.$element.find('option'),\n\t\t\t\t\t\t$option = $options.eq(clickedIndex),\n\t\t\t\t\t\tstate = $option.prop('selected'),\n\t\t\t\t\t\t$optgroup = $option.parent('optgroup'),\n\t\t\t\t\t\tmaxOptions = that.options.maxOptions,\n\t\t\t\t\t\tmaxOptionsGrp = $optgroup.data('maxOptions') || false;\n\n\t\t\t\t\tif (!that.multiple) {\n\t\t\t\t\t\t// Deselect all others if not multi select box\n\t\t\t\t\t\t$options.prop('selected', false);\n\t\t\t\t\t\t$option.prop('selected', true);\n\t\t\t\t\t\tthat.$menuInner\n\t\t\t\t\t\t\t.find('.selected')\n\t\t\t\t\t\t\t.removeClass('selected')\n\t\t\t\t\t\t\t.find('a')\n\t\t\t\t\t\t\t.attr('aria-selected', false);\n\t\t\t\t\t\tthat.setSelected(clickedIndex, true);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Toggle the one we have chosen if we are multi select.\n\t\t\t\t\t\t$option.prop('selected', !state);\n\t\t\t\t\t\tthat.setSelected(clickedIndex, !state);\n\t\t\t\t\t\t$this.blur();\n\n\t\t\t\t\t\tif (maxOptions !== false || maxOptionsGrp !== false) {\n\t\t\t\t\t\t\tvar maxReached = maxOptions < $options.filter(':selected').length,\n\t\t\t\t\t\t\t\tmaxReachedGrp =\n\t\t\t\t\t\t\t\t\tmaxOptionsGrp < $optgroup.find('option:selected').length;\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t(maxOptions && maxReached) ||\n\t\t\t\t\t\t\t\t(maxOptionsGrp && maxReachedGrp)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tif (maxOptions && maxOptions == 1) {\n\t\t\t\t\t\t\t\t\t$options.prop('selected', false);\n\t\t\t\t\t\t\t\t\t$option.prop('selected', true);\n\t\t\t\t\t\t\t\t\tthat.$menuInner.find('.selected').removeClass('selected');\n\t\t\t\t\t\t\t\t\tthat.setSelected(clickedIndex, true);\n\t\t\t\t\t\t\t\t} else if (maxOptionsGrp && maxOptionsGrp == 1) {\n\t\t\t\t\t\t\t\t\t$optgroup.find('option:selected').prop('selected', false);\n\t\t\t\t\t\t\t\t\t$option.prop('selected', true);\n\t\t\t\t\t\t\t\t\tvar optgroupID = $this.parent().data('optgroup');\n\t\t\t\t\t\t\t\t\tthat.$menuInner\n\t\t\t\t\t\t\t\t\t\t.find('[data-optgroup=\"' + optgroupID + '\"]')\n\t\t\t\t\t\t\t\t\t\t.removeClass('selected');\n\t\t\t\t\t\t\t\t\tthat.setSelected(clickedIndex, true);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tvar maxOptionsText =\n\t\t\t\t\t\t\t\t\t\t\ttypeof that.options.maxOptionsText === 'string'\n\t\t\t\t\t\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthat.options.maxOptionsText,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthat.options.maxOptionsText,\n\t\t\t\t\t\t\t\t\t\t\t\t ]\n\t\t\t\t\t\t\t\t\t\t\t\t: that.options.maxOptionsText,\n\t\t\t\t\t\t\t\t\t\tmaxOptionsArr =\n\t\t\t\t\t\t\t\t\t\t\ttypeof maxOptionsText === 'function'\n\t\t\t\t\t\t\t\t\t\t\t\t? maxOptionsText(maxOptions, maxOptionsGrp)\n\t\t\t\t\t\t\t\t\t\t\t\t: maxOptionsText,\n\t\t\t\t\t\t\t\t\t\tmaxTxt = maxOptionsArr[0].replace('{n}', maxOptions),\n\t\t\t\t\t\t\t\t\t\tmaxTxtGrp = maxOptionsArr[1].replace('{n}', maxOptionsGrp),\n\t\t\t\t\t\t\t\t\t\t$notify = $('
    ');\n\t\t\t\t\t\t\t\t\t// If {var} is set in array, replace it\n\t\t\t\t\t\t\t\t\t/** @deprecated */\n\t\t\t\t\t\t\t\t\tif (maxOptionsArr[2]) {\n\t\t\t\t\t\t\t\t\t\tmaxTxt = maxTxt.replace(\n\t\t\t\t\t\t\t\t\t\t\t'{var}',\n\t\t\t\t\t\t\t\t\t\t\tmaxOptionsArr[2][maxOptions > 1 ? 0 : 1],\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tmaxTxtGrp = maxTxtGrp.replace(\n\t\t\t\t\t\t\t\t\t\t\t'{var}',\n\t\t\t\t\t\t\t\t\t\t\tmaxOptionsArr[2][maxOptionsGrp > 1 ? 0 : 1],\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t$option.prop('selected', false);\n\n\t\t\t\t\t\t\t\t\tthat.$menu.append($notify);\n\n\t\t\t\t\t\t\t\t\tif (maxOptions && maxReached) {\n\t\t\t\t\t\t\t\t\t\t$notify.append($('
    ' + maxTxt + '
    '));\n\t\t\t\t\t\t\t\t\t\ttriggerChange = false;\n\t\t\t\t\t\t\t\t\t\tthat.$element.trigger('maxReached.bs.select');\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif (maxOptionsGrp && maxReachedGrp) {\n\t\t\t\t\t\t\t\t\t\t$notify.append($('
    ' + maxTxtGrp + '
    '));\n\t\t\t\t\t\t\t\t\t\ttriggerChange = false;\n\t\t\t\t\t\t\t\t\t\tthat.$element.trigger('maxReachedGrp.bs.select');\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t\t\t\tthat.setSelected(clickedIndex, false);\n\t\t\t\t\t\t\t\t\t}, 10);\n\n\t\t\t\t\t\t\t\t\t$notify.delay(750).fadeOut(300, function () {\n\t\t\t\t\t\t\t\t\t\t$(this).remove();\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t!that.multiple ||\n\t\t\t\t\t\t(that.multiple && that.options.maxOptions === 1)\n\t\t\t\t\t) {\n\t\t\t\t\t\tthat.$button.focus();\n\t\t\t\t\t} else if (that.options.liveSearch) {\n\t\t\t\t\t\tthat.$searchbox.focus();\n\t\t\t\t\t}\n\n\t\t\t\t\t// Trigger select 'change'\n\t\t\t\t\tif (triggerChange) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t(prevValue != that.$element.val() && that.multiple) ||\n\t\t\t\t\t\t\t(prevIndex != that.$element.prop('selectedIndex') &&\n\t\t\t\t\t\t\t\t!that.multiple)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// $option.prop('selected') is current option state (selected/unselected). state is previous option state.\n\t\t\t\t\t\t\tchanged_arguments = [\n\t\t\t\t\t\t\t\tclickedIndex,\n\t\t\t\t\t\t\t\t$option.prop('selected'),\n\t\t\t\t\t\t\t\tstate,\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tthat.$element.triggerNative('change');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.$menu.on(\n\t\t\t\t'click',\n\t\t\t\t'li.disabled a, .popover-title, .popover-title :not(.close)',\n\t\t\t\tfunction (e) {\n\t\t\t\t\tif (e.currentTarget == this) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\tif (that.options.liveSearch && !$(e.target).hasClass('close')) {\n\t\t\t\t\t\t\tthat.$searchbox.focus();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthat.$button.focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t);\n\n\t\t\tthis.$menuInner.on('click', '.divider, .dropdown-header', function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\tif (that.options.liveSearch) {\n\t\t\t\t\tthat.$searchbox.focus();\n\t\t\t\t} else {\n\t\t\t\t\tthat.$button.focus();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.$menu.on('click', '.popover-title .close', function () {\n\t\t\t\tthat.$button.click();\n\t\t\t});\n\n\t\t\tthis.$searchbox.on('click', function (e) {\n\t\t\t\te.stopPropagation();\n\t\t\t});\n\n\t\t\tthis.$menu.on('click', '.actions-btn', function (e) {\n\t\t\t\tif (that.options.liveSearch) {\n\t\t\t\t\tthat.$searchbox.focus();\n\t\t\t\t} else {\n\t\t\t\t\tthat.$button.focus();\n\t\t\t\t}\n\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\n\t\t\t\tif ($(this).hasClass('bs-select-all')) {\n\t\t\t\t\tthat.selectAll();\n\t\t\t\t} else {\n\t\t\t\t\tthat.deselectAll();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.$element.change(function () {\n\t\t\t\tthat.render(false);\n\t\t\t\tthat.$element.trigger('changed.bs.select', changed_arguments);\n\t\t\t\tchanged_arguments = null;\n\t\t\t});\n\t\t},\n\n\t\tliveSearchListener: function () {\n\t\t\tvar that = this,\n\t\t\t\t$no_results = $('
  • ');\n\n\t\t\tthis.$button.on('click.dropdown.data-api', function () {\n\t\t\t\tthat.$menuInner.find('.active').removeClass('active');\n\t\t\t\tif (!!that.$searchbox.val()) {\n\t\t\t\t\tthat.$searchbox.val('');\n\t\t\t\t\tthat.$lis.not('.is-hidden').removeClass('hidden');\n\t\t\t\t\tif (!!$no_results.parent().length) $no_results.remove();\n\t\t\t\t}\n\t\t\t\tif (!that.multiple)\n\t\t\t\t\tthat.$menuInner.find('.selected').addClass('active');\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\tthat.$searchbox.focus();\n\t\t\t\t}, 10);\n\t\t\t});\n\n\t\t\tthis.$searchbox.on(\n\t\t\t\t'click.dropdown.data-api focus.dropdown.data-api touchend.dropdown.data-api',\n\t\t\t\tfunction (e) {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t},\n\t\t\t);\n\n\t\t\tthis.$searchbox.on('input propertychange', function () {\n\t\t\t\tthat.$lis.not('.is-hidden').removeClass('hidden');\n\t\t\t\tthat.$lis.filter('.active').removeClass('active');\n\t\t\t\t$no_results.remove();\n\n\t\t\t\tif (that.$searchbox.val()) {\n\t\t\t\t\tvar $searchBase = that.$lis.not(\n\t\t\t\t\t\t\t'.is-hidden, .divider, .dropdown-header',\n\t\t\t\t\t\t),\n\t\t\t\t\t\t$hideItems;\n\t\t\t\t\tif (that.options.liveSearchNormalize) {\n\t\t\t\t\t\t$hideItems = $searchBase.not(\n\t\t\t\t\t\t\t':a' +\n\t\t\t\t\t\t\t\tthat._searchStyle() +\n\t\t\t\t\t\t\t\t'(\"' +\n\t\t\t\t\t\t\t\tnormalizeToBase(that.$searchbox.val()) +\n\t\t\t\t\t\t\t\t'\")',\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$hideItems = $searchBase.not(\n\t\t\t\t\t\t\t':' + that._searchStyle() + '(\"' + that.$searchbox.val() + '\")',\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif ($hideItems.length === $searchBase.length) {\n\t\t\t\t\t\t$no_results.html(\n\t\t\t\t\t\t\tthat.options.noneResultsText.replace(\n\t\t\t\t\t\t\t\t'{0}',\n\t\t\t\t\t\t\t\t'\"' + htmlEscape(that.$searchbox.val()) + '\"',\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthat.$menuInner.append($no_results);\n\t\t\t\t\t\tthat.$lis.addClass('hidden');\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$hideItems.addClass('hidden');\n\n\t\t\t\t\t\tvar $lisVisible = that.$lis.not('.hidden'),\n\t\t\t\t\t\t\t$foundDiv;\n\n\t\t\t\t\t\t// hide divider if first or last visible, or if followed by another divider\n\t\t\t\t\t\t$lisVisible.each(function (index) {\n\t\t\t\t\t\t\tvar $this = $(this);\n\n\t\t\t\t\t\t\tif ($this.hasClass('divider')) {\n\t\t\t\t\t\t\t\tif ($foundDiv === undefined) {\n\t\t\t\t\t\t\t\t\t$this.addClass('hidden');\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tif ($foundDiv) $foundDiv.addClass('hidden');\n\t\t\t\t\t\t\t\t\t$foundDiv = $this;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\t$this.hasClass('dropdown-header') &&\n\t\t\t\t\t\t\t\t$lisVisible.eq(index + 1).data('optgroup') !==\n\t\t\t\t\t\t\t\t\t$this.data('optgroup')\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t$this.addClass('hidden');\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$foundDiv = null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif ($foundDiv) $foundDiv.addClass('hidden');\n\n\t\t\t\t\t\t$searchBase.not('.hidden').first().addClass('active');\n\t\t\t\t\t\tthat.$menuInner.scrollTop(0);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t_searchStyle: function () {\n\t\t\tvar styles = {\n\t\t\t\tbegins: 'ibegins',\n\t\t\t\tstartsWith: 'ibegins',\n\t\t\t};\n\n\t\t\treturn styles[this.options.liveSearchStyle] || 'icontains';\n\t\t},\n\n\t\tval: function (value) {\n\t\t\tif (typeof value !== 'undefined') {\n\t\t\t\tthis.$element.val(value);\n\t\t\t\tthis.render();\n\n\t\t\t\treturn this.$element;\n\t\t\t} else {\n\t\t\t\treturn this.$element.val();\n\t\t\t}\n\t\t},\n\n\t\tchangeAll: function (status) {\n\t\t\tif (!this.multiple) return;\n\t\t\tif (typeof status === 'undefined') status = true;\n\n\t\t\tthis.findLis();\n\n\t\t\tvar $options = this.$element.find('option'),\n\t\t\t\t$lisVisible = this.$lis.not(\n\t\t\t\t\t'.divider, .dropdown-header, .disabled, .hidden',\n\t\t\t\t),\n\t\t\t\tlisVisLen = $lisVisible.length,\n\t\t\t\tselectedOptions = [];\n\n\t\t\tif (status) {\n\t\t\t\tif ($lisVisible.filter('.selected').length === $lisVisible.length)\n\t\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\tif ($lisVisible.filter('.selected').length === 0) return;\n\t\t\t}\n\n\t\t\t$lisVisible.toggleClass('selected', status);\n\n\t\t\tfor (var i = 0; i < lisVisLen; i++) {\n\t\t\t\tvar origIndex = $lisVisible[i].getAttribute('data-original-index');\n\t\t\t\tselectedOptions[selectedOptions.length] = $options.eq(origIndex)[0];\n\t\t\t}\n\n\t\t\t$(selectedOptions).prop('selected', status);\n\n\t\t\tthis.render(false);\n\n\t\t\tthis.togglePlaceholder();\n\n\t\t\tthis.$element.triggerNative('change');\n\t\t},\n\n\t\tselectAll: function () {\n\t\t\treturn this.changeAll(true);\n\t\t},\n\n\t\tdeselectAll: function () {\n\t\t\treturn this.changeAll(false);\n\t\t},\n\n\t\ttoggle: function (e) {\n\t\t\te = e || window.event;\n\n\t\t\tif (e) e.stopPropagation();\n\n\t\t\tthis.$button.trigger('click');\n\t\t},\n\n\t\tkeydown: function (e) {\n\t\t\tvar $this = $(this),\n\t\t\t\t$parent = $this.is('input') ? $this.parent().parent() : $this.parent(),\n\t\t\t\t$items,\n\t\t\t\tthat = $parent.data('this'),\n\t\t\t\tindex,\n\t\t\t\tprevIndex,\n\t\t\t\tisActive,\n\t\t\t\tselector = ':not(.disabled, .hidden, .dropdown-header, .divider)',\n\t\t\t\tkeyCodeMap = {\n\t\t\t\t\t32: ' ',\n\t\t\t\t\t48: '0',\n\t\t\t\t\t49: '1',\n\t\t\t\t\t50: '2',\n\t\t\t\t\t51: '3',\n\t\t\t\t\t52: '4',\n\t\t\t\t\t53: '5',\n\t\t\t\t\t54: '6',\n\t\t\t\t\t55: '7',\n\t\t\t\t\t56: '8',\n\t\t\t\t\t57: '9',\n\t\t\t\t\t59: ';',\n\t\t\t\t\t65: 'a',\n\t\t\t\t\t66: 'b',\n\t\t\t\t\t67: 'c',\n\t\t\t\t\t68: 'd',\n\t\t\t\t\t69: 'e',\n\t\t\t\t\t70: 'f',\n\t\t\t\t\t71: 'g',\n\t\t\t\t\t72: 'h',\n\t\t\t\t\t73: 'i',\n\t\t\t\t\t74: 'j',\n\t\t\t\t\t75: 'k',\n\t\t\t\t\t76: 'l',\n\t\t\t\t\t77: 'm',\n\t\t\t\t\t78: 'n',\n\t\t\t\t\t79: 'o',\n\t\t\t\t\t80: 'p',\n\t\t\t\t\t81: 'q',\n\t\t\t\t\t82: 'r',\n\t\t\t\t\t83: 's',\n\t\t\t\t\t84: 't',\n\t\t\t\t\t85: 'u',\n\t\t\t\t\t86: 'v',\n\t\t\t\t\t87: 'w',\n\t\t\t\t\t88: 'x',\n\t\t\t\t\t89: 'y',\n\t\t\t\t\t90: 'z',\n\t\t\t\t\t96: '0',\n\t\t\t\t\t97: '1',\n\t\t\t\t\t98: '2',\n\t\t\t\t\t99: '3',\n\t\t\t\t\t100: '4',\n\t\t\t\t\t101: '5',\n\t\t\t\t\t102: '6',\n\t\t\t\t\t103: '7',\n\t\t\t\t\t104: '8',\n\t\t\t\t\t105: '9',\n\t\t\t\t};\n\n\t\t\tisActive = that.$newElement.hasClass('open');\n\n\t\t\tif (\n\t\t\t\t!isActive &&\n\t\t\t\t((e.keyCode >= 48 && e.keyCode <= 57) ||\n\t\t\t\t\t(e.keyCode >= 96 && e.keyCode <= 105) ||\n\t\t\t\t\t(e.keyCode >= 65 && e.keyCode <= 90))\n\t\t\t) {\n\t\t\t\tif (!that.options.container) {\n\t\t\t\t\tthat.setSize();\n\t\t\t\t\tthat.$menu.parent().addClass('open');\n\t\t\t\t\tisActive = true;\n\t\t\t\t} else {\n\t\t\t\t\tthat.$button.trigger('click');\n\t\t\t\t}\n\t\t\t\tthat.$searchbox.focus();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (that.options.liveSearch) {\n\t\t\t\tif (/(^9$|27)/.test(e.keyCode.toString(10)) && isActive) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\tthat.$menuInner.click();\n\t\t\t\t\tthat.$button.focus();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (/(38|40)/.test(e.keyCode.toString(10))) {\n\t\t\t\t$items = that.$lis.filter(selector);\n\t\t\t\tif (!$items.length) return;\n\n\t\t\t\tif (!that.options.liveSearch) {\n\t\t\t\t\tindex = $items.index($items.find('a').filter(':focus').parent());\n\t\t\t\t} else {\n\t\t\t\t\tindex = $items.index($items.filter('.active'));\n\t\t\t\t}\n\n\t\t\t\tprevIndex = that.$menuInner.data('prevIndex');\n\n\t\t\t\tif (e.keyCode == 38) {\n\t\t\t\t\tif ((that.options.liveSearch || index == prevIndex) && index != -1)\n\t\t\t\t\t\tindex--;\n\t\t\t\t\tif (index < 0) index += $items.length;\n\t\t\t\t} else if (e.keyCode == 40) {\n\t\t\t\t\tif (that.options.liveSearch || index == prevIndex) index++;\n\t\t\t\t\tindex = index % $items.length;\n\t\t\t\t}\n\n\t\t\t\tthat.$menuInner.data('prevIndex', index);\n\n\t\t\t\tif (!that.options.liveSearch) {\n\t\t\t\t\t$items.eq(index).children('a').focus();\n\t\t\t\t} else {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tif (!$this.hasClass('dropdown-toggle')) {\n\t\t\t\t\t\t$items\n\t\t\t\t\t\t\t.removeClass('active')\n\t\t\t\t\t\t\t.eq(index)\n\t\t\t\t\t\t\t.addClass('active')\n\t\t\t\t\t\t\t.children('a')\n\t\t\t\t\t\t\t.focus();\n\t\t\t\t\t\t$this.focus();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (!$this.is('input')) {\n\t\t\t\tvar keyIndex = [],\n\t\t\t\t\tcount,\n\t\t\t\t\tprevKey;\n\n\t\t\t\t$items = that.$lis.filter(selector);\n\t\t\t\t$items.each(function (i) {\n\t\t\t\t\tif (\n\t\t\t\t\t\t$.trim($(this).children('a').text().toLowerCase()).substring(\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t) == keyCodeMap[e.keyCode]\n\t\t\t\t\t) {\n\t\t\t\t\t\tkeyIndex.push(i);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tcount = $(document).data('keycount');\n\t\t\t\tcount++;\n\t\t\t\t$(document).data('keycount', count);\n\n\t\t\t\tprevKey = $.trim($(':focus').text().toLowerCase()).substring(0, 1);\n\n\t\t\t\tif (prevKey != keyCodeMap[e.keyCode]) {\n\t\t\t\t\tcount = 1;\n\t\t\t\t\t$(document).data('keycount', count);\n\t\t\t\t} else if (count >= keyIndex.length) {\n\t\t\t\t\t$(document).data('keycount', 0);\n\t\t\t\t\tif (count > keyIndex.length) count = 1;\n\t\t\t\t}\n\n\t\t\t\t$items\n\t\t\t\t\t.eq(keyIndex[count - 1])\n\t\t\t\t\t.children('a')\n\t\t\t\t\t.focus();\n\t\t\t}\n\n\t\t\t// Select focused option if \"Enter\", \"Spacebar\" or \"Tab\" (when selectOnTab is true) are pressed inside the menu.\n\t\t\tif (\n\t\t\t\t(/(13|32)/.test(e.keyCode.toString(10)) ||\n\t\t\t\t\t(/(^9$)/.test(e.keyCode.toString(10)) && that.options.selectOnTab)) &&\n\t\t\t\tisActive\n\t\t\t) {\n\t\t\t\tif (!/(32)/.test(e.keyCode.toString(10))) e.preventDefault();\n\t\t\t\tif (!that.options.liveSearch) {\n\t\t\t\t\tvar elem = $(':focus');\n\t\t\t\t\telem.click();\n\t\t\t\t\t// Bring back focus for multiselects\n\t\t\t\t\telem.focus();\n\t\t\t\t\t// Prevent screen from scrolling if the user hit the spacebar\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\t// Fixes spacebar selection of dropdown items in FF & IE\n\t\t\t\t\t$(document).data('spaceSelect', true);\n\t\t\t\t} else if (!/(32)/.test(e.keyCode.toString(10))) {\n\t\t\t\t\tthat.$menuInner.find('.active a').click();\n\t\t\t\t\t$this.focus();\n\t\t\t\t}\n\t\t\t\t$(document).data('keycount', 0);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t(/(^9$|27)/.test(e.keyCode.toString(10)) &&\n\t\t\t\t\tisActive &&\n\t\t\t\t\t(that.multiple || that.options.liveSearch)) ||\n\t\t\t\t(/(27)/.test(e.keyCode.toString(10)) && !isActive)\n\t\t\t) {\n\t\t\t\tthat.$menu.parent().removeClass('open');\n\t\t\t\tif (that.options.container) that.$newElement.removeClass('open');\n\t\t\t\tthat.$button.focus();\n\t\t\t}\n\t\t},\n\n\t\tmobile: function () {\n\t\t\tthis.$element.addClass('mobile-device');\n\t\t},\n\n\t\trefresh: function () {\n\t\t\tthis.$lis = null;\n\t\t\tthis.liObj = {};\n\t\t\tthis.reloadLi();\n\t\t\tthis.render();\n\t\t\tthis.checkDisabled();\n\t\t\tthis.liHeight(true);\n\t\t\tthis.setStyle();\n\t\t\tthis.setWidth();\n\t\t\tif (this.$lis) this.$searchbox.trigger('propertychange');\n\n\t\t\tthis.$element.trigger('refreshed.bs.select');\n\t\t},\n\n\t\thide: function () {\n\t\t\tthis.$newElement.hide();\n\t\t},\n\n\t\tshow: function () {\n\t\t\tthis.$newElement.show();\n\t\t},\n\n\t\tremove: function () {\n\t\t\tthis.$newElement.remove();\n\t\t\tthis.$element.remove();\n\t\t},\n\n\t\tdestroy: function () {\n\t\t\tthis.$newElement.before(this.$element).remove();\n\n\t\t\tif (this.$bsContainer) {\n\t\t\t\tthis.$bsContainer.remove();\n\t\t\t} else {\n\t\t\t\tthis.$menu.remove();\n\t\t\t}\n\n\t\t\tthis.$element\n\t\t\t\t.off('.bs.select')\n\t\t\t\t.removeData('selectpicker')\n\t\t\t\t.removeClass('bs-select-hidden selectpicker');\n\t\t},\n\t};\n\n\t// SELECTPICKER PLUGIN DEFINITION\n\t// ==============================\n\tfunction Plugin(option) {\n\t\t// get the args of the outer function..\n\t\tvar args = arguments;\n\t\t// The arguments of the function are explicitly re-defined from the argument list, because the shift causes them\n\t\t// to get lost/corrupted in android 2.3 and IE9 #715 #775\n\t\tvar _option = option;\n\n\t\t[].shift.apply(args);\n\n\t\tvar value;\n\t\tvar chain = this.each(function () {\n\t\t\tvar $this = $(this);\n\t\t\tif ($this.is('select')) {\n\t\t\t\tvar data = $this.data('selectpicker'),\n\t\t\t\t\toptions = typeof _option == 'object' && _option;\n\n\t\t\t\tif (!data) {\n\t\t\t\t\tvar config = $.extend(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\tSelectpicker.DEFAULTS,\n\t\t\t\t\t\t$.fn.selectpicker.defaults || {},\n\t\t\t\t\t\t$this.data(),\n\t\t\t\t\t\toptions,\n\t\t\t\t\t);\n\t\t\t\t\tconfig.template = $.extend(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\tSelectpicker.DEFAULTS.template,\n\t\t\t\t\t\t$.fn.selectpicker.defaults\n\t\t\t\t\t\t\t? $.fn.selectpicker.defaults.template\n\t\t\t\t\t\t\t: {},\n\t\t\t\t\t\t$this.data().template,\n\t\t\t\t\t\toptions.template,\n\t\t\t\t\t);\n\t\t\t\t\t$this.data('selectpicker', (data = new Selectpicker(this, config)));\n\t\t\t\t} else if (options) {\n\t\t\t\t\tfor (var i in options) {\n\t\t\t\t\t\tif (options.hasOwnProperty(i)) {\n\t\t\t\t\t\t\tdata.options[i] = options[i];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (typeof _option == 'string') {\n\t\t\t\t\tif (data[_option] instanceof Function) {\n\t\t\t\t\t\tvalue = data[_option].apply(data, args);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalue = data.options[_option];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tif (typeof value !== 'undefined') {\n\t\t\t//noinspection JSUnusedAssignment\n\t\t\treturn value;\n\t\t} else {\n\t\t\treturn chain;\n\t\t}\n\t}\n\n\tvar old = $.fn.selectpicker;\n\t$.fn.selectpicker = Plugin;\n\t$.fn.selectpicker.Constructor = Selectpicker;\n\n\t// SELECTPICKER NO CONFLICT\n\t// ========================\n\t$.fn.selectpicker.noConflict = function () {\n\t\t$.fn.selectpicker = old;\n\t\treturn this;\n\t};\n\n\t$(document)\n\t\t.data('keycount', 0)\n\t\t.on(\n\t\t\t'keydown.bs.select',\n\t\t\t'.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role=\"listbox\"], .bs-searchbox input',\n\t\t\tSelectpicker.prototype.keydown,\n\t\t)\n\t\t.on(\n\t\t\t'focusin.modal',\n\t\t\t'.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role=\"listbox\"], .bs-searchbox input',\n\t\t\tfunction (e) {\n\t\t\t\te.stopPropagation();\n\t\t\t},\n\t\t);\n\n\t// SELECTPICKER DATA-API\n\t// =====================\n\t$(window).on('load.bs.select.data-api', function () {\n\t\t$('.selectpicker').each(function () {\n\t\t\tvar $selectpicker = $(this);\n\t\t\tPlugin.call($selectpicker, $selectpicker.data());\n\t\t});\n\t});\n})(jQuery);\n","/**\n * Stores result from supportsCssVariables to avoid redundant processing to\n * detect CSS custom variable support.\n */\nvar supportsCssVariables_;\nfunction detectEdgePseudoVarBug(windowObj) {\n // Detect versions of Edge with buggy var() support\n // See: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11495448/\n var document = windowObj.document;\n var node = document.createElement('div');\n node.className = 'mdc-ripple-surface--test-edge-var-bug';\n // Append to head instead of body because this script might be invoked in the\n // head, in which case the body doesn't exist yet. The probe works either way.\n document.head.appendChild(node);\n // The bug exists if ::before style ends up propagating to the parent element.\n // Additionally, getComputedStyle returns null in iframes with display: \"none\" in Firefox,\n // but Firefox is known to support CSS custom properties correctly.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n var computedStyle = windowObj.getComputedStyle(node);\n var hasPseudoVarBug = computedStyle !== null && computedStyle.borderTopStyle === 'solid';\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n return hasPseudoVarBug;\n}\nexport function supportsCssVariables(windowObj, forceRefresh) {\n if (forceRefresh === void 0) { forceRefresh = false; }\n var CSS = windowObj.CSS;\n var supportsCssVars = supportsCssVariables_;\n if (typeof supportsCssVariables_ === 'boolean' && !forceRefresh) {\n return supportsCssVariables_;\n }\n var supportsFunctionPresent = CSS && typeof CSS.supports === 'function';\n if (!supportsFunctionPresent) {\n return false;\n }\n var explicitlySupportsCssVars = CSS.supports('--css-vars', 'yes');\n // See: https://bugs.webkit.org/show_bug.cgi?id=154669\n // See: README section on Safari\n var weAreFeatureDetectingSafari10plus = (CSS.supports('(--css-vars: yes)') &&\n CSS.supports('color', '#00000000'));\n if (explicitlySupportsCssVars || weAreFeatureDetectingSafari10plus) {\n supportsCssVars = !detectEdgePseudoVarBug(windowObj);\n }\n else {\n supportsCssVars = false;\n }\n if (!forceRefresh) {\n supportsCssVariables_ = supportsCssVars;\n }\n return supportsCssVars;\n}\nexport function getNormalizedEventCoords(evt, pageOffset, clientRect) {\n if (!evt) {\n return { x: 0, y: 0 };\n }\n var x = pageOffset.x, y = pageOffset.y;\n var documentX = x + clientRect.left;\n var documentY = y + clientRect.top;\n var normalizedX;\n var normalizedY;\n // Determine touch point relative to the ripple container.\n if (evt.type === 'touchstart') {\n var touchEvent = evt;\n normalizedX = touchEvent.changedTouches[0].pageX - documentX;\n normalizedY = touchEvent.changedTouches[0].pageY - documentY;\n }\n else {\n var mouseEvent = evt;\n normalizedX = mouseEvent.pageX - documentX;\n normalizedY = mouseEvent.pageY - documentY;\n }\n return { x: normalizedX, y: normalizedY };\n}\n//# sourceMappingURL=util.js.map","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nvar cssClasses = {\n ANCHOR: 'mdc-menu-surface--anchor',\n ANIMATING_CLOSED: 'mdc-menu-surface--animating-closed',\n ANIMATING_OPEN: 'mdc-menu-surface--animating-open',\n FIXED: 'mdc-menu-surface--fixed',\n OPEN: 'mdc-menu-surface--open',\n ROOT: 'mdc-menu-surface',\n};\n// tslint:disable:object-literal-sort-keys\nvar strings = {\n CLOSED_EVENT: 'MDCMenuSurface:closed',\n OPENED_EVENT: 'MDCMenuSurface:opened',\n FOCUSABLE_ELEMENTS: [\n 'button:not(:disabled)', '[href]:not([aria-disabled=\"true\"])', 'input:not(:disabled)',\n 'select:not(:disabled)', 'textarea:not(:disabled)', '[tabindex]:not([tabindex=\"-1\"]):not([aria-disabled=\"true\"])',\n ].join(', '),\n};\n// tslint:enable:object-literal-sort-keys\nvar numbers = {\n /** Total duration of menu-surface open animation. */\n TRANSITION_OPEN_DURATION: 120,\n /** Total duration of menu-surface close animation. */\n TRANSITION_CLOSE_DURATION: 75,\n /** Margin left to the edge of the viewport when menu-surface is at maximum possible height. */\n MARGIN_TO_EDGE: 32,\n /** Ratio of anchor width to menu-surface width for switching from corner positioning to center positioning. */\n ANCHOR_TO_MENU_SURFACE_WIDTH_RATIO: 0.67,\n};\n/**\n * Enum for bits in the {@see Corner) bitmap.\n */\nvar CornerBit;\n(function (CornerBit) {\n CornerBit[CornerBit[\"BOTTOM\"] = 1] = \"BOTTOM\";\n CornerBit[CornerBit[\"CENTER\"] = 2] = \"CENTER\";\n CornerBit[CornerBit[\"RIGHT\"] = 4] = \"RIGHT\";\n CornerBit[CornerBit[\"FLIP_RTL\"] = 8] = \"FLIP_RTL\";\n})(CornerBit || (CornerBit = {}));\n/**\n * Enum for representing an element corner for positioning the menu-surface.\n *\n * The START constants map to LEFT if element directionality is left\n * to right and RIGHT if the directionality is right to left.\n * Likewise END maps to RIGHT or LEFT depending on the directionality.\n */\nvar Corner;\n(function (Corner) {\n Corner[Corner[\"TOP_LEFT\"] = 0] = \"TOP_LEFT\";\n Corner[Corner[\"TOP_RIGHT\"] = 4] = \"TOP_RIGHT\";\n Corner[Corner[\"BOTTOM_LEFT\"] = 1] = \"BOTTOM_LEFT\";\n Corner[Corner[\"BOTTOM_RIGHT\"] = 5] = \"BOTTOM_RIGHT\";\n Corner[Corner[\"TOP_START\"] = 8] = \"TOP_START\";\n Corner[Corner[\"TOP_END\"] = 12] = \"TOP_END\";\n Corner[Corner[\"BOTTOM_START\"] = 9] = \"BOTTOM_START\";\n Corner[Corner[\"BOTTOM_END\"] = 13] = \"BOTTOM_END\";\n})(Corner || (Corner = {}));\nexport { cssClasses, strings, numbers, CornerBit, Corner };\n//# sourceMappingURL=constants.js.map","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nimport * as tslib_1 from \"tslib\";\nimport { MDCComponent } from '@material/base/component';\nimport { closest, matches } from '@material/dom/ponyfill';\nimport { cssClasses, strings } from './constants';\nimport { MDCListFoundation } from './foundation';\nvar MDCList = /** @class */ (function (_super) {\n tslib_1.__extends(MDCList, _super);\n function MDCList() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MDCList.prototype, \"vertical\", {\n set: function (value) {\n this.foundation_.setVerticalOrientation(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCList.prototype, \"listElements\", {\n get: function () {\n return [].slice.call(this.root_.querySelectorAll(\".\" + cssClasses.LIST_ITEM_CLASS));\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCList.prototype, \"wrapFocus\", {\n set: function (value) {\n this.foundation_.setWrapFocus(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCList.prototype, \"singleSelection\", {\n set: function (isSingleSelectionList) {\n this.foundation_.setSingleSelection(isSingleSelectionList);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCList.prototype, \"selectedIndex\", {\n get: function () {\n return this.foundation_.getSelectedIndex();\n },\n set: function (index) {\n this.foundation_.setSelectedIndex(index);\n },\n enumerable: true,\n configurable: true\n });\n MDCList.attachTo = function (root) {\n return new MDCList(root);\n };\n MDCList.prototype.initialSyncWithDOM = function () {\n this.handleClick_ = this.handleClickEvent_.bind(this);\n this.handleKeydown_ = this.handleKeydownEvent_.bind(this);\n this.focusInEventListener_ = this.handleFocusInEvent_.bind(this);\n this.focusOutEventListener_ = this.handleFocusOutEvent_.bind(this);\n this.listen('keydown', this.handleKeydown_);\n this.listen('click', this.handleClick_);\n this.listen('focusin', this.focusInEventListener_);\n this.listen('focusout', this.focusOutEventListener_);\n this.layout();\n this.initializeListType();\n };\n MDCList.prototype.destroy = function () {\n this.unlisten('keydown', this.handleKeydown_);\n this.unlisten('click', this.handleClick_);\n this.unlisten('focusin', this.focusInEventListener_);\n this.unlisten('focusout', this.focusOutEventListener_);\n };\n MDCList.prototype.layout = function () {\n var direction = this.root_.getAttribute(strings.ARIA_ORIENTATION);\n this.vertical = direction !== strings.ARIA_ORIENTATION_HORIZONTAL;\n // List items need to have at least tabindex=-1 to be focusable.\n [].slice.call(this.root_.querySelectorAll('.mdc-list-item:not([tabindex])'))\n .forEach(function (el) {\n el.setAttribute('tabindex', '-1');\n });\n // Child button/a elements are not tabbable until the list item is focused.\n [].slice.call(this.root_.querySelectorAll(strings.FOCUSABLE_CHILD_ELEMENTS))\n .forEach(function (el) { return el.setAttribute('tabindex', '-1'); });\n this.foundation_.layout();\n };\n /**\n * Initialize selectedIndex value based on pre-selected checkbox list items, single selection or radio.\n */\n MDCList.prototype.initializeListType = function () {\n var _this = this;\n var checkboxListItems = this.root_.querySelectorAll(strings.ARIA_ROLE_CHECKBOX_SELECTOR);\n var singleSelectedListItem = this.root_.querySelector(\"\\n .\" + cssClasses.LIST_ITEM_ACTIVATED_CLASS + \",\\n .\" + cssClasses.LIST_ITEM_SELECTED_CLASS + \"\\n \");\n var radioSelectedListItem = this.root_.querySelector(strings.ARIA_CHECKED_RADIO_SELECTOR);\n if (checkboxListItems.length) {\n var preselectedItems = this.root_.querySelectorAll(strings.ARIA_CHECKED_CHECKBOX_SELECTOR);\n this.selectedIndex =\n [].map.call(preselectedItems, function (listItem) { return _this.listElements.indexOf(listItem); });\n }\n else if (singleSelectedListItem) {\n if (singleSelectedListItem.classList.contains(cssClasses.LIST_ITEM_ACTIVATED_CLASS)) {\n this.foundation_.setUseActivatedClass(true);\n }\n this.singleSelection = true;\n this.selectedIndex = this.listElements.indexOf(singleSelectedListItem);\n }\n else if (radioSelectedListItem) {\n this.selectedIndex = this.listElements.indexOf(radioSelectedListItem);\n }\n };\n MDCList.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n var adapter = {\n addClassForElementIndex: function (index, className) {\n var element = _this.listElements[index];\n if (element) {\n element.classList.add(className);\n }\n },\n focusItemAtIndex: function (index) {\n var element = _this.listElements[index];\n if (element) {\n element.focus();\n }\n },\n getAttributeForElementIndex: function (index, attr) { return _this.listElements[index].getAttribute(attr); },\n getFocusedElementIndex: function () { return _this.listElements.indexOf(document.activeElement); },\n getListItemCount: function () { return _this.listElements.length; },\n hasCheckboxAtIndex: function (index) {\n var listItem = _this.listElements[index];\n return !!listItem.querySelector(strings.CHECKBOX_SELECTOR);\n },\n hasRadioAtIndex: function (index) {\n var listItem = _this.listElements[index];\n return !!listItem.querySelector(strings.RADIO_SELECTOR);\n },\n isCheckboxCheckedAtIndex: function (index) {\n var listItem = _this.listElements[index];\n var toggleEl = listItem.querySelector(strings.CHECKBOX_SELECTOR);\n return toggleEl.checked;\n },\n isFocusInsideList: function () {\n return _this.root_.contains(document.activeElement);\n },\n isRootFocused: function () { return document.activeElement === _this.root_; },\n notifyAction: function (index) {\n _this.emit(strings.ACTION_EVENT, { index: index }, /** shouldBubble */ true);\n },\n removeClassForElementIndex: function (index, className) {\n var element = _this.listElements[index];\n if (element) {\n element.classList.remove(className);\n }\n },\n setAttributeForElementIndex: function (index, attr, value) {\n var element = _this.listElements[index];\n if (element) {\n element.setAttribute(attr, value);\n }\n },\n setCheckedCheckboxOrRadioAtIndex: function (index, isChecked) {\n var listItem = _this.listElements[index];\n var toggleEl = listItem.querySelector(strings.CHECKBOX_RADIO_SELECTOR);\n toggleEl.checked = isChecked;\n var event = document.createEvent('Event');\n event.initEvent('change', true, true);\n toggleEl.dispatchEvent(event);\n },\n setTabIndexForListItemChildren: function (listItemIndex, tabIndexValue) {\n var element = _this.listElements[listItemIndex];\n var listItemChildren = [].slice.call(element.querySelectorAll(strings.CHILD_ELEMENTS_TO_TOGGLE_TABINDEX));\n listItemChildren.forEach(function (el) { return el.setAttribute('tabindex', tabIndexValue); });\n },\n };\n return new MDCListFoundation(adapter);\n };\n /**\n * Used to figure out which list item this event is targetting. Or returns -1 if\n * there is no list item\n */\n MDCList.prototype.getListItemIndex_ = function (evt) {\n var eventTarget = evt.target;\n var nearestParent = closest(eventTarget, \".\" + cssClasses.LIST_ITEM_CLASS + \", .\" + cssClasses.ROOT);\n // Get the index of the element if it is a list item.\n if (nearestParent && matches(nearestParent, \".\" + cssClasses.LIST_ITEM_CLASS)) {\n return this.listElements.indexOf(nearestParent);\n }\n return -1;\n };\n /**\n * Used to figure out which element was clicked before sending the event to the foundation.\n */\n MDCList.prototype.handleFocusInEvent_ = function (evt) {\n var index = this.getListItemIndex_(evt);\n this.foundation_.handleFocusIn(evt, index);\n };\n /**\n * Used to figure out which element was clicked before sending the event to the foundation.\n */\n MDCList.prototype.handleFocusOutEvent_ = function (evt) {\n var index = this.getListItemIndex_(evt);\n this.foundation_.handleFocusOut(evt, index);\n };\n /**\n * Used to figure out which element was focused when keydown event occurred before sending the event to the\n * foundation.\n */\n MDCList.prototype.handleKeydownEvent_ = function (evt) {\n var index = this.getListItemIndex_(evt);\n var target = evt.target;\n this.foundation_.handleKeydown(evt, target.classList.contains(cssClasses.LIST_ITEM_CLASS), index);\n };\n /**\n * Used to figure out which element was clicked before sending the event to the foundation.\n */\n MDCList.prototype.handleClickEvent_ = function (evt) {\n var index = this.getListItemIndex_(evt);\n var target = evt.target;\n // Toggle the checkbox only if it's not the target of the event, or the checkbox will have 2 change events.\n var toggleCheckbox = !matches(target, strings.CHECKBOX_RADIO_SELECTOR);\n this.foundation_.handleClick(index, toggleCheckbox);\n };\n return MDCList;\n}(MDCComponent));\nexport { MDCList };\n//# sourceMappingURL=component.js.map","// This file is autogenerated. It's used to publish CJS to npm.\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.tinycolor = factory());\n})(this, (function () { 'use strict';\n\n // https://github.com/bgrins/TinyColor\n // Brian Grinstead, MIT License\n\n const trimLeft = /^\\s+/;\n const trimRight = /\\s+$/;\n\n function tinycolor(color, opts) {\n color = color ? color : \"\";\n opts = opts || {};\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n (this._originalInput = color),\n (this._r = rgb.r),\n (this._g = rgb.g),\n (this._b = rgb.b),\n (this._a = rgb.a),\n (this._roundA = Math.round(100 * this._a) / 100),\n (this._format = opts.format || rgb.format);\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) this._r = Math.round(this._r);\n if (this._g < 1) this._g = Math.round(this._g);\n if (this._b < 1) this._b = Math.round(this._b);\n\n this._ok = rgb.ok;\n }\n\n tinycolor.prototype = {\n isDark: function () {\n return this.getBrightness() < 128;\n },\n isLight: function () {\n return !this.isDark();\n },\n isValid: function () {\n return this._ok;\n },\n getOriginalInput: function () {\n return this._originalInput;\n },\n getFormat: function () {\n return this._format;\n },\n getAlpha: function () {\n return this._a;\n },\n getBrightness: function () {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function () {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r / 255;\n GsRGB = rgb.g / 255;\n BsRGB = rgb.b / 255;\n\n if (RsRGB <= 0.03928) R = RsRGB / 12.92;\n else R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n if (GsRGB <= 0.03928) G = GsRGB / 12.92;\n else G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n if (BsRGB <= 0.03928) B = BsRGB / 12.92;\n else B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n },\n setAlpha: function (value) {\n this._a = boundAlpha(value);\n this._roundA = Math.round(100 * this._a) / 100;\n return this;\n },\n toHsv: function () {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function () {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = Math.round(hsv.h * 360),\n s = Math.round(hsv.s * 100),\n v = Math.round(hsv.v * 100);\n return this._a == 1\n ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\"\n : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this._roundA + \")\";\n },\n toHsl: function () {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function () {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = Math.round(hsl.h * 360),\n s = Math.round(hsl.s * 100),\n l = Math.round(hsl.l * 100);\n return this._a == 1\n ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\"\n : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this._roundA + \")\";\n },\n toHex: function (allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function (allow3Char) {\n return \"#\" + this.toHex(allow3Char);\n },\n toHex8: function (allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function (allow4Char) {\n return \"#\" + this.toHex8(allow4Char);\n },\n toRgb: function () {\n return {\n r: Math.round(this._r),\n g: Math.round(this._g),\n b: Math.round(this._b),\n a: this._a,\n };\n },\n toRgbString: function () {\n return this._a == 1\n ? \"rgb(\" +\n Math.round(this._r) +\n \", \" +\n Math.round(this._g) +\n \", \" +\n Math.round(this._b) +\n \")\"\n : \"rgba(\" +\n Math.round(this._r) +\n \", \" +\n Math.round(this._g) +\n \", \" +\n Math.round(this._b) +\n \", \" +\n this._roundA +\n \")\";\n },\n toPercentageRgb: function () {\n return {\n r: Math.round(bound01(this._r, 255) * 100) + \"%\",\n g: Math.round(bound01(this._g, 255) * 100) + \"%\",\n b: Math.round(bound01(this._b, 255) * 100) + \"%\",\n a: this._a,\n };\n },\n toPercentageRgbString: function () {\n return this._a == 1\n ? \"rgb(\" +\n Math.round(bound01(this._r, 255) * 100) +\n \"%, \" +\n Math.round(bound01(this._g, 255) * 100) +\n \"%, \" +\n Math.round(bound01(this._b, 255) * 100) +\n \"%)\"\n : \"rgba(\" +\n Math.round(bound01(this._r, 255) * 100) +\n \"%, \" +\n Math.round(bound01(this._g, 255) * 100) +\n \"%, \" +\n Math.round(bound01(this._b, 255) * 100) +\n \"%, \" +\n this._roundA +\n \")\";\n },\n toName: function () {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function (secondColor) {\n var hex8String = \"#\" + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = \"#\" + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return (\n \"progid:DXImageTransform.Microsoft.gradient(\" +\n gradientType +\n \"startColorstr=\" +\n hex8String +\n \",endColorstr=\" +\n secondHex8String +\n \")\"\n );\n },\n toString: function (format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat =\n !formatSet &&\n hasAlpha &&\n (format === \"hex\" ||\n format === \"hex6\" ||\n format === \"hex3\" ||\n format === \"hex4\" ||\n format === \"hex8\" ||\n format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function () {\n return tinycolor(this.toString());\n },\n\n _applyModification: function (fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function () {\n return this._applyModification(lighten, arguments);\n },\n brighten: function () {\n return this._applyModification(brighten, arguments);\n },\n darken: function () {\n return this._applyModification(darken, arguments);\n },\n desaturate: function () {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function () {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function () {\n return this._applyModification(greyscale, arguments);\n },\n spin: function () {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function (fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function () {\n return this._applyCombination(analogous, arguments);\n },\n complement: function () {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function () {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function () {\n return this._applyCombination(splitcomplement, arguments);\n },\n // Disabled until https://github.com/bgrins/TinyColor/issues/254\n // polyad: function (number) {\n // return this._applyCombination(polyad, [number]);\n // },\n triad: function () {\n return this._applyCombination(polyad, [3]);\n },\n tetrad: function () {\n return this._applyCombination(polyad, [4]);\n },\n };\n\n // If input is an object, force 1 into \"1.0\" to handle ratios properly\n // String input requires \"1.0\" as input, so 1 will be treated as 1\n tinycolor.fromRatio = function (color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n } else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n };\n\n // Given a string or object, convert that input to RGB\n // Possible string inputs:\n //\n // \"red\"\n // \"#f00\" or \"f00\"\n // \"#ff0000\" or \"ff0000\"\n // \"#ff000000\" or \"ff000000\"\n // \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n // \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n // \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n // \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n // \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n // \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n // \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n //\n function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (\n isValidCSSUnit(color.r) &&\n isValidCSSUnit(color.g) &&\n isValidCSSUnit(color.b)\n ) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n } else if (\n isValidCSSUnit(color.h) &&\n isValidCSSUnit(color.s) &&\n isValidCSSUnit(color.v)\n ) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n } else if (\n isValidCSSUnit(color.h) &&\n isValidCSSUnit(color.s) &&\n isValidCSSUnit(color.l)\n ) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n }\n\n // Conversion Functions\n // --------------------\n\n // `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n // \n\n // `rgbToRgb`\n // Handle bounds / percentage checking to conform to CSS color spec\n // \n // *Assumes:* r, g, b in [0, 255] or [0, 1]\n // *Returns:* { r, g, b } in [0, 255]\n function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n }\n\n // `rgbToHsl`\n // Converts an RGB color value to HSL.\n // *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n // *Returns:* { h, s, l } in [0,1]\n function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n l = (max + min) / 2;\n\n if (max == min) {\n h = s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n }\n\n // `hslToRgb`\n // Converts an HSL color value to RGB.\n // *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n // *Returns:* { r, g, b } in the set [0, 255]\n function hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n }\n\n // `rgbToHsv`\n // Converts an RGB color value to HSV\n // *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n // *Returns:* { h, s, v } in [0,1]\n function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if (max == min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n }\n\n // `hsvToRgb`\n // Converts an HSV color value to RGB.\n // *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n // *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n }\n\n // `rgbToHex`\n // Converts an RGB color to hex\n // Assumes r, g, and b are contained in the set [0, 255]\n // Returns a 3 or 6 character hex\n function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n\n // Return a 3 character hex if possible\n if (\n allow3Char &&\n hex[0].charAt(0) == hex[0].charAt(1) &&\n hex[1].charAt(0) == hex[1].charAt(1) &&\n hex[2].charAt(0) == hex[2].charAt(1)\n ) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n }\n\n // `rgbaToHex`\n // Converts an RGBA color plus alpha transparency to hex\n // Assumes r, g, b are contained in the set [0, 255] and\n // a in [0, 1]. Returns a 4 or 8 character rgba hex\n function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n\n // Return a 4 character hex if possible\n if (\n allow4Char &&\n hex[0].charAt(0) == hex[0].charAt(1) &&\n hex[1].charAt(0) == hex[1].charAt(1) &&\n hex[2].charAt(0) == hex[2].charAt(1) &&\n hex[3].charAt(0) == hex[3].charAt(1)\n ) {\n return (\n hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0)\n );\n }\n\n return hex.join(\"\");\n }\n\n // `rgbaToArgbHex`\n // Converts an RGBA color to an ARGB Hex8 string\n // Rarely used, but required for \"toFilter()\"\n function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n\n return hex.join(\"\");\n }\n\n // `equals`\n // Can be called with any tinycolor input\n tinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) return false;\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n };\n\n tinycolor.random = function () {\n return tinycolor.fromRatio({\n r: Math.random(),\n g: Math.random(),\n b: Math.random(),\n });\n };\n\n // Modification Functions\n // ----------------------\n // Thanks to less.js for some of the basics here\n // \n\n function desaturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n }\n\n function saturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n }\n\n function greyscale(color) {\n return tinycolor(color).desaturate(100);\n }\n\n function lighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n }\n\n function brighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var rgb = tinycolor(color).toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return tinycolor(rgb);\n }\n\n function darken(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n }\n\n // Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n // Values outside of this range will be wrapped into this range.\n function spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n }\n\n // Combination Functions\n // ---------------------\n // Thanks to jQuery xColor for some of the ideas behind these\n // \n\n function complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n }\n\n function polyad(color, number) {\n if (isNaN(number) || number <= 0) {\n throw new Error(\"Argument to polyad must be a positive number\");\n }\n var hsl = tinycolor(color).toHsl();\n var result = [tinycolor(color)];\n var step = 360 / number;\n for (var i = 1; i < number; i++) {\n result.push(tinycolor({ h: (hsl.h + i * step) % 360, s: hsl.s, l: hsl.l }));\n }\n\n return result;\n }\n\n function splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n ];\n }\n\n function analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n }\n\n function monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h,\n s = hsv.s,\n v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v }));\n v = (v + modification) % 1;\n }\n\n return ret;\n }\n\n // Utility Functions\n // ---------------------\n\n tinycolor.mix = function (color1, color2, amount) {\n amount = amount === 0 ? 0 : amount || 50;\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a,\n };\n\n return tinycolor(rgba);\n };\n\n // Readability Functions\n // ---------------------\n // false\n // tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\n tinycolor.isReadable = function (color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n };\n\n // `mostReadable`\n // Given a base color and a list of possible foreground or background\n // colors for that base, returns the most readable color.\n // Optionally returns Black or White if the most readable color is unreadable.\n // *Example*\n // tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n // tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n // tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n // tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\n tinycolor.mostReadable = function (baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors;\n level = args.level;\n size = args.size;\n\n for (var i = 0; i < colorList.length; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (\n tinycolor.isReadable(baseColor, bestColor, {\n level: level,\n size: size,\n }) ||\n !includeFallbackColors\n ) {\n return bestColor;\n } else {\n args.includeFallbackColors = false;\n return tinycolor.mostReadable(baseColor, [\"#fff\", \"#000\"], args);\n }\n };\n\n // Big List of Colors\n // ------------------\n // \n var names = (tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\",\n });\n\n // Make it easy to access colors via `hexNames[hex]`\n var hexNames = (tinycolor.hexNames = flip(names));\n\n // Utilities\n // ---------\n\n // `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\n function flip(o) {\n var flipped = {};\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n }\n\n // Return a valid alpha value [0,1] with all invalid values being set to 1\n function boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n }\n\n // Take input from [0, n] and return it as [0, 1]\n function bound01(n, max) {\n if (isOnePointZero(n)) n = \"100%\";\n\n var processPercent = isPercentage(n);\n n = Math.min(max, Math.max(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n }\n\n // Force a number between 0 and 1\n function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n }\n\n // Parse a base-16 hex value into a base-10 integer\n function parseIntFromHex(val) {\n return parseInt(val, 16);\n }\n\n // Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n // \n function isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf(\".\") != -1 && parseFloat(n) === 1;\n }\n\n // Check to see if string passed in is a percentage\n function isPercentage(n) {\n return typeof n === \"string\" && n.indexOf(\"%\") != -1;\n }\n\n // Force a hex value to have 2 characters\n function pad2(c) {\n return c.length == 1 ? \"0\" + c : \"\" + c;\n }\n\n // Replace a decimal with it's percentage value\n function convertToPercentage(n) {\n if (n <= 1) {\n n = n * 100 + \"%\";\n }\n\n return n;\n }\n\n // Converts a decimal to a hex value\n function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n }\n // Converts a hex value to a decimal\n function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n }\n\n var matchers = (function () {\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 =\n \"[\\\\s|\\\\(]+(\" +\n CSS_UNIT +\n \")[,|\\\\s]+(\" +\n CSS_UNIT +\n \")[,|\\\\s]+(\" +\n CSS_UNIT +\n \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 =\n \"[\\\\s|\\\\(]+(\" +\n CSS_UNIT +\n \")[,|\\\\s]+(\" +\n CSS_UNIT +\n \")[,|\\\\s]+(\" +\n CSS_UNIT +\n \")[,|\\\\s]+(\" +\n CSS_UNIT +\n \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n };\n })();\n\n // `isValidCSSUnit`\n // Take in a single string / number and check to see if it looks like a CSS unit\n // (see `matchers` above for definition).\n function isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n }\n\n // `stringInputToObject`\n // Permissive string parsing. Take in a number of formats, and output an object\n // based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n function stringInputToObject(color) {\n color = color.replace(trimLeft, \"\").replace(trimRight, \"\").toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n } else if (color == \"transparent\") {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\",\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\",\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n a: convertHexToDecimal(match[4] + \"\" + match[4]),\n format: named ? \"name\" : \"hex8\",\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n format: named ? \"name\" : \"hex\",\n };\n }\n\n return false;\n }\n\n function validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || { level: \"AA\", size: \"small\" };\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return { level: level, size: size };\n }\n\n return tinycolor;\n\n}));\n","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nvar MDCFoundation = /** @class */ (function () {\n function MDCFoundation(adapter) {\n if (adapter === void 0) { adapter = {}; }\n this.adapter_ = adapter;\n }\n Object.defineProperty(MDCFoundation, \"cssClasses\", {\n get: function () {\n // Classes extending MDCFoundation should implement this method to return an object which exports every\n // CSS class the foundation class needs as a property. e.g. {ACTIVE: 'mdc-component--active'}\n return {};\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCFoundation, \"strings\", {\n get: function () {\n // Classes extending MDCFoundation should implement this method to return an object which exports all\n // semantic strings as constants. e.g. {ARIA_ROLE: 'tablist'}\n return {};\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCFoundation, \"numbers\", {\n get: function () {\n // Classes extending MDCFoundation should implement this method to return an object which exports all\n // of its semantic numbers as constants. e.g. {ANIMATION_DELAY_MS: 350}\n return {};\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCFoundation, \"defaultAdapter\", {\n get: function () {\n // Classes extending MDCFoundation may choose to implement this getter in order to provide a convenient\n // way of viewing the necessary methods of an adapter. In the future, this could also be used for adapter\n // validation.\n return {};\n },\n enumerable: true,\n configurable: true\n });\n MDCFoundation.prototype.init = function () {\n // Subclasses should override this method to perform initialization routines (registering events, etc.)\n };\n MDCFoundation.prototype.destroy = function () {\n // Subclasses should override this method to perform de-initialization routines (de-registering events, etc.)\n };\n return MDCFoundation;\n}());\nexport { MDCFoundation };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCFoundation;\n//# sourceMappingURL=foundation.js.map","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (factory());\n}(this, (function () { 'use strict';\n\n /**\n * Applies the :focus-visible polyfill at the given scope.\n * A scope in this case is either the top-level Document or a Shadow Root.\n *\n * @param {(Document|ShadowRoot)} scope\n * @see https://github.com/WICG/focus-visible\n */\n function applyFocusVisiblePolyfill(scope) {\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n\n var inputTypesAllowlist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n\n /**\n * Helper function for legacy browsers and iframes which sometimes focus\n * elements like document, body, and non-interactive SVG.\n * @param {Element} el\n */\n function isValidFocusTarget(el) {\n if (\n el &&\n el !== document &&\n el.nodeName !== 'HTML' &&\n el.nodeName !== 'BODY' &&\n 'classList' in el &&\n 'contains' in el.classList\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} el\n * @return {boolean}\n */\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n\n if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !el.readOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Add the `focus-visible` class to the given element if it was not added by\n * the author.\n * @param {Element} el\n */\n function addFocusVisibleClass(el) {\n if (el.classList.contains('focus-visible')) {\n return;\n }\n el.classList.add('focus-visible');\n el.setAttribute('data-focus-visible-added', '');\n }\n\n /**\n * Remove the `focus-visible` class from the given element if it was not\n * originally added by the author.\n * @param {Element} el\n */\n function removeFocusVisibleClass(el) {\n if (!el.hasAttribute('data-focus-visible-added')) {\n return;\n }\n el.classList.remove('focus-visible');\n el.removeAttribute('data-focus-visible-added');\n }\n\n /**\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * Apply `focus-visible` to any current active element and keep track\n * of our keyboard modality state with `hadKeyboardEvent`.\n * @param {KeyboardEvent} e\n */\n function onKeyDown(e) {\n if (e.metaKey || e.altKey || e.ctrlKey) {\n return;\n }\n\n if (isValidFocusTarget(scope.activeElement)) {\n addFocusVisibleClass(scope.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n\n /**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n * @param {Event} e\n */\n function onPointerDown(e) {\n hadKeyboardEvent = false;\n }\n\n /**\n * On `focus`, add the `focus-visible` class to the target if:\n * - the target received focus as a result of keyboard navigation, or\n * - the event target is an element that will likely require interaction\n * via the keyboard (e.g. a text box)\n * @param {Event} e\n */\n function onFocus(e) {\n // Prevent IE from focusing the document or HTML element.\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleClass(e.target);\n }\n }\n\n /**\n * On `blur`, remove the `focus-visible` class from the target.\n * @param {Event} e\n */\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (\n e.target.classList.contains('focus-visible') ||\n e.target.hasAttribute('data-focus-visible-added')\n ) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function() {\n hadFocusVisibleRecently = false;\n }, 100);\n removeFocusVisibleClass(e.target);\n }\n }\n\n /**\n * If the user changes tabs, keep track of whether or not the previously\n * focused element had .focus-visible.\n * @param {Event} e\n */\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n addInitialPointerMoveListeners();\n }\n }\n\n /**\n * Add a group of listeners to detect usage of any pointing devices.\n * These listeners will be added when the polyfill first loads, and anytime\n * the window is blurred, so that they are active when the window regains\n * focus.\n */\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n\n /**\n * When the polfyill first loads, assume the user is in keyboard modality.\n * If any event is received from a pointing device (e.g. mouse, pointer,\n * touch), turn off keyboard modality.\n * This accounts for situations where focus enters the page from the URL bar.\n * @param {Event} e\n */\n function onInitialPointerMove(e) {\n // Work around a Safari quirk that fires a mousemove on whenever the\n // window blurs, even if you're tabbing out of the page. ¯\\_(ツ)_/¯\n if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n // For some kinds of state, we are interested in changes at the global scope\n // only. For example, global pointer input, global key presses and global\n // visibility change should affect the state at every scope:\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n\n addInitialPointerMoveListeners();\n\n // For focus and blur, we specifically care about state changes in the local\n // scope. This is because focus / blur events that originate from within a\n // shadow root are not re-dispatched from the host element if it was already\n // the active element in its own scope:\n scope.addEventListener('focus', onFocus, true);\n scope.addEventListener('blur', onBlur, true);\n\n // We detect that a node is a ShadowRoot by ensuring that it is a\n // DocumentFragment and also has a host property. This check covers native\n // implementation and polyfill implementation transparently. If we only cared\n // about the native implementation, we could just check if the scope was\n // an instance of a ShadowRoot.\n if (scope.nodeType === Node.DOCUMENT_FRAGMENT_NODE && scope.host) {\n // Since a ShadowRoot is a special kind of DocumentFragment, it does not\n // have a root element to add a class to. So, we add this attribute to the\n // host element instead:\n scope.host.setAttribute('data-js-focus-visible', '');\n } else if (scope.nodeType === Node.DOCUMENT_NODE) {\n document.documentElement.classList.add('js-focus-visible');\n document.documentElement.setAttribute('data-js-focus-visible', '');\n }\n }\n\n // It is important to wrap all references to global window and document in\n // these checks to support server-side rendering use cases\n // @see https://github.com/WICG/focus-visible/issues/199\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n // Make the polyfill helper globally available. This can be used as a signal\n // to interested libraries that wish to coordinate with the polyfill for e.g.,\n // applying the polyfill to a shadow root:\n window.applyFocusVisiblePolyfill = applyFocusVisiblePolyfill;\n\n // Notify interested libraries of the polyfill's presence, in case the\n // polyfill was loaded lazily:\n var event;\n\n try {\n event = new CustomEvent('focus-visible-polyfill-ready');\n } catch (error) {\n // IE11 does not support using CustomEvent as a constructor directly:\n event = document.createEvent('CustomEvent');\n event.initCustomEvent('focus-visible-polyfill-ready', false, false, {});\n }\n\n window.dispatchEvent(event);\n }\n\n if (typeof document !== 'undefined') {\n // Apply the polyfill to the global document, so that no JavaScript\n // coordination is required to use the polyfill in the top-level document:\n applyFocusVisiblePolyfill(document);\n }\n\n})));\n","/*\n * classList.js: Cross-browser full element.classList implementation.\n * 1.1.20170427\n *\n * By Eli Grey, http://eligrey.com\n * License: Dedicated to the public domain.\n * See https://github.com/eligrey/classList.js/blob/master/LICENSE.md\n */\n\n/*global self, document, DOMException */\n\n/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js */\n\nif (\"document\" in window.self) {\n\n// Full polyfill for browsers with no classList support\n// Including IE < Edge missing SVGElement.classList\nif (!(\"classList\" in document.createElement(\"_\")) \n\t|| document.createElementNS && !(\"classList\" in document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\"))) {\n\n(function (view) {\n\n\"use strict\";\n\nif (!('Element' in view)) return;\n\nvar\n\t classListProp = \"classList\"\n\t, protoProp = \"prototype\"\n\t, elemCtrProto = view.Element[protoProp]\n\t, objCtr = Object\n\t, strTrim = String[protoProp].trim || function () {\n\t\treturn this.replace(/^\\s+|\\s+$/g, \"\");\n\t}\n\t, arrIndexOf = Array[protoProp].indexOf || function (item) {\n\t\tvar\n\t\t\t i = 0\n\t\t\t, len = this.length\n\t\t;\n\t\tfor (; i < len; i++) {\n\t\t\tif (i in this && this[i] === item) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t}\n\t// Vendors: please allow content code to instantiate DOMExceptions\n\t, DOMEx = function (type, message) {\n\t\tthis.name = type;\n\t\tthis.code = DOMException[type];\n\t\tthis.message = message;\n\t}\n\t, checkTokenAndGetIndex = function (classList, token) {\n\t\tif (token === \"\") {\n\t\t\tthrow new DOMEx(\n\t\t\t\t \"SYNTAX_ERR\"\n\t\t\t\t, \"An invalid or illegal string was specified\"\n\t\t\t);\n\t\t}\n\t\tif (/\\s/.test(token)) {\n\t\t\tthrow new DOMEx(\n\t\t\t\t \"INVALID_CHARACTER_ERR\"\n\t\t\t\t, \"String contains an invalid character\"\n\t\t\t);\n\t\t}\n\t\treturn arrIndexOf.call(classList, token);\n\t}\n\t, ClassList = function (elem) {\n\t\tvar\n\t\t\t trimmedClasses = strTrim.call(elem.getAttribute(\"class\") || \"\")\n\t\t\t, classes = trimmedClasses ? trimmedClasses.split(/\\s+/) : []\n\t\t\t, i = 0\n\t\t\t, len = classes.length\n\t\t;\n\t\tfor (; i < len; i++) {\n\t\t\tthis.push(classes[i]);\n\t\t}\n\t\tthis._updateClassName = function () {\n\t\t\telem.setAttribute(\"class\", this.toString());\n\t\t};\n\t}\n\t, classListProto = ClassList[protoProp] = []\n\t, classListGetter = function () {\n\t\treturn new ClassList(this);\n\t}\n;\n// Most DOMException implementations don't allow calling DOMException's toString()\n// on non-DOMExceptions. Error's toString() is sufficient here.\nDOMEx[protoProp] = Error[protoProp];\nclassListProto.item = function (i) {\n\treturn this[i] || null;\n};\nclassListProto.contains = function (token) {\n\ttoken += \"\";\n\treturn checkTokenAndGetIndex(this, token) !== -1;\n};\nclassListProto.add = function () {\n\tvar\n\t\t tokens = arguments\n\t\t, i = 0\n\t\t, l = tokens.length\n\t\t, token\n\t\t, updated = false\n\t;\n\tdo {\n\t\ttoken = tokens[i] + \"\";\n\t\tif (checkTokenAndGetIndex(this, token) === -1) {\n\t\t\tthis.push(token);\n\t\t\tupdated = true;\n\t\t}\n\t}\n\twhile (++i < l);\n\n\tif (updated) {\n\t\tthis._updateClassName();\n\t}\n};\nclassListProto.remove = function () {\n\tvar\n\t\t tokens = arguments\n\t\t, i = 0\n\t\t, l = tokens.length\n\t\t, token\n\t\t, updated = false\n\t\t, index\n\t;\n\tdo {\n\t\ttoken = tokens[i] + \"\";\n\t\tindex = checkTokenAndGetIndex(this, token);\n\t\twhile (index !== -1) {\n\t\t\tthis.splice(index, 1);\n\t\t\tupdated = true;\n\t\t\tindex = checkTokenAndGetIndex(this, token);\n\t\t}\n\t}\n\twhile (++i < l);\n\n\tif (updated) {\n\t\tthis._updateClassName();\n\t}\n};\nclassListProto.toggle = function (token, force) {\n\ttoken += \"\";\n\n\tvar\n\t\t result = this.contains(token)\n\t\t, method = result ?\n\t\t\tforce !== true && \"remove\"\n\t\t:\n\t\t\tforce !== false && \"add\"\n\t;\n\n\tif (method) {\n\t\tthis[method](token);\n\t}\n\n\tif (force === true || force === false) {\n\t\treturn force;\n\t} else {\n\t\treturn !result;\n\t}\n};\nclassListProto.toString = function () {\n\treturn this.join(\" \");\n};\n\nif (objCtr.defineProperty) {\n\tvar classListPropDesc = {\n\t\t get: classListGetter\n\t\t, enumerable: true\n\t\t, configurable: true\n\t};\n\ttry {\n\t\tobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n\t} catch (ex) { // IE 8 doesn't support enumerable:true\n\t\t// adding undefined to fight this issue https://github.com/eligrey/classList.js/issues/36\n\t\t// modernie IE8-MSW7 machine has IE8 8.0.6001.18702 and is affected\n\t\tif (ex.number === undefined || ex.number === -0x7FF5EC54) {\n\t\t\tclassListPropDesc.enumerable = false;\n\t\t\tobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n\t\t}\n\t}\n} else if (objCtr[protoProp].__defineGetter__) {\n\telemCtrProto.__defineGetter__(classListProp, classListGetter);\n}\n\n}(window.self));\n\n}\n\n// There is full or partial native classList support, so just check if we need\n// to normalize the add/remove and toggle APIs.\n\n(function () {\n\t\"use strict\";\n\n\tvar testElement = document.createElement(\"_\");\n\n\ttestElement.classList.add(\"c1\", \"c2\");\n\n\t// Polyfill for IE 10/11 and Firefox <26, where classList.add and\n\t// classList.remove exist but support only one argument at a time.\n\tif (!testElement.classList.contains(\"c2\")) {\n\t\tvar createMethod = function(method) {\n\t\t\tvar original = DOMTokenList.prototype[method];\n\n\t\t\tDOMTokenList.prototype[method] = function(token) {\n\t\t\t\tvar i, len = arguments.length;\n\n\t\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\t\ttoken = arguments[i];\n\t\t\t\t\toriginal.call(this, token);\n\t\t\t\t}\n\t\t\t};\n\t\t};\n\t\tcreateMethod('add');\n\t\tcreateMethod('remove');\n\t}\n\n\ttestElement.classList.toggle(\"c3\", false);\n\n\t// Polyfill for IE 10 and Firefox <24, where classList.toggle does not\n\t// support the second argument.\n\tif (testElement.classList.contains(\"c3\")) {\n\t\tvar _toggle = DOMTokenList.prototype.toggle;\n\n\t\tDOMTokenList.prototype.toggle = function(token, force) {\n\t\t\tif (1 in arguments && !this.contains(token) === !force) {\n\t\t\t\treturn force;\n\t\t\t} else {\n\t\t\t\treturn _toggle.call(this, token);\n\t\t\t}\n\t\t};\n\n\t}\n\n\ttestElement = null;\n}());\n\n}\n","/*** IMPORTS FROM imports-loader ***/\n\nvar define = false; /* Disable AMD for misbehaving libraries */\n\n/*** IMPORTS FROM imports-loader ***/\n\nvar require = false;\n\n;(function(exports) {\n\n// export the class if we are in a Node-like system.\nif (typeof module === 'object' && module.exports === exports)\n exports = module.exports = SemVer;\n\n// The debug function is excluded entirely from the minified version.\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0';\n\nvar MAX_LENGTH = 256;\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\n\n// The actual regexps go on exports.re\nvar re = exports.re = [];\nvar src = exports.src = [];\nvar R = 0;\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\nvar NUMERICIDENTIFIER = R++;\nsrc[NUMERICIDENTIFIER] = '0|[1-9]\\\\d*';\nvar NUMERICIDENTIFIERLOOSE = R++;\nsrc[NUMERICIDENTIFIERLOOSE] = '[0-9]+';\n\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\nvar NONNUMERICIDENTIFIER = R++;\nsrc[NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*';\n\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\nvar MAINVERSION = R++;\nsrc[MAINVERSION] = '(' + src[NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[NUMERICIDENTIFIER] + ')';\n\nvar MAINVERSIONLOOSE = R++;\nsrc[MAINVERSIONLOOSE] = '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[NUMERICIDENTIFIERLOOSE] + ')';\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\nvar PRERELEASEIDENTIFIER = R++;\nsrc[PRERELEASEIDENTIFIER] = '(?:' + src[NUMERICIDENTIFIER] +\n '|' + src[NONNUMERICIDENTIFIER] + ')';\n\nvar PRERELEASEIDENTIFIERLOOSE = R++;\nsrc[PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[NUMERICIDENTIFIERLOOSE] +\n '|' + src[NONNUMERICIDENTIFIER] + ')';\n\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\nvar PRERELEASE = R++;\nsrc[PRERELEASE] = '(?:-(' + src[PRERELEASEIDENTIFIER] +\n '(?:\\\\.' + src[PRERELEASEIDENTIFIER] + ')*))';\n\nvar PRERELEASELOOSE = R++;\nsrc[PRERELEASELOOSE] = '(?:-?(' + src[PRERELEASEIDENTIFIERLOOSE] +\n '(?:\\\\.' + src[PRERELEASEIDENTIFIERLOOSE] + ')*))';\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\nvar BUILDIDENTIFIER = R++;\nsrc[BUILDIDENTIFIER] = '[0-9A-Za-z-]+';\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\nvar BUILD = R++;\nsrc[BUILD] = '(?:\\\\+(' + src[BUILDIDENTIFIER] +\n '(?:\\\\.' + src[BUILDIDENTIFIER] + ')*))';\n\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\nvar FULL = R++;\nvar FULLPLAIN = 'v?' + src[MAINVERSION] +\n src[PRERELEASE] + '?' +\n src[BUILD] + '?';\n\nsrc[FULL] = '^' + FULLPLAIN + '$';\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\nvar LOOSEPLAIN = '[v=\\\\s]*' + src[MAINVERSIONLOOSE] +\n src[PRERELEASELOOSE] + '?' +\n src[BUILD] + '?';\n\nvar LOOSE = R++;\nsrc[LOOSE] = '^' + LOOSEPLAIN + '$';\n\nvar GTLT = R++;\nsrc[GTLT] = '((?:<|>)?=?)';\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\nvar XRANGEIDENTIFIERLOOSE = R++;\nsrc[XRANGEIDENTIFIERLOOSE] = src[NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*';\nvar XRANGEIDENTIFIER = R++;\nsrc[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + '|x|X|\\\\*';\n\nvar XRANGEPLAIN = R++;\nsrc[XRANGEPLAIN] = '[v=\\\\s]*(' + src[XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[XRANGEIDENTIFIER] + ')' +\n '(?:' + src[PRERELEASE] + ')?' +\n src[BUILD] + '?' +\n ')?)?';\n\nvar XRANGEPLAINLOOSE = R++;\nsrc[XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:' + src[PRERELEASELOOSE] + ')?' +\n src[BUILD] + '?' +\n ')?)?';\n\nvar XRANGE = R++;\nsrc[XRANGE] = '^' + src[GTLT] + '\\\\s*' + src[XRANGEPLAIN] + '$';\nvar XRANGELOOSE = R++;\nsrc[XRANGELOOSE] = '^' + src[GTLT] + '\\\\s*' + src[XRANGEPLAINLOOSE] + '$';\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\nvar LONETILDE = R++;\nsrc[LONETILDE] = '(?:~>?)';\n\nvar TILDETRIM = R++;\nsrc[TILDETRIM] = '(\\\\s*)' + src[LONETILDE] + '\\\\s+';\nre[TILDETRIM] = new RegExp(src[TILDETRIM], 'g');\nvar tildeTrimReplace = '$1~';\n\nvar TILDE = R++;\nsrc[TILDE] = '^' + src[LONETILDE] + src[XRANGEPLAIN] + '$';\nvar TILDELOOSE = R++;\nsrc[TILDELOOSE] = '^' + src[LONETILDE] + src[XRANGEPLAINLOOSE] + '$';\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\nvar LONECARET = R++;\nsrc[LONECARET] = '(?:\\\\^)';\n\nvar CARETTRIM = R++;\nsrc[CARETTRIM] = '(\\\\s*)' + src[LONECARET] + '\\\\s+';\nre[CARETTRIM] = new RegExp(src[CARETTRIM], 'g');\nvar caretTrimReplace = '$1^';\n\nvar CARET = R++;\nsrc[CARET] = '^' + src[LONECARET] + src[XRANGEPLAIN] + '$';\nvar CARETLOOSE = R++;\nsrc[CARETLOOSE] = '^' + src[LONECARET] + src[XRANGEPLAINLOOSE] + '$';\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\nvar COMPARATORLOOSE = R++;\nsrc[COMPARATORLOOSE] = '^' + src[GTLT] + '\\\\s*(' + LOOSEPLAIN + ')$|^$';\nvar COMPARATOR = R++;\nsrc[COMPARATOR] = '^' + src[GTLT] + '\\\\s*(' + FULLPLAIN + ')$|^$';\n\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\nvar COMPARATORTRIM = R++;\nsrc[COMPARATORTRIM] = '(\\\\s*)' + src[GTLT] +\n '\\\\s*(' + LOOSEPLAIN + '|' + src[XRANGEPLAIN] + ')';\n\n// this one has to use the /g flag\nre[COMPARATORTRIM] = new RegExp(src[COMPARATORTRIM], 'g');\nvar comparatorTrimReplace = '$1$2$3';\n\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\nvar HYPHENRANGE = R++;\nsrc[HYPHENRANGE] = '^\\\\s*(' + src[XRANGEPLAIN] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[XRANGEPLAIN] + ')' +\n '\\\\s*$';\n\nvar HYPHENRANGELOOSE = R++;\nsrc[HYPHENRANGELOOSE] = '^\\\\s*(' + src[XRANGEPLAINLOOSE] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[XRANGEPLAINLOOSE] + ')' +\n '\\\\s*$';\n\n// Star ranges basically just allow anything at all.\nvar STAR = R++;\nsrc[STAR] = '(<|>)?=?\\\\s*\\\\*';\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n ;\n if (!re[i])\n re[i] = new RegExp(src[i]);\n}\n\nexports.parse = parse;\nfunction parse(version, loose) {\n if (version instanceof SemVer)\n return version;\n\n if (typeof version !== 'string')\n return null;\n\n if (version.length > MAX_LENGTH)\n return null;\n\n var r = loose ? re[LOOSE] : re[FULL];\n if (!r.test(version))\n return null;\n\n try {\n return new SemVer(version, loose);\n } catch (er) {\n return null;\n }\n}\n\nexports.valid = valid;\nfunction valid(version, loose) {\n var v = parse(version, loose);\n return v ? v.version : null;\n}\n\n\nexports.clean = clean;\nfunction clean(version, loose) {\n var s = parse(version.trim().replace(/^[=v]+/, ''), loose);\n return s ? s.version : null;\n}\n\nexports.SemVer = SemVer;\n\nfunction SemVer(version, loose) {\n if (version instanceof SemVer) {\n if (version.loose === loose)\n return version;\n else\n version = version.version;\n } else if (typeof version !== 'string') {\n throw new TypeError('Invalid Version: ' + version);\n }\n\n if (version.length > MAX_LENGTH)\n throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n\n if (!(this instanceof SemVer))\n return new SemVer(version, loose);\n\n ;\n this.loose = loose;\n var m = version.trim().match(loose ? re[LOOSE] : re[FULL]);\n\n if (!m)\n throw new TypeError('Invalid Version: ' + version);\n\n this.raw = version;\n\n // these are actually numbers\n this.major = +m[1];\n this.minor = +m[2];\n this.patch = +m[3];\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0)\n throw new TypeError('Invalid major version')\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0)\n throw new TypeError('Invalid minor version')\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0)\n throw new TypeError('Invalid patch version')\n\n // numberify any prerelease numeric ids\n if (!m[4])\n this.prerelease = [];\n else\n this.prerelease = m[4].split('.').map(function(id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER)\n return num\n }\n return id;\n });\n\n this.build = m[5] ? m[5].split('.') : [];\n this.format();\n}\n\nSemVer.prototype.format = function() {\n this.version = this.major + '.' + this.minor + '.' + this.patch;\n if (this.prerelease.length)\n this.version += '-' + this.prerelease.join('.');\n return this.version;\n};\n\nSemVer.prototype.inspect = function() {\n return '';\n};\n\nSemVer.prototype.toString = function() {\n return this.version;\n};\n\nSemVer.prototype.compare = function(other) {\n ;\n if (!(other instanceof SemVer))\n other = new SemVer(other, this.loose);\n\n return this.compareMain(other) || this.comparePre(other);\n};\n\nSemVer.prototype.compareMain = function(other) {\n if (!(other instanceof SemVer))\n other = new SemVer(other, this.loose);\n\n return compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch);\n};\n\nSemVer.prototype.comparePre = function(other) {\n if (!(other instanceof SemVer))\n other = new SemVer(other, this.loose);\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length)\n return -1;\n else if (!this.prerelease.length && other.prerelease.length)\n return 1;\n else if (!this.prerelease.length && !other.prerelease.length)\n return 0;\n\n var i = 0;\n do {\n var a = this.prerelease[i];\n var b = other.prerelease[i];\n ;\n if (a === undefined && b === undefined)\n return 0;\n else if (b === undefined)\n return 1;\n else if (a === undefined)\n return -1;\n else if (a === b)\n continue;\n else\n return compareIdentifiers(a, b);\n } while (++i);\n};\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function(release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc('pre', identifier);\n break;\n case 'preminor':\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc('pre', identifier);\n break;\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0;\n this.inc('patch', identifier);\n this.inc('pre', identifier);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0)\n this.inc('patch', identifier);\n this.inc('pre', identifier);\n break;\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0)\n this.major++;\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0)\n this.minor++;\n this.patch = 0;\n this.prerelease = [];\n break;\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0)\n this.patch++;\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0)\n this.prerelease = [0];\n else {\n var i = this.prerelease.length;\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++;\n i = -2;\n }\n }\n if (i === -1) // didn't increment anything\n this.prerelease.push(0);\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1]))\n this.prerelease = [identifier, 0];\n } else\n this.prerelease = [identifier, 0];\n }\n break;\n\n default:\n throw new Error('invalid increment argument: ' + release);\n }\n this.format();\n return this;\n};\n\nexports.inc = inc;\nfunction inc(version, release, loose, identifier) {\n if (typeof(loose) === 'string') {\n identifier = loose;\n loose = undefined;\n }\n\n try {\n return new SemVer(version, loose).inc(release, identifier).version;\n } catch (er) {\n return null;\n }\n}\n\nexports.diff = diff;\nfunction diff(version1, version2) {\n if (eq(version1, version2)) {\n return null;\n } else {\n var v1 = parse(version1);\n var v2 = parse(version2);\n if (v1.prerelease.length || v2.prerelease.length) {\n for (var key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return 'pre'+key;\n }\n }\n }\n return 'prerelease';\n }\n for (var key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return key;\n }\n }\n }\n }\n}\n\nexports.compareIdentifiers = compareIdentifiers;\n\nvar numeric = /^[0-9]+$/;\nfunction compareIdentifiers(a, b) {\n var anum = numeric.test(a);\n var bnum = numeric.test(b);\n\n if (anum && bnum) {\n a = +a;\n b = +b;\n }\n\n return (anum && !bnum) ? -1 :\n (bnum && !anum) ? 1 :\n a < b ? -1 :\n a > b ? 1 :\n 0;\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers;\nfunction rcompareIdentifiers(a, b) {\n return compareIdentifiers(b, a);\n}\n\nexports.major = major;\nfunction major(a, loose) {\n return new SemVer(a, loose).major;\n}\n\nexports.minor = minor;\nfunction minor(a, loose) {\n return new SemVer(a, loose).minor;\n}\n\nexports.patch = patch;\nfunction patch(a, loose) {\n return new SemVer(a, loose).patch;\n}\n\nexports.compare = compare;\nfunction compare(a, b, loose) {\n return new SemVer(a, loose).compare(b);\n}\n\nexports.compareLoose = compareLoose;\nfunction compareLoose(a, b) {\n return compare(a, b, true);\n}\n\nexports.rcompare = rcompare;\nfunction rcompare(a, b, loose) {\n return compare(b, a, loose);\n}\n\nexports.sort = sort;\nfunction sort(list, loose) {\n return list.sort(function(a, b) {\n return exports.compare(a, b, loose);\n });\n}\n\nexports.rsort = rsort;\nfunction rsort(list, loose) {\n return list.sort(function(a, b) {\n return exports.rcompare(a, b, loose);\n });\n}\n\nexports.gt = gt;\nfunction gt(a, b, loose) {\n return compare(a, b, loose) > 0;\n}\n\nexports.lt = lt;\nfunction lt(a, b, loose) {\n return compare(a, b, loose) < 0;\n}\n\nexports.eq = eq;\nfunction eq(a, b, loose) {\n return compare(a, b, loose) === 0;\n}\n\nexports.neq = neq;\nfunction neq(a, b, loose) {\n return compare(a, b, loose) !== 0;\n}\n\nexports.gte = gte;\nfunction gte(a, b, loose) {\n return compare(a, b, loose) >= 0;\n}\n\nexports.lte = lte;\nfunction lte(a, b, loose) {\n return compare(a, b, loose) <= 0;\n}\n\nexports.cmp = cmp;\nfunction cmp(a, op, b, loose) {\n var ret;\n switch (op) {\n case '===':\n if (typeof a === 'object') a = a.version;\n if (typeof b === 'object') b = b.version;\n ret = a === b;\n break;\n case '!==':\n if (typeof a === 'object') a = a.version;\n if (typeof b === 'object') b = b.version;\n ret = a !== b;\n break;\n case '': case '=': case '==': ret = eq(a, b, loose); break;\n case '!=': ret = neq(a, b, loose); break;\n case '>': ret = gt(a, b, loose); break;\n case '>=': ret = gte(a, b, loose); break;\n case '<': ret = lt(a, b, loose); break;\n case '<=': ret = lte(a, b, loose); break;\n default: throw new TypeError('Invalid operator: ' + op);\n }\n return ret;\n}\n\nexports.Comparator = Comparator;\nfunction Comparator(comp, loose) {\n if (comp instanceof Comparator) {\n if (comp.loose === loose)\n return comp;\n else\n comp = comp.value;\n }\n\n if (!(this instanceof Comparator))\n return new Comparator(comp, loose);\n\n ;\n this.loose = loose;\n this.parse(comp);\n\n if (this.semver === ANY)\n this.value = '';\n else\n this.value = this.operator + this.semver.version;\n\n ;\n}\n\nvar ANY = {};\nComparator.prototype.parse = function(comp) {\n var r = this.loose ? re[COMPARATORLOOSE] : re[COMPARATOR];\n var m = comp.match(r);\n\n if (!m)\n throw new TypeError('Invalid comparator: ' + comp);\n\n this.operator = m[1];\n if (this.operator === '=')\n this.operator = '';\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2])\n this.semver = ANY;\n else\n this.semver = new SemVer(m[2], this.loose);\n};\n\nComparator.prototype.inspect = function() {\n return '';\n};\n\nComparator.prototype.toString = function() {\n return this.value;\n};\n\nComparator.prototype.test = function(version) {\n ;\n\n if (this.semver === ANY)\n return true;\n\n if (typeof version === 'string')\n version = new SemVer(version, this.loose);\n\n return cmp(version, this.operator, this.semver, this.loose);\n};\n\n\nexports.Range = Range;\nfunction Range(range, loose) {\n if ((range instanceof Range) && range.loose === loose)\n return range;\n\n if (!(this instanceof Range))\n return new Range(range, loose);\n\n this.loose = loose;\n\n // First, split based on boolean or ||\n this.raw = range;\n this.set = range.split(/\\s*\\|\\|\\s*/).map(function(range) {\n return this.parseRange(range.trim());\n }, this).filter(function(c) {\n // throw out any that are not relevant for whatever reason\n return c.length;\n });\n\n if (!this.set.length) {\n throw new TypeError('Invalid SemVer Range: ' + range);\n }\n\n this.format();\n}\n\nRange.prototype.inspect = function() {\n return '';\n};\n\nRange.prototype.format = function() {\n this.range = this.set.map(function(comps) {\n return comps.join(' ').trim();\n }).join('||').trim();\n return this.range;\n};\n\nRange.prototype.toString = function() {\n return this.range;\n};\n\nRange.prototype.parseRange = function(range) {\n var loose = this.loose;\n range = range.trim();\n ;\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? re[HYPHENRANGELOOSE] : re[HYPHENRANGE];\n range = range.replace(hr, hyphenReplace);\n ;\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[COMPARATORTRIM], comparatorTrimReplace);\n ;\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[TILDETRIM], tildeTrimReplace);\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[CARETTRIM], caretTrimReplace);\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ');\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n var compRe = loose ? re[COMPARATORLOOSE] : re[COMPARATOR];\n var set = range.split(' ').map(function(comp) {\n return parseComparator(comp, loose);\n }).join(' ').split(/\\s+/);\n if (this.loose) {\n // in loose mode, throw out any that are not valid comparators\n set = set.filter(function(comp) {\n return !!comp.match(compRe);\n });\n }\n set = set.map(function(comp) {\n return new Comparator(comp, loose);\n });\n\n return set;\n};\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators;\nfunction toComparators(range, loose) {\n return new Range(range, loose).set.map(function(comp) {\n return comp.map(function(c) {\n return c.value;\n }).join(' ').trim().split(' ');\n });\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator(comp, loose) {\n ;\n comp = replaceCarets(comp, loose);\n ;\n comp = replaceTildes(comp, loose);\n ;\n comp = replaceXRanges(comp, loose);\n ;\n comp = replaceStars(comp, loose);\n ;\n return comp;\n}\n\nfunction isX(id) {\n return !id || id.toLowerCase() === 'x' || id === '*';\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes(comp, loose) {\n return comp.trim().split(/\\s+/).map(function(comp) {\n return replaceTilde(comp, loose);\n }).join(' ');\n}\n\nfunction replaceTilde(comp, loose) {\n var r = loose ? re[TILDELOOSE] : re[TILDE];\n return comp.replace(r, function(_, M, m, p, pr) {\n ;\n var ret;\n\n if (isX(M))\n ret = '';\n else if (isX(m))\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0';\n else if (isX(p))\n // ~1.2 == >=1.2.0- <1.3.0-\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0';\n else if (pr) {\n ;\n if (pr.charAt(0) !== '-')\n pr = '-' + pr;\n ret = '>=' + M + '.' + m + '.' + p + pr +\n ' <' + M + '.' + (+m + 1) + '.0';\n } else\n // ~1.2.3 == >=1.2.3 <1.3.0\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0';\n\n ;\n return ret;\n });\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets(comp, loose) {\n return comp.trim().split(/\\s+/).map(function(comp) {\n return replaceCaret(comp, loose);\n }).join(' ');\n}\n\nfunction replaceCaret(comp, loose) {\n ;\n var r = loose ? re[CARETLOOSE] : re[CARET];\n return comp.replace(r, function(_, M, m, p, pr) {\n ;\n var ret;\n\n if (isX(M))\n ret = '';\n else if (isX(m))\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0';\n else if (isX(p)) {\n if (M === '0')\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0';\n else\n ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0';\n } else if (pr) {\n ;\n if (pr.charAt(0) !== '-')\n pr = '-' + pr;\n if (M === '0') {\n if (m === '0')\n ret = '>=' + M + '.' + m + '.' + p + pr +\n ' <' + M + '.' + m + '.' + (+p + 1);\n else\n ret = '>=' + M + '.' + m + '.' + p + pr +\n ' <' + M + '.' + (+m + 1) + '.0';\n } else\n ret = '>=' + M + '.' + m + '.' + p + pr +\n ' <' + (+M + 1) + '.0.0';\n } else {\n ;\n if (M === '0') {\n if (m === '0')\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + m + '.' + (+p + 1);\n else\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0';\n } else\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + (+M + 1) + '.0.0';\n }\n\n ;\n return ret;\n });\n}\n\nfunction replaceXRanges(comp, loose) {\n ;\n return comp.split(/\\s+/).map(function(comp) {\n return replaceXRange(comp, loose);\n }).join(' ');\n}\n\nfunction replaceXRange(comp, loose) {\n comp = comp.trim();\n var r = loose ? re[XRANGELOOSE] : re[XRANGE];\n return comp.replace(r, function(ret, gtlt, M, m, p, pr) {\n ;\n var xM = isX(M);\n var xm = xM || isX(m);\n var xp = xm || isX(p);\n var anyX = xp;\n\n if (gtlt === '=' && anyX)\n gtlt = '';\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0';\n } else {\n // nothing is forbidden\n ret = '*';\n }\n } else if (gtlt && anyX) {\n // replace X with 0\n if (xm)\n m = 0;\n if (xp)\n p = 0;\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = '>=';\n if (xm) {\n M = +M + 1;\n m = 0;\n p = 0;\n } else if (xp) {\n m = +m + 1;\n p = 0;\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm)\n M = +M + 1\n else\n m = +m + 1\n }\n\n ret = gtlt + M + '.' + m + '.' + p;\n } else if (xm) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0';\n } else if (xp) {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0';\n }\n\n ;\n\n return ret;\n });\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars(comp, loose) {\n ;\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(re[STAR], '');\n}\n\n// This function is passed to string.replace(re[HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) {\n\n if (isX(fM))\n from = '';\n else if (isX(fm))\n from = '>=' + fM + '.0.0';\n else if (isX(fp))\n from = '>=' + fM + '.' + fm + '.0';\n else\n from = '>=' + from;\n\n if (isX(tM))\n to = '';\n else if (isX(tm))\n to = '<' + (+tM + 1) + '.0.0';\n else if (isX(tp))\n to = '<' + tM + '.' + (+tm + 1) + '.0';\n else if (tpr)\n to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr;\n else\n to = '<=' + to;\n\n return (from + ' ' + to).trim();\n}\n\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function(version) {\n if (!version)\n return false;\n\n if (typeof version === 'string')\n version = new SemVer(version, this.loose);\n\n for (var i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version))\n return true;\n }\n return false;\n};\n\nfunction testSet(set, version) {\n for (var i = 0; i < set.length; i++) {\n if (!set[i].test(version))\n return false;\n }\n\n if (version.prerelease.length) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (var i = 0; i < set.length; i++) {\n ;\n if (set[i].semver === ANY)\n continue;\n\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver;\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch)\n return true;\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false;\n }\n\n return true;\n}\n\nexports.satisfies = satisfies;\nfunction satisfies(version, range, loose) {\n try {\n range = new Range(range, loose);\n } catch (er) {\n return false;\n }\n return range.test(version);\n}\n\nexports.maxSatisfying = maxSatisfying;\nfunction maxSatisfying(versions, range, loose) {\n return versions.filter(function(version) {\n return satisfies(version, range, loose);\n }).sort(function(a, b) {\n return rcompare(a, b, loose);\n })[0] || null;\n}\n\nexports.validRange = validRange;\nfunction validRange(range, loose) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, loose).range || '*';\n } catch (er) {\n return null;\n }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr;\nfunction ltr(version, range, loose) {\n return outside(version, range, '<', loose);\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr;\nfunction gtr(version, range, loose) {\n return outside(version, range, '>', loose);\n}\n\nexports.outside = outside;\nfunction outside(version, range, hilo, loose) {\n version = new SemVer(version, loose);\n range = new Range(range, loose);\n\n var gtfn, ltefn, ltfn, comp, ecomp;\n switch (hilo) {\n case '>':\n gtfn = gt;\n ltefn = lte;\n ltfn = lt;\n comp = '>';\n ecomp = '>=';\n break;\n case '<':\n gtfn = lt;\n ltefn = gte;\n ltfn = gt;\n comp = '<';\n ecomp = '<=';\n break;\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"');\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, loose)) {\n return false;\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i];\n\n var high = null;\n var low = null;\n\n comparators.forEach(function(comparator) {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator;\n low = low || comparator;\n if (gtfn(comparator.semver, high.semver, loose)) {\n high = comparator;\n } else if (ltfn(comparator.semver, low.semver, loose)) {\n low = comparator;\n }\n });\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false;\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false;\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false;\n }\n }\n return true;\n}\n\n// Use the define() function if we're in AMD land\nif (typeof define === 'function' && define.amd)\n define(exports);\n\n})(\n typeof exports === 'object' ? exports :\n typeof define === 'function' && define.amd ? {} :\n semver = {}\n);\n","/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under the MIT license\n */\n\nif (typeof jQuery === 'undefined') {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery')\n}\n\n+function ($) {\n 'use strict';\n var version = $.fn.jquery.split(' ')[0].split('.')\n if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 3)) {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4')\n }\n}(jQuery);\n\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\n/* ========================================================================\n * Bootstrap: alert.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#alerts\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// // ALERT CLASS DEFINITION\n// // ======================\n\n// var dismiss = '[data-dismiss=\"alert\"]'\n// var Alert = function (el) {\n// $(el).on('click', dismiss, this.close)\n// }\n\n// Alert.VERSION = '3.4.1'\n\n// Alert.TRANSITION_DURATION = 150\n\n// Alert.prototype.close = function (e) {\n// var $this = $(this)\n// var selector = $this.attr('data-target')\n\n// if (!selector) {\n// selector = $this.attr('href')\n// selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n// }\n\n// selector = selector === '#' ? [] : selector\n// var $parent = $(document).find(selector)\n\n// if (e) e.preventDefault()\n\n// if (!$parent.length) {\n// $parent = $this.closest('.alert')\n// }\n\n// $parent.trigger(e = $.Event('close.bs.alert'))\n\n// if (e.isDefaultPrevented()) return\n\n// $parent.removeClass('in')\n\n// function removeElement() {\n// // detach from parent, fire event then clean up data\n// $parent.detach().trigger('closed.bs.alert').remove()\n// }\n\n// $.support.transition && $parent.hasClass('fade') ?\n// $parent\n// .one('bsTransitionEnd', removeElement)\n// .emulateTransitionEnd(Alert.TRANSITION_DURATION) :\n// removeElement()\n// }\n\n\n// // ALERT PLUGIN DEFINITION\n// // =======================\n\n// function Plugin(option) {\n// return this.each(function () {\n// var $this = $(this)\n// var data = $this.data('bs.alert')\n\n// if (!data) $this.data('bs.alert', (data = new Alert(this)))\n// if (typeof option == 'string') data[option].call($this)\n// })\n// }\n\n// var old = $.fn.alert\n\n// $.fn.alert = Plugin\n// $.fn.alert.Constructor = Alert\n\n\n// // ALERT NO CONFLICT\n// // =================\n\n// $.fn.alert.noConflict = function () {\n// $.fn.alert = old\n// return this\n// }\n\n\n// // ALERT DATA-API\n// // ==============\n\n// $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\n\n// }(jQuery);\n\n/* ========================================================================\n * Bootstrap: button.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#buttons\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 // BUTTON PUBLIC CLASS DEFINITION\n // ==============================\n\n var Button = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Button.DEFAULTS, options)\n this.isLoading = false\n }\n\n Button.VERSION = '3.4.1'\n\n Button.DEFAULTS = {\n loadingText: 'loading...'\n }\n\n Button.prototype.setState = function (state) {\n var d = 'disabled'\n var $el = this.$element\n var val = $el.is('input') ? 'val' : 'html'\n var data = $el.data()\n\n state += 'Text'\n\n if (data.resetText == null) $el.data('resetText', $el[val]())\n\n // push to event loop to allow forms to submit\n setTimeout($.proxy(function () {\n $el[val](data[state] == null ? this.options[state] : data[state])\n\n if (state == 'loadingText') {\n this.isLoading = true\n $el.addClass(d).attr(d, d).prop(d, true)\n } else if (this.isLoading) {\n this.isLoading = false\n $el.removeClass(d).removeAttr(d).prop(d, false)\n }\n }, this), 0)\n }\n\n Button.prototype.toggle = function () {\n var changed = true\n var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\n\n if ($parent.length) {\n var $input = this.$element.find('input')\n if ($input.prop('type') == 'radio') {\n if ($input.prop('checked')) changed = false\n $parent.find('.active').removeClass('active')\n this.$element.addClass('active')\n } else if ($input.prop('type') == 'checkbox') {\n if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false\n this.$element.toggleClass('active')\n }\n $input.prop('checked', this.$element.hasClass('active'))\n if (changed) $input.trigger('change')\n } else {\n this.$element.attr('aria-pressed', !this.$element.hasClass('active'))\n this.$element.toggleClass('active')\n }\n }\n\n\n // BUTTON PLUGIN DEFINITION\n // ========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.button')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.button', (data = new Button(this, options)))\n\n if (option == 'toggle') data.toggle()\n else if (option) data.setState(option)\n })\n }\n\n var old = $.fn.button\n\n $.fn.button = Plugin\n $.fn.button.Constructor = Button\n\n\n // BUTTON NO CONFLICT\n // ==================\n\n $.fn.button.noConflict = function () {\n $.fn.button = old\n return this\n }\n\n\n // BUTTON DATA-API\n // ===============\n\n $(document)\n .on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n var $btn = $(e.target).closest('.btn')\n Plugin.call($btn, 'toggle')\n if (!($(e.target).is('input[type=\"radio\"], input[type=\"checkbox\"]'))) {\n // Prevent double click on radios, and the double selections (so cancellation) on checkboxes\n e.preventDefault()\n // The target component still receive the focus\n if ($btn.is('input,button')) $btn.trigger('focus')\n else $btn.find('input:visible,button:visible').first().trigger('focus')\n }\n })\n .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: carousel.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#carousel\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 // CAROUSEL CLASS DEFINITION\n // =========================\n\n var Carousel = function (element, options) {\n this.$element = $(element)\n this.$indicators = this.$element.find('.carousel-indicators')\n this.options = options\n this.paused = null\n this.sliding = null\n this.interval = null\n this.$active = null\n this.$items = null\n\n this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))\n\n this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element\n .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\n .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\n }\n\n Carousel.VERSION = '3.4.1'\n\n Carousel.TRANSITION_DURATION = 600\n\n Carousel.DEFAULTS = {\n interval: 5000,\n pause: 'hover',\n wrap: true,\n keyboard: true\n }\n\n Carousel.prototype.keydown = function (e) {\n if (/input|textarea/i.test(e.target.tagName)) return\n switch (e.which) {\n case 37: this.prev(); break\n case 39: this.next(); break\n default: return\n }\n\n e.preventDefault()\n }\n\n Carousel.prototype.cycle = function (e) {\n e || (this.paused = false)\n\n this.interval && clearInterval(this.interval)\n\n this.options.interval\n && !this.paused\n && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\n\n return this\n }\n\n Carousel.prototype.getItemIndex = function (item) {\n this.$items = item.parent().children('.item')\n return this.$items.index(item || this.$active)\n }\n\n Carousel.prototype.getItemForDirection = function (direction, active) {\n var activeIndex = this.getItemIndex(active)\n var willWrap = (direction == 'prev' && activeIndex === 0)\n || (direction == 'next' && activeIndex == (this.$items.length - 1))\n if (willWrap && !this.options.wrap) return active\n var delta = direction == 'prev' ? -1 : 1\n var itemIndex = (activeIndex + delta) % this.$items.length\n return this.$items.eq(itemIndex)\n }\n\n Carousel.prototype.to = function (pos) {\n var that = this\n var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\n\n if (pos > (this.$items.length - 1) || pos < 0) return\n\n if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\n if (activeIndex == pos) return this.pause().cycle()\n\n return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))\n }\n\n Carousel.prototype.pause = function (e) {\n e || (this.paused = true)\n\n if (this.$element.find('.next, .prev').length && $.support.transition) {\n this.$element.trigger($.support.transition.end)\n this.cycle(true)\n }\n\n this.interval = clearInterval(this.interval)\n\n return this\n }\n\n Carousel.prototype.next = function () {\n if (this.sliding) return\n return this.slide('next')\n }\n\n Carousel.prototype.prev = function () {\n if (this.sliding) return\n return this.slide('prev')\n }\n\n Carousel.prototype.slide = function (type, next) {\n var $active = this.$element.find('.item.active')\n var $next = next || this.getItemForDirection(type, $active)\n var isCycling = this.interval\n var direction = type == 'next' ? 'left' : 'right'\n var that = this\n\n if ($next.hasClass('active')) return (this.sliding = false)\n\n var relatedTarget = $next[0]\n var slideEvent = $.Event('slide.bs.carousel', {\n relatedTarget: relatedTarget,\n direction: direction\n })\n this.$element.trigger(slideEvent)\n if (slideEvent.isDefaultPrevented()) return\n\n this.sliding = true\n\n isCycling && this.pause()\n\n if (this.$indicators.length) {\n this.$indicators.find('.active').removeClass('active')\n var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\n $nextIndicator && $nextIndicator.addClass('active')\n }\n\n var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\n if ($.support.transition && this.$element.hasClass('slide')) {\n $next.addClass(type)\n if (typeof $next === 'object' && $next.length) {\n $next[0].offsetWidth // force reflow\n }\n $active.addClass(direction)\n $next.addClass(direction)\n $active\n .one('bsTransitionEnd', function () {\n $next.removeClass([type, direction].join(' ')).addClass('active')\n $active.removeClass(['active', direction].join(' '))\n that.sliding = false\n setTimeout(function () {\n that.$element.trigger(slidEvent)\n }, 0)\n })\n .emulateTransitionEnd(Carousel.TRANSITION_DURATION)\n } else {\n $active.removeClass('active')\n $next.addClass('active')\n this.sliding = false\n this.$element.trigger(slidEvent)\n }\n\n isCycling && this.cycle()\n\n return this\n }\n\n\n // CAROUSEL PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.carousel')\n var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\n var action = typeof option == 'string' ? option : options.slide\n\n if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\n if (typeof option == 'number') data.to(option)\n else if (action) data[action]()\n else if (options.interval) data.pause().cycle()\n })\n }\n\n var old = $.fn.carousel\n\n $.fn.carousel = Plugin\n $.fn.carousel.Constructor = Carousel\n\n\n // CAROUSEL NO CONFLICT\n // ====================\n\n $.fn.carousel.noConflict = function () {\n $.fn.carousel = old\n return this\n }\n\n\n // CAROUSEL DATA-API\n // =================\n\n var clickHandler = function (e) {\n var $this = $(this)\n var href = $this.attr('href')\n if (href) {\n href = href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n }\n\n var target = $this.attr('data-target') || href\n var $target = $(document).find(target)\n\n if (!$target.hasClass('carousel')) return\n\n var options = $.extend({}, $target.data(), $this.data())\n var slideIndex = $this.attr('data-slide-to')\n if (slideIndex) options.interval = false\n\n Plugin.call($target, options)\n\n if (slideIndex) {\n $target.data('bs.carousel').to(slideIndex)\n }\n\n e.preventDefault()\n }\n\n $(document)\n .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)\n .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)\n\n $(window).on('load', function () {\n $('[data-ride=\"carousel\"]').each(function () {\n var $carousel = $(this)\n Plugin.call($carousel, $carousel.data())\n })\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: collapse.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n/* jshint latedef: false */\n\n// +function ($) {\n// 'use strict';\n\n// // COLLAPSE PUBLIC CLASS DEFINITION\n// // ================================\n\n// var Collapse = function (element, options) {\n// this.$element = $(element)\n// this.options = $.extend({}, Collapse.DEFAULTS, options)\n// this.$trigger = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\n// '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\n// this.transitioning = null\n\n// if (this.options.parent) {\n// this.$parent = this.getParent()\n// } else {\n// this.addAriaAndCollapsedClass(this.$element, this.$trigger)\n// }\n\n// if (this.options.toggle) this.toggle()\n// }\n\n// Collapse.VERSION = '3.4.1'\n\n// Collapse.TRANSITION_DURATION = 350\n\n// Collapse.DEFAULTS = {\n// toggle: true\n// }\n\n// Collapse.prototype.dimension = function () {\n// var hasWidth = this.$element.hasClass('width')\n// return hasWidth ? 'width' : 'height'\n// }\n\n// Collapse.prototype.show = function () {\n// if (this.transitioning || this.$element.hasClass('in')) return\n\n// var activesData\n// var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\n\n// if (actives && actives.length) {\n// activesData = actives.data('bs.collapse')\n// if (activesData && activesData.transitioning) return\n// }\n\n// var startEvent = $.Event('show.bs.collapse')\n// this.$element.trigger(startEvent)\n// if (startEvent.isDefaultPrevented()) return\n\n// if (actives && actives.length) {\n// Plugin.call(actives, 'hide')\n// activesData || actives.data('bs.collapse', null)\n// }\n\n// var dimension = this.dimension()\n\n// this.$element\n// .removeClass('collapse')\n// .addClass('collapsing')[dimension](0)\n// .attr('aria-expanded', true)\n\n// this.$trigger\n// .removeClass('collapsed')\n// .attr('aria-expanded', true)\n\n// this.transitioning = 1\n\n// var complete = function () {\n// this.$element\n// .removeClass('collapsing')\n// .addClass('collapse in')[dimension]('')\n// this.transitioning = 0\n// this.$element\n// .trigger('shown.bs.collapse')\n// }\n\n// if (!$.support.transition) return complete.call(this)\n\n// var scrollSize = $.camelCase(['scroll', dimension].join('-'))\n\n// this.$element\n// .one('bsTransitionEnd', $.proxy(complete, this))\n// .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\n// }\n\n// Collapse.prototype.hide = function () {\n// if (this.transitioning || !this.$element.hasClass('in')) return\n\n// var startEvent = $.Event('hide.bs.collapse')\n// this.$element.trigger(startEvent)\n// if (startEvent.isDefaultPrevented()) return\n\n// var dimension = this.dimension()\n\n// this.$element[dimension](this.$element[dimension]())[0].offsetHeight\n\n// this.$element\n// .addClass('collapsing')\n// .removeClass('collapse in')\n// .attr('aria-expanded', false)\n\n// this.$trigger\n// .addClass('collapsed')\n// .attr('aria-expanded', false)\n\n// this.transitioning = 1\n\n// var complete = function () {\n// this.transitioning = 0\n// this.$element\n// .removeClass('collapsing')\n// .addClass('collapse')\n// .trigger('hidden.bs.collapse')\n// }\n\n// if (!$.support.transition) return complete.call(this)\n\n// this.$element\n// [dimension](0)\n// .one('bsTransitionEnd', $.proxy(complete, this))\n// .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\n// }\n\n// Collapse.prototype.toggle = function () {\n// this[this.$element.hasClass('in') ? 'hide' : 'show']()\n// }\n\n// Collapse.prototype.getParent = function () {\n// return $(document).find(this.options.parent)\n// .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\n// .each($.proxy(function (i, element) {\n// var $element = $(element)\n// this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\n// }, this))\n// .end()\n// }\n\n// Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n// var isOpen = $element.hasClass('in')\n\n// $element.attr('aria-expanded', isOpen)\n// $trigger\n// .toggleClass('collapsed', !isOpen)\n// .attr('aria-expanded', isOpen)\n// }\n\n// function getTargetFromTrigger($trigger) {\n// var href\n// var target = $trigger.attr('data-target')\n// || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n\n// return $(document).find(target)\n// }\n\n\n// // COLLAPSE PLUGIN DEFINITION\n// // ==========================\n\n// function Plugin(option) {\n// return this.each(function () {\n// var $this = $(this)\n// var data = $this.data('bs.collapse')\n// var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n// if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\n// if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\n// if (typeof option == 'string') data[option]()\n// })\n// }\n\n// var old = $.fn.collapse\n\n// $.fn.collapse = Plugin\n// $.fn.collapse.Constructor = Collapse\n\n\n// // COLLAPSE NO CONFLICT\n// // ====================\n\n// $.fn.collapse.noConflict = function () {\n// $.fn.collapse = old\n// return this\n// }\n\n\n// // COLLAPSE DATA-API\n// // =================\n\n// $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n// var $this = $(this)\n\n// if (!$this.attr('data-target')) e.preventDefault()\n\n// var $target = getTargetFromTrigger($this)\n// var data = $target.data('bs.collapse')\n// var option = data ? 'toggle' : $this.data()\n\n// Plugin.call($target, option)\n// })\n\n// }(jQuery);\n\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/* ========================================================================\n * Bootstrap: modal.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#modals\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// // MODAL CLASS DEFINITION\n// // ======================\n\n// var Modal = function (element, options) {\n// this.options = options\n// this.$body = $(document.body)\n// this.$element = $(element)\n// this.$dialog = this.$element.find('.modal-dialog')\n// this.$backdrop = null\n// this.isShown = null\n// this.originalBodyPad = null\n// this.scrollbarWidth = 0\n// this.ignoreBackdropClick = false\n// this.fixedContent = '.navbar-fixed-top, .navbar-fixed-bottom'\n\n// if (this.options.remote) {\n// this.$element\n// .find('.modal-content')\n// .load(this.options.remote, $.proxy(function () {\n// this.$element.trigger('loaded.bs.modal')\n// }, this))\n// }\n// }\n\n// Modal.VERSION = '3.4.1'\n\n// Modal.TRANSITION_DURATION = 300\n// Modal.BACKDROP_TRANSITION_DURATION = 150\n\n// Modal.DEFAULTS = {\n// backdrop: true,\n// keyboard: true,\n// show: true\n// }\n\n// Modal.prototype.toggle = function (_relatedTarget) {\n// return this.isShown ? this.hide() : this.show(_relatedTarget)\n// }\n\n// Modal.prototype.show = function (_relatedTarget) {\n// var that = this\n// var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\n\n// this.$element.trigger(e)\n\n// if (this.isShown || e.isDefaultPrevented()) return\n\n// this.isShown = true\n\n// this.checkScrollbar()\n// this.setScrollbar()\n// this.$body.addClass('modal-open')\n\n// this.escape()\n// this.resize()\n\n// this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\n\n// this.$dialog.on('mousedown.dismiss.bs.modal', function () {\n// that.$element.one('mouseup.dismiss.bs.modal', function (e) {\n// if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\n// })\n// })\n\n// this.backdrop(function () {\n// var transition = $.support.transition && that.$element.hasClass('fade')\n\n// if (!that.$element.parent().length) {\n// that.$element.appendTo(that.$body) // don't move modals dom position\n// }\n\n// that.$element\n// .show()\n// .scrollTop(0)\n\n// that.adjustDialog()\n\n// if (transition) {\n// that.$element[0].offsetWidth // force reflow\n// }\n\n// that.$element.addClass('in')\n\n// that.enforceFocus()\n\n// var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\n\n// transition ?\n// that.$dialog // wait for modal to slide in\n// .one('bsTransitionEnd', function () {\n// that.$element.trigger('focus').trigger(e)\n// })\n// .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n// that.$element.trigger('focus').trigger(e)\n// })\n// }\n\n// Modal.prototype.hide = function (e) {\n// if (e) e.preventDefault()\n\n// e = $.Event('hide.bs.modal')\n\n// this.$element.trigger(e)\n\n// if (!this.isShown || e.isDefaultPrevented()) return\n\n// this.isShown = false\n\n// this.escape()\n// this.resize()\n\n// $(document).off('focusin.bs.modal')\n\n// this.$element\n// .removeClass('in')\n// .off('click.dismiss.bs.modal')\n// .off('mouseup.dismiss.bs.modal')\n\n// this.$dialog.off('mousedown.dismiss.bs.modal')\n\n// $.support.transition && this.$element.hasClass('fade') ?\n// this.$element\n// .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n// .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n// this.hideModal()\n// }\n\n// Modal.prototype.enforceFocus = function () {\n// $(document)\n// .off('focusin.bs.modal') // guard against infinite focus loop\n// .on('focusin.bs.modal', $.proxy(function (e) {\n// if (document !== e.target &&\n// this.$element[0] !== e.target &&\n// !this.$element.has(e.target).length) {\n// this.$element.trigger('focus')\n// }\n// }, this))\n// }\n\n// Modal.prototype.escape = function () {\n// if (this.isShown && this.options.keyboard) {\n// this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\n// e.which == 27 && this.hide()\n// }, this))\n// } else if (!this.isShown) {\n// this.$element.off('keydown.dismiss.bs.modal')\n// }\n// }\n\n// Modal.prototype.resize = function () {\n// if (this.isShown) {\n// $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\n// } else {\n// $(window).off('resize.bs.modal')\n// }\n// }\n\n// Modal.prototype.hideModal = function () {\n// var that = this\n// this.$element.hide()\n// this.backdrop(function () {\n// that.$body.removeClass('modal-open')\n// that.resetAdjustments()\n// that.resetScrollbar()\n// that.$element.trigger('hidden.bs.modal')\n// })\n// }\n\n// Modal.prototype.removeBackdrop = function () {\n// this.$backdrop && this.$backdrop.remove()\n// this.$backdrop = null\n// }\n\n// Modal.prototype.backdrop = function (callback) {\n// var that = this\n// var animate = this.$element.hasClass('fade') ? 'fade' : ''\n\n// if (this.isShown && this.options.backdrop) {\n// var doAnimate = $.support.transition && animate\n\n// this.$backdrop = $(document.createElement('div'))\n// .addClass('modal-backdrop ' + animate)\n// .appendTo(this.$body)\n\n// this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\n// if (this.ignoreBackdropClick) {\n// this.ignoreBackdropClick = false\n// return\n// }\n// if (e.target !== e.currentTarget) return\n// this.options.backdrop == 'static'\n// ? this.$element[0].focus()\n// : this.hide()\n// }, this))\n\n// if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\n\n// this.$backdrop.addClass('in')\n\n// if (!callback) return\n\n// doAnimate ?\n// this.$backdrop\n// .one('bsTransitionEnd', callback)\n// .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n// callback()\n\n// } else if (!this.isShown && this.$backdrop) {\n// this.$backdrop.removeClass('in')\n\n// var callbackRemove = function () {\n// that.removeBackdrop()\n// callback && callback()\n// }\n// $.support.transition && this.$element.hasClass('fade') ?\n// this.$backdrop\n// .one('bsTransitionEnd', callbackRemove)\n// .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n// callbackRemove()\n\n// } else if (callback) {\n// callback()\n// }\n// }\n\n// // these following methods are used to handle overflowing modals\n\n// Modal.prototype.handleUpdate = function () {\n// this.adjustDialog()\n// }\n\n// Modal.prototype.adjustDialog = function () {\n// var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\n\n// this.$element.css({\n// paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\n// paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\n// })\n// }\n\n// Modal.prototype.resetAdjustments = function () {\n// this.$element.css({\n// paddingLeft: '',\n// paddingRight: ''\n// })\n// }\n\n// Modal.prototype.checkScrollbar = function () {\n// var fullWindowWidth = window.innerWidth\n// if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\n// var documentElementRect = document.documentElement.getBoundingClientRect()\n// fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\n// }\n// this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\n// this.scrollbarWidth = this.measureScrollbar()\n// }\n\n// Modal.prototype.setScrollbar = function () {\n// var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\n// this.originalBodyPad = document.body.style.paddingRight || ''\n// var scrollbarWidth = this.scrollbarWidth\n// if (this.bodyIsOverflowing) {\n// this.$body.css('padding-right', bodyPad + scrollbarWidth)\n// $(this.fixedContent).each(function (index, element) {\n// var actualPadding = element.style.paddingRight\n// var calculatedPadding = $(element).css('padding-right')\n// $(element)\n// .data('padding-right', actualPadding)\n// .css('padding-right', parseFloat(calculatedPadding) + scrollbarWidth + 'px')\n// })\n// }\n// }\n\n// Modal.prototype.resetScrollbar = function () {\n// this.$body.css('padding-right', this.originalBodyPad)\n// $(this.fixedContent).each(function (index, element) {\n// var padding = $(element).data('padding-right')\n// $(element).removeData('padding-right')\n// element.style.paddingRight = padding ? padding : ''\n// })\n// }\n\n// Modal.prototype.measureScrollbar = function () { // thx walsh\n// var scrollDiv = document.createElement('div')\n// scrollDiv.className = 'modal-scrollbar-measure'\n// this.$body.append(scrollDiv)\n// var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n// this.$body[0].removeChild(scrollDiv)\n// return scrollbarWidth\n// }\n\n\n// // MODAL PLUGIN DEFINITION\n// // =======================\n\n// function Plugin(option, _relatedTarget) {\n// return this.each(function () {\n// var $this = $(this)\n// var data = $this.data('bs.modal')\n// var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n// if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\n// if (typeof option == 'string') data[option](_relatedTarget)\n// else if (options.show) data.show(_relatedTarget)\n// })\n// }\n\n// var old = $.fn.modal\n\n// $.fn.modal = Plugin\n// $.fn.modal.Constructor = Modal\n\n\n// // MODAL NO CONFLICT\n// // =================\n\n// $.fn.modal.noConflict = function () {\n// $.fn.modal = old\n// return this\n// }\n\n\n// // MODAL DATA-API\n// // ==============\n\n// $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n// var $this = $(this)\n// var href = $this.attr('href')\n// var target = $this.attr('data-target') ||\n// (href && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n\n// var $target = $(document).find(target)\n// var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\n\n// if ($this.is('a')) e.preventDefault()\n\n// $target.one('show.bs.modal', function (showEvent) {\n// if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\n// $target.one('hidden.bs.modal', function () {\n// $this.is(':visible') && $this.trigger('focus')\n// })\n// })\n// Plugin.call($target, option, this)\n// })\n\n// }(jQuery);\n\n/* ========================================================================\n * Bootstrap: tooltip.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#tooltip\n * Inspired by the original jQuery.tipsy by Jason Frame\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n+function ($) {\n 'use strict';\n\n var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\n var uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n ]\n\n var ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n var DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n }\n\n /**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\n var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n /**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\n var DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\n function allowedAttribute(attr, allowedAttributeList) {\n var attrName = attr.nodeName.toLowerCase()\n\n if ($.inArray(attrName, allowedAttributeList) !== -1) {\n if ($.inArray(attrName, uriAttrs) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n var regExp = $(allowedAttributeList).filter(function (index, value) {\n return value instanceof RegExp\n })\n\n // Check if a regular expression validates the attribute.\n for (var i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n }\n\n function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (unsafeHtml.length === 0) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n // IE 8 and below don't support createHTMLDocument\n if (!document.implementation || !document.implementation.createHTMLDocument) {\n return unsafeHtml\n }\n\n var createdDocument = document.implementation.createHTMLDocument('sanitization')\n createdDocument.body.innerHTML = unsafeHtml\n\n var whitelistKeys = $.map(whiteList, function (el, i) { return i })\n var elements = $(createdDocument.body).find('*')\n\n for (var i = 0, len = elements.length; i < len; i++) {\n var el = elements[i]\n var elName = el.nodeName.toLowerCase()\n\n if ($.inArray(elName, whitelistKeys) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n var attributeList = $.map(el.attributes, function (el) { return el })\n var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n for (var j = 0, len2 = attributeList.length; j < len2; j++) {\n if (!allowedAttribute(attributeList[j], whitelistedAttributes)) {\n el.removeAttribute(attributeList[j].nodeName)\n }\n }\n }\n\n return createdDocument.body.innerHTML\n }\n\n // TOOLTIP PUBLIC CLASS DEFINITION\n // ===============================\n\n var Tooltip = function (element, options) {\n this.type = null\n this.options = null\n this.enabled = null\n this.timeout = null\n this.hoverState = null\n this.$element = null\n this.inState = null\n\n this.init('tooltip', element, options)\n }\n\n Tooltip.VERSION = '3.4.1'\n\n Tooltip.TRANSITION_DURATION = 150\n\n Tooltip.DEFAULTS = {\n animation: true,\n placement: 'top',\n selector: false,\n template: '
    ',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n container: false,\n viewport: {\n selector: 'body',\n padding: 0\n },\n sanitize : true,\n sanitizeFn : null,\n whiteList : DefaultWhitelist\n }\n\n Tooltip.prototype.init = function (type, element, options) {\n this.enabled = true\n this.type = type\n this.$element = $(element)\n this.options = this.getOptions(options)\n this.$viewport = this.options.viewport && $(document).find($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\n this.inState = { click: false, hover: false, focus: false }\n\n if (this.$element[0] instanceof document.constructor && !this.options.selector) {\n throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\n }\n\n var triggers = this.options.trigger.split(' ')\n\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i]\n\n if (trigger == 'click') {\n this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\n } else if (trigger != 'manual') {\n var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'\n var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\n\n this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\n this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\n }\n }\n\n this.options.selector ?\n (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\n this.fixTitle()\n }\n\n Tooltip.prototype.getDefaults = function () {\n return Tooltip.DEFAULTS\n }\n\n Tooltip.prototype.getOptions = function (options) {\n var dataAttributes = this.$element.data()\n\n for (var dataAttr in dataAttributes) {\n if (dataAttributes.hasOwnProperty(dataAttr) && $.inArray(dataAttr, DISALLOWED_ATTRIBUTES) !== -1) {\n delete dataAttributes[dataAttr]\n }\n }\n\n options = $.extend({}, this.getDefaults(), dataAttributes, options)\n\n if (options.delay && typeof options.delay == 'number') {\n options.delay = {\n show: options.delay,\n hide: options.delay\n }\n }\n\n if (options.sanitize) {\n options.template = sanitizeHtml(options.template, options.whiteList, options.sanitizeFn)\n }\n\n return options\n }\n\n Tooltip.prototype.getDelegateOptions = function () {\n var options = {}\n var defaults = this.getDefaults()\n\n this._options && $.each(this._options, function (key, value) {\n if (defaults[key] != value) options[key] = value\n })\n\n return options\n }\n\n Tooltip.prototype.enter = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\n }\n\n if (self.tip().hasClass('in') || self.hoverState == 'in') {\n self.hoverState = 'in'\n return\n }\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'in'\n\n if (!self.options.delay || !self.options.delay.show) return self.show()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'in') self.show()\n }, self.options.delay.show)\n }\n\n Tooltip.prototype.isInStateTrue = function () {\n for (var key in this.inState) {\n if (this.inState[key]) return true\n }\n\n return false\n }\n\n Tooltip.prototype.leave = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\n }\n\n if (self.isInStateTrue()) return\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'out'\n\n if (!self.options.delay || !self.options.delay.hide) return self.hide()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'out') self.hide()\n }, self.options.delay.hide)\n }\n\n Tooltip.prototype.show = function () {\n var e = $.Event('show.bs.' + this.type)\n\n if (this.hasContent() && this.enabled) {\n this.$element.trigger(e)\n\n var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\n if (e.isDefaultPrevented() || !inDom) return\n var that = this\n\n var $tip = this.tip()\n\n var tipId = this.getUID(this.type)\n\n this.setContent()\n $tip.attr('id', tipId)\n this.$element.attr('aria-describedby', tipId)\n\n if (this.options.animation) $tip.addClass('fade')\n\n var placement = typeof this.options.placement == 'function' ?\n this.options.placement.call(this, $tip[0], this.$element[0]) :\n this.options.placement\n\n var autoToken = /\\s?auto?\\s?/i\n var autoPlace = autoToken.test(placement)\n if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\n\n $tip\n .detach()\n .css({ top: 0, left: 0, display: 'block' })\n .addClass(placement)\n .data('bs.' + this.type, this)\n\n this.options.container ? $tip.appendTo($(document).find(this.options.container)) : $tip.insertAfter(this.$element)\n this.$element.trigger('inserted.bs.' + this.type)\n\n var pos = this.getPosition()\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (autoPlace) {\n var orgPlacement = placement\n var viewportDim = this.getPosition(this.$viewport)\n\n placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :\n placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :\n placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :\n placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :\n placement\n\n $tip\n .removeClass(orgPlacement)\n .addClass(placement)\n }\n\n var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\n\n this.applyPlacement(calculatedOffset, placement)\n\n var complete = function () {\n var prevHoverState = that.hoverState\n that.$element.trigger('shown.bs.' + that.type)\n that.hoverState = null\n\n if (prevHoverState == 'out') that.leave(that)\n }\n\n $.support.transition && this.$tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n }\n }\n\n Tooltip.prototype.applyPlacement = function (offset, placement) {\n var $tip = this.tip()\n var width = $tip[0].offsetWidth\n var height = $tip[0].offsetHeight\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt($tip.css('margin-top'), 10)\n var marginLeft = parseInt($tip.css('margin-left'), 10)\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0\n if (isNaN(marginLeft)) marginLeft = 0\n\n offset.top += marginTop\n offset.left += marginLeft\n\n // $.fn.offset doesn't round pixel values\n // so we use setOffset directly with our own function B-0\n $.offset.setOffset($tip[0], $.extend({\n using: function (props) {\n $tip.css({\n top: Math.round(props.top),\n left: Math.round(props.left)\n })\n }\n }, offset), 0)\n\n $tip.addClass('in')\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (placement == 'top' && actualHeight != height) {\n offset.top = offset.top + height - actualHeight\n }\n\n var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\n\n if (delta.left) offset.left += delta.left\n else offset.top += delta.top\n\n var isVertical = /top|bottom/.test(placement)\n var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\n var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\n\n $tip.offset(offset)\n this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\n }\n\n Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\n this.arrow()\n .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n .css(isVertical ? 'top' : 'left', '')\n }\n\n Tooltip.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n\n if (this.options.html) {\n if (this.options.sanitize) {\n title = sanitizeHtml(title, this.options.whiteList, this.options.sanitizeFn)\n }\n\n $tip.find('.tooltip-inner').html(title)\n } else {\n $tip.find('.tooltip-inner').text(title)\n }\n\n $tip.removeClass('fade in top bottom left right')\n }\n\n Tooltip.prototype.hide = function (callback) {\n var that = this\n var $tip = $(this.$tip)\n var e = $.Event('hide.bs.' + this.type)\n\n function complete() {\n if (that.hoverState != 'in') $tip.detach()\n if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary.\n that.$element\n .removeAttr('aria-describedby')\n .trigger('hidden.bs.' + that.type)\n }\n callback && callback()\n }\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n $tip.removeClass('in')\n\n $.support.transition && $tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n\n this.hoverState = null\n\n return this\n }\n\n Tooltip.prototype.fixTitle = function () {\n var $e = this.$element\n if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\n $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\n }\n }\n\n Tooltip.prototype.hasContent = function () {\n return this.getTitle()\n }\n\n Tooltip.prototype.getPosition = function ($element) {\n $element = $element || this.$element\n\n var el = $element[0]\n var isBody = el.tagName == 'BODY'\n\n var elRect = el.getBoundingClientRect()\n if (elRect.width == null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\n }\n var isSvg = window.SVGElement && el instanceof window.SVGElement\n // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.\n // See https://github.com/twbs/bootstrap/issues/20280\n var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset())\n var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\n var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\n\n return $.extend({}, elRect, scroll, outerDims, elOffset)\n }\n\n Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\n\n }\n\n Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n var delta = { top: 0, left: 0 }\n if (!this.$viewport) return delta\n\n var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\n var viewportDimensions = this.getPosition(this.$viewport)\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll\n var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\n }\n } else {\n var leftEdgeOffset = pos.left - viewportPadding\n var rightEdgeOffset = pos.left + viewportPadding + actualWidth\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset\n } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\n }\n }\n\n return delta\n }\n\n Tooltip.prototype.getTitle = function () {\n var title\n var $e = this.$element\n var o = this.options\n\n title = $e.attr('data-original-title')\n || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)\n\n return title\n }\n\n Tooltip.prototype.getUID = function (prefix) {\n do prefix += ~~(Math.random() * 1000000)\n while (document.getElementById(prefix))\n return prefix\n }\n\n Tooltip.prototype.tip = function () {\n if (!this.$tip) {\n this.$tip = $(this.options.template)\n if (this.$tip.length != 1) {\n throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\n }\n }\n return this.$tip\n }\n\n Tooltip.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\n }\n\n Tooltip.prototype.enable = function () {\n this.enabled = true\n }\n\n Tooltip.prototype.disable = function () {\n this.enabled = false\n }\n\n Tooltip.prototype.toggleEnabled = function () {\n this.enabled = !this.enabled\n }\n\n Tooltip.prototype.toggle = function (e) {\n var self = this\n if (e) {\n self = $(e.currentTarget).data('bs.' + this.type)\n if (!self) {\n self = new this.constructor(e.currentTarget, this.getDelegateOptions())\n $(e.currentTarget).data('bs.' + this.type, self)\n }\n }\n\n if (e) {\n self.inState.click = !self.inState.click\n if (self.isInStateTrue()) self.enter(self)\n else self.leave(self)\n } else {\n self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\n }\n }\n\n Tooltip.prototype.destroy = function () {\n var that = this\n clearTimeout(this.timeout)\n this.hide(function () {\n that.$element.off('.' + that.type).removeData('bs.' + that.type)\n if (that.$tip) {\n that.$tip.detach()\n }\n that.$tip = null\n that.$arrow = null\n that.$viewport = null\n that.$element = null\n })\n }\n\n Tooltip.prototype.sanitizeHtml = function (unsafeHtml) {\n return sanitizeHtml(unsafeHtml, this.options.whiteList, this.options.sanitizeFn)\n }\n\n // TOOLTIP PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tooltip')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tooltip\n\n $.fn.tooltip = Plugin\n $.fn.tooltip.Constructor = Tooltip\n\n\n // TOOLTIP NO CONFLICT\n // ===================\n\n $.fn.tooltip.noConflict = function () {\n $.fn.tooltip = old\n return this\n }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: popover.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#popovers\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// // POPOVER PUBLIC CLASS DEFINITION\n// // ===============================\n\n// var Popover = function (element, options) {\n// this.init('popover', element, options)\n// }\n\n// if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\n\n// Popover.VERSION = '3.4.1'\n\n// Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n// placement: 'right',\n// trigger: 'click',\n// content: '',\n// template: '

    '\n// })\n\n\n// // NOTE: POPOVER EXTENDS tooltip.js\n// // ================================\n\n// Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\n// Popover.prototype.constructor = Popover\n\n// Popover.prototype.getDefaults = function () {\n// return Popover.DEFAULTS\n// }\n\n// Popover.prototype.setContent = function () {\n// var $tip = this.tip()\n// var title = this.getTitle()\n// var content = this.getContent()\n\n// if (this.options.html) {\n// var typeContent = typeof content\n\n// if (this.options.sanitize) {\n// title = this.sanitizeHtml(title)\n\n// if (typeContent === 'string') {\n// content = this.sanitizeHtml(content)\n// }\n// }\n\n// $tip.find('.popover-title').html(title)\n// $tip.find('.popover-content').children().detach().end()[\n// typeContent === 'string' ? 'html' : 'append'\n// ](content)\n// } else {\n// $tip.find('.popover-title').text(title)\n// $tip.find('.popover-content').children().detach().end().text(content)\n// }\n\n// $tip.removeClass('fade top bottom left right in')\n\n// // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n// // this manually by checking the contents.\n// if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n// }\n\n// Popover.prototype.hasContent = function () {\n// return this.getTitle() || this.getContent()\n// }\n\n// Popover.prototype.getContent = function () {\n// var $e = this.$element\n// var o = this.options\n\n// return $e.attr('data-content')\n// || (typeof o.content == 'function' ?\n// o.content.call($e[0]) :\n// o.content)\n// }\n\n// Popover.prototype.arrow = function () {\n// return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n// }\n\n\n// // POPOVER PLUGIN DEFINITION\n// // =========================\n\n// function Plugin(option) {\n// return this.each(function () {\n// var $this = $(this)\n// var data = $this.data('bs.popover')\n// var options = typeof option == 'object' && option\n\n// if (!data && /destroy|hide/.test(option)) return\n// if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n// if (typeof option == 'string') data[option]()\n// })\n// }\n\n// var old = $.fn.popover\n\n// $.fn.popover = Plugin\n// $.fn.popover.Constructor = Popover\n\n\n// // POPOVER NO CONFLICT\n// // ===================\n\n// $.fn.popover.noConflict = function () {\n// $.fn.popover = old\n// return this\n// }\n\n// }(jQuery);\n\n/* ========================================================================\n * Bootstrap: scrollspy.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#scrollspy\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// // SCROLLSPY CLASS DEFINITION\n// // ==========================\n\n// function ScrollSpy(element, options) {\n// this.$body = $(document.body)\n// this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\n// this.options = $.extend({}, ScrollSpy.DEFAULTS, options)\n// this.selector = (this.options.target || '') + ' .nav li > a'\n// this.offsets = []\n// this.targets = []\n// this.activeTarget = null\n// this.scrollHeight = 0\n\n// this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\n// this.refresh()\n// this.process()\n// }\n\n// ScrollSpy.VERSION = '3.4.1'\n\n// ScrollSpy.DEFAULTS = {\n// offset: 10\n// }\n\n// ScrollSpy.prototype.getScrollHeight = function () {\n// return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\n// }\n\n// ScrollSpy.prototype.refresh = function () {\n// var that = this\n// var offsetMethod = 'offset'\n// var offsetBase = 0\n\n// this.offsets = []\n// this.targets = []\n// this.scrollHeight = this.getScrollHeight()\n\n// if (!$.isWindow(this.$scrollElement[0])) {\n// offsetMethod = 'position'\n// offsetBase = this.$scrollElement.scrollTop()\n// }\n\n// this.$body\n// .find(this.selector)\n// .map(function () {\n// var $el = $(this)\n// var href = $el.data('target') || $el.attr('href')\n// var $href = /^#./.test(href) && $(href)\n\n// return ($href\n// && $href.length\n// && $href.is(':visible')\n// && [[$href[offsetMethod]().top + offsetBase, href]]) || null\n// })\n// .sort(function (a, b) { return a[0] - b[0] })\n// .each(function () {\n// that.offsets.push(this[0])\n// that.targets.push(this[1])\n// })\n// }\n\n// ScrollSpy.prototype.process = function () {\n// var scrollTop = this.$scrollElement.scrollTop() + this.options.offset\n// var scrollHeight = this.getScrollHeight()\n// var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()\n// var offsets = this.offsets\n// var targets = this.targets\n// var activeTarget = this.activeTarget\n// var i\n\n// if (this.scrollHeight != scrollHeight) {\n// this.refresh()\n// }\n\n// if (scrollTop >= maxScroll) {\n// return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\n// }\n\n// if (activeTarget && scrollTop < offsets[0]) {\n// this.activeTarget = null\n// return this.clear()\n// }\n\n// for (i = offsets.length; i--;) {\n// activeTarget != targets[i]\n// && scrollTop >= offsets[i]\n// && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\n// && this.activate(targets[i])\n// }\n// }\n\n// ScrollSpy.prototype.activate = function (target) {\n// this.activeTarget = target\n\n// this.clear()\n\n// var selector = this.selector +\n// '[data-target=\"' + target + '\"],' +\n// this.selector + '[href=\"' + target + '\"]'\n\n// var active = $(selector)\n// .parents('li')\n// .addClass('active')\n\n// if (active.parent('.dropdown-menu').length) {\n// active = active\n// .closest('li.dropdown')\n// .addClass('active')\n// }\n\n// active.trigger('activate.bs.scrollspy')\n// }\n\n// ScrollSpy.prototype.clear = function () {\n// $(this.selector)\n// .parentsUntil(this.options.target, '.active')\n// .removeClass('active')\n// }\n\n\n// // SCROLLSPY PLUGIN DEFINITION\n// // ===========================\n\n// function Plugin(option) {\n// return this.each(function () {\n// var $this = $(this)\n// var data = $this.data('bs.scrollspy')\n// var options = typeof option == 'object' && option\n\n// if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\n// if (typeof option == 'string') data[option]()\n// })\n// }\n\n// var old = $.fn.scrollspy\n\n// $.fn.scrollspy = Plugin\n// $.fn.scrollspy.Constructor = ScrollSpy\n\n\n// // SCROLLSPY NO CONFLICT\n// // =====================\n\n// $.fn.scrollspy.noConflict = function () {\n// $.fn.scrollspy = old\n// return this\n// }\n\n\n// // SCROLLSPY DATA-API\n// // ==================\n\n// $(window).on('load.bs.scrollspy.data-api', function () {\n// $('[data-spy=\"scroll\"]').each(function () {\n// var $spy = $(this)\n// Plugin.call($spy, $spy.data())\n// })\n// })\n\n// }(jQuery);\n\n/* ========================================================================\n * Bootstrap: tab.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#tabs\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// // TAB CLASS DEFINITION\n// // ====================\n\n// var Tab = function (element) {\n// // jscs:disable requireDollarBeforejQueryAssignment\n// this.element = $(element)\n// // jscs:enable requireDollarBeforejQueryAssignment\n// }\n\n// Tab.VERSION = '3.4.1'\n\n// Tab.TRANSITION_DURATION = 150\n\n// Tab.prototype.show = function () {\n// var $this = this.element\n// var $ul = $this.closest('ul:not(.dropdown-menu)')\n// var selector = $this.data('target')\n\n// if (!selector) {\n// selector = $this.attr('href')\n// selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n// }\n\n// if ($this.parent('li').hasClass('active')) return\n\n// var $previous = $ul.find('.active:last a')\n// var hideEvent = $.Event('hide.bs.tab', {\n// relatedTarget: $this[0]\n// })\n// var showEvent = $.Event('show.bs.tab', {\n// relatedTarget: $previous[0]\n// })\n\n// $previous.trigger(hideEvent)\n// $this.trigger(showEvent)\n\n// if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\n\n// var $target = $(document).find(selector)\n\n// this.activate($this.closest('li'), $ul)\n// this.activate($target, $target.parent(), function () {\n// $previous.trigger({\n// type: 'hidden.bs.tab',\n// relatedTarget: $this[0]\n// })\n// $this.trigger({\n// type: 'shown.bs.tab',\n// relatedTarget: $previous[0]\n// })\n// })\n// }\n\n// Tab.prototype.activate = function (element, container, callback) {\n// var $active = container.find('> .active')\n// var transition = callback\n// && $.support.transition\n// && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\n\n// function next() {\n// $active\n// .removeClass('active')\n// .find('> .dropdown-menu > .active')\n// .removeClass('active')\n// .end()\n// .find('[data-toggle=\"tab\"]')\n// .attr('aria-expanded', false)\n\n// element\n// .addClass('active')\n// .find('[data-toggle=\"tab\"]')\n// .attr('aria-expanded', true)\n\n// if (transition) {\n// element[0].offsetWidth // reflow for transition\n// element.addClass('in')\n// } else {\n// element.removeClass('fade')\n// }\n\n// if (element.parent('.dropdown-menu').length) {\n// element\n// .closest('li.dropdown')\n// .addClass('active')\n// .end()\n// .find('[data-toggle=\"tab\"]')\n// .attr('aria-expanded', true)\n// }\n\n// callback && callback()\n// }\n\n// $active.length && transition ?\n// $active\n// .one('bsTransitionEnd', next)\n// .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\n// next()\n\n// $active.removeClass('in')\n// }\n\n\n// // TAB PLUGIN DEFINITION\n// // =====================\n\n// function Plugin(option) {\n// return this.each(function () {\n// var $this = $(this)\n// var data = $this.data('bs.tab')\n\n// if (!data) $this.data('bs.tab', (data = new Tab(this)))\n// if (typeof option == 'string') data[option]()\n// })\n// }\n\n// var old = $.fn.tab\n\n// $.fn.tab = Plugin\n// $.fn.tab.Constructor = Tab\n\n\n// // TAB NO CONFLICT\n// // ===============\n\n// $.fn.tab.noConflict = function () {\n// $.fn.tab = old\n// return this\n// }\n\n\n// // TAB DATA-API\n// // ============\n\n// var clickHandler = function (e) {\n// e.preventDefault()\n// Plugin.call($(this), 'show')\n// }\n\n// $(document)\n// .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\n// .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\n\n// }(jQuery);\n\n/* ========================================================================\n * Bootstrap: affix.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#affix\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// // AFFIX CLASS DEFINITION\n// // ======================\n\n// var Affix = function (element, options) {\n// this.options = $.extend({}, Affix.DEFAULTS, options)\n\n// var target = this.options.target === Affix.DEFAULTS.target ? $(this.options.target) : $(document).find(this.options.target)\n\n// this.$target = target\n// .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n// .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))\n\n// this.$element = $(element)\n// this.affixed = null\n// this.unpin = null\n// this.pinnedOffset = null\n\n// this.checkPosition()\n// }\n\n// Affix.VERSION = '3.4.1'\n\n// Affix.RESET = 'affix affix-top affix-bottom'\n\n// Affix.DEFAULTS = {\n// offset: 0,\n// target: window\n// }\n\n// Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\n// var scrollTop = this.$target.scrollTop()\n// var position = this.$element.offset()\n// var targetHeight = this.$target.height()\n\n// if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\n\n// if (this.affixed == 'bottom') {\n// if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\n// return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\n// }\n\n// var initializing = this.affixed == null\n// var colliderTop = initializing ? scrollTop : position.top\n// var colliderHeight = initializing ? targetHeight : height\n\n// if (offsetTop != null && scrollTop <= offsetTop) return 'top'\n// if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\n\n// return false\n// }\n\n// Affix.prototype.getPinnedOffset = function () {\n// if (this.pinnedOffset) return this.pinnedOffset\n// this.$element.removeClass(Affix.RESET).addClass('affix')\n// var scrollTop = this.$target.scrollTop()\n// var position = this.$element.offset()\n// return (this.pinnedOffset = position.top - scrollTop)\n// }\n\n// Affix.prototype.checkPositionWithEventLoop = function () {\n// setTimeout($.proxy(this.checkPosition, this), 1)\n// }\n\n// Affix.prototype.checkPosition = function () {\n// if (!this.$element.is(':visible')) return\n\n// var height = this.$element.height()\n// var offset = this.options.offset\n// var offsetTop = offset.top\n// var offsetBottom = offset.bottom\n// var scrollHeight = Math.max($(document).height(), $(document.body).height())\n\n// if (typeof offset != 'object') offsetBottom = offsetTop = offset\n// if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)\n// if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\n// var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\n\n// if (this.affixed != affix) {\n// if (this.unpin != null) this.$element.css('top', '')\n\n// var affixType = 'affix' + (affix ? '-' + affix : '')\n// var e = $.Event(affixType + '.bs.affix')\n\n// this.$element.trigger(e)\n\n// if (e.isDefaultPrevented()) return\n\n// this.affixed = affix\n// this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\n// this.$element\n// .removeClass(Affix.RESET)\n// .addClass(affixType)\n// .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\n// }\n\n// if (affix == 'bottom') {\n// this.$element.offset({\n// top: scrollHeight - height - offsetBottom\n// })\n// }\n// }\n\n\n// // AFFIX PLUGIN DEFINITION\n// // =======================\n\n// function Plugin(option) {\n// return this.each(function () {\n// var $this = $(this)\n// var data = $this.data('bs.affix')\n// var options = typeof option == 'object' && option\n\n// if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n// if (typeof option == 'string') data[option]()\n// })\n// }\n\n// var old = $.fn.affix\n\n// $.fn.affix = Plugin\n// $.fn.affix.Constructor = Affix\n\n\n// // AFFIX NO CONFLICT\n// // =================\n\n// $.fn.affix.noConflict = function () {\n// $.fn.affix = old\n// return this\n// }\n\n\n// // AFFIX DATA-API\n// // ==============\n\n// $(window).on('load', function () {\n// $('[data-spy=\"affix\"]').each(function () {\n// var $spy = $(this)\n// var data = $spy.data()\n\n// data.offset = data.offset || {}\n\n// if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\n// if (data.offsetTop != null) data.offset.top = data.offsetTop\n\n// Plugin.call($spy, data)\n// })\n// })\n\n// }(jQuery);\n","/**\n * NOTE: Be sure to document new items in https://confluence.netx.net/display/DEV/X7+Library+Overrides%2C+Extensions+and+Mixins\n */\n+function( $ ) {\n\t\n\t// https://github.com/select2/select2/issues/1436\n\t//$.fn.modal.Constructor.prototype.enforceFocus = function() {};\n\t\n\t// // Prevent dropdown from closing under certain conditions\n\t// $(document).on('hide.bs.dropdown', function (e) {\n\t// \tvar $target = $(e.target);\n\t// \tif( $target.find('.nx-popover-open').length ) {\n\t// \t\treturn false;\n\t// \t}\n\t// } );\n\t\n\t// Interesting, Safari is behaving correctly on this (by not positioning tootlips correctly) - offsetWidth/offsetHeight are returned for SVG elements in all other browsers\n\t// https://bugs.chromium.org/p/chromium/issues/detail?id=463116\n\t// https://drafts.csswg.org/cssom-view/#dom-htmlelement-offsetheight / https://drafts.csswg.org/cssom-view/#dom-htmlelement-offsetwidth\n\t// Both assume the css box model which SVG is not - so we constantly come up {left:0,top:0} in safari no matter what when `jQuery.fn.offset` is used\n\t// Part of me thinks I ought to override jQuery offset and use `getBoundingClientRect` in the event of an SVG element\n\t// but since this problem only is affecting us with tooltips in stats at the moment, bootstrap override:\n\t$.fn.tooltip.Constructor.prototype.getPosition = function ($element) {\n\t\t$element = $element || this.$element;\n\t\tvar el = $element[0];\n\t\tvar isBody = el.tagName == 'BODY';\n\t\t\n\t\tvar hasBoundingClientRect = _.isFunction( el.getBoundingClientRect );\n\t\tvar svgRelated = $element.is('svg') || $element.closest('svg').length;\n\t\t\n\t\tif( svgRelated && !hasBoundingClientRect ) {\n\t\t\tconsole.warn(\"Bootstrap tooltip: element is SVG and does not have boundingClientRect - positions cannot be calculated.\");\n\t\t}\n\t\t\n\t\tvar boundingClientRect = hasBoundingClientRect ? el.getBoundingClientRect() : $element.offset();\n\t\treturn $.extend({}, hasBoundingClientRect && boundingClientRect || null, {\n\t\t\tscroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop(),\n\t\t\twidth: isBody ? $(window).width() : $element.outerWidth(),\n\t\t\theight: isBody ? $(window).height() : $element.outerHeight()\n\t\t}, isBody ? { top: 0, left: 0 } : svgRelated && _.pick( boundingClientRect, 'left', 'top' ) || $element.offset() );\n\t}\n\t\n}( jQuery );","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nimport * as tslib_1 from \"tslib\";\nimport { MDCFoundation } from './foundation';\nvar MDCComponent = /** @class */ (function () {\n function MDCComponent(root, foundation) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n this.root_ = root;\n this.initialize.apply(this, tslib_1.__spread(args));\n // Note that we initialize foundation here and not within the constructor's default param so that\n // this.root_ is defined and can be used within the foundation class.\n this.foundation_ = foundation === undefined ? this.getDefaultFoundation() : foundation;\n this.foundation_.init();\n this.initialSyncWithDOM();\n }\n MDCComponent.attachTo = function (root) {\n // Subclasses which extend MDCBase should provide an attachTo() method that takes a root element and\n // returns an instantiated component with its root set to that element. Also note that in the cases of\n // subclasses, an explicit foundation class will not have to be passed in; it will simply be initialized\n // from getDefaultFoundation().\n return new MDCComponent(root, new MDCFoundation({}));\n };\n /* istanbul ignore next: method param only exists for typing purposes; it does not need to be unit tested */\n MDCComponent.prototype.initialize = function () {\n var _args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n }\n // Subclasses can override this to do any additional setup work that would be considered part of a\n // \"constructor\". Essentially, it is a hook into the parent constructor before the foundation is\n // initialized. Any additional arguments besides root and foundation will be passed in here.\n };\n MDCComponent.prototype.getDefaultFoundation = function () {\n // Subclasses must override this method to return a properly configured foundation class for the\n // component.\n throw new Error('Subclasses must override getDefaultFoundation to return a properly configured ' +\n 'foundation class');\n };\n MDCComponent.prototype.initialSyncWithDOM = function () {\n // Subclasses should override this method if they need to perform work to synchronize with a host DOM\n // object. An example of this would be a form control wrapper that needs to synchronize its internal state\n // to some property or attribute of the host DOM. Please note: this is *not* the place to perform DOM\n // reads/writes that would cause layout / paint, as this is called synchronously from within the constructor.\n };\n MDCComponent.prototype.destroy = function () {\n // Subclasses may implement this method to release any resources / deregister any listeners they have\n // attached. An example of this might be deregistering a resize event from the window object.\n this.foundation_.destroy();\n };\n MDCComponent.prototype.listen = function (evtType, handler, options) {\n this.root_.addEventListener(evtType, handler, options);\n };\n MDCComponent.prototype.unlisten = function (evtType, handler, options) {\n this.root_.removeEventListener(evtType, handler, options);\n };\n /**\n * Fires a cross-browser-compatible custom event from the component root of the given type, with the given data.\n */\n MDCComponent.prototype.emit = function (evtType, evtData, shouldBubble) {\n if (shouldBubble === void 0) { shouldBubble = false; }\n var evt;\n if (typeof CustomEvent === 'function') {\n evt = new CustomEvent(evtType, {\n bubbles: shouldBubble,\n detail: evtData,\n });\n }\n else {\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(evtType, shouldBubble, false, evtData);\n }\n this.root_.dispatchEvent(evt);\n };\n return MDCComponent;\n}());\nexport { MDCComponent };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCComponent;\n//# sourceMappingURL=component.js.map","/**\n * @class\n */\n\n// Track when we are the focus and trigger an event on the el\n// Track when we are not the focus and trigger an event on the el\n// Content\n\nimport 'javascript-detect-element-resize';\nconst Model = Backbone.Model;\nconst Collection = Backbone.Collection;\n\nconst BOUND_TRIGGERS = ['x1','x2','y1','y2','width','height'];\n\nclass LazyLoader {\n\t/**\n\t * Can (should) we render\n\t * @type {boolean}\n\t */\n\tget canRender() {\n\t\tconst state = this.state;\n\t\treturn !(\n\t\t\tthis.destroyed ||\n\t\t\t!state.get('ready') ||\n\t\t\t!state.get('active') ||\n\t\t\t!state.get('enabled') ||\n\t\t\t!this.validBounds\n\t\t);\n\t}\n\t/**\n\t * Can (should) we check scroll\n\t * @type {boolean}\n\t */\n\tget canScroll() {\n\t\treturn !(\n\t\t\t!this.state.get('ready') ||\n\t\t\t!this.contentBounds.get('overflow') ||\n\t\t\t!this.validBounds\n\t\t);\n\t}\n\t/**\n\t * Horizontal\n\t * @type {boolean}\n\t */\n\tget horizontal() {\n\t\treturn this.direction === 'horizontal';\n\t}\n\t/**\n\t * Vertical\n\t * @type {boolean}\n\t */\n\tget vertical() {\n\t\treturn !this.horizontal;\n\t}\n\t/**\n\t * Valid bounds\n\t * @type {boolean}\n\t */\n\tget validBounds() {\n\t\treturn this.state.get('validDimensions');\n\t}\n\t\n\t/**\n\t * @method\n\t * @param {HTMLElement} el Element\n\t * @param {object} opts Options\n\t */\n\tconstructor( el, opts ) {\n\t\tthis.uuid = _.uniqueId( 'lazy-' + _.now() );\n\t\t\n\t\t// Throttled/debounced methods\n\t\tthis.scroll = _.throttle( this.scroll, 8.333, true );\n\t\tthis.checkItems = _.throttle( this.checkItems, 16.666, true );\n\t\tthis.loadItems = _.throttle( this.loadItems, 16.666, true );\n\t\tthis.debouncedCheckItems = _.debounce( this.checkItems, 8.333 );\n\t\t// Just the way its gotsta be\n\t\tthis.throttledResize = _.throttle( this.resize, 16.666 );\n\t\tthis.throttledResizeContent = _.throttle( this.resizeContent, 16.666 );\n\t\tthis.padsChanged = _.debounce( this.padsChanged, 16.666 );\n\t\t\n\t\tthis.direction = opts.direction === 'vertical' && 'vertical' || 'horizontal';\n\t\tthis.forwardOnly = opts.forwardOnly === true;\n\t\t\n\t\tthis.el = el;\n\t\tconst childrenEl = this.childrenEl = opts.childrenEl || this.el;\n\t\tchildrenEl.classList.add('nx-lazyloader', 'lazyloader-' + ( this.horizontal ? 'horizontal' : 'vertical') );\n\t\tif ( this.forwardOnly ) {\n\t\t\tchildrenEl.classList.add('lazyloader-forward-only');\n\t\t}\n\t\tconst scrollContainer = this.sizingEl = this.scrollContainer = opts.scrollContainer || this.el;\n\t\t\n\t\tthis.target = opts.target;\n\t\t\n\t\tif ( opts.padItemTemplate ) {\n\t\t\tthis.padItemTemplate = opts.padItemTemplate;\n\t\t}\n\t\t\n\t\tthis.oldScrollSize = null;\n\t\tthis.hasActiveItem = true;\n\t\tthis.lastScroll = this.scrollCorrection = 0;\n\t\t\n\t\tconst beginningPads = this.beginningPads = new Collection([]);\n\t\tconst endPads = this.endPads = new Collection([]);\n\t\t\n\t\tthis.contentBounds = new Model( {\n\t\t\tx1: 0,\n\t\t\tx2: 0,\n\t\t\ty1: 0,\n\t\t\ty2: 0,\n\t\t\theight: 0,\n\t\t\twidth: 0,\n\t\t\toverflow: false,\n\t\t\tvalid: false\n\t\t} );\n\t\t\n\t\tthis.stageBounds = new Model( {\n\t\t\tx1: 0,\n\t\t\tx2: 0,\n\t\t\ty1: 0,\n\t\t\ty2: 0,\n\t\t\theight: 0,\n\t\t\twidth: 0,\n\t\t\tvalid: false\n\t\t} );\n\t\t\n\t\tconst state = this.state = new Model( {\n\t\t\tenabled: false, // Rename itemsLeftToLoad\n\t\t\tactive: false,\n\t\t\tready: false,\n\t\t\tchanges: false,\n\t\t\tuserScrolled: false,\n\t\t\tvalidDimensions: false\n\t\t} );\n\t\t\n\t\t// Wait for a legit size\n\t\tconst checkSize = () => {\n\t\t\tif ( this.destroyed ) return;\n\t\t\t\n\t\t\tif (\n\t\t\t\t!scrollContainer.scrollWidth ||\n\t\t\t\t!scrollContainer.scrollHeight\n\t\t\t) return _.delay( checkSize, 16.666 );\n\t\t\t\n\t\t\tstate.set('ready', true);\n\t\t\t\n\t\t\t// Bind\n\t\t\tthis.bindEvents();\n\t\t\t\n\t\t\tstate.set('active', true );\n\t\t\t\n\t\t\tthis\n\t\t\t\t.resize( true )\n\t\t\t\t.resizeContent( true )\n\t\t\t\t.checkItems();\n\t\t\t\n\t\t\tstate.set('changes', true);\n\t\t};\n\t\t_.delay( checkSize, 16.666 );\n\t}\n\t\n\t/**\n\t * @method\n\t */\n\trender() {\n\t\tif ( this.rendering ) return this;\n\t\t\n\t\tthis.rendering = true;\n\t\t\n\t\tconst\n\t\t\tchildrenEl = this.childrenEl,\n\t\t\tcontentBounds = this.contentBounds,\n\t\t\tscrollContainer = this.scrollContainer,\n\t\t\tstate = this.state,\n\t\t\ttarget = this.target;\n\t\t\n\t\tconst draw = () => {\n\t\t\tif ( !state.get('changes') || !this.canRender ) {\n\t\t\t\tstate.set('changes', this.rendering = false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tconst scrollCorrection = this.scrollCorrection;\n\t\t\tif ( !state.get('userScrolled') ) {\n\t\t\t\tif ( target.reachedEnd ) {\n\t\t\t\t\tthis.scrollTo( this.horizontal ?\n\t\t\t\t\t\tscrollContainer.scrollWidth :\n\t\t\t\t\t\tscrollContainer.scrollHeight\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\telse if ( target.reachedBeginning ) {\n\t\t\t\t\t// this.scrollTo( 0 );\n\t\t\t\t}\n\t\t\t\t// Keep active item in view until user interacts\n\t\t\t\tif ( this.hasActiveItem && contentBounds.get('overflow') ) {\n\t\t\t\t\tconst activeItem = childrenEl.getElementsByClassName('active');\n\t\t\t\t\tif ( activeItem[0] ) {\n\t\t\t\t\t\tthis.bringItemToView( activeItem[0] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif ( scrollCorrection ) {\n\t\t\t\t\tconst scrollContainer = this.scrollContainer;\n\t\t\t\t\tthis.horizontal ?\n\t\t\t\t\t\tthis.scrollTo( scrollContainer.scrollLeft + scrollCorrection ) :\n\t\t\t\t\t\tthis.scrollTo( scrollContainer.scrollTop + scrollCorrection );\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tstate.set('changes', false);\n\t\t\tthis.scrollCorrection = 0;\n\t\t\tthis.rendering = false;\n\t\t};\n\t\t\n\t\twindow.requestAnimationFrame( draw );\n\t\t\n\t\treturn this;\n\t}\n\t\n\t/**\n\t * @method\n\t */\n\tbindEvents() {\n\t\tconst\n\t\t\tel = this.el,\n\t\t\tbeginningPads = this.beginningPads,\n\t\t\tendPads = this.endPads,\n\t\t\tcontentBounds = this.contentBounds,\n\t\t\tstageBounds = this.stageBounds,\n\t\t\tstate = this.state;\n\t\t\n\t\t// In the case where we have nested lazyloaders within the same element\n\t\t// we can catch the bubbled events and set our state to active/inactive\n\t\t// If another lazyloader within is active, we are not\n\t\tel.addEventListener('nx-lazyload-active', this.onlazyloadactive = ( e ) => {\n\t\t\tif ( el !== e.target ) {\n\t\t\t\tthis.state.set('active', false, { fromCustomEvent: true } );\n\t\t\t}\n\t\t}, true );\n\t\t// If another lazyloader within is inactive, check to see if we should be the next active instance.\n\t\t// If so, prevent further bubbling of the event\n\t\tel.addEventListener('nx-lazyload-inactive', this.onlazyloadinactive = ( e ) => {\n\t\t\tif ( el !== e.target ) {\n\t\t\t\tif ( state.get('enabled') ) {\n\t\t\t\t\tstate.set('active', true, { fromCustomEvent: true } );\n\t\t\t\t\te.stopImmediatePropagation();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t\t\n\t\treturn this\n\t\t\t// Beginning pads\n\t\t\t.listenTo( beginningPads, 'add', this.padsChanged )\n\t\t\t.listenTo( beginningPads, 'change:el', ( pad, el ) => {\n\t\t\t\tthis.padsChanged( pad, beginningPads );\n\t\t\t} )\n\t\t\t.listenTo( beginningPads, 'remove', this.padRemoved )\n\t\t\t// End pads\n\t\t\t.listenTo( endPads, 'add', this.padsChanged )\n\t\t\t.listenTo( endPads, 'change:el', ( pad, el ) => {\n\t\t\t\tthis.padsChanged( pad, endPads );\n\t\t\t} )\n\t\t\t.listenTo( endPads, 'remove', this.padRemoved )\n\t\t\t// Content\n\t\t\t.listenTo( contentBounds, 'change', ( bounds ) => {\n\t\t\t\tif (\n\t\t\t\t\t!_.intersection(\n\t\t\t\t\t\t_.keys( bounds.changed ),\n\t\t\t\t\t\tBOUND_TRIGGERS\n\t\t\t\t\t).length\n\t\t\t\t) return;\n\t\t\t\t\n\t\t\t\tconst\n\t\t\t\t\twidth = bounds.get('width'),\n\t\t\t\t\theight = bounds.get('height'),\n\t\t\t\t\tvalid = width != 0 && height != 0;\n\t\t\t\t\n\t\t\t\tbounds.set('valid', valid );\n\t\t\t\tstate.set('validDimensions', valid && stageBounds.get('valid') );\n\t\t\t\tif ( !valid ) return;\n\t\t\t\t\n\t\t\t\tconst horizontal = this.horizontal;\n\t\t\t\t\n\t\t\t\tbounds.set('overflow', horizontal ?\n\t\t\t\t\tbounds.get('x2') > stageBounds.get('x2') || bounds.get('width') > stageBounds.get('width') :\n\t\t\t\t\tbounds.get('y2') > stageBounds.get('y2') || bounds.get('height') > stageBounds.get('height')\n\t\t\t\t);\n\t\t\t\t\n\t\t\t\tthis.checkScrollArea();\n\t\t\t\t\n\t\t\t\t// Set correct scroll position\n\t\t\t\tconst scrollContainer = this.scrollContainer;\n\t\t\t\tif ( this.oldScrollSize != null ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\t!this.forwardOnly &&\n\t\t\t\t\t\t!this.target.lazyLoadedForward\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.scrollCorrection = horizontal ?\n\t\t\t\t\t\t\tscrollContainer.scrollWidth - this.oldScrollSize :\n\t\t\t\t\t\t\tscrollContainer.scrollHeight - this.oldScrollSize;\n\t\t\t\t\t}\n\t\t\t\t\telse if (\n\t\t\t\t\t\tthis.target.lazyLoadedForward &&\n\t\t\t\t\t\tbounds.get('y2') + 10 < stageBounds.get('y1')\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.scrollCorrection = horizontal ?\n\t\t\t\t\t\t\tthis.oldScrollSize - scrollContainer.scrollWidth :\n\t\t\t\t\t\t\tthis.oldScrollSize - scrollContainer.scrollHeight;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\n\t\t\t\tthis.oldScrollSize = horizontal ?\n\t\t\t\t\tscrollContainer.scrollWidth :\n\t\t\t\t\tscrollContainer.scrollHeight;\n\t\t\t\t\n\t\t\t\tstate.set('changes', true);\n\t\t\t} )\n\t\t\t.listenTo( contentBounds, 'change:valid', ( bounds, valid, opts ) => {\n\t\t\t\tif (\n\t\t\t\t\t!state.get('enabled') ||\n\t\t\t\t\t!state.get('active') ||\n\t\t\t\t\t!this.validBounds\n\t\t\t\t) {\n\t\t\t\t\tthis.disconnectObserver();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.connectObserver();\n\t\t\t\tstate.set('changes', true);\n\t\t\t} )\n\t\t\t// Stage\n\t\t\t.listenTo( stageBounds, 'change', ( bounds ) => {\n\t\t\t\tif (\n\t\t\t\t\t!_.intersection(\n\t\t\t\t\t\t_.keys( bounds.changed ),\n\t\t\t\t\t\tBOUND_TRIGGERS\n\t\t\t\t\t).length\n\t\t\t\t) return;\n\t\t\t\t\n\t\t\t\tconst\n\t\t\t\t\twidth = bounds.get('width'),\n\t\t\t\t\theight = bounds.get('height'),\n\t\t\t\t\tvalid = width != 0 && height != 0;\n\t\t\t\t\n\t\t\t\tbounds.set('valid', valid );\n\t\t\t\tstate.set('validDimensions', valid && contentBounds.get('valid') );\n\t\t\t\tif ( !valid ) return;\n\t\t\t\t\n\t\t\t\tthis.debouncedCheckItems();\n\t\t\t\t\n\t\t\t\tconst horizontal = this.horizontal;\n\t\t\t\t\n\t\t\t\tthis.checkScrollArea();\n\t\t\t\t\n\t\t\t\tthis.oldScrollSize = horizontal ?\n\t\t\t\t\tthis.scrollContainer.scrollWidth :\n\t\t\t\t\tthis.scrollContainer.scrollHeight;\n\t\t\t\t\n\t\t\t\tstate.set('changes', true);\n\t\t\t} )\n\t\t\t.listenTo( stageBounds, 'change:valid', ( bounds, valid, opts ) => {\n\t\t\t\tif (\n\t\t\t\t\t!state.get('enabled') ||\n\t\t\t\t\t!state.get('active') ||\n\t\t\t\t\t!this.validBounds\n\t\t\t\t) {\n\t\t\t\t\tthis.disconnectObserver();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.connectObserver();\n\t\t\t\tthis.state.set('changes', true);\n\t\t\t} )\n\t\t\t// State\n\t\t\t.listenTo( state, 'change:validDimensions', ( state, valid, opts ) => {\n\t\t\t\tvalid && state.set('changes', true);\n\t\t\t} )\n\t\t\t.listenTo( state, 'change:changes', _.debounce( ( state, changes, opts ) => {\n\t\t\t\tchanges && this.render();\n\t\t\t}, 16 ) )\n\t\t\t.listenTo( state, 'change:active', ( state, active, opts ) => {\n\t\t\t\tif ( active ) {\n\t\t\t\t\t// console.log( this.uuid, \"activated\", this.el );\n\t\t\t\t\tthis.oldScrollSize = null;\n\t\t\t\t\tthis.scrollCorrection = 0;\n\t\t\t\t\t\n\t\t\t\t\tthis\n\t\t\t\t\t\t.bindScrollEvents()\n\t\t\t\t\t\t.resizeContent()\n\t\t\t\t\t\t.bindResizeEvents();\n\t\t\t\t\t\n\t\t\t\t\tif ( state.get('enabled') && this.validBounds ) {\n\t\t\t\t\t\tthis.connectObserver();\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tstate.set('changes', true);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// console.log( this.uuid, \"deactivated\", this.el );\n\t\t\t\t\tthis\n\t\t\t\t\t\t.disconnectObserver()\n\t\t\t\t\t\t.unbindScrollEvents();\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif ( opts.fromCustomEvent ) return;\n\t\t\t\t\n\t\t\t\tconst eventStr = active ? 'nx-lazyload-active' : 'nx-lazyload-inactive';\n\t\t\t\tconst cevent = new CustomEvent( eventStr, {\n\t\t\t\t\tbubbles : true,\n\t\t\t\t\tdetail : { instance: () => this }\n\t\t\t\t} );\n\t\t\t\tthis.el.dispatchEvent( cevent );\n\t\t\t} )\n\t\t\t.listenTo( state, 'change:enabled', ( state, enabled, opts ) => {\n\t\t\t\tif (\n\t\t\t\t\t!enabled ||\n\t\t\t\t\t!state.get('active') ||\n\t\t\t\t\t!this.validBounds\n\t\t\t\t) {\n\t\t\t\t\tstate.set('active', false );\n\t\t\t\t\tthis\n\t\t\t\t\t\t.disconnectObserver()\n\t\t\t\t\t\t.unbindScrollEvents();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis\n\t\t\t\t\t.bindScrollEvents()\n\t\t\t\t\t.bindResizeEvents()\n\t\t\t\t\t.connectObserver()\n\t\t\t\t\t.checkItems();\n\t\t\t\t\n\t\t\t\tstate.set('changes', true);\n\t\t\t} );\n\t}\n\t\n\t/**\n\t * @method\n\t */\n\tbindResizeEvents() {\n\t\tif ( this.boundResizeEvents ) return this;\n\t\tthis.boundResizeEvents = true;\n\t\t\n\t\twindow.addResizeListener(\n\t\t\tthis.scrollContainer,\n\t\t\tthis.onresize = () => {\n\t\t\t\tthis.resize();\n\t\t\t}\n\t\t);\n\t\twindow.addResizeListener(\n\t\t\tthis.childrenEl,\n\t\t\tthis.onccontentresize = () => {\n\t\t\t\tthis.resizeContent();\n\t\t\t}\n\t\t);\n\n\t\treturn this;\n\t}\n\t\n\t/**\n\t * @method\n\t */\n\tbindScrollEvents() {\n\t\tif ( this.boundScrollEvents ) return this;\n\t\tthis.boundScrollEvents = true;\n\t\t\n\t\t// console.log( this.uuid, \"bound scroll and sizing events to\", this.el );\n\t\t\n\t\tthis.scrollContainer.addEventListener('scroll', this.onscroll = this.scroll.bind( this ), {\n\t\t\tpassive: true\n\t\t} );\n\t\t\n\t\treturn this;\n\t}\n\t\n\t/**\n\t * @method\n\t * @param {HTMLElement} item Item\n\t */\n\tbringItemToView( item ) {\n\t\tconst scrollContainer = this.scrollContainer;\n\t\tlet itemPosition = 0, scrollPos = 0;\n\n\t\tif ( this.horizontal ) {\n\t\t\tscrollPos = scrollContainer.scrollLeft;\n\t\t\titemPosition = item.getBoundingClientRect().left - scrollContainer.getBoundingClientRect().left;\n\t\t}\n\t\telse {\n\t\t\tscrollPos = scrollContainer.scrollTop;\n\t\t\titemPosition = item.getBoundingClientRect().top - scrollContainer.getBoundingClientRect().top;\n\t\t}\n\t\t\n\t\tthis.scrollTo(\n\t\t\tscrollPos + itemPosition\n\t\t);\n\t\t\n\t\treturn this;\n\t}\n\t\n\t/**\n\t * @method\n\t */\n\tconnectObserver() {\n\t\t// Already connected\n\t\tif ( this.observer ) return this;\n\t\t\n\t\t// console.log( this.uuid, \"connected observer\", this.childrenEl );\n\t\t\n\t\tthis.observer = new MutationObserver( ( mutationRecords ) => {\n\t\t\tfor( let i = 0, c = mutationRecords.length, mutationRecord, addedNodes, addCount; i < c; i++ ) {\n\t\t\t\tmutationRecord = mutationRecords[ i ];\n\t\t\t\taddedNodes = mutationRecord.addedNodes;\n\t\t\t\taddCount = addedNodes.length;\n\t\t\t\tif ( addCount ) {\n\t\t\t\t\tfor ( let n = 0, el; n < addCount; n++ ) {\n\t\t\t\t\t\tel = addedNodes[ n ];\n\t\t\t\t\t\t// Do not count pad items or resize triggers\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t!el.classList.contains('resize-trigger') &&\n\t\t\t\t\t\t\t!el.classList.contains('lazyloader-pad-item')\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tthis.itemAdded( el );\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\tthis.observer.observe( this.childrenEl, { childList: true } );\n\t\t\n\t\treturn this;\n\t}\n\t\n\t/**\n\t * @method\n\t * @return {boolean} Enabled\n\t */\n\tcheckEnabled() {\n\t\tconst\n\t\t\tstate = this.state,\n\t\t\ttarget = this.target,\n\t\t\tenabled = !target.reachedEnd || !target.reachedBeginning,\n\t\t\ttoSet = {\n\t\t\t\tenabled: enabled\n\t\t\t};\n\t\t\n\t\tif ( state.get('active') && !enabled ) {\n\t\t\ttoSet.active = false\n\t\t}\n\t\tstate.set( toSet );\n\t\treturn enabled;\n\t}\n\t\n\t/**\n\t * @method\n\t * @return {boolean} Loaded items\n\t */\n\tcheckItems() {\n\t\tconst state = this.state;\n\t\t\n\t\t// console.log(this.uuid, \"check items\");\n\t\t\n\t\t// Plugin is not ready OR\n\t\t// we do not have any valid bounds to test\n\t\tif (\n\t\t\t!state.get('ready') ||\n\t\t\t!this.validBounds\n\t\t) return true;\n\t\t\n\t\tthis.checkEnabled();\n\t\t\n\t\t// Target is syncing OR\n\t\t// we are disabled\n\t\tif (\n\t\t\tthis.target.syncing ||\n\t\t\t!state.get('enabled')\n\t\t) return this;\n\t\t\n\t\treturn this.horizontal ?\n\t\t\tthis._checkItems_horizontal() :\n\t\t\tthis._checkItems_vertical();\n\t}\n\t\n\t/**\n\t * @method\n\t * @private\n\t * @return {boolean} Loaded items\n\t */\n\t_checkItems_horizontal() {\n\t\tconst lastItem = this.getLastChild();\n\t\tif ( !lastItem ) return;\n\t\t\n\t\tconst target = this.target;\n\t\tconst lastRect = this.getRelativeRect( lastItem );\n\t\t// Last item is showing from right and we have not reached the end\n\t\tif (\n\t\t\tlastRect.x1 < this.stageBounds.get('x2') &&\n\t\t\t!target.reachedEnd\n\t\t) {\n\t\t\tthis.loadItems( true );\n\t\t\treturn true;\n\t\t}\n\t\t\n\t\tif ( this.forwardOnly ) return;\n\t\t\n\t\t// First item is showing from left and we have not reached the beginning yet\n\t\tconst firstItem = this.getFirstChild();\n\t\tif ( !firstItem ) return;\n\t\t\n\t\tconst firstRect = this.getRelativeRect( firstItem );\n\t\tif (\n\t\t\tfirstRect.x1 > this.stageBounds.get('x1') &&\n\t\t\t!target.reachedBeginning\n\t\t) {\n\t\t\tthis.loadItems( false );\n\t\t\treturn true;\n\t\t}\n\t}\n\t\n\t/**\n\t * @method\n\t * @private\n\t * @return {boolean} Loaded items\n\t */\n\t_checkItems_vertical() {\n\t\tconst lastItem = this.getLastChild();\n\t\tif ( !lastItem ) return;\n\t\t\n\t\tconst target = this.target;\n\t\tconst lastRect = this.getRelativeRect( lastItem );\n\t\t// Last item is showing from bottom and we have not reached the end\n\t\tif (\n\t\t\tlastRect.y1 < this.stageBounds.get('y2') &&\n\t\t\t!target.reachedEnd\n\t\t) {\n\t\t\tthis.loadItems( true );\n\t\t\treturn true;\n\t\t}\n\t\t\n\t\tif ( this.forwardOnly ) return;\n\t\t\n\t\t// First item is showing from top and we have not reached the beginning yet\n\t\tconst firstItem = this.getFirstChild();\n\t\tif ( !firstItem ) return;\n\t\t\n\t\tconst firstRect = this.getRelativeRect( firstItem );\n\t\tif (\n\t\t\tfirstRect.y2 > this.stageBounds.get('y1') &&\n\t\t\t!target.reachedBeginning\n\t\t) {\n\t\t\tthis.loadItems( false );\n\t\t\treturn true;\n\t\t}\n\t}\n\t\n\t/**\n\t * @method\n\t */\n\tcheckPadding() {\n\t\tconst target = this.target;\n\t\t\n\t\t// Check beginning pads\n\t\tif ( target.reachedBeginning ) {\n\t\t\tthis.unpadBeginning();\n\t\t}\n\t\telse if ( !this.beginningPads.length ) {\n\t\t\tif ( this.forwardOnly || !this.contentBounds.get('overflow') ) {\n\t\t\t\tthis.padBeginning( 1 );\n\t\t\t}\n\t\t}\n\t\t\n\t\t// Check end pads\n\t\tif ( target.reachedEnd ) {\n\t\t\tthis.unpadEnd();\n\t\t}\n\t\telse if ( !this.endPads.length ) {\n\t\t\tif ( this.forwardOnly || !this.contentBounds.get('overflow') ) {\n\t\t\t\tthis.padEnd( 1 );\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn this;\n\t}\n\t\n\t/**\n\t * @method\n\t */\n\tcheckScrollArea() {\n\t\tconst scrollContainer = this.scrollContainer;\n\t\t\n\t\tconst sw = this.scrollWidth = scrollContainer.scrollWidth;\n\t\tconst sh = this.scrollHeight = scrollContainer.scrollHeight;\n\t\tthis.scrollAreaX = sw - scrollContainer.clientWidth;\n\t\tthis.scrollAreaY = sh - scrollContainer.clientHeight;\n\t}\n\t\n\t/**\n\t * @method\n\t */\n\tdestroy() {\n\t\tthis.destroyed = true;\n\t\tthis.state.set( {\n\t\t\tactive: false,\n\t\t\tenabled: false\n\t\t} );\n\t\tthis.childrenEl.classList.remove(\n\t\t\t'nx-lazyloader',\n\t\t\t'lazyloader-horizontal',\n\t\t\t'lazyloader-vertical',\n\t\t\t'lazyloader-forward-only'\n\t\t);\n\t\t\n\t\treturn this\n\t\t\t.unpadBeginning()\n\t\t\t.unpadEnd()\n\t\t\t.unbindEvents();\n\t}\n\t\n\t/**\n\t * @method\n\t */\n\tdisconnectObserver() {\n\t\t// Already disconnected\n\t\tif ( !this.observer ) return this;\n\t\t\n\t\t// console.log( this.uuid, \"disconnected observer\", this.childrenEl );\n\t\t\n\t\tthis.observer.disconnect();\n\t\tthis.observer = null;\n\t\treturn this;\n\t}\n\t\n\t/**\n\t * @method\n\t * @return {HTMLElement} Last child\n\t */\n\tgetFirstChild() {\n\t\t// Look in pads first\n\t\tconst firstPad = this.beginningPads.findWhere( { index: 0 } );\n\t\tif ( firstPad ) {\n\t\t\treturn firstPad.get('el');\n\t\t}\n\t\t\n\t\tconst children = this.childrenEl.children;\n\t\tfor ( let i = 0, c = children.length, node; i < c; i++ ) {\n\t\t\tif ( !( node = children[ i ] ).classList.contains('resize-triggers') ) {\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\t}\n\t\n\t/**\n\t * @method\n\t * @return {HTMLElement} Last child\n\t */\n\tgetLastChild() {\n\t\t// Look in pads first\n\t\tconst lastPad = this.endPads.findWhere( { index: 0 } );\n\t\tif ( lastPad ) {\n\t\t\treturn lastPad.get('el');\n\t\t}\n\t\t\n\t\tconst children = this.childrenEl.children;\n\t\tlet i = children.length,\n\t\t\tnode;\n\t\t\n\t\twhile( i-- ) {\n\t\t\tif ( !( node = children[ i ] ).classList.contains('resize-triggers') ) {\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @method\n\t * @param {HTMLElement} item Item\n\t * @param {boolean} accountForMargins Account for margins\n\t * @return {object} Relative rect\n\t */\n\tgetRelativeRect( item, accountForMargins ) {\n\t\tconst itemRect = item.getBoundingClientRect();\n\t\t\n\t\tlet marginBottom = 0,\n\t\t\tmarginLeft = 0,\n\t\t\tmarginRight = 0,\n\t\t\tmarginTop = 0,\n\t\t\tcomputedStyles;\n\t\t\n\t\tif ( accountForMargins ) {\n\t\t\tcomputedStyles = window.getComputedStyle( item );\n\t\t\tmarginBottom = parseInt( computedStyles.marginBottom, 10 );\n\t\t\tmarginLeft = parseInt( computedStyles.marginLeft, 10 );\n\t\t\tmarginRight = parseInt( computedStyles.marginRight, 10 );\n\t\t\tmarginTop = parseInt( computedStyles.marginTop, 10 );\n\t\t}\n\t\t\n\t\tconst\n\t\t\tleft = itemRect.left - marginLeft,\n\t\t\ttop = itemRect.top - marginTop,\n\t\t\twidth = itemRect.width + marginLeft + marginRight,\n\t\t\theight = itemRect.height + marginBottom + marginTop;\n\t\t\n\t\treturn {\n\t\t\tleft : left,\n\t\t\ttop : top,\n\t\t\twidth : width,\n\t\t\theight : height,\n\t\t\tx1 : left,\n\t\t\tx2 : left + width,\n\t\t\ty1 : top,\n\t\t\ty2 : top + height\n\t\t};\n\t}\n\t\n\t/**\n\t * @method\n\t * @param {HTMLElement} itemEl Item element\n\t */\n\titemAdded( itemEl ) {\n\t\tconst target = this.target;\n\t\t\n\t\tif ( this.forwardOnly || target.lazyLoadedForward ) {\n\t\t\ttarget.reachedEnd ?\n\t\t\t\tthis.unpadEnd() :\n\t\t\t\tthis.endPads.length > 1 && this.unpadEnd( 1 );\n\t\t}\n\t\telse {\n\t\t\ttarget.reachedBeginning ?\n\t\t\t\tthis.unpadBeginning() :\n\t\t\t\tthis.beginningPads.length > 1 && this.unpadBeginning( 1 );\n\t\t}\n\t\tthis.state.set('changes', true);\n\t\t\n\t\tthis.throttledResize();\n\t\tthis.checkPadding();\n\t\tthis.debouncedCheckItems();\n\t}\n\t\n\t/**\n\t * @method\n\t * @param {number} count Item count\n\t * @param {boolean} forward Forward\n\t */\n\tloadItems( forward ) {\n\t\t// console.log( this.uuid, \"loadItems\" );\n\t\t\n\t\tconst\n\t\t\tstate = this.state,\n\t\t\ttarget = this.target;\n\t\t\n\t\tif (\n\t\t\t!state.get('ready') ||\n\t\t\ttarget.syncing\n\t\t) return this;\n\t\t\n\t\tconst items = target.lazyLoadItems( forward );\n\t\tif ( items === false || items === 0 ) {\n\t\t\tthis.checkPadding();\n\t\t}\n\t\telse {\n\t\t\tif ( forward ) {\n\t\t\t\tconst padItems = items - this.endPads.length;\n\t\t\t\tif ( padItems && !this.target.reachedEnd ) {\n\t\t\t\t\tstate.set('active', true);\n\t\t\t\t\tif ( padItems < 0 ) {\n\t\t\t\t\t\tthis.unpadEnd( Math.min(\n\t\t\t\t\t\t\tMath.abs( padItems ),\n\t\t\t\t\t\t\tthis.endPads.length - 1\n\t\t\t\t\t\t) );\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.padEnd( padItems );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if ( target.reachedEnd ) {\n\t\t\t\t\tthis.checkPadding();\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tconst padItems = items - this.beginningPads.length;\n\t\t\t\tif ( padItems && !this.target.reachedBeginning ) {\n\t\t\t\t\tstate.set('active', true);\n\t\t\t\t\tif ( padItems < 0 ) {\n\t\t\t\t\t\tthis.unpadBeginning( Math.min(\n\t\t\t\t\t\t\tMath.abs( padItems ),\n\t\t\t\t\t\t\tthis.beginningPads.length - 1\n\t\t\t\t\t\t) );\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.padBeginning( padItems );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if ( target.reachedBeginning ) {\n\t\t\t\t\tthis.checkPadding();\n\t\t\t\t\tstate.set('active', false);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tthis.checkEnabled();\n\t\t\n\t\tstate.set( {\n\t\t\tchanges: true\n\t\t} );\n\t\t\n\t\treturn this;\n\t}\n\t\n\t/**\n\t * @method\n\t * @param {number} count Count\n\t */\n\tpadBeginning( count ) {\n\t\tif ( this.forwardOnly ) return this;\n\t\t\n\t\tcount = count || 1;\n\t\t\n\t\tif ( count < 0 ) return;\n\t\t\n\t\tthis.beginningPads.add( _.times( count, () => {\n\t\t\treturn {\n\t\t\t\tid : _.uniqueId('pad-item-'),\n\t\t\t\tside : 'beginning'\n\t\t\t};\n\t\t} ) );\n\t\t\n\t\treturn this;\n\t}\n\t\n\t/**\n\t * @method\n\t * @private\n\t * @param {number} count Count\n\t */\n\t_padBeginning() {\n\t\tconst firstChild = this.getFirstChild();\n\t\tif ( !firstChild ) return this;\n\t\t\n\t\tconst\n\t\t\tpads = this.beginningPads,\n\t\t\tchildrenEl = this.childrenEl,\n\t\t\tnode = this.padItemTemplate.call( this, firstChild, true);\n\t\t\n\t\tnode.classList.add('lazyloader-pad-item-' + this.uuid, 'lazyloader-pad-item', 'lazyloader-beginning');\n\t\t\n\t\tlet cloned;\n\t\tpads.forEach( ( pad ) => {\n\t\t\tif ( !pad.get('el') ) {\n\t\t\t\tcloned = node.cloneNode( true );\n\t\t\t\tchildrenEl.insertBefore( cloned, firstChild );\n\t\t\t\tpad.set('el', cloned );\n\t\t\t}\n\t\t} );\n\t\t\n\t\treturn this;\n\t}\n\t\n\t/**\n\t * @method\n\t * @param {number} count Count\n\t */\n\tpadEnd( count ) {\n\t\tcount = count || 1;\n\t\t\n\t\tif ( count < 0 ) return;\n\t\t\n\t\tthis.endPads.add( _.times( count, () => {\n\t\t\treturn {\n\t\t\t\tid : _.uniqueId('pad-item-'),\n\t\t\t\tside : 'end'\n\t\t\t};\n\t\t} ) );\n\t\t\n\t\treturn this;\n\t}\n\t\n\t/**\n\t * @method\n\t * @private\n\t * @param {number} count Count\n\t */\n\t_padEnd() {\n\t\tconst lastChild = this.getLastChild();\n\t\tif ( !lastChild ) return this;\n\t\t\n\t\tconst\n\t\t\tpads = this.endPads,\n\t\t\tchildrenEl = this.childrenEl,\n\t\t\tnode = this.padItemTemplate.call( this, lastChild, false);\n\t\t\n\t\tnode.classList.add('lazyloader-pad-item-' + this.uuid, 'lazyloader-pad-item', 'lazyloader-end');\n\t\t\n\t\tlet cloned;\n\t\tpads.forEach( ( pad ) => {\n\t\t\tif ( !pad.get('el') ) {\n\t\t\t\tcloned = node.cloneNode( true );\n\t\t\t\tchildrenEl.appendChild( cloned );\n\t\t\t\tpad.set('el', cloned );\n\t\t\t}\n\t\t} );\n\t\t\n\t\treturn this;\n\t}\n\t\n\t/**\n\t * @method\n\t * @param {HTMLElement} child Nearest child node\n\t * @param {boolean} beginning Beginning\n\t * @return {HTMLElement} Node\n\t */\n\tpadItemTemplate( child, beginning ) {\n\t\treturn document.createElement( child.tagName );\n\t}\n\t\n\t/**\n\t * @method\n\t */\n\tpadRemoved( pad, pads ) {\n\t\tconst el = pad.get('el');\n\t\tel && el.remove();\n\t}\n\t\n\t/**\n\t * @method\n\t */\n\tpadsChanged( pad, pads ) {\n\t\tconst childrenEl = this.childrenEl;\n\t\tif ( pad.get('side') !== 'end' ) {\n\t\t\t_.each( childrenEl.querySelector('.lazyloader-beginning'), ( el, idx ) => {\n\t\t\t\tconst pad = beginningPads.findWhere( { el: el } );\n\t\t\t\tpad && pad.set('index', idx );\n\t\t\t} );\n\t\t}\n\t\telse {\n\t\t\tlet padEls = childrenEl.querySelector('.lazyloader-end'),\n\t\t\t\ti = padEls ? padEls.length : 0,\n\t\t\t\tidx = 0;\n\t\t\t\n\t\t\twhile ( i-- ) {\n\t\t\t\tconst pad = endPads.findWhere( { el: padEls[ i ] } );\n\t\t\t\tpad && pad.set('index', idx );\n\t\t\t\tidx++;\n\t\t\t}\n\t\t}\n\t\t\n\t\tthis\n\t\t\t._padBeginning()\n\t\t\t._padEnd();\n\t\t\n\t\tthis.state.set('changes', true);\n\t}\n\t\n\t/**\n\t * @method\n\t * @param {boolean} force Check size regardless of `state`\n\t */\n\tresize( force ) {\n\t\tif (\n\t\t\tforce !== true &&\n\t\t\t!this.state.get('active') &&\n\t\t\t!this.state.get('ready')\n\t\t) return this;\n\t\t\n\t\tconst\n\t\t\tsizingEl = this.sizingEl,\n\t\t\trect = sizingEl.getBoundingClientRect(),\n\t\t\tleft = rect.left,\n\t\t\ttop = rect.top,\n\t\t\twidth = Math.ceil( sizingEl.clientWidth < 2 ? 0 : rect.width ),\n\t\t\theight = Math.ceil( sizingEl.clientHeight < 2 ? 0 : rect.height );\n\t\t\n\t\tthis.stageBounds.set( {\n\t\t\tx1 : left,\n\t\t\tx2 : left + width,\n\t\t\ty1 : top,\n\t\t\ty2 : top + height,\n\t\t\theight : height,\n\t\t\twidth : width\n\t\t} );\n\t\t\n\t\tthis.throttledResizeContent();\n\t\t\n\t\treturn this;\n\t}\n\t\n\t/**\n\t * @method\n\t * @param {boolean} force Check size regardless of `state`\n\t */\n\tresizeContent( force ) {\n\t\tif (\n\t\t\tforce !== true &&\n\t\t\t!this.state.get('active') &&\n\t\t\t!this.state.get('ready')\n\t\t) return this;\n\t\t\n\t\tconst\n\t\t\tchildrenEl = this.childrenEl,\n\t\t\trect = childrenEl.getBoundingClientRect(),\n\t\t\tleft = rect.left,\n\t\t\ttop = rect.top,\n\t\t\twidth = Math.ceil( childrenEl.clientWidth < 2 ? 0 : rect.width ),\n\t\t\theight = Math.ceil( childrenEl.clientHeight < 2 ? 0 : rect.height );\n\t\t\t\n\t\tthis.contentBounds.set( {\n\t\t\tx1 : left,\n\t\t\tx2 : left + width,\n\t\t\ty1 : top,\n\t\t\ty2 : top + height,\n\t\t\twidth : width,\n\t\t\theight : height\n\t\t} );\n\t\t\n\t\treturn this;\n\t}\n\t\n\t/**\n\t * @method\n\t * @param {event} e `scroll` event\n\t */\n\tscroll( e ) {\n\t\t\n\t\tconst state = this.state;\n\t\tif (\n\t\t\t!state.get('ready') ||\n\t\t\t!this.contentBounds.get('overflow') ||\n\t\t\t!this.validBounds\n\t\t) return;\n\t\t\n\t\tconst\n\t\t\tel = this.scrollContainer,\n\t\t\tstageBounds = this.stageBounds;\n\t\t\n\t\tconst scrollPos = this.horizontal ?\n\t\t\tel.scrollLeft :\n\t\t\tel.scrollTop;\n\t\t\n\t\t// Scrolling forward or backwards\n\t\tconst scrollingForward = scrollPos > this.lastScroll;\n\t\t\n\t\t// Store\n\t\tthis.lastScroll = scrollPos;\n\t\t\n\t\tconst wasManualScroll = state.get('manualScroll');\n\t\twasManualScroll ?\n\t\t\tstate.set( {\n\t\t\t\tchanges : true,\n\t\t\t\tmanualScroll : false\n\t\t\t} ) :\n\t\t\tstate.set('userScrolled', true);\n\t\t\n\t\tif (\n\t\t\tthis.target.syncing ||\n\t\t\t( !scrollingForward && this.forwardOnly )\n\t\t) return;\n\t\t\n\t\tconst load = scrollingForward ?\n\t\t\tthis._scroll_forward() :\n\t\t\tthis._scroll_backward();\n\t\t\n\t\tload && this.loadItems( scrollingForward );\n\t}\n\t\n\t/**\n\t * @method\n\t * @private\n\t * @return {boolean} Load items\n\t */\n\t_scroll_forward() {\n\t\tconst lastItem = this.getLastChild();\n\t\tif ( !lastItem ) return;\n\t\t\n\t\tconst lastRect = this.getRelativeRect( lastItem );\n\t\tlet max, pos;\n\t\tif ( this.horizontal ) {\n\t\t\tmax = this.stageBounds.get('x2');\n\t\t\tpos = lastRect.x1;\n\t\t}\n\t\telse {\n\t\t\tmax = this.stageBounds.get('y2');\n\t\t\tpos = lastRect.y1;\n\t\t}\n\t\treturn pos <= max;\n\t}\n\t\n\t/**\n\t * @method\n\t * @private\n\t * @return {boolean} Load items\n\t */\n\t_scroll_backward() {\n\t\tconst firstItem = this.getFirstChild();\n\t\tif ( !firstItem ) return;\n\t\t\n\t\tconst firstRect = this.getRelativeRect( firstItem );\n\t\tlet min, pos;\n\t\tif ( this.horizontal ) {\n\t\t\tmin = this.stageBounds.get('x1');\n\t\t\tpos = firstRect.x2;\n\t\t}\n\t\telse {\n\t\t\tmin = this.stageBounds.get('y1');\n\t\t\tpos = firstRect.y2;\n\t\t}\n\t\treturn pos > min;\n\t}\n\t\n\t/**\n\t * @method\n\t * @param {number} pos Position\n\t */\n\tscrollTo( pos ) {\n\t\tconst scrollContainer = this.scrollContainer;\n\t\tif ( this.horizontal ) {\n\t\t\tpos = Math.min( this.scrollAreaX, pos );\n\t\t\tif ( !isNaN( pos ) && scrollContainer.scrollLeft !== pos ) {\n\t\t\t\tthis.state.set('manualScroll', true);\n\t\t\t\tscrollContainer.scrollTo( pos, 0 );\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tpos = Math.min( this.scrollAreaY, pos );\n\t\t\tif ( !isNaN( pos ) && scrollContainer.scrollTop !== pos ) {\n\t\t\t\tthis.state.set('manualScroll', true);\n\t\t\t\tscrollContainer.scrollTo( 0, pos );\n\t\t\t}\n\t\t}\n\t}\n\t\n\t/**\n\t * @method\n\t */\n\tunbindEvents() {\n\t\tthis\n\t\t\t.stopListening()\n\t\t\t.disconnectObserver()\n\t\t\t.unbindResizeEvents()\n\t\t\t.unbindScrollEvents();\n\t\t\n\t\tthis.el.removeEventListener('nx-lazyload-active', this.onlazyloadactive, true );\n\t\tthis.el.removeEventListener('nx-lazyload-inactive', this.onlazyloadinactive );\n\t\t\n\t\treturn this;\n\t}\n\t\n\t/**\n\t * @method\n\t */\n\tunbindResizeEvents() {\n\t\tif ( !this.boundResizeEvents ) return this;\n\t\tthis.boundResizeEvents = false;\n\t\t\n\t\twindow.removeResizeListener( this.childrenEl, this.onccontentresize );\n\t\twindow.removeResizeListener( this.scrollContainer, this.onresize );\n\t\tthis.onccontentresize = null;\n\t\tthis.onresize = null;\n\t\t\n\t\treturn this;\n\t}\n\t\n\t/**\n\t * @method\n\t */\n\tunbindScrollEvents() {\n\t\tif ( !this.boundScrollEvents ) return this;\n\t\tthis.boundScrollEvents = false;\n\n\t\t// console.log( this.uuid, \"unbound scroll and sizing events from\", this.el );\n\n\t\tthis.scrollContainer.removeEventListener('scroll', this.onscroll, {\n\t\t\tpassive: true\n\t\t} );\n\t\tthis.onscroll = null;\n\t\t\n\t\treturn this;\n\t}\n\t\n\t/**\n\t * @method\n\t * @param {number} count Count\n\t */\n\tunpadBeginning( count ) {\n\t\tconst pads = this.beginningPads;\n\t\tif ( !pads.length ) return this;\n\t\t\n\t\tif ( !count ) {\n\t\t\tpads.set([]);\n\t\t\treturn this;\n\t\t}\n\t\t\n\t\tpads.remove( pads.last( count ) );\n\t\treturn this;\n\t}\n\t\n\t/**\n\t * @method\n\t * @param {number} count Count\n\t */\n\tunpadEnd( count ) {\n\t\tconst pads = this.endPads;\n\t\tif ( !pads.length ) return this;\n\t\t\n\t\tif ( !count ) {\n\t\t\tpads.set([]);\n\t\t\treturn this;\n\t\t}\n\t\t\n\t\tpads.remove( pads.last( count ) );\n\t\treturn this;\n\t}\n}\n\n_.extend( LazyLoader.prototype, Backbone.Events );\n\nexport default LazyLoader;","/*!\n * imagesLoaded PACKAGED v4.1.1\n * JavaScript is all like \"You images are done yet or what?\"\n * MIT License\n */\n\n/**\n * EvEmitter v1.0.3\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n\n( function( global, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, window */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( 'ev-emitter/ev-emitter',factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n\n}( typeof window != 'undefined' ? window : this, function() {\n\n\n\nfunction EvEmitter() {}\n\nvar proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // set events hash\n var events = this._events = this._events || {};\n // set listeners array\n var listeners = events[ eventName ] = events[ eventName ] || [];\n // only add once\n if ( listeners.indexOf( listener ) == -1 ) {\n listeners.push( listener );\n }\n\n return this;\n};\n\nproto.once = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // add event\n this.on( eventName, listener );\n // set once flag\n // set onceEvents hash\n var onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n // set flag\n onceListeners[ listener ] = true;\n\n return this;\n};\n\nproto.off = function( eventName, listener ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n var index = listeners.indexOf( listener );\n if ( index != -1 ) {\n listeners.splice( index, 1 );\n }\n\n return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n var i = 0;\n var listener = listeners[i];\n args = args || [];\n // once stuff\n var onceListeners = this._onceEvents && this._onceEvents[ eventName ];\n\n while ( listener ) {\n var isOnce = onceListeners && onceListeners[ listener ];\n if ( isOnce ) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off( eventName, listener );\n // unset once flag\n delete onceListeners[ listener ];\n }\n // trigger listener\n listener.apply( this, args );\n // get next listener\n i += isOnce ? 0 : 1;\n listener = listeners[i];\n }\n\n return this;\n};\n\nreturn EvEmitter;\n\n}));\n\n/*!\n * imagesLoaded v4.1.1\n * JavaScript is all like \"You images are done yet or what?\"\n * MIT License\n */\n\n( function( window, factory ) { 'use strict';\n // universal module definition\n\n /*global define: false, module: false, require: false */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter'\n ], function( EvEmitter ) {\n return factory( window, EvEmitter );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter')\n );\n } else {\n // browser global\n window.imagesLoaded = factory(\n window,\n window.EvEmitter\n );\n }\n\n})( window,\n\n// -------------------------- factory -------------------------- //\n\nfunction factory( window, EvEmitter ) {\n\n\n\nvar $ = window.jQuery;\nvar console = window.console;\n\n// -------------------------- helpers -------------------------- //\n\n// extend objects\nfunction extend( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n}\n\n// turn element or nodeList into an array\nfunction makeArray( obj ) {\n var ary = [];\n if ( Array.isArray( obj ) ) {\n // use object if already an array\n ary = obj;\n } else if ( typeof obj.length == 'number' ) {\n // convert nodeList to array\n for ( var i=0; i < obj.length; i++ ) {\n ary.push( obj[i] );\n }\n } else {\n // array of single index\n ary.push( obj );\n }\n return ary;\n}\n\n// -------------------------- imagesLoaded -------------------------- //\n\n/**\n * @param {Array, Element, NodeList, String} elem\n * @param {Object or Function} options - if function, use as callback\n * @param {Function} onAlways - callback function\n */\nfunction ImagesLoaded( elem, options, onAlways ) {\n // coerce ImagesLoaded() without new, to be new ImagesLoaded()\n if ( !( this instanceof ImagesLoaded ) ) {\n return new ImagesLoaded( elem, options, onAlways );\n }\n // use elem as selector string\n if ( typeof elem == 'string' ) {\n elem = document.querySelectorAll( elem );\n }\n\n this.elements = makeArray( elem );\n this.options = extend( {}, this.options );\n\n if ( typeof options == 'function' ) {\n onAlways = options;\n } else {\n extend( this.options, options );\n }\n\n if ( onAlways ) {\n this.on( 'always', onAlways );\n }\n\n this.getImages();\n\n if ( $ ) {\n // add jQuery Deferred object\n this.jqDeferred = new $.Deferred();\n }\n\n // HACK check async to allow time to bind listeners\n setTimeout( function() {\n this.check();\n }.bind( this ));\n}\n\nImagesLoaded.prototype = Object.create( EvEmitter.prototype );\n\nImagesLoaded.prototype.options = {};\n\nImagesLoaded.prototype.getImages = function() {\n this.images = [];\n\n // filter & find items if we have an item selector\n this.elements.forEach( this.addElementImages, this );\n};\n\n/**\n * @param {Node} element\n */\nImagesLoaded.prototype.addElementImages = function( elem ) {\n // filter siblings\n if ( elem.nodeName == 'IMG' ) {\n this.addImage( elem );\n }\n // get background image on element\n if ( this.options.background === true ) {\n this.addElementBackgroundImages( elem );\n }\n\n // find children\n // no non-element nodes, #143\n var nodeType = elem.nodeType;\n if ( !nodeType || !elementNodeTypes[ nodeType ] ) {\n return;\n }\n var childImgs = elem.querySelectorAll('img');\n // concat childElems to filterFound array\n for ( var i=0; i < childImgs.length; i++ ) {\n var img = childImgs[i];\n this.addImage( img );\n }\n\n // get child background images\n if ( typeof this.options.background == 'string' ) {\n var children = elem.querySelectorAll( this.options.background );\n for ( i=0; i < children.length; i++ ) {\n var child = children[i];\n this.addElementBackgroundImages( child );\n }\n }\n};\n\nvar elementNodeTypes = {\n 1: true,\n 9: true,\n 11: true\n};\n\nImagesLoaded.prototype.addElementBackgroundImages = function( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n // Firefox returns null if in a hidden iframe https://bugzil.la/548397\n return;\n }\n // get url inside url(\"...\")\n var reURL = /url\\((['\"])?(.*?)\\1\\)/gi;\n var matches = reURL.exec( style.backgroundImage );\n while ( matches !== null ) {\n var url = matches && matches[2];\n if ( url ) {\n this.addBackground( url, elem );\n }\n matches = reURL.exec( style.backgroundImage );\n }\n};\n\n/**\n * @param {Image} img\n */\nImagesLoaded.prototype.addImage = function( img ) {\n var loadingImage = new LoadingImage( img );\n this.images.push( loadingImage );\n};\n\nImagesLoaded.prototype.addBackground = function( url, elem ) {\n var background = new Background( url, elem );\n this.images.push( background );\n};\n\nImagesLoaded.prototype.check = function() {\n var _this = this;\n this.progressedCount = 0;\n this.hasAnyBroken = false;\n // complete if no images\n if ( !this.images.length ) {\n this.complete();\n return;\n }\n\n function onProgress( image, elem, message ) {\n // HACK - Chrome triggers event before object properties have changed. #83\n setTimeout( function() {\n _this.progress( image, elem, message );\n });\n }\n\n this.images.forEach( function( loadingImage ) {\n loadingImage.once( 'progress', onProgress );\n loadingImage.check();\n });\n};\n\nImagesLoaded.prototype.progress = function( image, elem, message ) {\n this.progressedCount++;\n this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded;\n // progress event\n this.emitEvent( 'progress', [ this, image, elem ] );\n if ( this.jqDeferred && this.jqDeferred.notify ) {\n this.jqDeferred.notify( this, image );\n }\n // check if completed\n if ( this.progressedCount == this.images.length ) {\n this.complete();\n }\n\n if ( this.options.debug && console ) {\n console.log( 'progress: ' + message, image, elem );\n }\n};\n\nImagesLoaded.prototype.complete = function() {\n var eventName = this.hasAnyBroken ? 'fail' : 'done';\n this.isComplete = true;\n this.emitEvent( eventName, [ this ] );\n this.emitEvent( 'always', [ this ] );\n if ( this.jqDeferred ) {\n var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve';\n this.jqDeferred[ jqMethod ]( this );\n }\n};\n\n// -------------------------- -------------------------- //\n\nfunction LoadingImage( img ) {\n this.img = img;\n}\n\nLoadingImage.prototype = Object.create( EvEmitter.prototype );\n\nLoadingImage.prototype.check = function() {\n // If complete is true and browser supports natural sizes,\n // try to check for image status manually.\n var isComplete = this.getIsImageComplete();\n if ( isComplete ) {\n // report based on naturalWidth\n this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\n return;\n }\n\n // If none of the checks above matched, simulate loading on detached element.\n this.proxyImage = new Image();\n this.proxyImage.addEventListener( 'load', this );\n this.proxyImage.addEventListener( 'error', this );\n // bind to image as well for Firefox. #191\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n this.proxyImage.src = this.img.src;\n};\n\nLoadingImage.prototype.getIsImageComplete = function() {\n return this.img.complete && this.img.naturalWidth !== undefined;\n};\n\nLoadingImage.prototype.confirm = function( isLoaded, message ) {\n this.isLoaded = isLoaded;\n this.emitEvent( 'progress', [ this, this.img, message ] );\n};\n\n// ----- events ----- //\n\n// trigger specified handler for event type\nLoadingImage.prototype.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\nLoadingImage.prototype.onload = function() {\n this.confirm( true, 'onload' );\n this.unbindEvents();\n};\n\nLoadingImage.prototype.onerror = function() {\n this.confirm( false, 'onerror' );\n this.unbindEvents();\n};\n\nLoadingImage.prototype.unbindEvents = function() {\n this.proxyImage.removeEventListener( 'load', this );\n this.proxyImage.removeEventListener( 'error', this );\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n};\n\n// -------------------------- Background -------------------------- //\n\nfunction Background( url, element ) {\n this.url = url;\n this.element = element;\n this.img = new Image();\n}\n\n// inherit LoadingImage prototype\nBackground.prototype = Object.create( LoadingImage.prototype );\n\nBackground.prototype.check = function() {\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n this.img.src = this.url;\n // check if image is already complete\n var isComplete = this.getIsImageComplete();\n if ( isComplete ) {\n this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\n this.unbindEvents();\n }\n};\n\nBackground.prototype.unbindEvents = function() {\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n};\n\nBackground.prototype.confirm = function( isLoaded, message ) {\n this.isLoaded = isLoaded;\n this.emitEvent( 'progress', [ this, this.element, message ] );\n};\n\n// -------------------------- jQuery -------------------------- //\n\nImagesLoaded.makeJQueryPlugin = function( jQuery ) {\n jQuery = jQuery || window.jQuery;\n if ( !jQuery ) {\n return;\n }\n // set local variable\n $ = jQuery;\n // $().imagesLoaded()\n $.fn.imagesLoaded = function( options, callback ) {\n var instance = new ImagesLoaded( this, options, callback );\n return instance.jqDeferred.promise( $(this) );\n };\n};\n// try making plugin\nImagesLoaded.makeJQueryPlugin();\n\n// -------------------------- -------------------------- //\n\nreturn ImagesLoaded;\n\n});\n","//////////////\n// NetX extensions to FormValidation:\n//\n// numberAttr is a validator for DAM number attributes.\n//\n////////\n// all-in-one number attribute validator!\n//\n// Form validation\n// If you are not logged in, we start right off from the get go with a form\nimport 'core-libs/formValidation/dist/js/formValidation';\nimport 'core-libs/formValidation/dist/js/framework/bootstrap';\n\nimport {isEmptyValue} from '@netx/core/lib/underscore-netx';\n\n/**\n * @method\n * @param {array} results Query results\n * @return {array} Parsed query results\n */\nconst LVBHandler = function(results) {\n\t// Sort\n\tresults = _.sortBy(results, v => v.label);\n\treturn _.map(results, r => {\n\t\treturn {id: r.value, text: r.label};\n\t});\n};\n\nimport {getCompletion, inquiry} from '@netx/core/lib/netx-autocomplete';\n\n// Support case insensitivity\nFormValidation.Validator.regexp.validate = function (\n\tvalidator,\n\t$field,\n\toptions,\n) {\n\t// Original code\n\t// var value = validator.getFieldValue($field, 'regexp');\n\t// if (value === '') {\n\t// \treturn true;\n\t// }\n\t//var regexp = ('string' === typeof options.regexp) ? new RegExp(options.regexp) : options.regexp;\n\t//return regexp.test(value);\n\n\t// New code\n\n\t// Vars\n\tvar insensitive, regexp, value;\n\n\tvalue = validator.getFieldValue($field, 'regexp');\n\tif (value === '') {\n\t\treturn true;\n\t}\n\n\tinsensitive = $field.attr('data-nx-fv-caseInsensitive');\n\n\tif (_.isString(options.regexp)) {\n\t\tif (insensitive) {\n\t\t\tregexp = new RegExp(options.regexp, 'i');\n\t\t} else {\n\t\t\tregexp = new RegExp(options.regexp);\n\t\t}\n\t} else {\n\t\tregexp = options.regexp;\n\t}\n\treturn regexp.test(value);\n};\n\nFormValidation.Validator.lookup = {\n\thtml5Attributes: {\n\t\tmessage: 'message',\n\t\tcompletion: 'completion'\n\t},\n\n\tvalidate(validator, $field, options, validatorName) {\n\t\tconst value = validator.getFieldValue($field, validatorName).toLowerCase().trim();\n\t\tif (value === '') return true;\n\n\t\tconst deferred = new $.Deferred();\n\n\t\tconst completion = getCompletion({completion: options.completion, LVBHandler});\n\t\tinquiry(completion.completion, value, completion.extra, completion).then((results) => {\n\t\t\tif (results.some(result => results[0].text.toLowerCase() === value)) {\n\t\t\t\tdeferred.resolve($field, validatorName, {valid: false, message: options.message || \"Name already exists\"});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdeferred.resolve($field, validatorName, {valid: true});\n\t\t});\n\n\t\treturn deferred;\n\t}\n}\n\n// Enforce entering a value or opting to clear the value\nFormValidation.Validator.attributeProfile = {\n\tvalidate: function(validator, $field, options, validatorName) {\n\t\toptions = options || {};\n\t\tvar message = options.message;\n\t\tvar value = validator.getFieldValue($field, validatorName);\n\t\tvar valid = true;\n\n\t\tvar cleared = $field.closest('.form-group').find('[data-nx-control=\"clear-toggle\"]:checked').length > 0;\n\t\tif (isEmptyValue(value) && !cleared) {\n\t\t\tmessage = i18n.t('app:i18n.validationProfileAttributeInvalid');\n\t\t\tvalid = false;\n\t\t}\n\n\t\treturn {\n\t\t\tvalid: valid,\n\t\t\tmessage: message\n\t\t};\n\t}\n};\n\nFormValidation.Validator.numberAttr = {\n\thtml5Attributes: {\n\t\tmessage: 'message',\n\t\ttrim: 'trim',\n\t\tsize: 'size',\n\t\ttype: 'type',\n\t\tspec1: 'spec1',\n\t\tspec2: 'spec2'\n\t},\n\t/**\n\t * Validate a DAM number field.\n\t *\n\t * @param {FormValidation.Base} validator The validator plugin instance\n\t * @param {jQuery} $field Field element\n\t * @param {Object} options Consists of following keys:\n\t * -size\n\t * -type\n\t * -spec1\n\t * -spec2\n\t * - message: The invalid message\n\t * - trim: Indicate the length will be calculated after trimming the value or not. It is false, by default\n\t *\n\t * Keys 'size' & 'spec1' are interchangeable. Keys 'type' & 'spec2' are also interchangeable.\n\t * At least 'type' (or 'spec1') must be defined.\n\t *\n\t * Validation rules:\n\t * * We only test size on integer types (type 0 and type 5)\n\t * * When testing size, we count number of digits; decimal point doesn't count.\n\t * * If size = 0, or not specified as an option, then any length is okay.\n\t * * For types 1-3, we test that the value has only that many digits (or less) after the decimal point (if any).\n\t * * Integer types cannot have decimal points (but the others can.)\n\t *\n\t * At least one of two keys is required\n\t * The min, max keys define the number which the field value compares to. min, max can be\n\t * - A number\n\t * - Name of field which its value defines the number\n\t * - Name of callback function that returns the number\n\t * - A callback function that returns the number\n\t *\n\t * @returns {Object}\n\t */\n\tvalidate: function(validator, $field, options) {\n\t\toptions = options || {};\n\t\tvar value = validator.getFieldValue($field, 'numberAttr');\n\n\t\tif (options.trim === true || options.trim === 'true') {\n\t\t\tvalue = $.trim(value);\n\t\t}\n\n\t\tif (value === '') {\n\t\t\treturn true;\n\t\t}\n\n\t\tvar isValid = true,\n\t\t\tlocale = validator.getLocale(),\n\t\t\tmessage = options.message || i18n.t('i18n.validationNumberInvalidLength'),\n\t\t\tsize = $.isNumeric( options.size ) ? options.size : validator.getDynamicOption( $field, options.size ),\n\t\t\ttype = $.isNumeric( options.type ) ? options.type : validator.getDynamicOption( $field, options.type ),\n\t\t\tspec1 = $.isNumeric( options.spec1 ) ? options.spec1 : validator.getDynamicOption( $field, options.spec1 ),\n\t\t\tspec2 = $.isNumeric( options.spec2 ) ? options.spec2 : validator.getDynamicOption( $field, options.spec2 ),\n\t\t\t// Credit to http://stackoverflow.com/a/23329386 (@lovasoa) for UTF-8 byte length code\n\t\t\tutf8Length = function(str) {\n\t\t\t\tvar s = str.length;\n\t\t\t\tfor (var i = str.length - 1; i >= 0; i--) {\n\t\t\t\t\tvar code = str.charCodeAt(i);\n\t\t\t\t\tif (code > 0x7f && code <= 0x7ff) {\n\t\t\t\t\t\ts++;\n\t\t\t\t\t}\n\t\t\t\t\telse if ( code > 0x7ff && code <= 0xffff ) {\n\t\t\t\t\t\ts += 2;\n\t\t\t\t\t}\n\t\t\t\t\tif (code >= 0xDC00 && code <= 0xDFFF) {\n\t\t\t\t\t\ti--;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn s;\n\t\t\t}, numLength;\n\n\t\t// size can be size or spec1\n\t\tif ( spec1 && !size ) {\n\t\t\tsize = spec1;\n\t\t}\n\n\t\t// type can be type or spec2\n\t\tif ( spec2 && !type ) {\n\t\t\ttype = spec2;\n\t\t}\n\n\t\t// without type, we can't really validate anything.\n\t\tif ( !_.isNumeric( type ) ) {\n\t\t\treturn true;\n\t\t}\n\t\t//////\n\t\t// Size test:\n\t\t//\n\t\t// If type is 'whole number' (type == 0, because that means \"0 decimal points allowed\"),\n\t\t// or 'sortable' (type == 5, because nothing's that simple).\n\t\t// and size is not 0, test length against 'size' option\n\t\t//\n\t\tif ( (type == 0 || type == 5 ) && _.isNumeric( size ) && size > 0) {\n\t\t\t// for number attrs, we measure length without decimal point:\n\t\t\tnumLength = value.replace('.', '').length;\n\n\t\t\tif (size && numLength > parseInt(size, 10)) {\n\t\t\t\tisValid = false;\n\t\t\t\tmessage = options.message || i18n.t('i18n.validationNumberLessDigits', { count: parseInt( size, 10 ) } );\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tvalid: isValid,\n\t\t\tmessage: message\n\t\t};\n\t}\n};\n\nconst originalStringLengthValidate = FormValidation.Validator.stringLength.validate;\nFormValidation.Validator.stringLength.validate = (validator, $field, options, validatorName) => {\n\tconst result = originalStringLengthValidate.call(FormValidation.Validator.stringLength, validator, $field, options, validatorName);\n\t\n\tif (result !== true && result.valid !== true && $field.attr('type') === 'password') {\n\t\tconst min = $.isNumeric(options.min) ? options.min : validator.getDynamicOption($field, options.min);\n\t\tresult.message = i18n.t('i18n.pleaseEnterAtLeastNCharacters', {count: min});\n\t}\n\n\treturn result;\n}\n\n// Do not handle disabling enabling of our submit buttons\nFormValidation.Framework.Bootstrap.prototype.disableSubmitButtons = function() {\n\treturn this;\n};\n\n// FV's destroy() method breaks if we re-render any form element after validation has been added.\n// Here is a workaround, but really this should be fixed in the plugin itself:\n// https://github.com/formvalidation/support/issues/488\nFormValidation.Base.prototype.destroy = FormValidation.Framework.Bootstrap.prototype.destroy = _.wrap( FormValidation.Base.prototype.destroy, function(destroy) {\n\tvar ns = 'fv';\n\tfor ( var field in this.options.fields ) {\n\t\tvar fields = this.getFieldElements(field);\n\t\tvar row = this.options.fields[field].row || this.options.row.selector;\n\t\tfor (var i = 0; i < fields.length; i++) {\n\t\t\t\tvar $field = fields.eq(i);\n\t\t\t\t// FV calls $field.data(ns + '.messages') and then expects jQuery functions to exist on the resulting object.\n\t\t\t\t// but if we've re-rendered, no such object exists.\n\t\t\t\t// Here we add a dummy empty jQ object, just to prevent that failure.\n\t\t\t\tvar f = $field.data(ns + '.messages');\n\t\t\t\tif (!f) {\n\t\t\t\t\t// http://stackoverflow.com/questions/1228474/jquery-empty-selector-null-selector\n\t\t\t\t\t$field.data(ns + '.messages', $());\n\t\t\t\t}\n\t\t}\n\t}\n\treturn destroy.apply(this, _.rest(arguments));\n});\n\n// It actually occurs in updateStatus which can get called from other parts than just the destroy method\nFormValidation.Base.prototype.updateStatus = FormValidation.Framework.Bootstrap.prototype.updateStatus = _.wrap( FormValidation.Base.prototype.updateStatus, function( updateStatus ) {\n\tvar ns = 'fv';\n\tfor ( var field in this.options.fields ) {\n\t\tvar fields = this.getFieldElements(field);\n\t\tvar row = this.options.fields[field].row || this.options.row.selector;\n\t\tfor (var i = 0; i < fields.length; i++) {\n\t\t\t\tvar $field = fields.eq(i);\n\t\t\t\t// FV calls $field.data(ns + '.messages') and then expects jQuery functions to exist on the resulting object.\n\t\t\t\t// but if we've re-rendered, no such object exists.\n\t\t\t\t// Here we add a dummy empty jQ object, just to prevent that failure.\n\t\t\t\tvar f = $field.data(ns + '.messages');\n\t\t\t\tif (!f) {\n\t\t\t\t\t// http://stackoverflow.com/questions/1228474/jquery-empty-selector-null-selector\n\t\t\t\t\t$field.data(ns + '.messages', $());\n\t\t\t\t}\n\t\t}\n\t}\n\treturn updateStatus.apply( this, _.rest( arguments ) );\n} );\n\nexport default FormValidation;","/*!\n * FormValidation (http://formvalidation.io)\n * The best jQuery plugin to validate form fields. Support Bootstrap, Foundation, Pure, SemanticUI, UIKit and custom frameworks\n *\n * @version v0.7.0, built on 2015-08-01 4:57:16 PM\n * @author https://twitter.com/formvalidation\n * @copyright (c) 2013 - 2015 Nguyen Huu Phuoc\n * @license http://formvalidation.io/license/\n */\n// Register the namespace\nwindow.FormValidation = {\n AddOn: {}, // Add-ons\n Framework: {}, // Supported frameworks\n I18n: {}, // i18n\n Validator: {} // Available validators\n};\n\nif (typeof jQuery === 'undefined') {\n throw new Error('FormValidation requires jQuery');\n}\n\n(function($) {\n var version = $.fn.jquery.split(' ')[0].split('.');\n if ((+version[0] < 2 && +version[1] < 9) || (+version[0] === 1 && +version[1] === 9 && +version[2] < 1)) {\n throw new Error('FormValidation requires jQuery version 1.9.1 or higher');\n }\n}(jQuery));\n\n(function($) {\n // TODO: Remove backward compatibility\n /**\n * Constructor\n *\n * @param {jQuery|String} form The form element or selector\n * @param {Object} options The options\n * @param {String} [namespace] The optional namespace which is used for data-{namespace}-xxx attributes and internal data.\n * Currently, it's used to support backward version\n * @constructor\n */\n FormValidation.Base = function(form, options, namespace) {\n this.$form = $(form);\n this.options = $.extend({}, $.fn.formValidation.DEFAULT_OPTIONS, options);\n this._namespace = namespace || 'fv';\n\n this.$invalidFields = $([]); // Array of invalid fields\n this.$submitButton = null; // The submit button which is clicked to submit form\n this.$hiddenButton = null;\n\n // Validating status\n this.STATUS_NOT_VALIDATED = 'NOT_VALIDATED';\n this.STATUS_VALIDATING = 'VALIDATING';\n this.STATUS_INVALID = 'INVALID';\n this.STATUS_VALID = 'VALID';\n this.STATUS_IGNORED = 'IGNORED';\n\n // Default message\n this.DEFAULT_MESSAGE = $.fn.formValidation.DEFAULT_MESSAGE;\n\n // Determine the event that is fired when user change the field value\n // Most modern browsers supports input event except IE 7, 8.\n // IE 9 supports input event but the event is still not fired if I press the backspace key.\n // Get IE version\n // https://gist.github.com/padolsey/527683/#comment-7595\n this._ieVersion = (function() {\n var v = 3, div = document.createElement('div'), a = div.all || [];\n while (div.innerHTML = '', a[0]) {}\n return v > 4 ? v : document.documentMode;\n }());\n\n var el = document.createElement('div');\n this._changeEvent = (this._ieVersion === 9 || !('oninput' in el)) ? 'keyup' : 'input';\n\n // The flag to indicate that the form is ready to submit when a remote/callback validator returns\n this._submitIfValid = null;\n\n // Field elements\n this._cacheFields = {};\n\n this._init();\n };\n\n FormValidation.Base.prototype = {\n constructor: FormValidation.Base,\n\n /**\n * Check if the number of characters of field value exceed the threshold or not\n *\n * @param {jQuery} $field The field element\n * @returns {Boolean}\n */\n _exceedThreshold: function($field) {\n var ns = this._namespace,\n field = $field.attr('data-' + ns + '-field'),\n threshold = this.options.fields[field].threshold || this.options.threshold;\n if (!threshold) {\n return true;\n }\n var cannotType = $.inArray($field.attr('type'), ['button', 'checkbox', 'file', 'hidden', 'image', 'radio', 'reset', 'submit']) !== -1;\n return (cannotType || $field.val().length >= threshold);\n },\n\n /**\n * Init form\n */\n _init: function() {\n var that = this,\n ns = this._namespace,\n options = {\n addOns: {},\n autoFocus: this.$form.attr('data-' + ns + '-autofocus'),\n button: {\n selector: this.$form.attr('data-' + ns + '-button-selector') || this.$form.attr('data-' + ns + '-submitbuttons'), // Support backward\n disabled: this.$form.attr('data-' + ns + '-button-disabled')\n },\n control: {\n valid: this.$form.attr('data-' + ns + '-control-valid'),\n invalid: this.$form.attr('data-' + ns + '-control-invalid')\n },\n err: {\n clazz: this.$form.attr('data-' + ns + '-err-clazz'),\n container: this.$form.attr('data-' + ns + '-err-container') || this.$form.attr('data-' + ns + '-container'), // Support backward\n parent: this.$form.attr('data-' + ns + '-err-parent')\n },\n events: {\n formInit: this.$form.attr('data-' + ns + '-events-form-init'),\n formPreValidate: this.$form.attr('data-' + ns + '-events-form-prevalidate'),\n formError: this.$form.attr('data-' + ns + '-events-form-error'),\n formSuccess: this.$form.attr('data-' + ns + '-events-form-success'),\n fieldAdded: this.$form.attr('data-' + ns + '-events-field-added'),\n fieldRemoved: this.$form.attr('data-' + ns + '-events-field-removed'),\n fieldInit: this.$form.attr('data-' + ns + '-events-field-init'),\n fieldError: this.$form.attr('data-' + ns + '-events-field-error'),\n fieldSuccess: this.$form.attr('data-' + ns + '-events-field-success'),\n fieldStatus: this.$form.attr('data-' + ns + '-events-field-status'),\n localeChanged: this.$form.attr('data-' + ns + '-events-locale-changed'),\n validatorError: this.$form.attr('data-' + ns + '-events-validator-error'),\n validatorSuccess: this.$form.attr('data-' + ns + '-events-validator-success'),\n validatorIgnored: this.$form.attr('data-' + ns + '-events-validator-ignored')\n },\n excluded: this.$form.attr('data-' + ns + '-excluded'),\n icon: {\n valid: this.$form.attr('data-' + ns + '-icon-valid') || this.$form.attr('data-' + ns + '-feedbackicons-valid'), // Support backward\n invalid: this.$form.attr('data-' + ns + '-icon-invalid') || this.$form.attr('data-' + ns + '-feedbackicons-invalid'), // Support backward\n validating: this.$form.attr('data-' + ns + '-icon-validating') || this.$form.attr('data-' + ns + '-feedbackicons-validating'), // Support backward\n feedback: this.$form.attr('data-' + ns + '-icon-feedback')\n },\n live: this.$form.attr('data-' + ns + '-live'),\n locale: this.$form.attr('data-' + ns + '-locale'),\n message: this.$form.attr('data-' + ns + '-message'),\n onPreValidate: this.$form.attr('data-' + ns + '-onprevalidate'),\n onError: this.$form.attr('data-' + ns + '-onerror'),\n onSuccess: this.$form.attr('data-' + ns + '-onsuccess'),\n row: {\n selector: this.$form.attr('data-' + ns + '-row-selector') || this.$form.attr('data-' + ns + '-group'), // Support backward\n valid: this.$form.attr('data-' + ns + '-row-valid'),\n invalid: this.$form.attr('data-' + ns + '-row-invalid'),\n feedback: this.$form.attr('data-' + ns + '-row-feedback')\n },\n threshold: this.$form.attr('data-' + ns + '-threshold'),\n trigger: this.$form.attr('data-' + ns + '-trigger'),\n verbose: this.$form.attr('data-' + ns + '-verbose'),\n fields: {}\n };\n\n this.$form\n // Disable client side validation in HTML 5\n .attr('novalidate', 'novalidate')\n .addClass(this.options.elementClass)\n // Disable the default submission first\n .on('submit.' + ns, function(e) {\n e.preventDefault();\n that.validate();\n })\n .on('click.' + ns, this.options.button.selector, function() {\n that.$submitButton = $(this);\n // The user just click the submit button\n that._submitIfValid = true;\n });\n\n if (this.options.declarative === true || this.options.declarative === 'true') {\n // Find all fields which have either \"name\" or \"data-{namespace}-field\" attribute\n this.$form\n .find('[name], [data-' + ns + '-field]')\n .each(function() {\n var $field = $(this),\n field = $field.attr('name') || $field.attr('data-' + ns + '-field'),\n opts = that._parseOptions($field);\n if (opts) {\n $field.attr('data-' + ns + '-field', field);\n options.fields[field] = $.extend({}, opts, options.fields[field]);\n }\n });\n }\n\n this.options = $.extend(true, this.options, options);\n\n // Normalize the err.parent option\n if ('string' === typeof this.options.err.parent) {\n this.options.err.parent = new RegExp(this.options.err.parent);\n }\n\n // Support backward\n if (this.options.container) {\n this.options.err.container = this.options.container;\n delete this.options.container;\n }\n if (this.options.feedbackIcons) {\n this.options.icon = $.extend(true, this.options.icon, this.options.feedbackIcons);\n delete this.options.feedbackIcons;\n }\n if (this.options.group) {\n this.options.row.selector = this.options.group;\n delete this.options.group;\n }\n if (this.options.submitButtons) {\n this.options.button.selector = this.options.submitButtons;\n delete this.options.submitButtons;\n }\n\n // If the locale is not found, reset it to default one\n if (!FormValidation.I18n[this.options.locale]) {\n this.options.locale = $.fn.formValidation.DEFAULT_OPTIONS.locale;\n }\n\n // Parse the add-on options from HTML attributes\n if (this.options.declarative === true || this.options.declarative === 'true') {\n this.options = $.extend(true, this.options, { addOns: this._parseAddOnOptions() });\n }\n\n // When pressing Enter on any field in the form, the first submit button will do its job.\n // The form then will be submitted.\n // I create a first hidden submit button\n this.$hiddenButton = $('\\n \\n ';\n\n return template;\n}\n\nexports['default'] = TextTrackSettings;\nmodule.exports = exports['default'];\n\n},{\"../component\":67,\"../utils/events.js\":135,\"../utils/fn.js\":136,\"../utils/log.js\":139,\"global/window\":2,\"safe-json-parse/tuple\":54}],130:[function(_dereq_,module,exports){\n/**\n * @file text-track.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _textTrackCueList = _dereq_('./text-track-cue-list');\n\nvar _textTrackCueList2 = _interopRequireDefault(_textTrackCueList);\n\nvar _utilsFnJs = _dereq_('../utils/fn.js');\n\nvar Fn = _interopRequireWildcard(_utilsFnJs);\n\nvar _utilsGuidJs = _dereq_('../utils/guid.js');\n\nvar Guid = _interopRequireWildcard(_utilsGuidJs);\n\nvar _utilsBrowserJs = _dereq_('../utils/browser.js');\n\nvar browser = _interopRequireWildcard(_utilsBrowserJs);\n\nvar _textTrackEnums = _dereq_('./text-track-enums');\n\nvar TextTrackEnum = _interopRequireWildcard(_textTrackEnums);\n\nvar _utilsLogJs = _dereq_('../utils/log.js');\n\nvar _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);\n\nvar _eventTarget = _dereq_('../event-target');\n\nvar _eventTarget2 = _interopRequireDefault(_eventTarget);\n\nvar _globalDocument = _dereq_('global/document');\n\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\n\nvar _globalWindow = _dereq_('global/window');\n\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\n\nvar _utilsUrlJs = _dereq_('../utils/url.js');\n\nvar _xhr = _dereq_('xhr');\n\nvar _xhr2 = _interopRequireDefault(_xhr);\n\n/**\n * takes a webvtt file contents and parses it into cues\n *\n * @param {String} srcContent webVTT file contents\n * @param {Track} track track to addcues to\n */\nvar parseCues = function parseCues(srcContent, track) {\n var parser = new _globalWindow2['default'].WebVTT.Parser(_globalWindow2['default'], _globalWindow2['default'].vttjs, _globalWindow2['default'].WebVTT.StringDecoder());\n var errors = [];\n\n parser.oncue = function (cue) {\n track.addCue(cue);\n };\n\n parser.onparsingerror = function (error) {\n errors.push(error);\n };\n\n parser.onflush = function () {\n track.trigger({\n type: 'loadeddata',\n target: track\n });\n };\n\n parser.parse(srcContent);\n if (errors.length > 0) {\n if (console.groupCollapsed) {\n console.groupCollapsed('Text Track parsing errors for ' + track.src);\n }\n errors.forEach(function (error) {\n return _utilsLogJs2['default'].error(error);\n });\n if (console.groupEnd) {\n console.groupEnd();\n }\n }\n\n parser.flush();\n};\n\n/**\n * load a track from a specifed url\n *\n * @param {String} src url to load track from\n * @param {Track} track track to addcues to\n */\nvar loadTrack = function loadTrack(src, track) {\n var opts = {\n uri: src\n };\n var crossOrigin = _utilsUrlJs.isCrossOrigin(src);\n\n if (crossOrigin) {\n opts.cors = crossOrigin;\n }\n\n _xhr2['default'](opts, Fn.bind(this, function (err, response, responseBody) {\n if (err) {\n return _utilsLogJs2['default'].error(err, response);\n }\n\n track.loaded_ = true;\n\n // Make sure that vttjs has loaded, otherwise, wait till it finished loading\n // NOTE: this is only used for the alt/video.novtt.js build\n if (typeof _globalWindow2['default'].WebVTT !== 'function') {\n if (track.tech_) {\n (function () {\n var loadHandler = function loadHandler() {\n return parseCues(responseBody, track);\n };\n track.tech_.on('vttjsloaded', loadHandler);\n track.tech_.on('vttjserror', function () {\n _utilsLogJs2['default'].error('vttjs failed to load, stopping trying to process ' + track.src);\n track.tech_.off('vttjsloaded', loadHandler);\n });\n })();\n }\n } else {\n parseCues(responseBody, track);\n }\n }));\n};\n\n/**\n * A single text track as defined in:\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrack\n *\n * interface TextTrack : EventTarget {\n * readonly attribute TextTrackKind kind;\n * readonly attribute DOMString label;\n * readonly attribute DOMString language;\n *\n * readonly attribute DOMString id;\n * readonly attribute DOMString inBandMetadataTrackDispatchType;\n *\n * attribute TextTrackMode mode;\n *\n * readonly attribute TextTrackCueList? cues;\n * readonly attribute TextTrackCueList? activeCues;\n *\n * void addCue(TextTrackCue cue);\n * void removeCue(TextTrackCue cue);\n *\n * attribute EventHandler oncuechange;\n * };\n *\n * @param {Object=} options Object of option names and values\n * @extends EventTarget\n * @class TextTrack\n */\n\nvar TextTrack = (function (_EventTarget) {\n _inherits(TextTrack, _EventTarget);\n\n function TextTrack() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n _classCallCheck(this, TextTrack);\n\n _EventTarget.call(this);\n if (!options.tech) {\n throw new Error('A tech was not provided.');\n }\n\n var tt = this;\n\n if (browser.IS_IE8) {\n tt = _globalDocument2['default'].createElement('custom');\n\n for (var prop in TextTrack.prototype) {\n if (prop !== 'constructor') {\n tt[prop] = TextTrack.prototype[prop];\n }\n }\n }\n\n tt.tech_ = options.tech;\n\n var mode = TextTrackEnum.TextTrackMode[options.mode] || 'disabled';\n var kind = TextTrackEnum.TextTrackKind[options.kind] || 'subtitles';\n var default_ = options['default'];\n var label = options.label || '';\n var language = options.language || options.srclang || '';\n var id = options.id || 'vjs_text_track_' + Guid.newGUID();\n\n if (kind === 'metadata' || kind === 'chapters') {\n mode = 'hidden';\n }\n\n tt.cues_ = [];\n tt.activeCues_ = [];\n\n var cues = new _textTrackCueList2['default'](tt.cues_);\n var activeCues = new _textTrackCueList2['default'](tt.activeCues_);\n var changed = false;\n var timeupdateHandler = Fn.bind(tt, function () {\n this.activeCues;\n if (changed) {\n this.trigger('cuechange');\n changed = false;\n }\n });\n\n if (mode !== 'disabled') {\n tt.tech_.on('timeupdate', timeupdateHandler);\n }\n\n Object.defineProperty(tt, 'kind', {\n get: function get() {\n return kind;\n },\n set: function set() {}\n });\n\n Object.defineProperty(tt, 'label', {\n get: function get() {\n return label;\n },\n set: function set() {}\n });\n\n Object.defineProperty(tt, 'language', {\n get: function get() {\n return language;\n },\n set: function set() {}\n });\n\n Object.defineProperty(tt, 'id', {\n get: function get() {\n return id;\n },\n set: function set() {}\n });\n\n Object.defineProperty(tt, 'default', {\n get: function get() {\n return default_;\n },\n set: function set() {}\n });\n\n Object.defineProperty(tt, 'mode', {\n get: function get() {\n return mode;\n },\n set: function set(newMode) {\n if (!TextTrackEnum.TextTrackMode[newMode]) {\n return;\n }\n mode = newMode;\n if (mode === 'showing') {\n this.tech_.on('timeupdate', timeupdateHandler);\n }\n this.trigger('modechange');\n }\n });\n\n Object.defineProperty(tt, 'cues', {\n get: function get() {\n if (!this.loaded_) {\n return null;\n }\n\n return cues;\n },\n set: function set() {}\n });\n\n Object.defineProperty(tt, 'activeCues', {\n get: function get() {\n if (!this.loaded_) {\n return null;\n }\n\n // nothing to do\n if (this.cues.length === 0) {\n return activeCues;\n }\n\n var ct = this.tech_.currentTime();\n var active = [];\n\n for (var i = 0, l = this.cues.length; i < l; i++) {\n var cue = this.cues[i];\n\n if (cue.startTime <= ct && cue.endTime >= ct) {\n active.push(cue);\n } else if (cue.startTime === cue.endTime && cue.startTime <= ct && cue.startTime + 0.5 >= ct) {\n active.push(cue);\n }\n }\n\n changed = false;\n\n if (active.length !== this.activeCues_.length) {\n changed = true;\n } else {\n for (var i = 0; i < active.length; i++) {\n if (this.activeCues_.indexOf(active[i]) === -1) {\n changed = true;\n }\n }\n }\n\n this.activeCues_ = active;\n activeCues.setCues_(this.activeCues_);\n\n return activeCues;\n },\n set: function set() {}\n });\n\n if (options.src) {\n tt.src = options.src;\n loadTrack(options.src, tt);\n } else {\n tt.loaded_ = true;\n }\n\n if (browser.IS_IE8) {\n return tt;\n }\n }\n\n /**\n * cuechange - One or more cues in the track have become active or stopped being active.\n */\n\n /**\n * add a cue to the internal list of cues\n *\n * @param {Object} cue the cue to add to our internal list\n * @method addCue\n */\n\n TextTrack.prototype.addCue = function addCue(cue) {\n var tracks = this.tech_.textTracks();\n\n if (tracks) {\n for (var i = 0; i < tracks.length; i++) {\n if (tracks[i] !== this) {\n tracks[i].removeCue(cue);\n }\n }\n }\n\n this.cues_.push(cue);\n this.cues.setCues_(this.cues_);\n };\n\n /**\n * remvoe a cue from our internal list\n *\n * @param {Object} removeCue the cue to remove from our internal list\n * @method removeCue\n */\n\n TextTrack.prototype.removeCue = function removeCue(_removeCue) {\n var removed = false;\n\n for (var i = 0, l = this.cues_.length; i < l; i++) {\n var cue = this.cues_[i];\n\n if (cue === _removeCue) {\n this.cues_.splice(i, 1);\n removed = true;\n }\n }\n\n if (removed) {\n this.cues.setCues_(this.cues_);\n }\n };\n\n return TextTrack;\n})(_eventTarget2['default']);\n\nTextTrack.prototype.allowedEvents_ = {\n cuechange: 'cuechange'\n};\n\nexports['default'] = TextTrack;\nmodule.exports = exports['default'];\n\n},{\"../event-target\":101,\"../utils/browser.js\":131,\"../utils/fn.js\":136,\"../utils/guid.js\":138,\"../utils/log.js\":139,\"../utils/url.js\":144,\"./text-track-cue-list\":124,\"./text-track-enums\":126,\"global/document\":1,\"global/window\":2,\"xhr\":56}],131:[function(_dereq_,module,exports){\n/**\n * @file browser.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _globalDocument = _dereq_('global/document');\n\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\n\nvar _globalWindow = _dereq_('global/window');\n\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\n\nvar USER_AGENT = _globalWindow2['default'].navigator.userAgent;\nvar webkitVersionMap = /AppleWebKit\\/([\\d.]+)/i.exec(USER_AGENT);\nvar appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;\n\n/*\n * Device is an iPhone\n *\n * @type {Boolean}\n * @constant\n * @private\n */\nvar IS_IPAD = /iPad/i.test(USER_AGENT);\n\nexports.IS_IPAD = IS_IPAD;\n// The Facebook app's UIWebView identifies as both an iPhone and iPad, so\n// to identify iPhones, we need to exclude iPads.\n// http://artsy.github.io/blog/2012/10/18/the-perils-of-ios-user-agent-sniffing/\nvar IS_IPHONE = /iPhone/i.test(USER_AGENT) && !IS_IPAD;\nexports.IS_IPHONE = IS_IPHONE;\nvar IS_IPOD = /iPod/i.test(USER_AGENT);\nexports.IS_IPOD = IS_IPOD;\nvar IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\n\nexports.IS_IOS = IS_IOS;\nvar IOS_VERSION = (function () {\n var match = USER_AGENT.match(/OS (\\d+)_/i);\n if (match && match[1]) {\n return match[1];\n }\n})();\n\nexports.IOS_VERSION = IOS_VERSION;\nvar IS_ANDROID = /Android/i.test(USER_AGENT);\nexports.IS_ANDROID = IS_ANDROID;\nvar ANDROID_VERSION = (function () {\n // This matches Android Major.Minor.Patch versions\n // ANDROID_VERSION is Major.Minor as a Number, if Minor isn't available, then only Major is returned\n var match = USER_AGENT.match(/Android (\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))*/i),\n major,\n minor;\n\n if (!match) {\n return null;\n }\n\n major = match[1] && parseFloat(match[1]);\n minor = match[2] && parseFloat(match[2]);\n\n if (major && minor) {\n return parseFloat(match[1] + '.' + match[2]);\n } else if (major) {\n return major;\n } else {\n return null;\n }\n})();\nexports.ANDROID_VERSION = ANDROID_VERSION;\n// Old Android is defined as Version older than 2.3, and requiring a webkit version of the android browser\nvar IS_OLD_ANDROID = IS_ANDROID && /webkit/i.test(USER_AGENT) && ANDROID_VERSION < 2.3;\nexports.IS_OLD_ANDROID = IS_OLD_ANDROID;\nvar IS_NATIVE_ANDROID = IS_ANDROID && ANDROID_VERSION < 5 && appleWebkitVersion < 537;\n\nexports.IS_NATIVE_ANDROID = IS_NATIVE_ANDROID;\nvar IS_FIREFOX = /Firefox/i.test(USER_AGENT);\nexports.IS_FIREFOX = IS_FIREFOX;\nvar IS_EDGE = /Edge/i.test(USER_AGENT);\nexports.IS_EDGE = IS_EDGE;\nvar IS_CHROME = !IS_EDGE && /Chrome/i.test(USER_AGENT);\nexports.IS_CHROME = IS_CHROME;\nvar IS_IE8 = /MSIE\\s8\\.0/.test(USER_AGENT);\n\nexports.IS_IE8 = IS_IE8;\nvar TOUCH_ENABLED = !!('ontouchstart' in _globalWindow2['default'] || _globalWindow2['default'].DocumentTouch && _globalDocument2['default'] instanceof _globalWindow2['default'].DocumentTouch);\nexports.TOUCH_ENABLED = TOUCH_ENABLED;\nvar BACKGROUND_SIZE_SUPPORTED = ('backgroundSize' in _globalDocument2['default'].createElement('video').style);\nexports.BACKGROUND_SIZE_SUPPORTED = BACKGROUND_SIZE_SUPPORTED;\n\n},{\"global/document\":1,\"global/window\":2}],132:[function(_dereq_,module,exports){\n/**\n * @file buffer.js\n */\n'use strict';\n\nexports.__esModule = true;\nexports.bufferedPercent = bufferedPercent;\n\nvar _timeRangesJs = _dereq_('./time-ranges.js');\n\n/**\n * Compute how much your video has been buffered\n *\n * @param {Object} Buffered object\n * @param {Number} Total duration\n * @return {Number} Percent buffered of the total duration\n * @private\n * @function bufferedPercent\n */\n\nfunction bufferedPercent(buffered, duration) {\n var bufferedDuration = 0,\n start,\n end;\n\n if (!duration) {\n return 0;\n }\n\n if (!buffered || !buffered.length) {\n buffered = _timeRangesJs.createTimeRange(0, 0);\n }\n\n for (var i = 0; i < buffered.length; i++) {\n start = buffered.start(i);\n end = buffered.end(i);\n\n // buffered end can be bigger than duration by a very small fraction\n if (end > duration) {\n end = duration;\n }\n\n bufferedDuration += end - start;\n }\n\n return bufferedDuration / duration;\n}\n\n},{\"./time-ranges.js\":142}],133:[function(_dereq_,module,exports){\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _logJs = _dereq_('./log.js');\n\nvar _logJs2 = _interopRequireDefault(_logJs);\n\n/**\n * Object containing the default behaviors for available handler methods.\n *\n * @private\n * @type {Object}\n */\nvar defaultBehaviors = {\n get: function get(obj, key) {\n return obj[key];\n },\n set: function set(obj, key, value) {\n obj[key] = value;\n return true;\n }\n};\n\n/**\n * Expose private objects publicly using a Proxy to log deprecation warnings.\n *\n * Browsers that do not support Proxy objects will simply return the `target`\n * object, so it can be directly exposed.\n *\n * @param {Object} target The target object.\n * @param {Object} messages Messages to display from a Proxy. Only operations\n * with an associated message will be proxied.\n * @param {String} [messages.get]\n * @param {String} [messages.set]\n * @return {Object} A Proxy if supported or the `target` argument.\n */\n\nexports['default'] = function (target) {\n var messages = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n if (typeof Proxy === 'function') {\n var _ret = (function () {\n var handler = {};\n\n // Build a handler object based on those keys that have both messages\n // and default behaviors.\n Object.keys(messages).forEach(function (key) {\n if (defaultBehaviors.hasOwnProperty(key)) {\n handler[key] = function () {\n _logJs2['default'].warn(messages[key]);\n return defaultBehaviors[key].apply(this, arguments);\n };\n }\n });\n\n return {\n v: new Proxy(target, handler)\n };\n })();\n\n if (typeof _ret === 'object') return _ret.v;\n }\n return target;\n};\n\nmodule.exports = exports['default'];\n\n},{\"./log.js\":139}],134:[function(_dereq_,module,exports){\n/**\n * @file dom.js\n */\n'use strict';\n\nexports.__esModule = true;\nexports.getEl = getEl;\nexports.createEl = createEl;\nexports.textContent = textContent;\nexports.insertElFirst = insertElFirst;\nexports.getElData = getElData;\nexports.hasElData = hasElData;\nexports.removeElData = removeElData;\nexports.hasElClass = hasElClass;\nexports.addElClass = addElClass;\nexports.removeElClass = removeElClass;\nexports.toggleElClass = toggleElClass;\nexports.setElAttributes = setElAttributes;\nexports.getElAttributes = getElAttributes;\nexports.blockTextSelection = blockTextSelection;\nexports.unblockTextSelection = unblockTextSelection;\nexports.findElPosition = findElPosition;\nexports.getPointerPosition = getPointerPosition;\nexports.isEl = isEl;\nexports.isTextNode = isTextNode;\nexports.emptyEl = emptyEl;\nexports.normalizeContent = normalizeContent;\nexports.appendContent = appendContent;\nexports.insertContent = insertContent;\n\nvar _templateObject = _taggedTemplateLiteralLoose(['Setting attributes in the second argument of createEl()\\n has been deprecated. Use the third argument instead.\\n createEl(type, properties, attributes). Attempting to set ', ' to ', '.'], ['Setting attributes in the second argument of createEl()\\n has been deprecated. Use the third argument instead.\\n createEl(type, properties, attributes). Attempting to set ', ' to ', '.']);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _taggedTemplateLiteralLoose(strings, raw) { strings.raw = raw; return strings; }\n\nvar _globalDocument = _dereq_('global/document');\n\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\n\nvar _globalWindow = _dereq_('global/window');\n\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\n\nvar _guidJs = _dereq_('./guid.js');\n\nvar Guid = _interopRequireWildcard(_guidJs);\n\nvar _logJs = _dereq_('./log.js');\n\nvar _logJs2 = _interopRequireDefault(_logJs);\n\nvar _tsml = _dereq_('tsml');\n\nvar _tsml2 = _interopRequireDefault(_tsml);\n\n/**\n * Detect if a value is a string with any non-whitespace characters.\n *\n * @param {String} str\n * @return {Boolean}\n */\nfunction isNonBlankString(str) {\n return typeof str === 'string' && /\\S/.test(str);\n}\n\n/**\n * Throws an error if the passed string has whitespace. This is used by\n * class methods to be relatively consistent with the classList API.\n *\n * @param {String} str\n * @return {Boolean}\n */\nfunction throwIfWhitespace(str) {\n if (/\\s/.test(str)) {\n throw new Error('class has illegal whitespace characters');\n }\n}\n\n/**\n * Produce a regular expression for matching a class name.\n *\n * @param {String} className\n * @return {RegExp}\n */\nfunction classRegExp(className) {\n return new RegExp('(^|\\\\s)' + className + '($|\\\\s)');\n}\n\n/**\n * Creates functions to query the DOM using a given method.\n *\n * @function createQuerier\n * @private\n * @param {String} method\n * @return {Function}\n */\nfunction createQuerier(method) {\n return function (selector, context) {\n if (!isNonBlankString(selector)) {\n return _globalDocument2['default'][method](null);\n }\n if (isNonBlankString(context)) {\n context = _globalDocument2['default'].querySelector(context);\n }\n return (isEl(context) ? context : _globalDocument2['default'])[method](selector);\n };\n}\n\n/**\n * Shorthand for document.getElementById()\n * Also allows for CSS (jQuery) ID syntax. But nothing other than IDs.\n *\n * @param {String} id Element ID\n * @return {Element} Element with supplied ID\n * @function getEl\n */\n\nfunction getEl(id) {\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n return _globalDocument2['default'].getElementById(id);\n}\n\n/**\n * Creates an element and applies properties.\n *\n * @param {String} [tagName='div'] Name of tag to be created.\n * @param {Object} [properties={}] Element properties to be applied.\n * @param {Object} [attributes={}] Element attributes to be applied.\n * @return {Element}\n * @function createEl\n */\n\nfunction createEl() {\n var tagName = arguments.length <= 0 || arguments[0] === undefined ? 'div' : arguments[0];\n var properties = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n var attributes = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];\n\n var el = _globalDocument2['default'].createElement(tagName);\n\n Object.getOwnPropertyNames(properties).forEach(function (propName) {\n var val = properties[propName];\n\n // See #2176\n // We originally were accepting both properties and attributes in the\n // same object, but that doesn't work so well.\n if (propName.indexOf('aria-') !== -1 || propName === 'role' || propName === 'type') {\n _logJs2['default'].warn(_tsml2['default'](_templateObject, propName, val));\n el.setAttribute(propName, val);\n } else {\n el[propName] = val;\n }\n });\n\n Object.getOwnPropertyNames(attributes).forEach(function (attrName) {\n var val = attributes[attrName];\n el.setAttribute(attrName, attributes[attrName]);\n });\n\n return el;\n}\n\n/**\n * Injects text into an element, replacing any existing contents entirely.\n *\n * @param {Element} el\n * @param {String} text\n * @return {Element}\n * @function textContent\n */\n\nfunction textContent(el, text) {\n if (typeof el.textContent === 'undefined') {\n el.innerText = text;\n } else {\n el.textContent = text;\n }\n}\n\n/**\n * Insert an element as the first child node of another\n *\n * @param {Element} child Element to insert\n * @param {Element} parent Element to insert child into\n * @private\n * @function insertElFirst\n */\n\nfunction insertElFirst(child, parent) {\n if (parent.firstChild) {\n parent.insertBefore(child, parent.firstChild);\n } else {\n parent.appendChild(child);\n }\n}\n\n/**\n * Element Data Store. Allows for binding data to an element without putting it directly on the element.\n * Ex. Event listeners are stored here.\n * (also from jsninja.com, slightly modified and updated for closure compiler)\n *\n * @type {Object}\n * @private\n */\nvar elData = {};\n\n/*\n * Unique attribute name to store an element's guid in\n *\n * @type {String}\n * @constant\n * @private\n */\nvar elIdAttr = 'vdata' + new Date().getTime();\n\n/**\n * Returns the cache object where data for an element is stored\n *\n * @param {Element} el Element to store data for.\n * @return {Object}\n * @function getElData\n */\n\nfunction getElData(el) {\n var id = el[elIdAttr];\n\n if (!id) {\n id = el[elIdAttr] = Guid.newGUID();\n }\n\n if (!elData[id]) {\n elData[id] = {};\n }\n\n return elData[id];\n}\n\n/**\n * Returns whether or not an element has cached data\n *\n * @param {Element} el A dom element\n * @return {Boolean}\n * @private\n * @function hasElData\n */\n\nfunction hasElData(el) {\n var id = el[elIdAttr];\n\n if (!id) {\n return false;\n }\n\n return !!Object.getOwnPropertyNames(elData[id]).length;\n}\n\n/**\n * Delete data for the element from the cache and the guid attr from getElementById\n *\n * @param {Element} el Remove data for an element\n * @private\n * @function removeElData\n */\n\nfunction removeElData(el) {\n var id = el[elIdAttr];\n\n if (!id) {\n return;\n }\n\n // Remove all stored data\n delete elData[id];\n\n // Remove the elIdAttr property from the DOM node\n try {\n delete el[elIdAttr];\n } catch (e) {\n if (el.removeAttribute) {\n el.removeAttribute(elIdAttr);\n } else {\n // IE doesn't appear to support removeAttribute on the document element\n el[elIdAttr] = null;\n }\n }\n}\n\n/**\n * Check if an element has a CSS class\n *\n * @function hasElClass\n * @param {Element} element Element to check\n * @param {String} classToCheck Classname to check\n */\n\nfunction hasElClass(element, classToCheck) {\n if (element.classList) {\n return element.classList.contains(classToCheck);\n } else {\n throwIfWhitespace(classToCheck);\n return classRegExp(classToCheck).test(element.className);\n }\n}\n\n/**\n * Add a CSS class name to an element\n *\n * @function addElClass\n * @param {Element} element Element to add class name to\n * @param {String} classToAdd Classname to add\n */\n\nfunction addElClass(element, classToAdd) {\n if (element.classList) {\n element.classList.add(classToAdd);\n\n // Don't need to `throwIfWhitespace` here because `hasElClass` will do it\n // in the case of classList not being supported.\n } else if (!hasElClass(element, classToAdd)) {\n element.className = (element.className + ' ' + classToAdd).trim();\n }\n\n return element;\n}\n\n/**\n * Remove a CSS class name from an element\n *\n * @function removeElClass\n * @param {Element} element Element to remove from class name\n * @param {String} classToRemove Classname to remove\n */\n\nfunction removeElClass(element, classToRemove) {\n if (element.classList) {\n element.classList.remove(classToRemove);\n } else {\n throwIfWhitespace(classToRemove);\n element.className = element.className.split(/\\s+/).filter(function (c) {\n return c !== classToRemove;\n }).join(' ');\n }\n\n return element;\n}\n\n/**\n * Adds or removes a CSS class name on an element depending on an optional\n * condition or the presence/absence of the class name.\n *\n * @function toggleElClass\n * @param {Element} element\n * @param {String} classToToggle\n * @param {Boolean|Function} [predicate]\n * Can be a function that returns a Boolean. If `true`, the class\n * will be added; if `false`, the class will be removed. If not\n * given, the class will be added if not present and vice versa.\n */\n\nfunction toggleElClass(element, classToToggle, predicate) {\n\n // This CANNOT use `classList` internally because IE does not support the\n // second parameter to the `classList.toggle()` method! Which is fine because\n // `classList` will be used by the add/remove functions.\n var has = hasElClass(element, classToToggle);\n\n if (typeof predicate === 'function') {\n predicate = predicate(element, classToToggle);\n }\n\n if (typeof predicate !== 'boolean') {\n predicate = !has;\n }\n\n // If the necessary class operation matches the current state of the\n // element, no action is required.\n if (predicate === has) {\n return;\n }\n\n if (predicate) {\n addElClass(element, classToToggle);\n } else {\n removeElClass(element, classToToggle);\n }\n\n return element;\n}\n\n/**\n * Apply attributes to an HTML element.\n *\n * @param {Element} el Target element.\n * @param {Object=} attributes Element attributes to be applied.\n * @private\n * @function setElAttributes\n */\n\nfunction setElAttributes(el, attributes) {\n Object.getOwnPropertyNames(attributes).forEach(function (attrName) {\n var attrValue = attributes[attrName];\n\n if (attrValue === null || typeof attrValue === 'undefined' || attrValue === false) {\n el.removeAttribute(attrName);\n } else {\n el.setAttribute(attrName, attrValue === true ? '' : attrValue);\n }\n });\n}\n\n/**\n * Get an element's attribute values, as defined on the HTML tag\n * Attributes are not the same as properties. They're defined on the tag\n * or with setAttribute (which shouldn't be used with HTML)\n * This will return true or false for boolean attributes.\n *\n * @param {Element} tag Element from which to get tag attributes\n * @return {Object}\n * @private\n * @function getElAttributes\n */\n\nfunction getElAttributes(tag) {\n var obj, knownBooleans, attrs, attrName, attrVal;\n\n obj = {};\n\n // known boolean attributes\n // we can check for matching boolean properties, but older browsers\n // won't know about HTML5 boolean attributes that we still read from\n knownBooleans = ',' + 'autoplay,controls,loop,muted,default' + ',';\n\n if (tag && tag.attributes && tag.attributes.length > 0) {\n attrs = tag.attributes;\n\n for (var i = attrs.length - 1; i >= 0; i--) {\n attrName = attrs[i].name;\n attrVal = attrs[i].value;\n\n // check for known booleans\n // the matching element property will return a value for typeof\n if (typeof tag[attrName] === 'boolean' || knownBooleans.indexOf(',' + attrName + ',') !== -1) {\n // the value of an included boolean attribute is typically an empty\n // string ('') which would equal false if we just check for a false value.\n // we also don't want support bad code like autoplay='false'\n attrVal = attrVal !== null ? true : false;\n }\n\n obj[attrName] = attrVal;\n }\n }\n\n return obj;\n}\n\n/**\n * Attempt to block the ability to select text while dragging controls\n *\n * @return {Boolean}\n * @function blockTextSelection\n */\n\nfunction blockTextSelection() {\n _globalDocument2['default'].body.focus();\n _globalDocument2['default'].onselectstart = function () {\n return false;\n };\n}\n\n/**\n * Turn off text selection blocking\n *\n * @return {Boolean}\n * @function unblockTextSelection\n */\n\nfunction unblockTextSelection() {\n _globalDocument2['default'].onselectstart = function () {\n return true;\n };\n}\n\n/**\n * Offset Left\n * getBoundingClientRect technique from\n * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/\n *\n * @function findElPosition\n * @param {Element} el Element from which to get offset\n * @return {Object}\n */\n\nfunction findElPosition(el) {\n var box = undefined;\n\n if (el.getBoundingClientRect && el.parentNode) {\n box = el.getBoundingClientRect();\n }\n\n if (!box) {\n return {\n left: 0,\n top: 0\n };\n }\n\n var docEl = _globalDocument2['default'].documentElement;\n var body = _globalDocument2['default'].body;\n\n var clientLeft = docEl.clientLeft || body.clientLeft || 0;\n var scrollLeft = _globalWindow2['default'].pageXOffset || body.scrollLeft;\n var left = box.left + scrollLeft - clientLeft;\n\n var clientTop = docEl.clientTop || body.clientTop || 0;\n var scrollTop = _globalWindow2['default'].pageYOffset || body.scrollTop;\n var top = box.top + scrollTop - clientTop;\n\n // Android sometimes returns slightly off decimal values, so need to round\n return {\n left: Math.round(left),\n top: Math.round(top)\n };\n}\n\n/**\n * Get pointer position in element\n * Returns an object with x and y coordinates.\n * The base on the coordinates are the bottom left of the element.\n *\n * @function getPointerPosition\n * @param {Element} el Element on which to get the pointer position on\n * @param {Event} event Event object\n * @return {Object} This object will have x and y coordinates corresponding to the mouse position\n */\n\nfunction getPointerPosition(el, event) {\n var position = {};\n var box = findElPosition(el);\n var boxW = el.offsetWidth;\n var boxH = el.offsetHeight;\n\n var boxY = box.top;\n var boxX = box.left;\n var pageY = event.pageY;\n var pageX = event.pageX;\n\n if (event.changedTouches) {\n pageX = event.changedTouches[0].pageX;\n pageY = event.changedTouches[0].pageY;\n }\n\n position.y = Math.max(0, Math.min(1, (boxY - pageY + boxH) / boxH));\n position.x = Math.max(0, Math.min(1, (pageX - boxX) / boxW));\n\n return position;\n}\n\n/**\n * Determines, via duck typing, whether or not a value is a DOM element.\n *\n * @function isEl\n * @param {Mixed} value\n * @return {Boolean}\n */\n\nfunction isEl(value) {\n return !!value && typeof value === 'object' && value.nodeType === 1;\n}\n\n/**\n * Determines, via duck typing, whether or not a value is a text node.\n *\n * @param {Mixed} value\n * @return {Boolean}\n */\n\nfunction isTextNode(value) {\n return !!value && typeof value === 'object' && value.nodeType === 3;\n}\n\n/**\n * Empties the contents of an element.\n *\n * @function emptyEl\n * @param {Element} el\n * @return {Element}\n */\n\nfunction emptyEl(el) {\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n return el;\n}\n\n/**\n * Normalizes content for eventual insertion into the DOM.\n *\n * This allows a wide range of content definition methods, but protects\n * from falling into the trap of simply writing to `innerHTML`, which is\n * an XSS concern.\n *\n * The content for an element can be passed in multiple types and\n * combinations, whose behavior is as follows:\n *\n * - String\n * Normalized into a text node.\n *\n * - Element, TextNode\n * Passed through.\n *\n * - Array\n * A one-dimensional array of strings, elements, nodes, or functions (which\n * return single strings, elements, or nodes).\n *\n * - Function\n * If the sole argument, is expected to produce a string, element,\n * node, or array.\n *\n * @function normalizeContent\n * @param {String|Element|TextNode|Array|Function} content\n * @return {Array}\n */\n\nfunction normalizeContent(content) {\n\n // First, invoke content if it is a function. If it produces an array,\n // that needs to happen before normalization.\n if (typeof content === 'function') {\n content = content();\n }\n\n // Next up, normalize to an array, so one or many items can be normalized,\n // filtered, and returned.\n return (Array.isArray(content) ? content : [content]).map(function (value) {\n\n // First, invoke value if it is a function to produce a new value,\n // which will be subsequently normalized to a Node of some kind.\n if (typeof value === 'function') {\n value = value();\n }\n\n if (isEl(value) || isTextNode(value)) {\n return value;\n }\n\n if (typeof value === 'string' && /\\S/.test(value)) {\n return _globalDocument2['default'].createTextNode(value);\n }\n }).filter(function (value) {\n return value;\n });\n}\n\n/**\n * Normalizes and appends content to an element.\n *\n * @function appendContent\n * @param {Element} el\n * @param {String|Element|TextNode|Array|Function} content\n * See: `normalizeContent`\n * @return {Element}\n */\n\nfunction appendContent(el, content) {\n normalizeContent(content).forEach(function (node) {\n return el.appendChild(node);\n });\n return el;\n}\n\n/**\n * Normalizes and inserts content into an element; this is identical to\n * `appendContent()`, except it empties the element first.\n *\n * @function insertContent\n * @param {Element} el\n * @param {String|Element|TextNode|Array|Function} content\n * See: `normalizeContent`\n * @return {Element}\n */\n\nfunction insertContent(el, content) {\n return appendContent(emptyEl(el), content);\n}\n\n/**\n * Finds a single DOM element matching `selector` within the optional\n * `context` of another DOM element (defaulting to `document`).\n *\n * @function $\n * @param {String} selector\n * A valid CSS selector, which will be passed to `querySelector`.\n *\n * @param {Element|String} [context=document]\n * A DOM element within which to query. Can also be a selector\n * string in which case the first matching element will be used\n * as context. If missing (or no element matches selector), falls\n * back to `document`.\n *\n * @return {Element|null}\n */\nvar $ = createQuerier('querySelector');\n\nexports.$ = $;\n/**\n * Finds a all DOM elements matching `selector` within the optional\n * `context` of another DOM element (defaulting to `document`).\n *\n * @function $$\n * @param {String} selector\n * A valid CSS selector, which will be passed to `querySelectorAll`.\n *\n * @param {Element|String} [context=document]\n * A DOM element within which to query. Can also be a selector\n * string in which case the first matching element will be used\n * as context. If missing (or no element matches selector), falls\n * back to `document`.\n *\n * @return {NodeList}\n */\nvar $$ = createQuerier('querySelectorAll');\nexports.$$ = $$;\n\n},{\"./guid.js\":138,\"./log.js\":139,\"global/document\":1,\"global/window\":2,\"tsml\":55}],135:[function(_dereq_,module,exports){\n/**\n * @file events.js\n *\n * Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)\n * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)\n * This should work very similarly to jQuery's events, however it's based off the book version which isn't as\n * robust as jquery's, so there's probably some differences.\n */\n\n'use strict';\n\nexports.__esModule = true;\nexports.on = on;\nexports.off = off;\nexports.trigger = trigger;\nexports.one = one;\nexports.fixEvent = fixEvent;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _domJs = _dereq_('./dom.js');\n\nvar Dom = _interopRequireWildcard(_domJs);\n\nvar _guidJs = _dereq_('./guid.js');\n\nvar Guid = _interopRequireWildcard(_guidJs);\n\nvar _globalWindow = _dereq_('global/window');\n\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\n\nvar _globalDocument = _dereq_('global/document');\n\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\n\nfunction on(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(on, elem, type, fn);\n }\n\n var data = Dom.getElData(elem);\n\n // We need a place to store all our handler data\n if (!data.handlers) data.handlers = {};\n\n if (!data.handlers[type]) data.handlers[type] = [];\n\n if (!fn.guid) fn.guid = Guid.newGUID();\n\n data.handlers[type].push(fn);\n\n if (!data.dispatcher) {\n data.disabled = false;\n\n data.dispatcher = function (event, hash) {\n\n if (data.disabled) return;\n event = fixEvent(event);\n\n var handlers = data.handlers[event.type];\n\n if (handlers) {\n // Copy handlers so if handlers are added/removed during the process it doesn't throw everything off.\n var handlersCopy = handlers.slice(0);\n\n for (var m = 0, n = handlersCopy.length; m < n; m++) {\n if (event.isImmediatePropagationStopped()) {\n break;\n } else {\n handlersCopy[m].call(elem, event, hash);\n }\n }\n }\n };\n }\n\n if (data.handlers[type].length === 1) {\n if (elem.addEventListener) {\n elem.addEventListener(type, data.dispatcher, false);\n } else if (elem.attachEvent) {\n elem.attachEvent('on' + type, data.dispatcher);\n }\n }\n}\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\n\nfunction off(elem, type, fn) {\n // Don't want to add a cache object through getElData if not needed\n if (!Dom.hasElData(elem)) return;\n\n var data = Dom.getElData(elem);\n\n // If no events exist, nothing to unbind\n if (!data.handlers) {\n return;\n }\n\n if (Array.isArray(type)) {\n return _handleMultipleEvents(off, elem, type, fn);\n }\n\n // Utility function\n var removeType = function removeType(t) {\n data.handlers[t] = [];\n _cleanUpEvents(elem, t);\n };\n\n // Are we removing all bound events?\n if (!type) {\n for (var t in data.handlers) {\n removeType(t);\n }return;\n }\n\n var handlers = data.handlers[type];\n\n // If no handlers exist, nothing to unbind\n if (!handlers) return;\n\n // If no listener was provided, remove all listeners for type\n if (!fn) {\n removeType(type);\n return;\n }\n\n // We're only removing a single handler\n if (fn.guid) {\n for (var n = 0; n < handlers.length; n++) {\n if (handlers[n].guid === fn.guid) {\n handlers.splice(n--, 1);\n }\n }\n }\n\n _cleanUpEvents(elem, type);\n}\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\n\nfunction trigger(elem, event, hash) {\n // Fetches element data and a reference to the parent (for bubbling).\n // Don't want to add a data object to cache for every parent,\n // so checking hasElData first.\n var elemData = Dom.hasElData(elem) ? Dom.getElData(elem) : {};\n var parent = elem.parentNode || elem.ownerDocument;\n // type = event.type || event,\n // handler;\n\n // If an event name was passed as a string, creates an event out of it\n if (typeof event === 'string') {\n event = { type: event, target: elem };\n }\n // Normalizes the event properties.\n event = fixEvent(event);\n\n // If the passed element has a dispatcher, executes the established handlers.\n if (elemData.dispatcher) {\n elemData.dispatcher.call(elem, event, hash);\n }\n\n // Unless explicitly stopped or the event does not bubble (e.g. media events)\n // recursively calls this function to bubble the event up the DOM.\n if (parent && !event.isPropagationStopped() && event.bubbles === true) {\n trigger.call(null, parent, event, hash);\n\n // If at the top of the DOM, triggers the default action unless disabled.\n } else if (!parent && !event.defaultPrevented) {\n var targetData = Dom.getElData(event.target);\n\n // Checks if the target has a default action for this event.\n if (event.target[event.type]) {\n // Temporarily disables event dispatching on the target as we have already executed the handler.\n targetData.disabled = true;\n // Executes the default action.\n if (typeof event.target[event.type] === 'function') {\n event.target[event.type]();\n }\n // Re-enables event dispatching.\n targetData.disabled = false;\n }\n }\n\n // Inform the triggerer if the default was prevented by returning false\n return !event.defaultPrevented;\n}\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\n\nfunction one(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(one, elem, type, fn);\n }\n var func = function func() {\n off(elem, type, func);\n fn.apply(this, arguments);\n };\n // copy the guid to the new function so it can removed using the original function's ID\n func.guid = fn.guid = fn.guid || Guid.newGUID();\n on(elem, type, func);\n}\n\n/**\n * Fix a native event to have standard property values\n *\n * @param {Object} event Event object to fix\n * @return {Object}\n * @private\n * @method fixEvent\n */\n\nfunction fixEvent(event) {\n\n function returnTrue() {\n return true;\n }\n function returnFalse() {\n return false;\n }\n\n // Test if fixing up is needed\n // Used to check if !event.stopPropagation instead of isPropagationStopped\n // But native events return true for stopPropagation, but don't have\n // other expected methods like isPropagationStopped. Seems to be a problem\n // with the Javascript Ninja code. So we're just overriding all events now.\n if (!event || !event.isPropagationStopped) {\n var old = event || _globalWindow2['default'].event;\n\n event = {};\n // Clone the old object so that we can modify the values event = {};\n // IE8 Doesn't like when you mess with native event properties\n // Firefox returns false for event.hasOwnProperty('type') and other props\n // which makes copying more difficult.\n // TODO: Probably best to create a whitelist of event props\n for (var key in old) {\n // Safari 6.0.3 warns you if you try to copy deprecated layerX/Y\n // Chrome warns you if you try to copy deprecated keyboardEvent.keyLocation\n // and webkitMovementX/Y\n if (key !== 'layerX' && key !== 'layerY' && key !== 'keyLocation' && key !== 'webkitMovementX' && key !== 'webkitMovementY') {\n // Chrome 32+ warns if you try to copy deprecated returnValue, but\n // we still want to if preventDefault isn't supported (IE8).\n if (!(key === 'returnValue' && old.preventDefault)) {\n event[key] = old[key];\n }\n }\n }\n\n // The event occurred on this element\n if (!event.target) {\n event.target = event.srcElement || _globalDocument2['default'];\n }\n\n // Handle which other element the event is related to\n if (!event.relatedTarget) {\n event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement;\n }\n\n // Stop the default browser action\n event.preventDefault = function () {\n if (old.preventDefault) {\n old.preventDefault();\n }\n event.returnValue = false;\n old.returnValue = false;\n event.defaultPrevented = true;\n };\n\n event.defaultPrevented = false;\n\n // Stop the event from bubbling\n event.stopPropagation = function () {\n if (old.stopPropagation) {\n old.stopPropagation();\n }\n event.cancelBubble = true;\n old.cancelBubble = true;\n event.isPropagationStopped = returnTrue;\n };\n\n event.isPropagationStopped = returnFalse;\n\n // Stop the event from bubbling and executing other handlers\n event.stopImmediatePropagation = function () {\n if (old.stopImmediatePropagation) {\n old.stopImmediatePropagation();\n }\n event.isImmediatePropagationStopped = returnTrue;\n event.stopPropagation();\n };\n\n event.isImmediatePropagationStopped = returnFalse;\n\n // Handle mouse position\n if (event.clientX != null) {\n var doc = _globalDocument2['default'].documentElement,\n body = _globalDocument2['default'].body;\n\n event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // Handle key presses\n event.which = event.charCode || event.keyCode;\n\n // Fix button for mouse clicks:\n // 0 == left; 1 == middle; 2 == right\n if (event.button != null) {\n event.button = event.button & 1 ? 0 : event.button & 4 ? 1 : event.button & 2 ? 2 : 0;\n }\n }\n\n // Returns fixed-up instance\n return event;\n}\n\n/**\n * Clean up the listener cache and dispatchers\n*\n * @param {Element|Object} elem Element to clean up\n * @param {String} type Type of event to clean up\n * @private\n * @method _cleanUpEvents\n */\nfunction _cleanUpEvents(elem, type) {\n var data = Dom.getElData(elem);\n\n // Remove the events of a particular type if there are none left\n if (data.handlers[type].length === 0) {\n delete data.handlers[type];\n // data.handlers[type] = null;\n // Setting to null was causing an error with data.handlers\n\n // Remove the meta-handler from the element\n if (elem.removeEventListener) {\n elem.removeEventListener(type, data.dispatcher, false);\n } else if (elem.detachEvent) {\n elem.detachEvent('on' + type, data.dispatcher);\n }\n }\n\n // Remove the events object if there are no types left\n if (Object.getOwnPropertyNames(data.handlers).length <= 0) {\n delete data.handlers;\n delete data.dispatcher;\n delete data.disabled;\n }\n\n // Finally remove the element data if there is no data left\n if (Object.getOwnPropertyNames(data).length === 0) {\n Dom.removeElData(elem);\n }\n}\n\n/**\n * Loops through an array of event types and calls the requested method for each type.\n *\n * @param {Function} fn The event method we want to use.\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String} type Type of event to bind to.\n * @param {Function} callback Event listener.\n * @private\n * @function _handleMultipleEvents\n */\nfunction _handleMultipleEvents(fn, elem, types, callback) {\n types.forEach(function (type) {\n //Call the event method for each one of the types\n fn(elem, type, callback);\n });\n}\n\n},{\"./dom.js\":134,\"./guid.js\":138,\"global/document\":1,\"global/window\":2}],136:[function(_dereq_,module,exports){\n/**\n * @file fn.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nvar _guidJs = _dereq_('./guid.js');\n\n/**\n * Bind (a.k.a proxy or Context). A simple method for changing the context of a function\n * It also stores a unique id on the function so it can be easily removed from events\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n * @private\n * @method bind\n */\nvar bind = function bind(context, fn, uid) {\n // Make sure the function has a unique ID\n if (!fn.guid) {\n fn.guid = _guidJs.newGUID();\n }\n\n // Create the new function that changes the context\n var ret = function ret() {\n return fn.apply(context, arguments);\n };\n\n // Allow for the ability to individualize this function\n // Needed in the case where multiple objects might share the same prototype\n // IF both items add an event listener with the same function, then you try to remove just one\n // it will remove both because they both have the same guid.\n // when using this, you need to use the bind method when you remove the listener as well.\n // currently used in text tracks\n ret.guid = uid ? uid + '_' + fn.guid : fn.guid;\n\n return ret;\n};\nexports.bind = bind;\n\n},{\"./guid.js\":138}],137:[function(_dereq_,module,exports){\n/**\n * @file format-time.js\n *\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @private\n * @function formatTime\n */\n'use strict';\n\nexports.__esModule = true;\nfunction formatTime(seconds) {\n var guide = arguments.length <= 1 || arguments[1] === undefined ? seconds : arguments[1];\n return (function () {\n seconds = seconds < 0 ? 0 : seconds;\n var s = Math.floor(seconds % 60);\n var m = Math.floor(seconds / 60 % 60);\n var h = Math.floor(seconds / 3600);\n var gm = Math.floor(guide / 60 % 60);\n var gh = Math.floor(guide / 3600);\n\n // handle invalid times\n if (isNaN(seconds) || seconds === Infinity) {\n // '-' is false for all relational operators (e.g. <, >=) so this setting\n // will add the minimum number of fields specified by the guide\n h = m = s = '-';\n }\n\n // Check if we need to show hours\n h = h > 0 || gh > 0 ? h + ':' : '';\n\n // If hours are showing, we may need to add a leading zero.\n // Always show at least one digit of minutes.\n m = ((h || gm >= 10) && m < 10 ? '0' + m : m) + ':';\n\n // Check if leading zero is need for seconds\n s = s < 10 ? '0' + s : s;\n\n return h + m + s;\n })();\n}\n\nexports['default'] = formatTime;\nmodule.exports = exports['default'];\n\n},{}],138:[function(_dereq_,module,exports){\n/**\n * @file guid.js\n *\n * Unique ID for an element or function\n * @type {Number}\n * @private\n */\n\"use strict\";\n\nexports.__esModule = true;\nexports.newGUID = newGUID;\nvar _guid = 1;\n\n/**\n * Get the next unique ID\n *\n * @return {String} \n * @function newGUID\n */\n\nfunction newGUID() {\n return _guid++;\n}\n\n},{}],139:[function(_dereq_,module,exports){\n/**\n * @file log.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _globalWindow = _dereq_('global/window');\n\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\n\n/**\n * Log plain debug messages\n */\nvar log = function log() {\n _logType(null, arguments);\n};\n\n/**\n * Keep a history of log messages\n * @type {Array}\n */\nlog.history = [];\n\n/**\n * Log error messages\n */\nlog.error = function () {\n _logType('error', arguments);\n};\n\n/**\n * Log warning messages\n */\nlog.warn = function () {\n _logType('warn', arguments);\n};\n\n/**\n * Log messages to the console and history based on the type of message\n *\n * @param {String} type The type of message, or `null` for `log`\n * @param {Object} args The args to be passed to the log\n * @private\n * @method _logType\n */\nfunction _logType(type, args) {\n // convert args to an array to get array functions\n var argsArray = Array.prototype.slice.call(args);\n // if there's no console then don't try to output messages\n // they will still be stored in log.history\n // Was setting these once outside of this function, but containing them\n // in the function makes it easier to test cases where console doesn't exist\n var noop = function noop() {};\n\n var console = _globalWindow2['default']['console'] || {\n 'log': noop,\n 'warn': noop,\n 'error': noop\n };\n\n if (type) {\n // add the type to the front of the message\n argsArray.unshift(type.toUpperCase() + ':');\n } else {\n // default to log with no prefix\n type = 'log';\n }\n\n // add to history\n log.history.push(argsArray);\n\n // add console prefix after adding to history\n argsArray.unshift('VIDEOJS:');\n\n // call appropriate log function\n if (console[type].apply) {\n console[type].apply(console, argsArray);\n } else {\n // ie8 doesn't allow error.apply, but it will just join() the array anyway\n console[type](argsArray.join(' '));\n }\n}\n\nexports['default'] = log;\nmodule.exports = exports['default'];\n\n},{\"global/window\":2}],140:[function(_dereq_,module,exports){\n/**\n * @file merge-options.js\n */\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = mergeOptions;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _lodashCompatObjectMerge = _dereq_('lodash-compat/object/merge');\n\nvar _lodashCompatObjectMerge2 = _interopRequireDefault(_lodashCompatObjectMerge);\n\nfunction isPlain(obj) {\n return !!obj && typeof obj === 'object' && obj.toString() === '[object Object]' && obj.constructor === Object;\n}\n\n/**\n * Merge customizer. video.js simply overwrites non-simple objects\n * (like arrays) instead of attempting to overlay them.\n * @see https://lodash.com/docs#merge\n */\nvar customizer = function customizer(destination, source) {\n // If we're not working with a plain object, copy the value as is\n // If source is an array, for instance, it will replace destination\n if (!isPlain(source)) {\n return source;\n }\n\n // If the new value is a plain object but the first object value is not\n // we need to create a new object for the first object to merge with.\n // This makes it consistent with how merge() works by default\n // and also protects from later changes the to first object affecting\n // the second object's values.\n if (!isPlain(destination)) {\n return mergeOptions(source);\n }\n};\n\n/**\n * Merge one or more options objects, recursively merging **only**\n * plain object properties. Previously `deepMerge`.\n *\n * @param {...Object} source One or more objects to merge\n * @returns {Object} a new object that is the union of all\n * provided objects\n * @function mergeOptions\n */\n\nfunction mergeOptions() {\n // contruct the call dynamically to handle the variable number of\n // objects to merge\n var args = Array.prototype.slice.call(arguments);\n\n // unshift an empty object into the front of the call as the target\n // of the merge\n args.unshift({});\n\n // customize conflict resolution to match our historical merge behavior\n args.push(customizer);\n\n _lodashCompatObjectMerge2['default'].apply(null, args);\n\n // return the mutated result object\n return args[0];\n}\n\nmodule.exports = exports['default'];\n\n},{\"lodash-compat/object/merge\":40}],141:[function(_dereq_,module,exports){\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _globalDocument = _dereq_('global/document');\n\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\n\nvar createStyleElement = function createStyleElement(className) {\n var style = _globalDocument2['default'].createElement('style');\n style.className = className;\n\n return style;\n};\n\nexports.createStyleElement = createStyleElement;\nvar setTextContent = function setTextContent(el, content) {\n if (el.styleSheet) {\n el.styleSheet.cssText = content;\n } else {\n el.textContent = content;\n }\n};\nexports.setTextContent = setTextContent;\n\n},{\"global/document\":1}],142:[function(_dereq_,module,exports){\n'use strict';\n\nexports.__esModule = true;\nexports.createTimeRanges = createTimeRanges;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _logJs = _dereq_('./log.js');\n\nvar _logJs2 = _interopRequireDefault(_logJs);\n\n/**\n * @file time-ranges.js\n *\n * Should create a fake TimeRange object\n * Mimics an HTML5 time range instance, which has functions that\n * return the start and end times for a range\n * TimeRanges are returned by the buffered() method\n *\n * @param {(Number|Array)} Start of a single range or an array of ranges\n * @param {Number} End of a single range\n * @private\n * @method createTimeRanges\n */\n\nfunction createTimeRanges(start, end) {\n if (Array.isArray(start)) {\n return createTimeRangesObj(start);\n } else if (start === undefined || end === undefined) {\n return createTimeRangesObj();\n }\n return createTimeRangesObj([[start, end]]);\n}\n\nexports.createTimeRange = createTimeRanges;\n\nfunction createTimeRangesObj(ranges) {\n if (ranges === undefined || ranges.length === 0) {\n return {\n length: 0,\n start: function start() {\n throw new Error('This TimeRanges object is empty');\n },\n end: function end() {\n throw new Error('This TimeRanges object is empty');\n }\n };\n }\n return {\n length: ranges.length,\n start: getRange.bind(null, 'start', 0, ranges),\n end: getRange.bind(null, 'end', 1, ranges)\n };\n}\n\nfunction getRange(fnName, valueIndex, ranges, rangeIndex) {\n if (rangeIndex === undefined) {\n _logJs2['default'].warn('DEPRECATED: Function \\'' + fnName + '\\' on \\'TimeRanges\\' called without an index argument.');\n rangeIndex = 0;\n }\n rangeCheck(fnName, rangeIndex, ranges.length - 1);\n return ranges[rangeIndex][valueIndex];\n}\n\nfunction rangeCheck(fnName, index, maxIndex) {\n if (index < 0 || index > maxIndex) {\n throw new Error('Failed to execute \\'' + fnName + '\\' on \\'TimeRanges\\': The index provided (' + index + ') is greater than or equal to the maximum bound (' + maxIndex + ').');\n }\n}\n\n},{\"./log.js\":139}],143:[function(_dereq_,module,exports){\n/**\n * @file to-title-case.js\n *\n * Uppercase the first letter of a string\n *\n * @param {String} string String to be uppercased\n * @return {String}\n * @private\n * @method toTitleCase\n */\n\"use strict\";\n\nexports.__esModule = true;\nfunction toTitleCase(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexports[\"default\"] = toTitleCase;\nmodule.exports = exports[\"default\"];\n\n},{}],144:[function(_dereq_,module,exports){\n/**\n * @file url.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _globalDocument = _dereq_('global/document');\n\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\n\nvar _globalWindow = _dereq_('global/window');\n\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nvar parseUrl = function parseUrl(url) {\n var props = ['protocol', 'hostname', 'port', 'pathname', 'search', 'hash', 'host'];\n\n // add the url to an anchor and let the browser parse the URL\n var a = _globalDocument2['default'].createElement('a');\n a.href = url;\n\n // IE8 (and 9?) Fix\n // ie8 doesn't parse the URL correctly until the anchor is actually\n // added to the body, and an innerHTML is needed to trigger the parsing\n var addToBody = a.host === '' && a.protocol !== 'file:';\n var div = undefined;\n if (addToBody) {\n div = _globalDocument2['default'].createElement('div');\n div.innerHTML = '';\n a = div.firstChild;\n // prevent the div from affecting layout\n div.setAttribute('style', 'display:none; position:absolute;');\n _globalDocument2['default'].body.appendChild(div);\n }\n\n // Copy the specific URL properties to a new object\n // This is also needed for IE8 because the anchor loses its\n // properties when it's removed from the dom\n var details = {};\n for (var i = 0; i < props.length; i++) {\n details[props[i]] = a[props[i]];\n }\n\n // IE9 adds the port to the host property unlike everyone else. If\n // a port identifier is added for standard ports, strip it.\n if (details.protocol === 'http:') {\n details.host = details.host.replace(/:80$/, '');\n }\n if (details.protocol === 'https:') {\n details.host = details.host.replace(/:443$/, '');\n }\n\n if (addToBody) {\n _globalDocument2['default'].body.removeChild(div);\n }\n\n return details;\n};\n\nexports.parseUrl = parseUrl;\n/**\n * Get absolute version of relative URL. Used to tell flash correct URL.\n * http://stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue\n *\n * @param {String} url URL to make absolute\n * @return {String} Absolute URL\n * @private\n * @method getAbsoluteURL\n */\nvar getAbsoluteURL = function getAbsoluteURL(url) {\n // Check if absolute URL\n if (!url.match(/^https?:\\/\\//)) {\n // Convert to absolute URL. Flash hosted off-site needs an absolute URL.\n var div = _globalDocument2['default'].createElement('div');\n div.innerHTML = 'x';\n url = div.firstChild.href;\n }\n\n return url;\n};\n\nexports.getAbsoluteURL = getAbsoluteURL;\n/**\n * Returns the extension of the passed file name. It will return an empty string if you pass an invalid path\n *\n * @param {String} path The fileName path like '/path/to/file.mp4'\n * @returns {String} The extension in lower case or an empty string if no extension could be found.\n * @method getFileExtension\n */\nvar getFileExtension = function getFileExtension(path) {\n if (typeof path === 'string') {\n var splitPathRe = /^(\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?)(\\.([^\\.\\/\\?]+)))(?:[\\/]*|[\\?].*)$/i;\n var pathParts = splitPathRe.exec(path);\n\n if (pathParts) {\n return pathParts.pop().toLowerCase();\n }\n }\n\n return '';\n};\n\nexports.getFileExtension = getFileExtension;\n/**\n * Returns whether the url passed is a cross domain request or not.\n *\n * @param {String} url The url to check\n * @return {Boolean} Whether it is a cross domain request or not\n * @method isCrossOrigin\n */\nvar isCrossOrigin = function isCrossOrigin(url) {\n var winLoc = _globalWindow2['default'].location;\n var urlInfo = parseUrl(url);\n\n // IE8 protocol relative urls will return ':' for protocol\n var srcProtocol = urlInfo.protocol === ':' ? winLoc.protocol : urlInfo.protocol;\n\n // Check if url is for another domain/origin\n // IE8 doesn't know location.origin, so we won't rely on it here\n var crossOrigin = srcProtocol + urlInfo.host !== winLoc.protocol + winLoc.host;\n\n return crossOrigin;\n};\nexports.isCrossOrigin = isCrossOrigin;\n\n},{\"global/document\":1,\"global/window\":2}],145:[function(_dereq_,module,exports){\n/**\n * @file video.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _globalWindow = _dereq_('global/window');\n\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\n\nvar _globalDocument = _dereq_('global/document');\n\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\n\nvar _setup = _dereq_('./setup');\n\nvar setup = _interopRequireWildcard(_setup);\n\nvar _utilsStylesheetJs = _dereq_('./utils/stylesheet.js');\n\nvar stylesheet = _interopRequireWildcard(_utilsStylesheetJs);\n\nvar _component = _dereq_('./component');\n\nvar _component2 = _interopRequireDefault(_component);\n\nvar _eventTarget = _dereq_('./event-target');\n\nvar _eventTarget2 = _interopRequireDefault(_eventTarget);\n\nvar _utilsEventsJs = _dereq_('./utils/events.js');\n\nvar Events = _interopRequireWildcard(_utilsEventsJs);\n\nvar _player = _dereq_('./player');\n\nvar _player2 = _interopRequireDefault(_player);\n\nvar _pluginsJs = _dereq_('./plugins.js');\n\nvar _pluginsJs2 = _interopRequireDefault(_pluginsJs);\n\nvar _srcJsUtilsMergeOptionsJs = _dereq_('../../src/js/utils/merge-options.js');\n\nvar _srcJsUtilsMergeOptionsJs2 = _interopRequireDefault(_srcJsUtilsMergeOptionsJs);\n\nvar _utilsFnJs = _dereq_('./utils/fn.js');\n\nvar Fn = _interopRequireWildcard(_utilsFnJs);\n\nvar _tracksTextTrackJs = _dereq_('./tracks/text-track.js');\n\nvar _tracksTextTrackJs2 = _interopRequireDefault(_tracksTextTrackJs);\n\nvar _objectAssign = _dereq_('object.assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar _utilsTimeRangesJs = _dereq_('./utils/time-ranges.js');\n\nvar _utilsFormatTimeJs = _dereq_('./utils/format-time.js');\n\nvar _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);\n\nvar _utilsLogJs = _dereq_('./utils/log.js');\n\nvar _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);\n\nvar _utilsDomJs = _dereq_('./utils/dom.js');\n\nvar Dom = _interopRequireWildcard(_utilsDomJs);\n\nvar _utilsBrowserJs = _dereq_('./utils/browser.js');\n\nvar browser = _interopRequireWildcard(_utilsBrowserJs);\n\nvar _utilsUrlJs = _dereq_('./utils/url.js');\n\nvar Url = _interopRequireWildcard(_utilsUrlJs);\n\nvar _extendJs = _dereq_('./extend.js');\n\nvar _extendJs2 = _interopRequireDefault(_extendJs);\n\nvar _lodashCompatObjectMerge = _dereq_('lodash-compat/object/merge');\n\nvar _lodashCompatObjectMerge2 = _interopRequireDefault(_lodashCompatObjectMerge);\n\nvar _utilsCreateDeprecationProxyJs = _dereq_('./utils/create-deprecation-proxy.js');\n\nvar _utilsCreateDeprecationProxyJs2 = _interopRequireDefault(_utilsCreateDeprecationProxyJs);\n\nvar _xhr = _dereq_('xhr');\n\nvar _xhr2 = _interopRequireDefault(_xhr);\n\n// Include the built-in techs\n\nvar _techTechJs = _dereq_('./tech/tech.js');\n\nvar _techTechJs2 = _interopRequireDefault(_techTechJs);\n\nvar _techHtml5Js = _dereq_('./tech/html5.js');\n\nvar _techHtml5Js2 = _interopRequireDefault(_techHtml5Js);\n\nvar _techFlashJs = _dereq_('./tech/flash.js');\n\nvar _techFlashJs2 = _interopRequireDefault(_techFlashJs);\n\n// HTML5 Element Shim for IE8\nif (typeof HTMLVideoElement === 'undefined') {\n _globalDocument2['default'].createElement('video');\n _globalDocument2['default'].createElement('audio');\n _globalDocument2['default'].createElement('track');\n}\n\n/**\n * Doubles as the main function for users to create a player instance and also\n * the main library object.\n * The `videojs` function can be used to initialize or retrieve a player.\n * ```js\n * var myPlayer = videojs('my_video_id');\n * ```\n *\n * @param {String|Element} id Video element or video element ID\n * @param {Object=} options Optional options object for config/settings\n * @param {Function=} ready Optional ready callback\n * @return {Player} A player instance\n * @mixes videojs\n * @method videojs\n */\nvar videojs = function videojs(id, options, ready) {\n var tag = undefined; // Element of ID\n\n // Allow for element or ID to be passed in\n // String ID\n if (typeof id === 'string') {\n\n // Adjust for jQuery ID syntax\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n // If a player instance has already been created for this ID return it.\n if (videojs.getPlayers()[id]) {\n\n // If options or ready funtion are passed, warn\n if (options) {\n _utilsLogJs2['default'].warn('Player \"' + id + '\" is already initialised. Options will not be applied.');\n }\n\n if (ready) {\n videojs.getPlayers()[id].ready(ready);\n }\n\n return videojs.getPlayers()[id];\n\n // Otherwise get element for ID\n } else {\n tag = Dom.getEl(id);\n }\n\n // ID is a media element\n } else {\n tag = id;\n }\n\n // Check for a useable element\n if (!tag || !tag.nodeName) {\n // re: nodeName, could be a box div also\n throw new TypeError('The element or ID supplied is not valid. (videojs)'); // Returns\n }\n\n // Element may have a player attr referring to an already created player instance.\n // If not, set up a new player and return the instance.\n return tag['player'] || _player2['default'].players[tag.playerId] || new _player2['default'](tag, options, ready);\n};\n\n// Add default styles\nif (_globalWindow2['default'].VIDEOJS_NO_DYNAMIC_STYLE !== true) {\n var style = Dom.$('.vjs-styles-defaults');\n\n if (!style) {\n style = stylesheet.createStyleElement('vjs-styles-defaults');\n var head = Dom.$('head');\n head.insertBefore(style, head.firstChild);\n stylesheet.setTextContent(style, '\\n .video-js {\\n width: 300px;\\n height: 150px;\\n }\\n\\n .vjs-fluid {\\n padding-top: 56.25%\\n }\\n ');\n }\n}\n\n// Run Auto-load players\n// You have to wait at least once in case this script is loaded after your video in the DOM (weird behavior only with minified version)\nsetup.autoSetupTimeout(1, videojs);\n\n/*\n * Current software version (semver)\n *\n * @type {String}\n */\nvideojs.VERSION = '5.9.2';\n\n/**\n * The global options object. These are the settings that take effect\n * if no overrides are specified when the player is created.\n *\n * ```js\n * videojs.options.autoplay = true\n * // -> all players will autoplay by default\n * ```\n *\n * @type {Object}\n */\nvideojs.options = _player2['default'].prototype.options_;\n\n/**\n * Get an object with the currently created players, keyed by player ID\n *\n * @return {Object} The created players\n * @mixes videojs\n * @method getPlayers\n */\nvideojs.getPlayers = function () {\n return _player2['default'].players;\n};\n\n/**\n * For backward compatibility, expose players object.\n *\n * @deprecated\n * @memberOf videojs\n * @property {Object|Proxy} players\n */\nvideojs.players = _utilsCreateDeprecationProxyJs2['default'](_player2['default'].players, {\n get: 'Access to videojs.players is deprecated; use videojs.getPlayers instead',\n set: 'Modification of videojs.players is deprecated'\n});\n\n/**\n * Get a component class object by name\n * ```js\n * var VjsButton = videojs.getComponent('Button');\n * // Create a new instance of the component\n * var myButton = new VjsButton(myPlayer);\n * ```\n *\n * @return {Component} Component identified by name\n * @mixes videojs\n * @method getComponent\n */\nvideojs.getComponent = _component2['default'].getComponent;\n\n/**\n * Register a component so it can referred to by name\n * Used when adding to other\n * components, either through addChild\n * `component.addChild('myComponent')`\n * or through default children options\n * `{ children: ['myComponent'] }`.\n * ```js\n * // Get a component to subclass\n * var VjsButton = videojs.getComponent('Button');\n * // Subclass the component (see 'extend' doc for more info)\n * var MySpecialButton = videojs.extend(VjsButton, {});\n * // Register the new component\n * VjsButton.registerComponent('MySepcialButton', MySepcialButton);\n * // (optionally) add the new component as a default player child\n * myPlayer.addChild('MySepcialButton');\n * ```\n * NOTE: You could also just initialize the component before adding.\n * `component.addChild(new MyComponent());`\n *\n * @param {String} The class name of the component\n * @param {Component} The component class\n * @return {Component} The newly registered component\n * @mixes videojs\n * @method registerComponent\n */\nvideojs.registerComponent = function (name, comp) {\n if (_techTechJs2['default'].isTech(comp)) {\n _utilsLogJs2['default'].warn('The ' + name + ' tech was registered as a component. It should instead be registered using videojs.registerTech(name, tech)');\n }\n\n _component2['default'].registerComponent.call(_component2['default'], name, comp);\n};\n\n/**\n * Get a Tech class object by name\n * ```js\n * var Html5 = videojs.getTech('Html5');\n * // Create a new instance of the component\n * var html5 = new Html5(options);\n * ```\n *\n * @return {Tech} Tech identified by name\n * @mixes videojs\n * @method getComponent\n */\nvideojs.getTech = _techTechJs2['default'].getTech;\n\n/**\n * Register a Tech so it can referred to by name.\n * This is used in the tech order for the player.\n *\n * ```js\n * // get the Html5 Tech\n * var Html5 = videojs.getTech('Html5');\n * var MyTech = videojs.extend(Html5, {});\n * // Register the new Tech\n * VjsButton.registerTech('Tech', MyTech);\n * var player = videojs('myplayer', {\n * techOrder: ['myTech', 'html5']\n * });\n * ```\n *\n * @param {String} The class name of the tech\n * @param {Tech} The tech class\n * @return {Tech} The newly registered Tech\n * @mixes videojs\n * @method registerTech\n */\nvideojs.registerTech = _techTechJs2['default'].registerTech;\n\n/**\n * A suite of browser and device tests\n *\n * @type {Object}\n * @private\n */\nvideojs.browser = browser;\n\n/**\n * Whether or not the browser supports touch events. Included for backward\n * compatibility with 4.x, but deprecated. Use `videojs.browser.TOUCH_ENABLED`\n * instead going forward.\n *\n * @deprecated\n * @type {Boolean}\n */\nvideojs.TOUCH_ENABLED = browser.TOUCH_ENABLED;\n\n/**\n * Subclass an existing class\n * Mimics ES6 subclassing with the `extend` keyword\n * ```js\n * // Create a basic javascript 'class'\n * function MyClass(name){\n * // Set a property at initialization\n * this.myName = name;\n * }\n * // Create an instance method\n * MyClass.prototype.sayMyName = function(){\n * alert(this.myName);\n * };\n * // Subclass the exisitng class and change the name\n * // when initializing\n * var MySubClass = videojs.extend(MyClass, {\n * constructor: function(name) {\n * // Call the super class constructor for the subclass\n * MyClass.call(this, name)\n * }\n * });\n * // Create an instance of the new sub class\n * var myInstance = new MySubClass('John');\n * myInstance.sayMyName(); // -> should alert \"John\"\n * ```\n *\n * @param {Function} The Class to subclass\n * @param {Object} An object including instace methods for the new class\n * Optionally including a `constructor` function\n * @return {Function} The newly created subclass\n * @mixes videojs\n * @method extend\n */\nvideojs.extend = _extendJs2['default'];\n\n/**\n * Merge two options objects recursively\n * Performs a deep merge like lodash.merge but **only merges plain objects**\n * (not arrays, elements, anything else)\n * Other values will be copied directly from the second object.\n * ```js\n * var defaultOptions = {\n * foo: true,\n * bar: {\n * a: true,\n * b: [1,2,3]\n * }\n * };\n * var newOptions = {\n * foo: false,\n * bar: {\n * b: [4,5,6]\n * }\n * };\n * var result = videojs.mergeOptions(defaultOptions, newOptions);\n * // result.foo = false;\n * // result.bar.a = true;\n * // result.bar.b = [4,5,6];\n * ```\n *\n * @param {Object} defaults The options object whose values will be overriden\n * @param {Object} overrides The options object with values to override the first\n * @param {Object} etc Any number of additional options objects\n *\n * @return {Object} a new object with the merged values\n * @mixes videojs\n * @method mergeOptions\n */\nvideojs.mergeOptions = _srcJsUtilsMergeOptionsJs2['default'];\n\n/**\n * Change the context (this) of a function\n *\n * videojs.bind(newContext, function(){\n * this === newContext\n * });\n *\n * NOTE: as of v5.0 we require an ES5 shim, so you should use the native\n * `function(){}.bind(newContext);` instead of this.\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n */\nvideojs.bind = Fn.bind;\n\n/**\n * Create a Video.js player plugin\n * Plugins are only initialized when options for the plugin are included\n * in the player options, or the plugin function on the player instance is\n * called.\n * **See the plugin guide in the docs for a more detailed example**\n * ```js\n * // Make a plugin that alerts when the player plays\n * videojs.plugin('myPlugin', function(myPluginOptions) {\n * myPluginOptions = myPluginOptions || {};\n *\n * var player = this;\n * var alertText = myPluginOptions.text || 'Player is playing!'\n *\n * player.on('play', function(){\n * alert(alertText);\n * });\n * });\n * // USAGE EXAMPLES\n * // EXAMPLE 1: New player with plugin options, call plugin immediately\n * var player1 = videojs('idOne', {\n * myPlugin: {\n * text: 'Custom text!'\n * }\n * });\n * // Click play\n * // --> Should alert 'Custom text!'\n * // EXAMPLE 3: New player, initialize plugin later\n * var player3 = videojs('idThree');\n * // Click play\n * // --> NO ALERT\n * // Click pause\n * // Initialize plugin using the plugin function on the player instance\n * player3.myPlugin({\n * text: 'Plugin added later!'\n * });\n * // Click play\n * // --> Should alert 'Plugin added later!'\n * ```\n *\n * @param {String} name The plugin name\n * @param {Function} fn The plugin function that will be called with options\n * @mixes videojs\n * @method plugin\n */\nvideojs.plugin = _pluginsJs2['default'];\n\n/**\n * Adding languages so that they're available to all players.\n * ```js\n * videojs.addLanguage('es', { 'Hello': 'Hola' });\n * ```\n *\n * @param {String} code The language code or dictionary property\n * @param {Object} data The data values to be translated\n * @return {Object} The resulting language dictionary object\n * @mixes videojs\n * @method addLanguage\n */\nvideojs.addLanguage = function (code, data) {\n var _merge;\n\n code = ('' + code).toLowerCase();\n return _lodashCompatObjectMerge2['default'](videojs.options.languages, (_merge = {}, _merge[code] = data, _merge))[code];\n};\n\n/**\n * Log debug messages.\n *\n * @param {...Object} messages One or more messages to log\n */\nvideojs.log = _utilsLogJs2['default'];\n\n/**\n * Creates an emulated TimeRange object.\n *\n * @param {Number|Array} start Start time in seconds or an array of ranges\n * @param {Number} end End time in seconds\n * @return {Object} Fake TimeRange object\n * @method createTimeRange\n */\nvideojs.createTimeRange = videojs.createTimeRanges = _utilsTimeRangesJs.createTimeRanges;\n\n/**\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @method formatTime\n */\nvideojs.formatTime = _utilsFormatTimeJs2['default'];\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nvideojs.parseUrl = Url.parseUrl;\n\n/**\n * Returns whether the url passed is a cross domain request or not.\n *\n * @param {String} url The url to check\n * @return {Boolean} Whether it is a cross domain request or not\n * @method isCrossOrigin\n */\nvideojs.isCrossOrigin = Url.isCrossOrigin;\n\n/**\n * Event target class.\n *\n * @type {Function}\n */\nvideojs.EventTarget = _eventTarget2['default'];\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\nvideojs.on = Events.on;\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\nvideojs.one = Events.one;\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\nvideojs.off = Events.off;\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\nvideojs.trigger = Events.trigger;\n\n/**\n * A cross-browser XMLHttpRequest wrapper. Here's a simple example:\n *\n * videojs.xhr({\n * body: someJSONString,\n * uri: \"/foo\",\n * headers: {\n * \"Content-Type\": \"application/json\"\n * }\n * }, function (err, resp, body) {\n * // check resp.statusCode\n * });\n *\n * Check out the [full\n * documentation](https://github.com/Raynos/xhr/blob/v2.1.0/README.md)\n * for more options.\n *\n * @param {Object} options settings for the request.\n * @return {XMLHttpRequest|XDomainRequest} the request object.\n * @see https://github.com/Raynos/xhr\n */\nvideojs.xhr = _xhr2['default'];\n\n/**\n * TextTrack class\n *\n * @type {Function}\n */\nvideojs.TextTrack = _tracksTextTrackJs2['default'];\n\n/**\n * Determines, via duck typing, whether or not a value is a DOM element.\n *\n * @method isEl\n * @param {Mixed} value\n * @return {Boolean}\n */\nvideojs.isEl = Dom.isEl;\n\n/**\n * Determines, via duck typing, whether or not a value is a text node.\n *\n * @method isTextNode\n * @param {Mixed} value\n * @return {Boolean}\n */\nvideojs.isTextNode = Dom.isTextNode;\n\n/**\n * Creates an element and applies properties.\n *\n * @method createEl\n * @param {String} [tagName='div'] Name of tag to be created.\n * @param {Object} [properties={}] Element properties to be applied.\n * @param {Object} [attributes={}] Element attributes to be applied.\n * @return {Element}\n */\nvideojs.createEl = Dom.createEl;\n\n/**\n * Check if an element has a CSS class\n *\n * @method hasClass\n * @param {Element} element Element to check\n * @param {String} classToCheck Classname to check\n */\nvideojs.hasClass = Dom.hasElClass;\n\n/**\n * Add a CSS class name to an element\n *\n * @method addClass\n * @param {Element} element Element to add class name to\n * @param {String} classToAdd Classname to add\n */\nvideojs.addClass = Dom.addElClass;\n\n/**\n * Remove a CSS class name from an element\n *\n * @method removeClass\n * @param {Element} element Element to remove from class name\n * @param {String} classToRemove Classname to remove\n */\nvideojs.removeClass = Dom.removeElClass;\n\n/**\n * Adds or removes a CSS class name on an element depending on an optional\n * condition or the presence/absence of the class name.\n *\n * @method toggleElClass\n * @param {Element} element\n * @param {String} classToToggle\n * @param {Boolean|Function} [predicate]\n * Can be a function that returns a Boolean. If `true`, the class\n * will be added; if `false`, the class will be removed. If not\n * given, the class will be added if not present and vice versa.\n */\nvideojs.toggleClass = Dom.toggleElClass;\n\n/**\n * Apply attributes to an HTML element.\n *\n * @method setAttributes\n * @param {Element} el Target element.\n * @param {Object=} attributes Element attributes to be applied.\n */\nvideojs.setAttributes = Dom.setElAttributes;\n\n/**\n * Get an element's attribute values, as defined on the HTML tag\n * Attributes are not the same as properties. They're defined on the tag\n * or with setAttribute (which shouldn't be used with HTML)\n * This will return true or false for boolean attributes.\n *\n * @method getAttributes\n * @param {Element} tag Element from which to get tag attributes\n * @return {Object}\n */\nvideojs.getAttributes = Dom.getElAttributes;\n\n/**\n * Empties the contents of an element.\n *\n * @method emptyEl\n * @param {Element} el\n * @return {Element}\n */\nvideojs.emptyEl = Dom.emptyEl;\n\n/**\n * Normalizes and appends content to an element.\n *\n * The content for an element can be passed in multiple types and\n * combinations, whose behavior is as follows:\n *\n * - String\n * Normalized into a text node.\n *\n * - Element, TextNode\n * Passed through.\n *\n * - Array\n * A one-dimensional array of strings, elements, nodes, or functions (which\n * return single strings, elements, or nodes).\n *\n * - Function\n * If the sole argument, is expected to produce a string, element,\n * node, or array.\n *\n * @method appendContent\n * @param {Element} el\n * @param {String|Element|TextNode|Array|Function} content\n * @return {Element}\n */\nvideojs.appendContent = Dom.appendContent;\n\n/**\n * Normalizes and inserts content into an element; this is identical to\n * `appendContent()`, except it empties the element first.\n *\n * The content for an element can be passed in multiple types and\n * combinations, whose behavior is as follows:\n *\n * - String\n * Normalized into a text node.\n *\n * - Element, TextNode\n * Passed through.\n *\n * - Array\n * A one-dimensional array of strings, elements, nodes, or functions (which\n * return single strings, elements, or nodes).\n *\n * - Function\n * If the sole argument, is expected to produce a string, element,\n * node, or array.\n *\n * @method insertContent\n * @param {Element} el\n * @param {String|Element|TextNode|Array|Function} content\n * @return {Element}\n */\nvideojs.insertContent = Dom.insertContent;\n\n/*\n * Custom Universal Module Definition (UMD)\n *\n * Video.js will never be a non-browser lib so we can simplify UMD a bunch and\n * still support requirejs and browserify. This also needs to be closure\n * compiler compatible, so string keys are used.\n */\nif (typeof define === 'function' && define['amd']) {\n define('videojs', [], function () {\n return videojs;\n });\n\n // checking that module is an object too because of umdjs/umd#35\n} else if (typeof exports === 'object' && typeof module === 'object') {\n module['exports'] = videojs;\n }\n\nexports['default'] = videojs;\nmodule.exports = exports['default'];\n\n},{\"../../src/js/utils/merge-options.js\":140,\"./component\":67,\"./event-target\":101,\"./extend.js\":102,\"./player\":110,\"./plugins.js\":111,\"./setup\":115,\"./tech/flash.js\":118,\"./tech/html5.js\":119,\"./tech/tech.js\":121,\"./tracks/text-track.js\":130,\"./utils/browser.js\":131,\"./utils/create-deprecation-proxy.js\":133,\"./utils/dom.js\":134,\"./utils/events.js\":135,\"./utils/fn.js\":136,\"./utils/format-time.js\":137,\"./utils/log.js\":139,\"./utils/stylesheet.js\":141,\"./utils/time-ranges.js\":142,\"./utils/url.js\":144,\"global/document\":1,\"global/window\":2,\"lodash-compat/object/merge\":40,\"object.assign\":45,\"xhr\":56}]},{},[145])(145)\n});\n\n\n//# sourceMappingURL=video.js.map\n/* vtt.js - v0.12.1 (https://github.com/mozilla/vtt.js) built on 08-07-2015 */\n\n(function(root) {\n var vttjs = root.vttjs = {};\n var cueShim = vttjs.VTTCue;\n var regionShim = vttjs.VTTRegion;\n var oldVTTCue = root.VTTCue;\n var oldVTTRegion = root.VTTRegion;\n\n vttjs.shim = function() {\n vttjs.VTTCue = cueShim;\n vttjs.VTTRegion = regionShim;\n };\n\n vttjs.restore = function() {\n vttjs.VTTCue = oldVTTCue;\n vttjs.VTTRegion = oldVTTRegion;\n };\n}(this));\n\n/**\n * Copyright 2013 vtt.js Contributors\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\n(function(root, vttjs) {\n\n var autoKeyword = \"auto\";\n var directionSetting = {\n \"\": true,\n \"lr\": true,\n \"rl\": true\n };\n var alignSetting = {\n \"start\": true,\n \"middle\": true,\n \"end\": true,\n \"left\": true,\n \"right\": true\n };\n\n function findDirectionSetting(value) {\n if (typeof value !== \"string\") {\n return false;\n }\n var dir = directionSetting[value.toLowerCase()];\n return dir ? value.toLowerCase() : false;\n }\n\n function findAlignSetting(value) {\n if (typeof value !== \"string\") {\n return false;\n }\n var align = alignSetting[value.toLowerCase()];\n return align ? value.toLowerCase() : false;\n }\n\n function extend(obj) {\n var i = 1;\n for (; i < arguments.length; i++) {\n var cobj = arguments[i];\n for (var p in cobj) {\n obj[p] = cobj[p];\n }\n }\n\n return obj;\n }\n\n function VTTCue(startTime, endTime, text) {\n var cue = this;\n var isIE8 = (/MSIE\\s8\\.0/).test(navigator.userAgent);\n var baseObj = {};\n\n if (isIE8) {\n cue = document.createElement('custom');\n } else {\n baseObj.enumerable = true;\n }\n\n /**\n * Shim implementation specific properties. These properties are not in\n * the spec.\n */\n\n // Lets us know when the VTTCue's data has changed in such a way that we need\n // to recompute its display state. This lets us compute its display state\n // lazily.\n cue.hasBeenReset = false;\n\n /**\n * VTTCue and TextTrackCue properties\n * http://dev.w3.org/html5/webvtt/#vttcue-interface\n */\n\n var _id = \"\";\n var _pauseOnExit = false;\n var _startTime = startTime;\n var _endTime = endTime;\n var _text = text;\n var _region = null;\n var _vertical = \"\";\n var _snapToLines = true;\n var _line = \"auto\";\n var _lineAlign = \"start\";\n var _position = 50;\n var _positionAlign = \"middle\";\n var _size = 50;\n var _align = \"middle\";\n\n Object.defineProperty(cue,\n \"id\", extend({}, baseObj, {\n get: function() {\n return _id;\n },\n set: function(value) {\n _id = \"\" + value;\n }\n }));\n\n Object.defineProperty(cue,\n \"pauseOnExit\", extend({}, baseObj, {\n get: function() {\n return _pauseOnExit;\n },\n set: function(value) {\n _pauseOnExit = !!value;\n }\n }));\n\n Object.defineProperty(cue,\n \"startTime\", extend({}, baseObj, {\n get: function() {\n return _startTime;\n },\n set: function(value) {\n if (typeof value !== \"number\") {\n throw new TypeError(\"Start time must be set to a number.\");\n }\n _startTime = value;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue,\n \"endTime\", extend({}, baseObj, {\n get: function() {\n return _endTime;\n },\n set: function(value) {\n if (typeof value !== \"number\") {\n throw new TypeError(\"End time must be set to a number.\");\n }\n _endTime = value;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue,\n \"text\", extend({}, baseObj, {\n get: function() {\n return _text;\n },\n set: function(value) {\n _text = \"\" + value;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue,\n \"region\", extend({}, baseObj, {\n get: function() {\n return _region;\n },\n set: function(value) {\n _region = value;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue,\n \"vertical\", extend({}, baseObj, {\n get: function() {\n return _vertical;\n },\n set: function(value) {\n var setting = findDirectionSetting(value);\n // Have to check for false because the setting an be an empty string.\n if (setting === false) {\n throw new SyntaxError(\"An invalid or illegal string was specified.\");\n }\n _vertical = setting;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue,\n \"snapToLines\", extend({}, baseObj, {\n get: function() {\n return _snapToLines;\n },\n set: function(value) {\n _snapToLines = !!value;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue,\n \"line\", extend({}, baseObj, {\n get: function() {\n return _line;\n },\n set: function(value) {\n if (typeof value !== \"number\" && value !== autoKeyword) {\n throw new SyntaxError(\"An invalid number or illegal string was specified.\");\n }\n _line = value;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue,\n \"lineAlign\", extend({}, baseObj, {\n get: function() {\n return _lineAlign;\n },\n set: function(value) {\n var setting = findAlignSetting(value);\n if (!setting) {\n throw new SyntaxError(\"An invalid or illegal string was specified.\");\n }\n _lineAlign = setting;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue,\n \"position\", extend({}, baseObj, {\n get: function() {\n return _position;\n },\n set: function(value) {\n if (value < 0 || value > 100) {\n throw new Error(\"Position must be between 0 and 100.\");\n }\n _position = value;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue,\n \"positionAlign\", extend({}, baseObj, {\n get: function() {\n return _positionAlign;\n },\n set: function(value) {\n var setting = findAlignSetting(value);\n if (!setting) {\n throw new SyntaxError(\"An invalid or illegal string was specified.\");\n }\n _positionAlign = setting;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue,\n \"size\", extend({}, baseObj, {\n get: function() {\n return _size;\n },\n set: function(value) {\n if (value < 0 || value > 100) {\n throw new Error(\"Size must be between 0 and 100.\");\n }\n _size = value;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue,\n \"align\", extend({}, baseObj, {\n get: function() {\n return _align;\n },\n set: function(value) {\n var setting = findAlignSetting(value);\n if (!setting) {\n throw new SyntaxError(\"An invalid or illegal string was specified.\");\n }\n _align = setting;\n this.hasBeenReset = true;\n }\n }));\n\n /**\n * Other spec defined properties\n */\n\n // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#text-track-cue-display-state\n cue.displayState = undefined;\n\n if (isIE8) {\n return cue;\n }\n }\n\n /**\n * VTTCue methods\n */\n\n VTTCue.prototype.getCueAsHTML = function() {\n // Assume WebVTT.convertCueToDOMTree is on the global.\n return WebVTT.convertCueToDOMTree(window, this.text);\n };\n\n root.VTTCue = root.VTTCue || VTTCue;\n vttjs.VTTCue = VTTCue;\n}(this, (this.vttjs || {})));\n\n/**\n * Copyright 2013 vtt.js Contributors\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\n(function(root, vttjs) {\n\n var scrollSetting = {\n \"\": true,\n \"up\": true\n };\n\n function findScrollSetting(value) {\n if (typeof value !== \"string\") {\n return false;\n }\n var scroll = scrollSetting[value.toLowerCase()];\n return scroll ? value.toLowerCase() : false;\n }\n\n function isValidPercentValue(value) {\n return typeof value === \"number\" && (value >= 0 && value <= 100);\n }\n\n // VTTRegion shim http://dev.w3.org/html5/webvtt/#vttregion-interface\n function VTTRegion() {\n var _width = 100;\n var _lines = 3;\n var _regionAnchorX = 0;\n var _regionAnchorY = 100;\n var _viewportAnchorX = 0;\n var _viewportAnchorY = 100;\n var _scroll = \"\";\n\n Object.defineProperties(this, {\n \"width\": {\n enumerable: true,\n get: function() {\n return _width;\n },\n set: function(value) {\n if (!isValidPercentValue(value)) {\n throw new Error(\"Width must be between 0 and 100.\");\n }\n _width = value;\n }\n },\n \"lines\": {\n enumerable: true,\n get: function() {\n return _lines;\n },\n set: function(value) {\n if (typeof value !== \"number\") {\n throw new TypeError(\"Lines must be set to a number.\");\n }\n _lines = value;\n }\n },\n \"regionAnchorY\": {\n enumerable: true,\n get: function() {\n return _regionAnchorY;\n },\n set: function(value) {\n if (!isValidPercentValue(value)) {\n throw new Error(\"RegionAnchorX must be between 0 and 100.\");\n }\n _regionAnchorY = value;\n }\n },\n \"regionAnchorX\": {\n enumerable: true,\n get: function() {\n return _regionAnchorX;\n },\n set: function(value) {\n if(!isValidPercentValue(value)) {\n throw new Error(\"RegionAnchorY must be between 0 and 100.\");\n }\n _regionAnchorX = value;\n }\n },\n \"viewportAnchorY\": {\n enumerable: true,\n get: function() {\n return _viewportAnchorY;\n },\n set: function(value) {\n if (!isValidPercentValue(value)) {\n throw new Error(\"ViewportAnchorY must be between 0 and 100.\");\n }\n _viewportAnchorY = value;\n }\n },\n \"viewportAnchorX\": {\n enumerable: true,\n get: function() {\n return _viewportAnchorX;\n },\n set: function(value) {\n if (!isValidPercentValue(value)) {\n throw new Error(\"ViewportAnchorX must be between 0 and 100.\");\n }\n _viewportAnchorX = value;\n }\n },\n \"scroll\": {\n enumerable: true,\n get: function() {\n return _scroll;\n },\n set: function(value) {\n var setting = findScrollSetting(value);\n // Have to check for false as an empty string is a legal value.\n if (setting === false) {\n throw new SyntaxError(\"An invalid or illegal string was specified.\");\n }\n _scroll = setting;\n }\n }\n });\n }\n\n root.VTTRegion = root.VTTRegion || VTTRegion;\n vttjs.VTTRegion = VTTRegion;\n}(this, (this.vttjs || {})));\n\n/**\n * Copyright 2013 vtt.js Contributors\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\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n\n(function(global) {\n\n var _objCreate = Object.create || (function() {\n function F() {}\n return function(o) {\n if (arguments.length !== 1) {\n throw new Error('Object.create shim only accepts one parameter.');\n }\n F.prototype = o;\n return new F();\n };\n })();\n\n // Creates a new ParserError object from an errorData object. The errorData\n // object should have default code and message properties. The default message\n // property can be overriden by passing in a message parameter.\n // See ParsingError.Errors below for acceptable errors.\n function ParsingError(errorData, message) {\n this.name = \"ParsingError\";\n this.code = errorData.code;\n this.message = message || errorData.message;\n }\n ParsingError.prototype = _objCreate(Error.prototype);\n ParsingError.prototype.constructor = ParsingError;\n\n // ParsingError metadata for acceptable ParsingErrors.\n ParsingError.Errors = {\n BadSignature: {\n code: 0,\n message: \"Malformed WebVTT signature.\"\n },\n BadTimeStamp: {\n code: 1,\n message: \"Malformed time stamp.\"\n }\n };\n\n // Try to parse input as a time stamp.\n function parseTimeStamp(input) {\n\n function computeSeconds(h, m, s, f) {\n return (h | 0) * 3600 + (m | 0) * 60 + (s | 0) + (f | 0) / 1000;\n }\n\n var m = input.match(/^(\\d+):(\\d{2})(:\\d{2})?\\.(\\d{3})/);\n if (!m) {\n return null;\n }\n\n if (m[3]) {\n // Timestamp takes the form of [hours]:[minutes]:[seconds].[milliseconds]\n return computeSeconds(m[1], m[2], m[3].replace(\":\", \"\"), m[4]);\n } else if (m[1] > 59) {\n // Timestamp takes the form of [hours]:[minutes].[milliseconds]\n // First position is hours as it's over 59.\n return computeSeconds(m[1], m[2], 0, m[4]);\n } else {\n // Timestamp takes the form of [minutes]:[seconds].[milliseconds]\n return computeSeconds(0, m[1], m[2], m[4]);\n }\n }\n\n // A settings object holds key/value pairs and will ignore anything but the first\n // assignment to a specific key.\n function Settings() {\n this.values = _objCreate(null);\n }\n\n Settings.prototype = {\n // Only accept the first assignment to any key.\n set: function(k, v) {\n if (!this.get(k) && v !== \"\") {\n this.values[k] = v;\n }\n },\n // Return the value for a key, or a default value.\n // If 'defaultKey' is passed then 'dflt' is assumed to be an object with\n // a number of possible default values as properties where 'defaultKey' is\n // the key of the property that will be chosen; otherwise it's assumed to be\n // a single value.\n get: function(k, dflt, defaultKey) {\n if (defaultKey) {\n return this.has(k) ? this.values[k] : dflt[defaultKey];\n }\n return this.has(k) ? this.values[k] : dflt;\n },\n // Check whether we have a value for a key.\n has: function(k) {\n return k in this.values;\n },\n // Accept a setting if its one of the given alternatives.\n alt: function(k, v, a) {\n for (var n = 0; n < a.length; ++n) {\n if (v === a[n]) {\n this.set(k, v);\n break;\n }\n }\n },\n // Accept a setting if its a valid (signed) integer.\n integer: function(k, v) {\n if (/^-?\\d+$/.test(v)) { // integer\n this.set(k, parseInt(v, 10));\n }\n },\n // Accept a setting if its a valid percentage.\n percent: function(k, v) {\n var m;\n if ((m = v.match(/^([\\d]{1,3})(\\.[\\d]*)?%$/))) {\n v = parseFloat(v);\n if (v >= 0 && v <= 100) {\n this.set(k, v);\n return true;\n }\n }\n return false;\n }\n };\n\n // Helper function to parse input into groups separated by 'groupDelim', and\n // interprete each group as a key/value pair separated by 'keyValueDelim'.\n function parseOptions(input, callback, keyValueDelim, groupDelim) {\n var groups = groupDelim ? input.split(groupDelim) : [input];\n for (var i in groups) {\n if (typeof groups[i] !== \"string\") {\n continue;\n }\n var kv = groups[i].split(keyValueDelim);\n if (kv.length !== 2) {\n continue;\n }\n var k = kv[0];\n var v = kv[1];\n callback(k, v);\n }\n }\n\n function parseCue(input, cue, regionList) {\n // Remember the original input if we need to throw an error.\n var oInput = input;\n // 4.1 WebVTT timestamp\n function consumeTimeStamp() {\n var ts = parseTimeStamp(input);\n if (ts === null) {\n throw new ParsingError(ParsingError.Errors.BadTimeStamp,\n \"Malformed timestamp: \" + oInput);\n }\n // Remove time stamp from input.\n input = input.replace(/^[^\\sa-zA-Z-]+/, \"\");\n return ts;\n }\n\n // 4.4.2 WebVTT cue settings\n function consumeCueSettings(input, cue) {\n var settings = new Settings();\n\n parseOptions(input, function (k, v) {\n switch (k) {\n case \"region\":\n // Find the last region we parsed with the same region id.\n for (var i = regionList.length - 1; i >= 0; i--) {\n if (regionList[i].id === v) {\n settings.set(k, regionList[i].region);\n break;\n }\n }\n break;\n case \"vertical\":\n settings.alt(k, v, [\"rl\", \"lr\"]);\n break;\n case \"line\":\n var vals = v.split(\",\"),\n vals0 = vals[0];\n settings.integer(k, vals0);\n settings.percent(k, vals0) ? settings.set(\"snapToLines\", false) : null;\n settings.alt(k, vals0, [\"auto\"]);\n if (vals.length === 2) {\n settings.alt(\"lineAlign\", vals[1], [\"start\", \"middle\", \"end\"]);\n }\n break;\n case \"position\":\n vals = v.split(\",\");\n settings.percent(k, vals[0]);\n if (vals.length === 2) {\n settings.alt(\"positionAlign\", vals[1], [\"start\", \"middle\", \"end\"]);\n }\n break;\n case \"size\":\n settings.percent(k, v);\n break;\n case \"align\":\n settings.alt(k, v, [\"start\", \"middle\", \"end\", \"left\", \"right\"]);\n break;\n }\n }, /:/, /\\s/);\n\n // Apply default values for any missing fields.\n cue.region = settings.get(\"region\", null);\n cue.vertical = settings.get(\"vertical\", \"\");\n cue.line = settings.get(\"line\", \"auto\");\n cue.lineAlign = settings.get(\"lineAlign\", \"start\");\n cue.snapToLines = settings.get(\"snapToLines\", true);\n cue.size = settings.get(\"size\", 100);\n cue.align = settings.get(\"align\", \"middle\");\n cue.position = settings.get(\"position\", {\n start: 0,\n left: 0,\n middle: 50,\n end: 100,\n right: 100\n }, cue.align);\n cue.positionAlign = settings.get(\"positionAlign\", {\n start: \"start\",\n left: \"start\",\n middle: \"middle\",\n end: \"end\",\n right: \"end\"\n }, cue.align);\n }\n\n function skipWhitespace() {\n input = input.replace(/^\\s+/, \"\");\n }\n\n // 4.1 WebVTT cue timings.\n skipWhitespace();\n cue.startTime = consumeTimeStamp(); // (1) collect cue start time\n skipWhitespace();\n if (input.substr(0, 3) !== \"-->\") { // (3) next characters must match \"-->\"\n throw new ParsingError(ParsingError.Errors.BadTimeStamp,\n \"Malformed time stamp (time stamps must be separated by '-->'): \" +\n oInput);\n }\n input = input.substr(3);\n skipWhitespace();\n cue.endTime = consumeTimeStamp(); // (5) collect cue end time\n\n // 4.1 WebVTT cue settings list.\n skipWhitespace();\n consumeCueSettings(input, cue);\n }\n\n var ESCAPE = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n \"‎\": \"\\u200e\",\n \"‏\": \"\\u200f\",\n \" \": \"\\u00a0\"\n };\n\n var TAG_NAME = {\n c: \"span\",\n i: \"i\",\n b: \"b\",\n u: \"u\",\n ruby: \"ruby\",\n rt: \"rt\",\n v: \"span\",\n lang: \"span\"\n };\n\n var TAG_ANNOTATION = {\n v: \"title\",\n lang: \"lang\"\n };\n\n var NEEDS_PARENT = {\n rt: \"ruby\"\n };\n\n // Parse content into a document fragment.\n function parseContent(window, input) {\n function nextToken() {\n // Check for end-of-string.\n if (!input) {\n return null;\n }\n\n // Consume 'n' characters from the input.\n function consume(result) {\n input = input.substr(result.length);\n return result;\n }\n\n var m = input.match(/^([^<]*)(<[^>]+>?)?/);\n // If there is some text before the next tag, return it, otherwise return\n // the tag.\n return consume(m[1] ? m[1] : m[2]);\n }\n\n // Unescape a string 's'.\n function unescape1(e) {\n return ESCAPE[e];\n }\n function unescape(s) {\n while ((m = s.match(/&(amp|lt|gt|lrm|rlm|nbsp);/))) {\n s = s.replace(m[0], unescape1);\n }\n return s;\n }\n\n function shouldAdd(current, element) {\n return !NEEDS_PARENT[element.localName] ||\n NEEDS_PARENT[element.localName] === current.localName;\n }\n\n // Create an element for this tag.\n function createElement(type, annotation) {\n var tagName = TAG_NAME[type];\n if (!tagName) {\n return null;\n }\n var element = window.document.createElement(tagName);\n element.localName = tagName;\n var name = TAG_ANNOTATION[type];\n if (name && annotation) {\n element[name] = annotation.trim();\n }\n return element;\n }\n\n var rootDiv = window.document.createElement(\"div\"),\n current = rootDiv,\n t,\n tagStack = [];\n\n while ((t = nextToken()) !== null) {\n if (t[0] === '<') {\n if (t[1] === \"/\") {\n // If the closing tag matches, move back up to the parent node.\n if (tagStack.length &&\n tagStack[tagStack.length - 1] === t.substr(2).replace(\">\", \"\")) {\n tagStack.pop();\n current = current.parentNode;\n }\n // Otherwise just ignore the end tag.\n continue;\n }\n var ts = parseTimeStamp(t.substr(1, t.length - 2));\n var node;\n if (ts) {\n // Timestamps are lead nodes as well.\n node = window.document.createProcessingInstruction(\"timestamp\", ts);\n current.appendChild(node);\n continue;\n }\n var m = t.match(/^<([^.\\s/0-9>]+)(\\.[^\\s\\\\>]+)?([^>\\\\]+)?(\\\\?)>?$/);\n // If we can't parse the tag, skip to the next tag.\n if (!m) {\n continue;\n }\n // Try to construct an element, and ignore the tag if we couldn't.\n node = createElement(m[1], m[3]);\n if (!node) {\n continue;\n }\n // Determine if the tag should be added based on the context of where it\n // is placed in the cuetext.\n if (!shouldAdd(current, node)) {\n continue;\n }\n // Set the class list (as a list of classes, separated by space).\n if (m[2]) {\n node.className = m[2].substr(1).replace('.', ' ');\n }\n // Append the node to the current node, and enter the scope of the new\n // node.\n tagStack.push(m[1]);\n current.appendChild(node);\n current = node;\n continue;\n }\n\n // Text nodes are leaf nodes.\n current.appendChild(window.document.createTextNode(unescape(t)));\n }\n\n return rootDiv;\n }\n\n // This is a list of all the Unicode characters that have a strong\n // right-to-left category. What this means is that these characters are\n // written right-to-left for sure. It was generated by pulling all the strong\n // right-to-left characters out of the Unicode data table. That table can\n // found at: http://www.unicode.org/Public/UNIDATA/UnicodeData.txt\n var strongRTLChars = [0x05BE, 0x05C0, 0x05C3, 0x05C6, 0x05D0, 0x05D1,\n 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7, 0x05D8, 0x05D9, 0x05DA,\n 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, 0x05E0, 0x05E1, 0x05E2, 0x05E3,\n 0x05E4, 0x05E5, 0x05E6, 0x05E7, 0x05E8, 0x05E9, 0x05EA, 0x05F0, 0x05F1,\n 0x05F2, 0x05F3, 0x05F4, 0x0608, 0x060B, 0x060D, 0x061B, 0x061E, 0x061F,\n 0x0620, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, 0x0628,\n 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F, 0x0630, 0x0631,\n 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, 0x0638, 0x0639, 0x063A,\n 0x063B, 0x063C, 0x063D, 0x063E, 0x063F, 0x0640, 0x0641, 0x0642, 0x0643,\n 0x0644, 0x0645, 0x0646, 0x0647, 0x0648, 0x0649, 0x064A, 0x066D, 0x066E,\n 0x066F, 0x0671, 0x0672, 0x0673, 0x0674, 0x0675, 0x0676, 0x0677, 0x0678,\n 0x0679, 0x067A, 0x067B, 0x067C, 0x067D, 0x067E, 0x067F, 0x0680, 0x0681,\n 0x0682, 0x0683, 0x0684, 0x0685, 0x0686, 0x0687, 0x0688, 0x0689, 0x068A,\n 0x068B, 0x068C, 0x068D, 0x068E, 0x068F, 0x0690, 0x0691, 0x0692, 0x0693,\n 0x0694, 0x0695, 0x0696, 0x0697, 0x0698, 0x0699, 0x069A, 0x069B, 0x069C,\n 0x069D, 0x069E, 0x069F, 0x06A0, 0x06A1, 0x06A2, 0x06A3, 0x06A4, 0x06A5,\n 0x06A6, 0x06A7, 0x06A8, 0x06A9, 0x06AA, 0x06AB, 0x06AC, 0x06AD, 0x06AE,\n 0x06AF, 0x06B0, 0x06B1, 0x06B2, 0x06B3, 0x06B4, 0x06B5, 0x06B6, 0x06B7,\n 0x06B8, 0x06B9, 0x06BA, 0x06BB, 0x06BC, 0x06BD, 0x06BE, 0x06BF, 0x06C0,\n 0x06C1, 0x06C2, 0x06C3, 0x06C4, 0x06C5, 0x06C6, 0x06C7, 0x06C8, 0x06C9,\n 0x06CA, 0x06CB, 0x06CC, 0x06CD, 0x06CE, 0x06CF, 0x06D0, 0x06D1, 0x06D2,\n 0x06D3, 0x06D4, 0x06D5, 0x06E5, 0x06E6, 0x06EE, 0x06EF, 0x06FA, 0x06FB,\n 0x06FC, 0x06FD, 0x06FE, 0x06FF, 0x0700, 0x0701, 0x0702, 0x0703, 0x0704,\n 0x0705, 0x0706, 0x0707, 0x0708, 0x0709, 0x070A, 0x070B, 0x070C, 0x070D,\n 0x070F, 0x0710, 0x0712, 0x0713, 0x0714, 0x0715, 0x0716, 0x0717, 0x0718,\n 0x0719, 0x071A, 0x071B, 0x071C, 0x071D, 0x071E, 0x071F, 0x0720, 0x0721,\n 0x0722, 0x0723, 0x0724, 0x0725, 0x0726, 0x0727, 0x0728, 0x0729, 0x072A,\n 0x072B, 0x072C, 0x072D, 0x072E, 0x072F, 0x074D, 0x074E, 0x074F, 0x0750,\n 0x0751, 0x0752, 0x0753, 0x0754, 0x0755, 0x0756, 0x0757, 0x0758, 0x0759,\n 0x075A, 0x075B, 0x075C, 0x075D, 0x075E, 0x075F, 0x0760, 0x0761, 0x0762,\n 0x0763, 0x0764, 0x0765, 0x0766, 0x0767, 0x0768, 0x0769, 0x076A, 0x076B,\n 0x076C, 0x076D, 0x076E, 0x076F, 0x0770, 0x0771, 0x0772, 0x0773, 0x0774,\n 0x0775, 0x0776, 0x0777, 0x0778, 0x0779, 0x077A, 0x077B, 0x077C, 0x077D,\n 0x077E, 0x077F, 0x0780, 0x0781, 0x0782, 0x0783, 0x0784, 0x0785, 0x0786,\n 0x0787, 0x0788, 0x0789, 0x078A, 0x078B, 0x078C, 0x078D, 0x078E, 0x078F,\n 0x0790, 0x0791, 0x0792, 0x0793, 0x0794, 0x0795, 0x0796, 0x0797, 0x0798,\n 0x0799, 0x079A, 0x079B, 0x079C, 0x079D, 0x079E, 0x079F, 0x07A0, 0x07A1,\n 0x07A2, 0x07A3, 0x07A4, 0x07A5, 0x07B1, 0x07C0, 0x07C1, 0x07C2, 0x07C3,\n 0x07C4, 0x07C5, 0x07C6, 0x07C7, 0x07C8, 0x07C9, 0x07CA, 0x07CB, 0x07CC,\n 0x07CD, 0x07CE, 0x07CF, 0x07D0, 0x07D1, 0x07D2, 0x07D3, 0x07D4, 0x07D5,\n 0x07D6, 0x07D7, 0x07D8, 0x07D9, 0x07DA, 0x07DB, 0x07DC, 0x07DD, 0x07DE,\n 0x07DF, 0x07E0, 0x07E1, 0x07E2, 0x07E3, 0x07E4, 0x07E5, 0x07E6, 0x07E7,\n 0x07E8, 0x07E9, 0x07EA, 0x07F4, 0x07F5, 0x07FA, 0x0800, 0x0801, 0x0802,\n 0x0803, 0x0804, 0x0805, 0x0806, 0x0807, 0x0808, 0x0809, 0x080A, 0x080B,\n 0x080C, 0x080D, 0x080E, 0x080F, 0x0810, 0x0811, 0x0812, 0x0813, 0x0814,\n 0x0815, 0x081A, 0x0824, 0x0828, 0x0830, 0x0831, 0x0832, 0x0833, 0x0834,\n 0x0835, 0x0836, 0x0837, 0x0838, 0x0839, 0x083A, 0x083B, 0x083C, 0x083D,\n 0x083E, 0x0840, 0x0841, 0x0842, 0x0843, 0x0844, 0x0845, 0x0846, 0x0847,\n 0x0848, 0x0849, 0x084A, 0x084B, 0x084C, 0x084D, 0x084E, 0x084F, 0x0850,\n 0x0851, 0x0852, 0x0853, 0x0854, 0x0855, 0x0856, 0x0857, 0x0858, 0x085E,\n 0x08A0, 0x08A2, 0x08A3, 0x08A4, 0x08A5, 0x08A6, 0x08A7, 0x08A8, 0x08A9,\n 0x08AA, 0x08AB, 0x08AC, 0x200F, 0xFB1D, 0xFB1F, 0xFB20, 0xFB21, 0xFB22,\n 0xFB23, 0xFB24, 0xFB25, 0xFB26, 0xFB27, 0xFB28, 0xFB2A, 0xFB2B, 0xFB2C,\n 0xFB2D, 0xFB2E, 0xFB2F, 0xFB30, 0xFB31, 0xFB32, 0xFB33, 0xFB34, 0xFB35,\n 0xFB36, 0xFB38, 0xFB39, 0xFB3A, 0xFB3B, 0xFB3C, 0xFB3E, 0xFB40, 0xFB41,\n 0xFB43, 0xFB44, 0xFB46, 0xFB47, 0xFB48, 0xFB49, 0xFB4A, 0xFB4B, 0xFB4C,\n 0xFB4D, 0xFB4E, 0xFB4F, 0xFB50, 0xFB51, 0xFB52, 0xFB53, 0xFB54, 0xFB55,\n 0xFB56, 0xFB57, 0xFB58, 0xFB59, 0xFB5A, 0xFB5B, 0xFB5C, 0xFB5D, 0xFB5E,\n 0xFB5F, 0xFB60, 0xFB61, 0xFB62, 0xFB63, 0xFB64, 0xFB65, 0xFB66, 0xFB67,\n 0xFB68, 0xFB69, 0xFB6A, 0xFB6B, 0xFB6C, 0xFB6D, 0xFB6E, 0xFB6F, 0xFB70,\n 0xFB71, 0xFB72, 0xFB73, 0xFB74, 0xFB75, 0xFB76, 0xFB77, 0xFB78, 0xFB79,\n 0xFB7A, 0xFB7B, 0xFB7C, 0xFB7D, 0xFB7E, 0xFB7F, 0xFB80, 0xFB81, 0xFB82,\n 0xFB83, 0xFB84, 0xFB85, 0xFB86, 0xFB87, 0xFB88, 0xFB89, 0xFB8A, 0xFB8B,\n 0xFB8C, 0xFB8D, 0xFB8E, 0xFB8F, 0xFB90, 0xFB91, 0xFB92, 0xFB93, 0xFB94,\n 0xFB95, 0xFB96, 0xFB97, 0xFB98, 0xFB99, 0xFB9A, 0xFB9B, 0xFB9C, 0xFB9D,\n 0xFB9E, 0xFB9F, 0xFBA0, 0xFBA1, 0xFBA2, 0xFBA3, 0xFBA4, 0xFBA5, 0xFBA6,\n 0xFBA7, 0xFBA8, 0xFBA9, 0xFBAA, 0xFBAB, 0xFBAC, 0xFBAD, 0xFBAE, 0xFBAF,\n 0xFBB0, 0xFBB1, 0xFBB2, 0xFBB3, 0xFBB4, 0xFBB5, 0xFBB6, 0xFBB7, 0xFBB8,\n 0xFBB9, 0xFBBA, 0xFBBB, 0xFBBC, 0xFBBD, 0xFBBE, 0xFBBF, 0xFBC0, 0xFBC1,\n 0xFBD3, 0xFBD4, 0xFBD5, 0xFBD6, 0xFBD7, 0xFBD8, 0xFBD9, 0xFBDA, 0xFBDB,\n 0xFBDC, 0xFBDD, 0xFBDE, 0xFBDF, 0xFBE0, 0xFBE1, 0xFBE2, 0xFBE3, 0xFBE4,\n 0xFBE5, 0xFBE6, 0xFBE7, 0xFBE8, 0xFBE9, 0xFBEA, 0xFBEB, 0xFBEC, 0xFBED,\n 0xFBEE, 0xFBEF, 0xFBF0, 0xFBF1, 0xFBF2, 0xFBF3, 0xFBF4, 0xFBF5, 0xFBF6,\n 0xFBF7, 0xFBF8, 0xFBF9, 0xFBFA, 0xFBFB, 0xFBFC, 0xFBFD, 0xFBFE, 0xFBFF,\n 0xFC00, 0xFC01, 0xFC02, 0xFC03, 0xFC04, 0xFC05, 0xFC06, 0xFC07, 0xFC08,\n 0xFC09, 0xFC0A, 0xFC0B, 0xFC0C, 0xFC0D, 0xFC0E, 0xFC0F, 0xFC10, 0xFC11,\n 0xFC12, 0xFC13, 0xFC14, 0xFC15, 0xFC16, 0xFC17, 0xFC18, 0xFC19, 0xFC1A,\n 0xFC1B, 0xFC1C, 0xFC1D, 0xFC1E, 0xFC1F, 0xFC20, 0xFC21, 0xFC22, 0xFC23,\n 0xFC24, 0xFC25, 0xFC26, 0xFC27, 0xFC28, 0xFC29, 0xFC2A, 0xFC2B, 0xFC2C,\n 0xFC2D, 0xFC2E, 0xFC2F, 0xFC30, 0xFC31, 0xFC32, 0xFC33, 0xFC34, 0xFC35,\n 0xFC36, 0xFC37, 0xFC38, 0xFC39, 0xFC3A, 0xFC3B, 0xFC3C, 0xFC3D, 0xFC3E,\n 0xFC3F, 0xFC40, 0xFC41, 0xFC42, 0xFC43, 0xFC44, 0xFC45, 0xFC46, 0xFC47,\n 0xFC48, 0xFC49, 0xFC4A, 0xFC4B, 0xFC4C, 0xFC4D, 0xFC4E, 0xFC4F, 0xFC50,\n 0xFC51, 0xFC52, 0xFC53, 0xFC54, 0xFC55, 0xFC56, 0xFC57, 0xFC58, 0xFC59,\n 0xFC5A, 0xFC5B, 0xFC5C, 0xFC5D, 0xFC5E, 0xFC5F, 0xFC60, 0xFC61, 0xFC62,\n 0xFC63, 0xFC64, 0xFC65, 0xFC66, 0xFC67, 0xFC68, 0xFC69, 0xFC6A, 0xFC6B,\n 0xFC6C, 0xFC6D, 0xFC6E, 0xFC6F, 0xFC70, 0xFC71, 0xFC72, 0xFC73, 0xFC74,\n 0xFC75, 0xFC76, 0xFC77, 0xFC78, 0xFC79, 0xFC7A, 0xFC7B, 0xFC7C, 0xFC7D,\n 0xFC7E, 0xFC7F, 0xFC80, 0xFC81, 0xFC82, 0xFC83, 0xFC84, 0xFC85, 0xFC86,\n 0xFC87, 0xFC88, 0xFC89, 0xFC8A, 0xFC8B, 0xFC8C, 0xFC8D, 0xFC8E, 0xFC8F,\n 0xFC90, 0xFC91, 0xFC92, 0xFC93, 0xFC94, 0xFC95, 0xFC96, 0xFC97, 0xFC98,\n 0xFC99, 0xFC9A, 0xFC9B, 0xFC9C, 0xFC9D, 0xFC9E, 0xFC9F, 0xFCA0, 0xFCA1,\n 0xFCA2, 0xFCA3, 0xFCA4, 0xFCA5, 0xFCA6, 0xFCA7, 0xFCA8, 0xFCA9, 0xFCAA,\n 0xFCAB, 0xFCAC, 0xFCAD, 0xFCAE, 0xFCAF, 0xFCB0, 0xFCB1, 0xFCB2, 0xFCB3,\n 0xFCB4, 0xFCB5, 0xFCB6, 0xFCB7, 0xFCB8, 0xFCB9, 0xFCBA, 0xFCBB, 0xFCBC,\n 0xFCBD, 0xFCBE, 0xFCBF, 0xFCC0, 0xFCC1, 0xFCC2, 0xFCC3, 0xFCC4, 0xFCC5,\n 0xFCC6, 0xFCC7, 0xFCC8, 0xFCC9, 0xFCCA, 0xFCCB, 0xFCCC, 0xFCCD, 0xFCCE,\n 0xFCCF, 0xFCD0, 0xFCD1, 0xFCD2, 0xFCD3, 0xFCD4, 0xFCD5, 0xFCD6, 0xFCD7,\n 0xFCD8, 0xFCD9, 0xFCDA, 0xFCDB, 0xFCDC, 0xFCDD, 0xFCDE, 0xFCDF, 0xFCE0,\n 0xFCE1, 0xFCE2, 0xFCE3, 0xFCE4, 0xFCE5, 0xFCE6, 0xFCE7, 0xFCE8, 0xFCE9,\n 0xFCEA, 0xFCEB, 0xFCEC, 0xFCED, 0xFCEE, 0xFCEF, 0xFCF0, 0xFCF1, 0xFCF2,\n 0xFCF3, 0xFCF4, 0xFCF5, 0xFCF6, 0xFCF7, 0xFCF8, 0xFCF9, 0xFCFA, 0xFCFB,\n 0xFCFC, 0xFCFD, 0xFCFE, 0xFCFF, 0xFD00, 0xFD01, 0xFD02, 0xFD03, 0xFD04,\n 0xFD05, 0xFD06, 0xFD07, 0xFD08, 0xFD09, 0xFD0A, 0xFD0B, 0xFD0C, 0xFD0D,\n 0xFD0E, 0xFD0F, 0xFD10, 0xFD11, 0xFD12, 0xFD13, 0xFD14, 0xFD15, 0xFD16,\n 0xFD17, 0xFD18, 0xFD19, 0xFD1A, 0xFD1B, 0xFD1C, 0xFD1D, 0xFD1E, 0xFD1F,\n 0xFD20, 0xFD21, 0xFD22, 0xFD23, 0xFD24, 0xFD25, 0xFD26, 0xFD27, 0xFD28,\n 0xFD29, 0xFD2A, 0xFD2B, 0xFD2C, 0xFD2D, 0xFD2E, 0xFD2F, 0xFD30, 0xFD31,\n 0xFD32, 0xFD33, 0xFD34, 0xFD35, 0xFD36, 0xFD37, 0xFD38, 0xFD39, 0xFD3A,\n 0xFD3B, 0xFD3C, 0xFD3D, 0xFD50, 0xFD51, 0xFD52, 0xFD53, 0xFD54, 0xFD55,\n 0xFD56, 0xFD57, 0xFD58, 0xFD59, 0xFD5A, 0xFD5B, 0xFD5C, 0xFD5D, 0xFD5E,\n 0xFD5F, 0xFD60, 0xFD61, 0xFD62, 0xFD63, 0xFD64, 0xFD65, 0xFD66, 0xFD67,\n 0xFD68, 0xFD69, 0xFD6A, 0xFD6B, 0xFD6C, 0xFD6D, 0xFD6E, 0xFD6F, 0xFD70,\n 0xFD71, 0xFD72, 0xFD73, 0xFD74, 0xFD75, 0xFD76, 0xFD77, 0xFD78, 0xFD79,\n 0xFD7A, 0xFD7B, 0xFD7C, 0xFD7D, 0xFD7E, 0xFD7F, 0xFD80, 0xFD81, 0xFD82,\n 0xFD83, 0xFD84, 0xFD85, 0xFD86, 0xFD87, 0xFD88, 0xFD89, 0xFD8A, 0xFD8B,\n 0xFD8C, 0xFD8D, 0xFD8E, 0xFD8F, 0xFD92, 0xFD93, 0xFD94, 0xFD95, 0xFD96,\n 0xFD97, 0xFD98, 0xFD99, 0xFD9A, 0xFD9B, 0xFD9C, 0xFD9D, 0xFD9E, 0xFD9F,\n 0xFDA0, 0xFDA1, 0xFDA2, 0xFDA3, 0xFDA4, 0xFDA5, 0xFDA6, 0xFDA7, 0xFDA8,\n 0xFDA9, 0xFDAA, 0xFDAB, 0xFDAC, 0xFDAD, 0xFDAE, 0xFDAF, 0xFDB0, 0xFDB1,\n 0xFDB2, 0xFDB3, 0xFDB4, 0xFDB5, 0xFDB6, 0xFDB7, 0xFDB8, 0xFDB9, 0xFDBA,\n 0xFDBB, 0xFDBC, 0xFDBD, 0xFDBE, 0xFDBF, 0xFDC0, 0xFDC1, 0xFDC2, 0xFDC3,\n 0xFDC4, 0xFDC5, 0xFDC6, 0xFDC7, 0xFDF0, 0xFDF1, 0xFDF2, 0xFDF3, 0xFDF4,\n 0xFDF5, 0xFDF6, 0xFDF7, 0xFDF8, 0xFDF9, 0xFDFA, 0xFDFB, 0xFDFC, 0xFE70,\n 0xFE71, 0xFE72, 0xFE73, 0xFE74, 0xFE76, 0xFE77, 0xFE78, 0xFE79, 0xFE7A,\n 0xFE7B, 0xFE7C, 0xFE7D, 0xFE7E, 0xFE7F, 0xFE80, 0xFE81, 0xFE82, 0xFE83,\n 0xFE84, 0xFE85, 0xFE86, 0xFE87, 0xFE88, 0xFE89, 0xFE8A, 0xFE8B, 0xFE8C,\n 0xFE8D, 0xFE8E, 0xFE8F, 0xFE90, 0xFE91, 0xFE92, 0xFE93, 0xFE94, 0xFE95,\n 0xFE96, 0xFE97, 0xFE98, 0xFE99, 0xFE9A, 0xFE9B, 0xFE9C, 0xFE9D, 0xFE9E,\n 0xFE9F, 0xFEA0, 0xFEA1, 0xFEA2, 0xFEA3, 0xFEA4, 0xFEA5, 0xFEA6, 0xFEA7,\n 0xFEA8, 0xFEA9, 0xFEAA, 0xFEAB, 0xFEAC, 0xFEAD, 0xFEAE, 0xFEAF, 0xFEB0,\n 0xFEB1, 0xFEB2, 0xFEB3, 0xFEB4, 0xFEB5, 0xFEB6, 0xFEB7, 0xFEB8, 0xFEB9,\n 0xFEBA, 0xFEBB, 0xFEBC, 0xFEBD, 0xFEBE, 0xFEBF, 0xFEC0, 0xFEC1, 0xFEC2,\n 0xFEC3, 0xFEC4, 0xFEC5, 0xFEC6, 0xFEC7, 0xFEC8, 0xFEC9, 0xFECA, 0xFECB,\n 0xFECC, 0xFECD, 0xFECE, 0xFECF, 0xFED0, 0xFED1, 0xFED2, 0xFED3, 0xFED4,\n 0xFED5, 0xFED6, 0xFED7, 0xFED8, 0xFED9, 0xFEDA, 0xFEDB, 0xFEDC, 0xFEDD,\n 0xFEDE, 0xFEDF, 0xFEE0, 0xFEE1, 0xFEE2, 0xFEE3, 0xFEE4, 0xFEE5, 0xFEE6,\n 0xFEE7, 0xFEE8, 0xFEE9, 0xFEEA, 0xFEEB, 0xFEEC, 0xFEED, 0xFEEE, 0xFEEF,\n 0xFEF0, 0xFEF1, 0xFEF2, 0xFEF3, 0xFEF4, 0xFEF5, 0xFEF6, 0xFEF7, 0xFEF8,\n 0xFEF9, 0xFEFA, 0xFEFB, 0xFEFC, 0x10800, 0x10801, 0x10802, 0x10803,\n 0x10804, 0x10805, 0x10808, 0x1080A, 0x1080B, 0x1080C, 0x1080D, 0x1080E,\n 0x1080F, 0x10810, 0x10811, 0x10812, 0x10813, 0x10814, 0x10815, 0x10816,\n 0x10817, 0x10818, 0x10819, 0x1081A, 0x1081B, 0x1081C, 0x1081D, 0x1081E,\n 0x1081F, 0x10820, 0x10821, 0x10822, 0x10823, 0x10824, 0x10825, 0x10826,\n 0x10827, 0x10828, 0x10829, 0x1082A, 0x1082B, 0x1082C, 0x1082D, 0x1082E,\n 0x1082F, 0x10830, 0x10831, 0x10832, 0x10833, 0x10834, 0x10835, 0x10837,\n 0x10838, 0x1083C, 0x1083F, 0x10840, 0x10841, 0x10842, 0x10843, 0x10844,\n 0x10845, 0x10846, 0x10847, 0x10848, 0x10849, 0x1084A, 0x1084B, 0x1084C,\n 0x1084D, 0x1084E, 0x1084F, 0x10850, 0x10851, 0x10852, 0x10853, 0x10854,\n 0x10855, 0x10857, 0x10858, 0x10859, 0x1085A, 0x1085B, 0x1085C, 0x1085D,\n 0x1085E, 0x1085F, 0x10900, 0x10901, 0x10902, 0x10903, 0x10904, 0x10905,\n 0x10906, 0x10907, 0x10908, 0x10909, 0x1090A, 0x1090B, 0x1090C, 0x1090D,\n 0x1090E, 0x1090F, 0x10910, 0x10911, 0x10912, 0x10913, 0x10914, 0x10915,\n 0x10916, 0x10917, 0x10918, 0x10919, 0x1091A, 0x1091B, 0x10920, 0x10921,\n 0x10922, 0x10923, 0x10924, 0x10925, 0x10926, 0x10927, 0x10928, 0x10929,\n 0x1092A, 0x1092B, 0x1092C, 0x1092D, 0x1092E, 0x1092F, 0x10930, 0x10931,\n 0x10932, 0x10933, 0x10934, 0x10935, 0x10936, 0x10937, 0x10938, 0x10939,\n 0x1093F, 0x10980, 0x10981, 0x10982, 0x10983, 0x10984, 0x10985, 0x10986,\n 0x10987, 0x10988, 0x10989, 0x1098A, 0x1098B, 0x1098C, 0x1098D, 0x1098E,\n 0x1098F, 0x10990, 0x10991, 0x10992, 0x10993, 0x10994, 0x10995, 0x10996,\n 0x10997, 0x10998, 0x10999, 0x1099A, 0x1099B, 0x1099C, 0x1099D, 0x1099E,\n 0x1099F, 0x109A0, 0x109A1, 0x109A2, 0x109A3, 0x109A4, 0x109A5, 0x109A6,\n 0x109A7, 0x109A8, 0x109A9, 0x109AA, 0x109AB, 0x109AC, 0x109AD, 0x109AE,\n 0x109AF, 0x109B0, 0x109B1, 0x109B2, 0x109B3, 0x109B4, 0x109B5, 0x109B6,\n 0x109B7, 0x109BE, 0x109BF, 0x10A00, 0x10A10, 0x10A11, 0x10A12, 0x10A13,\n 0x10A15, 0x10A16, 0x10A17, 0x10A19, 0x10A1A, 0x10A1B, 0x10A1C, 0x10A1D,\n 0x10A1E, 0x10A1F, 0x10A20, 0x10A21, 0x10A22, 0x10A23, 0x10A24, 0x10A25,\n 0x10A26, 0x10A27, 0x10A28, 0x10A29, 0x10A2A, 0x10A2B, 0x10A2C, 0x10A2D,\n 0x10A2E, 0x10A2F, 0x10A30, 0x10A31, 0x10A32, 0x10A33, 0x10A40, 0x10A41,\n 0x10A42, 0x10A43, 0x10A44, 0x10A45, 0x10A46, 0x10A47, 0x10A50, 0x10A51,\n 0x10A52, 0x10A53, 0x10A54, 0x10A55, 0x10A56, 0x10A57, 0x10A58, 0x10A60,\n 0x10A61, 0x10A62, 0x10A63, 0x10A64, 0x10A65, 0x10A66, 0x10A67, 0x10A68,\n 0x10A69, 0x10A6A, 0x10A6B, 0x10A6C, 0x10A6D, 0x10A6E, 0x10A6F, 0x10A70,\n 0x10A71, 0x10A72, 0x10A73, 0x10A74, 0x10A75, 0x10A76, 0x10A77, 0x10A78,\n 0x10A79, 0x10A7A, 0x10A7B, 0x10A7C, 0x10A7D, 0x10A7E, 0x10A7F, 0x10B00,\n 0x10B01, 0x10B02, 0x10B03, 0x10B04, 0x10B05, 0x10B06, 0x10B07, 0x10B08,\n 0x10B09, 0x10B0A, 0x10B0B, 0x10B0C, 0x10B0D, 0x10B0E, 0x10B0F, 0x10B10,\n 0x10B11, 0x10B12, 0x10B13, 0x10B14, 0x10B15, 0x10B16, 0x10B17, 0x10B18,\n 0x10B19, 0x10B1A, 0x10B1B, 0x10B1C, 0x10B1D, 0x10B1E, 0x10B1F, 0x10B20,\n 0x10B21, 0x10B22, 0x10B23, 0x10B24, 0x10B25, 0x10B26, 0x10B27, 0x10B28,\n 0x10B29, 0x10B2A, 0x10B2B, 0x10B2C, 0x10B2D, 0x10B2E, 0x10B2F, 0x10B30,\n 0x10B31, 0x10B32, 0x10B33, 0x10B34, 0x10B35, 0x10B40, 0x10B41, 0x10B42,\n 0x10B43, 0x10B44, 0x10B45, 0x10B46, 0x10B47, 0x10B48, 0x10B49, 0x10B4A,\n 0x10B4B, 0x10B4C, 0x10B4D, 0x10B4E, 0x10B4F, 0x10B50, 0x10B51, 0x10B52,\n 0x10B53, 0x10B54, 0x10B55, 0x10B58, 0x10B59, 0x10B5A, 0x10B5B, 0x10B5C,\n 0x10B5D, 0x10B5E, 0x10B5F, 0x10B60, 0x10B61, 0x10B62, 0x10B63, 0x10B64,\n 0x10B65, 0x10B66, 0x10B67, 0x10B68, 0x10B69, 0x10B6A, 0x10B6B, 0x10B6C,\n 0x10B6D, 0x10B6E, 0x10B6F, 0x10B70, 0x10B71, 0x10B72, 0x10B78, 0x10B79,\n 0x10B7A, 0x10B7B, 0x10B7C, 0x10B7D, 0x10B7E, 0x10B7F, 0x10C00, 0x10C01,\n 0x10C02, 0x10C03, 0x10C04, 0x10C05, 0x10C06, 0x10C07, 0x10C08, 0x10C09,\n 0x10C0A, 0x10C0B, 0x10C0C, 0x10C0D, 0x10C0E, 0x10C0F, 0x10C10, 0x10C11,\n 0x10C12, 0x10C13, 0x10C14, 0x10C15, 0x10C16, 0x10C17, 0x10C18, 0x10C19,\n 0x10C1A, 0x10C1B, 0x10C1C, 0x10C1D, 0x10C1E, 0x10C1F, 0x10C20, 0x10C21,\n 0x10C22, 0x10C23, 0x10C24, 0x10C25, 0x10C26, 0x10C27, 0x10C28, 0x10C29,\n 0x10C2A, 0x10C2B, 0x10C2C, 0x10C2D, 0x10C2E, 0x10C2F, 0x10C30, 0x10C31,\n 0x10C32, 0x10C33, 0x10C34, 0x10C35, 0x10C36, 0x10C37, 0x10C38, 0x10C39,\n 0x10C3A, 0x10C3B, 0x10C3C, 0x10C3D, 0x10C3E, 0x10C3F, 0x10C40, 0x10C41,\n 0x10C42, 0x10C43, 0x10C44, 0x10C45, 0x10C46, 0x10C47, 0x10C48, 0x1EE00,\n 0x1EE01, 0x1EE02, 0x1EE03, 0x1EE05, 0x1EE06, 0x1EE07, 0x1EE08, 0x1EE09,\n 0x1EE0A, 0x1EE0B, 0x1EE0C, 0x1EE0D, 0x1EE0E, 0x1EE0F, 0x1EE10, 0x1EE11,\n 0x1EE12, 0x1EE13, 0x1EE14, 0x1EE15, 0x1EE16, 0x1EE17, 0x1EE18, 0x1EE19,\n 0x1EE1A, 0x1EE1B, 0x1EE1C, 0x1EE1D, 0x1EE1E, 0x1EE1F, 0x1EE21, 0x1EE22,\n 0x1EE24, 0x1EE27, 0x1EE29, 0x1EE2A, 0x1EE2B, 0x1EE2C, 0x1EE2D, 0x1EE2E,\n 0x1EE2F, 0x1EE30, 0x1EE31, 0x1EE32, 0x1EE34, 0x1EE35, 0x1EE36, 0x1EE37,\n 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE4D, 0x1EE4E,\n 0x1EE4F, 0x1EE51, 0x1EE52, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D,\n 0x1EE5F, 0x1EE61, 0x1EE62, 0x1EE64, 0x1EE67, 0x1EE68, 0x1EE69, 0x1EE6A,\n 0x1EE6C, 0x1EE6D, 0x1EE6E, 0x1EE6F, 0x1EE70, 0x1EE71, 0x1EE72, 0x1EE74,\n 0x1EE75, 0x1EE76, 0x1EE77, 0x1EE79, 0x1EE7A, 0x1EE7B, 0x1EE7C, 0x1EE7E,\n 0x1EE80, 0x1EE81, 0x1EE82, 0x1EE83, 0x1EE84, 0x1EE85, 0x1EE86, 0x1EE87,\n 0x1EE88, 0x1EE89, 0x1EE8B, 0x1EE8C, 0x1EE8D, 0x1EE8E, 0x1EE8F, 0x1EE90,\n 0x1EE91, 0x1EE92, 0x1EE93, 0x1EE94, 0x1EE95, 0x1EE96, 0x1EE97, 0x1EE98,\n 0x1EE99, 0x1EE9A, 0x1EE9B, 0x1EEA1, 0x1EEA2, 0x1EEA3, 0x1EEA5, 0x1EEA6,\n 0x1EEA7, 0x1EEA8, 0x1EEA9, 0x1EEAB, 0x1EEAC, 0x1EEAD, 0x1EEAE, 0x1EEAF,\n 0x1EEB0, 0x1EEB1, 0x1EEB2, 0x1EEB3, 0x1EEB4, 0x1EEB5, 0x1EEB6, 0x1EEB7,\n 0x1EEB8, 0x1EEB9, 0x1EEBA, 0x1EEBB, 0x10FFFD];\n\n function determineBidi(cueDiv) {\n var nodeStack = [],\n text = \"\",\n charCode;\n\n if (!cueDiv || !cueDiv.childNodes) {\n return \"ltr\";\n }\n\n function pushNodes(nodeStack, node) {\n for (var i = node.childNodes.length - 1; i >= 0; i--) {\n nodeStack.push(node.childNodes[i]);\n }\n }\n\n function nextTextNode(nodeStack) {\n if (!nodeStack || !nodeStack.length) {\n return null;\n }\n\n var node = nodeStack.pop(),\n text = node.textContent || node.innerText;\n if (text) {\n // TODO: This should match all unicode type B characters (paragraph\n // separator characters). See issue #115.\n var m = text.match(/^.*(\\n|\\r)/);\n if (m) {\n nodeStack.length = 0;\n return m[0];\n }\n return text;\n }\n if (node.tagName === \"ruby\") {\n return nextTextNode(nodeStack);\n }\n if (node.childNodes) {\n pushNodes(nodeStack, node);\n return nextTextNode(nodeStack);\n }\n }\n\n pushNodes(nodeStack, cueDiv);\n while ((text = nextTextNode(nodeStack))) {\n for (var i = 0; i < text.length; i++) {\n charCode = text.charCodeAt(i);\n for (var j = 0; j < strongRTLChars.length; j++) {\n if (strongRTLChars[j] === charCode) {\n return \"rtl\";\n }\n }\n }\n }\n return \"ltr\";\n }\n\n function computeLinePos(cue) {\n if (typeof cue.line === \"number\" &&\n (cue.snapToLines || (cue.line >= 0 && cue.line <= 100))) {\n return cue.line;\n }\n if (!cue.track || !cue.track.textTrackList ||\n !cue.track.textTrackList.mediaElement) {\n return -1;\n }\n var track = cue.track,\n trackList = track.textTrackList,\n count = 0;\n for (var i = 0; i < trackList.length && trackList[i] !== track; i++) {\n if (trackList[i].mode === \"showing\") {\n count++;\n }\n }\n return ++count * -1;\n }\n\n function StyleBox() {\n }\n\n // Apply styles to a div. If there is no div passed then it defaults to the\n // div on 'this'.\n StyleBox.prototype.applyStyles = function(styles, div) {\n div = div || this.div;\n for (var prop in styles) {\n if (styles.hasOwnProperty(prop)) {\n div.style[prop] = styles[prop];\n }\n }\n };\n\n StyleBox.prototype.formatStyle = function(val, unit) {\n return val === 0 ? 0 : val + unit;\n };\n\n // Constructs the computed display state of the cue (a div). Places the div\n // into the overlay which should be a block level element (usually a div).\n function CueStyleBox(window, cue, styleOptions) {\n var isIE8 = (/MSIE\\s8\\.0/).test(navigator.userAgent);\n var color = \"rgba(255, 255, 255, 1)\";\n var backgroundColor = \"rgba(0, 0, 0, 0.8)\";\n\n if (isIE8) {\n color = \"rgb(255, 255, 255)\";\n backgroundColor = \"rgb(0, 0, 0)\";\n }\n\n StyleBox.call(this);\n this.cue = cue;\n\n // Parse our cue's text into a DOM tree rooted at 'cueDiv'. This div will\n // have inline positioning and will function as the cue background box.\n this.cueDiv = parseContent(window, cue.text);\n var styles = {\n color: color,\n backgroundColor: backgroundColor,\n position: \"relative\",\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n display: \"inline\"\n };\n\n if (!isIE8) {\n styles.writingMode = cue.vertical === \"\" ? \"horizontal-tb\"\n : cue.vertical === \"lr\" ? \"vertical-lr\"\n : \"vertical-rl\";\n styles.unicodeBidi = \"plaintext\";\n }\n this.applyStyles(styles, this.cueDiv);\n\n // Create an absolutely positioned div that will be used to position the cue\n // div. Note, all WebVTT cue-setting alignments are equivalent to the CSS\n // mirrors of them except \"middle\" which is \"center\" in CSS.\n this.div = window.document.createElement(\"div\");\n styles = {\n textAlign: cue.align === \"middle\" ? \"center\" : cue.align,\n font: styleOptions.font,\n whiteSpace: \"pre-line\",\n position: \"absolute\"\n };\n\n if (!isIE8) {\n styles.direction = determineBidi(this.cueDiv);\n styles.writingMode = cue.vertical === \"\" ? \"horizontal-tb\"\n : cue.vertical === \"lr\" ? \"vertical-lr\"\n : \"vertical-rl\".\n stylesunicodeBidi = \"plaintext\";\n }\n\n this.applyStyles(styles);\n\n this.div.appendChild(this.cueDiv);\n\n // Calculate the distance from the reference edge of the viewport to the text\n // position of the cue box. The reference edge will be resolved later when\n // the box orientation styles are applied.\n var textPos = 0;\n switch (cue.positionAlign) {\n case \"start\":\n textPos = cue.position;\n break;\n case \"middle\":\n textPos = cue.position - (cue.size / 2);\n break;\n case \"end\":\n textPos = cue.position - cue.size;\n break;\n }\n\n // Horizontal box orientation; textPos is the distance from the left edge of the\n // area to the left edge of the box and cue.size is the distance extending to\n // the right from there.\n if (cue.vertical === \"\") {\n this.applyStyles({\n left: this.formatStyle(textPos, \"%\"),\n width: this.formatStyle(cue.size, \"%\")\n });\n // Vertical box orientation; textPos is the distance from the top edge of the\n // area to the top edge of the box and cue.size is the height extending\n // downwards from there.\n } else {\n this.applyStyles({\n top: this.formatStyle(textPos, \"%\"),\n height: this.formatStyle(cue.size, \"%\")\n });\n }\n\n this.move = function(box) {\n this.applyStyles({\n top: this.formatStyle(box.top, \"px\"),\n bottom: this.formatStyle(box.bottom, \"px\"),\n left: this.formatStyle(box.left, \"px\"),\n right: this.formatStyle(box.right, \"px\"),\n height: this.formatStyle(box.height, \"px\"),\n width: this.formatStyle(box.width, \"px\")\n });\n };\n }\n CueStyleBox.prototype = _objCreate(StyleBox.prototype);\n CueStyleBox.prototype.constructor = CueStyleBox;\n\n // Represents the co-ordinates of an Element in a way that we can easily\n // compute things with such as if it overlaps or intersects with another Element.\n // Can initialize it with either a StyleBox or another BoxPosition.\n function BoxPosition(obj) {\n var isIE8 = (/MSIE\\s8\\.0/).test(navigator.userAgent);\n\n // Either a BoxPosition was passed in and we need to copy it, or a StyleBox\n // was passed in and we need to copy the results of 'getBoundingClientRect'\n // as the object returned is readonly. All co-ordinate values are in reference\n // to the viewport origin (top left).\n var lh, height, width, top;\n if (obj.div) {\n height = obj.div.offsetHeight;\n width = obj.div.offsetWidth;\n top = obj.div.offsetTop;\n\n var rects = (rects = obj.div.childNodes) && (rects = rects[0]) &&\n rects.getClientRects && rects.getClientRects();\n obj = obj.div.getBoundingClientRect();\n // In certain cases the outter div will be slightly larger then the sum of\n // the inner div's lines. This could be due to bold text, etc, on some platforms.\n // In this case we should get the average line height and use that. This will\n // result in the desired behaviour.\n lh = rects ? Math.max((rects[0] && rects[0].height) || 0, obj.height / rects.length)\n : 0;\n\n }\n this.left = obj.left;\n this.right = obj.right;\n this.top = obj.top || top;\n this.height = obj.height || height;\n this.bottom = obj.bottom || (top + (obj.height || height));\n this.width = obj.width || width;\n this.lineHeight = lh !== undefined ? lh : obj.lineHeight;\n\n if (isIE8 && !this.lineHeight) {\n this.lineHeight = 13;\n }\n }\n\n // Move the box along a particular axis. Optionally pass in an amount to move\n // the box. If no amount is passed then the default is the line height of the\n // box.\n BoxPosition.prototype.move = function(axis, toMove) {\n toMove = toMove !== undefined ? toMove : this.lineHeight;\n switch (axis) {\n case \"+x\":\n this.left += toMove;\n this.right += toMove;\n break;\n case \"-x\":\n this.left -= toMove;\n this.right -= toMove;\n break;\n case \"+y\":\n this.top += toMove;\n this.bottom += toMove;\n break;\n case \"-y\":\n this.top -= toMove;\n this.bottom -= toMove;\n break;\n }\n };\n\n // Check if this box overlaps another box, b2.\n BoxPosition.prototype.overlaps = function(b2) {\n return this.left < b2.right &&\n this.right > b2.left &&\n this.top < b2.bottom &&\n this.bottom > b2.top;\n };\n\n // Check if this box overlaps any other boxes in boxes.\n BoxPosition.prototype.overlapsAny = function(boxes) {\n for (var i = 0; i < boxes.length; i++) {\n if (this.overlaps(boxes[i])) {\n return true;\n }\n }\n return false;\n };\n\n // Check if this box is within another box.\n BoxPosition.prototype.within = function(container) {\n return this.top >= container.top &&\n this.bottom <= container.bottom &&\n this.left >= container.left &&\n this.right <= container.right;\n };\n\n // Check if this box is entirely within the container or it is overlapping\n // on the edge opposite of the axis direction passed. For example, if \"+x\" is\n // passed and the box is overlapping on the left edge of the container, then\n // return true.\n BoxPosition.prototype.overlapsOppositeAxis = function(container, axis) {\n switch (axis) {\n case \"+x\":\n return this.left < container.left;\n case \"-x\":\n return this.right > container.right;\n case \"+y\":\n return this.top < container.top;\n case \"-y\":\n return this.bottom > container.bottom;\n }\n };\n\n // Find the percentage of the area that this box is overlapping with another\n // box.\n BoxPosition.prototype.intersectPercentage = function(b2) {\n var x = Math.max(0, Math.min(this.right, b2.right) - Math.max(this.left, b2.left)),\n y = Math.max(0, Math.min(this.bottom, b2.bottom) - Math.max(this.top, b2.top)),\n intersectArea = x * y;\n return intersectArea / (this.height * this.width);\n };\n\n // Convert the positions from this box to CSS compatible positions using\n // the reference container's positions. This has to be done because this\n // box's positions are in reference to the viewport origin, whereas, CSS\n // values are in referecne to their respective edges.\n BoxPosition.prototype.toCSSCompatValues = function(reference) {\n return {\n top: this.top - reference.top,\n bottom: reference.bottom - this.bottom,\n left: this.left - reference.left,\n right: reference.right - this.right,\n height: this.height,\n width: this.width\n };\n };\n\n // Get an object that represents the box's position without anything extra.\n // Can pass a StyleBox, HTMLElement, or another BoxPositon.\n BoxPosition.getSimpleBoxPosition = function(obj) {\n var height = obj.div ? obj.div.offsetHeight : obj.tagName ? obj.offsetHeight : 0;\n var width = obj.div ? obj.div.offsetWidth : obj.tagName ? obj.offsetWidth : 0;\n var top = obj.div ? obj.div.offsetTop : obj.tagName ? obj.offsetTop : 0;\n\n obj = obj.div ? obj.div.getBoundingClientRect() :\n obj.tagName ? obj.getBoundingClientRect() : obj;\n var ret = {\n left: obj.left,\n right: obj.right,\n top: obj.top || top,\n height: obj.height || height,\n bottom: obj.bottom || (top + (obj.height || height)),\n width: obj.width || width\n };\n return ret;\n };\n\n // Move a StyleBox to its specified, or next best, position. The containerBox\n // is the box that contains the StyleBox, such as a div. boxPositions are\n // a list of other boxes that the styleBox can't overlap with.\n function moveBoxToLinePosition(window, styleBox, containerBox, boxPositions) {\n\n // Find the best position for a cue box, b, on the video. The axis parameter\n // is a list of axis, the order of which, it will move the box along. For example:\n // Passing [\"+x\", \"-x\"] will move the box first along the x axis in the positive\n // direction. If it doesn't find a good position for it there it will then move\n // it along the x axis in the negative direction.\n function findBestPosition(b, axis) {\n var bestPosition,\n specifiedPosition = new BoxPosition(b),\n percentage = 1; // Highest possible so the first thing we get is better.\n\n for (var i = 0; i < axis.length; i++) {\n while (b.overlapsOppositeAxis(containerBox, axis[i]) ||\n (b.within(containerBox) && b.overlapsAny(boxPositions))) {\n b.move(axis[i]);\n }\n // We found a spot where we aren't overlapping anything. This is our\n // best position.\n if (b.within(containerBox)) {\n return b;\n }\n var p = b.intersectPercentage(containerBox);\n // If we're outside the container box less then we were on our last try\n // then remember this position as the best position.\n if (percentage > p) {\n bestPosition = new BoxPosition(b);\n percentage = p;\n }\n // Reset the box position to the specified position.\n b = new BoxPosition(specifiedPosition);\n }\n return bestPosition || specifiedPosition;\n }\n\n var boxPosition = new BoxPosition(styleBox),\n cue = styleBox.cue,\n linePos = computeLinePos(cue),\n axis = [];\n\n // If we have a line number to align the cue to.\n if (cue.snapToLines) {\n var size;\n switch (cue.vertical) {\n case \"\":\n axis = [ \"+y\", \"-y\" ];\n size = \"height\";\n break;\n case \"rl\":\n axis = [ \"+x\", \"-x\" ];\n size = \"width\";\n break;\n case \"lr\":\n axis = [ \"-x\", \"+x\" ];\n size = \"width\";\n break;\n }\n\n var step = boxPosition.lineHeight,\n position = step * Math.round(linePos),\n maxPosition = containerBox[size] + step,\n initialAxis = axis[0];\n\n // If the specified intial position is greater then the max position then\n // clamp the box to the amount of steps it would take for the box to\n // reach the max position.\n if (Math.abs(position) > maxPosition) {\n position = position < 0 ? -1 : 1;\n position *= Math.ceil(maxPosition / step) * step;\n }\n\n // If computed line position returns negative then line numbers are\n // relative to the bottom of the video instead of the top. Therefore, we\n // need to increase our initial position by the length or width of the\n // video, depending on the writing direction, and reverse our axis directions.\n if (linePos < 0) {\n position += cue.vertical === \"\" ? containerBox.height : containerBox.width;\n axis = axis.reverse();\n }\n\n // Move the box to the specified position. This may not be its best\n // position.\n boxPosition.move(initialAxis, position);\n\n } else {\n // If we have a percentage line value for the cue.\n var calculatedPercentage = (boxPosition.lineHeight / containerBox.height) * 100;\n\n switch (cue.lineAlign) {\n case \"middle\":\n linePos -= (calculatedPercentage / 2);\n break;\n case \"end\":\n linePos -= calculatedPercentage;\n break;\n }\n\n // Apply initial line position to the cue box.\n switch (cue.vertical) {\n case \"\":\n styleBox.applyStyles({\n top: styleBox.formatStyle(linePos, \"%\")\n });\n break;\n case \"rl\":\n styleBox.applyStyles({\n left: styleBox.formatStyle(linePos, \"%\")\n });\n break;\n case \"lr\":\n styleBox.applyStyles({\n right: styleBox.formatStyle(linePos, \"%\")\n });\n break;\n }\n\n axis = [ \"+y\", \"-x\", \"+x\", \"-y\" ];\n\n // Get the box position again after we've applied the specified positioning\n // to it.\n boxPosition = new BoxPosition(styleBox);\n }\n\n var bestPosition = findBestPosition(boxPosition, axis);\n styleBox.move(bestPosition.toCSSCompatValues(containerBox));\n }\n\n function WebVTT() {\n // Nothing\n }\n\n // Helper to allow strings to be decoded instead of the default binary utf8 data.\n WebVTT.StringDecoder = function() {\n return {\n decode: function(data) {\n if (!data) {\n return \"\";\n }\n if (typeof data !== \"string\") {\n throw new Error(\"Error - expected string data.\");\n }\n return decodeURIComponent(encodeURIComponent(data));\n }\n };\n };\n\n WebVTT.convertCueToDOMTree = function(window, cuetext) {\n if (!window || !cuetext) {\n return null;\n }\n return parseContent(window, cuetext);\n };\n\n var FONT_SIZE_PERCENT = 0.05;\n var FONT_STYLE = \"sans-serif\";\n var CUE_BACKGROUND_PADDING = \"1.5%\";\n\n // Runs the processing model over the cues and regions passed to it.\n // @param overlay A block level element (usually a div) that the computed cues\n // and regions will be placed into.\n WebVTT.processCues = function(window, cues, overlay) {\n if (!window || !cues || !overlay) {\n return null;\n }\n\n // Remove all previous children.\n while (overlay.firstChild) {\n overlay.removeChild(overlay.firstChild);\n }\n\n var paddedOverlay = window.document.createElement(\"div\");\n paddedOverlay.style.position = \"absolute\";\n paddedOverlay.style.left = \"0\";\n paddedOverlay.style.right = \"0\";\n paddedOverlay.style.top = \"0\";\n paddedOverlay.style.bottom = \"0\";\n paddedOverlay.style.margin = CUE_BACKGROUND_PADDING;\n overlay.appendChild(paddedOverlay);\n\n // Determine if we need to compute the display states of the cues. This could\n // be the case if a cue's state has been changed since the last computation or\n // if it has not been computed yet.\n function shouldCompute(cues) {\n for (var i = 0; i < cues.length; i++) {\n if (cues[i].hasBeenReset || !cues[i].displayState) {\n return true;\n }\n }\n return false;\n }\n\n // We don't need to recompute the cues' display states. Just reuse them.\n if (!shouldCompute(cues)) {\n for (var i = 0; i < cues.length; i++) {\n paddedOverlay.appendChild(cues[i].displayState);\n }\n return;\n }\n\n var boxPositions = [],\n containerBox = BoxPosition.getSimpleBoxPosition(paddedOverlay),\n fontSize = Math.round(containerBox.height * FONT_SIZE_PERCENT * 100) / 100;\n var styleOptions = {\n font: fontSize + \"px \" + FONT_STYLE\n };\n\n (function() {\n var styleBox, cue;\n\n for (var i = 0; i < cues.length; i++) {\n cue = cues[i];\n\n // Compute the intial position and styles of the cue div.\n styleBox = new CueStyleBox(window, cue, styleOptions);\n paddedOverlay.appendChild(styleBox.div);\n\n // Move the cue div to it's correct line position.\n moveBoxToLinePosition(window, styleBox, containerBox, boxPositions);\n\n // Remember the computed div so that we don't have to recompute it later\n // if we don't have too.\n cue.displayState = styleBox.div;\n\n boxPositions.push(BoxPosition.getSimpleBoxPosition(styleBox));\n }\n })();\n };\n\n WebVTT.Parser = function(window, vttjs, decoder) {\n if (!decoder) {\n decoder = vttjs;\n vttjs = {};\n }\n if (!vttjs) {\n vttjs = {};\n }\n\n this.window = window;\n this.vttjs = vttjs;\n this.state = \"INITIAL\";\n this.buffer = \"\";\n this.decoder = decoder || new TextDecoder(\"utf8\");\n this.regionList = [];\n };\n\n WebVTT.Parser.prototype = {\n // If the error is a ParsingError then report it to the consumer if\n // possible. If it's not a ParsingError then throw it like normal.\n reportOrThrowError: function(e) {\n if (e instanceof ParsingError) {\n this.onparsingerror && this.onparsingerror(e);\n } else {\n throw e;\n }\n },\n parse: function (data) {\n var self = this;\n\n // If there is no data then we won't decode it, but will just try to parse\n // whatever is in buffer already. This may occur in circumstances, for\n // example when flush() is called.\n if (data) {\n // Try to decode the data that we received.\n self.buffer += self.decoder.decode(data, {stream: true});\n }\n\n function collectNextLine() {\n var buffer = self.buffer;\n var pos = 0;\n while (pos < buffer.length && buffer[pos] !== '\\r' && buffer[pos] !== '\\n') {\n ++pos;\n }\n var line = buffer.substr(0, pos);\n // Advance the buffer early in case we fail below.\n if (buffer[pos] === '\\r') {\n ++pos;\n }\n if (buffer[pos] === '\\n') {\n ++pos;\n }\n self.buffer = buffer.substr(pos);\n return line;\n }\n\n // 3.4 WebVTT region and WebVTT region settings syntax\n function parseRegion(input) {\n var settings = new Settings();\n\n parseOptions(input, function (k, v) {\n switch (k) {\n case \"id\":\n settings.set(k, v);\n break;\n case \"width\":\n settings.percent(k, v);\n break;\n case \"lines\":\n settings.integer(k, v);\n break;\n case \"regionanchor\":\n case \"viewportanchor\":\n var xy = v.split(',');\n if (xy.length !== 2) {\n break;\n }\n // We have to make sure both x and y parse, so use a temporary\n // settings object here.\n var anchor = new Settings();\n anchor.percent(\"x\", xy[0]);\n anchor.percent(\"y\", xy[1]);\n if (!anchor.has(\"x\") || !anchor.has(\"y\")) {\n break;\n }\n settings.set(k + \"X\", anchor.get(\"x\"));\n settings.set(k + \"Y\", anchor.get(\"y\"));\n break;\n case \"scroll\":\n settings.alt(k, v, [\"up\"]);\n break;\n }\n }, /=/, /\\s/);\n\n // Create the region, using default values for any values that were not\n // specified.\n if (settings.has(\"id\")) {\n var region = new (self.vttjs.VTTRegion || self.window.VTTRegion)();\n region.width = settings.get(\"width\", 100);\n region.lines = settings.get(\"lines\", 3);\n region.regionAnchorX = settings.get(\"regionanchorX\", 0);\n region.regionAnchorY = settings.get(\"regionanchorY\", 100);\n region.viewportAnchorX = settings.get(\"viewportanchorX\", 0);\n region.viewportAnchorY = settings.get(\"viewportanchorY\", 100);\n region.scroll = settings.get(\"scroll\", \"\");\n // Register the region.\n self.onregion && self.onregion(region);\n // Remember the VTTRegion for later in case we parse any VTTCues that\n // reference it.\n self.regionList.push({\n id: settings.get(\"id\"),\n region: region\n });\n }\n }\n\n // 3.2 WebVTT metadata header syntax\n function parseHeader(input) {\n parseOptions(input, function (k, v) {\n switch (k) {\n case \"Region\":\n // 3.3 WebVTT region metadata header syntax\n parseRegion(v);\n break;\n }\n }, /:/);\n }\n\n // 5.1 WebVTT file parsing.\n try {\n var line;\n if (self.state === \"INITIAL\") {\n // We can't start parsing until we have the first line.\n if (!/\\r\\n|\\n/.test(self.buffer)) {\n return this;\n }\n\n line = collectNextLine();\n\n var m = line.match(/^WEBVTT([ \\t].*)?$/);\n if (!m || !m[0]) {\n throw new ParsingError(ParsingError.Errors.BadSignature);\n }\n\n self.state = \"HEADER\";\n }\n\n var alreadyCollectedLine = false;\n while (self.buffer) {\n // We can't parse a line until we have the full line.\n if (!/\\r\\n|\\n/.test(self.buffer)) {\n return this;\n }\n\n if (!alreadyCollectedLine) {\n line = collectNextLine();\n } else {\n alreadyCollectedLine = false;\n }\n\n switch (self.state) {\n case \"HEADER\":\n // 13-18 - Allow a header (metadata) under the WEBVTT line.\n if (/:/.test(line)) {\n parseHeader(line);\n } else if (!line) {\n // An empty line terminates the header and starts the body (cues).\n self.state = \"ID\";\n }\n continue;\n case \"NOTE\":\n // Ignore NOTE blocks.\n if (!line) {\n self.state = \"ID\";\n }\n continue;\n case \"ID\":\n // Check for the start of NOTE blocks.\n if (/^NOTE($|[ \\t])/.test(line)) {\n self.state = \"NOTE\";\n break;\n }\n // 19-29 - Allow any number of line terminators, then initialize new cue values.\n if (!line) {\n continue;\n }\n self.cue = new (self.vttjs.VTTCue || self.window.VTTCue)(0, 0, \"\");\n self.state = \"CUE\";\n // 30-39 - Check if self line contains an optional identifier or timing data.\n if (line.indexOf(\"-->\") === -1) {\n self.cue.id = line;\n continue;\n }\n // Process line as start of a cue.\n /*falls through*/\n case \"CUE\":\n // 40 - Collect cue timings and settings.\n try {\n parseCue(line, self.cue, self.regionList);\n } catch (e) {\n self.reportOrThrowError(e);\n // In case of an error ignore rest of the cue.\n self.cue = null;\n self.state = \"BADCUE\";\n continue;\n }\n self.state = \"CUETEXT\";\n continue;\n case \"CUETEXT\":\n var hasSubstring = line.indexOf(\"-->\") !== -1;\n // 34 - If we have an empty line then report the cue.\n // 35 - If we have the special substring '-->' then report the cue,\n // but do not collect the line as we need to process the current\n // one as a new cue.\n if (!line || hasSubstring && (alreadyCollectedLine = true)) {\n // We are done parsing self cue.\n self.oncue && self.oncue(self.cue);\n self.cue = null;\n self.state = \"ID\";\n continue;\n }\n if (self.cue.text) {\n self.cue.text += \"\\n\";\n }\n self.cue.text += line;\n continue;\n case \"BADCUE\": // BADCUE\n // 54-62 - Collect and discard the remaining cue.\n if (!line) {\n self.state = \"ID\";\n }\n continue;\n }\n }\n } catch (e) {\n self.reportOrThrowError(e);\n\n // If we are currently parsing a cue, report what we have.\n if (self.state === \"CUETEXT\" && self.cue && self.oncue) {\n self.oncue(self.cue);\n }\n self.cue = null;\n // Enter BADWEBVTT state if header was not parsed correctly otherwise\n // another exception occurred so enter BADCUE state.\n self.state = self.state === \"INITIAL\" ? \"BADWEBVTT\" : \"BADCUE\";\n }\n return this;\n },\n flush: function () {\n var self = this;\n try {\n // Finish decoding the stream.\n self.buffer += self.decoder.decode();\n // Synthesize the end of the current cue or region.\n if (self.cue || self.state === \"HEADER\") {\n self.buffer += \"\\n\\n\";\n self.parse();\n }\n // If we've flushed, parsed, and we're still on the INITIAL state then\n // that means we don't have enough of the stream to parse the first\n // line.\n if (self.state === \"INITIAL\") {\n throw new ParsingError(ParsingError.Errors.BadSignature);\n }\n } catch(e) {\n self.reportOrThrowError(e);\n }\n self.onflush && self.onflush();\n return this;\n }\n };\n\n global.WebVTT = WebVTT;\n\n}(this, (this.vttjs || {})));\n\n!function(){!function(a){var b=a&&a.videojs;if(b){b.CDN_VERSION=\"5.9.2\";var c=\"https:\"===a.location.protocol?\"https://\":\"http://\";b.options.flash.swf=c+\"vjs.zencdn.net/swf/5.0.1/video-js.swf\"}}(window),function(a,b,c,d,e,f,g){b&&b.HELP_IMPROVE_VIDEOJS!==!1&&(e.random()>.01||(f=b.location,g=b.videojs||{},a.src=\"//www.google-analytics.com/__utm.gif?utmwv=5.4.2&utmac=UA-16505296-3&utmn=1&utmhn=\"+d(f.hostname)+\"&utmsr=\"+b.screen.availWidth+\"x\"+b.screen.availHeight+\"&utmul=\"+(c.language||c.userLanguage||\"\").toLowerCase()+\"&utmr=\"+d(f.href)+\"&utmp=\"+d(f.hostname+f.pathname)+\"&utmcc=__utma%3D1.\"+e.floor(1e10*e.random())+\".1.1.1.1%3B&utme=8(vjsv*cdnv)9(\"+g.VERSION+\"*\"+g.CDN_VERSION+\")\"))}(new Image,window,navigator,encodeURIComponent,Math)}();","var proto = $.fn.selectpicker.Constructor.prototype;\n\n// This will make our dropdown lists look like mdc-lists\nvar modifyLis = function ($el, opts) {\n\t$el.find('li.dropdown-header').each(function (idx, el) {\n\t\tel.classList.add('mdc-list-group__subheader');\n\t\tconst text = el.querySelector('.text');\n\t\tif (!text || !text.innerText) {\n\t\t\tel.classList.add('empty');\n\t\t}\n\t});\n\t$el.find('li[data-original-index]').each(function (idx, el) {\n\t\tvar $el = $(el);\n\t\tvar $text = $el.find('.text:last');\n\t\t$text.addClass('mdc-list-item__text');\n\t\t$el\n\t\t\t.addClass('mdc-list-item')\n\t\t\t.toggleClass('mdc-list-item--selected', $el.attr('selected') != null)\n\t\t\t.attr('title', $text.text());\n\t});\n\n\tconst lastUl = $el.find('ul:last');\n\tconst doneText = opts.doneButtonText || 'cancel';\n\tconst cancelEl = `
  • ${i18n.t(\n\t\t'i18n.' + doneText,\n\t)}
  • `;\n\tif (lastUl.length) {\n\t\tlastUl.append(cancelEl);\n\t} else if ($el.prop('tagName') === 'UL') {\n\t\t$el.append(cancelEl);\n\t}\n};\n\n// Slightly modifed version of a locally scoped function in the plugin\nvar getPlacement = function ($element) {\n\tif (!this.$bsContainer) return;\n\n\tthis.$bsContainer\n\t\t.addClass($element.attr('class').replace(/form-control|fit-width/gi, ''))\n\t\t.toggleClass('dropup', $element.hasClass('dropup'));\n\tvar pos = $element.offset();\n\tvar $container = this.$container;\n\n\tif (!$container.is('body')) {\n\t\tcontainerPos = $container.offset();\n\t\tcontainerPos.top +=\n\t\t\tparseInt($container.css('borderTopWidth')) - $container.scrollTop();\n\t\tcontainerPos.left +=\n\t\t\tparseInt($container.css('borderLeftWidth')) - $container.scrollLeft();\n\t} else {\n\t\tcontainerPos = {top: 0, left: 0};\n\t}\n\n\tactualHeight = $element.hasClass('dropup') ? 0 : $element[0].offsetHeight;\n\n\tthis.$bsContainer.css({\n\t\ttop: pos.top - containerPos.top + actualHeight,\n\t\tleft: pos.left - containerPos.left,\n\t\twidth: $element[0].offsetWidth,\n\t});\n};\n\n/**\n * @override\n * @param {method} init Original init method\n */\nproto.init = _.wrap(proto.init, function (init) {\n\t// Super\n\tinit.apply(this, _.rest(arguments));\n\n\tthis.$button\n\t\t.on(\n\t\t\t'focus',\n\t\t\tfunction (e) {\n\t\t\t\tthis.$button.closest('.mdc-select').addClass('mdc-select--focused');\n\t\t\t}.bind(this),\n\t\t)\n\t\t.on(\n\t\t\t'blur',\n\t\t\tfunction (e) {\n\t\t\t\tthis.$button.closest('.mdc-select').removeClass('mdc-select--focused');\n\t\t\t}.bind(this),\n\t\t);\n\n\tthis.$newElement\n\t\t// On show we want to attach our event\n\t\t.on(\n\t\t\t'shown.bs.dropdown',\n\t\t\tfunction (e) {\n\t\t\t\tthis.$container = $(this.options.container);\n\t\t\t\tthis.bindBodyScroll();\n\t\t\t}.bind(this),\n\t\t)\n\t\t// On hide we want to clean up our event\n\t\t.on(\n\t\t\t'hide.bs.dropdown',\n\t\t\tfunction (e) {\n\t\t\t\tthis.unbindBodyScroll();\n\t\t\t}.bind(this),\n\t\t);\n});\n\n/**\n * @override\n * @param {method} destroy Original destroy method\n */\nproto.destroy = _.wrap(proto.destroy, function (destroy) {\n\t// Cleanup\n\tthis.unbindBodyScroll();\n\tthis.$button.off();\n\n\t// Super\n\tdestroy.apply(this, _.rest(arguments));\n});\n\n/**\n * Add `title` to `
  • `s\n * They do not make overriding anything about the creation of lis easy in the least\n * This is the method that creates the html for our drop down menu\n * @override\n * @param {method} createView Original createView method\n */\nproto.createView = _.wrap(proto.createView, function (createView) {\n\t// Super\n\tvar $drop = createView.apply(this, _.rest(arguments));\n\t// Loop and set title based on option text\n\tmodifyLis($drop, this.options);\n\treturn $drop;\n});\n\n/**\n * Copy and pasted directly from `bootstrap-select.js`\n * Only change I made is that if there is no cached height for the menu\n * element, then we will estimate it based off of the number of `li`s and other\n * stored sizing info. Otherwise, it would just try to query the menu's height\n * and it would always return 0 on the first run-through\n * @override\n * @param {method} setSize Original setSize method\n */\nproto.setSize = _.wrap(proto.setSize, function (setSize) {\n\tthis.findLis();\n\tthis.liHeight();\n\n\tif (this.options.header) this.$menu.css('padding-top', 0);\n\tif (this.options.size === false) return;\n\n\tvar that = this,\n\t\t$menu = this.$menu,\n\t\t$menuInner = this.$menuInner,\n\t\t$window = $(window),\n\t\tselectHeight = this.$newElement[0].offsetHeight,\n\t\tselectWidth = this.$newElement[0].offsetWidth,\n\t\tliHeight = this.sizeInfo['liHeight'],\n\t\theaderHeight = this.sizeInfo['headerHeight'],\n\t\tsearchHeight = this.sizeInfo['searchHeight'],\n\t\tactionsHeight = this.sizeInfo['actionsHeight'],\n\t\tdoneButtonHeight = this.sizeInfo['doneButtonHeight'],\n\t\tdivHeight = this.sizeInfo['dividerHeight'],\n\t\tmenuPadding = this.sizeInfo['menuPadding'],\n\t\tmenuExtras = this.sizeInfo['menuExtras'],\n\t\tnotDisabled = this.options.hideDisabled ? '.disabled' : '',\n\t\tmenuHeight,\n\t\tmenuWidth,\n\t\tgetHeight,\n\t\tgetWidth,\n\t\tselectOffsetTop,\n\t\tselectOffsetBot,\n\t\tselectOffsetLeft,\n\t\tselectOffsetRight,\n\t\tgetPos = function () {\n\t\t\tvar pos = that.$newElement.offset(),\n\t\t\t\t$container = $(that.options.container),\n\t\t\t\tcontainerPos;\n\n\t\t\tif (that.options.container && !$container.is('body')) {\n\t\t\t\tcontainerPos = $container.offset();\n\t\t\t\tcontainerPos.top += parseInt($container.css('borderTopWidth'));\n\t\t\t\tcontainerPos.left += parseInt($container.css('borderLeftWidth'));\n\t\t\t} else {\n\t\t\t\tcontainerPos = {top: 0, left: 0};\n\t\t\t}\n\n\t\t\tvar winPad = that.options.windowPadding;\n\t\t\tselectOffsetTop = pos.top - containerPos.top - $window.scrollTop();\n\t\t\tselectOffsetBot =\n\t\t\t\t$window.height() -\n\t\t\t\tselectOffsetTop -\n\t\t\t\tselectHeight -\n\t\t\t\tcontainerPos.top -\n\t\t\t\twinPad[2];\n\t\t\tselectOffsetLeft = pos.left - containerPos.left - $window.scrollLeft();\n\t\t\tselectOffsetRight =\n\t\t\t\t$window.width() -\n\t\t\t\tselectOffsetLeft -\n\t\t\t\tselectWidth -\n\t\t\t\tcontainerPos.left -\n\t\t\t\twinPad[1];\n\t\t\tselectOffsetTop -= winPad[0];\n\t\t\tselectOffsetLeft -= winPad[3];\n\t\t};\n\n\tgetPos();\n\n\tif (this.options.size === 'auto') {\n\t\tvar getSize = function () {\n\t\t\tvar minHeight,\n\t\t\t\thasClass = function (className, include) {\n\t\t\t\t\treturn function (element) {\n\t\t\t\t\t\tif (include) {\n\t\t\t\t\t\t\treturn element.classList\n\t\t\t\t\t\t\t\t? element.classList.contains(className)\n\t\t\t\t\t\t\t\t: $(element).hasClass(className);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn !(element.classList\n\t\t\t\t\t\t\t\t? element.classList.contains(className)\n\t\t\t\t\t\t\t\t: $(element).hasClass(className));\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\tlis = that.$menuInner[0].getElementsByTagName('li'),\n\t\t\t\tlisVisible = Array.prototype.filter\n\t\t\t\t\t? Array.prototype.filter.call(lis, hasClass('hidden', false))\n\t\t\t\t\t: that.$lis.not('.hidden'),\n\t\t\t\toptGroup = Array.prototype.filter\n\t\t\t\t\t? Array.prototype.filter.call(\n\t\t\t\t\t\t\tlisVisible,\n\t\t\t\t\t\t\thasClass('dropdown-header', true),\n\t\t\t\t\t )\n\t\t\t\t\t: lisVisible.filter('.dropdown-header');\n\n\t\t\tgetPos();\n\t\t\tmenuHeight = selectOffsetBot - menuExtras.vert;\n\t\t\tmenuWidth = selectOffsetRight - menuExtras.horiz;\n\n\t\t\tif (that.options.container) {\n\t\t\t\tif (!$menu.data('height')) {\n\t\t\t\t\t$menu.data('height', $menu.height());\n\n\t\t\t\t\t// If we don't have a cached height, we'll estimate it\n\t\t\t\t\tgetHeight = liHeight * lis.length + menuPadding.vert;\n\t\t\t\t} else {\n\t\t\t\t\t// If we do have a cached height, let's use it!\n\t\t\t\t\tgetHeight = $menu.data('height');\n\t\t\t\t}\n\n\t\t\t\tif (!$menu.data('width')) $menu.data('width', $menu.width());\n\t\t\t\tgetWidth = $menu.data('width');\n\t\t\t} else {\n\t\t\t\tgetHeight = $menu.height();\n\t\t\t\tgetWidth = $menu.width();\n\t\t\t}\n\n\t\t\tif (that.options.dropupAuto) {\n\t\t\t\t// menuHeight is how much room there is for a menu.\n\t\t\t\tthat.$newElement.toggleClass(\n\t\t\t\t\t'dropup',\n\t\t\t\t\tselectOffsetTop > selectOffsetBot &&\n\t\t\t\t\t\tmenuHeight - menuExtras.vert < getHeight,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (that.$newElement.hasClass('dropup')) {\n\t\t\t\tmenuHeight = selectOffsetTop - menuExtras.vert;\n\t\t\t}\n\n\t\t\tif (that.options.dropdownAlignRight === 'auto') {\n\t\t\t\t$menu.toggleClass(\n\t\t\t\t\t'dropdown-menu-right',\n\t\t\t\t\tselectOffsetLeft > selectOffsetRight &&\n\t\t\t\t\t\tmenuWidth - menuExtras.horiz < getWidth - selectWidth,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (lisVisible.length + optGroup.length > 3) {\n\t\t\t\tminHeight = liHeight * 3 + menuExtras.vert - 2;\n\t\t\t} else {\n\t\t\t\tminHeight = 0;\n\t\t\t}\n\n\t\t\t$menu.css({\n\t\t\t\t'max-height': menuHeight + 'px',\n\t\t\t\toverflow: 'hidden',\n\t\t\t\t'min-height':\n\t\t\t\t\tminHeight +\n\t\t\t\t\theaderHeight +\n\t\t\t\t\tsearchHeight +\n\t\t\t\t\tactionsHeight +\n\t\t\t\t\tdoneButtonHeight +\n\t\t\t\t\t'px',\n\t\t\t});\n\t\t\t$menuInner.css({\n\t\t\t\t'max-height':\n\t\t\t\t\tmenuHeight -\n\t\t\t\t\theaderHeight -\n\t\t\t\t\tsearchHeight -\n\t\t\t\t\tactionsHeight -\n\t\t\t\t\tdoneButtonHeight -\n\t\t\t\t\tmenuPadding.vert +\n\t\t\t\t\t'px',\n\t\t\t\t'overflow-y': 'auto',\n\t\t\t\t'min-height': Math.max(minHeight - menuPadding.vert, 0) + 'px',\n\t\t\t});\n\t\t};\n\t\tgetSize();\n\t\tthis.$searchbox\n\t\t\t.off('input.getSize propertychange.getSize')\n\t\t\t.on('input.getSize propertychange.getSize', getSize);\n\t\t$window\n\t\t\t.off('resize.getSize scroll.getSize')\n\t\t\t.on('resize.getSize scroll.getSize', getSize);\n\t} else if (\n\t\tthis.options.size &&\n\t\tthis.options.size != 'auto' &&\n\t\tthis.$lis.not(notDisabled).length > this.options.size\n\t) {\n\t\tvar optIndex = this.$lis\n\t\t\t\t.not('.divider')\n\t\t\t\t.not(notDisabled)\n\t\t\t\t.children()\n\t\t\t\t.slice(0, this.options.size)\n\t\t\t\t.last()\n\t\t\t\t.parent()\n\t\t\t\t.index(),\n\t\t\tdivLength = this.$lis.slice(0, optIndex + 1).filter('.divider').length;\n\t\tmenuHeight =\n\t\t\tliHeight * this.options.size + divLength * divHeight + menuPadding.vert;\n\t\tvar lis = that.$menuInner[0].getElementsByTagName('li');\n\n\t\tif (that.options.container) {\n\t\t\tif (!$menu.data('height')) {\n\t\t\t\t$menu.data('height', $menu.height());\n\n\t\t\t\t// If we don't have a cached height, we'll estimate it\n\t\t\t\tgetHeight = liHeight * lis.length + menuPadding.vert;\n\t\t\t} else {\n\t\t\t\t// If we do have a cached height, let's use it!\n\t\t\t\tgetHeight = $menu.data('height');\n\t\t\t}\n\t\t} else {\n\t\t\tgetHeight = $menu.height();\n\t\t}\n\n\t\tif (that.options.dropupAuto) {\n\t\t\t//noinspection JSUnusedAssignment\n\t\t\tthis.$newElement.toggleClass(\n\t\t\t\t'dropup',\n\t\t\t\tselectOffsetTop > selectOffsetBot &&\n\t\t\t\t\tmenuHeight - menuExtras.vert < getHeight,\n\t\t\t);\n\t\t}\n\t\t$menu.css({\n\t\t\t'max-height':\n\t\t\t\tmenuHeight +\n\t\t\t\theaderHeight +\n\t\t\t\tsearchHeight +\n\t\t\t\tactionsHeight +\n\t\t\t\tdoneButtonHeight +\n\t\t\t\t'px',\n\t\t\toverflow: 'hidden',\n\t\t\t'min-height': '',\n\t\t});\n\t\t$menuInner.css({\n\t\t\t'max-height': menuHeight - menuPadding.vert + 'px',\n\t\t\t'overflow-y': 'auto',\n\t\t\t'min-height': '',\n\t\t});\n\t}\n});\n\n/**\n * Add `title` to `
  • `s\n * They do not make overriding anything about the creation of lis easy in the least\n * This is the method that creates the html for our drop down menu\n * @override\n * @param {method} createView Original reloadLi method\n */\nproto.reloadLi = _.wrap(proto.reloadLi, function (reloadLi) {\n\t// Super\n\treloadLi.apply(this, _.rest(arguments));\n\tmodifyLis(this.$menuInner, this.options);\n});\n\nproto.createDropdown = function () {\n\t// Options\n\t// If we are multiple or showTick option is set, then add the show-tick class\n\tvar showTick = this.multiple || this.options.showTick ? ' show-tick' : '',\n\t\tinputGroup = this.$element.parent().hasClass('input-group')\n\t\t\t? ' input-group-btn'\n\t\t\t: '',\n\t\tautofocus = this.autofocus ? ' autofocus' : '';\n\t// Elements\n\tvar header = this.options.header\n\t\t? '
    ' +\n\t\t this.options.header +\n\t\t '
    '\n\t\t: '';\n\tvar searchbox = this.options.liveSearch\n\t\t? '
    ' +\n\t\t '' +\n\t\t '
    '\n\t\t: '';\n\tvar actionsbox =\n\t\tthis.multiple && this.options.actionsBox\n\t\t\t? '
    ' +\n\t\t\t '
    ' +\n\t\t\t '' +\n\t\t\t '' +\n\t\t\t '
    ' +\n\t\t\t '
    '\n\t\t\t: '';\n\tvar donebutton =\n\t\tthis.multiple && this.options.doneButton\n\t\t\t? '
    ' +\n\t\t\t '
    ' +\n\t\t\t '' +\n\t\t\t '
    ' +\n\t\t\t '
    '\n\t\t\t: '';\n\tvar drop =\n\t\t'
    ' +\n\t\t'' +\n\t\t'
    ' +\n\t\theader +\n\t\tsearchbox +\n\t\tactionsbox +\n\t\t'
      ' +\n\t\t'
    ' +\n\t\tdonebutton +\n\t\t'
    ' +\n\t\t'
    ';\n\n\treturn $(drop);\n};\n\n/**\n * Bind scroll events\n * @method\n */\nproto.bindBodyScroll = function () {\n\twindow.addEventListener(\n\t\t'scroll',\n\t\t(this.onbodyscroll = _.throttle(\n\t\t\tfunction (e) {\n\t\t\t\tvar $dropdownButton = this.$newElement,\n\t\t\t\t\t$dropdownMenu = this.$bsContainer,\n\t\t\t\t\t$scrollTarget = $(e.target);\n\n\t\t\t\t// Ignore if the dropdown button does not live in the scroll target\n\t\t\t\tif (!$scrollTarget.find($dropdownButton).length) return;\n\n\t\t\t\t// Update dropdown menu position\n\t\t\t\tgetPlacement.call(this, $dropdownButton);\n\t\t\t\t// Update size\n\t\t\t\tthis.setSize();\n\n\t\t\t\t// Scrolling container bounds\n\t\t\t\tvar boundY = ($scrollTarget.offset() || {}).top || 0,\n\t\t\t\t\tboundY2 = boundY + $scrollTarget.outerHeight(true);\n\n\t\t\t\t// Dropdown menu bounds\n\t\t\t\tvar y = ($dropdownMenu.offset() || {}).top || 0,\n\t\t\t\t\ty2 = y + $dropdownMenu.outerHeight(true);\n\n\t\t\t\t// Dropdown button bounds\n\t\t\t\t// var y = ( $dropdownButton.offset() || {} ).top || 0,\n\t\t\t\t// \ty2 = y + $dropdownButton.outerHeight( true );\n\n\t\t\t\t// No longer within view, hide the dropdown\n\t\t\t\t(y > boundY2 || y2 < boundY) && this.toggle();\n\t\t\t}.bind(this),\n\t\t\t16,\n\t\t\ttrue,\n\t\t)),\n\t\t{\n\t\t\tcapture: true,\n\t\t\tpassive: true,\n\t\t},\n\t);\n};\n\n/**\n * Unbind scroll events\n * @method\n */\nproto.unbindBodyScroll = function () {\n\twindow.removeEventListener('scroll', this.onbodyscroll, {\n\t\tcapture: true,\n\t\tpassive: true,\n\t});\n};\n","/**\n * NetxDragSelect\n * @extends NetxDrag\n * TODO: define a contianer other than body and a zindex (so we dont go over the header and stuff on autoscroll )\n */\nimport 'javascript-detect-element-resize';\nimport netxDrag from './jquery-netx-drag';\n\n// Constructor\nfunction NetxDragSelect(options, el) {\n\t// Extedn options\n\tthis.options = options;\n\t// Main element\n\tthis.el = $(el);\n\t// Uniqueness\n\tthis.uuid = new Date().getTime();\n\tthis.baseName = 'netx-drag-select';\n\tthis.name = this.baseName + '-' + this.uuid;\n\tthis.ns = '.' + this.name;\n\n\t(this.clickTimer = null), (this.checkingClick = false);\n\tthis.dblClicked = true;\n\n\tif (!this.options.boundContainer) {\n\t\tthis.options.boundContainer = this.el[0];\n\t}\n\n\tthis.$proxyEl = $(this.options.boundContainer);\n\n\tif (!this.options.scrollContainer)\n\t\tthis.options.scrollContainer = this.options.boundContainer;\n\n\t// Target\n\tthis.targetItem = $(this.options.boundContainer);\n\tthis.targetItems = $(this.options.boundContainer);\n\t// Selection\n\tthis.selected = [];\n\t// Ctrl/Cmd key active\n\tthis.controlKey = false;\n\t// Shift key active\n\tthis.shiftKey = false;\n\t// Last element added to selction's index\n\tthis.lastAddedIndex = 0;\n\t// How we keep track of where shortcuts will fire\n\tthis.focued = false;\n\tthis.tempSelection = [];\n\n\tif (this.options.dragBox) {\n\t\t// Select box\n\t\tthis.$itemContainer = $('
    ', {\n\t\t\tid: this.name,\n\t\t\tclass: this.options.ghostBoxClass,\n\t\t})\n\t\t\t.appendTo(this.$proxyEl)\n\t\t\t.hide();\n\t}\n\n\t// Initialize\n\tthis.init();\n}\n\n// Extend\nNetxDragSelect.prototype = $.extend({}, netxDrag.Constructor.prototype, {\n\t/**\n\t * Overrride - but calls super\n\t * @returns {object} this\n\t */\n\tinit: function() {\n\t\t// Super\n\t\tnetxDrag.Constructor.prototype.init.apply(this, arguments);\n\n\t\tif (this.is_touch) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Update items\n\t\tthis._bindItems();\n\t\treturn this;\n\t},\n\t/**\n\t * Override - but calls super\n\t * @param {event} e Event\n\t * @returns {object} this\n\t */\n\t_dragHandler: function(e) {\n\t\t// Nothing to do here if we do not want a ghost box\n\t\tif (!this.$itemContainer || this.el.isHidden()) return this;\n\n\t\tif ($(e.target).hasClass(this.options.items) || $(e.target).closest(this.options.items).length) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Refresh items\n\t\tthis._bindItems();\n\n\t\t// We must have some items and this target must not be one of them\n\t\tif (\n\t\t\t!this.$items.length ||\n\t\t\t_.indexOf(this.$items, $(e.target).closest('[draggable]')[0]) > -1\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (this.options.clear) {\n\t\t\tthis.clear();\n\t\t}\n\n\t\t// Some of our views kill the element - let's cram it down their throat.\n\t\tif (this.options.dragBox && !this.$proxyEl.find('#' + this.name).length) {\n\t\t\t// Select box\n\t\t\tthis.$itemContainer = $('
    ', {\n\t\t\t\tid: this.name,\n\t\t\t\tclass: this.options.ghostBoxClass,\n\t\t\t})\n\t\t\t\t.appendTo(this.$proxyEl)\n\t\t\t\t.hide();\n\t\t}\n\n\t\t// Super\n\t\treturn netxDrag.Constructor.prototype._dragHandler.apply(this, arguments);\n\t},\n\t/**\n\t * Override\n\t * @param {event} e Event\n\t * @returns {object} this\n\t */\n\tonDragStart: function(e) {\n\t\t// Reset temp selection\n\t\tthis.tempSelection = [];\n\t\t// Let the body know\n\t\t$('body').addClass('nx-drag-selecting');\n\t\treturn this;\n\t},\n\t/**\n\t * Override\n\t * @param {event} e Event\n\t * @returns {object} this\n\t */\n\tonDragMove: function(e) {\n\t\tvar bottom,\n\t\t\tdiffLeft,\n\t\t\tdiffTop,\n\t\t\th,\n\t\t\tleft,\n\t\t\tos,\n\t\t\tright,\n\t\t\tscrollDiffX,\n\t\t\tscrollDiffY,\n\t\t\ttop,\n\t\t\tw;\n\t\t// Check scroll difference\n\t\tscrollDiffY = this.scrollContainer.scroll.y - this.con_scroll_y;\n\t\tscrollDiffX = this.scrollContainer.scroll.x - this.con_scroll_x;\n\t\t// Compensate for scrolling that may occur during dragging\n\t\tdiffTop = this.ui.pointer.diff_top + scrollDiffY; // The amount we have moved from screen top\n\t\tdiffLeft = this.ui.pointer.diff_left + scrollDiffX; // The amount we have moved from screen left\n\t\t// Bounds\n\t\ttop = this.ms_init_pos.top; // Where the mouse first made click contact (y)\n\t\tbottom = top + diffTop;\n\t\tleft = this.ms_init_pos.left; // Where the mouse first made click contact (x)\n\t\tright = left + diffLeft;\n\t\t// Calculate dimensions\n\t\tw = right - left;\n\t\th = bottom - top;\n\t\t// We are flipping the box horizontally\n\t\tif (w < 0) {\n\t\t\tleft = left + w;\n\t\t\tw = w * -1;\n\t\t\tright = left + w;\n\t\t}\n\t\t// We are flipping the box vertically\n\t\tif (h < 0) {\n\t\t\ttop = top + h;\n\t\t\th = h * -1;\n\t\t\tbottom = top + h;\n\t\t}\n\t\t// Keep in bounds\n\t\tif (top < this.boundContainer.y) {\n\t\t\ttop = this.boundContainer.y;\n\t\t}\n\t\tif (left < this.boundContainer.x) {\n\t\t\tleft = this.boundContainer.x;\n\t\t}\n\t\tif (bottom > this.boundContainer.y2) {\n\t\t\tbottom = this.boundContainer.y2;\n\t\t}\n\t\tif (right > this.boundContainer.x2) {\n\t\t\tright = this.boundContainer.x2;\n\t\t}\n\t\t// Store\n\t\tthis.itemContainer = {\n\t\t\tw: right - left,\n\t\t\th: bottom - top,\n\t\t\tx: left,\n\t\t\ty: top,\n\t\t\tx2: right,\n\t\t\ty2: bottom,\n\t\t};\n\t\t// Get our relative locations\n\t\tthis.calculateItemBoundOffset();\n\t\t// Update ghost box element\n\t\tthis.$itemContainer.fadeIn('fast').css({\n\t\t\tleft: this.itemContainer.relative.x,\n\t\t\ttop: this.itemContainer.relative.y,\n\t\t\twidth: this.itemContainer.w,\n\t\t\theight: this.itemContainer.h,\n\t\t});\n\t\t// Our x and y is going to be off for collision - correct it\n\t\tos = this.$itemContainer.offset();\n\t\tthis.itemContainer.x = os.left;\n\t\tthis.itemContainer.x2 = os.left + this.itemContainer.w;\n\t\tthis.itemContainer.y = os.top;\n\t\tthis.itemContainer.y2 = os.top + this.itemContainer.h;\n\t\t// Check for collisions\n\t\tthis._overlap(e);\n\t\treturn this;\n\t},\n\t/**\n\t * Override\n\t * @param {event} e Event\n\t * @returns {object} this\n\t */\n\tonDragStop: function(e) {\n\t\t// Get rid of the ghost box\n\t\tif (this.$itemContainer) this.$itemContainer.fadeOut('fast');\n\t\t// Let the body know\n\t\t$('body').removeClass('nx-drag-selecting');\n\t\t// Check if we had drag selected anything - we do this so nothing gets fired until selection is over as to not cause\n\t\t// the browser to come to a crawl if wnough is being triggered.\n\t\tthis.tempSelection.length &&\n\t\t\tthis.addToSelection(this.tempSelection, e, true);\n\t\tthis.tempSelection = [];\n\t\treturn this;\n\t},\n\t/**\n\t * Override\n\t * @returns {object} this\n\t */\n\tdestroy: function() {\n\t\tif (this.lingerTimer) clearInterval(this.lingerTimer);\n\n\t\tthis.$doc && this.$doc.off(this.ns);\n\t\tthis.$win && this.$win.off(this.ns);\n\t\tthis.$proxyEl && this.$proxyEl.off(this.ns);\n\t\tthis.$scrollContainer && this.$scrollContainer.off(this.ns);\n\n\t\t$('body').removeClass('nx-drag-selecting');\n\t\t// Kill all events in our namespace\n\t\tthis.el\n\t\t\t.off(this.ns)\n\t\t\t.children()\n\t\t\t.off(this.ns);\n\t\t//this.el.off( this.ns );\n\t\tthis.el.removeData('netxDragSelect').removeClass(this.name);\n\t\tthis.observer && this.observer.disconnect();\n\n\t\tdelete this.items;\n\t\tdelete this.tempSelection;\n\t\tdelete this.el;\n\t\tdelete this.$proxyEl;\n\n\t\treturn this;\n\t},\n\t/**\n\t * Override\n\t * @param {event} e Event\n\t * @returns {object} Positions and selections\n\t */\n\t_getDragData: function(e) {\n\t\tvar os = this._getOffset(e);\n\t\tos.$elements = this.el.find('.' + this.options.dragSelectedClass);\n\t\treturn os;\n\t},\n});\n\n// Methods\nvar methods = {\n\taddToSelection: function($el, e) {\n\t\t_.each(\n\t\t\t$el,\n\t\t\tfunction(_el) {\n\t\t\t\tthis._addToSelection($(_el), e);\n\t\t\t},\n\t\t\tthis,\n\t\t);\n\t},\n\t/**\n\t * Add to selection\n\t * Add an item to the selection\n\t * @param {object} $el jQuery object to be added\n\t * @param {event} e The event to send\n\t * @returns {object} this\n\t */\n\t_addToSelection: function($el, e) {\n\t\tvar opts = this.options;\n\t\t// Check if this is an allowed selectable item\n\t\t// Returns false if it is to be ignored\n\t\tif (this._ignoreSelect($el)) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Call select callback\n\t\tif (_.isFunction(opts.select)) {\n\t\t\topts.select.call(this.$item, this._getDragEvent('selected', e), this.ui);\n\t\t}\n\t\t// Send event to item\n\t\tvar _e = this._getDragEvent('selected', e, this.ui);\n\t\t// Let the item know\n\t\t$el[0].dispatchEvent(_e);\n\t\treturn this;\n\t},\n\t/**\n\t * Clear\n\t * Clears selection\n\t * @returns {object} this\n\t */\n\tclear: function(e) {\n\t\t// Clear all selected\n\t\t// this.removeFromSelection( this.$items.filter('.' + this.options.dragSelectedClass ) );\n\t\t// Send event to item\n\t\tvar _e = this._getDragEvent('clearselection', e, this.ui);\n\t\t// Let the item know\n\t\tthis.el[0].dispatchEvent(_e);\n\t\treturn this;\n\t},\n\n\t/**\n\t * Bind to item clicks\n\t * Listen to clicks on items\n\t * @returns {object} this\n\t */\n\t_bindItems: function() {\n\t\t// Refresh items (we do this because the items change with bum smacking and rendering and etc)\n\t\tthis.$items = this.el.find(this.options.items);\n\t\treturn this;\n\t},\n\t/**\n\t * Rebind click listeners\n\t * @method\n\t */\n\t_contentsChanged: function() {\n\t\tthis._bindItems();\n\t},\n\t/**\n\t * Ignore select\n\t * Check if element should be ignored for selecting\n\t * @param {object} $el jQuery object\n\t * @returns {bool} Whether or not to ignore\n\t */\n\t_ignoreSelect: function($el) {\n\t\tvar opts = this.options;\n\t\tif ($.inArray($el[0], this.$items) > -1) {\n\t\t\tif (_.isFunction(opts.ignoreSelect)) {\n\t\t\t\treturn opts.ignoreSelect(e);\n\t\t\t}\n\t\t\treturn $el.is(opts.ignoreSelect.join(', '));\n\t\t}\n\t\treturn true;\n\t},\n\t/**\n\t * Overlap\n\t * Check if item is within selection bounds\n\t * @param {event} e The event to send\n\t * @returns {object} this\n\t */\n\t_overlap: function(e) {\n\t\tvar tempSelection = this.tempSelection,\n\t\t\titemContainer = this.itemContainer,\n\t\t\tbLeft,\n\t\t\tbTop,\n\t\t\t$el,\n\t\t\tidx,\n\t\t\toffset;\n\n\t\t// Loop through each item and see if it is within ghostBox/selection\n\t\t_.each(\n\t\t\tthis.$items,\n\t\t\tfunction(el, k) {\n\t\t\t\t$el = $(el);\n\t\t\t\toffset = $el.offset();\n\t\t\t\tbTop = offset.top; // + this.scrollContainer.scroll.y,\n\t\t\t\tbLeft = offset.left; // + this.scrollContainer.scroll.x;\n\t\t\t\t// Check if overlaps\n\t\t\t\tif (\n\t\t\t\t\t!(\n\t\t\t\t\t\titemContainer.y2 < bTop ||\n\t\t\t\t\t\titemContainer.y > bTop + $el.outerHeight() ||\n\t\t\t\t\t\titemContainer.x2 < bLeft ||\n\t\t\t\t\t\titemContainer.x > bLeft + $el.outerWidth()\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tidx = _.indexOf(tempSelection, el);\n\t\t\t\t\tif (idx < 0) {\n\t\t\t\t\t\ttempSelection.push(el);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tidx = _.indexOf(tempSelection, el);\n\t\t\t\t\tif (idx > -1) {\n\t\t\t\t\t\ttempSelection.splice(idx, 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tthis,\n\t\t);\n\t\t// Chain it\n\t\treturn this;\n\t},\n\tremoveFromSelection: function($el, e) {\n\t\t_.each(\n\t\t\t$el,\n\t\t\tfunction(_el) {\n\t\t\t\tthis._removeFromSelection($(_el), e);\n\t\t\t},\n\t\t\tthis,\n\t\t);\n\t\treturn this;\n\t},\n\t/**\n\t * Remove from selection\n\t * Remove an item from the selection\n\t * @param {object} $el jQuery object to be removed\n\t * @param {event} e The event to send\n\t * @returns {object} this\n\t */\n\t_removeFromSelection: function($el, e) {\n\t\t// Call unselect callback\n\t\tif (_.isFunction(this.options.unselect)) {\n\t\t\tthis.options.unselect.call(\n\t\t\t\tthis.$item,\n\t\t\t\tthis._getDragEvent('unselected', e),\n\t\t\t\tthis.ui,\n\t\t\t);\n\t\t}\n\t\t// Send event to item\n\t\tvar _e = this._getDragEvent('unselected', e, this.ui);\n\t\t// Let the item know\n\t\t$el[0].dispatchEvent(_e);\n\t},\n\n\t/**\n\t * Update\n\t * Updates selectable items\n\t * Calls this._bindItems()\n\t * @returns {object} this\n\t */\n\tupdateItems: function() {\n\t\tthis.$items && this.$items.off(this.ns);\n\t\tthis._bindItems();\n\n\t\treturn this;\n\t},\n};\n_.extend(NetxDragSelect.prototype, methods);\n\n// Make plugin accessible via jQuery namesapce\nfunction Plugin(option) {\n\tvar _arguments = arguments,\n\t\t$this,\n\t\tplugin,\n\t\toptions;\n\treturn this.each(function() {\n\t\t$this = $(this);\n\t\tplugin = $this.data('netxDragSelect');\n\t\toptions = _.extend(\n\t\t\t{},\n\t\t\t$.fn.netxDragSelect.defaults,\n\t\t\t_.isObject(option) ? option : {},\n\t\t);\n\t\tif (plugin) {\n\t\t\tif (typeof option === 'object' || !option) {\n\t\t\t\tplugin.init();\n\t\t\t} else if (option.charAt(0) !== '_' && plugin[option]) {\n\t\t\t\tplugin[option](_arguments[1]);\n\t\t\t} else {\n\t\t\t\tplugin.init();\n\t\t\t}\n\t\t\treturn $this;\n\t\t} else if (option != 'destroy') {\n\t\t\tplugin = new NetxDragSelect(options, $this[0]);\n\t\t\t$this.data('netxDragSelect', plugin);\n\t\t\treturn $this;\n\t\t}\n\t});\n}\n\n$.fn.netxDragSelect = Plugin;\n$.fn.netxDragSelect.Constructor = NetxDragSelect;\n\n// Defaults\n$.fn.netxDragSelect.defaults = _.extend({}, netxDrag.defaults, {\n\t// Where to append ghost box (selector) - defaults to this.el\n\tappendTo: false,\n\t// The container the drag box is bound to - defaults to this.el\n\tboundContainer: false,\n\t// Should we clear the selection before making a new one\n\tclear: true,\n\t// Whether or not to append a dragBox ghost element\n\tdragBox: true,\n\t// Item selected class\n\tdragSelectedClass: 'nx-selected',\n\t// Ghost box (selector) class\n\tghostBoxClass: 'netx-drag-select-ghost-box',\n\t// Items to select within element instantiator\n\titems: 'li',\n\t// Elements to ignore (by tagname)\n\tignoreSelect: [],\n\t// How close you need to be to the edge to start a scroll\n\tscrollAreaSize: 10,\n\n\t//select : function( event, ui ) {},\t // On item select\n\t//unselect : function( event, ui ) {}\t // On item deselct\n});\n\nexport default Plugin;\n","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nvar cachedCssTransformPropertyName_;\n/**\n * Returns the name of the correct transform property to use on the current browser.\n */\nfunction getTransformPropertyName(globalObj, forceRefresh) {\n if (forceRefresh === void 0) { forceRefresh = false; }\n if (cachedCssTransformPropertyName_ === undefined || forceRefresh) {\n var el = globalObj.document.createElement('div');\n cachedCssTransformPropertyName_ = 'transform' in el.style ? 'transform' : 'webkitTransform';\n }\n return cachedCssTransformPropertyName_;\n}\nexport { getTransformPropertyName };\n//# sourceMappingURL=util.js.map","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nimport * as tslib_1 from \"tslib\";\nimport { MDCComponent } from '@material/base/component';\nimport { cssClasses, strings } from './constants';\nimport { MDCMenuSurfaceFoundation } from './foundation';\nimport * as util from './util';\nvar MDCMenuSurface = /** @class */ (function (_super) {\n tslib_1.__extends(MDCMenuSurface, _super);\n function MDCMenuSurface() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCMenuSurface.attachTo = function (root) {\n return new MDCMenuSurface(root);\n };\n MDCMenuSurface.prototype.initialSyncWithDOM = function () {\n var _this = this;\n var parentEl = this.root_.parentElement;\n this.anchorElement = parentEl && parentEl.classList.contains(cssClasses.ANCHOR) ? parentEl : null;\n if (this.root_.classList.contains(cssClasses.FIXED)) {\n this.setFixedPosition(true);\n }\n this.handleKeydown_ = function (evt) { return _this.foundation_.handleKeydown(evt); };\n this.handleBodyClick_ = function (evt) { return _this.foundation_.handleBodyClick(evt); };\n this.registerBodyClickListener_ = function () { return document.body.addEventListener('click', _this.handleBodyClick_); };\n this.deregisterBodyClickListener_ = function () { return document.body.removeEventListener('click', _this.handleBodyClick_); };\n this.listen('keydown', this.handleKeydown_);\n this.listen(strings.OPENED_EVENT, this.registerBodyClickListener_);\n this.listen(strings.CLOSED_EVENT, this.deregisterBodyClickListener_);\n };\n MDCMenuSurface.prototype.destroy = function () {\n this.unlisten('keydown', this.handleKeydown_);\n this.unlisten(strings.OPENED_EVENT, this.registerBodyClickListener_);\n this.unlisten(strings.CLOSED_EVENT, this.deregisterBodyClickListener_);\n _super.prototype.destroy.call(this);\n };\n MDCMenuSurface.prototype.isOpen = function () {\n return this.foundation_.isOpen();\n };\n MDCMenuSurface.prototype.open = function () {\n this.foundation_.open();\n };\n MDCMenuSurface.prototype.close = function (skipRestoreFocus) {\n if (skipRestoreFocus === void 0) { skipRestoreFocus = false; }\n this.foundation_.close(skipRestoreFocus);\n };\n Object.defineProperty(MDCMenuSurface.prototype, \"quickOpen\", {\n set: function (quickOpen) {\n this.foundation_.setQuickOpen(quickOpen);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Removes the menu-surface from it's current location and appends it to the\n * body to overcome any overflow:hidden issues.\n */\n MDCMenuSurface.prototype.hoistMenuToBody = function () {\n document.body.appendChild(this.root_);\n this.setIsHoisted(true);\n };\n /** Sets the foundation to use page offsets for an positioning when the menu is hoisted to the body. */\n MDCMenuSurface.prototype.setIsHoisted = function (isHoisted) {\n this.foundation_.setIsHoisted(isHoisted);\n };\n /** Sets the element that the menu-surface is anchored to. */\n MDCMenuSurface.prototype.setMenuSurfaceAnchorElement = function (element) {\n this.anchorElement = element;\n };\n /** Sets the menu-surface to position: fixed. */\n MDCMenuSurface.prototype.setFixedPosition = function (isFixed) {\n if (isFixed) {\n this.root_.classList.add(cssClasses.FIXED);\n }\n else {\n this.root_.classList.remove(cssClasses.FIXED);\n }\n this.foundation_.setFixedPosition(isFixed);\n };\n /** Sets the absolute x/y position to position based on. Requires the menu to be hoisted. */\n MDCMenuSurface.prototype.setAbsolutePosition = function (x, y) {\n this.foundation_.setAbsolutePosition(x, y);\n this.setIsHoisted(true);\n };\n /**\n * @param corner Default anchor corner alignment of top-left surface corner.\n */\n MDCMenuSurface.prototype.setAnchorCorner = function (corner) {\n this.foundation_.setAnchorCorner(corner);\n };\n MDCMenuSurface.prototype.setAnchorMargin = function (margin) {\n this.foundation_.setAnchorMargin(margin);\n };\n MDCMenuSurface.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n var adapter = {\n addClass: function (className) { return _this.root_.classList.add(className); },\n removeClass: function (className) { return _this.root_.classList.remove(className); },\n hasClass: function (className) { return _this.root_.classList.contains(className); },\n hasAnchor: function () { return !!_this.anchorElement; },\n notifyClose: function () { return _this.emit(MDCMenuSurfaceFoundation.strings.CLOSED_EVENT, {}); },\n notifyOpen: function () { return _this.emit(MDCMenuSurfaceFoundation.strings.OPENED_EVENT, {}); },\n isElementInContainer: function (el) { return _this.root_.contains(el); },\n isRtl: function () { return getComputedStyle(_this.root_).getPropertyValue('direction') === 'rtl'; },\n setTransformOrigin: function (origin) {\n var propertyName = util.getTransformPropertyName(window) + \"-origin\";\n _this.root_.style.setProperty(propertyName, origin);\n },\n isFocused: function () { return document.activeElement === _this.root_; },\n saveFocus: function () {\n _this.previousFocus_ = document.activeElement;\n },\n restoreFocus: function () {\n if (_this.root_.contains(document.activeElement)) {\n if (_this.previousFocus_ && _this.previousFocus_.focus) {\n _this.previousFocus_.focus();\n }\n }\n },\n getInnerDimensions: function () {\n return { width: _this.root_.offsetWidth, height: _this.root_.offsetHeight };\n },\n getAnchorDimensions: function () { return _this.anchorElement ? _this.anchorElement.getBoundingClientRect() : null; },\n getWindowDimensions: function () {\n return { width: window.innerWidth, height: window.innerHeight };\n },\n getBodyDimensions: function () {\n return { width: document.body.clientWidth, height: document.body.clientHeight };\n },\n getWindowScroll: function () {\n return { x: window.pageXOffset, y: window.pageYOffset };\n },\n setPosition: function (position) {\n _this.root_.style.left = 'left' in position ? position.left + \"px\" : '';\n _this.root_.style.right = 'right' in position ? position.right + \"px\" : '';\n _this.root_.style.top = 'top' in position ? position.top + \"px\" : '';\n _this.root_.style.bottom = 'bottom' in position ? position.bottom + \"px\" : '';\n },\n setMaxHeight: function (height) {\n _this.root_.style.maxHeight = height;\n },\n };\n // tslint:enable:object-literal-sort-keys\n return new MDCMenuSurfaceFoundation(adapter);\n };\n return MDCMenuSurface;\n}(MDCComponent));\nexport { MDCMenuSurface };\n//# sourceMappingURL=component.js.map","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nvar cssClasses = {\n MENU_SELECTED_LIST_ITEM: 'mdc-menu-item--selected',\n MENU_SELECTION_GROUP: 'mdc-menu__selection-group',\n ROOT: 'mdc-menu',\n};\nvar strings = {\n ARIA_CHECKED_ATTR: 'aria-checked',\n CHECKBOX_SELECTOR: 'input[type=\"checkbox\"]',\n LIST_SELECTOR: '.mdc-list',\n SELECTED_EVENT: 'MDCMenu:selected',\n};\nvar numbers = {\n FOCUS_ROOT_INDEX: -1,\n};\nvar DefaultFocusState;\n(function (DefaultFocusState) {\n DefaultFocusState[DefaultFocusState[\"NONE\"] = 0] = \"NONE\";\n DefaultFocusState[DefaultFocusState[\"LIST_ROOT\"] = 1] = \"LIST_ROOT\";\n DefaultFocusState[DefaultFocusState[\"FIRST_ITEM\"] = 2] = \"FIRST_ITEM\";\n DefaultFocusState[DefaultFocusState[\"LAST_ITEM\"] = 3] = \"LAST_ITEM\";\n})(DefaultFocusState || (DefaultFocusState = {}));\nexport { cssClasses, strings, numbers, DefaultFocusState };\n//# sourceMappingURL=constants.js.map","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nimport * as tslib_1 from \"tslib\";\nimport { MDCFoundation } from '@material/base/foundation';\nimport { MDCMenuSurfaceFoundation } from '@material/menu-surface/foundation';\nimport { cssClasses, DefaultFocusState, numbers, strings } from './constants';\nvar MDCMenuFoundation = /** @class */ (function (_super) {\n tslib_1.__extends(MDCMenuFoundation, _super);\n function MDCMenuFoundation(adapter) {\n var _this = _super.call(this, tslib_1.__assign({}, MDCMenuFoundation.defaultAdapter, adapter)) || this;\n _this.closeAnimationEndTimerId_ = 0;\n _this.defaultFocusState_ = DefaultFocusState.LIST_ROOT;\n return _this;\n }\n Object.defineProperty(MDCMenuFoundation, \"cssClasses\", {\n get: function () {\n return cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCMenuFoundation, \"strings\", {\n get: function () {\n return strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCMenuFoundation, \"numbers\", {\n get: function () {\n return numbers;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCMenuFoundation, \"defaultAdapter\", {\n /**\n * @see {@link MDCMenuAdapter} for typing information on parameters and return types.\n */\n get: function () {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClassToElementAtIndex: function () { return undefined; },\n removeClassFromElementAtIndex: function () { return undefined; },\n addAttributeToElementAtIndex: function () { return undefined; },\n removeAttributeFromElementAtIndex: function () { return undefined; },\n elementContainsClass: function () { return false; },\n closeSurface: function () { return undefined; },\n getElementIndex: function () { return -1; },\n notifySelected: function () { return undefined; },\n getMenuItemCount: function () { return 0; },\n focusItemAtIndex: function () { return undefined; },\n focusListRoot: function () { return undefined; },\n getSelectedSiblingOfItemAtIndex: function () { return -1; },\n isSelectableItemAtIndex: function () { return false; },\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: true,\n configurable: true\n });\n MDCMenuFoundation.prototype.destroy = function () {\n if (this.closeAnimationEndTimerId_) {\n clearTimeout(this.closeAnimationEndTimerId_);\n }\n this.adapter_.closeSurface();\n };\n MDCMenuFoundation.prototype.handleKeydown = function (evt) {\n var key = evt.key, keyCode = evt.keyCode;\n var isTab = key === 'Tab' || keyCode === 9;\n if (isTab) {\n this.adapter_.closeSurface(/** skipRestoreFocus */ true);\n }\n };\n MDCMenuFoundation.prototype.handleItemAction = function (listItem) {\n var _this = this;\n var index = this.adapter_.getElementIndex(listItem);\n if (index < 0) {\n return;\n }\n this.adapter_.notifySelected({ index: index });\n this.adapter_.closeSurface();\n // Wait for the menu to close before adding/removing classes that affect styles.\n this.closeAnimationEndTimerId_ = setTimeout(function () {\n if (_this.adapter_.isSelectableItemAtIndex(index)) {\n _this.setSelectedIndex(index);\n }\n }, MDCMenuSurfaceFoundation.numbers.TRANSITION_CLOSE_DURATION);\n };\n MDCMenuFoundation.prototype.handleMenuSurfaceOpened = function () {\n switch (this.defaultFocusState_) {\n case DefaultFocusState.FIRST_ITEM:\n this.adapter_.focusItemAtIndex(0);\n break;\n case DefaultFocusState.LAST_ITEM:\n this.adapter_.focusItemAtIndex(this.adapter_.getMenuItemCount() - 1);\n break;\n case DefaultFocusState.NONE:\n // Do nothing.\n break;\n default:\n this.adapter_.focusListRoot();\n break;\n }\n };\n /**\n * Sets default focus state where the menu should focus every time when menu\n * is opened. Focuses the list root (`DefaultFocusState.LIST_ROOT`) element by\n * default.\n */\n MDCMenuFoundation.prototype.setDefaultFocusState = function (focusState) {\n this.defaultFocusState_ = focusState;\n };\n /**\n * Selects the list item at `index` within the menu.\n * @param index Index of list item within the menu.\n */\n MDCMenuFoundation.prototype.setSelectedIndex = function (index) {\n this.validatedIndex_(index);\n if (!this.adapter_.isSelectableItemAtIndex(index)) {\n throw new Error('MDCMenuFoundation: No selection group at specified index.');\n }\n var prevSelectedIndex = this.adapter_.getSelectedSiblingOfItemAtIndex(index);\n if (prevSelectedIndex >= 0) {\n this.adapter_.removeAttributeFromElementAtIndex(prevSelectedIndex, strings.ARIA_CHECKED_ATTR);\n this.adapter_.removeClassFromElementAtIndex(prevSelectedIndex, cssClasses.MENU_SELECTED_LIST_ITEM);\n }\n this.adapter_.addClassToElementAtIndex(index, cssClasses.MENU_SELECTED_LIST_ITEM);\n this.adapter_.addAttributeToElementAtIndex(index, strings.ARIA_CHECKED_ATTR, 'true');\n };\n MDCMenuFoundation.prototype.validatedIndex_ = function (index) {\n var menuSize = this.adapter_.getMenuItemCount();\n var isIndexInRange = index >= 0 && index < menuSize;\n if (!isIndexInRange) {\n throw new Error('MDCMenuFoundation: No list item at specified index.');\n }\n };\n return MDCMenuFoundation;\n}(MDCFoundation));\nexport { MDCMenuFoundation };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCMenuFoundation;\n//# sourceMappingURL=foundation.js.map","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nimport * as tslib_1 from \"tslib\";\nimport { MDCComponent } from '@material/base/component';\nimport { closest } from '@material/dom/ponyfill';\nimport { MDCList } from '@material/list/component';\nimport { MDCListFoundation } from '@material/list/foundation';\nimport { MDCMenuSurface } from '@material/menu-surface/component';\nimport { MDCMenuSurfaceFoundation } from '@material/menu-surface/foundation';\nimport { cssClasses, strings } from './constants';\nimport { MDCMenuFoundation } from './foundation';\nvar MDCMenu = /** @class */ (function (_super) {\n tslib_1.__extends(MDCMenu, _super);\n function MDCMenu() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCMenu.attachTo = function (root) {\n return new MDCMenu(root);\n };\n MDCMenu.prototype.initialize = function (menuSurfaceFactory, listFactory) {\n if (menuSurfaceFactory === void 0) { menuSurfaceFactory = function (el) { return new MDCMenuSurface(el); }; }\n if (listFactory === void 0) { listFactory = function (el) { return new MDCList(el); }; }\n this.menuSurfaceFactory_ = menuSurfaceFactory;\n this.listFactory_ = listFactory;\n };\n MDCMenu.prototype.initialSyncWithDOM = function () {\n var _this = this;\n this.menuSurface_ = this.menuSurfaceFactory_(this.root_);\n var list = this.root_.querySelector(strings.LIST_SELECTOR);\n if (list) {\n this.list_ = this.listFactory_(list);\n this.list_.wrapFocus = true;\n }\n else {\n this.list_ = null;\n }\n this.handleKeydown_ = function (evt) { return _this.foundation_.handleKeydown(evt); };\n this.handleItemAction_ = function (evt) { return _this.foundation_.handleItemAction(_this.items[evt.detail.index]); };\n this.handleMenuSurfaceOpened_ = function () { return _this.foundation_.handleMenuSurfaceOpened(); };\n this.menuSurface_.listen(MDCMenuSurfaceFoundation.strings.OPENED_EVENT, this.handleMenuSurfaceOpened_);\n this.listen('keydown', this.handleKeydown_);\n this.listen(MDCListFoundation.strings.ACTION_EVENT, this.handleItemAction_);\n };\n MDCMenu.prototype.destroy = function () {\n if (this.list_) {\n this.list_.destroy();\n }\n this.menuSurface_.destroy();\n this.menuSurface_.unlisten(MDCMenuSurfaceFoundation.strings.OPENED_EVENT, this.handleMenuSurfaceOpened_);\n this.unlisten('keydown', this.handleKeydown_);\n this.unlisten(MDCListFoundation.strings.ACTION_EVENT, this.handleItemAction_);\n _super.prototype.destroy.call(this);\n };\n Object.defineProperty(MDCMenu.prototype, \"open\", {\n get: function () {\n return this.menuSurface_.isOpen();\n },\n set: function (value) {\n if (value) {\n this.menuSurface_.open();\n }\n else {\n this.menuSurface_.close();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCMenu.prototype, \"wrapFocus\", {\n get: function () {\n return this.list_ ? this.list_.wrapFocus : false;\n },\n set: function (value) {\n if (this.list_) {\n this.list_.wrapFocus = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCMenu.prototype, \"items\", {\n /**\n * Return the items within the menu. Note that this only contains the set of elements within\n * the items container that are proper list items, and not supplemental / presentational DOM\n * elements.\n */\n get: function () {\n return this.list_ ? this.list_.listElements : [];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCMenu.prototype, \"quickOpen\", {\n set: function (quickOpen) {\n this.menuSurface_.quickOpen = quickOpen;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Sets default focus state where the menu should focus every time when menu\n * is opened. Focuses the list root (`DefaultFocusState.LIST_ROOT`) element by\n * default.\n * @param focusState Default focus state.\n */\n MDCMenu.prototype.setDefaultFocusState = function (focusState) {\n this.foundation_.setDefaultFocusState(focusState);\n };\n /**\n * @param corner Default anchor corner alignment of top-left menu corner.\n */\n MDCMenu.prototype.setAnchorCorner = function (corner) {\n this.menuSurface_.setAnchorCorner(corner);\n };\n MDCMenu.prototype.setAnchorMargin = function (margin) {\n this.menuSurface_.setAnchorMargin(margin);\n };\n /**\n * Sets the list item as the selected row at the specified index.\n * @param index Index of list item within menu.\n */\n MDCMenu.prototype.setSelectedIndex = function (index) {\n this.foundation_.setSelectedIndex(index);\n };\n /**\n * @return The item within the menu at the index specified.\n */\n MDCMenu.prototype.getOptionByIndex = function (index) {\n var items = this.items;\n if (index < items.length) {\n return this.items[index];\n }\n else {\n return null;\n }\n };\n MDCMenu.prototype.setFixedPosition = function (isFixed) {\n this.menuSurface_.setFixedPosition(isFixed);\n };\n MDCMenu.prototype.hoistMenuToBody = function () {\n this.menuSurface_.hoistMenuToBody();\n };\n MDCMenu.prototype.setIsHoisted = function (isHoisted) {\n this.menuSurface_.setIsHoisted(isHoisted);\n };\n MDCMenu.prototype.setAbsolutePosition = function (x, y) {\n this.menuSurface_.setAbsolutePosition(x, y);\n };\n /**\n * Sets the element that the menu-surface is anchored to.\n */\n MDCMenu.prototype.setAnchorElement = function (element) {\n this.menuSurface_.anchorElement = element;\n };\n MDCMenu.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n var adapter = {\n addClassToElementAtIndex: function (index, className) {\n var list = _this.items;\n list[index].classList.add(className);\n },\n removeClassFromElementAtIndex: function (index, className) {\n var list = _this.items;\n list[index].classList.remove(className);\n },\n addAttributeToElementAtIndex: function (index, attr, value) {\n var list = _this.items;\n list[index].setAttribute(attr, value);\n },\n removeAttributeFromElementAtIndex: function (index, attr) {\n var list = _this.items;\n list[index].removeAttribute(attr);\n },\n elementContainsClass: function (element, className) { return element.classList.contains(className); },\n closeSurface: function (skipRestoreFocus) { return _this.menuSurface_.close(skipRestoreFocus); },\n getElementIndex: function (element) { return _this.items.indexOf(element); },\n notifySelected: function (evtData) { return _this.emit(strings.SELECTED_EVENT, {\n index: evtData.index,\n item: _this.items[evtData.index],\n }); },\n getMenuItemCount: function () { return _this.items.length; },\n focusItemAtIndex: function (index) { return _this.items[index].focus(); },\n focusListRoot: function () { return _this.root_.querySelector(strings.LIST_SELECTOR).focus(); },\n isSelectableItemAtIndex: function (index) { return !!closest(_this.items[index], \".\" + cssClasses.MENU_SELECTION_GROUP); },\n getSelectedSiblingOfItemAtIndex: function (index) {\n var selectionGroupEl = closest(_this.items[index], \".\" + cssClasses.MENU_SELECTION_GROUP);\n var selectedItemEl = selectionGroupEl.querySelector(\".\" + cssClasses.MENU_SELECTED_LIST_ITEM);\n return selectedItemEl ? _this.items.indexOf(selectedItemEl) : -1;\n },\n };\n // tslint:enable:object-literal-sort-keys\n return new MDCMenuFoundation(adapter);\n };\n return MDCMenu;\n}(MDCComponent));\nexport { MDCMenu };\n//# sourceMappingURL=component.js.map","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n/**\n * @fileoverview A \"ponyfill\" is a polyfill that doesn't modify the global prototype chain.\n * This makes ponyfills safer than traditional polyfills, especially for libraries like MDC.\n */\nexport function closest(element, selector) {\n if (element.closest) {\n return element.closest(selector);\n }\n var el = element;\n while (el) {\n if (matches(el, selector)) {\n return el;\n }\n el = el.parentElement;\n }\n return null;\n}\nexport function matches(element, selector) {\n var nativeMatches = element.matches\n || element.webkitMatchesSelector\n || element.msMatchesSelector;\n return nativeMatches.call(element, selector);\n}\n//# sourceMappingURL=ponyfill.js.map","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n/**\n * Stores result from applyPassive to avoid redundant processing to detect\n * passive event listener support.\n */\nvar supportsPassive_;\n/**\n * Determine whether the current browser supports passive event listeners, and\n * if so, use them.\n */\nexport function applyPassive(globalObj, forceRefresh) {\n if (globalObj === void 0) { globalObj = window; }\n if (forceRefresh === void 0) { forceRefresh = false; }\n if (supportsPassive_ === undefined || forceRefresh) {\n var isSupported_1 = false;\n try {\n globalObj.document.addEventListener('test', function () { return undefined; }, {\n get passive() {\n isSupported_1 = true;\n return isSupported_1;\n },\n });\n }\n catch (e) {\n } // tslint:disable-line:no-empty cannot throw error due to tests. tslint also disables console.log.\n supportsPassive_ = isSupported_1;\n }\n return supportsPassive_ ? { passive: true } : false;\n}\n//# sourceMappingURL=events.js.map","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nexport var cssClasses = {\n // Ripple is a special case where the \"root\" component is really a \"mixin\" of sorts,\n // given that it's an 'upgrade' to an existing component. That being said it is the root\n // CSS class that all other CSS classes derive from.\n BG_FOCUSED: 'mdc-ripple-upgraded--background-focused',\n FG_ACTIVATION: 'mdc-ripple-upgraded--foreground-activation',\n FG_DEACTIVATION: 'mdc-ripple-upgraded--foreground-deactivation',\n ROOT: 'mdc-ripple-upgraded',\n UNBOUNDED: 'mdc-ripple-upgraded--unbounded',\n};\nexport var strings = {\n VAR_FG_SCALE: '--mdc-ripple-fg-scale',\n VAR_FG_SIZE: '--mdc-ripple-fg-size',\n VAR_FG_TRANSLATE_END: '--mdc-ripple-fg-translate-end',\n VAR_FG_TRANSLATE_START: '--mdc-ripple-fg-translate-start',\n VAR_LEFT: '--mdc-ripple-left',\n VAR_TOP: '--mdc-ripple-top',\n};\nexport var numbers = {\n DEACTIVATION_TIMEOUT_MS: 225,\n FG_DEACTIVATION_MS: 150,\n INITIAL_ORIGIN_SCALE: 0.6,\n PADDING: 10,\n TAP_DELAY_MS: 300,\n};\n//# sourceMappingURL=constants.js.map","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nimport * as tslib_1 from \"tslib\";\nimport { MDCFoundation } from '@material/base/foundation';\nimport { cssClasses, numbers, strings } from './constants';\nimport { getNormalizedEventCoords } from './util';\n// Activation events registered on the root element of each instance for activation\nvar ACTIVATION_EVENT_TYPES = [\n 'touchstart', 'pointerdown', 'mousedown', 'keydown',\n];\n// Deactivation events registered on documentElement when a pointer-related down event occurs\nvar POINTER_DEACTIVATION_EVENT_TYPES = [\n 'touchend', 'pointerup', 'mouseup', 'contextmenu',\n];\n// simultaneous nested activations\nvar activatedTargets = [];\nvar MDCRippleFoundation = /** @class */ (function (_super) {\n tslib_1.__extends(MDCRippleFoundation, _super);\n function MDCRippleFoundation(adapter) {\n var _this = _super.call(this, tslib_1.__assign({}, MDCRippleFoundation.defaultAdapter, adapter)) || this;\n _this.activationAnimationHasEnded_ = false;\n _this.activationTimer_ = 0;\n _this.fgDeactivationRemovalTimer_ = 0;\n _this.fgScale_ = '0';\n _this.frame_ = { width: 0, height: 0 };\n _this.initialSize_ = 0;\n _this.layoutFrame_ = 0;\n _this.maxRadius_ = 0;\n _this.unboundedCoords_ = { left: 0, top: 0 };\n _this.activationState_ = _this.defaultActivationState_();\n _this.activationTimerCallback_ = function () {\n _this.activationAnimationHasEnded_ = true;\n _this.runDeactivationUXLogicIfReady_();\n };\n _this.activateHandler_ = function (e) { return _this.activate_(e); };\n _this.deactivateHandler_ = function () { return _this.deactivate_(); };\n _this.focusHandler_ = function () { return _this.handleFocus(); };\n _this.blurHandler_ = function () { return _this.handleBlur(); };\n _this.resizeHandler_ = function () { return _this.layout(); };\n return _this;\n }\n Object.defineProperty(MDCRippleFoundation, \"cssClasses\", {\n get: function () {\n return cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCRippleFoundation, \"strings\", {\n get: function () {\n return strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCRippleFoundation, \"numbers\", {\n get: function () {\n return numbers;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCRippleFoundation, \"defaultAdapter\", {\n get: function () {\n return {\n addClass: function () { return undefined; },\n browserSupportsCssVars: function () { return true; },\n computeBoundingRect: function () { return ({ top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 }); },\n containsEventTarget: function () { return true; },\n deregisterDocumentInteractionHandler: function () { return undefined; },\n deregisterInteractionHandler: function () { return undefined; },\n deregisterResizeHandler: function () { return undefined; },\n getWindowPageOffset: function () { return ({ x: 0, y: 0 }); },\n isSurfaceActive: function () { return true; },\n isSurfaceDisabled: function () { return true; },\n isUnbounded: function () { return true; },\n registerDocumentInteractionHandler: function () { return undefined; },\n registerInteractionHandler: function () { return undefined; },\n registerResizeHandler: function () { return undefined; },\n removeClass: function () { return undefined; },\n updateCssVariable: function () { return undefined; },\n };\n },\n enumerable: true,\n configurable: true\n });\n MDCRippleFoundation.prototype.init = function () {\n var _this = this;\n var supportsPressRipple = this.supportsPressRipple_();\n this.registerRootHandlers_(supportsPressRipple);\n if (supportsPressRipple) {\n var _a = MDCRippleFoundation.cssClasses, ROOT_1 = _a.ROOT, UNBOUNDED_1 = _a.UNBOUNDED;\n requestAnimationFrame(function () {\n _this.adapter_.addClass(ROOT_1);\n if (_this.adapter_.isUnbounded()) {\n _this.adapter_.addClass(UNBOUNDED_1);\n // Unbounded ripples need layout logic applied immediately to set coordinates for both shade and ripple\n _this.layoutInternal_();\n }\n });\n }\n };\n MDCRippleFoundation.prototype.destroy = function () {\n var _this = this;\n if (this.supportsPressRipple_()) {\n if (this.activationTimer_) {\n clearTimeout(this.activationTimer_);\n this.activationTimer_ = 0;\n this.adapter_.removeClass(MDCRippleFoundation.cssClasses.FG_ACTIVATION);\n }\n if (this.fgDeactivationRemovalTimer_) {\n clearTimeout(this.fgDeactivationRemovalTimer_);\n this.fgDeactivationRemovalTimer_ = 0;\n this.adapter_.removeClass(MDCRippleFoundation.cssClasses.FG_DEACTIVATION);\n }\n var _a = MDCRippleFoundation.cssClasses, ROOT_2 = _a.ROOT, UNBOUNDED_2 = _a.UNBOUNDED;\n requestAnimationFrame(function () {\n _this.adapter_.removeClass(ROOT_2);\n _this.adapter_.removeClass(UNBOUNDED_2);\n _this.removeCssVars_();\n });\n }\n this.deregisterRootHandlers_();\n this.deregisterDeactivationHandlers_();\n };\n /**\n * @param evt Optional event containing position information.\n */\n MDCRippleFoundation.prototype.activate = function (evt) {\n this.activate_(evt);\n };\n MDCRippleFoundation.prototype.deactivate = function () {\n this.deactivate_();\n };\n MDCRippleFoundation.prototype.layout = function () {\n var _this = this;\n if (this.layoutFrame_) {\n cancelAnimationFrame(this.layoutFrame_);\n }\n this.layoutFrame_ = requestAnimationFrame(function () {\n _this.layoutInternal_();\n _this.layoutFrame_ = 0;\n });\n };\n MDCRippleFoundation.prototype.setUnbounded = function (unbounded) {\n var UNBOUNDED = MDCRippleFoundation.cssClasses.UNBOUNDED;\n if (unbounded) {\n this.adapter_.addClass(UNBOUNDED);\n }\n else {\n this.adapter_.removeClass(UNBOUNDED);\n }\n };\n MDCRippleFoundation.prototype.handleFocus = function () {\n var _this = this;\n requestAnimationFrame(function () {\n return _this.adapter_.addClass(MDCRippleFoundation.cssClasses.BG_FOCUSED);\n });\n };\n MDCRippleFoundation.prototype.handleBlur = function () {\n var _this = this;\n requestAnimationFrame(function () {\n return _this.adapter_.removeClass(MDCRippleFoundation.cssClasses.BG_FOCUSED);\n });\n };\n /**\n * We compute this property so that we are not querying information about the client\n * until the point in time where the foundation requests it. This prevents scenarios where\n * client-side feature-detection may happen too early, such as when components are rendered on the server\n * and then initialized at mount time on the client.\n */\n MDCRippleFoundation.prototype.supportsPressRipple_ = function () {\n return this.adapter_.browserSupportsCssVars();\n };\n MDCRippleFoundation.prototype.defaultActivationState_ = function () {\n return {\n activationEvent: undefined,\n hasDeactivationUXRun: false,\n isActivated: false,\n isProgrammatic: false,\n wasActivatedByPointer: false,\n wasElementMadeActive: false,\n };\n };\n /**\n * supportsPressRipple Passed from init to save a redundant function call\n */\n MDCRippleFoundation.prototype.registerRootHandlers_ = function (supportsPressRipple) {\n var _this = this;\n if (supportsPressRipple) {\n ACTIVATION_EVENT_TYPES.forEach(function (evtType) {\n _this.adapter_.registerInteractionHandler(evtType, _this.activateHandler_);\n });\n if (this.adapter_.isUnbounded()) {\n this.adapter_.registerResizeHandler(this.resizeHandler_);\n }\n }\n this.adapter_.registerInteractionHandler('focus', this.focusHandler_);\n this.adapter_.registerInteractionHandler('blur', this.blurHandler_);\n };\n MDCRippleFoundation.prototype.registerDeactivationHandlers_ = function (evt) {\n var _this = this;\n if (evt.type === 'keydown') {\n this.adapter_.registerInteractionHandler('keyup', this.deactivateHandler_);\n }\n else {\n POINTER_DEACTIVATION_EVENT_TYPES.forEach(function (evtType) {\n _this.adapter_.registerDocumentInteractionHandler(evtType, _this.deactivateHandler_);\n });\n }\n };\n MDCRippleFoundation.prototype.deregisterRootHandlers_ = function () {\n var _this = this;\n ACTIVATION_EVENT_TYPES.forEach(function (evtType) {\n _this.adapter_.deregisterInteractionHandler(evtType, _this.activateHandler_);\n });\n this.adapter_.deregisterInteractionHandler('focus', this.focusHandler_);\n this.adapter_.deregisterInteractionHandler('blur', this.blurHandler_);\n if (this.adapter_.isUnbounded()) {\n this.adapter_.deregisterResizeHandler(this.resizeHandler_);\n }\n };\n MDCRippleFoundation.prototype.deregisterDeactivationHandlers_ = function () {\n var _this = this;\n this.adapter_.deregisterInteractionHandler('keyup', this.deactivateHandler_);\n POINTER_DEACTIVATION_EVENT_TYPES.forEach(function (evtType) {\n _this.adapter_.deregisterDocumentInteractionHandler(evtType, _this.deactivateHandler_);\n });\n };\n MDCRippleFoundation.prototype.removeCssVars_ = function () {\n var _this = this;\n var rippleStrings = MDCRippleFoundation.strings;\n var keys = Object.keys(rippleStrings);\n keys.forEach(function (key) {\n if (key.indexOf('VAR_') === 0) {\n _this.adapter_.updateCssVariable(rippleStrings[key], null);\n }\n });\n };\n MDCRippleFoundation.prototype.activate_ = function (evt) {\n var _this = this;\n if (this.adapter_.isSurfaceDisabled()) {\n return;\n }\n var activationState = this.activationState_;\n if (activationState.isActivated) {\n return;\n }\n // Avoid reacting to follow-on events fired by touch device after an already-processed user interaction\n var previousActivationEvent = this.previousActivationEvent_;\n var isSameInteraction = previousActivationEvent && evt !== undefined && previousActivationEvent.type !== evt.type;\n if (isSameInteraction) {\n return;\n }\n activationState.isActivated = true;\n activationState.isProgrammatic = evt === undefined;\n activationState.activationEvent = evt;\n activationState.wasActivatedByPointer = activationState.isProgrammatic ? false : evt !== undefined && (evt.type === 'mousedown' || evt.type === 'touchstart' || evt.type === 'pointerdown');\n var hasActivatedChild = evt !== undefined && activatedTargets.length > 0 && activatedTargets.some(function (target) { return _this.adapter_.containsEventTarget(target); });\n if (hasActivatedChild) {\n // Immediately reset activation state, while preserving logic that prevents touch follow-on events\n this.resetActivationState_();\n return;\n }\n if (evt !== undefined) {\n activatedTargets.push(evt.target);\n this.registerDeactivationHandlers_(evt);\n }\n activationState.wasElementMadeActive = this.checkElementMadeActive_(evt);\n if (activationState.wasElementMadeActive) {\n this.animateActivation_();\n }\n requestAnimationFrame(function () {\n // Reset array on next frame after the current event has had a chance to bubble to prevent ancestor ripples\n activatedTargets = [];\n if (!activationState.wasElementMadeActive\n && evt !== undefined\n && (evt.key === ' ' || evt.keyCode === 32)) {\n // If space was pressed, try again within an rAF call to detect :active, because different UAs report\n // active states inconsistently when they're called within event handling code:\n // - https://bugs.chromium.org/p/chromium/issues/detail?id=635971\n // - https://bugzilla.mozilla.org/show_bug.cgi?id=1293741\n // We try first outside rAF to support Edge, which does not exhibit this problem, but will crash if a CSS\n // variable is set within a rAF callback for a submit button interaction (#2241).\n activationState.wasElementMadeActive = _this.checkElementMadeActive_(evt);\n if (activationState.wasElementMadeActive) {\n _this.animateActivation_();\n }\n }\n if (!activationState.wasElementMadeActive) {\n // Reset activation state immediately if element was not made active.\n _this.activationState_ = _this.defaultActivationState_();\n }\n });\n };\n MDCRippleFoundation.prototype.checkElementMadeActive_ = function (evt) {\n return (evt !== undefined && evt.type === 'keydown') ? this.adapter_.isSurfaceActive() : true;\n };\n MDCRippleFoundation.prototype.animateActivation_ = function () {\n var _this = this;\n var _a = MDCRippleFoundation.strings, VAR_FG_TRANSLATE_START = _a.VAR_FG_TRANSLATE_START, VAR_FG_TRANSLATE_END = _a.VAR_FG_TRANSLATE_END;\n var _b = MDCRippleFoundation.cssClasses, FG_DEACTIVATION = _b.FG_DEACTIVATION, FG_ACTIVATION = _b.FG_ACTIVATION;\n var DEACTIVATION_TIMEOUT_MS = MDCRippleFoundation.numbers.DEACTIVATION_TIMEOUT_MS;\n this.layoutInternal_();\n var translateStart = '';\n var translateEnd = '';\n if (!this.adapter_.isUnbounded()) {\n var _c = this.getFgTranslationCoordinates_(), startPoint = _c.startPoint, endPoint = _c.endPoint;\n translateStart = startPoint.x + \"px, \" + startPoint.y + \"px\";\n translateEnd = endPoint.x + \"px, \" + endPoint.y + \"px\";\n }\n this.adapter_.updateCssVariable(VAR_FG_TRANSLATE_START, translateStart);\n this.adapter_.updateCssVariable(VAR_FG_TRANSLATE_END, translateEnd);\n // Cancel any ongoing activation/deactivation animations\n clearTimeout(this.activationTimer_);\n clearTimeout(this.fgDeactivationRemovalTimer_);\n this.rmBoundedActivationClasses_();\n this.adapter_.removeClass(FG_DEACTIVATION);\n // Force layout in order to re-trigger the animation.\n this.adapter_.computeBoundingRect();\n this.adapter_.addClass(FG_ACTIVATION);\n this.activationTimer_ = setTimeout(function () { return _this.activationTimerCallback_(); }, DEACTIVATION_TIMEOUT_MS);\n };\n MDCRippleFoundation.prototype.getFgTranslationCoordinates_ = function () {\n var _a = this.activationState_, activationEvent = _a.activationEvent, wasActivatedByPointer = _a.wasActivatedByPointer;\n var startPoint;\n if (wasActivatedByPointer) {\n startPoint = getNormalizedEventCoords(activationEvent, this.adapter_.getWindowPageOffset(), this.adapter_.computeBoundingRect());\n }\n else {\n startPoint = {\n x: this.frame_.width / 2,\n y: this.frame_.height / 2,\n };\n }\n // Center the element around the start point.\n startPoint = {\n x: startPoint.x - (this.initialSize_ / 2),\n y: startPoint.y - (this.initialSize_ / 2),\n };\n var endPoint = {\n x: (this.frame_.width / 2) - (this.initialSize_ / 2),\n y: (this.frame_.height / 2) - (this.initialSize_ / 2),\n };\n return { startPoint: startPoint, endPoint: endPoint };\n };\n MDCRippleFoundation.prototype.runDeactivationUXLogicIfReady_ = function () {\n var _this = this;\n // This method is called both when a pointing device is released, and when the activation animation ends.\n // The deactivation animation should only run after both of those occur.\n var FG_DEACTIVATION = MDCRippleFoundation.cssClasses.FG_DEACTIVATION;\n var _a = this.activationState_, hasDeactivationUXRun = _a.hasDeactivationUXRun, isActivated = _a.isActivated;\n var activationHasEnded = hasDeactivationUXRun || !isActivated;\n if (activationHasEnded && this.activationAnimationHasEnded_) {\n this.rmBoundedActivationClasses_();\n this.adapter_.addClass(FG_DEACTIVATION);\n this.fgDeactivationRemovalTimer_ = setTimeout(function () {\n _this.adapter_.removeClass(FG_DEACTIVATION);\n }, numbers.FG_DEACTIVATION_MS);\n }\n };\n MDCRippleFoundation.prototype.rmBoundedActivationClasses_ = function () {\n var FG_ACTIVATION = MDCRippleFoundation.cssClasses.FG_ACTIVATION;\n this.adapter_.removeClass(FG_ACTIVATION);\n this.activationAnimationHasEnded_ = false;\n this.adapter_.computeBoundingRect();\n };\n MDCRippleFoundation.prototype.resetActivationState_ = function () {\n var _this = this;\n this.previousActivationEvent_ = this.activationState_.activationEvent;\n this.activationState_ = this.defaultActivationState_();\n // Touch devices may fire additional events for the same interaction within a short time.\n // Store the previous event until it's safe to assume that subsequent events are for new interactions.\n setTimeout(function () { return _this.previousActivationEvent_ = undefined; }, MDCRippleFoundation.numbers.TAP_DELAY_MS);\n };\n MDCRippleFoundation.prototype.deactivate_ = function () {\n var _this = this;\n var activationState = this.activationState_;\n // This can happen in scenarios such as when you have a keyup event that blurs the element.\n if (!activationState.isActivated) {\n return;\n }\n var state = tslib_1.__assign({}, activationState);\n if (activationState.isProgrammatic) {\n requestAnimationFrame(function () { return _this.animateDeactivation_(state); });\n this.resetActivationState_();\n }\n else {\n this.deregisterDeactivationHandlers_();\n requestAnimationFrame(function () {\n _this.activationState_.hasDeactivationUXRun = true;\n _this.animateDeactivation_(state);\n _this.resetActivationState_();\n });\n }\n };\n MDCRippleFoundation.prototype.animateDeactivation_ = function (_a) {\n var wasActivatedByPointer = _a.wasActivatedByPointer, wasElementMadeActive = _a.wasElementMadeActive;\n if (wasActivatedByPointer || wasElementMadeActive) {\n this.runDeactivationUXLogicIfReady_();\n }\n };\n MDCRippleFoundation.prototype.layoutInternal_ = function () {\n var _this = this;\n this.frame_ = this.adapter_.computeBoundingRect();\n var maxDim = Math.max(this.frame_.height, this.frame_.width);\n // Surface diameter is treated differently for unbounded vs. bounded ripples.\n // Unbounded ripple diameter is calculated smaller since the surface is expected to already be padded appropriately\n // to extend the hitbox, and the ripple is expected to meet the edges of the padded hitbox (which is typically\n // square). Bounded ripples, on the other hand, are fully expected to expand beyond the surface's longest diameter\n // (calculated based on the diagonal plus a constant padding), and are clipped at the surface's border via\n // `overflow: hidden`.\n var getBoundedRadius = function () {\n var hypotenuse = Math.sqrt(Math.pow(_this.frame_.width, 2) + Math.pow(_this.frame_.height, 2));\n return hypotenuse + MDCRippleFoundation.numbers.PADDING;\n };\n this.maxRadius_ = this.adapter_.isUnbounded() ? maxDim : getBoundedRadius();\n // Ripple is sized as a fraction of the largest dimension of the surface, then scales up using a CSS scale transform\n this.initialSize_ = Math.floor(maxDim * MDCRippleFoundation.numbers.INITIAL_ORIGIN_SCALE);\n this.fgScale_ = \"\" + this.maxRadius_ / this.initialSize_;\n this.updateLayoutCssVars_();\n };\n MDCRippleFoundation.prototype.updateLayoutCssVars_ = function () {\n var _a = MDCRippleFoundation.strings, VAR_FG_SIZE = _a.VAR_FG_SIZE, VAR_LEFT = _a.VAR_LEFT, VAR_TOP = _a.VAR_TOP, VAR_FG_SCALE = _a.VAR_FG_SCALE;\n this.adapter_.updateCssVariable(VAR_FG_SIZE, this.initialSize_ + \"px\");\n this.adapter_.updateCssVariable(VAR_FG_SCALE, this.fgScale_);\n if (this.adapter_.isUnbounded()) {\n this.unboundedCoords_ = {\n left: Math.round((this.frame_.width / 2) - (this.initialSize_ / 2)),\n top: Math.round((this.frame_.height / 2) - (this.initialSize_ / 2)),\n };\n this.adapter_.updateCssVariable(VAR_LEFT, this.unboundedCoords_.left + \"px\");\n this.adapter_.updateCssVariable(VAR_TOP, this.unboundedCoords_.top + \"px\");\n }\n };\n return MDCRippleFoundation;\n}(MDCFoundation));\nexport { MDCRippleFoundation };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCRippleFoundation;\n//# sourceMappingURL=foundation.js.map","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nimport * as tslib_1 from \"tslib\";\nimport { MDCComponent } from '@material/base/component';\nimport { applyPassive } from '@material/dom/events';\nimport { matches } from '@material/dom/ponyfill';\nimport { MDCRippleFoundation } from './foundation';\nimport * as util from './util';\nvar MDCRipple = /** @class */ (function (_super) {\n tslib_1.__extends(MDCRipple, _super);\n function MDCRipple() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.disabled = false;\n return _this;\n }\n MDCRipple.attachTo = function (root, opts) {\n if (opts === void 0) { opts = { isUnbounded: undefined }; }\n var ripple = new MDCRipple(root);\n // Only override unbounded behavior if option is explicitly specified\n if (opts.isUnbounded !== undefined) {\n ripple.unbounded = opts.isUnbounded;\n }\n return ripple;\n };\n MDCRipple.createAdapter = function (instance) {\n return {\n addClass: function (className) { return instance.root_.classList.add(className); },\n browserSupportsCssVars: function () { return util.supportsCssVariables(window); },\n computeBoundingRect: function () { return instance.root_.getBoundingClientRect(); },\n containsEventTarget: function (target) { return instance.root_.contains(target); },\n deregisterDocumentInteractionHandler: function (evtType, handler) {\n return document.documentElement.removeEventListener(evtType, handler, applyPassive());\n },\n deregisterInteractionHandler: function (evtType, handler) {\n return instance.root_.removeEventListener(evtType, handler, applyPassive());\n },\n deregisterResizeHandler: function (handler) { return window.removeEventListener('resize', handler); },\n getWindowPageOffset: function () { return ({ x: window.pageXOffset, y: window.pageYOffset }); },\n isSurfaceActive: function () { return matches(instance.root_, ':active'); },\n isSurfaceDisabled: function () { return Boolean(instance.disabled); },\n isUnbounded: function () { return Boolean(instance.unbounded); },\n registerDocumentInteractionHandler: function (evtType, handler) {\n return document.documentElement.addEventListener(evtType, handler, applyPassive());\n },\n registerInteractionHandler: function (evtType, handler) {\n return instance.root_.addEventListener(evtType, handler, applyPassive());\n },\n registerResizeHandler: function (handler) { return window.addEventListener('resize', handler); },\n removeClass: function (className) { return instance.root_.classList.remove(className); },\n updateCssVariable: function (varName, value) { return instance.root_.style.setProperty(varName, value); },\n };\n };\n Object.defineProperty(MDCRipple.prototype, \"unbounded\", {\n get: function () {\n return Boolean(this.unbounded_);\n },\n set: function (unbounded) {\n this.unbounded_ = Boolean(unbounded);\n this.setUnbounded_();\n },\n enumerable: true,\n configurable: true\n });\n MDCRipple.prototype.activate = function () {\n this.foundation_.activate();\n };\n MDCRipple.prototype.deactivate = function () {\n this.foundation_.deactivate();\n };\n MDCRipple.prototype.layout = function () {\n this.foundation_.layout();\n };\n MDCRipple.prototype.getDefaultFoundation = function () {\n return new MDCRippleFoundation(MDCRipple.createAdapter(this));\n };\n MDCRipple.prototype.initialSyncWithDOM = function () {\n var root = this.root_;\n this.unbounded = 'mdcRippleIsUnbounded' in root.dataset;\n };\n /**\n * Closure Compiler throws an access control error when directly accessing a\n * protected or private property inside a getter/setter, like unbounded above.\n * By accessing the protected property inside a method, we solve that problem.\n * That's why this function exists.\n */\n MDCRipple.prototype.setUnbounded_ = function () {\n this.foundation_.setUnbounded(Boolean(this.unbounded_));\n };\n return MDCRipple;\n}(MDCComponent));\nexport { MDCRipple };\n//# sourceMappingURL=component.js.map","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nimport * as tslib_1 from \"tslib\";\nimport { MDCFoundation } from '@material/base/foundation';\nimport { Corner, CornerBit, cssClasses, numbers, strings } from './constants';\nvar MDCMenuSurfaceFoundation = /** @class */ (function (_super) {\n tslib_1.__extends(MDCMenuSurfaceFoundation, _super);\n function MDCMenuSurfaceFoundation(adapter) {\n var _this = _super.call(this, tslib_1.__assign({}, MDCMenuSurfaceFoundation.defaultAdapter, adapter)) || this;\n _this.isOpen_ = false;\n _this.isQuickOpen_ = false;\n _this.isHoistedElement_ = false;\n _this.isFixedPosition_ = false;\n _this.openAnimationEndTimerId_ = 0;\n _this.closeAnimationEndTimerId_ = 0;\n _this.animationRequestId_ = 0;\n _this.anchorCorner_ = Corner.TOP_START;\n _this.anchorMargin_ = { top: 0, right: 0, bottom: 0, left: 0 };\n _this.position_ = { x: 0, y: 0 };\n return _this;\n }\n Object.defineProperty(MDCMenuSurfaceFoundation, \"cssClasses\", {\n get: function () {\n return cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCMenuSurfaceFoundation, \"strings\", {\n get: function () {\n return strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCMenuSurfaceFoundation, \"numbers\", {\n get: function () {\n return numbers;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCMenuSurfaceFoundation, \"Corner\", {\n get: function () {\n return Corner;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCMenuSurfaceFoundation, \"defaultAdapter\", {\n /**\n * @see {@link MDCMenuSurfaceAdapter} for typing information on parameters and return types.\n */\n get: function () {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: function () { return undefined; },\n removeClass: function () { return undefined; },\n hasClass: function () { return false; },\n hasAnchor: function () { return false; },\n isElementInContainer: function () { return false; },\n isFocused: function () { return false; },\n isRtl: function () { return false; },\n getInnerDimensions: function () { return ({ height: 0, width: 0 }); },\n getAnchorDimensions: function () { return null; },\n getWindowDimensions: function () { return ({ height: 0, width: 0 }); },\n getBodyDimensions: function () { return ({ height: 0, width: 0 }); },\n getWindowScroll: function () { return ({ x: 0, y: 0 }); },\n setPosition: function () { return undefined; },\n setMaxHeight: function () { return undefined; },\n setTransformOrigin: function () { return undefined; },\n saveFocus: function () { return undefined; },\n restoreFocus: function () { return undefined; },\n notifyClose: function () { return undefined; },\n notifyOpen: function () { return undefined; },\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: true,\n configurable: true\n });\n MDCMenuSurfaceFoundation.prototype.init = function () {\n var _a = MDCMenuSurfaceFoundation.cssClasses, ROOT = _a.ROOT, OPEN = _a.OPEN;\n if (!this.adapter_.hasClass(ROOT)) {\n throw new Error(ROOT + \" class required in root element.\");\n }\n if (this.adapter_.hasClass(OPEN)) {\n this.isOpen_ = true;\n }\n };\n MDCMenuSurfaceFoundation.prototype.destroy = function () {\n clearTimeout(this.openAnimationEndTimerId_);\n clearTimeout(this.closeAnimationEndTimerId_);\n // Cancel any currently running animations.\n cancelAnimationFrame(this.animationRequestId_);\n };\n /**\n * @param corner Default anchor corner alignment of top-left menu surface corner.\n */\n MDCMenuSurfaceFoundation.prototype.setAnchorCorner = function (corner) {\n this.anchorCorner_ = corner;\n };\n /**\n * @param margin Set of margin values from anchor.\n */\n MDCMenuSurfaceFoundation.prototype.setAnchorMargin = function (margin) {\n this.anchorMargin_.top = margin.top || 0;\n this.anchorMargin_.right = margin.right || 0;\n this.anchorMargin_.bottom = margin.bottom || 0;\n this.anchorMargin_.left = margin.left || 0;\n };\n /** Used to indicate if the menu-surface is hoisted to the body. */\n MDCMenuSurfaceFoundation.prototype.setIsHoisted = function (isHoisted) {\n this.isHoistedElement_ = isHoisted;\n };\n /** Used to set the menu-surface calculations based on a fixed position menu. */\n MDCMenuSurfaceFoundation.prototype.setFixedPosition = function (isFixedPosition) {\n this.isFixedPosition_ = isFixedPosition;\n };\n /** Sets the menu-surface position on the page. */\n MDCMenuSurfaceFoundation.prototype.setAbsolutePosition = function (x, y) {\n this.position_.x = this.isFinite_(x) ? x : 0;\n this.position_.y = this.isFinite_(y) ? y : 0;\n };\n MDCMenuSurfaceFoundation.prototype.setQuickOpen = function (quickOpen) {\n this.isQuickOpen_ = quickOpen;\n };\n MDCMenuSurfaceFoundation.prototype.isOpen = function () {\n return this.isOpen_;\n };\n /**\n * Open the menu surface.\n */\n MDCMenuSurfaceFoundation.prototype.open = function () {\n var _this = this;\n this.adapter_.saveFocus();\n if (!this.isQuickOpen_) {\n this.adapter_.addClass(MDCMenuSurfaceFoundation.cssClasses.ANIMATING_OPEN);\n }\n this.animationRequestId_ = requestAnimationFrame(function () {\n _this.adapter_.addClass(MDCMenuSurfaceFoundation.cssClasses.OPEN);\n _this.dimensions_ = _this.adapter_.getInnerDimensions();\n _this.autoPosition_();\n if (_this.isQuickOpen_) {\n _this.adapter_.notifyOpen();\n }\n else {\n _this.openAnimationEndTimerId_ = setTimeout(function () {\n _this.openAnimationEndTimerId_ = 0;\n _this.adapter_.removeClass(MDCMenuSurfaceFoundation.cssClasses.ANIMATING_OPEN);\n _this.adapter_.notifyOpen();\n }, numbers.TRANSITION_OPEN_DURATION);\n }\n });\n this.isOpen_ = true;\n };\n /**\n * Closes the menu surface.\n */\n MDCMenuSurfaceFoundation.prototype.close = function (skipRestoreFocus) {\n var _this = this;\n if (skipRestoreFocus === void 0) { skipRestoreFocus = false; }\n if (!this.isQuickOpen_) {\n this.adapter_.addClass(MDCMenuSurfaceFoundation.cssClasses.ANIMATING_CLOSED);\n }\n requestAnimationFrame(function () {\n _this.adapter_.removeClass(MDCMenuSurfaceFoundation.cssClasses.OPEN);\n if (_this.isQuickOpen_) {\n _this.adapter_.notifyClose();\n }\n else {\n _this.closeAnimationEndTimerId_ = setTimeout(function () {\n _this.closeAnimationEndTimerId_ = 0;\n _this.adapter_.removeClass(MDCMenuSurfaceFoundation.cssClasses.ANIMATING_CLOSED);\n _this.adapter_.notifyClose();\n }, numbers.TRANSITION_CLOSE_DURATION);\n }\n });\n this.isOpen_ = false;\n if (!skipRestoreFocus) {\n this.maybeRestoreFocus_();\n }\n };\n /** Handle clicks and close if not within menu-surface element. */\n MDCMenuSurfaceFoundation.prototype.handleBodyClick = function (evt) {\n var el = evt.target;\n if (this.adapter_.isElementInContainer(el)) {\n return;\n }\n this.close();\n };\n /** Handle keys that close the surface. */\n MDCMenuSurfaceFoundation.prototype.handleKeydown = function (evt) {\n var keyCode = evt.keyCode, key = evt.key;\n var isEscape = key === 'Escape' || keyCode === 27;\n if (isEscape) {\n this.close();\n }\n };\n MDCMenuSurfaceFoundation.prototype.autoPosition_ = function () {\n var _a;\n // Compute measurements for autoposition methods reuse.\n this.measurements_ = this.getAutoLayoutMeasurements_();\n var corner = this.getOriginCorner_();\n var maxMenuSurfaceHeight = this.getMenuSurfaceMaxHeight_(corner);\n var verticalAlignment = this.hasBit_(corner, CornerBit.BOTTOM) ? 'bottom' : 'top';\n var horizontalAlignment = this.hasBit_(corner, CornerBit.RIGHT) ? 'right' : 'left';\n var horizontalOffset = this.getHorizontalOriginOffset_(corner);\n var verticalOffset = this.getVerticalOriginOffset_(corner);\n var _b = this.measurements_, anchorSize = _b.anchorSize, surfaceSize = _b.surfaceSize;\n var position = (_a = {},\n _a[horizontalAlignment] = horizontalOffset,\n _a[verticalAlignment] = verticalOffset,\n _a);\n // Center align when anchor width is comparable or greater than menu surface, otherwise keep corner.\n if (anchorSize.width / surfaceSize.width > numbers.ANCHOR_TO_MENU_SURFACE_WIDTH_RATIO) {\n horizontalAlignment = 'center';\n }\n // If the menu-surface has been hoisted to the body, it's no longer relative to the anchor element\n if (this.isHoistedElement_ || this.isFixedPosition_) {\n this.adjustPositionForHoistedElement_(position);\n }\n this.adapter_.setTransformOrigin(horizontalAlignment + \" \" + verticalAlignment);\n this.adapter_.setPosition(position);\n this.adapter_.setMaxHeight(maxMenuSurfaceHeight ? maxMenuSurfaceHeight + 'px' : '');\n };\n /**\n * @return Measurements used to position menu surface popup.\n */\n MDCMenuSurfaceFoundation.prototype.getAutoLayoutMeasurements_ = function () {\n var anchorRect = this.adapter_.getAnchorDimensions();\n var bodySize = this.adapter_.getBodyDimensions();\n var viewportSize = this.adapter_.getWindowDimensions();\n var windowScroll = this.adapter_.getWindowScroll();\n if (!anchorRect) {\n // tslint:disable:object-literal-sort-keys Positional properties are more readable when they're grouped together\n anchorRect = {\n top: this.position_.y,\n right: this.position_.x,\n bottom: this.position_.y,\n left: this.position_.x,\n width: 0,\n height: 0,\n };\n // tslint:enable:object-literal-sort-keys\n }\n return {\n anchorSize: anchorRect,\n bodySize: bodySize,\n surfaceSize: this.dimensions_,\n viewportDistance: {\n // tslint:disable:object-literal-sort-keys Positional properties are more readable when they're grouped together\n top: anchorRect.top,\n right: viewportSize.width - anchorRect.right,\n bottom: viewportSize.height - anchorRect.bottom,\n left: anchorRect.left,\n },\n viewportSize: viewportSize,\n windowScroll: windowScroll,\n };\n };\n /**\n * Computes the corner of the anchor from which to animate and position the menu surface.\n */\n MDCMenuSurfaceFoundation.prototype.getOriginCorner_ = function () {\n // Defaults: open from the top left.\n var corner = Corner.TOP_LEFT;\n var _a = this.measurements_, viewportDistance = _a.viewportDistance, anchorSize = _a.anchorSize, surfaceSize = _a.surfaceSize;\n var isBottomAligned = this.hasBit_(this.anchorCorner_, CornerBit.BOTTOM);\n var availableTop = isBottomAligned ? viewportDistance.top + anchorSize.height + this.anchorMargin_.bottom\n : viewportDistance.top + this.anchorMargin_.top;\n var availableBottom = isBottomAligned ? viewportDistance.bottom - this.anchorMargin_.bottom\n : viewportDistance.bottom + anchorSize.height - this.anchorMargin_.top;\n var topOverflow = surfaceSize.height - availableTop;\n var bottomOverflow = surfaceSize.height - availableBottom;\n if (bottomOverflow > 0 && topOverflow < bottomOverflow) {\n corner = this.setBit_(corner, CornerBit.BOTTOM);\n }\n var isRtl = this.adapter_.isRtl();\n var isFlipRtl = this.hasBit_(this.anchorCorner_, CornerBit.FLIP_RTL);\n var avoidHorizontalOverlap = this.hasBit_(this.anchorCorner_, CornerBit.RIGHT);\n var isAlignedRight = (avoidHorizontalOverlap && !isRtl) ||\n (!avoidHorizontalOverlap && isFlipRtl && isRtl);\n var availableLeft = isAlignedRight ? viewportDistance.left + anchorSize.width + this.anchorMargin_.right :\n viewportDistance.left + this.anchorMargin_.left;\n var availableRight = isAlignedRight ? viewportDistance.right - this.anchorMargin_.right :\n viewportDistance.right + anchorSize.width - this.anchorMargin_.left;\n var leftOverflow = surfaceSize.width - availableLeft;\n var rightOverflow = surfaceSize.width - availableRight;\n if ((leftOverflow < 0 && isAlignedRight && isRtl) ||\n (avoidHorizontalOverlap && !isAlignedRight && leftOverflow < 0) ||\n (rightOverflow > 0 && leftOverflow < rightOverflow)) {\n corner = this.setBit_(corner, CornerBit.RIGHT);\n }\n return corner;\n };\n /**\n * @param corner Origin corner of the menu surface.\n * @return Maximum height of the menu surface, based on available space. 0 indicates should not be set.\n */\n MDCMenuSurfaceFoundation.prototype.getMenuSurfaceMaxHeight_ = function (corner) {\n var viewportDistance = this.measurements_.viewportDistance;\n var maxHeight = 0;\n var isBottomAligned = this.hasBit_(corner, CornerBit.BOTTOM);\n var isBottomAnchored = this.hasBit_(this.anchorCorner_, CornerBit.BOTTOM);\n var MARGIN_TO_EDGE = MDCMenuSurfaceFoundation.numbers.MARGIN_TO_EDGE;\n // When maximum height is not specified, it is handled from CSS.\n if (isBottomAligned) {\n maxHeight = viewportDistance.top + this.anchorMargin_.top - MARGIN_TO_EDGE;\n if (!isBottomAnchored) {\n maxHeight += this.measurements_.anchorSize.height;\n }\n }\n else {\n maxHeight =\n viewportDistance.bottom - this.anchorMargin_.bottom + this.measurements_.anchorSize.height - MARGIN_TO_EDGE;\n if (isBottomAnchored) {\n maxHeight -= this.measurements_.anchorSize.height;\n }\n }\n return maxHeight;\n };\n /**\n * @param corner Origin corner of the menu surface.\n * @return Horizontal offset of menu surface origin corner from corresponding anchor corner.\n */\n MDCMenuSurfaceFoundation.prototype.getHorizontalOriginOffset_ = function (corner) {\n var anchorSize = this.measurements_.anchorSize;\n // isRightAligned corresponds to using the 'right' property on the surface.\n var isRightAligned = this.hasBit_(corner, CornerBit.RIGHT);\n var avoidHorizontalOverlap = this.hasBit_(this.anchorCorner_, CornerBit.RIGHT);\n if (isRightAligned) {\n var rightOffset = avoidHorizontalOverlap ? anchorSize.width - this.anchorMargin_.left : this.anchorMargin_.right;\n // For hoisted or fixed elements, adjust the offset by the difference between viewport width and body width so\n // when we calculate the right value (`adjustPositionForHoistedElement_`) based on the element position,\n // the right property is correct.\n if (this.isHoistedElement_ || this.isFixedPosition_) {\n return rightOffset - (this.measurements_.viewportSize.width - this.measurements_.bodySize.width);\n }\n return rightOffset;\n }\n return avoidHorizontalOverlap ? anchorSize.width - this.anchorMargin_.right : this.anchorMargin_.left;\n };\n /**\n * @param corner Origin corner of the menu surface.\n * @return Vertical offset of menu surface origin corner from corresponding anchor corner.\n */\n MDCMenuSurfaceFoundation.prototype.getVerticalOriginOffset_ = function (corner) {\n var anchorSize = this.measurements_.anchorSize;\n var isBottomAligned = this.hasBit_(corner, CornerBit.BOTTOM);\n var avoidVerticalOverlap = this.hasBit_(this.anchorCorner_, CornerBit.BOTTOM);\n var y = 0;\n if (isBottomAligned) {\n y = avoidVerticalOverlap ? anchorSize.height - this.anchorMargin_.top : -this.anchorMargin_.bottom;\n }\n else {\n y = avoidVerticalOverlap ? (anchorSize.height + this.anchorMargin_.bottom) : this.anchorMargin_.top;\n }\n return y;\n };\n /** Calculates the offsets for positioning the menu-surface when the menu-surface has been hoisted to the body. */\n MDCMenuSurfaceFoundation.prototype.adjustPositionForHoistedElement_ = function (position) {\n var e_1, _a;\n var _b = this.measurements_, windowScroll = _b.windowScroll, viewportDistance = _b.viewportDistance;\n var props = Object.keys(position);\n try {\n for (var props_1 = tslib_1.__values(props), props_1_1 = props_1.next(); !props_1_1.done; props_1_1 = props_1.next()) {\n var prop = props_1_1.value;\n var value = position[prop] || 0;\n // Hoisted surfaces need to have the anchor elements location on the page added to the\n // position properties for proper alignment on the body.\n value += viewportDistance[prop];\n // Surfaces that are absolutely positioned need to have additional calculations for scroll\n // and bottom positioning.\n if (!this.isFixedPosition_) {\n if (prop === 'top') {\n value += windowScroll.y;\n }\n else if (prop === 'bottom') {\n value -= windowScroll.y;\n }\n else if (prop === 'left') {\n value += windowScroll.x;\n }\n else { // prop === 'right'\n value -= windowScroll.x;\n }\n }\n position[prop] = value;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (props_1_1 && !props_1_1.done && (_a = props_1.return)) _a.call(props_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n /**\n * The last focused element when the menu surface was opened should regain focus, if the user is\n * focused on or within the menu surface when it is closed.\n */\n MDCMenuSurfaceFoundation.prototype.maybeRestoreFocus_ = function () {\n var isRootFocused = this.adapter_.isFocused();\n var childHasFocus = document.activeElement && this.adapter_.isElementInContainer(document.activeElement);\n if (isRootFocused || childHasFocus) {\n this.adapter_.restoreFocus();\n }\n };\n MDCMenuSurfaceFoundation.prototype.hasBit_ = function (corner, bit) {\n return Boolean(corner & bit); // tslint:disable-line:no-bitwise\n };\n MDCMenuSurfaceFoundation.prototype.setBit_ = function (corner, bit) {\n return corner | bit; // tslint:disable-line:no-bitwise\n };\n /**\n * isFinite that doesn't force conversion to number type.\n * Equivalent to Number.isFinite in ES2015, which is not supported in IE.\n */\n MDCMenuSurfaceFoundation.prototype.isFinite_ = function (num) {\n return typeof num === 'number' && isFinite(num);\n };\n return MDCMenuSurfaceFoundation;\n}(MDCFoundation));\nexport { MDCMenuSurfaceFoundation };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCMenuSurfaceFoundation;\n//# sourceMappingURL=foundation.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nvar cssClasses = {\n LIST_ITEM_ACTIVATED_CLASS: 'mdc-list-item--activated',\n LIST_ITEM_CLASS: 'mdc-list-item',\n LIST_ITEM_DISABLED_CLASS: 'mdc-list-item--disabled',\n LIST_ITEM_SELECTED_CLASS: 'mdc-list-item--selected',\n ROOT: 'mdc-list',\n};\nvar strings = {\n ACTION_EVENT: 'MDCList:action',\n ARIA_CHECKED: 'aria-checked',\n ARIA_CHECKED_CHECKBOX_SELECTOR: '[role=\"checkbox\"][aria-checked=\"true\"]',\n ARIA_CHECKED_RADIO_SELECTOR: '[role=\"radio\"][aria-checked=\"true\"]',\n ARIA_CURRENT: 'aria-current',\n ARIA_ORIENTATION: 'aria-orientation',\n ARIA_ORIENTATION_HORIZONTAL: 'horizontal',\n ARIA_ROLE_CHECKBOX_SELECTOR: '[role=\"checkbox\"]',\n ARIA_SELECTED: 'aria-selected',\n CHECKBOX_RADIO_SELECTOR: 'input[type=\"checkbox\"]:not(:disabled), input[type=\"radio\"]:not(:disabled)',\n CHECKBOX_SELECTOR: 'input[type=\"checkbox\"]:not(:disabled)',\n CHILD_ELEMENTS_TO_TOGGLE_TABINDEX: \"\\n .\" + cssClasses.LIST_ITEM_CLASS + \" button:not(:disabled),\\n .\" + cssClasses.LIST_ITEM_CLASS + \" a\\n \",\n FOCUSABLE_CHILD_ELEMENTS: \"\\n .\" + cssClasses.LIST_ITEM_CLASS + \" button:not(:disabled),\\n .\" + cssClasses.LIST_ITEM_CLASS + \" a,\\n .\" + cssClasses.LIST_ITEM_CLASS + \" input[type=\\\"radio\\\"]:not(:disabled),\\n .\" + cssClasses.LIST_ITEM_CLASS + \" input[type=\\\"checkbox\\\"]:not(:disabled)\\n \",\n RADIO_SELECTOR: 'input[type=\"radio\"]:not(:disabled)',\n};\nvar numbers = {\n UNSET_INDEX: -1,\n};\nexport { strings, cssClasses, numbers };\n//# sourceMappingURL=constants.js.map","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nimport * as tslib_1 from \"tslib\";\nimport { MDCFoundation } from '@material/base/foundation';\nimport { cssClasses, numbers, strings } from './constants';\nvar ELEMENTS_KEY_ALLOWED_IN = ['input', 'button', 'textarea', 'select'];\nfunction isNumberArray(selectedIndex) {\n return selectedIndex instanceof Array;\n}\nvar MDCListFoundation = /** @class */ (function (_super) {\n tslib_1.__extends(MDCListFoundation, _super);\n function MDCListFoundation(adapter) {\n var _this = _super.call(this, tslib_1.__assign({}, MDCListFoundation.defaultAdapter, adapter)) || this;\n _this.wrapFocus_ = false;\n _this.isVertical_ = true;\n _this.isSingleSelectionList_ = false;\n _this.selectedIndex_ = numbers.UNSET_INDEX;\n _this.focusedItemIndex_ = numbers.UNSET_INDEX;\n _this.useActivatedClass_ = false;\n _this.ariaCurrentAttrValue_ = null;\n _this.isCheckboxList_ = false;\n _this.isRadioList_ = false;\n return _this;\n }\n Object.defineProperty(MDCListFoundation, \"strings\", {\n get: function () {\n return strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCListFoundation, \"cssClasses\", {\n get: function () {\n return cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCListFoundation, \"numbers\", {\n get: function () {\n return numbers;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCListFoundation, \"defaultAdapter\", {\n get: function () {\n return {\n addClassForElementIndex: function () { return undefined; },\n focusItemAtIndex: function () { return undefined; },\n getAttributeForElementIndex: function () { return null; },\n getFocusedElementIndex: function () { return 0; },\n getListItemCount: function () { return 0; },\n hasCheckboxAtIndex: function () { return false; },\n hasRadioAtIndex: function () { return false; },\n isCheckboxCheckedAtIndex: function () { return false; },\n isFocusInsideList: function () { return false; },\n isRootFocused: function () { return false; },\n notifyAction: function () { return undefined; },\n removeClassForElementIndex: function () { return undefined; },\n setAttributeForElementIndex: function () { return undefined; },\n setCheckedCheckboxOrRadioAtIndex: function () { return undefined; },\n setTabIndexForListItemChildren: function () { return undefined; },\n };\n },\n enumerable: true,\n configurable: true\n });\n MDCListFoundation.prototype.layout = function () {\n if (this.adapter_.getListItemCount() === 0) {\n return;\n }\n if (this.adapter_.hasCheckboxAtIndex(0)) {\n this.isCheckboxList_ = true;\n }\n else if (this.adapter_.hasRadioAtIndex(0)) {\n this.isRadioList_ = true;\n }\n };\n /**\n * Sets the private wrapFocus_ variable.\n */\n MDCListFoundation.prototype.setWrapFocus = function (value) {\n this.wrapFocus_ = value;\n };\n /**\n * Sets the isVertical_ private variable.\n */\n MDCListFoundation.prototype.setVerticalOrientation = function (value) {\n this.isVertical_ = value;\n };\n /**\n * Sets the isSingleSelectionList_ private variable.\n */\n MDCListFoundation.prototype.setSingleSelection = function (value) {\n this.isSingleSelectionList_ = value;\n };\n /**\n * Sets the useActivatedClass_ private variable.\n */\n MDCListFoundation.prototype.setUseActivatedClass = function (useActivated) {\n this.useActivatedClass_ = useActivated;\n };\n MDCListFoundation.prototype.getSelectedIndex = function () {\n return this.selectedIndex_;\n };\n MDCListFoundation.prototype.setSelectedIndex = function (index) {\n if (!this.isIndexValid_(index)) {\n return;\n }\n if (this.isCheckboxList_) {\n this.setCheckboxAtIndex_(index);\n }\n else if (this.isRadioList_) {\n this.setRadioAtIndex_(index);\n }\n else {\n this.setSingleSelectionAtIndex_(index);\n }\n };\n /**\n * Focus in handler for the list items.\n */\n MDCListFoundation.prototype.handleFocusIn = function (_, listItemIndex) {\n if (listItemIndex >= 0) {\n this.adapter_.setTabIndexForListItemChildren(listItemIndex, '0');\n }\n };\n /**\n * Focus out handler for the list items.\n */\n MDCListFoundation.prototype.handleFocusOut = function (_, listItemIndex) {\n var _this = this;\n if (listItemIndex >= 0) {\n this.adapter_.setTabIndexForListItemChildren(listItemIndex, '-1');\n }\n /**\n * Between Focusout & Focusin some browsers do not have focus on any element. Setting a delay to wait till the focus\n * is moved to next element.\n */\n setTimeout(function () {\n if (!_this.adapter_.isFocusInsideList()) {\n _this.setTabindexToFirstSelectedItem_();\n }\n }, 0);\n };\n /**\n * Key handler for the list.\n */\n MDCListFoundation.prototype.handleKeydown = function (evt, isRootListItem, listItemIndex) {\n var isArrowLeft = evt.key === 'ArrowLeft' || evt.keyCode === 37;\n var isArrowUp = evt.key === 'ArrowUp' || evt.keyCode === 38;\n var isArrowRight = evt.key === 'ArrowRight' || evt.keyCode === 39;\n var isArrowDown = evt.key === 'ArrowDown' || evt.keyCode === 40;\n var isHome = evt.key === 'Home' || evt.keyCode === 36;\n var isEnd = evt.key === 'End' || evt.keyCode === 35;\n var isEnter = evt.key === 'Enter' || evt.keyCode === 13;\n var isSpace = evt.key === 'Space' || evt.keyCode === 32;\n if (this.adapter_.isRootFocused()) {\n if (isArrowUp || isEnd) {\n evt.preventDefault();\n this.focusLastElement();\n }\n else if (isArrowDown || isHome) {\n evt.preventDefault();\n this.focusFirstElement();\n }\n return;\n }\n var currentIndex = this.adapter_.getFocusedElementIndex();\n if (currentIndex === -1) {\n currentIndex = listItemIndex;\n if (currentIndex < 0) {\n // If this event doesn't have a mdc-list-item ancestor from the\n // current list (not from a sublist), return early.\n return;\n }\n }\n var nextIndex;\n if ((this.isVertical_ && isArrowDown) || (!this.isVertical_ && isArrowRight)) {\n this.preventDefaultEvent_(evt);\n nextIndex = this.focusNextElement(currentIndex);\n }\n else if ((this.isVertical_ && isArrowUp) || (!this.isVertical_ && isArrowLeft)) {\n this.preventDefaultEvent_(evt);\n nextIndex = this.focusPrevElement(currentIndex);\n }\n else if (isHome) {\n this.preventDefaultEvent_(evt);\n nextIndex = this.focusFirstElement();\n }\n else if (isEnd) {\n this.preventDefaultEvent_(evt);\n nextIndex = this.focusLastElement();\n }\n else if (isEnter || isSpace) {\n if (isRootListItem) {\n // Return early if enter key is pressed on anchor element which triggers synthetic MouseEvent event.\n var target = evt.target;\n if (target && target.tagName === 'A' && isEnter) {\n return;\n }\n this.preventDefaultEvent_(evt);\n if (this.isSelectableList_()) {\n this.setSelectedIndexOnAction_(currentIndex);\n }\n this.adapter_.notifyAction(currentIndex);\n }\n }\n this.focusedItemIndex_ = currentIndex;\n if (nextIndex !== undefined) {\n this.setTabindexAtIndex_(nextIndex);\n this.focusedItemIndex_ = nextIndex;\n }\n };\n /**\n * Click handler for the list.\n */\n MDCListFoundation.prototype.handleClick = function (index, toggleCheckbox) {\n if (index === numbers.UNSET_INDEX) {\n return;\n }\n if (this.isSelectableList_()) {\n this.setSelectedIndexOnAction_(index, toggleCheckbox);\n }\n this.adapter_.notifyAction(index);\n this.setTabindexAtIndex_(index);\n this.focusedItemIndex_ = index;\n };\n /**\n * Focuses the next element on the list.\n */\n MDCListFoundation.prototype.focusNextElement = function (index) {\n var count = this.adapter_.getListItemCount();\n var nextIndex = index + 1;\n if (nextIndex >= count) {\n if (this.wrapFocus_) {\n nextIndex = 0;\n }\n else {\n // Return early because last item is already focused.\n return index;\n }\n }\n this.adapter_.focusItemAtIndex(nextIndex);\n return nextIndex;\n };\n /**\n * Focuses the previous element on the list.\n */\n MDCListFoundation.prototype.focusPrevElement = function (index) {\n var prevIndex = index - 1;\n if (prevIndex < 0) {\n if (this.wrapFocus_) {\n prevIndex = this.adapter_.getListItemCount() - 1;\n }\n else {\n // Return early because first item is already focused.\n return index;\n }\n }\n this.adapter_.focusItemAtIndex(prevIndex);\n return prevIndex;\n };\n MDCListFoundation.prototype.focusFirstElement = function () {\n this.adapter_.focusItemAtIndex(0);\n return 0;\n };\n MDCListFoundation.prototype.focusLastElement = function () {\n var lastIndex = this.adapter_.getListItemCount() - 1;\n this.adapter_.focusItemAtIndex(lastIndex);\n return lastIndex;\n };\n /**\n * Ensures that preventDefault is only called if the containing element doesn't\n * consume the event, and it will cause an unintended scroll.\n */\n MDCListFoundation.prototype.preventDefaultEvent_ = function (evt) {\n var target = evt.target;\n var tagName = (\"\" + target.tagName).toLowerCase();\n if (ELEMENTS_KEY_ALLOWED_IN.indexOf(tagName) === -1) {\n evt.preventDefault();\n }\n };\n MDCListFoundation.prototype.setSingleSelectionAtIndex_ = function (index) {\n if (this.selectedIndex_ === index) {\n return;\n }\n var selectedClassName = cssClasses.LIST_ITEM_SELECTED_CLASS;\n if (this.useActivatedClass_) {\n selectedClassName = cssClasses.LIST_ITEM_ACTIVATED_CLASS;\n }\n if (this.selectedIndex_ !== numbers.UNSET_INDEX) {\n this.adapter_.removeClassForElementIndex(this.selectedIndex_, selectedClassName);\n }\n this.adapter_.addClassForElementIndex(index, selectedClassName);\n this.setAriaForSingleSelectionAtIndex_(index);\n this.selectedIndex_ = index;\n };\n /**\n * Sets aria attribute for single selection at given index.\n */\n MDCListFoundation.prototype.setAriaForSingleSelectionAtIndex_ = function (index) {\n // Detect the presence of aria-current and get the value only during list initialization when it is in unset state.\n if (this.selectedIndex_ === numbers.UNSET_INDEX) {\n this.ariaCurrentAttrValue_ =\n this.adapter_.getAttributeForElementIndex(index, strings.ARIA_CURRENT);\n }\n var isAriaCurrent = this.ariaCurrentAttrValue_ !== null;\n var ariaAttribute = isAriaCurrent ? strings.ARIA_CURRENT : strings.ARIA_SELECTED;\n if (this.selectedIndex_ !== numbers.UNSET_INDEX) {\n this.adapter_.setAttributeForElementIndex(this.selectedIndex_, ariaAttribute, 'false');\n }\n var ariaAttributeValue = isAriaCurrent ? this.ariaCurrentAttrValue_ : 'true';\n this.adapter_.setAttributeForElementIndex(index, ariaAttribute, ariaAttributeValue);\n };\n /**\n * Toggles radio at give index. Radio doesn't change the checked state if it is already checked.\n */\n MDCListFoundation.prototype.setRadioAtIndex_ = function (index) {\n this.adapter_.setCheckedCheckboxOrRadioAtIndex(index, true);\n if (this.selectedIndex_ !== numbers.UNSET_INDEX) {\n this.adapter_.setAttributeForElementIndex(this.selectedIndex_, strings.ARIA_CHECKED, 'false');\n }\n this.adapter_.setAttributeForElementIndex(index, strings.ARIA_CHECKED, 'true');\n this.selectedIndex_ = index;\n };\n MDCListFoundation.prototype.setCheckboxAtIndex_ = function (index) {\n for (var i = 0; i < this.adapter_.getListItemCount(); i++) {\n var isChecked = false;\n if (index.indexOf(i) >= 0) {\n isChecked = true;\n }\n this.adapter_.setCheckedCheckboxOrRadioAtIndex(i, isChecked);\n this.adapter_.setAttributeForElementIndex(i, strings.ARIA_CHECKED, isChecked ? 'true' : 'false');\n }\n this.selectedIndex_ = index;\n };\n MDCListFoundation.prototype.setTabindexAtIndex_ = function (index) {\n if (this.focusedItemIndex_ === numbers.UNSET_INDEX && index !== 0) {\n // If no list item was selected set first list item's tabindex to -1.\n // Generally, tabindex is set to 0 on first list item of list that has no preselected items.\n this.adapter_.setAttributeForElementIndex(0, 'tabindex', '-1');\n }\n else if (this.focusedItemIndex_ >= 0 && this.focusedItemIndex_ !== index) {\n this.adapter_.setAttributeForElementIndex(this.focusedItemIndex_, 'tabindex', '-1');\n }\n this.adapter_.setAttributeForElementIndex(index, 'tabindex', '0');\n };\n /**\n * @return Return true if it is single selectin list, checkbox list or radio list.\n */\n MDCListFoundation.prototype.isSelectableList_ = function () {\n return this.isSingleSelectionList_ || this.isCheckboxList_ || this.isRadioList_;\n };\n MDCListFoundation.prototype.setTabindexToFirstSelectedItem_ = function () {\n var targetIndex = 0;\n if (this.isSelectableList_()) {\n if (typeof this.selectedIndex_ === 'number' && this.selectedIndex_ !== numbers.UNSET_INDEX) {\n targetIndex = this.selectedIndex_;\n }\n else if (isNumberArray(this.selectedIndex_) && this.selectedIndex_.length > 0) {\n targetIndex = this.selectedIndex_.reduce(function (currentIndex, minIndex) { return Math.min(currentIndex, minIndex); });\n }\n }\n this.setTabindexAtIndex_(targetIndex);\n };\n MDCListFoundation.prototype.isIndexValid_ = function (index) {\n var _this = this;\n if (index instanceof Array) {\n if (!this.isCheckboxList_) {\n throw new Error('MDCListFoundation: Array of index is only supported for checkbox based list');\n }\n if (index.length === 0) {\n return true;\n }\n else {\n return index.some(function (i) { return _this.isIndexInRange_(i); });\n }\n }\n else if (typeof index === 'number') {\n if (this.isCheckboxList_) {\n throw new Error('MDCListFoundation: Expected array of index for checkbox based list but got number: ' + index);\n }\n return this.isIndexInRange_(index);\n }\n else {\n return false;\n }\n };\n MDCListFoundation.prototype.isIndexInRange_ = function (index) {\n var listSize = this.adapter_.getListItemCount();\n return index >= 0 && index < listSize;\n };\n MDCListFoundation.prototype.setSelectedIndexOnAction_ = function (index, toggleCheckbox) {\n if (toggleCheckbox === void 0) { toggleCheckbox = true; }\n if (this.isCheckboxList_) {\n this.toggleCheckboxAtIndex_(index, toggleCheckbox);\n }\n else {\n this.setSelectedIndex(index);\n }\n };\n MDCListFoundation.prototype.toggleCheckboxAtIndex_ = function (index, toggleCheckbox) {\n var isChecked = this.adapter_.isCheckboxCheckedAtIndex(index);\n if (toggleCheckbox) {\n isChecked = !isChecked;\n this.adapter_.setCheckedCheckboxOrRadioAtIndex(index, isChecked);\n }\n this.adapter_.setAttributeForElementIndex(index, strings.ARIA_CHECKED, isChecked ? 'true' : 'false');\n // If none of the checkbox items are selected and selectedIndex is not initialized then provide a default value.\n var selectedIndexes = this.selectedIndex_ === numbers.UNSET_INDEX ? [] : this.selectedIndex_.slice();\n if (isChecked) {\n selectedIndexes.push(index);\n }\n else {\n selectedIndexes = selectedIndexes.filter(function (i) { return i !== index; });\n }\n this.selectedIndex_ = selectedIndexes;\n };\n return MDCListFoundation;\n}(MDCFoundation));\nexport { MDCListFoundation };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCListFoundation;\n//# sourceMappingURL=foundation.js.map","/**\n* Detect Element Resize\n*\n* https://github.com/sdecima/javascript-detect-element-resize\n* Sebastian Decima\n*\n* version: 0.5.3\n**/\n\n(function () {\n\tvar attachEvent = document.attachEvent,\n\t\tstylesCreated = false;\n\t\n\tif (!attachEvent) {\n\t\tvar requestFrame = (function(){\n\t\t\tvar raf = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame ||\n\t\t\t\t\t\t\t\tfunction(fn){ return window.setTimeout(fn, 20); };\n\t\t\treturn function(fn){ return raf(fn); };\n\t\t})();\n\t\t\n\t\tvar cancelFrame = (function(){\n\t\t\tvar cancel = window.cancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitCancelAnimationFrame ||\n\t\t\t\t\t\t\t\t window.clearTimeout;\n\t\t return function(id){ return cancel(id); };\n\t\t})();\n\n\t\tfunction _resetTriggers(element){\n\t\t\tvar triggers = element.__resizeTriggers__,\n\t\t\t\texpand = triggers.firstElementChild,\n\t\t\t\tcontract = triggers.lastElementChild,\n\t\t\t\texpandChild = expand.firstElementChild;\n\t\t\tcontract.scrollLeft = contract.scrollWidth;\n\t\t\tcontract.scrollTop = contract.scrollHeight;\n\t\t\texpandChild.style.width = expand.offsetWidth + 1 + 'px';\n\t\t\texpandChild.style.height = expand.offsetHeight + 1 + 'px';\n\t\t\texpand.scrollLeft = expand.scrollWidth;\n\t\t\texpand.scrollTop = expand.scrollHeight;\n\t\t};\n\n\t\tfunction checkTriggers(element){\n\t\t\treturn element.offsetWidth != element.__resizeLast__.width ||\n\t\t\t\t\t\t element.offsetHeight != element.__resizeLast__.height;\n\t\t}\n\t\t\n\t\tfunction scrollListener(e){\n\t\t\tvar element = this;\n\t\t\t_resetTriggers(this);\n\t\t\tif (this.__resizeRAF__) cancelFrame(this.__resizeRAF__);\n\t\t\tthis.__resizeRAF__ = requestFrame(function(){\n\t\t\t\tif (checkTriggers(element)) {\n\t\t\t\t\telement.__resizeLast__.width = element.offsetWidth;\n\t\t\t\t\telement.__resizeLast__.height = element.offsetHeight;\n\t\t\t\t\telement.__resizeListeners__.forEach(function(fn){\n\t\t\t\t\t\tfn.call(element, e);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t\t\n\t\t/* Detect CSS Animations support to detect element display/re-attach */\n\t\tvar animation = false,\n\t\t\tanimationstring = 'animation',\n\t\t\tkeyframeprefix = '',\n\t\t\tanimationstartevent = 'animationstart',\n\t\t\tdomPrefixes = 'Webkit Moz O ms'.split(' '),\n\t\t\tstartEvents = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(' '),\n\t\t\tpfx = '';\n\t\t\n\t\tvar elm = document.createElement('fakeelement');\n\t\tif( elm.style.animationName !== undefined ) { animation = true; }\n\n\t\tif( animation === false ) {\n\t\t\tfor( var i = 0; i < domPrefixes.length; i++ ) {\n\t\t\t\tif( elm.style[ domPrefixes[i] + 'AnimationName' ] !== undefined ) {\n\t\t\t\t\tpfx = domPrefixes[ i ];\n\t\t\t\t\tanimationstring = pfx + 'Animation';\n\t\t\t\t\tkeyframeprefix = '-' + pfx.toLowerCase() + '-';\n\t\t\t\t\tanimationstartevent = startEvents[ i ];\n\t\t\t\t\tanimation = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tvar animationName = 'resizeanim';\n\t\tvar animationKeyframes = '@' + keyframeprefix + 'keyframes ' + animationName + ' { from { opacity: 0; } to { opacity: 0; } } ';\n\t\tvar animationStyle = keyframeprefix + 'animation: 1ms ' + animationName + '; ';\n\t}\n\t\n\tfunction createStyles() {\n\t\tif (!stylesCreated) {\n\t\t\t//opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360\n\t\t\tvar css = (animationKeyframes ? animationKeyframes : '') +\n\t\t\t\t\t'.resize-triggers { ' + (animationStyle ? animationStyle : '') + 'visibility: hidden; opacity: 0; } ' +\n\t\t\t\t\t'.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: \\\" \\\"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',\n\t\t\t\thead = document.head || document.getElementsByTagName('head')[0],\n\t\t\t\tstyle = document.createElement('style');\n\t\t\t\n\t\t\tstyle.type = 'text/css';\n\t\t\tif (style.styleSheet) {\n\t\t\t\tstyle.styleSheet.cssText = css;\n\t\t\t} else {\n\t\t\t\tstyle.appendChild(document.createTextNode(css));\n\t\t\t}\n\n\t\t\thead.appendChild(style);\n\t\t\tstylesCreated = true;\n\t\t}\n\t}\n\t\n\twindow.addResizeListener = function(element, fn){\n\t\tif (attachEvent) element.attachEvent('onresize', fn);\n\t\telse {\n\t\t\tif (!element.__resizeTriggers__) {\n\t\t\t\tif (getComputedStyle(element).position == 'static') element.style.position = 'relative';\n\t\t\t\tcreateStyles();\n\t\t\t\telement.__resizeLast__ = {};\n\t\t\t\telement.__resizeListeners__ = [];\n\t\t\t\t(element.__resizeTriggers__ = document.createElement('div')).className = 'resize-triggers';\n\t\t\t\telement.__resizeTriggers__.innerHTML = '
    ' +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'
    ';\n\t\t\t\telement.appendChild(element.__resizeTriggers__);\n\t\t\t\t_resetTriggers(element);\n\t\t\t\telement.addEventListener('scroll', scrollListener, {\n\t\t\t\t\tcapture: true,\n\t\t\t\t\tpassive: true\n\t\t\t\t} );\n\t\t\t\t\n\t\t\t\t/* Listen for a css animation to detect element display/re-attach */\n\t\t\t\tanimationstartevent && element.__resizeTriggers__.addEventListener(animationstartevent, function(e) {\n\t\t\t\t\tif(e.animationName == animationName)\n\t\t\t\t\t\t_resetTriggers(element);\n\t\t\t\t});\n\t\t\t}\n\t\t\telement.__resizeListeners__.push(fn);\n\t\t}\n\t};\n\t\n\twindow.removeResizeListener = function(element, fn){\n\t\tif (attachEvent) element.detachEvent('onresize', fn);\n\t\telse {\n\t\t\telement.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);\n\t\t\tif (!element.__resizeListeners__.length) {\n\t\t\t\t\telement.removeEventListener('scroll', scrollListener, {\n\t\t\t\t\t\tcapture: true,\n\t\t\t\t\t\tpassive: true\n\t\t\t\t\t} );\n\t\t\t\t\telement.__resizeLast__ = {};\n\t\t\t\t\telement.__resizeListeners__ = [];\n\t\t\t\t\telement.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);\n\t\t\t}\n\t\t}\n\t}\n})();","/**\n * NetxDrag\n * Rather useless on its own.\n * Not \"useless\"- just it will only fire off events; it will not manipulate tho DOM in any fashion.\n * This library is meant to be extended.\n */\nimport 'javascript-detect-element-resize';\n\nimport {simulateClickBody} from '@netx/core/lib/utils';\n\n// These things will hold true for every instance\nvar dir_map = {x: 'left', y: 'top'},\n\t// Some math functions that will be used a bit\n\tround = Math.round,\n\tabs = Math.abs;\n\n// Constructor\nfunction NetxDrag(options, el) {\n\tthis.$proxyEl = false;\n\n\t// Extend options\n\tthis.options = options;\n\t// Main element\n\tthis.el = $(el);\n\t// Uniqueness\n\tthis.uuid = new Date().getTime();\n\tthis.baseName = 'netx-drag';\n\tthis.name = this.baseName + '-' + this.uuid;\n\tthis.ns = '.' + this.name;\n\n\tthis.initialized = false;\n\n\t// Target\n\tthis.targetItem = options.targetItem\n\t\t? options.targetItem\n\t\t: this.$proxyEl || this.el;\n\n\tthis.targetItems = this.targetItem;\n\t// The data to return with a custom event\n\tthis.ui = null;\n\t// If this has not been extended by another plugin\n\tthis.stand_alone = true;\n\t// Initialize\n\tthis.init();\n}\n\n// Methods\nvar methods = {\n\t/**\n\t * Inititalize\n\t * Be sure to call super if you override this\n\t * @returns {object} this\n\t */\n\tinit: function(options) {\n\t\tthis.is_touch = !!('ontouchstart' in window);\n\t\tthis.$win = $(window);\n\t\tthis.$doc = $(document);\n\t\tthis.$body = $('body');\n\t\tthis.win_size = {w: 0, h: 0};\n\n\t\tif (options) {\n\t\t\tthis.options = options;\n\t\t}\n\n\t\tif (this.is_touch) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Debounced/throttled methods\n\t\tthis.calculateBoundContainer = _.throttle(\n\t\t\tthis.calculateBoundContainer,\n\t\t\t100,\n\t\t);\n\t\tthis.calculateScrollContainer = _.throttle(\n\t\t\tthis.calculateScrollContainer,\n\t\t\t1500,\n\t\t);\n\t\tthis.debouncedUpdateItems = _.debounce(this.updateItems, 100);\n\n\t\t// We were already initialized once but something has changed via the outside world\n\t\tif (this.initialized) {\n\t\t\tthis.updateItems();\n\t\t}\n\n\t\t// For styling purposes\n\t\tthis.el.addClass(this.name);\n\n\t\t// We wouldn't to start of on the wrong foot\n\t\tthis.disabled = this.overlapped = this.is_dragging = false;\n\n\t\t// Get our window and docuemnt sizes\n\t\tthis._updateStageSize();\n\n\t\t// No static positions!\n\t\tvar pos = (this.$proxyEl || this.el).css('position');\n\t\t(this.$proxyEl || this.el).css(\n\t\t\t'position',\n\t\t\tpos === 'static' ? 'relative' : pos,\n\t\t);\n\n\t\t// Setup events\n\t\tthis._events();\n\n\t\tthis.diff_top_correction = 0;\n\n\t\t// Keep tabs on our containers\n\t\tthis.$boundContainer = $(this.options.boundContainer);\n\t\tthis.$scrollContainer = $(this.options.scrollContainer);\n\n\t\tthis.calculateBoundContainer();\n\t\tthis.calculateScrollContainer();\n\n\t\tthis.$win.off(this.ns).on(\n\t\t\tthis._nsEvent('resize'),\n\t\t\t_.throttle(\n\t\t\t\t_.bind(function() {\n\t\t\t\t\t// Update our window and docuemnt sizes\n\t\t\t\t\tthis._updateStageSize();\n\t\t\t\t\tthis.calculateBoundContainer();\n\t\t\t\t\tthis.calculateScrollContainer();\n\t\t\t\t}, this),\n\t\t\t\t150,\n\t\t\t),\n\t\t);\n\n\t\tthis.$scrollContainer\n\t\t\t.off(this.ns)\n\t\t\t.on(this._nsEvent('scroll'), _.bind(this.calculateScrollContainer, this));\n\n\t\t// Listen for change in children and reattach events\n\t\tif (!this.observer) {\n\t\t\tthis.observer = new MutationObserver(\n\t\t\t\t_.bind(function(mutations) {\n\t\t\t\t\tvar additions = 0,\n\t\t\t\t\t\tremovals = 0,\n\t\t\t\t\t\taddedNodes,\n\t\t\t\t\t\taddedClassList,\n\t\t\t\t\t\tremovedClassList,\n\t\t\t\t\t\tremovedNodes;\n\n\t\t\t\t\t_.each(\n\t\t\t\t\t\tmutations,\n\t\t\t\t\t\tfunction(mutation, k) {\n\t\t\t\t\t\t\taddedNodes = mutation.addedNodes;\n\t\t\t\t\t\t\taddedClassList =\n\t\t\t\t\t\t\t\taddedNodes && addedNodes.length && addedNodes[0].classList;\n\t\t\t\t\t\t\tif (addedClassList && !addedClassList.contains('dummy')) {\n\t\t\t\t\t\t\t\tadditions++;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tremovedNodes = mutation.removedNodes;\n\t\t\t\t\t\t\tremovedClassList =\n\t\t\t\t\t\t\t\tremovedNodes &&\n\t\t\t\t\t\t\t\tremovedNodes.length &&\n\t\t\t\t\t\t\t\tremovedNodes[0].classList;\n\t\t\t\t\t\t\tif (removedClassList && !removedClassList.contains('dummy')) {\n\t\t\t\t\t\t\t\tremovals++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tthis,\n\t\t\t\t\t);\n\n\t\t\t\t\tif (additions || removals) {\n\t\t\t\t\t\tthis.debouncedUpdateItems();\n\t\t\t\t\t}\n\t\t\t\t}, this),\n\t\t\t);\n\t\t\tthis.observer.observe(this.el[0], {childList: true});\n\t\t}\n\n\t\tthis.initialized = true;\n\n\t\treturn this;\n\t},\n\t/**\n\t * Calculate bounding container\n\t * @method\n\t */\n\tcalculateBoundContainer: function() {\n\t\tif (!this.el || this.el.isHidden()) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar $boundContainer = this.$boundContainer;\n\t\tvar boundContainer = (this.boundContainer =\n\t\t\tthis.options.boundContainer !== window\n\t\t\t\t? {\n\t\t\t\t\t\tw: $boundContainer.outerWidth(true),\n\t\t\t\t\t\th: $boundContainer.outerHeight(true),\n\t\t\t\t\t\toffset: $boundContainer.offset(),\n\t\t\t\t\t\tposition: $boundContainer.position(),\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\tw: $boundContainer.outerWidth(true),\n\t\t\t\t\t\th: $boundContainer.outerHeight(true),\n\t\t\t\t\t\toffset: {top: 0, left: 0},\n\t\t\t\t\t\tposition: {top: 0, left: 0},\n\t\t\t\t });\n\n\t\tvar offset = boundContainer.offset;\n\t\t_.extend(boundContainer, {\n\t\t\tx: offset.left,\n\t\t\ty: offset.top,\n\t\t\tx2: offset.left + boundContainer.w,\n\t\t\ty2: offset.top + boundContainer.h,\n\t\t});\n\n\t\tthis.calculateScrollContainer();\n\t\tthis.calculateScrollBoundOffset();\n\t},\n\t/**\n\t * Calculate scrolling container\n\t * @method\n\t */\n\tcalculateScrollContainer: function() {\n\t\tif (!this.el || this.el.isHidden()) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar $scrollContainer = this.$scrollContainer;\n\t\tvar scrollContainer = (this.scrollContainer =\n\t\t\tthis.options.scrollContainer !== window\n\t\t\t\t? {\n\t\t\t\t\t\tw: $scrollContainer.outerWidth(true),\n\t\t\t\t\t\th: $scrollContainer.outerHeight(true),\n\t\t\t\t\t\toffset: $scrollContainer.offset(),\n\t\t\t\t\t\tposition: $scrollContainer.position(),\n\t\t\t\t\t\tscroll: {\n\t\t\t\t\t\t\tx: $scrollContainer.scrollLeft(),\n\t\t\t\t\t\t\ty: $scrollContainer.scrollTop(),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tscrollHeight: $scrollContainer[0].scrollHeight,\n\t\t\t\t\t\tscrollWidth: $scrollContainer[0].scrollWidth,\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\tw: $scrollContainer.outerWidth(true),\n\t\t\t\t\t\th: $scrollContainer.outerHeight(true),\n\t\t\t\t\t\toffset: {top: 0, left: 0},\n\t\t\t\t\t\tposition: {top: 0, left: 0},\n\t\t\t\t\t\tscroll: {\n\t\t\t\t\t\t\tx: this.$scrollContainer.scrollLeft(),\n\t\t\t\t\t\t\ty: this.$scrollContainer.scrollTop(),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tscrollHeight: $scrollContainer[0].scrollHeight,\n\t\t\t\t\t\tscrollWidth: $scrollContainer[0].scrollWidth,\n\t\t\t\t });\n\n\t\tvar offset = this.scrollContainer.offset;\n\t\t_.extend(this.scrollContainer, {\n\t\t\tx: offset.left,\n\t\t\ty: offset.top,\n\t\t\tx2: offset.left + scrollContainer.w,\n\t\t\ty2: offset.top + scrollContainer.h,\n\t\t});\n\n\t\tthis.calculateScrollBoundOffset();\n\t},\n\t/**\n\t * Calculate scroll bound offset\n\t * @method\n\t */\n\tcalculateScrollBoundOffset: function() {\n\t\tif (\n\t\t\t!_.isUndefined(this.scrollContainer) &&\n\t\t\t!_.isUndefined(this.boundContainer) &&\n\t\t\tthis.$boundContainer[0] !== this.$scrollContainer[0]\n\t\t) {\n\t\t\tvar boundContainer = this.boundContainer,\n\t\t\t\tscrollContainer = this.scrollContainer;\n\n\t\t\t_.extend(boundContainer, {\n\t\t\t\trelative: {\n\t\t\t\t\tx: boundContainer.x - scrollContainer.x,\n\t\t\t\t\ty: boundContainer.y - scrollContainer.y,\n\t\t\t\t\tx2: boundContainer.x - scrollContainer.x + boundContainer.w,\n\t\t\t\t\ty2: boundContainer.y - scrollContainer.y + boundContainer.h,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t},\n\t/**\n\t * Calculate item bound offset\n\t * @method\n\t */\n\tcalculateItemBoundOffset: function() {\n\t\tif (\n\t\t\t!_.isUndefined(this.itemContainer) &&\n\t\t\t!_.isUndefined(this.boundContainer)\n\t\t) {\n\t\t\tvar boundContainer = this.boundContainer,\n\t\t\t\titemContainer = this.itemContainer;\n\n\t\t\t_.extend(itemContainer, {\n\t\t\t\trelative: {\n\t\t\t\t\tx: itemContainer.x - boundContainer.x,\n\t\t\t\t\ty: itemContainer.y - boundContainer.y,\n\t\t\t\t\tx2: itemContainer.x - boundContainer.x + itemContainer.w,\n\t\t\t\t\ty2: itemContainer.y - boundContainer.y + itemContainer.h,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t},\n\t/**\n\t * Destruction\n\t * I strongly recommend overriding this\n\t * @returns {object} this\n\t */\n\tdestroy: function() {\n\t\tif (this.lingerTimer) clearInterval(this.lingerTimer);\n\n\t\tdelete this.items;\n\n\t\t// Kill all events in our namespace\n\t\tthis.el\n\t\t\t.off(this.ns)\n\t\t\t.children()\n\t\t\t.off(this.ns);\n\t\tthis.$doc && this.$doc.off(this.ns);\n\t\tthis.$scrollContainer && this.$scrollContainer.off(this.ns);\n\t\tthis.$win && this.$win.off(this.ns);\n\t\t//this.el.off( this.ns );\n\t\tthis.el.removeData('netxDrag');\n\t\tthis.observer && this.observer.disconnect();\n\n\t\tdelete this.el;\n\n\t\treturn this;\n\t},\n\t/**\n\t * Events\n\t * I strongly recommend against overriding this\n\t * @returns {object} this\n\t */\n\t_events: function() {\n\t\tthis.pntr_evts = {\n\t\t\tstart: this._nsEvent('touchstart') + ' ' + this._nsEvent('mousedown'), // Drag start\n\t\t\tmove: this._nsEvent('touchmove') + ' ' + this._nsEvent('mousemove'), // Dragging\n\t\t\tend: this._nsEvent('touchend') + ' ' + this._nsEvent('mouseup'), // Drag end\n\t\t};\n\n\t\t// Attach start event\n\t\t(this.$proxyEl || this.el)\n\t\t\t.off(this.pntr_evts.start)\n\t\t\t.on(\n\t\t\t\tthis.pntr_evts.start,\n\t\t\t\tthis.targetItems,\n\t\t\t\t_.bind(this._dragHandler, this),\n\t\t\t);\n\n\t\t// Dragging stopped\n\t\tthis.$doc.off(this.pntr_evts.end).on(\n\t\t\tthis.pntr_evts.end,\n\t\t\t_.bind(function(e) {\n\t\t\t\t// No outsiders\n\t\t\t\t// if( !this.is_touch ) {\n\t\t\t\t// \te.stopPropagation();\n\t\t\t\t// \te.preventDefault();\n\t\t\t\t// }\n\n\t\t\t\t// Drag is over, baby. Drag is over.\n\t\t\t\tthis.is_dragging = false;\n\n\t\t\t\t// Get out of here!\n\t\t\t\tif (!this.el || this.disabled || this.el.isHidden()) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t\t// Kill the move event\n\t\t\t\tthis.$doc.off(this.pntr_evts.move);\n\n\t\t\t\t// Trigger drag stop event\n\t\t\t\tif (this.drag_start) {\n\t\t\t\t\tthis._onDragStop(e);\n\t\t\t\t}\n\t\t\t}, this),\n\t\t);\n\n\t\treturn this;\n\t},\n\t/**\n\t * Get drag data\n\t * Our data that will be returned on a callback\n\t * You're probably going to want to override this in most cases\n\t * Make sure you maintain this formatting of the return though\n\t *\tvar os \t\t\t= this._getOffset( e ); <- You're always going to want this\n\t *\tos.someProperty = someValue;\n\t *\treturn os;\n\t * @param {event} e MouseEvent\n\t * @returns {object} Drag data\n\t */\n\t_getDragData: function(e) {\n\t\tvar os = this._getOffset(e);\n\t\treturn os;\n\t},\n\t/**\n\t * Get drag event\n\t * Get event to send to DOM\n\t * @param {string} eStr The event name\n\t * @param {event} e The event that took place\n\t * @param {object} ui Specifics of the plugin to send with event\n\t * @returns {event} Event\n\t */\n\t_getDragEvent: function(eStr, e, ui) {\n\t\t// Maybe instead of a javascript event we might want to pass custom Netx events?\n\t\t// Have to do it this way for IE\n\t\tvar _e = document.createEvent('MouseEvent');\n\t\tif (typeof e === 'undefined') {\n\t\t\te = {};\n\t\t}\n\t\t_e.initMouseEvent(\n\t\t\teStr,\n\t\t\ttrue,\n\t\t\ttrue,\n\t\t\twindow,\n\t\t\t0,\n\t\t\te.screenX,\n\t\t\te.screenY,\n\t\t\te.clientX,\n\t\t\te.clientY,\n\t\t\te.ctrlKey,\n\t\t\te.altKey,\n\t\t\te.shiftKey,\n\t\t\te.metaKey,\n\t\t\t0,\n\t\t\tnull,\n\t\t);\n\t\tif (typeof this.ui !== 'undefined') {\n\t\t\t_e.ui = this.ui;\n\t\t}\n\t\treturn _e;\n\t},\n\t/**\n\t * Get mouse position\n\t * Regulates mouse position for desktop and mobile\n\t * More than likely you're going to want to leave this alone\n\t * @param {event} e MouseEvent\n\t * @returns {object} Positions as left and top\n\t */\n\t_getMousePos: function(e) {\n\t\t// Check for touches\n\t\tif (e.originalEvent && e.originalEvent.touches) {\n\t\t\tvar oe = e.originalEvent;\n\t\t\te = oe.touches.length ? oe.touches[0] : oe.changedTouches[0];\n\t\t}\n\t\treturn {\n\t\t\tleft: e.clientX,\n\t\t\ttop: e.clientY,\n\t\t};\n\t},\n\t/**\n\t * Get offset\n\t * Item/Mouse position for dragged item\n\t * More than likely you're going to want to leave this alone\n\t * @param {event} e Event\n\t * @returns {object} Positions and Pointers\n\t */\n\t_getOffset: function(e) {\n\t\tvar adjustX = 0,\n\t\t\tadjustY = 0,\n\t\t\thelperHeight,\n\t\t\thelperOffset,\n\t\t\thelperWidth,\n\t\t\tdiff_x,\n\t\t\tdiff_y,\n\t\t\tleft,\n\t\t\tms_actl_pos,\n\t\t\tposition,\n\t\t\ttop;\n\n\t\t// Compensate for sizing difference (styles applied)\n\t\tif (this.$helper) {\n\t\t\thelperHeight = this.$helper.outerHeight();\n\t\t\thelperWidth = this.$helper.outerWidth();\n\t\t\thelperOffset = this.$helper.offset() || {left: 0, top: 0};\n\t\t\tadjustX = (helperWidth - this.$item.outerWidth()) / 2;\n\t\t\tadjustY = (helperHeight - this.$item.outerHeight()) / 2;\n\t\t}\n\n\t\t// Mouse pos\n\t\tms_actl_pos = this._getMousePos(e);\n\t\t// Keep in bounds\n\t\tif (ms_actl_pos.top > this.win_size.h) {\n\t\t\tms_actl_pos.top = this.win_size.h;\n\t\t}\n\t\tif (ms_actl_pos.left > this.win_size.w) {\n\t\t\tms_actl_pos.left = this.win_size.w;\n\t\t}\n\n\t\t// difference in movement x\n\t\tdiff_x = round(ms_actl_pos.left - this.ms_init_pos.left);\n\t\t// difference in movement y\n\t\tdiff_y = round(ms_actl_pos.top - this.ms_init_pos.top);\n\t\t// new position x\n\t\tleft = round(this.el_init_os.left + diff_x + this.scrollContainer.scroll.x);\n\t\t// new position y\n\t\ttop = round(this.el_init_os.top + diff_y + this.scrollContainer.scroll.y);\n\n\t\t// Take into account size adjustment\n\t\tleft -= adjustX;\n\t\ttop -= adjustY;\n\n\t\t// Center our helper element\n\t\tif (this.$helper) {\n\t\t\tleft =\n\t\t\t\tleft +\n\t\t\t\t(ms_actl_pos.left + this.scrollContainer.scroll.x - left) -\n\t\t\t\thelperWidth / 2;\n\t\t\ttop =\n\t\t\t\ttop +\n\t\t\t\t(ms_actl_pos.top + this.scrollContainer.scroll.y - top) -\n\t\t\t\thelperHeight / 2;\n\t\t}\n\n\t\t//console.log( ms_actl_pos.top );\n\t\tif (this.options.boundContainer != window) {\n\t\t\tposition = this.$boundContainer.css('position');\n\t\t\tif (\n\t\t\t\tposition == 'absolute' ||\n\t\t\t\tposition == 'relative' ||\n\t\t\t\tposition == 'fixed'\n\t\t\t) {\n\t\t\t\t// Take into account bound container offset left\n\t\t\t\tleft -= this.boundContainer.x;\n\t\t\t\t// Take into account bound container offset top\n\t\t\t\ttop -= this.boundContainer.y;\n\t\t\t}\n\t\t} else {\n\t\t\t// If the initializing element is not the target element\n\t\t\tif ((this.$proxyEl || this.el)[0] != this.targetItem[0]) {\n\t\t\t\t// Take off the scroll top\n\t\t\t\ttop -= this.scrollContainer.scroll.y;\n\t\t\t\t// Take off the scroll left\n\t\t\t\tleft -= this.scrollContainer.scroll.x;\n\t\t\t}\n\t\t\tleft -= this.win_scroll_x;\n\t\t\ttop -= this.win_scroll_y;\n\t\t}\n\n\t\tif (this.itemContainer) {\n\t\t\tif (left < this.boundContainer.x) {\n\t\t\t\tleft = this.boundContainer.x;\n\t\t\t}\n\t\t\tif (left + this.itemContainer.w > this.boundContainer.x2) {\n\t\t\t\tleft = this.boundContainer.x2 - this.itemContainer.w;\n\t\t\t}\n\t\t\tif (top < this.boundContainer.y) {\n\t\t\t\ttop = this.boundContainer.y;\n\t\t\t}\n\t\t\tif (top > this.boundContainer.y2 - this.itemContainer.h) {\n\t\t\t\ttop = this.boundContainer.y2 - this.itemContainer.h;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tposition: {\n\t\t\t\tleft: left,\n\t\t\t\ttop: top,\n\t\t\t},\n\t\t\tpointer: {\n\t\t\t\t// actual mouse position x\n\t\t\t\tleft: ms_actl_pos.left,\n\t\t\t\t// actual mouse position y\n\t\t\t\ttop: ms_actl_pos.top,\n\t\t\t\t// + ( scrlLeft - this.win_scroll_x )\tWas needed- not no more... but yeah.. maybe one day\n\t\t\t\tdiff_left: diff_x,\n\t\t\t\t// + ( scrlTop - this.win_scroll_y )\tWas needed- not no more... but yeah.. maybe one day\n\t\t\t\tdiff_top: diff_y,\n\t\t\t},\n\t\t};\n\t},\n\t/**\n\t * Ignore drag\n\t * Check if element shoudl be ignored for dragging\n\t * More than likely you're going to want to override this\n\t * @param {event} e Event\n\t * @returns {bool} Whether or not to ignore\n\t */\n\t_ignoreDrag: function(e) {\n\t\tif (this.options.handle) {\n\t\t\treturn !$(e.target).is(this.options.handle);\n\t\t}\n\t\treturn false;\n\t},\n\t/**\n\t * Manage scroll\n\t * Handle page scrolling during drag\n\t * Calls this._scrollIn()\n\t * @param {object} data The object returned from this._getOffset()\n\t * @returns {object} this\n\t */\n\t_manageScroll: function(data) {\n\t\tthis._scrollIn('x', data);\n\t\tthis._scrollIn('y', data);\n\t\t// Chain it\n\t\treturn this;\n\t},\n\t/**\n\t * Namespace your events\n\t * Append our namespace to event strings\n\t * @param {string} eStr Event name\n\t * @returns {string} Event name namespaced\n\t */\n\t_nsEvent: function(eStr) {\n\t\treturn (eStr || '') + this.ns;\n\t},\n\t/**\n\t * Do scrolling\n\t * More than likely you're going to want to leave this alone\n\t * Called by this._manageScroll(),\n\t * @param {string} axis X or Y (defaults to Y)\n\t * @param {object} data The object returned from this._getOffset()\n\t * @returns {object} this\n\t */\n\t_scrollIn: function(axis, data) {\n\t\tif (this.itemContainer) {\n\t\t\tvar maxX, maxY, scrollTo;\n\t\t\tscrollTo = 0;\n\t\t\tmaxX = this.scrollContainer.scrollWidth - this.scrollContainer.w;\n\t\t\tmaxY = this.scrollContainer.scrollHeight - this.scrollContainer.h;\n\t\t\tif (axis == 'y') {\n\t\t\t\tif (\n\t\t\t\t\tdata.pointer.top + this.options.scrollAreaSize >\n\t\t\t\t\tthis.scrollContainer.y2\n\t\t\t\t) {\n\t\t\t\t\tscrollTo =\n\t\t\t\t\t\tthis.scrollContainer.scroll.y + this.options.scrollIncrement;\n\t\t\t\t\tthis.scrollContainer.scroll.y = scrollTo <= maxY ? scrollTo : maxY;\n\t\t\t\t\tthis.$scrollContainer.scrollTop(this.scrollContainer.scroll.y);\n\t\t\t\t} else if (\n\t\t\t\t\tdata.pointer.top - this.options.scrollAreaSize <\n\t\t\t\t\tthis.scrollContainer.y\n\t\t\t\t) {\n\t\t\t\t\tscrollTo =\n\t\t\t\t\t\tthis.scrollContainer.scroll.y - this.options.scrollIncrement;\n\t\t\t\t\tthis.scrollContainer.scroll.y = scrollTo >= 0 ? scrollTo : 0;\n\t\t\t\t\tthis.$scrollContainer.scrollTop(this.scrollContainer.scroll.y);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (axis == 'x') {\n\t\t\t\tif (\n\t\t\t\t\tdata.pointer.left + this.options.scrollAreaSize >\n\t\t\t\t\tthis.scrollContainer.x2\n\t\t\t\t) {\n\t\t\t\t\tscrollTo =\n\t\t\t\t\t\tthis.scrollContainer.scroll.x + this.options.scrollIncrement;\n\t\t\t\t\tthis.scrollContainer.scroll.x = scrollTo <= maxX ? scrollTo : maxX;\n\t\t\t\t\tthis.$scrollContainer.scrollLeft(this.scrollContainer.scroll.x);\n\t\t\t\t} else if (\n\t\t\t\t\tdata.pointer.left - this.options.scrollAreaSize <\n\t\t\t\t\tthis.scrollContainer.x\n\t\t\t\t) {\n\t\t\t\t\tscrollTo =\n\t\t\t\t\t\tthis.scrollContainer.scroll.x - this.options.scrollIncrement;\n\t\t\t\t\tthis.scrollContainer.scroll.x = scrollTo >= 0 ? scrollTo : 0;\n\t\t\t\t\tthis.$scrollContainer.scrollLeft(this.scrollContainer.scroll.x);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\tlingered: function() {\n\t\tif (this.lingeredAlertTimer) clearTimeout(this.lingeredAlertTimer);\n\t\tthis.lingeredAlertTimer = setTimeout(_.bind(this.updateItems, this), 500);\n\t},\n\tupdateItems: function() {},\n\t/**\n\t * Update sizes\n\t * Gets our window and document sizes\n\t * More than likely you're going to want to leave this alone\n\t * @returns {object} this\n\t */\n\t_updateStageSize: _.throttle(function() {\n\t\tthis.win_size.h = this.$win.height();\n\t\tthis.win_size.w = this.$win.width();\n\t\t// Chain it\n\t\treturn this;\n\t}, 200),\n\t/**\n\t * _dragHandler\n\t * Fires immediately on touch/mousedown\n\t * If you override this you will want to call super, I guarantee it\n\t * Best to override the empty function this.dragHandler() (notice the lack of an underscore)\n\t * @param {event} e MouseEvent\n\t * @returns {object} this\n\t */\n\t_dragHandler: function(e) {\n\t\t// Shh... Don't let anyone else know\n\t\t// moved to line 510 to appease touch devices\n\t\t//e.preventDefault();\n\t\t//e.stopImmediatePropagation();\n\n\t\t// Check the validity of the drag\n\t\tif (\n\t\t\t!this.el ||\n\t\t\tthis.disabled ||\n\t\t\t(e.which !== 1 && !this.is_touch) ||\n\t\t\tthis.el.isHidden()\n\t\t) {\n\t\t\t// Don't be disabled, e.which must be 1 or this must be a touch\n\t\t\treturn this;\n\t\t}\n\n\t\t// Check if this is an allowed draggable item\n\t\t// Returns false if it is to be ignored\n\t\tif (this._ignoreDrag(e)) {\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.diff_top_correction = 0;\n\n\t\tthis._updateStageSize();\n\t\tthis.calculateBoundContainer();\n\t\tthis.calculateScrollContainer();\n\n\t\t// Initial mouse position\n\t\tthis.ms_init_pos = this._getMousePos(e);\n\n\t\t// If this has not been extended by another plugin\n\t\tif (this.stand_alone) {\n\t\t\t// Current item\n\t\t\tthis.targetItem = $(e.currentTarget);\n\t\t}\n\n\t\t// Get initial position\n\t\t// Item's initial position\n\t\tthis.el_init_pos = this.targetItem.position();\n\t\t// Item's initial offset\n\t\tthis.el_init_os = this.targetItem.offset();\n\t\t// Make sure this is the first move event\n\t\tvar first = true;\n\n\t\tvar mouseMove = _.bind(function(mse) {\n\t\t\t// Positioning based on mouse\n\t\t\tvar ms_actl_pos = this._getMousePos(mse), // Where the mouse is now\n\t\t\t\tdiff_x = abs(ms_actl_pos.left - this.ms_init_pos.left), // How much the mouse has moved from the left\n\t\t\t\tdiff_y = abs(ms_actl_pos.top - this.ms_init_pos.top); // How much the mouse has moved from the top\n\n\t\t\t// Make sure there was adequate movement to make any of this worthwhile\n\t\t\tif (!(diff_x > this.options.distance || diff_y > this.options.distance)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Shh... Don't let anyone else know.\n\t\t\tmse.stopPropagation();\n\t\t\tmse.preventDefault();\n\n\t\t\t// If the first movement of current item\n\t\t\tif (first) {\n\t\t\t\tfirst = false;\n\t\t\t\tthis._onDragStart.call(this, mse);\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// The item is moving and has already been initialized\n\t\t\tif (this.is_dragging === true) {\n\t\t\t\tthis._onDragMove.call(this, mse);\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}, this);\n\n\t\t// Mouse is moving\n\t\tthis.$doc\n\t\t\t.off(this.pntr_evts.move)\n\t\t\t.on(this.pntr_evts.move, _.throttle(mouseMove, 20));\n\n\t\t// If desktop return false for the event\n\t\tif (!this.is_touch) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\t// TODO: Abandon this monster I wrote and use of of the 3 third party drag libs\n\t\t\t// we now have\n\t\t\t// The only thing we have that they don't, currently, is the idea of \"loitering\"\n\t\t\t// where you drag an item over another item for long enough it will send out an event\n\t\t\t// we could just rethink that - as all drag libs have a drag over and we can have\n\t\t\t// the things that want to repsond to that handle when they respond (like if a drag\n\t\t\t// over occcurs and a drag out does not occir within so much time - take that as the\n\t\t\t// \"loitering\" event)\n\t\t\t// We need to kill focus to any input thast may have been focused\n\t\t\tif (\"activeElement\" in document) {\n\t\t\t\tdocument.activeElement.blur();\n\t\t\t}\n\n\t\t\treturn this;\n\t\t}\n\n\t\t// Go on to more specific things\n\t\tthis.onDragHandler(e);\n\n\t\treturn this;\n\t},\n\tonDragHandler: function(e) {},\n\t/**\n\t * _onDragStart\n\t * Is called once per drag by this._dragHandler()\n\t * If you override this you will want to call super, I guarantee it\n\t * Best to override the empty function this.onDragStart() (notice the lack of an underscore)\n\t * @param {event} e MouseEvent\n\t * @returns {object} this\n\t */\n\t_onDragStart: function(e) {\n\t\t// Shh... Don't let anyone else know.\n\t\t//e.stopImmediatePropagation();\n\t\t//e.preventDefault();\n\n\t\t// Already dragging - whay are you here then?\n\t\tif (this.is_dragging) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Keep cruising\n\t\tthis.drag_start = this.is_dragging = true;\n\n\t\t// Store initial positions\n\t\tthis.win_scroll_x = this.$win.scrollLeft();\n\t\tthis.win_scroll_y = this.$win.scrollTop();\n\t\tthis.con_scroll_x = this.scrollContainer.scroll.x; //this.$scrollContainer.scrollLeft();\n\t\tthis.con_scroll_y = this.scrollContainer.scroll.y; //this.$scrollContainer.scrollTop();\n\n\t\t// Our ui data\n\t\tthis.ui = this._getDragData(e);\n\n\t\t// Trigger drag start callback\n\t\tif (this.options.dragstart) {\n\t\t\tthis.options.dragstart.call(\n\t\t\t\tthis.$item,\n\t\t\t\tthis._getDragEvent('dragstart', e),\n\t\t\t\tthis.ui,\n\t\t\t);\n\t\t}\n\t\t// If this has not been extended by another plugin\n\t\tif (this.stand_alone) {\n\t\t\tthis.targetItem[0].dispatchEvent(\n\t\t\t\tthis._getDragEvent('dragstart', e, this.ui),\n\t\t\t);\n\t\t}\n\n\t\t// Go on to more specific things\n\t\tthis.onDragStart(e);\n\n\t\tif (!this.is_touch) {\n\t\t\te.preventDefault();\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\t// Check for lingerers so we can let the dom know (maybe we want to open an item)\n\t\tif (this.lingerTimer) clearInterval(this.lingerTimer);\n\t\tif (this.$curr_zones) {\n\t\t\tthis.lingerTimer = setInterval(\n\t\t\t\t_.bind(function() {\n\t\t\t\t\tif (this.$curr_zones.length) {\n\t\t\t\t\t\t// We only care about the last zone\n\t\t\t\t\t\tvar zone = _.last(this.$curr_zones);\n\t\t\t\t\t\tzone.lingered++;\n\t\t\t\t\t\tif (!zone.el.classList.contains('dummy') && zone.lingered === 3) {\n\t\t\t\t\t\t\tthis.lingered();\n\t\t\t\t\t\t\t// The object passed back with the event\n\t\t\t\t\t\t\t_.extend(this.ui, {\n\t\t\t\t\t\t\t\tzone: zone.el,\n\t\t\t\t\t\t\t\titem: this.$item,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t// Trigger callback\n\t\t\t\t\t\t\tvar _e = this._getDragEvent('loitering', e, this.ui);\n\t\t\t\t\t\t\t// Let the container know we have a loiterer\n\t\t\t\t\t\t\tthis.el[0].dispatchEvent(_e);\n\t\t\t\t\t\t\t// Let the zone know we have a loiterer\n\t\t\t\t\t\t\tzone.el.dispatchEvent(_e);\n\t\t\t\t\t\t\tif (this.options.loitering) {\n\t\t\t\t\t\t\t\tthis.options.loitering.call(\n\t\t\t\t\t\t\t\t\tthis.$item,\n\t\t\t\t\t\t\t\t\tthis._getDragEvent('loitering', e),\n\t\t\t\t\t\t\t\t\tthis.ui,\n\t\t\t\t\t\t\t\t);\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}, this),\n\t\t\t\t500,\n\t\t\t);\n\t\t}\n\n\t\treturn this;\n\t},\n\tonDragStart: function(e) {\n\t\t// If this has not been extended by another plugin\n\t\tif (this.stand_alone) {\n\t\t\tthis.targetItem.addClass(this.options.draggingClass);\n\t\t}\n\t},\n\t/**\n\t * _onDragMove\n\t * Is fired by _this.dragHandler() every time the touch/mouse moves during a drag\n\t * If you override this you will want to call super, I guarantee it\n\t * Best to override the empty function this.onDragMove() (notice the lack of an underscore)\n\t * @param {event} e MouseEvent\n\t * @returns {object} this\n\t */\n\t_onDragMove: function(e) {\n\t\tthis.ui = this._getDragData(e);\n\n\t\t// Let's scroll?\n\t\tthis.options.autoscroll && this._manageScroll(this.ui);\n\n\t\tvar last_pos = this.last_pos || this.ui.position;\n\t\tthis.ui.prev_position = last_pos;\n\t\t// Store position\n\t\tthis.last_pos = this.ui.position;\n\n\t\t// If this has not been extended by another plugin\n\t\tif (this.stand_alone) {\n\t\t\t// Update position\n\t\t\tvar left = this.ui.position.left,\n\t\t\t\ttop = this.ui.position.top,\n\t\t\t\tposition = this.el.css('position');\n\n\t\t\tif (\n\t\t\t\tthis.options.boundContainer == window &&\n\t\t\t\tthis.el.parent()[0] != $('body')[0]\n\t\t\t) {\n\t\t\t\tvar os = this.el.parent().offset();\n\t\t\t\tleft -= os.left;\n\t\t\t\ttop -= os.top;\n\t\t\t}\n\n\t\t\tthis.targetItem.css({\n\t\t\t\tposition: position == 'relative' ? 'absolute' : position,\n\t\t\t\tleft: left,\n\t\t\t\ttop: top,\n\t\t\t\tdisplay: 'block',\n\t\t\t\tzIndex: 999,\n\t\t\t});\n\t\t}\n\n\t\t// Trigger dragging callback\n\t\tif (this.options.drag) {\n\t\t\tthis.options.drag.call(\n\t\t\t\tthis.$item,\n\t\t\t\tthis._getDragEvent('drag', e),\n\t\t\t\tthis.ui,\n\t\t\t);\n\t\t}\n\t\t// If this has not been extended by another plugin\n\t\tif (this.stand_alone) {\n\t\t\tthis.targetItem[0].dispatchEvent(this._getDragEvent('drag', e, this.ui));\n\t\t}\n\n\t\tthis.onDragMove(e);\n\n\t\treturn this;\n\t},\n\tonDragMove: function(e) {},\n\t/**\n\t * _onDragStop\n\t * Fires when the mouse/touch has ended after a drag\n\t * If you override this you will want to call super, I guarantee it\n\t * Best to override the empty function this.onDragStop() (notice the lack of an underscore)\n\t * @param {event} e MouseEvent\n\t * @returns {object} this\n\t */\n\t_onDragStop: function(e) {\n\t\t// Then why are we here?!\n\t\tif (!this.drag_start) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Kill our loitering (lingerers, man) timer\n\t\tthis.lingerTimer && clearInterval(this.lingerTimer);\n\n\t\tthis.ui = this._getDragData(e);\n\n\t\t// It's all over\n\t\tthis.drag_start = this.is_dragging = false;\n\n\t\t// Call stop callback\n\t\tif (this.options.dragend) {\n\t\t\tthis.options.dragend.call(\n\t\t\t\tthis.$item,\n\t\t\t\tthis._getDragEvent('dragend', e),\n\t\t\t\tthis.ui,\n\t\t\t);\n\t\t}\n\t\t// If this has not been extended by another plugin\n\t\tif (this.stand_alone) {\n\t\t\tthis.targetItem[0].dispatchEvent(\n\t\t\t\tthis._getDragEvent('dragend', e, this.ui),\n\t\t\t);\n\t\t}\n\n\t\tthis.onDragStop(e);\n\n\t\treturn this;\n\t},\n\tonDragStop: function(e) {\n\t\t// If this has not been extended by another plugin\n\t\tif (this.stand_alone) {\n\t\t\tthis.targetItem.removeClass(this.options.draggingClass);\n\t\t}\n\t},\n};\n$.extend(NetxDrag.prototype, methods);\n\n// Make plugin accessible via jQuery namesapce\nfunction Plugin(option) {\n\tvar _arguments = arguments;\n\n\treturn this.each(function() {\n\t\tvar $this = $(this),\n\t\t\tdrag = $this.data('netxDrag'),\n\t\t\toptions = $.extend(\n\t\t\t\t{},\n\t\t\t\t$.fn.netxDrag.defaults,\n\t\t\t\ttypeof option === 'object' ? option : {},\n\t\t\t);\n\n\t\tif (drag) {\n\t\t\tif (typeof option === 'object' || !option) {\n\t\t\t\tdrag.init();\n\t\t\t} else if (option.charAt(0) !== '_' && drag[option]) {\n\t\t\t\tdrag[option](_arguments[1]);\n\t\t\t} else {\n\t\t\t\tdrag.init();\n\t\t\t}\n\t\t\treturn $this;\n\t\t} else if (option != 'destroy') {\n\t\t\tdrag = new NetxDrag(options, $this[0]);\n\t\t\t$this.data('netxDrag', drag);\n\t\t\treturn $this;\n\t\t}\n\t});\n}\n\n$.fn.netxDrag = Plugin;\n$.fn.netxDrag.Constructor = NetxDrag;\n\n// Defaults\n$.fn.netxDrag.defaults = {\n\tautoscroll: true, // Whether or not to scroll the page with dragging\n\tdistance: 5, // Minimum distance the select must be moved to trigger a drag\n\tdraggingClass: 'dragging', // Dragging class\n\thandle: false, // The handle\n\toffsetLeft: 0, // Left offset\n\toffsetTop: 0, // Top offset\n\tscrollContainer: window, // The container that is to be scrolled when dragging occurs\n\tboundContainer: window, // The container the item is bound to\n\tallowNegative: false,\n\tscrollIncrement: 15, // Amount to scroll at a time\n\tscrollAreaSize: 15, // How close you need to be to the edge to start a scroll\n\t// Callbacks\n\t// drag\t\t\t\t: function( event, ui ) {},\t// On dragging\n\t// dragstart \t\t: function( event, ui ) {},\t// On drag start\n\t// dragend \t\t\t: function( event, ui ) {},\t// On drag stop\n};\n\nexport default Plugin;\n"],"sourceRoot":""}