{"version":3,"sources":["webpack://TL/webpack/bootstrap","webpack://TL/./node_modules/dompurify/dist/purify.js","webpack://TL/./src/js/core/Browser.js","webpack://TL/./src/js/dom/DOM.js","webpack://TL/./src/js/dom/DOMUtil.js","webpack://TL/./src/js/core/TLError.js","webpack://TL/./src/js/core/Util.js","webpack://TL/./src/js/animation/Ease.js","webpack://TL/./src/js/core/TLClass.js","webpack://TL/./src/js/core/Events.js","webpack://TL/./src/js/animation/Animate.js","webpack://TL/./src/js/dom/DOMMixins.js","webpack://TL/./src/js/ui/Draggable.js","webpack://TL/./src/js/dom/DOMEvent.js","webpack://TL/./src/js/net/Net.js","webpack://TL/./src/js/date/TLDate.js","webpack://TL/./src/js/language/Language.js","webpack://TL/./src/js/language/I18NMixins.js","webpack://TL/./src/js/ui/Message.js","webpack://TL/./src/js/date/DateUtil.js","webpack://TL/./src/js/core/TimelineConfig.js","webpack://TL/./src/js/core/CSV.js","webpack://TL/./src/js/core/ConfigFactory.js","webpack://TL/./src/js/timenav/AxisHelper.js","webpack://TL/./src/js/timenav/TimeScale.js","webpack://TL/./src/js/timenav/TimeGroup.js","webpack://TL/./src/js/timenav/TimeEra.js","webpack://TL/./src/js/timenav/TimeAxis.js","webpack://TL/./src/js/media/types/Text.js","webpack://TL/./src/js/media/Media.js","webpack://TL/./src/js/media/types/Image.js","webpack://TL/./src/js/core/Load.js","webpack://TL/./src/js/media/types/YouTube.js","webpack://TL/./src/js/media/types/GoogleMap.js","webpack://TL/./src/js/media/types/Blockquote.js","webpack://TL/./src/js/media/types/Wikipedia.js","webpack://TL/./src/js/media/types/SoundCloud.js","webpack://TL/./src/js/media/types/Vimeo.js","webpack://TL/./src/js/media/types/DailyMotion.js","webpack://TL/./src/js/media/types/Vine.js","webpack://TL/./src/js/media/types/Twitter.js","webpack://TL/./src/js/media/types/TwitterEmbed.js","webpack://TL/./src/js/media/types/Flickr.js","webpack://TL/./src/js/media/types/DocumentCloud.js","webpack://TL/./src/js/media/types/Instagram.js","webpack://TL/./src/js/media/types/Profile.js","webpack://TL/./src/js/media/types/GoogleDoc.js","webpack://TL/./src/js/media/types/Spotify.js","webpack://TL/./src/js/media/types/IFrame.js","webpack://TL/./src/js/media/types/Imgur.js","webpack://TL/./src/js/media/types/PDF.js","webpack://TL/./src/js/media/types/Audio.js","webpack://TL/./src/js/media/types/Video.js","webpack://TL/./src/js/media/types/Wistia.js","webpack://TL/./src/js/media/MediaType.js","webpack://TL/./src/js/timenav/TimeMarker.js","webpack://TL/./src/js/ui/Swipable.js","webpack://TL/./src/js/timenav/TimeNav.js","webpack://TL/./src/js/slider/Slide.js","webpack://TL/./src/js/slider/SlideNav.js","webpack://TL/./src/js/slider/StorySlider.js","webpack://TL/./src/js/ui/MenuBar.js","webpack://TL/./src/js/timeline/Timeline.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","seal","_ref","Reflect","apply","construct","fun","thisValue","args","x","Func","Function","concat","arr","Array","isArray","arr2","length","from","_toConsumableArray","func","arrayForEach","unapply","forEach","arrayPop","pop","arrayPush","push","stringToLowerCase","String","toLowerCase","stringMatch","match","stringReplace","replace","stringIndexOf","indexOf","stringTrim","trim","regExpTest","RegExp","test","typeErrorCreate","TypeError","_len2","arguments","_key2","thisArg","_len","_key","addToSet","set","array","element","lcElement","clone","newObject","lookupGetter","prop","desc","console","warn","html","svg","svgFilters","svgDisallowed","mathMl","mathMlDisallowed","text","html$1","svg$1","mathMl$1","xml","MUSTACHE_EXPR","ERB_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","_typeof","iterator","obj","constructor","_toConsumableArray$1","getGlobal","window","_createTrustedTypesPolicy","trustedTypes","document","createPolicy","suffix","currentScript","hasAttribute","getAttribute","policyName","createHTML","html$$1","_","createDOMPurify","undefined","DOMPurify","root","version","removed","nodeType","isSupported","originalDocument","DocumentFragment","HTMLTemplateElement","Node","Element","NodeFilter","_window$NamedNodeMap","NamedNodeMap","MozNamedAttrMap","Text","Comment","DOMParser","ElementPrototype","cloneNode","getNextSibling","getChildNodes","getParentNode","template","createElement","content","ownerDocument","trustedTypesPolicy","emptyHTML","RETURN_TRUSTED_TYPE","_document","implementation","createNodeIterator","getElementsByTagName","createDocumentFragment","importNode","documentMode","hooks","createHTMLDocument","MUSTACHE_EXPR$$1","ERB_EXPR$$1","DATA_ATTR$$1","ARIA_ATTR$$1","IS_SCRIPT_OR_DATA$$1","ATTR_WHITESPACE$$1","IS_ALLOWED_URI$$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","SAFE_FOR_TEMPLATES","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_DOM_IMPORT","SANITIZE_DOM","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","CONFIG","formElement","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","table","tbody","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","ALL_SVG_TAGS","ALL_MATHML_TAGS","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","_checkValidNamespace","parent","tagName","namespaceURI","parentTagName","Boolean","commonSvgAndHTMLElements","_forceRemove","node","parentNode","removeChild","outerHTML","remove","_removeAttribute","attribute","getAttributeNode","removeAttribute","setAttribute","_initDocument","dirty","doc","leadingWhitespace","matches","dirtyPayload","parseFromString","documentElement","body","firstElementChild","insertBefore","createTextNode","childNodes","_createIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","FILTER_ACCEPT","_isClobbered","elm","nodeName","textContent","attributes","_isNode","_executeHook","entryPoint","currentNode","data","hook","_sanitizeElements","allowedTags","innerHTML","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","attr","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","_attr","forceKeepAttr","setAttributeNS","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","nextNode","sanitize","importedNode","oldNode","returnNode","toString","toStaticHTML","appendChild","firstChild","nodeIterator","serializedHTML","setConfig","clearConfig","isValidAttribute","tag","addHook","hookFunction","removeHook","removeHooks","removeAllHooks","factory","ua","navigator","userAgent","phantomjs","ie","webkit","addEventListener","android23","search","mobile","orientation","msPointer","msPointerEnabled","msMaxTouchPoints","PointerEvent","pointer","pointerEnabled","maxTouchPoints","opera","firefox","edge","ie3d","style","webkit3d","WebKitCSSMatrix","gecko3d","opera3d","L_DISABLE_3D","retina","devicePixelRatio","media_matches","matchMedia","touch","L_NO_TOUCH","DocumentTouch","id","getElementById","className","container","el","getPosition","pos","y","isNaN","offsetLeft","offsetTop","offsetParent","testProp","props","addClass","hasClass","removeClass","w","TLError","Error","message_key","detail","super","this","message","css_named_colors","hexToRgb","hex","g","b","result","exec","parseInt","mergeData","data_main","data_to_merge","extend","dest","sources","slice","j","len","TRACE_HANDLERS","msg","cb","e","log","pad","val","stamp","lastId","str","classMixin","cls","src","_cl","getOwnPropertyNames","slugify","charAt","unique_ID","size","prefix","getRandomChar","range","substr","Math","floor","random","randomID","isEven","parseFloat","findArrayNumberByUniqueID","defaultVal","_n","unlinkify","unhtmlify","linkify","targets","is_touch","make_link","url","link_text","substring","url_sans_protocol","offset","string","prechar","beforePseudo","pseudoUrl","email","transformMediaURL","ratio","h","round","base58","base","alphabet","encode","enc","encoded","remainder","decode","dec","decoded","alphabetPosition","powerOf","pow","parseYouTubeTime","parts","hours","minutes","stripMarkup","txt","Easings","KeySpline","a","easeInSpline","easeOutStrong","easeInOutQuint","TLClass","NewClass","initialize","F","proto","superclass","statics","includes","options","include","type","fn","context","events","_tl_events","action","on","k","hasEventListeners","splice","removeEventListener","event","target","listeners","Animate","tlanimate","win","perf","performance","perfNow","now","webkitNow","msNow","mozNow","Date","fixTs","rgbOhex","relVal","numUnit","rotate","scale","skew","translate","unitless","lineHeight","zoom","zIndex","opacity","transform","styles","getStyle","defaultView","getComputedStyle","camelize","computed","currentStyle","filters","e1","e2","frame","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","callback","setTimeout","children","render","timestamp","count","die","f","rest","index","elem","has","parseTransform","values","by","skewx","skewy","translatex","translatey","formatTransform","v","toHex","m1","toUpperCase","nativeTween","sin","PI","tween","duration","done","ease","to","morpheus","easings","time","self","diff","start","stop","end","run","delta","isFinite","jump","bezier","points","getTweenVal","units","begin","finish","min","join","nextColor","elements","originalLeft","originalTop","els","complete","easing","bez","left","top","right","bottom","xy","unshift","unit","tmp","filter","animate","_el","display","onAdd","onRemove","ani","animator","fire","drag_elem","move_elem","drag","move","mousedrag","down","up","leave","touchdrag","enable","constraint","momentum_multiplier","dragevent","sliding","direction","pagex","pagey","new_pos","new_pos_parent","position","DOMEvent","removeListener","_onDragStart","_onDragEnd","originalEvent","touches","screenX","screenY","targetTouches","pageX","pageY","offsetWidth","offsetHeight","getTime","addListener","_onDragMove","_momentum","preventDefault","pos_adjust","pos_change","swipe","abs","_animateMomentum","$","handler","_getEvent","addDoubleTapListener","originalHandler","newType","_checkMouse","attachEvent","removeDoubleTapListener","detachEvent","related","relatedTarget","err","caller","callee","Event","stopPropagation","cancelBubble","disableClickPropagation","START","returnValue","getWheelDelta","wheelDelta","Zepto","classList","uniq","emptyArray","elementDisplay","classCache","cssNumber","fragmentRE","singleTagRE","tagExpanderRE","rootNodeRE","capitalRE","methodAttributes","tableRow","containers","readyRE","simpleSelectorRE","class2type","zepto","tempParent","propMap","isFunction","isWindow","isDocument","DOCUMENT_NODE","isObject","isPlainObject","likeArray","dasherize","classRE","maybeAddPx","map","source","deep","filtered","nodes","selector","funcArg","arg","idx","payload","klass","baseVal","deserializeValue","num","Number","parseJSON","traverseNode","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","temp","qsa","chr","item","properties","dom","$1","each","Z","__proto__","isZ","init","find","ready","shift","found","maybeID","maybeClass","nameOnly","isSimple","getElementsByClassName","querySelectorAll","contains","isEmptyObject","inArray","camelCase","uuid","support","expr","grep","JSON","parse","split","reduce","sort","readyState","toArray","every","not","add","is","excludes","eq","first","last","$this","some","closest","collection","parents","ancestors","pluck","contents","siblings","child","empty","show","getPropertyValue","replaceWith","newContent","before","wrap","structure","wrapAll","append","wrapInner","unwrap","hide","css","toggle","setting","prev","next","originHtml","removeAttr","multiple","selected","coordinates","coords","parentOffset","getBoundingClientRect","pageXOffset","pageYOffset","width","height","computedStyle","removeProperty","cssText","toggleClass","when","scrollTop","hasScrollTop","scrollTo","scrollX","scrollLeft","hasScrollLeft","scrollY","detach","dimension","dimensionProperty","operator","operatorIndex","inside","argType","copyByClone","nextSibling","_zid","isString","handlers","specialEvents","focusinSupported","focus","blur","hover","mouseenter","mouseleave","zid","findHandlers","matcher","sel","eventCapture","captureSetting","del","realEvent","delegator","capture","proxy","compatible","isImmediatePropagationStopped","_args","click","mousedown","mouseup","mousemove","proxyFn","unbind","off","one","returnTrue","returnFalse","ignoreProperties","eventMethods","stopImmediatePropagation","isDefaultPrevented","predicate","sourceMethod","defaultPrevented","getPreventDefault","createProxy","delegate","undelegate","live","autoRemove","evt","currentTarget","liveFired","trigger","dispatchEvent","triggerHandler","createEvent","bubbles","initEvent","jsonpID","rscript","scriptTypeRE","xmlTypeRE","blankRE","triggerGlobal","settings","eventName","global","triggerAndReturn","ajaxBeforeSend","xhr","beforeSend","ajaxSuccess","deferred","success","resolveWith","ajaxComplete","ajaxError","error","rejectWith","status","active","ajaxStop","appendQuery","query","parseArguments","dataType","hasData","ajaxJSONP","ajax","responseData","abortTimeout","_callbackName","jsonpCallback","callbackName","script","originalCallback","abort","errorType","promise","clearTimeout","head","timeout","ajaxSettings","XMLHttpRequest","accepts","json","crossDomain","processData","cache","Deferred","ajaxStart","$2","location","host","param","traditional","serializeData","hasPlaceholder","jsonp","mime","headers","setHeader","protocol","nativeSetHeader","setRequestHeader","mimeType","overrideMimeType","contentType","onreadystatechange","mimeToDataType","getResponseHeader","responseText","eval","responseXML","statusText","xhrFields","async","open","username","password","send","post","getJSON","fetchJSON","request","Promise","resolve","reject","load","response","escape","encodeURIComponent","params","serialize","scope","hash","serializeArray","disabled","checked","submit","__Z","nativeGetComputedStyle","pseudoElement","SCALES","setMilliseconds","setSeconds","setMinutes","setHours","setDate","setMonth","real_year","getFullYear","setFullYear","DATE_PARTS","ISO8601_SHORT_PATTERN","ISO8601_PATTERN","BEST_DATEFORMATS","millisecond","second","minute","hour","day","month","year","decade","century","millennium","age","epoch","era","eon","eon2","short","TLDate","format","format_short","date_obj","stringify","_createDateObj","_setFormat","setDateFormat","getDisplayDate","language","display_date","fallback","format_key","formatDate","getMillisecond","isBefore","other_date","isAfter","_getDateData","_date","ix","parsed","findBestFormat","variant","eval_array","parseDate","parseISODate","date","date_parts","time_parts","second_parts","BigYear","that","Floorer","a_big_year","BIG_DATE_SCALES","AGE","EPOCH","ERA","BigDate","floored","script_path","LANGUAGES","en","code","buildLanguageURL","then","catch","resp","lang_json","bigyear","format_name","the_year","format_list","bigdateformats","tuple","formatNumber","messages","formatJSDate","formatBigYear","js_date","formatPeriod","fmt","formats","period_labels","mask","dateformats","D","H","M","L","getTimezoneOffset","flags","dd","ddd","day_abbr","dddd","mm","mmm","month_abbr","mmmm","yy","yyyy","has_negative_year_modifier","hh","HH","MM","ss","tt","T","TT","S","formatted","DATE_FORMAT_TOKENS","$0","_applyEra","era_labels","negative_year","formatted_date","original_year","labels","positive_year","token","toFixed","lang","api","wikipedia","loading","contract_timeline","return_to_title","loading_content","expand_timeline","loading_timeline","swipe_to_navigate","unknown_read_err","invalid_url_err","invalid_url_share_required","network_err","empty_feed_err","missing_start_date_err","invalid_data_format_err","invalid_start_time_without_date","invalid_end_time_without_date","date_compare_err","invalid_scale_err","invalid_date_err","invalid_separator_error","invalid_hour_err","invalid_minute_err","invalid_second_err","invalid_fractional_err","invalid_second_fractional_err","invalid_year_err","flickr_notfound_err","flickr_invalidurl_err","imgur_invalidurl_err","twitter_invalidurl_err","twitter_load_err","twitterembed_invalidurl_err","wikipedia_load_err","youtube_invalidurl_err","spotify_invalid_url","template_value_err","invalid_rgb_err","time_scale_scale_err","axis_helper_no_options_err","axis_helper_scale_err","invalid_integer_option","instagram_bad_request","month_short","full_short","full","time_short","time_no_seconds_short","time_no_minutes_short","time_no_seconds_small_date","time_milliseconds","full_long","full_long_small_date","compact","verbose","getLanguage","setLanguage","message_container","loading_icon","message_class","message_icon_class","_initLayout","_initEvents","atributes","updateMessage","_onMouseClick","_onRemove","sortByDate","prop_name","parseTime","time_str","period","lastIndexOf","no_separators","hour_part","minute_part","sec_parts","frac_secs","VALID_INTEGER_PATTERN","validDateConfig","keys","SCALE_DATE_CLASSES","human","cosmological","SANITIZE_FIELDS","media","STRIP_MARKUP_FIELDS","start_date","end_date","slide","_process_fields","fieldmap","to_sanitize","_tl_sanitize","rel","title","eras","event_dict","errors","warnings","_ensureValidScale","title_id","_assignID","_tidyFields","addEvent","logError","era_data","addEra","sep","era_identifier","headline","defer_sort","event_id","_processDates","slide_id","unique_id","candidate","similar_ids","counter","ensureUniqueKey","used","slug","slide_or_era","dateCls","equal","dates","fillIn","default_value","group","fetchCSV","dataset","out","extractFields","useMemoryStore","fetch","status_code","dialect","rows","objects","records","record","fields","parseObjects","noFields","noHeaderRow","lineterminator","csvString","normalizeLineTerminator","delimiter","doublequote","quotechar","skipinitialspace","skipinitialrows","normalizeDialectOptions","chomp","processField","cur","inQuote","fieldQuoted","field","row","clean_integer","parseGoogleSpreadsheetURL","worksheet","key_pat","url_pat","tail","readGoogleAsCSV","sheets_proxy","url_or_key","startsWith","URL","URLSearchParams","base_path","pathname","makeGoogleCSVURL","error_json","proxy_err_code","timeline_config","row_type","handleRow","orig_row","bkgd","caption","credit","thumbnail","background","extractEventFromCSVObject","label","makeConfig","callback_or_options","tc","google_url","timeline_json","jsonFromGoogleURL","minor","major","pixels_per_milli","factor","timescale","_getTicks","option","factor_scale","_scaled_padding","first_tick_time","_earliest","last_tick_time","_latest","ticks","getDateFromTime","HELPERS","setHelpers","scale_type","scales","AXIS_TICK_DATEFORMAT_LOOKUP","slides","_scale","display_width","screen_multiplier","max_rows","_display_width","_screen_multiplier","_pixel_width","_group_labels","_positions","_pixels_per_milli","getEarliestDate","getLatestDate","_span_in_millis","_computeDefaultSpan","_average","getPixelWidth","_axis_helper","ts","optimal_tick_width","ts_scale","getScale","helpers","curr","pixels_per_tick","getPixelsPerTick","getBestHelper","_computePositionInfo","_number_of_rows","time_in_millis","getMajorTicks","getMinorTicks","groups","empty_group","positions","rows_left","lasts_in_row","n_overlaps","pos_info","overlaps","min_overlap","n_rows","default_marker_width","end_pos","group_info","gi","max","res","_computeRowInfo","row_offset","setPosition","alternate","class_name","content_container","_text","_state","loaded","marker_width_min","has_end_date","is_active","_updateDisplay","text_lines","webkitLineClamp","color_num","onLoaded","layout","axis_helper","minor_ticks","major_ticks","getTicks","_createTickElements","getAxisTickDateFormat","positionTicks","ts_ticks","tick_element","dateformat","ticks_to_skip","skip_times","tick_elements","ts_tick","tick","tick_text","tick_display_date","no_animate","_positionTickArray","tick_array","fraction_of_array","add_to_container","setData","headline_class","text_content","autolink","content_item","content_link","link","player","timer","load_timer","media_id","show_meta","media_loaded","credit_alternate","caption_alternate","link_target","api_key_flickr","api_key_googlemaps","api_key_embedly","credit_height","caption_height","loadingMessage","_loadMedia","trace","_media","_updateMessage","media_name","maxHeight","maxWidth","_updateMediaDisplay","_getImageURL","_stopMedia","media_type","showMeta","updateDisplay","getMeta","_getMeta","href","updateMediaDisplay","createMedia","image_class","domCreate","alt","onMediaLoaded","getImageURL","loadJS","urls","loader","js","loadCSS","pending","queue","styleSheets","env","getEnv","pollCount","attrs","gecko","unknown","pendingUrls","_finish","isCSS","createNode","pollWebKit","pollGecko","onload","onerror","hasRules","sheet","cssRules","ex","url_vars","youtube_loaded","hashes","vars","getUrlVars","hd","getPlayerState","YT","PlayerState","PLAYING","pauseVideo","Player","playerVars","enablejsapi","color","controls","fs","videoId","onReady","onPlayerReady","onStateChange","ENDED","seekTo","mapframe","frameBorder","makeGoogleMapsEmbedURL","dimensions","api_key","Streetview","param_defs","root_url_regex","coords_regex","address_regex","display_mode_regex","regexes","view","place","directions","parseDisplayMode","display_mode","param_string","mapmode","center","streetview_params","url_root","getParamString","determineMapModeURL","determineMapMode","blockquote","api_url","error_text","loadErrorDisplay","wiki","entry","extract","paragraphs","page_image","text_array","getObjectAttributeByIndex","pages","widget","SC","Widget","querySelector","soundCloudCreated","pause","start_time","contentWindow","postMessage","method","tweetuser","tweet_status_url","tweet_status_date","tweet","tweet_text","tweet_status_temp","author_url","twttr","widgets","createTweet","conversation","linkColor","theme","author_name","fjs","_e","mediaID","establishMediaID","stat","sizes","best_size","size_label","photo","owner","realname","_content","description","updateMeta","_transformURL","DV","showSidebar","API_URL_ROOT","successHandler","oembed_response","thumbnail_url","errorHandler","data_url","_height","_player_height","_player_width","iframe","setInterval","clearInterval","imgurEmbed","createIframe","markup","source_item","_getType","mediatype","match_str","player_element","reg","lookupMediaType","image_only","media_types","media_container","timespan","line_left","line_right","loadMedia","stopMedia","timespan_content","mtd","thumbnail_media_type","thumbnail_media","_onMarkerClick","snap","change","swipe_detect","slider","slider_background","line","marker_container_mask","marker_container","marker_item_container","timeaxis","timeaxis_background","attribution","collapsed","config","has_groups","scale_factor","marker_padding","timenav_height_min","marker_height_min","zoom_sequence","_markers","_eras","has_eras","_groups","_calculated_row_height","current_id","animate_css","_swipable","_initData","_onLoaded","fast","getPositionInfo","setClass","setWidth","reposition_markers","_getTimeScale","_assignRowsToMarkers","updateConstraint","_drawTimeline","goToId","new_scale","_updateDrawTimeline","list","current","findNextGreater","setZoomFactor","findNextLesser","level","zoom_factor","group_labels","getGroupLabels","_createGroup","group_label","_addGroup","addTo","available_height","group_height","getNumberOfRows","group_rows","group_y","group_hide","setRowPosition","setAlternateRowColor","marker","_onMarkerAdded","_addMarker","_createMarker","removeFrom","_removeMarker","_calculateMinimumTimeNavHeight","_calculateAvailableHeight","marker_height","_calculateMarkerHeight","_positionGroups","_calculateRowHeight","setHeight","marker_y","remainder_height","setActive","_onEraAdded","era_color","setColor","_createMarkers","_destroyMarker","destroyMarker","_findMarkerIndex","css_animation","_ease","_duration","_resetMarkersActive","getLeft","goTo","scroll_to","wheelDeltaX","wheelDeltaY","drawTicks","positionMarkers","_createGroups","_positionEras","check_update","do_update","temp_timescale","getMajorScale","getMinorScale","_onMouseScroll","_createEras","title_slide","scroll_container","_mediaclass","_background_media","image","color_value","slide_padding_lr","skinny_size","slider_container","content_width","content_padding_left","content_padding_right","paddingLeft","paddingRight","headlineHeight","_updateBackgroundDisplay","date_text","text_background","addDateText","getFormattedDate","backgroundImage","icon","_update","inverted","slider_container_mask","slider_item_container","_nav","previous","slide_spacing","_slides","preloadTimer","_message","default_bg_color","start_at_slide","slide_default_fade","dragging","trackResize","_onSlideAdded","_onBackgroundChange","_addSlide","_createSlide","_onSlideRemoved","_removeSlide","nav_pos","_layout","_createSlides","_destroySlide","destroySlide","_findSlideIndex","displayupdate","changeBackground","stopMomentum","_onSlideChange","showNav","update","preloadSlides","scrollToTop","nav_obj","bg","bg_color","backgroundColor","_onNavigation","_onMessageClick","_onSwipeNoDirection","slide_background","getBackground","_loaded","latlng","layerPoint","parent_elem","button_backtostart","button_zoomin","button_zoomout","arrow","coverbar","grip","menubar_default_y","_onButtonBackToStart","_onButtonZoomIn","_onButtonZoomOut","script_src_url","script_tags","storyslider","timenav","menubar","_storyslider","_timenav","_menubar","debug","font","is_embed","is_full_embed","hash_bookmark","timenav_position","base_class","timenav_height","timenav_height_percentage","timenav_mobile_height_percentage","start_at_end","menubar_height","medium_size","use_bc","map_type","ga_property_id","track_events","soundcite","animator_timenav","animator_storyslider","animator_menubar","timeline","determineScriptPath","_loadStyles","keyName","currentSlide","_getSlideIndex","lastSlide","goToPrev","goToNext","_loadLanguage","font_css_url","theme_css_url","language_code","loadLanguage","showMessage","_translateError","stack","script_tag","isValid","validate","_validateOptions","_onDataLoaded","translated_errs","errs","getErrors","_initAnalytics","IntersectionObserver","entries","observer","accum","isIntersecting","observe","_calculateTimeNavHeight","_onTimeNavLoaded","initial_zoom","setZoom","_onStorySliderLoaded","storyslider_height","_onTimeNavChange","_onZoomToggle","_onColorChange","_onStorySliderNext","_onStorySliderPrevious","_onZoomIn","_onZoomOut","_onBackToStart","_onChange","toogleZoomIn","toogleZoomOut","_updateHashBookmark","zoomIn","zoom_level","zoomOut","_orientation","display_class","menu_position","innerWidth","innerHeight","ceil","getMinimumHeight","INTEGER_PROPERTIES","opt","valid","goToEnd","the_timeline","history","replaceState","hashbookmark","_getEventIndex","createSlide","_updateDrawSlides","createMarker","getData","getSlide","getSlideById","q","ga","_initGoogleAnalytics","event_"],"mappings":"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D,UAAW,sCACXtsC,IAAK,IAET,CACI4E,KAAM,OACNvd,KAAM,OACNilD,UAAW,8BACXtsC,IAAK,IAET,CACI4E,KAAM,aACNvd,KAAM,aACNilD,UAAW,wCACXtsC,IAAK,IAET,CACI4E,KAAM,UACNvd,KAAM,UACNilD,UAAW,kCACXtsC,IAAK,IAET,CACI4E,KAAM,eACNvd,KAAM,eACNilD,UAAW,4CACXtsC,IAAK,IAET,CACI4E,KAAM,aACNvd,KAAM,aACNilD,UAAW,8TACXtsC,IAAK,IAET,CACI4E,KAAM,SACNvd,KAAM,SACNilD,UAAW,wCACXtsC,IAAK,IAET,CACI4E,KAAM,SACNvd,KAAM,SACNilD,UAAW,0BACXtsC,IAAK,IAET,CACI4E,KAAM,YACNvd,KAAM,YACNilD,UAAW,4EACXtsC,IAAK,IAET,CACI4E,KAAM,UACNvd,KAAM,UACNilD,UAAW,uGACXtsC,IAAK,IAET,CACI4E,KAAM,gBACNvd,KAAM,iBACNilD,UAAW,sBACXtsC,IAAK,IAET,CACI4E,KAAM,QACNvd,KAAM,QACNilD,UAAW,uCACXtsC,IAAK,IAET,CACI4E,KAAM,QACNvd,KAAM,QACNilD,UAAW,iEACXtsC,IAAK,IAET,CACI4E,KAAM,aACNvd,KAAM,aACNilD,UAAW,qNACXtsC,IAAK,IAET,CACI4E,KAAM,MACNvd,KAAM,MACNilD,UAAW,yBACXtsC,IAAK,IAET,CACI4E,KAAM,YACNvd,KAAM,YACNilD,UAAW,6EACXtsC,IAAK,IAET,CACI4E,KAAM,UACNvd,KAAM,UACNilD,UAAW,UACXtsC,IAAK,IAET,CACI4E,KAAM,SACNvd,KAAM,SACNilD,UAAW,SACXtsC,IAAK,IAET,CACI4E,KAAM,aACNvd,KAAM,QACNilD,UAAW,aACXtsC,IAAK,IAET,CACI4E,KAAM,QACNvd,KAAM,QACNilD,UAAW,sBACXtsC,IAAK,IAET,CACI4E,KAAM,SACNvd,KAAM,SACNilD,UAAW,4CACXtsC,IAAK,IAET,CACI4E,KAAM,QACNvd,KAAM,QACNilD,UAAW,yBACXtsC,IAAK,IAET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","file":"timeline.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 2);\n","/*! @license DOMPurify | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.2.2/LICENSE */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.DOMPurify = factory());\n}(this, function () { 'use strict';\n\n function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n var hasOwnProperty = Object.hasOwnProperty,\n setPrototypeOf = Object.setPrototypeOf,\n isFrozen = Object.isFrozen,\n getPrototypeOf = Object.getPrototypeOf,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n var freeze = Object.freeze,\n seal = Object.seal,\n create = Object.create; // eslint-disable-line import/no-mutable-exports\n\n var _ref = typeof Reflect !== 'undefined' && Reflect,\n apply = _ref.apply,\n construct = _ref.construct;\n\n if (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n }\n\n if (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n }\n\n if (!seal) {\n seal = function seal(x) {\n return x;\n };\n }\n\n if (!construct) {\n construct = function construct(Func, args) {\n return new (Function.prototype.bind.apply(Func, [null].concat(_toConsumableArray(args))))();\n };\n }\n\n var arrayForEach = unapply(Array.prototype.forEach);\n var arrayPop = unapply(Array.prototype.pop);\n var arrayPush = unapply(Array.prototype.push);\n\n var stringToLowerCase = unapply(String.prototype.toLowerCase);\n var stringMatch = unapply(String.prototype.match);\n var stringReplace = unapply(String.prototype.replace);\n var stringIndexOf = unapply(String.prototype.indexOf);\n var stringTrim = unapply(String.prototype.trim);\n\n var regExpTest = unapply(RegExp.prototype.test);\n\n var typeErrorCreate = unconstruct(TypeError);\n\n function unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return apply(func, thisArg, args);\n };\n }\n\n function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return construct(func, args);\n };\n }\n\n /* Add properties to a lookup table */\n function addToSet(set, array) {\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n var l = array.length;\n while (l--) {\n var element = array[l];\n if (typeof element === 'string') {\n var lcElement = stringToLowerCase(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n }\n\n /* Shallow clone an object */\n function clone(object) {\n var newObject = create(null);\n\n var property = void 0;\n for (property in object) {\n if (apply(hasOwnProperty, object, [property])) {\n newObject[property] = object[property];\n }\n }\n\n return newObject;\n }\n\n /* IE10 doesn't support __lookupGetter__ so lets'\n * simulate it. It also automatically checks\n * if the prop is function or getter and behaves\n * accordingly. */\n function lookupGetter(object, prop) {\n while (object !== null) {\n var desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function fallbackValue(element) {\n console.warn('fallback value for', element);\n return null;\n }\n\n return fallbackValue;\n }\n\n var html = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n // SVG\n var svg = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n\n var svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\n // List of SVG elements that are disallowed by default.\n // We still need to know them so that we can do namespace\n // checks properly in case one wants to add them to\n // allow-list.\n var svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'fedropshadow', 'feimage', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n\n var mathMl = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover']);\n\n // Similarly to SVG, we want to know all MathML elements,\n // even those that we disallow by default.\n var mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n\n var text = freeze(['#text']);\n\n var html$1 = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns']);\n\n var svg$1 = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n\n var mathMl$1 = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n\n var xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n // eslint-disable-next-line unicorn/better-regex\n var MUSTACHE_EXPR = seal(/\\{\\{[\\s\\S]*|[\\s\\S]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n var ERB_EXPR = seal(/<%[\\s\\S]*|[\\s\\S]*%>/gm);\n var DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n var ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n var IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n );\n var IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n var ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n );\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n function _toConsumableArray$1(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n var getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n\n /**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {Document} document The document object (to determine policy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported).\n */\n var _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n if ((typeof trustedTypes === 'undefined' ? 'undefined' : _typeof(trustedTypes)) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n var suffix = null;\n var ATTR_NAME = 'data-tt-policy-suffix';\n if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {\n suffix = document.currentScript.getAttribute(ATTR_NAME);\n }\n\n var policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML: function createHTML(html$$1) {\n return html$$1;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n\n function createDOMPurify() {\n var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n\n var DOMPurify = function DOMPurify(root) {\n return createDOMPurify(root);\n };\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = '2.2.7';\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n\n return DOMPurify;\n }\n\n var originalDocument = window.document;\n\n var document = window.document;\n var DocumentFragment = window.DocumentFragment,\n HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n Element = window.Element,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap,\n NamedNodeMap = _window$NamedNodeMap === undefined ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n Text = window.Text,\n Comment = window.Comment,\n DOMParser = window.DOMParser,\n trustedTypes = window.trustedTypes;\n\n\n var ElementPrototype = Element.prototype;\n\n var cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n var getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n var getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n var getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n var template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);\n var emptyHTML = trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML('') : '';\n\n var _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n getElementsByTagName = _document.getElementsByTagName,\n createDocumentFragment = _document.createDocumentFragment;\n var importNode = originalDocument.importNode;\n\n\n var documentMode = {};\n try {\n documentMode = clone(document).documentMode ? document.documentMode : {};\n } catch (_) {}\n\n var hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof getParentNode === 'function' && implementation && typeof implementation.createHTMLDocument !== 'undefined' && documentMode !== 9;\n\n var MUSTACHE_EXPR$$1 = MUSTACHE_EXPR,\n ERB_EXPR$$1 = ERB_EXPR,\n DATA_ATTR$$1 = DATA_ATTR,\n ARIA_ATTR$$1 = ARIA_ATTR,\n IS_SCRIPT_OR_DATA$$1 = IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE$$1 = ATTR_WHITESPACE;\n var IS_ALLOWED_URI$$1 = IS_ALLOWED_URI;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n\n var ALLOWED_TAGS = null;\n var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(html), _toConsumableArray$1(svg), _toConsumableArray$1(svgFilters), _toConsumableArray$1(mathMl), _toConsumableArray$1(text)));\n\n /* Allowed attribute names */\n var ALLOWED_ATTR = null;\n var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray$1(html$1), _toConsumableArray$1(svg$1), _toConsumableArray$1(mathMl$1), _toConsumableArray$1(xml)));\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n var FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n var FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n var ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n var ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n var ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n var SAFE_FOR_TEMPLATES = false;\n\n /* Decide if document with ... should be returned */\n var WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n var SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n var FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n var RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n var RETURN_DOM_FRAGMENT = false;\n\n /* If `RETURN_DOM` or `RETURN_DOM_FRAGMENT` is enabled, decide if the returned DOM\n * `Node` is imported into the current `Document`. If this flag is not enabled the\n * `Node` will belong (its ownerDocument) to a fresh `HTMLDocument`, created by\n * DOMPurify.\n *\n * This defaults to `true` starting DOMPurify 2.2.0. Note that setting it to `false`\n * might cause XSS from attacks hidden in closed shadowroots in case the browser\n * supports Declarative Shadow: DOM https://web.dev/declarative-shadow-dom/\n */\n var RETURN_DOM_IMPORT = true;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n var RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks? */\n var SANITIZE_DOM = true;\n\n /* Keep element content when removing element? */\n var KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n var IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n var USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n var FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n\n /* Tags that are safe for data: URIs */\n var DATA_URI_TAGS = null;\n var DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n\n /* Attributes safe for values like \"javascript:\" */\n var URI_SAFE_ATTRIBUTES = null;\n var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'summary', 'title', 'value', 'style', 'xmlns']);\n\n /* Keep a reference to config to pass to hooks */\n var CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n var formElement = document.createElement('form');\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n var _parseConfig = function _parseConfig(cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || (typeof cfg === 'undefined' ? 'undefined' : _typeof(cfg)) !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n\n /* Set configuration parameters */\n ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR) : DEFAULT_ALLOWED_ATTR;\n URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS) : DEFAULT_DATA_URI_TAGS;\n FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS) : {};\n FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR) : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_DOM_IMPORT = cfg.RETURN_DOM_IMPORT !== false; // Default true\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$$1;\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(text)));\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html);\n addToSet(ALLOWED_ATTR, html$1);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl);\n addToSet(ALLOWED_ATTR, mathMl$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n\n var HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'desc', 'title', 'annotation-xml']);\n\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n var ALL_SVG_TAGS = addToSet({}, svg);\n addToSet(ALL_SVG_TAGS, svgFilters);\n addToSet(ALL_SVG_TAGS, svgDisallowed);\n\n var ALL_MATHML_TAGS = addToSet({}, mathMl);\n addToSet(ALL_MATHML_TAGS, mathMlDisallowed);\n\n var MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n\n /**\n *\n *\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n var _checkValidNamespace = function _checkValidNamespace(element) {\n var parent = getParentNode(element);\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: HTML_NAMESPACE,\n tagName: 'template'\n };\n }\n\n var tagName = stringToLowerCase(element.tagName);\n var parentTagName = stringToLowerCase(parent.tagName);\n\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via
\";\n tweetuser = d.author_url.split(\"twitter.com\\/\")[1];\n tweet_status_temp = d.html.split(\"<\\/p>\\—\")[1].split(\"\")[0];\n tweet_status_date = tweet_status_temp.split(\"\\\"\\>\")[1].split(\"<\\/a>\")[0];\n\n // Open links in new window\n tweet_text = tweet_text.replace(/\";\n tweet += \"\" + tweet_status_date + \"\";\n tweet += \"\";\n } else {\n markup = \"\"\n }\n this._el.content_item.innerHTML = markup\n this.onLoaded();\n }\n\n // Update Media Display\n _updateMediaDisplay() {\n this._el.content_item.style.height = this.options.height + \"px\";\n }\n\n\n}","import { Media } from \"../Media\";\nimport { transformMediaURL } from \"../../core/Util\";\nimport * as Browser from \"../../core/Browser\"\nimport { trace } from \"../../core/Util\";\n\nexport default class Audio extends Media {\n _loadMedia() {\n // Loading Message\n this.loadingMessage();\n\n // Create media?\n if (!this.options.background) {\n this.createMedia();\n }\n\n // After loaded\n this.onLoaded();\n }\n\n createMedia() {\n //Transform URL for Dropbox\n var url = transformMediaURL(this.data.url),\n self = this;\n\n var self = this,\n audio_class = \"tl-media-item tl-media-audio tl-media-shadow\";\n\n this._el.content_item = this.domCreate(\"audio\", audio_class, this._el.content);\n\n this._el.content_item.controls = true;\n this._el.source_item = this.domCreate(\"source\", \"\", this._el.content_item);\n\n // Media Loaded Event\n this._el.content_item.addEventListener('load', function(e) {\n self.onMediaLoaded();\n });\n\n this._el.source_item.src = url;\n this._el.source_item.type = this._getType(this.data.url, this.data.mediatype.match_str);\n this._el.content_item.innerHTML += \"Your browser doesn't support HTML5 audio with \" + this._el.source_item.type;\n this.player_element = this._el.content_item\n }\n\n _updateMediaDisplay(layout) {\n if (Browser.firefox) {\n this._el.content_item.style.width = \"auto\";\n }\n }\n\n _stopMedia() {\n if (this.player_element) {\n this.player_element.pause()\n }\n }\n\n\n _getType(url, reg) {\n var ext = url.match(reg);\n var type = \"audio/\"\n switch (ext[1]) {\n case \"mp3\":\n type += \"mpeg\";\n break;\n case \"wav\":\n type += \"wav\";\n break;\n case \"m4a\":\n type += \"mp4\";\n break;\n default:\n type = \"audio\";\n break;\n }\n return type\n }\n\n}","import { Media } from \"../Media\";\nimport * as Browser from \"../../core/Browser\"\nimport { transformMediaURL } from \"../../core/Util\";\n\nexport default class Video extends Media {\n _loadMedia() {\n // Loading Message\n this.loadingMessage();\n\n // Create media?\n if (!this.options.background) {\n this.createMedia();\n }\n\n // After loaded\n this.onLoaded();\n }\n\n createMedia() {\n //Transform URL for Dropbox\n var url = transformMediaURL(this.data.url),\n self = this;\n\n var self = this,\n video_class = \"tl-media-item tl-media-video tl-media-shadow\";\n\n // Link\n this._el.content_item = this.domCreate(\"video\", video_class, this._el.content);\n\n this._el.content_item.controls = true;\n this._el.source_item = this.domCreate(\"source\", \"\", this._el.content_item);\n\n // Media Loaded Event\n this._el.content_item.addEventListener('load', function(e) {\n self.onMediaLoaded();\n });\n\n this._el.source_item.src = url;\n this._el.source_item.type = this._getType(this.data.url, this.data.mediatype.match_str);\n this._el.content_item.innerHTML += \"Your browser doesn't support HTML5 video with \" + this._el.source_item.type;\n this.player_element = this._el.content_item\n\n }\n\n _updateMediaDisplay(layout) {\n if (Browser.firefox) {\n this._el.content_item.style.width = \"auto\";\n }\n }\n\n _stopMedia() {\n if (this.player_element) {\n this.player_element.pause()\n }\n }\n\n _getType(url, reg) {\n var ext = url.match(reg);\n var type = \"video/\"\n switch (ext[1]) {\n case \"mp4\":\n type += \"mp4\";\n break;\n case \"webm\":\n type += \"webm\";\n break;\n default:\n type = \"video\";\n break;\n }\n return type\n }\n\n}","import { Media } from \"../Media\";\nimport { ratio, trace } from \"../../core/Util\";\n\nexport default class Wistia extends Media {\n\n _loadMedia() {\n var api_url,\n self = this;\n\n // Create Dom element\n this._el.content_item = this.domCreate(\"div\", \"tl-media-item tl-media-iframe tl-media-wistia tl-media-shadow\", this._el.content);\n\n // Get Media ID\n this.media_id = this.data.url.split(/https?:\\/\\/(.+)?(wistia\\.com|wi\\.st)\\/medias\\/(.*)/)[3];\n trace(`Wistia: media_id: ${this.media_id}`)\n // API URL\n api_url = \"https://fast.wistia.com/embed/iframe/\" + this.media_id + \"?version=v1&controlsVisibleOnLoad=true&playerColor=aae3d8\";\n\n this.player = this.domCreate(\"iframe\", \"\", this._el.content_item);\n\n // Media Loaded Event\n this.player.addEventListener('load', function(e) {\n self.onMediaLoaded();\n });\n\n this.player.width = \"100%\";\n this.player.height = \"100%\";\n this.player.frameBorder = \"0\";\n this.player.src = api_url;\n\n this.player.setAttribute('allowfullscreen', '');\n this.player.setAttribute('webkitallowfullscreen', '');\n this.player.setAttribute('mozallowfullscreen', '');\n\n // After Loaded\n this.onLoaded();\n }\n\n // Update Media Display\n _updateMediaDisplay() {\n this._el.content_item.style.height = ratio.r16_9({ w: this._el.content_item.offsetWidth }) + \"px\";\n }\n\n _stopMedia() {\n try {\n this.player.contentWindow.postMessage(JSON.stringify({ method: \"pause\" }), \"https://player.vimeo.com\");\n } catch (err) {\n trace(err);\n }\n }\n}","/*\n Determines the type of media the url string is.\n returns an object with .type and .id\n You can add new media types by adding a regex\n to match and the media class name to use to\n render the media\n\n The image_only parameter indicates that the\n call only wants an image-based media type\n that can be resolved to an image URL.\n================================================== */\n\nimport Image from \"./types/Image\"\nimport YouTube from \"./types/YouTube\"\nimport GoogleMap from \"./types/GoogleMap\"\nimport Blockquote from \"./types/Blockquote\"\nimport Wikipedia from \"./types/Wikipedia\"\nimport SoundCloud from \"./types/SoundCloud\"\nimport Vimeo from \"./types/Vimeo\"\nimport DailyMotion from \"./types/DailyMotion\"\nimport Vine from \"./types/Vine\"\nimport Twitter from \"./types/Twitter\"\nimport TwitterEmbed from \"./types/TwitterEmbed\"\nimport Flickr from \"./types/Flickr\"\nimport DocumentCloud from \"./types/DocumentCloud\"\nimport Instagram from \"./types/Instagram\"\nimport Profile from \"./types/Profile\"\nimport GoogleDoc from \"./types/GoogleDoc\"\nimport Spotify from \"./types/Spotify\"\nimport IFrame from \"./types/IFrame\"\nimport Imgur from \"./types/Imgur\"\nimport PDF from \"./types/PDF\"\nimport Audio from \"./types/Audio\"\nimport Video from \"./types/Video\"\nimport Wistia from \"./types/Wistia\"\n\n/**\n * Given a JavaScript Object for an event from a TimelineConfig,\n * determine the appropriate subclass of Media which can handle creating and showing an \n * embed in the \"media\" section of that event's slide.\n *\n * When the `image_only` argument is true, the input `url_or_text` will only be\n * tested against patterns which are known to return images suitable for use as\n * thumbnails and backgrounds. Media classes returned when image_only is true should \n * implement the getImageURL() function\n *\n * @param {Object} m\n * @param {Boolean} image_only\n * \n * @returns {Object} a JS object which represents the match, including a `type`, `name`, \n * `match_str`, and `cls`. These are all string values, except `cls`, which\n * is a JavaScript class which can be used to instantiate a media embed\n * or thumbnail.\n */\n\nexport function lookupMediaType(m, image_only) {\n var media = {},\n media_types = [{\n type: \"youtube\",\n name: \"YouTube\",\n match_str: \"^(https?:)?\\/*(www.)?youtube|youtu\\.be\",\n cls: YouTube\n },\n {\n type: \"vimeo\",\n name: \"Vimeo\",\n match_str: \"^(https?:)?\\/*(player.)?vimeo\\.com\",\n cls: Vimeo\n },\n {\n type: \"dailymotion\",\n name: \"DailyMotion\",\n match_str: \"^(https?:)?\\/*(www.)?dailymotion\\.com\",\n cls: DailyMotion\n },\n {\n type: \"vine\",\n name: \"Vine\",\n match_str: \"^(https?:)?\\/*(www.)?vine\\.co\",\n cls: Vine\n },\n {\n type: \"soundcloud\",\n name: \"SoundCloud\",\n match_str: \"^(https?:)?\\/*(player.)?soundcloud\\.com\",\n cls: SoundCloud\n },\n {\n type: \"twitter\",\n name: \"Twitter\",\n match_str: \"^(https?:)?\\/*(www.)?twitter\\.com\",\n cls: Twitter\n },\n {\n type: \"twitterembed\",\n name: \"TwitterEmbed\",\n match_str: \"1) {\n\t\t\t\tthis._text.className = \"tl-headline tl-headline-fadeout\";\n\t\t\t} else {\n\t\t\t\tthis._text.className = \"tl-headline\";\n\t\t\t}\n\t\t\tthis._text.style.height = (text_lines * text_line_height) + \"px\";\n\t\t}\n\n\t}\n\n\tsetWidth(w) {\n\t\tif (this.data.end_date) {\n\t\t\tthis._el.container.style.width = w + \"px\";\n\n\t\t\tif (w > this.options.marker_width_min) {\n\t\t\t\tthis._el.content_container.style.width = w + \"px\";\n\t\t\t\tthis._el.content_container.className = \"tl-timemarker-content-container tl-timemarker-content-container-long\";\n\t\t\t} else {\n\t\t\t\tthis._el.content_container.style.width = this.options.marker_width_min + \"px\";\n\t\t\t\tthis._el.content_container.className = \"tl-timemarker-content-container\";\n\t\t\t}\n\t\t}\n\n\t}\n\n\tsetClass(n) {\n\t\tthis._el.container.className = n;\n\t}\n\n\tsetRowPosition(n, remainder) {\n\t\tthis.setPosition({ top: n });\n\t\tthis._el.timespan.style.height = remainder + \"px\";\n\t}\n\n\t/*\tEvents\n\t================================================== */\n\t_onMarkerClick(e) {\n\t\tthis.fire(\"markerclick\", { unique_id: this.data.unique_id });\n\t}\n\n\t/*\tPrivate Methods\n\t================================================== */\n\t_initLayout() {\n\t\t// Create Layout\n\t\tthis._el.container = DOM.create(\"div\", \"tl-timemarker\");\n\t\tif (this.data.unique_id) {\n\t\t\tthis._el.container.id = this.data.unique_id + \"-marker\";\n\t\t}\n\n\t\tif (this.data.end_date) {\n\t\t\tthis.has_end_date = true;\n\t\t\tthis._el.container.className = 'tl-timemarker tl-timemarker-with-end';\n\t\t}\n\n\t\tthis._el.timespan = DOM.create(\"div\", \"tl-timemarker-timespan\", this._el.container);\n\t\tthis._el.timespan_content = DOM.create(\"div\", \"tl-timemarker-timespan-content\", this._el.timespan);\n\t\tthis._el.content_container = DOM.create(\"div\", \"tl-timemarker-content-container\", this._el.container);\n\n\t\tthis._el.content = DOM.create(\"div\", \"tl-timemarker-content\", this._el.content_container);\n\n\t\tthis._el.line_left = DOM.create(\"div\", \"tl-timemarker-line-left\", this._el.timespan);\n\t\tthis._el.line_right = DOM.create(\"div\", \"tl-timemarker-line-right\", this._el.timespan);\n\n\t\t// Thumbnail or Icon\n\t\tif (this.data.media) {\n\t\t\tthis._el.media_container = DOM.create(\"div\", \"tl-timemarker-media-container\", this._el.content);\n\t\t\t// ugh. needs an overhaul\n\t\t\tvar mtd = { url: this.data.media.thumbnail };\n\t\t\tvar thumbnail_media_type = (this.data.media.thumbnail) ? lookupMediaType(mtd, true) : null;\n\t\t\tif (thumbnail_media_type) {\n\t\t\t\tvar thumbnail_media = new thumbnail_media_type.cls(mtd);\n\t\t\t\tthumbnail_media.on(\"loaded\", function () {\n\t\t\t\t\tthis._el.media = DOM.create(\"img\", \"tl-timemarker-media\", this._el.media_container);\n\t\t\t\t\tthis._el.media.src = thumbnail_media.getImageURL();\n\t\t\t\t}.bind(this));\n\t\t\t\tthumbnail_media.loadMedia();\n\t\t\t} else {\n\t\t\t\tvar media_type = lookupMediaType(this.data.media).type;\n\t\t\t\tthis._el.media = DOM.create(\"span\", \"tl-icon-\" + media_type, this._el.media_container);\n\t\t\t}\n\n\t\t}\n\n\n\t\t// Text\n\t\tthis._el.text = DOM.create(\"div\", \"tl-timemarker-text\", this._el.content);\n\t\tthis._text = DOM.create(\"h2\", \"tl-headline\", this._el.text);\n\t\tif (this.data.text.headline && this.data.text.headline != \"\") {\n\t\t\tthis._text.innerHTML = unlinkify(this.data.text.headline);\n\t\t} else if (this.data.text.text && this.data.text.text != \"\") {\n\t\t\tthis._text.innerHTML = unlinkify(this.data.text.text);\n\t\t} else if (this.data.media && this.data.media.caption && this.data.media.caption != \"\") {\n\t\t\tthis._text.innerHTML = unlinkify(this.data.media.caption);\n\t\t}\n\n\n\n\t\t// Fire event that the slide is loaded\n\t\tthis.onLoaded();\n\n\t}\n\n\t_initEvents() {\n\t\tDOMEvent.addListener(this._el.container, 'click', this._onMarkerClick, this);\n\t}\n\n\t// Update Display\n\t_updateDisplay(width, height, layout) {\n\n\t\tif (width) {\n\t\t\tthis.options.width = width;\n\t\t}\n\n\t\tif (height) {\n\t\t\tthis.options.height = height;\n\t\t}\n\n\t}\n\n}\n\n\nclassMixin(TimeMarker, Events, DOMMixins)\n","import { classMixin, mergeData } from \"../core/Util\"\nimport Events from \"../core/Events\"\nimport { easeInOutQuint, easeOutStrong } from \"../animation/Ease\";\nimport { Animate } from \"../animation/Animate\"\nimport { touch as BROWSER_TOUCH } from \"../core/Browser\";\nimport { DOMEvent } from \"../dom/DOMEvent\"\n\nexport default class Swipable {\n\n\tconstructor(drag_elem, move_elem, options) {\n\t\t\n\t\t// DOM ELements \n\t\tthis._el = {\n\t\t\tdrag: drag_elem,\n\t\t\tmove: drag_elem\n\t\t};\n\n\t\tthis.mousedrag = {\n\t\t\tdown:\t\t\"mousedown\",\n\t\t\tup:\t\t\t\"mouseup\",\n\t\t\tleave:\t\t\"mouseleave\",\n\t\t\tmove:\t\t\"mousemove\"\n\t\t}\n\n\t\tthis.touchdrag = {\n\t\t\tdown:\t\t\"touchstart\",\n\t\t\tup:\t\t\t\"touchend\",\n\t\t\tleave:\t\t\"mouseleave\",\n\t\t\tmove:\t\t\"touchmove\"\n\t\t}\n\n\t\tif (move_elem) {\n\t\t\tthis._el.move = move_elem;\n\t\t}\n\t\t\n\t\t//Options\n\t\tthis.options = {\n\t\t\tsnap: false,\n\t\t\tenable:\t{\n\t\t\t\tx: true,\n\t\t\t\ty: true\n\t\t\t},\n\t\t\tconstraint: {\n\t\t\t\ttop: false,\n\t\t\t\tbottom: false,\n\t\t\t\tleft: 0,\n\t\t\t\tright: false\n\t\t\t},\n\t\t\tmomentum_multiplier: \t2000,\n\t\t\tduration: \t\t\t\t1000,\n\t\t\tease: \t\t\t\t\teaseInOutQuint\n\t\t};\n\t\t\n\t\t\n\t\t// Animation Object\n\t\tthis.animator = null;\n\t\t\n\t\t// Drag Event Type\n\t\tthis.dragevent = this.mousedrag;\n\t\t\n\t\tif (BROWSER_TOUCH) {\n\t\t\tthis.dragevent = this.touchdrag;\n\t\t}\n\t\t\n\t\t// Draggable Data\n\t\tthis.data = {\n\t\t\tsliding:\t\tfalse,\n\t\t\tdirection: \t\t\"none\",\n\t\t\tpagex: {\n\t\t\t\tstart:\t\t0,\n\t\t\t\tend:\t\t0\n\t\t\t},\n\t\t\tpagey: {\n\t\t\t\tstart:\t\t0,\n\t\t\t\tend:\t\t0\n\t\t\t},\n\t\t\tpos: {\n\t\t\t\tstart: {\n\t\t\t\t\tx: 0,\n\t\t\t\t\ty:0\n\t\t\t\t},\n\t\t\t\tend: {\n\t\t\t\t\tx: 0,\n\t\t\t\t\ty:0\n\t\t\t\t}\n\t\t\t},\n\t\t\tnew_pos: {\n\t\t\t\tx: 0,\n\t\t\t\ty: 0\n\t\t\t},\n\t\t\tnew_pos_parent: {\n\t\t\t\tx: 0,\n\t\t\t\ty: 0\n\t\t\t},\n\t\t\ttime: {\n\t\t\t\tstart:\t\t0,\n\t\t\t\tend:\t\t0\n\t\t\t},\n\t\t\ttouch:\t\t\tfalse\n\t\t};\n\t\t\n\t\t// Merge Data and Options\n\t\tmergeData(this.options, options);\n\t\t\n\t\t\n\t}\n\t\n\tenable(e) {\n\t\tDOMEvent.addListener(this._el.drag, this.dragevent.down, this._onDragStart, this);\n\t\tDOMEvent.addListener(this._el.drag, this.dragevent.up, this._onDragEnd, this);\n\t\t\n\t\tthis.data.pos.start = 0; \n\t\tthis._el.move.style.left = this.data.pos.start.x + \"px\";\n\t\tthis._el.move.style.top = this.data.pos.start.y + \"px\";\n\t\tthis._el.move.style.position = \"absolute\";\n\t\t//this._el.move.style.zIndex = \"11\";\n\t\t//this._el.move.style.cursor = \"move\";\n\t}\n\t\n\tdisable() {\n\t\tDOMEvent.removeListener(this._el.drag, this.dragevent.down, this._onDragStart, this);\n\t\tDOMEvent.removeListener(this._el.drag, this.dragevent.up, this._onDragEnd, this);\n\t}\n\t\n\tstopMomentum() {\n\t\tif (this.animator) {\n\t\t\tthis.animator.stop();\n\t\t}\n\n\t}\n\t\n\tupdateConstraint(c) {\n\t\tthis.options.constraint = c;\n\t\t\n\t\t// Temporary until issues are fixed\n\t\t\n\t}\n\t\n\t/*\tPrivate Methods\n\t================================================== */\n\t_onDragStart(e) {\n\t\t\n\t\tif (this.animator) {\n\t\t\tthis.animator.stop();\n\t\t}\n\t\t\n\t\tif (BROWSER_TOUCH) {\n\t\t\tif (e.originalEvent) {\n\t\t\t\tthis.data.pagex.start = e.originalEvent.touches[0].screenX;\n\t\t\t\tthis.data.pagey.start = e.originalEvent.touches[0].screenY;\n\t\t\t} else {\n\t\t\t\tthis.data.pagex.start = e.targetTouches[0].screenX;\n\t\t\t\tthis.data.pagey.start = e.targetTouches[0].screenY;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.data.pagex.start = e.pageX;\n\t\t\tthis.data.pagey.start = e.pageY;\n\t\t}\n\t\t\n\t\t// Center element to finger or mouse\n\t\tif (this.options.enable.x) {\n\t\t\t//this._el.move.style.left = this.data.pagex.start - (this._el.move.offsetWidth / 2) + \"px\";\n\t\t}\n\t\t\n\t\tif (this.options.enable.y) {\n\t\t\t//this._el.move.style.top = this.data.pagey.start - (this._el.move.offsetHeight / 2) + \"px\";\n\t\t}\n\t\t\n\t\tthis.data.pos.start = {x:this._el.move.offsetLeft, y:this._el.move.offsetTop};\n\t\t\n\t\t\n\t\tthis.data.time.start \t\t\t= new Date().getTime();\n\t\t\n\t\tthis.fire(\"dragstart\", this.data);\n\t\tDOMEvent.addListener(this._el.drag, this.dragevent.move, this._onDragMove, this);\n\t\tDOMEvent.addListener(this._el.drag, this.dragevent.leave, this._onDragEnd, this);\n\t}\n\t\n\t_onDragEnd(e) {\n\t\tthis.data.sliding = false;\n\t\tDOMEvent.removeListener(this._el.drag, this.dragevent.move, this._onDragMove, this);\n\t\tDOMEvent.removeListener(this._el.drag, this.dragevent.leave, this._onDragEnd, this);\n\t\tthis.fire(\"dragend\", this.data);\n\t\t\n\t\t// momentum\n\t\tthis._momentum();\n\t}\n\t\n\t_onDragMove(e) {\n\t\tvar change = {\n\t\t\tx:0,\n\t\t\ty:0\n\t\t}\n\t\t//e.preventDefault();\n\t\tthis.data.sliding = true;\n\t\t\n\t\tif (BROWSER_TOUCH) {\n\t\t\tif (e.originalEvent) {\n\t\t\t\tthis.data.pagex.end = e.originalEvent.touches[0].screenX;\n\t\t\t\tthis.data.pagey.end = e.originalEvent.touches[0].screenY;\n\t\t\t} else {\n\t\t\t\tthis.data.pagex.end = e.targetTouches[0].screenX;\n\t\t\t\tthis.data.pagey.end = e.targetTouches[0].screenY;\n\t\t\t}\n\n\t\t} else {\n\t\t\tthis.data.pagex.end = e.pageX;\n\t\t\tthis.data.pagey.end = e.pageY;\n\t\t}\n\t\t\n\t\tchange.x = this.data.pagex.start - this.data.pagex.end;\n\t\tchange.y = this.data.pagey.start - this.data.pagey.end;\n\t\t\n\t\tthis.data.pos.end = {x:this._el.drag.offsetLeft, y:this._el.drag.offsetTop};\n\t\t\n\t\tthis.data.new_pos.x = -(change.x - this.data.pos.start.x);\n\t\tthis.data.new_pos.y = -(change.y - this.data.pos.start.y );\n\t\t\n\t\tif (this.options.enable.x && ( Math.abs(change.x) > Math.abs(change.y) ) ) {\n\t\t\te.preventDefault();\n\t\t\tthis._el.move.style.left = this.data.new_pos.x + \"px\";\n\t\t}\n\t\t\n\t\tif (this.options.enable.y && ( Math.abs(change.y) > Math.abs(change.y) ) ) {\n\t\t\te.preventDefault();\n\t\t\tthis._el.move.style.top = this.data.new_pos.y + \"px\";\n\t\t}\n\t\t\n\t\tthis.fire(\"dragmove\", this.data);\n\t}\n\t\n\t_momentum() {\n\t\tvar pos_adjust = {\n\t\t\t\tx: 0,\n\t\t\t\ty: 0,\n\t\t\t\ttime: 0\n\t\t\t},\n\t\t\tpos_change = {\n\t\t\t\tx: 0,\n\t\t\t\ty: 0,\n\t\t\t\ttime: 0\n\t\t\t},\n\t\t\tswipe_detect = {\n\t\t\t\tx: false,\n\t\t\t\ty: false\n\t\t\t},\n\t\t\tswipe = false,\n\t\t\tswipe_direction = \"\";\n\t\t\n\t\t\n\t\tthis.data.direction = null;\n\t\t\n\t\tpos_adjust.time = (new Date().getTime() - this.data.time.start) * 10;\n\t\tpos_change.time = (new Date().getTime() - this.data.time.start) * 10;\n\t\t\n\t\tpos_change.x = this.options.momentum_multiplier * (Math.abs(this.data.pagex.end) - Math.abs(this.data.pagex.start));\n\t\tpos_change.y = this.options.momentum_multiplier * (Math.abs(this.data.pagey.end) - Math.abs(this.data.pagey.start));\n\t\t\n\t\tpos_adjust.x = Math.round(pos_change.x / pos_change.time);\n\t\tpos_adjust.y = Math.round(pos_change.y / pos_change.time);\n\t\t\n\t\tthis.data.new_pos.x = Math.min(this.data.new_pos.x + pos_adjust.x);\n\t\tthis.data.new_pos.y = Math.min(this.data.new_pos.y + pos_adjust.y);\n\t\t\n\t\tif (!this.options.enable.x) {\n\t\t\tthis.data.new_pos.x = this.data.pos.start.x;\n\t\t} else if (this.options.constraint.left && this.data.new_pos.x > this.options.constraint.left) {\n\t\t\tthis.data.new_pos.x = this.options.constraint.left;\n\t\t}\n\t\t\n\t\tif (!this.options.enable.y) {\n\t\t\tthis.data.new_pos.y = this.data.pos.start.y;\n\t\t} else if (this.data.new_pos.y < 0) {\n\t\t\tthis.data.new_pos.y = 0;\n\t\t}\n\t\t\n\t\t// Detect Swipe\n\t\tif (pos_change.time < 2000) {\n\t\t\tswipe = true;\n\t\t}\n\t\t\n\t\t\n\t\tif (this.options.enable.x && this.options.enable.y) {\n\t\t\tif (Math.abs(pos_change.x) > Math.abs(pos_change.y)) {\n\t\t\t\tswipe_detect.x = true;\n\t\t\t} else {\n\t\t\t\tswipe_detect.y = true;\n\t\t\t}\n\t\t} else if (this.options.enable.x) {\n\t\t\tif (Math.abs(pos_change.x) > Math.abs(pos_change.y)) {\n\t\t\t\tswipe_detect.x = true;\n\t\t\t}\n\t\t} else {\n\t\t\tif (Math.abs(pos_change.y) > Math.abs(pos_change.x)) {\n\t\t\t\tswipe_detect.y = true;\n\t\t\t}\n\t\t}\n\t\t\n\t\t// Detect Direction and long swipe\n\t\tif (swipe_detect.x) {\n\t\t\t\n\t\t\t// Long Swipe\n\t\t\tif (Math.abs(pos_change.x) > (this._el.drag.offsetWidth/2)) {\n\t\t\t\tswipe = true;\n\t\t\t}\n\t\t\t\n\t\t\tif (Math.abs(pos_change.x) > 10000) {\n\t\t\t\tthis.data.direction = \"left\";\n\t\t\t\tif (pos_change.x > 0) {\n\t\t\t\t\tthis.data.direction = \"right\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (swipe_detect.y) {\n\t\t\t\n\t\t\t// Long Swipe\n\t\t\tif (Math.abs(pos_change.y) > (this._el.drag.offsetHeight/2)) {\n\t\t\t\tswipe = true;\n\t\t\t}\n\t\t\t\n\t\t\tif (Math.abs(pos_change.y) > 10000) {\n\t\t\t\tthis.data.direction = \"up\";\n\t\t\t\tif (pos_change.y > 0) {\n\t\t\t\t\tthis.data.direction = \"down\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (pos_change.time < 1000 ) {\n\t\t\t\n\t\t} else {\n\t\t\tthis._animateMomentum();\n\t\t}\n\t\t\n\t\tif (swipe && this.data.direction) {\n\t\t\tthis.fire(\"swipe_\" + this.data.direction, this.data);\n\t\t} else if (this.data.direction) {\n\t\t\tthis.fire(\"swipe_nodirection\", this.data);\n\t\t} else if (this.options.snap) {\n\t\t\tthis.animator.stop();\n\t\t\t\n\t\t\tthis.animator = Animate(this._el.move, {\n\t\t\t\ttop: \t\tthis.data.pos.start.y,\n\t\t\t\tleft: \t\tthis.data.pos.start.x,\n\t\t\t\tduration: \tthis.options.duration,\n\t\t\t\teasing: \teaseOutStrong\n\t\t\t});\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t_animateMomentum() {\n\t\tvar pos = {\n\t\t\t\tx: this.data.new_pos.x,\n\t\t\t\ty: this.data.new_pos.y\n\t\t\t},\n\t\t\tanimate = {\n\t\t\t\tduration: \tthis.options.duration,\n\t\t\t\teasing: \teaseOutStrong\n\t\t\t};\n\t\t\n\t\tif (this.options.enable.y) {\n\t\t\tif (this.options.constraint.top || this.options.constraint.bottom) {\n\t\t\t\tif (pos.y > this.options.constraint.bottom) {\n\t\t\t\t\tpos.y = this.options.constraint.bottom;\n\t\t\t\t} else if (pos.y < this.options.constraint.top) {\n\t\t\t\t\tpos.y = this.options.constraint.top;\n\t\t\t\t}\n\t\t\t}\n\t\t\tanimate.top = Math.floor(pos.y) + \"px\";\n\t\t}\n\t\t\n\t\tif (this.options.enable.x) {\n\t\t\tif (this.options.constraint.left && pos.x >= this.options.constraint.left) {\n\t\t\t\tpos.x = this.options.constraint.left;\n\t\t\t}\n\t\t\tif (this.options.constraint.right && pos.x < this.options.constraint.right) {\n\t\t\t\tpos.x = this.options.constraint.right;\n\t\t\t}\n\n\t\t\tanimate.left = Math.floor(pos.x) + \"px\";\n\t\t}\n\t\t\n\t\tthis.animator = Animate(this._el.move, animate);\n\t\t\n\t\tthis.fire(\"momentum\", this.data);\n\t}\n}\n\nclassMixin(Swipable, Events)","import { classMixin, mergeData, findNextGreater, findNextLesser, isEven, findArrayNumberByUniqueID, trace } from \"../core/Util\"\nimport Events from \"../core/Events\"\nimport { DOMMixins } from \"../dom/DOMMixins\"\nimport { DOMEvent } from \"../dom/DOMEvent\"\nimport * as DOM from \"../dom/DOM\"\nimport { easeInOutQuint } from \"../animation/Ease\";\nimport { TimeScale } from \"./TimeScale\"\nimport { TimeGroup } from \"./TimeGroup\"\nimport { TimeEra } from \"./TimeEra\"\nimport { TimeAxis } from \"./TimeAxis\"\nimport { TimeMarker } from \"./TimeMarker\"\nimport Swipable from \"../ui/Swipable\"\nimport { Animate } from \"../animation/Animate\"\n\n\n\nexport class TimeNav {\n\n constructor(elem, timeline_config, options, language) {\n this.language = language // just passing through for TimeAxis. Is this a bad code smell?\n // DOM ELEMENTS\n this._el = {\n parent: {},\n container: {},\n slider: {},\n slider_background: {},\n line: {},\n marker_container_mask: {},\n marker_container: {},\n marker_item_container: {},\n timeaxis: {},\n timeaxis_background: {},\n attribution: {}\n };\n\n this.collapsed = false;\n\n if (typeof elem === 'object') {\n this._el.container = elem;\n } else {\n this._el.container = DOM.get(elem);\n }\n\n this.config = timeline_config;\n\n //Options\n this.options = {\n width: 600,\n height: 600,\n duration: 1000,\n ease: easeInOutQuint,\n has_groups: false,\n optimal_tick_width: 50,\n scale_factor: 2, // How many screen widths wide should the timeline be\n marker_padding: 5,\n timenav_height_min: 150, // Minimum timenav height\n marker_height_min: 30, // Minimum Marker Height\n marker_width_min: 100, // Minimum Marker Width\n zoom_sequence: [0.5, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] // Array of Fibonacci numbers for TimeNav zoom levels http://www.maths.surrey.ac.uk/hosted-sites/R.Knott/Fibonacci/fibtable.html\n };\n\n // Animation\n this.animator = null;\n\n // Ready state\n this.ready = false;\n\n // Markers Array\n this._markers = [];\n\n // Eras Array\n this._eras = [];\n this.has_eras = false;\n\n // Groups Array\n this._groups = [];\n\n // Row Height\n this._calculated_row_height = 100;\n\n // Current Marker\n this.current_id = \"\";\n\n // TimeScale\n this.timescale = {};\n\n // TimeAxis\n this.timeaxis = {};\n\n // Max Rows\n this.max_rows = 6;\n\n // Animate CSS\n this.animate_css = false;\n\n // Swipe Object\n this._swipable;\n\n // Merge Data and Options\n mergeData(this.options, options);\n\n }\n\n init() {\n this._initLayout();\n this._initEvents();\n this._initData();\n this.updateDisplay();\n\n this._onLoaded();\n }\n\n /*\tPublic\n ================================================== */\n positionMarkers(fast) {\n // POSITION X\n for (var i = 0; i < this._markers.length; i++) {\n var pos = this.timescale.getPositionInfo(i);\n if (fast) {\n this._markers[i].setClass(\"tl-timemarker tl-timemarker-fast\");\n } else {\n this._markers[i].setClass(\"tl-timemarker\");\n }\n this._markers[i].setPosition({ left: pos.start });\n this._markers[i].setWidth(pos.width);\n };\n }\n\n /*\tUpdate Display\n ================================================== */\n updateDisplay(width, height, animate) {\n let reposition_markers = false;\n if (width) {\n if (this.options.width == 0 && width > 0) {\n reposition_markers = true;\n }\n this.options.width = width;\n }\n if (height && height != this.options.height) {\n this.options.height = height;\n this.timescale = this._getTimeScale();\n }\n\n // Size Markers\n this._assignRowsToMarkers();\n\n // Size swipable area\n this._el.slider_background.style.width = this.timescale.getPixelWidth() + this.options.width + \"px\";\n this._el.slider_background.style.left = -(this.options.width / 2) + \"px\";\n this._el.slider.style.width = this.timescale.getPixelWidth() + this.options.width + \"px\";\n\n // Update Swipable constraint\n this._swipable.updateConstraint({ top: false, bottom: false, left: (this.options.width / 2), right: -(this.timescale.getPixelWidth() - (this.options.width / 2)) });\n\n if (reposition_markers) {\n this._drawTimeline()\n }\n // Go to the current slide\n this.goToId(this.current_id, true);\n }\n\n\n /*\tTimeScale\n ================================================== */\n _getTimeScale() {\n /* maybe the establishing config values (marker_height_min and max_rows) should be\n separated from making a TimeScale object, which happens in another spot in this file with duplicate mapping of properties of this TimeNav into the TimeScale options object? */\n // Set Max Rows\n var marker_height_min = 0;\n try {\n marker_height_min = parseInt(this.options.marker_height_min);\n } catch (e) {\n trace(\"Invalid value for marker_height_min option.\");\n marker_height_min = 30;\n }\n if (marker_height_min == 0) {\n trace(\"marker_height_min option must not be zero.\")\n marker_height_min = 30;\n }\n this.max_rows = Math.round((this.options.height - this._el.timeaxis_background.offsetHeight - (this.options.marker_padding)) / marker_height_min);\n if (this.max_rows < 1) {\n this.max_rows = 1;\n }\n return new TimeScale(this.config, {\n display_width: this._el.container.offsetWidth,\n screen_multiplier: this.options.scale_factor,\n max_rows: this.max_rows\n\n });\n }\n\n _updateTimeScale(new_scale) {\n this.options.scale_factor = new_scale;\n this._updateDrawTimeline();\n }\n\n zoomIn() { // move the the next \"higher\" scale factor\n var new_scale = findNextGreater(this.options.zoom_sequence, this.options.scale_factor);\n this.setZoomFactor(new_scale);\n }\n\n zoomOut() { // move the the next \"lower\" scale factor\n var new_scale = findNextLesser(this.options.zoom_sequence, this.options.scale_factor);\n this.setZoomFactor(new_scale);\n }\n\n setZoom(level) {\n var zoom_factor = this.options.zoom_sequence[level];\n if (typeof(zoom_factor) == 'number') {\n this.setZoomFactor(zoom_factor);\n } else {\n console.warn(\"Invalid zoom level. Please use an index number between 0 and \" + (this.options.zoom_sequence.length - 1));\n }\n }\n\n setZoomFactor(factor) {\n if (factor <= this.options.zoom_sequence[0]) {\n this.fire(\"zoomtoggle\", { zoom: \"out\", show: false });\n } else {\n this.fire(\"zoomtoggle\", { zoom: \"out\", show: true });\n }\n\n if (factor >= this.options.zoom_sequence[this.options.zoom_sequence.length - 1]) {\n this.fire(\"zoomtoggle\", { zoom: \"in\", show: false });\n } else {\n this.fire(\"zoomtoggle\", { zoom: \"in\", show: true });\n }\n\n if (factor == 0) {\n console.warn(\"Zoom factor must be greater than zero. Using 0.1\");\n factor = 0.1;\n }\n this.options.scale_factor = factor;\n //this._updateDrawTimeline(true);\n this.goToId(this.current_id, !this._updateDrawTimeline(true), true);\n }\n\n /*\tGroups\n ================================================== */\n _createGroups() {\n this._groups = [];\n var group_labels = this.timescale.getGroupLabels();\n\n if (group_labels) {\n this.options.has_groups = true;\n for (var i = 0; i < group_labels.length; i++) {\n this._createGroup(group_labels[i]);\n }\n }\n\n }\n\n _createGroup(group_label) {\n var group = new TimeGroup(group_label);\n this._addGroup(group);\n this._groups.push(group);\n }\n\n _addGroup(group) {\n group.addTo(this._el.container);\n\n }\n\n _positionGroups() {\n if (this.options.has_groups) {\n var available_height = (this.options.height - this._el.timeaxis_background.offsetHeight),\n group_height = Math.floor((available_height / this.timescale.getNumberOfRows()) - this.options.marker_padding),\n group_labels = this.timescale.getGroupLabels();\n\n for (var i = 0, group_rows = 0; i < this._groups.length; i++) {\n var group_y = Math.floor(group_rows * (group_height + this.options.marker_padding));\n var group_hide = false;\n if (group_y > (available_height - this.options.marker_padding)) {\n group_hide = true;\n }\n\n this._groups[i].setRowPosition(group_y, this._calculated_row_height + this.options.marker_padding / 2);\n this._groups[i].setAlternateRowColor(isEven(i), group_hide);\n\n group_rows += this._groups[i].data.rows; // account for groups spanning multiple rows\n }\n }\n }\n\n /*\tMarkers\n ================================================== */\n _addMarker(marker) {\n marker.addTo(this._el.marker_item_container);\n marker.on('markerclick', this._onMarkerClick, this);\n marker.on('added', this._onMarkerAdded, this);\n }\n\n _createMarker(data, n) {\n var marker = new TimeMarker(data, this.options);\n this._addMarker(marker);\n if (n < 0) {\n this._markers.push(marker);\n } else {\n this._markers.splice(n, 0, marker);\n }\n }\n\n _createMarkers(array) {\n for (var i = 0; i < array.length; i++) {\n this._createMarker(array[i], -1);\n }\n }\n\n _removeMarker(marker) {\n marker.removeFrom(this._el.marker_item_container);\n //marker.off('added', this._onMarkerRemoved, this);\n }\n\n _destroyMarker(n) {\n this._removeMarker(this._markers[n]);\n this._markers.splice(n, 1);\n }\n\n _calculateMarkerHeight(h) {\n return ((h / this.timescale.getNumberOfRows()) - this.options.marker_padding);\n }\n\n _calculateRowHeight(h) {\n return (h / this.timescale.getNumberOfRows());\n }\n\n _calculateAvailableHeight() {\n return (this.options.height - this._el.timeaxis_background.offsetHeight - (this.options.marker_padding));\n }\n\n _calculateMinimumTimeNavHeight() {\n return (this.timescale.getNumberOfRows() * this.options.marker_height_min) + this._el.timeaxis_background.offsetHeight + (this.options.marker_padding);\n\n }\n\n getMinimumHeight() {\n return this._calculateMinimumTimeNavHeight();\n }\n\n _assignRowsToMarkers() {\n var available_height = this._calculateAvailableHeight(),\n marker_height = this._calculateMarkerHeight(available_height);\n\n\n this._positionGroups();\n\n this._calculated_row_height = this._calculateRowHeight(available_height);\n\n for (var i = 0; i < this._markers.length; i++) {\n\n // Set Height\n this._markers[i].setHeight(marker_height);\n\n //Position by Row\n var row = this.timescale.getPositionInfo(i).row;\n\n var marker_y = Math.floor(row * (marker_height + this.options.marker_padding)) + this.options.marker_padding;\n\n var remainder_height = available_height - marker_y + this.options.marker_padding;\n this._markers[i].setRowPosition(marker_y, remainder_height);\n };\n\n }\n\n _resetMarkersActive() {\n for (var i = 0; i < this._markers.length; i++) {\n this._markers[i].setActive(false);\n };\n }\n\n _findMarkerIndex(n) {\n var _n = -1;\n if (typeof n == 'string' || n instanceof String) {\n _n = findArrayNumberByUniqueID(n, this._markers, \"unique_id\", _n);\n }\n return _n;\n }\n\n /*\tERAS\n ================================================== */\n _createEras(array) {\n for (var i = 0; i < array.length; i++) {\n var data = array[i];\n var era = new TimeEra(data.start_date,\n data.end_date,\n data.headline,\n this.options);\n this._eras.push(era);\n era.addTo(this._el.marker_item_container);\n era.on('added', this._onEraAdded, this);\n }\n }\n\n _positionEras(fast) {\n\n var era_color = 0;\n // POSITION X\n for (var i = 0; i < this._eras.length; i++) {\n var pos = {\n start: 0,\n end: 0,\n width: 0\n };\n\n pos.start = this.timescale.getPosition(this._eras[i].start_date.getTime());\n pos.end = this.timescale.getPosition(this._eras[i].end_date.getTime());\n pos.width = pos.end - pos.start;\n\n if (fast) {\n this._eras[i].setClass(\"tl-timeera tl-timeera-fast\");\n } else {\n this._eras[i].setClass(\"tl-timeera\");\n }\n this._eras[i].setPosition({ left: pos.start });\n this._eras[i].setWidth(pos.width);\n\n era_color++;\n if (era_color > 5) {\n era_color = 0;\n }\n this._eras[i].setColor(era_color);\n };\n\n }\n\n /*\tPublic\n ================================================== */\n\n // Create a marker\n createMarker(d, n) {\n this._createMarker(d, n);\n }\n\n // Create many markers from an array\n createMarkers(array) {\n this._createMarkers(array);\n }\n\n // Destroy marker by index\n destroyMarker(n) {\n this._destroyMarker(n);\n }\n\n // Destroy marker by id\n destroyMarkerId(id) {\n this.destroyMarker(this._findMarkerIndex(id));\n }\n\n /*\tNavigation\n ================================================== */\n goTo(n, fast, css_animation) {\n var self = this,\n _ease = this.options.ease,\n _duration = this.options.duration,\n _n = (n < 0) ? 0 : n;\n\n // Set Marker active state\n this._resetMarkersActive();\n if (n >= 0 && n < this._markers.length) {\n this._markers[n].setActive(true);\n }\n // Stop animation\n if (this.animator) {\n this.animator.stop();\n }\n\n if (fast) {\n this._el.slider.className = \"tl-timenav-slider\";\n this._el.slider.style.left = -this._markers[_n].getLeft() + (this.options.width / 2) + \"px\";\n } else {\n if (css_animation) {\n this._el.slider.className = \"tl-timenav-slider tl-timenav-slider-animate\";\n this.animate_css = true;\n this._el.slider.style.left = -this._markers[_n].getLeft() + (this.options.width / 2) + \"px\";\n } else {\n this._el.slider.className = \"tl-timenav-slider\";\n this.animator = Animate(this._el.slider, {\n left: -this._markers[_n].getLeft() + (this.options.width / 2) + \"px\",\n duration: _duration,\n easing: _ease\n });\n }\n }\n\n if (n >= 0 && n < this._markers.length) {\n this.current_id = this._markers[n].data.unique_id;\n } else {\n this.current_id = '';\n }\n }\n\n goToId(id, fast, css_animation) {\n this.goTo(this._findMarkerIndex(id), fast, css_animation);\n }\n\n /*\tEvents\n ================================================== */\n _onLoaded() {\n this.ready = true;\n this.fire(\"loaded\", this.config);\n }\n\n _onMarkerAdded(e) {\n this.fire(\"dateAdded\", this.config);\n }\n\n _onEraAdded(e) {\n this.fire(\"eraAdded\", this.config);\n }\n\n _onMarkerRemoved(e) {\n this.fire(\"dateRemoved\", this.config);\n }\n\n _onMarkerClick(e) {\n // Go to the clicked marker\n this.goToId(e.unique_id);\n this.fire(\"change\", { unique_id: e.unique_id });\n }\n\n _onMouseScroll(e) {\n\n var delta = 0,\n scroll_to = 0,\n constraint = {\n right: -(this.timescale.getPixelWidth() - (this.options.width / 2)),\n left: this.options.width / 2\n };\n if (!e) {\n e = window.event;\n }\n if (e.originalEvent) {\n e = e.originalEvent;\n }\n\n // Webkit and browsers able to differntiate between up/down and left/right scrolling\n if (typeof e.wheelDeltaX != 'undefined') {\n delta = e.wheelDeltaY / 6;\n if (Math.abs(e.wheelDeltaX) > Math.abs(e.wheelDeltaY)) {\n delta = e.wheelDeltaX / 6;\n } else {\n //delta = e.wheelDeltaY/6;\n delta = 0;\n }\n }\n if (delta) {\n if (e.preventDefault) {\n e.preventDefault();\n }\n e.returnValue = false;\n }\n // Stop from scrolling too far\n scroll_to = parseInt(this._el.slider.style.left.replace(\"px\", \"\")) + delta;\n\n\n if (scroll_to > constraint.left) {\n scroll_to = constraint.left;\n } else if (scroll_to < constraint.right) {\n scroll_to = constraint.right;\n }\n\n if (this.animate_css) {\n this._el.slider.className = \"tl-timenav-slider\";\n this.animate_css = false;\n }\n\n this._el.slider.style.left = scroll_to + \"px\";\n\n }\n\n _onDragMove(e) {\n if (this.animate_css) {\n this._el.slider.className = \"tl-timenav-slider\";\n this.animate_css = false;\n }\n\n }\n\n /*\tPrivate Methods\n ================================================== */\n\n _drawTimeline(fast) {\n this.timescale = this._getTimeScale();\n this.timeaxis.drawTicks(this.timescale, this.options.optimal_tick_width);\n this.positionMarkers(fast);\n this._assignRowsToMarkers();\n this._createGroups();\n this._positionGroups();\n\n if (this.has_eras) {\n\n this._positionEras(fast);\n }\n }\n\n _updateDrawTimeline(check_update) {\n var do_update = false;\n\n // Check to see if redraw is needed\n if (check_update) {\n /* keep this aligned with _getTimeScale or reduce code duplication */\n var temp_timescale = new TimeScale(this.config, {\n display_width: this._el.container.offsetWidth,\n screen_multiplier: this.options.scale_factor,\n max_rows: this.max_rows\n\n });\n\n if (this.timescale.getMajorScale() == temp_timescale.getMajorScale() &&\n this.timescale.getMinorScale() == temp_timescale.getMinorScale()) {\n do_update = true;\n }\n } else {\n do_update = true;\n }\n\n // Perform update or redraw\n if (do_update) {\n this.timescale = this._getTimeScale();\n this.timeaxis.positionTicks(this.timescale, this.options.optimal_tick_width);\n this.positionMarkers();\n this._assignRowsToMarkers();\n this._positionGroups();\n if (this.has_eras) {\n this._positionEras();\n }\n this.updateDisplay();\n } else {\n this._drawTimeline(true);\n }\n\n return do_update;\n\n }\n\n\n /*\tInit\n ================================================== */\n _initLayout() {\n // Create Layout\n this._el.attribution = DOM.create('div', 'tl-attribution', this._el.container);\n this._el.line = DOM.create('div', 'tl-timenav-line', this._el.container);\n this._el.slider = DOM.create('div', 'tl-timenav-slider', this._el.container);\n this._el.slider_background = DOM.create('div', 'tl-timenav-slider-background', this._el.slider);\n this._el.marker_container_mask = DOM.create('div', 'tl-timenav-container-mask', this._el.slider);\n this._el.marker_container = DOM.create('div', 'tl-timenav-container', this._el.marker_container_mask);\n this._el.marker_item_container = DOM.create('div', 'tl-timenav-item-container', this._el.marker_container);\n this._el.timeaxis = DOM.create('div', 'tl-timeaxis', this._el.slider);\n this._el.timeaxis_background = DOM.create('div', 'tl-timeaxis-background', this._el.container);\n\n\n // Knight Lab Logo\n this._el.attribution.innerHTML = \"TimelineJS\"\n\n // Time Axis\n this.timeaxis = new TimeAxis(this._el.timeaxis, this.options, this.language);\n\n // Swipable\n this._swipable = new Swipable(this._el.slider_background, this._el.slider, {\n enable: { x: true, y: false },\n constraint: { top: false, bottom: false, left: (this.options.width / 2), right: false },\n snap: false\n });\n this._swipable.enable();\n\n }\n\n _initEvents() {\n // Drag Events\n this._swipable.on('dragmove', this._onDragMove, this);\n\n // Scroll Events\n DOMEvent.addListener(this._el.container, 'mousewheel', this._onMouseScroll, this);\n DOMEvent.addListener(this._el.container, 'DOMMouseScroll', this._onMouseScroll, this);\n }\n\n _initData() {\n // Create Markers and then add them\n this._createMarkers(this.config.events);\n\n if (this.config.eras && this.config.eras.length > 0) {\n this.has_eras = true;\n this._createEras(this.config.eras);\n }\n\n this._drawTimeline();\n\n }\n}\n\nclassMixin(TimeNav, Events, DOMMixins)","import { addClass } from \"../dom/DOMUtil\"\nimport { I18NMixins } from \"../language/I18NMixins\";\nimport Events from \"../core/Events\";\nimport { DOMMixins } from \"../dom/DOMMixins\";\nimport { classMixin, mergeData, trim } from \"../core/Util\"\nimport * as DOM from \"../dom/DOM\"\nimport { Animate } from \"../animation/Animate\"\nimport { easeInSpline } from \"../animation/Ease\"\nimport * as Browser from \"../core/Browser\"\nimport { lookupMediaType } from \"../media/MediaType\";\nimport { Text } from \"../media/Media\"\n\nexport class Slide {\n\n constructor(data, options, title_slide, language) {\n if (language) {\n this.setLanguage(language)\n }\n\n // DOM Elements\n this._el = {\n container: {},\n scroll_container: {},\n background: {},\n content_container: {},\n content: {}\n };\n\n // Components\n this._media = null;\n this._mediaclass = {};\n this._text = {};\n this._background_media = null;\n\n // State\n this._state = {\n loaded: false\n };\n\n this.has = {\n headline: false,\n text: false,\n media: false,\n title: false,\n background: {\n image: false,\n color: false,\n color_value: \"\"\n }\n }\n\n this.has.title = title_slide;\n\n // Data\n this.data = {\n unique_id: null,\n background: null,\n start_date: null,\n end_date: null,\n location: null,\n text: null,\n media: null,\n autolink: true\n };\n\n // Options\n this.options = {\n // animation\n duration: 1000,\n slide_padding_lr: 40,\n ease: easeInSpline,\n width: 600,\n height: 600,\n skinny_size: 650,\n media_name: \"\"\n };\n\n // Actively Displaying\n this.active = false;\n\n // Animation Object\n this.animator = {};\n\n // Merge Data and Options\n mergeData(this.options, options);\n mergeData(this.data, data);\n\n this._initLayout();\n this._initEvents();\n\n\n }\n\n /*\tAdding, Hiding, Showing etc\n ================================================== */\n show() {\n this.animator = Animate(this._el.slider_container, {\n left: -(this._el.container.offsetWidth * n) + \"px\",\n duration: this.options.duration,\n easing: this.options.ease\n });\n }\n\n hide() {\n\n }\n\n setActive(is_active) {\n this.active = is_active;\n\n if (this.active) {\n if (this.data.background) {\n this.fire(\"background_change\", this.has.background);\n }\n this.loadMedia();\n } else {\n this.stopMedia();\n }\n }\n\n addTo(container) {\n container.appendChild(this._el.container);\n //this.onAdd();\n }\n\n removeFrom(container) {\n container.removeChild(this._el.container);\n }\n\n updateDisplay(width, height, layout) {\n var content_width,\n content_padding_left = this.options.slide_padding_lr,\n content_padding_right = this.options.slide_padding_lr;\n\n if (width) {\n this.options.width = width;\n } else {\n this.options.width = this._el.container.offsetWidth;\n }\n\n content_width = this.options.width - (this.options.slide_padding_lr * 2);\n\n if (Browser.mobile && (this.options.width <= this.options.skinny_size)) {\n content_padding_left = 0;\n content_padding_right = 0;\n content_width = this.options.width;\n } else if (layout == \"landscape\") {\n\n } else if (this.options.width <= this.options.skinny_size) {\n content_padding_left = 50;\n content_padding_right = 50;\n content_width = this.options.width - content_padding_left - content_padding_right;\n } else {\n\n }\n\n this._el.content.style.paddingLeft = content_padding_left + \"px\";\n this._el.content.style.paddingRight = content_padding_right + \"px\";\n this._el.content.style.width = content_width + \"px\";\n\n if (height) {\n this.options.height = height;\n //this._el.scroll_container.style.height\t\t= this.options.height + \"px\";\n\n } else {\n this.options.height = this._el.container.offsetHeight;\n }\n\n if (this._media) {\n\n if (!this.has.text && this.has.headline) {\n this._media.updateDisplay(content_width, (this.options.height - this._text.headlineHeight()), layout);\n } else if (!this.has.text && !this.has.headline) {\n this._media.updateDisplay(content_width, this.options.height, layout);\n } else if (this.options.width <= this.options.skinny_size) {\n this._media.updateDisplay(content_width, this.options.height, layout);\n } else {\n this._media.updateDisplay(content_width / 2, this.options.height, layout);\n }\n }\n\n this._updateBackgroundDisplay();\n }\n\n loadMedia() {\n var self = this;\n\n if (this._media && !this._state.loaded) {\n this._media.loadMedia();\n this._state.loaded = true;\n }\n\n if (this._background_media && !this._background_media._state.loaded) {\n this._background_media.on(\"loaded\", function() {\n self._updateBackgroundDisplay();\n });\n this._background_media.loadMedia();\n }\n }\n\n stopMedia() {\n if (this._media && this._state.loaded) {\n this._media.stopMedia();\n }\n }\n\n getBackground() {\n return this.has.background;\n }\n\n scrollToTop() {\n this._el.container.scrollTop = 0;\n }\n\n getFormattedDate() {\n\n if (trim(this.data.display_date).length > 0) {\n return this.data.display_date;\n }\n var date_text = \"\";\n\n if (!this.has.title) {\n if (this.data.end_date) {\n date_text = \" — \" + this.data.end_date.getDisplayDate(this.getLanguage());\n }\n if (this.data.start_date) {\n date_text = this.data.start_date.getDisplayDate(this.getLanguage()) + date_text;\n }\n }\n return date_text;\n }\n\n /*\tEvents\n ================================================== */\n\n\n /*\tPrivate Methods\n ================================================== */\n _initLayout() {\n // Create Layout\n this._el.container = DOM.create(\"div\", \"tl-slide\");\n\n if (this.has.title) {\n this._el.container.className = \"tl-slide tl-slide-titleslide\";\n }\n\n if (this.data.unique_id) {\n this._el.container.id = this.data.unique_id;\n }\n this._el.scroll_container = DOM.create(\"div\", \"tl-slide-scrollable-container\", this._el.container);\n this._el.content_container = DOM.create(\"div\", \"tl-slide-content-container\", this._el.scroll_container);\n this._el.content = DOM.create(\"div\", \"tl-slide-content\", this._el.content_container);\n this._el.background = DOM.create(\"div\", \"tl-slide-background\", this._el.container);\n // Style Slide Background\n if (this.data.background) {\n if (this.data.background.url) {\n var media_type = lookupMediaType(this.data.background, true);\n if (media_type) {\n this._background_media = new media_type.cls(this.data.background, { background: 1 });\n\n this.has.background.image = true;\n this._el.container.className += ' tl-full-image-background';\n this.has.background.color_value = \"#000\";\n this._el.background.style.display = \"block\";\n }\n }\n if (this.data.background.color) {\n this.has.background.color = true;\n this._el.container.className += ' tl-full-color-background';\n this.has.background.color_value = this.data.background.color;\n //this._el.container.style.backgroundColor = this.data.background.color;\n //this._el.background.style.backgroundColor \t= this.data.background.color;\n //this._el.background.style.display \t\t\t= \"block\";\n }\n if (this.data.background.text_background) {\n this._el.container.className += ' tl-text-background';\n }\n\n }\n\n\n\n // Determine Assets for layout and loading\n if (this.data.media && this.data.media.url && this.data.media.url != \"\") {\n this.has.media = true;\n }\n if (this.data.text && this.data.text.text) {\n this.has.text = true;\n }\n if (this.data.text && this.data.text.headline) {\n this.has.headline = true;\n }\n\n // Create Media\n if (this.has.media) {\n // Determine the media type\n this.data.media.mediatype = lookupMediaType(this.data.media);\n this.options.media_name = this.data.media.mediatype.name;\n this.options.media_type = this.data.media.mediatype.type;\n this.options.autolink = this.data.autolink;\n\n // Create a media object using the matched class name\n this._media = new this.data.media.mediatype.cls(this.data.media, this.options, this.getLanguage());\n }\n\n // Create Text\n if (this.has.text || this.has.headline) {\n this._text = new Text(this.data.text, { title: this.has.title, language: this.options.language, autolink: this.data.autolink });\n this._text.addDateText(this.getFormattedDate());\n }\n\n\n\n // Add to DOM\n if (!this.has.text && !this.has.headline && this.has.media) {\n addClass(this._el.container, 'tl-slide-media-only');\n this._media.addTo(this._el.content);\n } else if (this.has.headline && this.has.media && !this.has.text) {\n addClass(this._el.container, 'tl-slide-media-only');\n this._text.addTo(this._el.content);\n this._media.addTo(this._el.content);\n } else if (this.has.text && this.has.media) {\n this._media.addTo(this._el.content);\n this._text.addTo(this._el.content);\n } else if (this.has.text || this.has.headline) {\n addClass(this._el.container, 'tl-slide-text-only');\n this._text.addTo(this._el.content);\n }\n\n // Fire event that the slide is loaded\n this.onLoaded();\n\n }\n\n _initEvents() {\n\n }\n\n _updateBackgroundDisplay() {\n if (this._background_media && this._background_media._state.loaded) {\n this._el.background.style.backgroundImage = \"url('\" + this._background_media.getImageURL(this.options.width, this.options.height) + \"')\";\n }\n }\n\n}\nclassMixin(Slide, I18NMixins, Events, DOMMixins)","import Events from \"../core/Events\";\nimport { DOMMixins } from \"../dom/DOMMixins\";\nimport { classMixin, mergeData, unlinkify } from \"../core/Util\"\nimport * as DOM from \"../dom/DOM\"\nimport { DOMEvent } from \"../dom/DOMEvent\"\nimport * as Browser from \"../core/Browser\"\n\nexport class SlideNav {\n\t\n\tconstructor(data, options, add_to_container) {\n\t\t// DOM ELEMENTS\n\t\tthis._el = {\n\t\t\tcontainer: {},\n\t\t\tcontent_container: {},\n\t\t\ticon: {},\n\t\t\ttitle: {},\n\t\t\tdescription: {}\n\t\t};\n\t\n\t\t// Media Type\n\t\tthis.mediatype = {};\n\t\t\n\t\t// Data\n\t\tthis.data = {\n\t\t\ttitle: \"Navigation\",\n\t\t\tdescription: \"Description\",\n\t\t\tdate: \"Date\"\n\t\t};\n\t\n\t\t//Options\n\t\tthis.options = {\n\t\t\tdirection: \t\t\t\"previous\"\n\t\t};\n\t\n\t\tthis.animator = null;\n\t\t\n\t\t// Merge Data and Options\n\t\tmergeData(this.options, options);\n\t\tmergeData(this.data, data);\n\t\t\n\t\t\n\t\tthis._el.container = DOM.create(\"div\", \"tl-slidenav-\" + this.options.direction);\n\t\t\n\t\tif (Browser.mobile) {\n\t\t\tthis._el.container.setAttribute(\"ontouchstart\",\" \");\n\t\t}\n\t\t\n\t\tthis._initLayout();\n\t\tthis._initEvents();\n\t\t\n\t\tif (add_to_container) {\n\t\t\tadd_to_container.appendChild(this._el.container);\n\t\t};\n\t\t\n\t}\n\t\n\t/*\tUpdate Content\n\t================================================== */\n\tupdate(slide) {\n\t\tvar d = {\n\t\t\ttitle: \"\",\n\t\t\tdescription: \"\",\n\t\t\tdate: slide.getFormattedDate()\n\t\t};\n\t\t\n\t\tif (slide.data.text) {\n\t\t\tif (slide.data.text.headline) {\n\t\t\t\td.title = slide.data.text.headline;\n\t\t\t}\n\t\t}\n\n\t\tthis._update(d);\n\t}\n\t\n\t/*\tColor\n\t================================================== */\n\tsetColor(inverted) {\n\t\tif (inverted) {\n\t\t\tthis._el.content_container.className = 'tl-slidenav-content-container tl-slidenav-inverted';\n\t\t} else {\n\t\t\tthis._el.content_container.className = 'tl-slidenav-content-container';\n\t\t}\n\t}\n\t\n\t/*\tEvents\n\t================================================== */\n\t_onMouseClick() {\n\t\tthis.fire(\"clicked\", this.options);\n\t}\n\t\n\t/*\tPrivate Methods\n\t================================================== */\n\t_update(d) {\n\t\t// update data\n\t\tthis.data = mergeData(this.data, d);\n\t\t\n\t\t// Title\n\t\tthis._el.title.innerHTML = unlinkify(this.data.title);\n\t\t\n\t\t// Date\n\t\tthis._el.description.innerHTML\t= unlinkify(this.data.date);\n\t}\n\t\n\t_initLayout () {\n\t\t\n\t\t// Create Layout\n\t\tthis._el.content_container\t\t\t= DOM.create(\"div\", \"tl-slidenav-content-container\", this._el.container);\n\t\tthis._el.icon\t\t\t\t\t\t= DOM.create(\"div\", \"tl-slidenav-icon\", this._el.content_container);\n\t\tthis._el.title = DOM.create(\"div\", \"tl-slidenav-title\", this._el.content_container);\n\t\tthis._el.description = DOM.create(\"div\", \"tl-slidenav-description\", this._el.content_container);\n\t\t\n\t\tthis._el.icon.innerHTML\t\t\t\t= \" \"\n\t\t\n\t\tthis._update();\n\t}\n\t\n\t_initEvents () {\n\t\tDOMEvent.addListener(this._el.container, 'click', this._onMouseClick, this);\n\t}\n\t\n\t\n}\n\nclassMixin(SlideNav, DOMMixins, Events)\n","import { I18NMixins } from \"../language/I18NMixins\";\nimport Events from \"../core/Events\";\nimport { easeInOutQuint } from \"../animation/Ease\"\nimport { classMixin, mergeData, unique_ID, findArrayNumberByUniqueID, hexToRgb, trace } from \"../core/Util\"\nimport { Animate } from \"../animation/Animate\"\nimport * as DOM from \"../dom/DOM\"\nimport { DOMEvent } from \"../dom/DOMEvent\"\nimport * as Browser from \"../core/Browser\"\nimport { addClass } from \"../dom/DOMUtil\"\nimport Swipable from \"../ui/Swipable\";\nimport Message from \"../ui/Message\"\nimport { Slide } from \"./Slide\"\nimport { SlideNav } from \"./SlideNav\"\n\nexport class StorySlider {\n constructor(elem, data, options, language) {\n\n if (language) {\n this.setLanguage(language)\n }\n\n // DOM ELEMENTS\n this._el = {\n container: {},\n background: {},\n slider_container_mask: {},\n slider_container: {},\n slider_item_container: {}\n };\n\n this._nav = {};\n this._nav.previous = {};\n this._nav.next = {};\n\n // Slide Spacing\n this.slide_spacing = 0;\n\n // Slides Array\n this._slides = [];\n\n // Swipe Object\n this._swipable;\n\n // Preload Timer\n this.preloadTimer;\n\n // Message\n this._message;\n\n // Current Slide\n this.current_id = '';\n\n // Data Object\n this.data = {};\n\n this.options = {\n id: \"\",\n layout: \"portrait\",\n width: 600,\n height: 600,\n default_bg_color: { r: 255, g: 255, b: 255 },\n slide_padding_lr: 40, // padding on slide of slide\n start_at_slide: 1,\n slide_default_fade: \"0%\", // landscape fade\n // animation\n duration: 1000,\n ease: easeInOutQuint,\n // interaction\n dragging: true,\n trackResize: true\n };\n\n // Main element ID\n if (typeof elem === 'object') {\n this._el.container = elem;\n this.options.id = unique_ID(6, \"tl\");\n } else {\n this.options.id = elem;\n this._el.container = DOM.get(elem);\n }\n\n if (!this._el.container.id) {\n this._el.container.id = this.options.id;\n }\n\n // Animation Object\n this.animator = null;\n\n // Merge Data and Options\n mergeData(this.options, options);\n mergeData(this.data, data);\n\n }\n\n init() {\n this._initLayout();\n this._initEvents();\n this._initData();\n this.updateDisplay();\n\n // Go to initial slide\n this.goTo(this.options.start_at_slide);\n\n this._onLoaded();\n }\n\n /* Slides\n ================================================== */\n _addSlide(slide) {\n slide.addTo(this._el.slider_item_container);\n slide.on('added', this._onSlideAdded, this);\n slide.on('background_change', this._onBackgroundChange, this);\n }\n\n _createSlide(d, title_slide, n) {\n var slide = new Slide(d, this.options, title_slide, this.getLanguage());\n this._addSlide(slide);\n if (n < 0) {\n this._slides.push(slide);\n } else {\n this._slides.splice(n, 0, slide);\n }\n }\n\n _createSlides(array) {\n for (var i = 0; i < array.length; i++) {\n if (array[i].unique_id == \"\") {\n array[i].unique_id = unique_ID(6, \"tl-slide\");\n }\n this._createSlide(array[i], false, -1);\n }\n }\n\n _removeSlide(slide) {\n slide.removeFrom(this._el.slider_item_container);\n slide.off('added', this._onSlideRemoved, this);\n slide.off('background_change', this._onBackgroundChange);\n }\n\n _destroySlide(n) {\n this._removeSlide(this._slides[n]);\n this._slides.splice(n, 1);\n }\n\n _findSlideIndex(n) {\n var _n = n;\n if (typeof n == 'string' || n instanceof String) {\n _n = findArrayNumberByUniqueID(n, this._slides, \"unique_id\");\n }\n return _n;\n }\n\n /*\tPublic\n ================================================== */\n updateDisplay(width, height, animate, layout) {\n var nav_pos, _layout;\n\n if (typeof layout === 'undefined') {\n _layout = this.options.layout;\n } else {\n _layout = layout;\n }\n\n this.options.layout = _layout;\n\n if (width) {\n this.options.width = width;\n } else {\n this.options.width = this._el.container.offsetWidth;\n }\n\n if (height) {\n this.options.height = height;\n } else {\n this.options.height = this._el.container.offsetHeight;\n }\n\n this.slide_spacing = this.options.width * 2;\n\n // position navigation\n nav_pos = (this.options.height / 2);\n this._nav.next.setPosition({ top: nav_pos });\n this._nav.previous.setPosition({ top: nav_pos });\n\n\n // Position slides\n for (var i = 0; i < this._slides.length; i++) {\n this._slides[i].updateDisplay(this.options.width, this.options.height, _layout);\n this._slides[i].setPosition({ left: (this.slide_spacing * i), top: 0 });\n\n };\n\n // Go to the current slide\n this.goToId(this.current_id, true, true);\n }\n\n\n // Create a slide\n createSlide(d, n) {\n this._createSlide(d, false, n);\n }\n\n // Create Many Slides from an array\n createSlides(array) {\n this._createSlides(array);\n }\n\n // Destroy slide by index\n destroySlide(n) {\n this._destroySlide(n);\n }\n\n // Destroy slide by id\n destroySlideId(id) {\n this.destroySlide(this._findSlideIndex(id));\n }\n\n /*\tNavigation\n ================================================== */\n goTo(n, fast, displayupdate) {\n n = parseInt(n);\n if (isNaN(n)) n = 0;\n\n var self = this;\n\n this.changeBackground({ color_value: \"\", image: false });\n\n // Clear Preloader Timer\n if (this.preloadTimer) {\n clearTimeout(this.preloadTimer);\n }\n\n // Set Slide Active State\n for (var i = 0; i < this._slides.length; i++) {\n this._slides[i].setActive(false);\n }\n\n if (n < this._slides.length && n >= 0) {\n this.current_id = this._slides[n].data.unique_id;\n\n // Stop animation\n if (this.animator) {\n this.animator.stop();\n }\n if (this._swipable) {\n this._swipable.stopMomentum();\n }\n\n if (fast) {\n this._el.slider_container.style.left = -(this.slide_spacing * n) + \"px\";\n this._onSlideChange(displayupdate);\n } else {\n this.animator = Animate(this._el.slider_container, {\n left: -(this.slide_spacing * n) + \"px\",\n duration: this.options.duration,\n easing: this.options.ease,\n complete: this._onSlideChange(displayupdate)\n });\n }\n\n // Set Slide Active State\n this._slides[n].setActive(true);\n\n // Update Navigation and Info\n if (this._slides[n + 1]) {\n this.showNav(this._nav.next, true);\n this._nav.next.update(this._slides[n + 1]);\n } else {\n this.showNav(this._nav.next, false);\n }\n if (this._slides[n - 1]) {\n this.showNav(this._nav.previous, true);\n this._nav.previous.update(this._slides[n - 1]);\n } else {\n this.showNav(this._nav.previous, false);\n }\n\n // Preload Slides\n this.preloadTimer = setTimeout(function() {\n self.preloadSlides(n);\n }, this.options.duration);\n }\n }\n\n goToId(id, fast, displayupdate) {\n this.goTo(this._findSlideIndex(id), fast, displayupdate);\n }\n\n preloadSlides(n) {\n if (this._slides[n + 1]) {\n this._slides[n + 1].loadMedia();\n this._slides[n + 1].scrollToTop();\n }\n if (this._slides[n + 2]) {\n this._slides[n + 2].loadMedia();\n this._slides[n + 2].scrollToTop();\n }\n if (this._slides[n - 1]) {\n this._slides[n - 1].loadMedia();\n this._slides[n - 1].scrollToTop();\n }\n if (this._slides[n - 2]) {\n this._slides[n - 2].loadMedia();\n this._slides[n - 2].scrollToTop();\n }\n }\n\n next() {\n var n = this._findSlideIndex(this.current_id);\n if ((n + 1) < (this._slides.length)) {\n this.goTo(n + 1);\n } else {\n this.goTo(n);\n }\n }\n\n previous() {\n var n = this._findSlideIndex(this.current_id);\n if (n - 1 >= 0) {\n this.goTo(n - 1);\n } else {\n this.goTo(n);\n }\n }\n\n showNav(nav_obj, show) {\n\n if (this.options.width <= 500 && Browser.mobile) {\n\n } else {\n if (show) {\n nav_obj.show();\n } else {\n nav_obj.hide();\n }\n\n }\n }\n\n\n\n changeBackground(bg) {\n var bg_color = { r: 256, g: 256, b: 256 },\n bg_color_rgb;\n\n if (bg.color_value && bg.color_value != \"\") {\n bg_color = hexToRgb(bg.color_value);\n if (!bg_color) {\n trace(\"Invalid color value \" + bg.color_value);\n bg_color = this.options.default_bg_color;\n }\n } else {\n bg_color = this.options.default_bg_color;\n bg.color_value = \"rgb(\" + bg_color.r + \" , \" + bg_color.g + \", \" + bg_color.b + \")\";\n }\n\n bg_color_rgb = bg_color.r + \",\" + bg_color.g + \",\" + bg_color.b;\n this._el.background.style.backgroundImage = \"none\";\n\n\n if (bg.color_value) {\n this._el.background.style.backgroundColor = bg.color_value;\n } else {\n this._el.background.style.backgroundColor = \"transparent\";\n }\n\n if (bg_color.r < 255 || bg_color.g < 255 || bg_color.b < 255 || bg.image) {\n this._nav.next.setColor(true);\n this._nav.previous.setColor(true);\n } else {\n this._nav.next.setColor(false);\n this._nav.previous.setColor(false);\n }\n }\n /*\tPrivate Methods\n ================================================== */\n\n // Update Display\n\n // Reposition and redraw slides\n _updateDrawSlides() {\n var _layout = this.options.layout;\n\n for (var i = 0; i < this._slides.length; i++) {\n this._slides[i].updateDisplay(this.options.width, this.options.height, _layout);\n this._slides[i].setPosition({ left: (this.slide_spacing * i), top: 0 });\n };\n\n this.goToId(this.current_id, true, false);\n }\n\n\n /*\tInit\n ================================================== */\n _initLayout() {\n\n addClass(this._el.container, 'tl-storyslider');\n\n // Create Layout\n this._el.slider_container_mask = DOM.create('div', 'tl-slider-container-mask', this._el.container);\n this._el.background = DOM.create('div', 'tl-slider-background tl-animate', this._el.container);\n this._el.slider_container = DOM.create('div', 'tl-slider-container tlanimate', this._el.slider_container_mask);\n this._el.slider_item_container = DOM.create('div', 'tl-slider-item-container', this._el.slider_container);\n\n\n // Update Size\n this.options.width = this._el.container.offsetWidth;\n this.options.height = this._el.container.offsetHeight;\n\n // Create Navigation\n this._nav.previous = new SlideNav({ title: \"Previous\", description: \"description\" }, { direction: \"previous\" });\n this._nav.next = new SlideNav({ title: \"Next\", description: \"description\" }, { direction: \"next\" });\n\n // add the navigation to the dom\n this._nav.next.addTo(this._el.container);\n this._nav.previous.addTo(this._el.container);\n\n\n\n this._el.slider_container.style.left = \"0px\";\n\n if (Browser.touch) {\n //this._el.slider_touch_mask = DOM.create('div', 'tl-slider-touch-mask', this._el.slider_container_mask);\n this._swipable = new Swipable(this._el.slider_container_mask, this._el.slider_container, {\n enable: { x: true, y: false },\n snap: true\n });\n this._swipable.enable();\n\n // Message\n this._message = new Message(this._el.container, {\n message_class: \"tl-message-full\",\n message_icon_class: \"tl-icon-swipe-left\"\n },\n this.getLanguage());\n this._message.updateMessage(this._(\"swipe_to_navigate\"));\n this._message.addTo(this._el.container);\n }\n\n }\n\n _initEvents() {\n this._nav.next.on('clicked', this._onNavigation, this);\n this._nav.previous.on('clicked', this._onNavigation, this);\n\n if (this._message) {\n this._message.on('clicked', this._onMessageClick, this);\n }\n\n if (this._swipable) {\n this._swipable.on('swipe_left', this._onNavigation, this);\n this._swipable.on('swipe_right', this._onNavigation, this);\n this._swipable.on('swipe_nodirection', this._onSwipeNoDirection, this);\n }\n\n\n }\n\n _initData() {\n if (this.data.title) {\n this._createSlide(this.data.title, true, -1);\n }\n this._createSlides(this.data.events);\n }\n\n /*\tEvents\n ================================================== */\n _onBackgroundChange(e) {\n var n = this._findSlideIndex(this.current_id);\n var slide_background = this._slides[n].getBackground();\n this.changeBackground(e);\n this.fire(\"colorchange\", slide_background);\n }\n\n _onMessageClick(e) {\n this._message.hide();\n }\n\n _onSwipeNoDirection(e) {\n this.goToId(this.current_id);\n }\n\n _onNavigation(e) {\n\n if (e.direction == \"next\" || e.direction == \"left\") {\n this.next();\n } else if (e.direction == \"previous\" || e.direction == \"right\") {\n this.previous();\n }\n this.fire(\"nav_\" + e.direction, this.data);\n }\n\n _onSlideAdded(e) {\n trace(\"slideadded\")\n this.fire(\"slideAdded\", this.data);\n }\n\n _onSlideRemoved(e) {\n this.fire(\"slideRemoved\", this.data);\n }\n\n _onSlideChange(displayupdate) {\n if (!displayupdate) {\n this.fire(\"change\", { unique_id: this.current_id });\n }\n }\n\n _onMouseClick(e) {\n\n }\n\n _fireMouseEvent(e) {\n if (!this._loaded) {\n return;\n }\n\n var type = e.type;\n type = (type === 'mouseenter' ? 'mouseover' : (type === 'mouseleave' ? 'mouseout' : type));\n\n if (!this.hasEventListeners(type)) {\n return;\n }\n\n if (type === 'contextmenu') {\n DOMEvent.preventDefault(e);\n }\n\n this.fire(type, {\n latlng: \"something\", //this.mouseEventToLatLng(e),\n layerPoint: \"something else\" //this.mouseEventToLayerPoint(e)\n });\n }\n\n _onLoaded() {\n this.fire(\"loaded\", this.data);\n }\n\n\n}\n\nclassMixin(StorySlider, I18NMixins, Events)","import * as DOM from \"../dom/DOM\"\nimport * as Browser from \"../core/Browser\"\nimport Events from \"../core/Events\";\nimport { DOMMixins } from \"../dom/DOMMixins\"\nimport { easeInOutQuint } from \"../animation/Ease\"\nimport { classMixin, mergeData } from \"../core/Util\"\nimport { addClass, removeClass } from \"../dom/DOMUtil\"\nimport { DOMEvent } from \"../dom/DOMEvent\"\n\nexport class MenuBar {\n\tconstructor(elem, parent_elem, options) {\n\t\t// DOM ELEMENTS\n\t\tthis._el = {\n\t\t\tparent: {},\n\t\t\tcontainer: {},\n\t\t\tbutton_backtostart: {},\n\t\t\tbutton_zoomin: {},\n\t\t\tbutton_zoomout: {},\n\t\t\tarrow: {},\n\t\t\tline: {},\n\t\t\tcoverbar: {},\n\t\t\tgrip: {}\n\t\t};\n\n\t\tthis.collapsed = false;\n\n\t\tif (typeof elem === 'object') {\n\t\t\tthis._el.container = elem;\n\t\t} else {\n\t\t\tthis._el.container = DOM.get(elem);\n\t\t}\n\n\t\tif (parent_elem) {\n\t\t\tthis._el.parent = parent_elem;\n\t\t}\n\n\t\t//Options\n\t\tthis.options = {\n\t\t\twidth: \t\t\t\t\t600,\n\t\t\theight: \t\t\t\t600,\n\t\t\tduration: \t\t\t\t1000,\n\t\t\tease: \t\t\t\t\teaseInOutQuint,\n\t\t\tmenubar_default_y: \t\t0\n\t\t};\n\n\t\t// Animation\n\t\tthis.animator = {};\n\n\t\t// Merge Data and Options\n\t\tmergeData(this.options, options);\n\n\t\tthis._initLayout();\n\t\tthis._initEvents();\n\t}\n\n\t/*\tPublic\n\t================================================== */\n\tshow(d) {\n\n\t\tvar duration = this.options.duration;\n\t\tif (d) {\n\t\t\tduration = d;\n\t\t}\n\t}\n\n\thide(top) {\n\t}\n\n\ttoogleZoomIn(show) {\n\t\tif (show) {\n removeClass(this._el.button_zoomin,'tl-menubar-button-inactive');\n\t\t} else {\n addClass(this._el.button_zoomin,'tl-menubar-button-inactive');\n\t\t}\n\t}\n\n\ttoogleZoomOut(show) {\n\t\tif (show) {\n removeClass(this._el.button_zoomout,'tl-menubar-button-inactive');\n\t\t} else {\n addClass(this._el.button_zoomout,'tl-menubar-button-inactive');\n\t\t}\n\t}\n\n\tsetSticky(y) {\n\t\tthis.options.menubar_default_y = y;\n\t}\n\n\t/*\tColor\n\t================================================== */\n\tsetColor(inverted) {\n\t\tif (inverted) {\n\t\t\tthis._el.container.className = 'tl-menubar tl-menubar-inverted';\n\t\t} else {\n\t\t\tthis._el.container.className = 'tl-menubar';\n\t\t}\n\t}\n\n\t/*\tUpdate Display\n\t================================================== */\n\tupdateDisplay(w, h, a, l) {\n\t\tthis._updateDisplay(w, h, a, l);\n\t}\n\n\n\t/*\tEvents\n\t================================================== */\n\t_onButtonZoomIn(e) {\n\t\tthis.fire(\"zoom_in\", e);\n\t}\n\n\t_onButtonZoomOut(e) {\n\t\tthis.fire(\"zoom_out\", e);\n\t}\n\n\t_onButtonBackToStart(e) {\n\t\tthis.fire(\"back_to_start\", e);\n\t}\n\n\n\t/*\tPrivate Methods\n\t================================================== */\n\t_initLayout () {\n\n\t\t// Create Layout\n\t\tthis._el.button_zoomin = DOM.create('span', 'tl-menubar-button', this._el.container);\n\t\tthis._el.button_zoomout = DOM.create('span', 'tl-menubar-button', this._el.container);\n\t\tthis._el.button_backtostart = DOM.create('span', 'tl-menubar-button', this._el.container);\n\n\t\tif (Browser.mobile) {\n\t\t\tthis._el.container.setAttribute(\"ontouchstart\",\" \");\n\t\t}\n\n\t\tthis._el.button_backtostart.innerHTML\t\t= \"\";\n\t\tthis._el.button_zoomin.innerHTML\t\t\t= \"\";\n\t\tthis._el.button_zoomout.innerHTML\t\t\t= \"\";\n\n\n\t}\n\n\t_initEvents () {\n\t\tDOMEvent.addListener(this._el.button_backtostart, 'click', this._onButtonBackToStart, this);\n\t\tDOMEvent.addListener(this._el.button_zoomin, 'click', this._onButtonZoomIn, this);\n\t\tDOMEvent.addListener(this._el.button_zoomout, 'click', this._onButtonZoomOut, this);\n\t}\n\n\t// Update Display\n\t_updateDisplay(width, height, animate) {\n\n\t\tif (width) {\n\t\t\tthis.options.width = width;\n\t\t}\n\t\tif (height) {\n\t\t\tthis.options.height = height;\n\t\t}\n\t}\n\n}\n\nclassMixin(MenuBar, DOMMixins, Events)\n","import * as DOM from \"../dom/DOM\"\nimport { addClass } from \"../dom/DOMUtil\"\nimport { hexToRgb, mergeData, classMixin, isTrue, trace, addTraceHandler } from \"../core/Util\";\nimport { easeInOutQuint, easeOutStrong } from \"../animation/Ease\";\nimport Message from \"../ui/Message\"\nimport { Language, fallback, loadLanguage } from \"../language/Language\"\nimport { I18NMixins } from \"../language/I18NMixins\";\nimport Events from \"../core/Events\";\nimport { makeConfig } from \"../core/ConfigFactory\"\nimport { TimelineConfig } from \"../core/TimelineConfig\"\nimport { TimeNav } from \"../timenav/TimeNav\"\nimport * as Browser from \"../core/Browser\"\nimport { Animate } from \"../animation/Animate\"\nimport { StorySlider } from \"../slider/StorySlider\"\nimport { MenuBar } from \"../ui/MenuBar\"\nimport { loadCSS, loadJS } from \"../core/Load\";\n\nlet script_src_url = null;\nif (document) {\n let script_tags = document.getElementsByTagName('script');\n if (script_tags && script_tags.length > 0) {\n script_src_url = script_tags[script_tags.length - 1].src;\n }\n}\n\nfunction make_keydown_handler(timeline) {\n return function(event) {\n if (timeline.config) {\n var keyName = event.key;\n var currentSlide = timeline._getSlideIndex(self.current_id);\n var _n = timeline.config.events.length - 1;\n var lastSlide = timeline.config.title ? _n + 1 : _n;\n var firstSlide = 0;\n\n if (keyName == 'ArrowLeft') {\n if (currentSlide != firstSlide) {\n timeline.goToPrev();\n }\n } else if (keyName == 'ArrowRight') {\n if (currentSlide != lastSlide) {\n timeline.goToNext();\n }\n }\n }\n }\n}\n\n/**\n * Primary entry point for using TimelineJS.\n * @constructor\n * @param {HTMLElement|string} elem - the HTML element, or its ID, to which \n * the Timeline should be bound\n * @param {object|String} - a JavaScript object conforming to the TimelineJS\n * configuration format, or a String which is the URL for a Google Sheets document\n * or JSON configuration file which Timeline will retrieve and parse into a JavaScript object.\n * NOTE: do not pass a JSON String for this. TimelineJS doesn't try to distinguish a \n * JSON string from a URL string. If you have a JSON String literal, parse it using\n * `JSON.parse` before passing it to the constructor.\n *\n * @param {object} [options] - a JavaScript object specifying \n * presentation options\n */\nclass Timeline {\n constructor(elem, data, options) {\n if (!options) {\n options = {}\n }\n this.ready = false;\n this._el = {\n container: DOM.get(elem),\n storyslider: {},\n timenav: {},\n menubar: {}\n };\n\n if (options.lang && !options.language) {\n options.language = options.lang;\n }\n\n /** @type {Language} */\n this.language = fallback;\n\n /** @type {StorySlider} */\n this._storyslider = {};\n\n /** @type {TimeNav} */\n this._timenav = {};\n\n /** @type {MenuBar} */\n this._menubar = {};\n\n // Loaded State\n this._loaded = { storyslider: false, timenav: false };\n\n /** @type {TimelineConfig} */\n this.config = null;\n\n this.options = {\n script_path: \"https://cdn.knightlab.com/libs/timeline3/latest/js/\", // as good a default as any\n height: this._el.container.offsetHeight,\n width: this._el.container.offsetWidth,\n debug: false,\n font: 'default',\n is_embed: false,\n is_full_embed: false,\n hash_bookmark: false,\n default_bg_color: { r: 255, g: 255, b: 255 },\n scale_factor: 2, // How many screen widths wide should the timeline be\n layout: \"landscape\", // portrait or landscape\n timenav_position: \"bottom\", // timeline on top or bottom\n optimal_tick_width: 60, // optimal distance (in pixels) between ticks on axis\n base_class: \"tl-timeline\", // removing tl-timeline will break all default stylesheets...\n timenav_height: null,\n timenav_height_percentage: 25, // Overrides timenav height as a percentage of the screen\n timenav_mobile_height_percentage: 40, // timenav height as a percentage on mobile devices\n timenav_height_min: 175, // Minimum timenav height\n marker_height_min: 30, // Minimum Marker Height\n marker_width_min: 100, // Minimum Marker Width\n marker_padding: 5, // Top Bottom Marker Padding\n start_at_slide: 0,\n start_at_end: false,\n menubar_height: 0,\n skinny_size: 650,\n medium_size: 800,\n use_bc: false, // Use declared suffix on dates earlier than 0\n // animation\n duration: 1000,\n ease: easeInOutQuint,\n // interaction\n dragging: true,\n trackResize: true,\n map_type: \"stamen:toner-lite\",\n slide_padding_lr: 100, // padding on slide of slide\n slide_default_fade: \"0%\", // landscape fade\n zoom_sequence: [0.5, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89], // Array of Fibonacci numbers for TimeNav zoom levels\n language: \"en\",\n ga_property_id: null,\n track_events: ['back_to_start', 'nav_next', 'nav_previous', 'zoom_in', 'zoom_out'],\n theme: null,\n // sheets_proxy value should be suitable for simply postfixing with the Google Sheets CSV URL\n // as in include trailing slashes, or '?url=' or whatever. No support right now for anything but\n // postfixing. The default proxy should work in most cases, but only for TimelineJS sheets.\n sheets_proxy: 'https://sheets-proxy.knightlab.com/proxy/',\n soundcite: false,\n };\n\n // Animation Objects\n this.animator_timenav = null;\n this.animator_storyslider = null;\n this.animator_menubar = null;\n\n // Ideally we'd set the language here, but we're bootstrapping and may hit problems\n // before we're able to load it. if it weren't a remote resource, we could probably \n // do it.\n this.message = new Message(this._el.container, { message_class: \"tl-message-full\" });\n\n // Merge Options\n if (typeof(options.default_bg_color) == \"string\") {\n var parsed = hexToRgb(options.default_bg_color); // will clear it out if its invalid\n if (parsed) {\n options.default_bg_color = parsed;\n } else {\n delete options.default_bg_color\n trace(\"Invalid default background color. Ignoring.\");\n }\n }\n mergeData(this.options, options);\n\n if (!(this.options.script_path)) {\n this.options.script_path = this.determineScriptPath()\n }\n\n if (options.soundcite) {\n this.on('ready', () => {\n trace(\"Loading Soundcite resources \")\n loadCSS('https://cdn.knightlab.com/libs/soundcite/latest/css/player.css')\n loadJS('https://cdn.knightlab.com/libs/soundcite/latest/js/soundcite.min.js')\n })\n }\n\n // load font, theme\n this._loadStyles()\n\n\n document.addEventListener(\"keydown\", make_keydown_handler(this));\n window.addEventListener(\"resize\", function(e) {\n this.updateDisplay();\n }.bind(this));\n\n if (this.options.debug) {\n addTraceHandler(console.log)\n }\n\n // Apply base class to container\n addClass(this._el.container, 'tl-timeline');\n\n if (this.options.is_embed) {\n addClass(this._el.container, 'tl-timeline-embed');\n }\n\n if (this.options.is_full_embed) {\n addClass(this._el.container, 'tl-timeline-full-embed');\n }\n\n this._loadLanguage(data);\n\n }\n\n _loadStyles() {\n let font_css_url = null,\n theme_css_url = null;\n\n if (this.options.font && (\n this.options.font.indexOf('http') == 0 ||\n this.options.font.match(/\\.css$/))) {\n font_css_url = this.options.font\n } else if (this.options.font) {\n let fragment = '../css/fonts/font.' + this.options.font.toLowerCase() + '.css'\n font_css_url = new URL(fragment, this.options.script_path).toString()\n }\n\n if (font_css_url) {\n loadCSS(font_css_url)\n }\n\n if (this.options.theme && (\n this.options.theme.indexOf('http') == 0 ||\n this.options.theme.match(/\\.css$/))) {\n theme_css_url = this.options.theme\n } else if (this.options.theme) {\n let fragment = '../css/themes/timeline.theme.' + this.options.theme.toLowerCase() + '.css'\n theme_css_url = new URL(fragment, this.options.script_path).toString()\n }\n\n if (theme_css_url) {\n loadCSS(theme_css_url)\n }\n\n\n }\n\n\n _loadLanguage(data) {\n try {\n var lang = this.options.language\n var script_path = this.options.script_path\n loadLanguage(lang, script_path).then((language) => {\n if (language) {\n this.language = language\n this.message.setLanguage(this.language)\n this.options.language = this.language // easiest way to make language available to I18NMixins\n this.showMessage(this._('loading_timeline'))\n } else {\n this.showMessage(`Error loading ${lang}`) // but we will carry on using the fallback\n }\n this._initData(data)\n })\n } catch (e) {\n this.showMessage(this._translateError(e))\n }\n }\n\n /**\n * Initialize the data for this timeline. If data is a URL, pass it to ConfigFactory\n * to get a TimelineConfig; if data is a TimelineConfig, just use it; otherwise, \n * assume it's a JSON object in the right format, and wrap it in a new TimelineConfig.\n * @param {string|TimelineConfig|object} data\n */\n _initData(data) {\n if (typeof data == 'string') {\n makeConfig(data, {\n callback: function(config) {\n this.setConfig(config);\n }.bind(this),\n sheets_proxy: this.options.sheets_proxy\n });\n } else if (TimelineConfig == data.constructor) {\n this.setConfig(data);\n } else {\n this.setConfig(new TimelineConfig(data));\n }\n }\n\n /**\n * Given an input, if it is a Timeline Error object, look up the\n * appropriate error in the current language and return it, optionally \n * with detail that also comes in the object. Alternatively, pass back\n * the input, which is expected to be a string ready to display.\n * @param {Error|string} e - an Error object which can be localized, \n * or a string message\n */\n _translateError(e) {\n\n if (e.hasOwnProperty('stack')) {\n trace(e.stack);\n }\n if (e.message_key) {\n return this._(e.message_key) + (e.detail ? ' [' + e.detail + ']' : '')\n }\n return e;\n\n }\n\n /**\n * Display a message in the Timeline window.\n * @param {string} msg \n */\n showMessage(msg) {\n if (this.message) {\n this.message.updateMessage(msg);\n } else {\n trace(\"No message display available.\")\n trace(msg);\n }\n }\n /**\n * Not ideal, but if users don't specify the script path, we try to figure it out.\n * The script path is needed to load other languages\n */\n determineScriptPath() {\n let src = null;\n if (script_src_url) { // did we get it when this loaded?\n src = script_src_url;\n } else {\n let script_tag = document.getElementById('timeline-script-tag')\n if (script_tag) {\n src = script_tag.src\n }\n }\n\n if (!src) {\n let script_tags = document.getElementsByTagName('script');\n for (let index = script_tags.length - 1; index >= 0; index--) {\n if (script_tags[index].src) {\n src = script_tags[index].src\n break // if we haven't found anything else, use the latest loaded script\n }\n }\n }\n\n if (src) {\n // +1 to include the trailing slash or concatting for dynamic CSS load won't work.\n return src.substr(0, src.lastIndexOf('/') + 1);\n }\n return '';\n }\n\n\n setConfig(config) {\n this.config = config;\n if (this.config.isValid()) {\n // don't validate if it's already problematic to avoid clutter\n this.config.validate();\n this._validateOptions();\n }\n if (this.config.isValid()) {\n try {\n if (document.readyState === 'loading') { // Loading hasn't finished yet\n document.addEventListener('DOMContentLoaded', this._onDataLoaded.bind(this));\n } else {\n this._onDataLoaded();\n }\n } catch (e) {\n this.showMessage(\"\" + this._('error') + \": \" + this._translateError(e));\n }\n } else {\n var translated_errs = [];\n\n for (var i = 0, errs = this.config.getErrors(); i < errs.length; i++) {\n translated_errs.push(this._translateError(errs[i]));\n }\n\n this.showMessage(\"\" + this._('error') + \": \" + translated_errs.join('
'));\n // should we set 'self.ready'? if not, it won't resize,\n // but most resizing would only work\n // if more setup happens\n }\n }\n\n _onDataLoaded() {\n this.fire(\"dataloaded\");\n this._initLayout();\n this._initEvents();\n this._initAnalytics();\n if (this.message) {\n this.message.hide();\n }\n let callback = (entries, observer) => {\n if (entries.reduce((accum, curr) => accum || curr.isIntersecting, false)) {\n this.updateDisplay()\n }\n }\n let observer = new IntersectionObserver(callback.bind(this))\n observer.observe(this._el.container)\n this.ready = true;\n this.fire(\"ready\")\n\n }\n\n _initLayout() {\n var self = this;\n\n this.message.removeFrom(this._el.container);\n this._el.container.innerHTML = \"\";\n\n // Create Layout\n if (this.options.timenav_position == \"top\") {\n this._el.timenav = DOM.create('div', 'tl-timenav', this._el.container);\n this._el.storyslider = DOM.create('div', 'tl-storyslider', this._el.container);\n } else {\n this._el.storyslider = DOM.create('div', 'tl-storyslider', this._el.container);\n this._el.timenav = DOM.create('div', 'tl-timenav', this._el.container);\n }\n\n this._el.menubar = DOM.create('div', 'tl-menubar', this._el.container);\n\n\n // Initial Default Layout\n this.options.width = this._el.container.offsetWidth;\n this.options.height = this._el.container.offsetHeight;\n // this._el.storyslider.style.top = \"1px\";\n\n // Set TimeNav Height\n this.options.timenav_height = this._calculateTimeNavHeight(this.options.timenav_height);\n\n // Create TimeNav\n this._timenav = new TimeNav(this._el.timenav, this.config, this.options, this.language);\n this._timenav.on('loaded', this._onTimeNavLoaded, this);\n this._timenav.options.height = this.options.timenav_height;\n this._timenav.init();\n\n // intial_zoom cannot be applied before the timenav has been created\n if (this.options.initial_zoom) {\n // at this point, this.options refers to the merged set of options\n this.setZoom(this.options.initial_zoom);\n }\n\n // Create StorySlider\n this._storyslider = new StorySlider(this._el.storyslider, this.config, this.options, this.language);\n this._storyslider.on('loaded', this._onStorySliderLoaded, this);\n this._storyslider.init();\n\n // Create Menu Bar\n this._menubar = new MenuBar(this._el.menubar, this._el.container, this.options);\n\n // LAYOUT\n if (this.options.layout == \"portrait\") {\n this.options.storyslider_height = (this.options.height - this.options.timenav_height - 1);\n } else {\n this.options.storyslider_height = (this.options.height - 1);\n }\n\n\n // Update Display\n this._updateDisplay(this._timenav.options.height, true, 2000);\n\n }\n\n _initEvents() {\n // TimeNav Events\n this._timenav.on('change', this._onTimeNavChange, this);\n this._timenav.on('zoomtoggle', this._onZoomToggle, this);\n\n // StorySlider Events\n this._storyslider.on('change', this._onSlideChange, this);\n this._storyslider.on('colorchange', this._onColorChange, this);\n this._storyslider.on('nav_next', this._onStorySliderNext, this);\n this._storyslider.on('nav_previous', this._onStorySliderPrevious, this);\n\n // Menubar Events\n this._menubar.on('zoom_in', this._onZoomIn, this);\n this._menubar.on('zoom_out', this._onZoomOut, this);\n this._menubar.on('back_to_start', this._onBackToStart, this);\n\n }\n\n _onColorChange(e) {\n this.fire(\"color_change\", { unique_id: this.current_id }, this);\n }\n\n _onSlideChange(e) {\n if (this.current_id != e.unique_id) {\n this.current_id = e.unique_id;\n this._timenav.goToId(this.current_id);\n this._onChange(e);\n }\n }\n\n _onTimeNavChange(e) {\n if (this.current_id != e.unique_id) {\n this.current_id = e.unique_id;\n this._storyslider.goToId(this.current_id);\n this._onChange(e);\n }\n }\n\n _onZoomToggle(e) {\n if (e.zoom == \"in\") {\n this._menubar.toogleZoomIn(e.show);\n } else if (e.zoom == \"out\") {\n this._menubar.toogleZoomOut(e.show);\n }\n\n }\n\n\n\n _onChange(e) {\n this.fire(\"change\", { unique_id: this.current_id }, this);\n if (this.options.hash_bookmark && this.current_id) {\n this._updateHashBookmark(this.current_id);\n }\n }\n\n _onBackToStart(e) {\n this._storyslider.goTo(0);\n this.fire(\"back_to_start\", { unique_id: this.current_id }, this);\n }\n\n _onZoomIn(e) {\n this._timenav.zoomIn();\n this.fire(\"zoom_in\", { zoom_level: this._timenav.options.scale_factor }, this);\n }\n\n _onZoomOut(e) {\n this._timenav.zoomOut();\n this.fire(\"zoom_out\", { zoom_level: this._timenav.options.scale_factor }, this);\n }\n\n _onTimeNavLoaded() {\n this._loaded.timenav = true;\n this._onLoaded();\n }\n\n _onStorySliderLoaded() {\n this._loaded.storyslider = true;\n this._onLoaded();\n }\n\n _onStorySliderNext(e) {\n this.fire(\"nav_next\", e);\n }\n\n _onStorySliderPrevious(e) {\n this.fire(\"nav_previous\", e);\n }\n\n\n _updateDisplay(timenav_height, animate, d) {\n var duration = this.options.duration,\n display_class = this.options.base_class,\n menu_position = 0,\n self = this;\n\n if (d) {\n duration = d;\n }\n\n // Update width and height\n this.options.width = this._el.container.offsetWidth;\n this.options.height = this._el.container.offsetHeight;\n\n // Check if skinny\n if (this.options.width <= this.options.skinny_size) {\n display_class += \" tl-skinny\";\n this.options.layout = \"portrait\";\n } else if (this.options.width <= this.options.medium_size) {\n display_class += \" tl-medium\";\n this.options.layout = \"landscape\";\n } else {\n this.options.layout = \"landscape\";\n }\n\n // Detect Mobile and Update Orientation on Touch devices\n if (Browser.touch) {\n this.options.layout = Browser.orientation();\n }\n\n if (Browser.mobile) {\n display_class += \" tl-mobile\";\n // Set TimeNav Height\n this.options.timenav_height = this._calculateTimeNavHeight(timenav_height, this.options.timenav_mobile_height_percentage);\n } else {\n // Set TimeNav Height\n this.options.timenav_height = this._calculateTimeNavHeight(timenav_height);\n }\n\n // LAYOUT\n if (this.options.layout == \"portrait\") {\n // Portrait\n display_class += \" tl-layout-portrait\";\n\n } else {\n // Landscape\n display_class += \" tl-layout-landscape\";\n\n }\n\n // Set StorySlider Height\n this.options.storyslider_height = (this.options.height - this.options.timenav_height);\n\n // Positon Menu\n if (this.options.timenav_position == \"top\") {\n menu_position = (Math.ceil(this.options.timenav_height) / 2) - (this._el.menubar.offsetHeight / 2) - (39 / 2);\n } else {\n menu_position = Math.round(this.options.storyslider_height + 1 + (Math.ceil(this.options.timenav_height) / 2) - (this._el.menubar.offsetHeight / 2) - (35 / 2));\n }\n\n\n if (animate) {\n\n this._el.timenav.style.height = Math.ceil(this.options.timenav_height) + \"px\";\n\n // Animate StorySlider\n if (this.animator_storyslider) {\n this.animator_storyslider.stop();\n }\n this.animator_storyslider = Animate(this._el.storyslider, {\n height: this.options.storyslider_height + \"px\",\n duration: duration / 2,\n easing: easeOutStrong\n });\n\n // Animate Menubar\n if (this.animator_menubar) {\n this.animator_menubar.stop();\n }\n\n this.animator_menubar = Animate(this._el.menubar, {\n top: menu_position + \"px\",\n duration: duration / 2,\n easing: easeOutStrong\n });\n\n } else {\n // TimeNav\n this._el.timenav.style.height = Math.ceil(this.options.timenav_height) + \"px\";\n\n // StorySlider\n this._el.storyslider.style.height = this.options.storyslider_height + \"px\";\n\n // Menubar\n this._el.menubar.style.top = menu_position + \"px\";\n }\n\n if (this.message) {\n this.message.updateDisplay(this.options.width, this.options.height);\n }\n // Update Component Displays\n this._timenav.updateDisplay(this.options.width, this.options.timenav_height, animate);\n this._storyslider.updateDisplay(this.options.width, this.options.storyslider_height, animate, this.options.layout);\n\n if (this.options.language.direction == 'rtl') {\n display_class += ' tl-rtl';\n }\n\n\n // Apply class\n this._el.container.className = display_class;\n\n }\n\n /**\n * Compute the height of the navigation section of the Timeline, taking \n * into account the possibility of an explicit height or height \n * percentage, but also honoring the `timenav_height_min` option \n * value. If `timenav_height` is specified it takes precedence over \n * `timenav_height_percentage` but in either case, if the resultant \n * pixel height is less than `options.timenav_height_min` then the \n * value of `options.timenav_height_min` will be returned. (A minor \n * adjustment is made to the returned value to account for marker \n * padding.)\n * \n * @param {number} [timenav_height] - an integer value for the desired height in pixels\n * @param {number} [timenav_height_percentage] - an integer between 1 and 100\n */\n _calculateTimeNavHeight(timenav_height, timenav_height_percentage) {\n\n var height = 0;\n\n if (timenav_height) {\n height = timenav_height;\n } else {\n if (this.options.timenav_height_percentage || timenav_height_percentage) {\n if (timenav_height_percentage) {\n height = Math.round((this.options.height / 100) * timenav_height_percentage);\n } else {\n height = Math.round((this.options.height / 100) * this.options.timenav_height_percentage);\n }\n\n }\n }\n\n // Set new minimum based on how many rows needed\n if (this._timenav.ready) {\n if (this.options.timenav_height_min < this._timenav.getMinimumHeight()) {\n this.options.timenav_height_min = this._timenav.getMinimumHeight();\n }\n }\n\n // If height is less than minimum set it to minimum\n if (height < this.options.timenav_height_min) {\n height = this.options.timenav_height_min;\n }\n\n height = height - (this.options.marker_padding * 2);\n\n return height;\n }\n\n _validateOptions() {\n // assumes that this.options and this.config have been set.\n var INTEGER_PROPERTIES = ['timenav_height', 'timenav_height_min', 'marker_height_min', 'marker_width_min', 'marker_padding', 'start_at_slide', 'slide_padding_lr'];\n\n for (var i = 0; i < INTEGER_PROPERTIES.length; i++) {\n var opt = INTEGER_PROPERTIES[i];\n var value = this.options[opt];\n let valid = true;\n if (typeof(value) == 'number') {\n valid = (value == parseInt(value))\n } else if (typeof(value) == \"string\") {\n valid = (value.match(/^\\s*(\\-?\\d+)?\\s*$/));\n }\n if (!valid) {\n this.config.logError({ message_key: 'invalid_integer_option', detail: opt });\n }\n }\n }\n\n /**\n * Given a slide identifier, return the zero-based positional index of\n * that slide. If this timeline has a 'title' slide, it is at position 0\n * and all other slides are numbered after that. If there is no 'title' \n * slide, then the first event slide is at position 0.\n * @param {String} id \n */\n _getSlideIndex(id) {\n if (this.config) {\n if (this.config.title && this.config.title.unique_id == id) {\n return 0;\n }\n for (var i = 0; i < this.config.events.length; i++) {\n if (id == this.config.events[i].unique_id) {\n return this.config.title ? i + 1 : i;\n }\n }\n }\n return -1;\n }\n\n /**\n * Given a slide identifier, return the zero-based positional index of that slide.\n * Does not take the existence of a 'title' slide into account, so if there is a title\n * slide, this value should be one less than calling `_getSlideIndex` with the same\n * identifier. If there is no title slide, `_getSlideIndex` and `_getEventIndex` \n * should return the same value.\n * TODO: does it really make sense to have both `_getSlideIndex` and `_getEventIndex`?\n * @param {String} id \n */\n _getEventIndex(id) {\n for (var i = 0; i < this.config.events.length; i++) {\n if (id == this.config.events[i].unique_id) {\n return i;\n }\n }\n return -1;\n }\n\n _onLoaded() {\n if (this._loaded.storyslider && this._loaded.timenav) {\n this.fire(\"loaded\", this.config);\n // Go to proper slide\n if (isTrue(this.options.start_at_end) || this.options.start_at_slide > this.config.events.length) {\n this.goToEnd();\n } else {\n this.goTo(this.options.start_at_slide);\n }\n if (this.options.hash_bookmark) {\n if (window.location.hash != \"\") {\n this.goToId(window.location.hash.replace(\"#event-\", \"\"));\n } else {\n this._updateHashBookmark(this.current_id);\n }\n let the_timeline = this;\n window.addEventListener('hashchange', function() {\n if (window.location.hash.indexOf('#event-') == 0) {\n the_timeline.goToId(window.location.hash.replace(\"#event-\", \"\"));\n }\n }, false);\n }\n\n }\n }\n\n // Update hashbookmark in the url bar\n _updateHashBookmark(id) {\n if (id) { // TODO: validate the id...\n var hash = \"#\" + \"event-\" + id.toString();\n window.history.replaceState(null, \"Browsing TimelineJS\", hash);\n this.fire(\"hash_updated\", { unique_id: this.current_id, hashbookmark: \"#\" + \"event-\" + id.toString() }, this);\n }\n }\n\n\n /*\n PUBLIC API\n This has been minimally tested since most people use TimelineJS as an embed.\n If we hear from people who are trying to use TimelineJS this way, we will do\n what we can to make sure it works correctly, and will appreciate help!\n */\n zoomIn() {\n this._timenav.zoomIn();\n }\n\n zoomOut() {\n this._timenav.zoomOut();\n }\n\n setZoom(level) {\n this._timenav.setZoom(level);\n }\n\n // Goto slide with id\n goToId(id) {\n if (this.current_id != id) {\n\n this.current_id = id;\n this._timenav.goToId(this.current_id);\n this._storyslider.goToId(this.current_id, false, true);\n this.fire(\"change\", { unique_id: this.current_id }, this);\n }\n }\n\n // Goto slide n\n goTo(n) {\n if (this.config.title) {\n if (n == 0) {\n this.goToId(this.config.title.unique_id);\n } else {\n this.goToId(this.config.events[n - 1].unique_id);\n }\n } else {\n this.goToId(this.config.events[n].unique_id);\n }\n }\n\n // Goto first slide\n goToStart() {\n this.goTo(0);\n }\n\n // Goto last slide\n goToEnd() {\n var _n = this.config.events.length - 1;\n this.goTo(this.config.title ? _n + 1 : _n);\n }\n\n // Goto previous slide\n goToPrev() {\n this.goTo(this._getSlideIndex(this.current_id) - 1);\n }\n\n // Goto next slide\n goToNext() {\n this.goTo(this._getSlideIndex(this.current_id) + 1);\n }\n\n /* Event manipulation\n ================================================== */\n\n // Add an event\n add(data) {\n var unique_id = this.config.addEvent(data);\n\n var n = this._getEventIndex(unique_id);\n var d = this.config.events[n];\n\n this._storyslider.createSlide(d, this.config.title ? n + 1 : n);\n this._storyslider._updateDrawSlides();\n\n this._timenav.createMarker(d, n);\n this._timenav._updateDrawTimeline(false);\n\n this.fire(\"added\", { unique_id: unique_id });\n }\n\n // Remove an event\n remove(n) {\n if (n >= 0 && n < this.config.events.length) {\n // If removing the current, nav to new one first\n if (this.config.events[n].unique_id == this.current_id) {\n if (n < this.config.events.length - 1) {\n this.goTo(n + 1);\n } else {\n this.goTo(n - 1);\n }\n }\n\n var event = this.config.events.splice(n, 1);\n delete this.config.event_dict[event[0].unique_id];\n this._storyslider.destroySlide(this.config.title ? n + 1 : n);\n this._storyslider._updateDrawSlides();\n\n this._timenav.destroyMarker(n);\n this._timenav._updateDrawTimeline(false);\n\n this.fire(\"removed\", { unique_id: event[0].unique_id });\n }\n }\n\n removeId(id) {\n this.remove(this._getEventIndex(id));\n }\n\n /* Get slide data\n ================================================== */\n\n getData(n) {\n if (this.config.title) {\n if (n == 0) {\n return this.config.title;\n } else if (n > 0 && n <= this.config.events.length) {\n return this.config.events[n - 1];\n }\n } else if (n >= 0 && n < this.config.events.length) {\n return this.config.events[n];\n }\n return null;\n }\n\n getDataById(id) {\n return this.getData(this._getSlideIndex(id));\n }\n\n /* Get slide object\n ================================================== */\n\n getSlide(n) {\n if (n >= 0 && n < this._storyslider._slides.length) {\n return this._storyslider._slides[n];\n }\n return null;\n }\n\n getSlideById(id) {\n return this.getSlide(this._getSlideIndex(id));\n }\n\n getCurrentSlide() {\n return this.getSlideById(this.current_id);\n }\n\n updateDisplay() {\n if (this.ready) {\n this._updateDisplay();\n } else {\n trace('updateDisplay called but timeline is not in ready state')\n }\n }\n\n _initGoogleAnalytics() {\n (function(i, s, o, g, r, a, m) {\n i['GoogleAnalyticsObject'] = r;\n i[r] = i[r] || function() {\n (i[r].q = i[r].q || []).push(arguments)\n }, i[r].l = 1 * new Date();\n a = s.createElement(o), m = s.getElementsByTagName(o)[0];\n a.async = 1;\n a.src = g;\n m.parentNode.insertBefore(a, m)\n })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');\n\n ga('create', this.options.ga_property_id, 'auto');\n ga('set', 'anonymizeIp', true);\n }\n\n _initAnalytics() {\n if (this.options.ga_property_id === null) { return; }\n this._initGoogleAnalytics();\n ga('send', 'pageview');\n var events = this.options.track_events;\n for (let i = 0; i < events.length; i++) {\n var event_ = events[i];\n this.addEventListener(event_, function(e) {\n ga('send', 'event', e.type, 'clicked');\n });\n }\n }\n\n\n}\n\nclassMixin(Timeline, I18NMixins, Events)\n\nexport { Timeline }\n"],"sourceRoot":""}