{"version":3,"sources":["webpack:///./src/images/spring-summer-2021/vanishing-words/home-icon.svg","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./src/images/spring-summer-2021/vanishing-words/timothy-henry-rodriguez.jpg","webpack:///./src/images/spring-summer-2021/vanishing-words/map-marker-icon.svg","webpack:///./src/components/spring-summer-2021-stories/more-stories.js","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./src/images/spring-summer-2021/social-banners/vanishing-words.jpg","webpack:///./src/images/spring-summer-2021/vanishing-words/kenneth-van-bik.jpg","webpack:///./src/scripts/fullpage.responsiveSlides.min.js","webpack:///./src/scripts/fullpage.scrollHorizontally.min.js","webpack:///./node_modules/@googlemaps/js-api-loader/dist/index.esm.js","webpack:///./node_modules/google-map-react/dist/index.modern.js","webpack:///./node_modules/react-gsap/dist/react-gsap.esm.js","webpack:///./src/pages/spring-summer-2021/vanishing-words.js","webpack:///./src/images/spring-summer-2021/vanishing-words/franz-mueller.jpg","webpack:///./node_modules/eventemitter3/index.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///./node_modules/@mapbox/point-geometry/index.js","webpack:///./src/images/spring-summer-2021/vanishing-words/patricia-schneider-zioga.jpg"],"names":["module","exports","_classCallCheck","instance","Constructor","TypeError","MoreStories","props","render","skip","this","slug","list","spring2021stories","map","story","className","key","cover","bg","direction","duration","to","src","thumbnail","alt","title","React","Component","_typeof","obj","Symbol","iterator","constructor","prototype","window","fp_responsiveSlidesExtension","n","o","fp_utils","t","fullpage_api","r","i","$","e","getFullpageData","l","options","a","internals","c","s","d","f","u","h","p","v","g","T","w","closest","S","addClass","E","removeClass","H","hasClass","L","css","toSections","length","forEach","getComputedStyle","outerHTML","innerHTML","height","getWindowHeight","anchors","getAttribute","setAttribute","width","after","remove","next","appendTo","styleSlides","scrollToActive","offsetTop","autoScrolling","scrollBar","silentScroll","scrollTo","toSlides","parentNode","prev","keepSlidesPosition","M","charAt","document","readyState","addEventListener","fp_scrollHorizontallyExtension","getScrollSection","scrollHorizontally","index","moveSlideRight","moveSlideLeft","Loader","_ref","apiKey","channel","client","_ref$id","id","_ref$libraries","libraries","language","region","version","mapIds","nonce","_ref$retries","retries","_ref$url","url","CALLBACK","callbacks","done","loading","errors","equal","b","keys","Array","isArray","RegExp","source","flags","valueOf","Object","toString","hasOwnProperty","call","fastDeepEqual","Error","concat","JSON","stringify","get","value","join","loadPromise","_this","Promise","resolve","reject","loadCallback","err","error","google","fn","push","execute","getElementById","callback","createUrl","script","createElement","type","onerror","loadErrorCallback","bind","defer","async","head","appendChild","deleteScript","onerrorEvent","failed","reset","_this2","delay","Math","pow","console","log","setTimeout","setScript","__googleMapsCallback","_this3","cb","resetIfRetryingFailed","maps","warn","setCallback","assign","arguments","apply","create","__proto__","ReferenceError","left","top","margin","padding","position","shouldComponentUpdate","ref","registerChild","style","gmapInstance","getChildren","children","getMousePosition","mouse_","getUpdateCounter","updateCounter_","dispose","removeAllListeners","backgroundColor","_getState","dispatcher","updateCounter","_onChangeHandler","dimensionsCache_","state","setState","_onMouseChangeHandler","_onChildClick","onChildClick","hoverChildProps_","hoverKey_","_onChildMouseDown","onChildMouseDown","_onChildMouseEnter","onChildMouseEnter","hoverKey","_onChildMouseLeave","onChildMouseLeave","_onMouseAllow","allowMouse_","_onMouseChangeHandlerRaf","getHoverDistance","Children","latLng","lat","lng","distanceToMouse","dist","sort","_getDimensions","componentDidMount","on","experimental","componentWillUnmount","removeListener","cloneElement","$geoService","geoService","$onMouseAllow","$prerender","prerender","insideMapPanes","fromLatLngToDivPixel","fromLatLngToCenterPixel","x","y","seLatLng","seLat","seLng","fromLatLngToContainerPixel","$markerHolderClassName","$hover","$getDimensions","$dimensionKey","propTypes","any","func","bool","defaultProps","C","D","includes","indexOf","load","then","k","O","isNaN","wrap","convert","tileSize","_minZoom","_maxZoom","latRange","zoom","center","angle","zoomScale","scaleZoom","LN2","project","lngX","latY","unproject","yLat","xLng","worldSize","PI","tan","atan","exp","locationPoint","centerPoint","_sub","point","_rotate","pointLocation","sub","set","max","min","scale","_zoom","minZoom","maxZoom","tileZoom","floor","zoomFraction","enumerable","configurable","writable","defineProperty","hasSize_","hasView_","transform_","setView","bearing","setViewSize","setMapCanvasProjection","maps_","mapCanvasProjection_","canProject","hasSize","LatLng","round","fromContainerPixelToLatLng","getWidth","getHeight","getZoom","getCenter","getBounds","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","log2","P","reduce","A","I","N","Z","j","navigator","userAgent","toLowerCase","isExplorer","isFirefox","isOpera","isChrome","isSafari","U","Function","getPrototypeOf","K","removeEventListener","capture","passive","R","G","self","B","W","attachEvent","V","F","cancelAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","clearTimeout","q","__resizeTriggers__","firstElementChild","lastElementChild","scrollLeft","scrollWidth","scrollTop","scrollHeight","offsetWidth","offsetHeight","Y","__resizeRAF__","__resizeLast__","__resizeListeners__","X","J","Q","ee","split","te","oe","animationName","ne","re","ie","se","ae","createPortal","pe","unstable_renderSubtreeIntoContainer","le","ue","he","_getMinZoom","geoService_","ceil","_computeMinZoom","_mapDomResizeCallback","resetSizeOnIdle_","defaultCenter","map_","event","trigger","setCenter","resetBoundsOnResize","_setLayers","layers_","setMap","_renderPortal","_getHoverDistance","markersDispatcher_","_initMap","initialized_","defaultZoom","_onBoundsChanged","bootstrapURLKeys","googleMapLoader","heatmapLibrary","mounted_","heatmap","positions","visualization","HeatmapLayer","data","weight","location","draggable","minZoom_","overviewMapControl","streetViewControl","rotateControl","mapTypeControl","styles","featureType","elementType","stylers","visibility","defaultDraggableOption_","m","Map","findDOMNode","googleMapDom_","layerTypes","_","match","Number","OverlayView","onAdd","screen","overlayViewDivStyle","getPanes","overlayMouseTarget","getProjection","overlay","onRemove","unmountComponentAtNode","draw","debounced","googleApiLoadedCalled_","_onGoogleApiLoaded","_onChildMouseMove","emit","fireMouseEventOnIdle_","overlay_","onTilesLoaded","addListener","_onTilesLoaded","zoomAnimationInProgress_","_onZoomAnimationStart","Date","getTime","zoomControlClickTime_","_setViewSize","setOptions","_onZoomAnimationEnd","dragTime_","mouseInMap_","_onDrag","_onDragEnd","_onMapTypeIdChange","getMapTypeId","catch","onGoogleApiLoaded","hoverDistance","onDrag","onDragEnd","onMapTypeIdChange","onZoomAnimationStart","onZoomAnimationEnd","childMouseDownArgs_","_onChildMouseUp","onChildMouseUp","childMouseUpTime_","onChildMouseMove","fullscreen","webkitIsFullScreen","mozFullScreen","msFullscreenElement","innerWidth","innerHeight","clientWidth","clientHeight","_onWindowResize","_onMapMouseMove","mouseMoveTime_","boundingRect_","currentTarget","getBoundingClientRect","clientX","clientY","_onClick","onClick","_onMapClick","_onMapMouseDownNative","_onMapMouseDown","_onMapMouseDownCapture","_onKeyDownCapture","_isCenterDefined","onChange","onBoundsChange","abs","prevBounds_","centerIsObject_","bounds","nw","sw","marginBounds","size","_registerChild","getElementsByTagName","styleSheet","cssText","createTextNode","componentDidUpdate","panTo","setZoom","setData","detachEvent","splice","removeChild","shouldUnregisterMapOnUnmount","scrollwheel","clearInstanceListeners","onMouseMove","onMouseDownCapture","string","oneOfType","array","shape","number","yesIWantToUseGoogleMapApiInternals","arrayOf","sqrt","PlayState","_extends","target","_inheritsLoose","subClass","superClass","_objectWithoutPropertiesLoose","excluded","sourceKeys","_assertThisInitialized","_arrayLikeToArray","arr","len","arr2","_createForOfIteratorHelperLoose","allowArrayLike","it","minLen","slice","name","from","test","_unsupportedIterableToArray","_interpolate","_getProp","setPlayState","playState","prevPlayState","tween","play","pause","reverse","restart","stop","targets","tweenFunction","_props$duration","stagger","progress","totalProgress","onCompleteAll","onCompleteAllParams","onCompleteAllScope","onStartAll","vars","gsap","fromTo","paused","timeline","tweens","smoothChildTiming","onComplete","onCompleteParams","onCompleteScope","onStart","getRefProp","child","addTarget","innerRef","current","nullishCoalescing","ifNullish","Context","createContext","registerConsumer","_React$Component","Provider","consumers","getContextValue","renderWithProvider","_proto","consumer","output","getDistance","p1","p2","getPolylineLength","el","points","totalLength","previousPos","undefined","numberOfItems","currentPos","getItem","getTotalLength","hasAttribute","pathString","replace","paths","filter","path","maxLength","pathElement","createElementNS","getPathLength","tagName","parseFloat","getCircleLength","getRectLength","getLineLength","getPolygonLength","gsap$1","_interpolate$1","_format","SvgDrawPlugin","register","core","Plugin","propTween","utils","interpolate","getProperty","init","_tween","lengthParam","offsetParam","strokeDashoffset","strokeDasharray","registerPlugin","CountPlugin","parseInt","inputValue","format","initialCount","innerText","count","Tween","previousPlayState","createTween","kill","getSnapshotBeforeUpdate","prevProps","_this$props","disabled","onlyInvalidateTo","obj1","obj2","invalidate","progressTmp","context","getGSAP","setGSAP","getTargets","_this$props2","wrapper","displayName","contextType","EntryState","_Provider","Timeline","setTarget","createTimeline","labels","label","addLabel","_consumer$props","_position","_target","_vars","values","add","_position2","has","setTargets","renderTarget","fragmentChild","_this$props3","renderedTarget","Reveal","triggerRef","observer","intersectionObserverCallback","entries","_step","repeat","threshold","unknown","_iterator","entry","isIntersecting","intersectionRatio","entered","exited","killIntersectionObserver","createIntersectionObserver","killTimeline","root","rootMargin","IntersectionObserver","observe","unobserveAll","_this4","unobserve","_this5","_this$props4","Modal","setAppElement","pluginWrapper","require","createMapOptions","disableDefaultUI","mapTypeId","Index","modalIsOpen","pauseButtonText","introButtonText","animateClass","headerHide","openModal","closeModal","complete","mapTour","pageTitle","pageDesc","headerStyle","locationInfo","issue","Helmet","content","itemprop","socialBanner","property","fadeDuration","licenseKey","normalScrollElements","navigation","slidesNavigation","controlArrows","responsiveSlides","responsiveSlidesKey","responsiveWidth","scrollHorizontallyKey","continuousHorizontal","scrollOverflow","onLeave","origin","destination","afterLoad","anchor","fullpageApi","Wrapper","data-anchor","href","withPrefix","opacity","marginTop","moveSectionDown","data-autoplay","autoPlay","loop","muted","playsInline","kind","srcLang","moveTo","rel","homeIcon","mapMarkerIcon","timothyHenryRodriguez","franzMueller","patriciaSchneiderZioga","kennethVanBik","closeTimeoutMS","isOpen","onRequestClose","contentLabel","overlayClassName","shouldCloseOnOverlayClick","closeIcon","video","responsive","showTitle","showByline","showPortrait","autoplay","onEnd","display","flexDirection","alignItems","frontColor","backColor","fontSize","color","textTransform","textAlign","letterSpacing","prefix","Events","EE","once","emitter","listener","evt","_events","_eventsCount","clearEvent","EventEmitter","eventNames","events","names","getOwnPropertySymbols","listeners","handlers","listenerCount","a1","a2","a3","a4","a5","args","off","prefixed","_toPropertyKey","arg","input","hint","prim","toPrimitive","res","String","_defineProperties","descriptor","_createClass","protoProps","staticProps","Point","clone","_add","multByPoint","_multByPoint","divByPoint","_divByPoint","mult","_mult","div","_div","rotate","rotateAround","_rotateAround","matMult","_matMult","unit","_unit","perp","_perp","_round","mag","equals","other","distSqr","dx","dy","atan2","angleTo","angleWith","angleWithSep","cos","sin"],"mappings":"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","file":"component---src-pages-spring-summer-2021-vanishing-words-js-ca6cbe0456c02eabe16b.js","sourcesContent":["module.exports = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MC41MDMiIGhlaWdodD0iMzEuNDk2IiB2aWV3Qm94PSIwIDAgNDAuNTAzIDMxLjQ5NiI+PHBhdGggZD0iTTE5LjcxNCwxMC40MjUsNi43NSwyMS4xVjMyLjYyNUExLjEyNSwxLjEyNSwwLDAsMCw3Ljg3NSwzMy43NWw3Ljg3OS0uMDJBMS4xMjUsMS4xMjUsMCwwLDAsMTYuODc0LDMyLjZ2LTYuNzNBMS4xMjUsMS4xMjUsMCwwLDEsMTgsMjQuNzVoNC41YTEuMTI1LDEuMTI1LDAsMCwxLDEuMTI1LDEuMTI1VjMyLjZhMS4xMjUsMS4xMjUsMCwwLDAsMS4xMjUsMS4xMjlsNy44NzYuMDIyYTEuMTI1LDEuMTI1LDAsMCwwLDEuMTI1LTEuMTI1VjIxLjA5NEwyMC43ODksMTAuNDI1QS44NTcuODU3LDAsMCwwLDE5LjcxNCwxMC40MjVabTIwLjQ3Nyw3LjI1Ny01Ljg3OC00Ljg0NVYzLjFhLjg0NC44NDQsMCwwLDAtLjg0NC0uODQ0SDI5LjUzMWEuODQ0Ljg0NCwwLDAsMC0uODQ0Ljg0NFY4LjJsLTYuMy01LjE3OWEzLjM3NSwzLjM3NSwwLDAsMC00LjI4OSwwTC4zMDUsMTcuNjgxQS44NDQuODQ0LDAsMCwwLC4xOTMsMTguODdsMS43OTMsMi4xOGEuODQ0Ljg0NCwwLDAsMCwxLjE4OS4xMTVMMTkuNzE0LDcuNTQyYS44NTcuODU3LDAsMCwxLDEuMDc2LDBsMTYuNTQsMTMuNjIyYS44NDQuODQ0LDAsMCwwLDEuMTg4LS4xMTJsMS43OTMtMi4xOGEuODQ0Ljg0NCwwLDAsMC0uMTItMS4xOVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuMDAxIC0yLjI1NCkiIGZpbGw9IiNmZmYiLz48L3N2Zz4=\"","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","module.exports = \"data:image/jpeg;base64,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\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNyIgaGVpZ2h0PSIzNiIgdmlld0JveD0iMCAwIDI3IDM2Ij48cGF0aCBkPSJNMTIuMTEzLDM1LjI3NEMxLjksMjAuNDYzLDAsMTguOTQzLDAsMTMuNWExMy41LDEzLjUsMCwwLDEsMjcsMGMwLDUuNDQzLTEuOSw2Ljk2My0xMi4xMTMsMjEuNzc0YTEuNjg4LDEuNjg4LDAsMCwxLTIuNzc1LDBaTTEzLjUsMTkuMTI1QTUuNjI1LDUuNjI1LDAsMSwwLDcuODc1LDEzLjUsNS42MjUsNS42MjUsMCwwLDAsMTMuNSwxOS4xMjVaIiBmaWxsPSIjZmZmIi8+PC9zdmc+\"","import React from \"react\"\nimport {spring2021stories} from './stories';\n// import ScrollAnimation from 'react-animate-on-scroll';\nimport Link from \"gatsby-plugin-transition-link/AniLink\";\n\nexport default class MoreStories extends React.Component {\n\n constructor(props) {\n super(props);\n }\n\n render() {\n\n var skip = this.props.slug;\n // console.log(skip)\n\n const list = spring2021stories.map(function(story){\n if (story.slug != skip) {\n\n var slug = \"/spring-summer-2021/\" + story.slug + \"/\";\n\n return (\n
  • \n \n \"\"\n {story.title}\n \n
  • \n )\n }\n })\n \n\n // console.log(stories);\n\n return (\n \n
    \n {/* */}\n
    \n

    More Stories

    \n
      \n {list}\n
    \n
    \n {/*
    */}\n
    \n \n );\n }\n} ","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","module.exports = __webpack_public_path__ + \"static/vanishing-words-11c2742db89626fb91263f12c5786c89.jpg\";","module.exports = \"data:image/jpeg;base64,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\"","/*!\n * fullpage.js Responsive Slides Extension 0.0.3 for fullPage.js v3\n * https://github.com/alvarotrigo/fullPage.js\n *\n * @license This code has been bought from www.alvarotrigo.com/fullPage/extensions/ and it is not free to use or distribute.\n * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo\n */\n/* eslint-disable */\nwindow.fp_responsiveSlidesExtension=function(){var n=this,o=window.fp_utils,t=window.fullpage_api,r=o,i=o.$,e=t.getFullpageData(),l=e.options,a=e.internals,c=\"active\",s=\".\"+c,d=\"fp-section\",f=\".\"+d,u=f+s,h=\"fp-slide\",p=\".\"+h,v=\".fp-slidesContainer\",g=\"fp-converted-section\",T=\".\"+g,w=r.closest,S=r.addClass,E=r.removeClass,H=r.hasClass,L=r.css;n.toSections=function(){i(T).length||(i(v).forEach(function(o){var t=w(o,f),n=getComputedStyle(t)[\"background-color\"],e=i(p,o);o.outerHTML=o.innerHTML,e.forEach(function(o,n){L(o,{height:r.getWindowHeight(o)+\"px\"}),l.anchors.length&&n&&null==o.getAttribute(\"data-anchor\")&&o.setAttribute(\"data-anchor\",t.getAttribute(\"data-anchor\")+(n+1))}),H(t,c)||E(e,c),e.forEach(function(o,n){n?(E(o,h),S(o,d),S(o,g)):L(o,{width:\"100%\"}),H(t,c)&&H(o,c)&&n&&(S(o,c),E(t,c))}),r.after(t,o),t.innerHTML=\"\",L(e,{\"background-color\":n})}),r.remove(i(\".fp-controlArrow\")),i(v).forEach(function(o){o.outerHTML=o.innerHTML}),L(i(T),{width:\"\"}),i(f+\":not(\"+T+\")\").forEach(function(o){var n=r.next(o,p);null!=n&&r.appendTo(n,o);var t=i(p,o);t.length&&a.styleSlides(o,t,t.length)}),n.scrollToActive(i(u)[0]))},n.scrollToActive=function(o){var n=o.offsetTop;l.autoScrolling&&!l.scrollBar?a.silentScroll(n):(a.silentScroll(0),window.scrollTo(0,n))},n.toSlides=function(){if(i(T).length){i(f+\":not(\"+T+\")\").forEach(function(o){var n=i(v,o)[0];if(null!=n){var t=n.parentNode;n.outerHTML=n.innerHTML,t.outerHTML=t.innerHTML}});var o=i(u)[0];H(o,g),i(T).forEach(function(o){var n=r.prev(o);H(o,c)&&(S(n,c),E(i(p+s,n),c)),E(o,d),E(o,g),S(o,h),L(o,{\"background-color\":\"\"}),r.appendTo(o,n)}),i(f).forEach(function(o){var n=i(p,o);n.length&&a.styleSlides(o,n,n.length)}),n.scrollToActive(i(u)[0]),a.keepSlidesPosition()}},n.c=a.c;var M=n[\"common\".charAt(0)];return\"complete\"===document.readyState&&M(\"responsiveSlides\"),window.addEventListener(\"load\",function(){M(\"responsiveSlides\")}),n};","/*!\n * fullpage.js Scroll Horizontally Extension 0.0.4 for fullPage.js v3\n * https://github.com/alvarotrigo/fullPage.js\n *\n * @license This code has been bought from www.alvarotrigo.com/fullPage/extensions/ and it is not free to use or distribute.\n * Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo\n */\n/* eslint-disable */\nwindow.fp_scrollHorizontallyExtension=function(){var e=this,n=window.fp_utils,a=window.fullpage_api,c=n,d=n.$,t=a.getFullpageData(),f=t.options,i=t.internals,s=\".fp-section\",p=\".fp-slide\";e.getScrollSection=function(e,n){var t,i=d(\".fp-section.active\")[0],o=d(p,i).length,l=f.scrollHorizontally&&1 {\r\n * const map = new google.maps.Map(...)\r\n * })\r\n * ```\r\n */\n\nvar Loader = /*#__PURE__*/function () {\n /**\r\n * Creates an instance of Loader using [[LoaderOptions]]. No defaults are set\r\n * using this library, instead the defaults are set by the Google Maps\r\n * JavaScript API server.\r\n *\r\n * ```\r\n * const loader = Loader({apiKey, version: 'weekly', libraries: ['places']});\r\n * ```\r\n */\n function Loader(_ref) {\n var apiKey = _ref.apiKey,\n channel = _ref.channel,\n client = _ref.client,\n _ref$id = _ref.id,\n id = _ref$id === void 0 ? DEFAULT_ID : _ref$id,\n _ref$libraries = _ref.libraries,\n libraries = _ref$libraries === void 0 ? [] : _ref$libraries,\n language = _ref.language,\n region = _ref.region,\n version = _ref.version,\n mapIds = _ref.mapIds,\n nonce = _ref.nonce,\n _ref$retries = _ref.retries,\n retries = _ref$retries === void 0 ? 3 : _ref$retries,\n _ref$url = _ref.url,\n url = _ref$url === void 0 ? \"https://maps.googleapis.com/maps/api/js\" : _ref$url;\n\n _classCallCheck(this, Loader);\n\n this.CALLBACK = \"__googleMapsCallback\";\n this.callbacks = [];\n this.done = false;\n this.loading = false;\n this.errors = [];\n this.version = version;\n this.apiKey = apiKey;\n this.channel = channel;\n this.client = client;\n this.id = id || DEFAULT_ID; // Do not allow empty string\n\n this.libraries = libraries;\n this.language = language;\n this.region = region;\n this.mapIds = mapIds;\n this.nonce = nonce;\n this.retries = retries;\n this.url = url;\n\n if (Loader.instance) {\n if (!fastDeepEqual(this.options, Loader.instance.options)) {\n throw new Error(\"Loader must not be called again with different options. \".concat(JSON.stringify(this.options), \" !== \").concat(JSON.stringify(Loader.instance.options)));\n }\n\n return Loader.instance;\n }\n\n Loader.instance = this;\n }\n\n _createClass(Loader, [{\n key: \"options\",\n get: function get() {\n return {\n version: this.version,\n apiKey: this.apiKey,\n channel: this.channel,\n client: this.client,\n id: this.id,\n libraries: this.libraries,\n language: this.language,\n region: this.region,\n mapIds: this.mapIds,\n nonce: this.nonce,\n url: this.url\n };\n }\n }, {\n key: \"failed\",\n get: function get() {\n return this.done && !this.loading && this.errors.length >= this.retries + 1;\n }\n /**\r\n * CreateUrl returns the Google Maps JavaScript API script url given the [[LoaderOptions]].\r\n *\r\n * @ignore\r\n */\n\n }, {\n key: \"createUrl\",\n value: function createUrl() {\n var url = this.url;\n url += \"?callback=\".concat(this.CALLBACK);\n\n if (this.apiKey) {\n url += \"&key=\".concat(this.apiKey);\n }\n\n if (this.channel) {\n url += \"&channel=\".concat(this.channel);\n }\n\n if (this.client) {\n url += \"&client=\".concat(this.client);\n }\n\n if (this.libraries.length > 0) {\n url += \"&libraries=\".concat(this.libraries.join(\",\"));\n }\n\n if (this.language) {\n url += \"&language=\".concat(this.language);\n }\n\n if (this.region) {\n url += \"®ion=\".concat(this.region);\n }\n\n if (this.version) {\n url += \"&v=\".concat(this.version);\n }\n\n if (this.mapIds) {\n url += \"&map_ids=\".concat(this.mapIds.join(\",\"));\n }\n\n return url;\n }\n /**\r\n * Load the Google Maps JavaScript API script and return a Promise.\r\n */\n\n }, {\n key: \"load\",\n value: function load() {\n return this.loadPromise();\n }\n /**\r\n * Load the Google Maps JavaScript API script and return a Promise.\r\n *\r\n * @ignore\r\n */\n\n }, {\n key: \"loadPromise\",\n value: function loadPromise() {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n _this.loadCallback(function (err) {\n if (!err) {\n resolve(window.google);\n } else {\n reject(err.error);\n }\n });\n });\n }\n /**\r\n * Load the Google Maps JavaScript API script with a callback.\r\n */\n\n }, {\n key: \"loadCallback\",\n value: function loadCallback(fn) {\n this.callbacks.push(fn);\n this.execute();\n }\n /**\r\n * Set the script on document.\r\n */\n\n }, {\n key: \"setScript\",\n value: function setScript() {\n if (document.getElementById(this.id)) {\n // TODO wrap onerror callback for cases where the script was loaded elsewhere\n this.callback();\n return;\n }\n\n var url = this.createUrl();\n var script = document.createElement(\"script\");\n script.id = this.id;\n script.type = \"text/javascript\";\n script.src = url;\n script.onerror = this.loadErrorCallback.bind(this);\n script.defer = true;\n script.async = true;\n\n if (this.nonce) {\n script.nonce = this.nonce;\n }\n\n document.head.appendChild(script);\n }\n }, {\n key: \"deleteScript\",\n value: function deleteScript() {\n var script = document.getElementById(this.id);\n\n if (script) {\n script.remove();\n }\n }\n /**\r\n * Reset the loader state.\r\n */\n\n }, {\n key: \"reset\",\n value: function reset() {\n this.deleteScript();\n this.done = false;\n this.loading = false;\n this.errors = [];\n this.onerrorEvent = null;\n }\n }, {\n key: \"resetIfRetryingFailed\",\n value: function resetIfRetryingFailed() {\n if (this.failed) {\n this.reset();\n }\n }\n }, {\n key: \"loadErrorCallback\",\n value: function loadErrorCallback(e) {\n var _this2 = this;\n\n this.errors.push(e);\n\n if (this.errors.length <= this.retries) {\n var delay = this.errors.length * Math.pow(2, this.errors.length);\n console.log(\"Failed to load Google Maps script, retrying in \".concat(delay, \" ms.\"));\n setTimeout(function () {\n _this2.deleteScript();\n\n _this2.setScript();\n }, delay);\n } else {\n this.onerrorEvent = e;\n this.callback();\n }\n }\n }, {\n key: \"setCallback\",\n value: function setCallback() {\n window.__googleMapsCallback = this.callback.bind(this);\n }\n }, {\n key: \"callback\",\n value: function callback() {\n var _this3 = this;\n\n this.done = true;\n this.loading = false;\n this.callbacks.forEach(function (cb) {\n cb(_this3.onerrorEvent);\n });\n this.callbacks = [];\n }\n }, {\n key: \"execute\",\n value: function execute() {\n this.resetIfRetryingFailed();\n\n if (this.done) {\n this.callback();\n } else {\n // short circuit and warn if google.maps is already loaded\n if (window.google && window.google.maps && window.google.maps.version) {\n console.warn(\"Google Maps already loaded outside @googlemaps/js-api-loader.\" + \"This may result in undesirable behavior as options and script parameters may not match.\");\n this.callback();\n return;\n }\n\n if (this.loading) ;else {\n this.loading = true;\n this.setCallback();\n this.setScript();\n }\n }\n }\n }]);\n\n return Loader;\n}();\n\nexport { DEFAULT_ID, Loader };","import \"core-js/modules/es.array.sort.js\";\nimport \"core-js/modules/es.array.reduce.js\";\nimport e, { Component as t } from \"react\";\nimport o from \"prop-types\";\nimport n from \"react-dom\";\nimport r from \"eventemitter3\";\nimport { Loader as i } from \"@googlemaps/js-api-loader\";\nimport s from \"@mapbox/point-geometry\";\n\nfunction a() {\n return (a = Object.assign || function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var o = arguments[t];\n\n for (var n in o) {\n Object.prototype.hasOwnProperty.call(o, n) && (e[n] = o[n]);\n }\n }\n\n return e;\n }).apply(this, arguments);\n}\n\nfunction p(e, t) {\n e.prototype = Object.create(t.prototype), e.prototype.constructor = e, e.__proto__ = t;\n}\n\nfunction l(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\n\nvar u = {\n width: \"100%\",\n height: \"100%\",\n left: 0,\n top: 0,\n margin: 0,\n padding: 0,\n position: \"absolute\"\n},\n h = function (t) {\n function o() {\n return t.apply(this, arguments) || this;\n }\n\n p(o, t);\n var n = o.prototype;\n return n.shouldComponentUpdate = function () {\n return !1;\n }, n.render = function () {\n return e.createElement(\"div\", {\n ref: this.props.registerChild,\n style: u\n });\n }, o;\n}(t),\n c = function (e) {\n function t(t) {\n var o;\n return (o = e.call(this) || this).gmapInstance = t, o;\n }\n\n p(t, e);\n var o = t.prototype;\n return o.getChildren = function () {\n return this.gmapInstance.props.children;\n }, o.getMousePosition = function () {\n return this.gmapInstance.mouse_;\n }, o.getUpdateCounter = function () {\n return this.gmapInstance.updateCounter_;\n }, o.dispose = function () {\n this.gmapInstance = null, this.removeAllListeners();\n }, t;\n}(r),\n d = function d(e, t) {\n for (var o = a({}, e), n = 0; n < t.length; n++) {\n var r = t[n];\n r in o && delete o[r];\n }\n\n return o;\n},\n m = Object.prototype.hasOwnProperty;\n\nfunction g(e, t) {\n return e === t ? 0 !== e || 0 !== t || 1 / e == 1 / t : e != e && t != t;\n}\n\nfunction _(e, t) {\n if (g(e, t)) return !0;\n if (\"object\" != typeof e || null === e || \"object\" != typeof t || null === t) return !1;\n var o = Object.keys(e),\n n = Object.keys(t);\n if (o.length !== n.length) return !1;\n\n for (var r = 0; r < o.length; r++) {\n if (!m.call(t, o[r]) || !g(e[o[r]], t[o[r]])) return !1;\n }\n\n return !0;\n}\n\nvar f = {\n width: \"100%\",\n height: \"100%\",\n left: 0,\n top: 0,\n margin: 0,\n padding: 0,\n position: \"absolute\"\n},\n v = {\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n backgroundColor: \"transparent\",\n position: \"absolute\"\n},\n M = function (t) {\n function o(o) {\n var n;\n return (n = t.call(this, o) || this)._getState = function () {\n return {\n children: n.props.dispatcher.getChildren(),\n updateCounter: n.props.dispatcher.getUpdateCounter()\n };\n }, n._onChangeHandler = function () {\n if (n.dimensionsCache_) {\n var e = (n.state.children || []).length,\n t = n._getState();\n\n n.setState(t, function () {\n return (t.children || []).length !== e && n._onMouseChangeHandler();\n });\n }\n }, n._onChildClick = function () {\n n.props.onChildClick && n.hoverChildProps_ && n.props.onChildClick(n.hoverKey_, n.hoverChildProps_);\n }, n._onChildMouseDown = function () {\n n.props.onChildMouseDown && n.hoverChildProps_ && n.props.onChildMouseDown(n.hoverKey_, n.hoverChildProps_);\n }, n._onChildMouseEnter = function (e, t) {\n n.dimensionsCache_ && (n.props.onChildMouseEnter && n.props.onChildMouseEnter(e, t), n.hoverChildProps_ = t, n.hoverKey_ = e, n.setState({\n hoverKey: e\n }));\n }, n._onChildMouseLeave = function () {\n if (n.dimensionsCache_) {\n var e = n.hoverKey_;\n null != e && (n.props.onChildMouseLeave && n.props.onChildMouseLeave(e, n.hoverChildProps_), n.hoverKey_ = null, n.hoverChildProps_ = null, n.setState({\n hoverKey: null\n }));\n }\n }, n._onMouseAllow = function (e) {\n e || n._onChildMouseLeave(), n.allowMouse_ = e;\n }, n._onMouseChangeHandler = function () {\n n.allowMouse_ && n._onMouseChangeHandlerRaf();\n }, n._onMouseChangeHandlerRaf = function () {\n if (n.dimensionsCache_) {\n var t = n.props.dispatcher.getMousePosition();\n\n if (t) {\n var o = [],\n r = n.props.getHoverDistance();\n\n if (e.Children.forEach(n.state.children, function (e, i) {\n if (e && (void 0 !== e.props.latLng || void 0 !== e.props.lat || void 0 !== e.props.lng)) {\n var s = null != e.key ? e.key : i,\n a = n.props.distanceToMouse(n.dimensionsCache_[s], t, e.props);\n a < r && o.push({\n key: s,\n dist: a,\n props: e.props\n });\n }\n }), o.length) {\n o.sort(function (e, t) {\n return e.dist - t.dist;\n });\n var i = o[0].key,\n s = o[0].props;\n n.hoverKey_ !== i && (n._onChildMouseLeave(), n._onChildMouseEnter(i, s));\n } else n._onChildMouseLeave();\n } else n._onChildMouseLeave();\n }\n }, n._getDimensions = function (e) {\n return n.dimensionsCache_[e];\n }, n.dimensionsCache_ = {}, n.hoverKey_ = null, n.hoverChildProps_ = null, n.allowMouse_ = !0, n.state = a({}, n._getState(), {\n hoverKey: null\n }), n;\n }\n\n p(o, t);\n var n = o.prototype;\n return n.componentDidMount = function () {\n this.props.dispatcher.on(\"kON_CHANGE\", this._onChangeHandler), this.props.dispatcher.on(\"kON_MOUSE_POSITION_CHANGE\", this._onMouseChangeHandler), this.props.dispatcher.on(\"kON_CLICK\", this._onChildClick), this.props.dispatcher.on(\"kON_MDOWN\", this._onChildMouseDown);\n }, n.shouldComponentUpdate = function (e, t) {\n return !0 === this.props.experimental ? !_(this.props, e) || !_(d(this.state, [\"hoverKey\"]), d(t, [\"hoverKey\"])) : !_(this.props, e) || !_(this.state, t);\n }, n.componentWillUnmount = function () {\n this.props.dispatcher.removeListener(\"kON_CHANGE\", this._onChangeHandler), this.props.dispatcher.removeListener(\"kON_MOUSE_POSITION_CHANGE\", this._onMouseChangeHandler), this.props.dispatcher.removeListener(\"kON_CLICK\", this._onChildClick), this.props.dispatcher.removeListener(\"kON_MDOWN\", this._onChildMouseDown), this.dimensionsCache_ = null;\n }, n.render = function () {\n var t = this,\n o = this.props.style || f;\n this.dimensionsCache_ = {};\n var n = e.Children.map(this.state.children, function (o, n) {\n if (o) {\n if (void 0 === o.props.latLng && void 0 === o.props.lat && void 0 === o.props.lng) return e.cloneElement(o, {\n $geoService: t.props.geoService,\n $onMouseAllow: t._onMouseAllow,\n $prerender: t.props.prerender\n });\n var r = void 0 !== o.props.latLng ? o.props.latLng : {\n lat: o.props.lat,\n lng: o.props.lng\n },\n i = t.props.insideMapPanes ? t.props.geoService.fromLatLngToDivPixel(r) : t.props.geoService.fromLatLngToCenterPixel(r),\n s = {\n left: i.x,\n top: i.y\n };\n\n if (void 0 !== o.props.seLatLng || void 0 !== o.props.seLat && void 0 !== o.props.seLng) {\n var p = void 0 !== o.props.seLatLng ? o.props.seLatLng : {\n lat: o.props.seLat,\n lng: o.props.seLng\n },\n l = t.props.insideMapPanes ? t.props.geoService.fromLatLngToDivPixel(p) : t.props.geoService.fromLatLngToCenterPixel(p);\n s.width = l.x - i.x, s.height = l.y - i.y;\n }\n\n var u = t.props.geoService.fromLatLngToContainerPixel(r),\n h = null != o.key ? o.key : n;\n return t.dimensionsCache_[h] = a({\n x: u.x,\n y: u.y\n }, r), e.createElement(\"div\", {\n key: h,\n style: a({}, v, s),\n className: o.props.$markerHolderClassName\n }, e.cloneElement(o, {\n $hover: h === t.state.hoverKey,\n $getDimensions: t._getDimensions,\n $dimensionKey: h,\n $geoService: t.props.geoService,\n $onMouseAllow: t._onMouseAllow,\n $prerender: t.props.prerender\n }));\n }\n });\n return e.createElement(\"div\", {\n style: o\n }, n);\n }, o;\n}(t);\n\nM.propTypes = {\n geoService: o.any,\n style: o.any,\n distanceToMouse: o.func,\n dispatcher: o.any,\n onChildClick: o.func,\n onChildMouseDown: o.func,\n onChildMouseLeave: o.func,\n onChildMouseEnter: o.func,\n getHoverDistance: o.func,\n insideMapPanes: o.bool,\n prerender: o.bool\n}, M.defaultProps = {\n insideMapPanes: !1,\n prerender: !1\n};\nvar y = {\n width: \"50%\",\n height: \"50%\",\n left: \"50%\",\n top: \"50%\",\n margin: 0,\n padding: 0,\n position: \"absolute\"\n};\n\nfunction C(t) {\n return e.createElement(\"div\", {\n style: y\n }, e.createElement(M, a({}, t, {\n prerender: !0\n })));\n}\n\nvar w,\n L,\n b,\n D = new Promise(function (e) {\n b = e;\n}),\n z = function z(e, t) {\n if (!e) return D;\n if (L) return L;\n e.libraries || (e.libraries = []);\n var o = [].concat(e.libraries);\n\n if (t && (0 !== o.length && o.includes(\"visualization\") || o.push(\"visualization\"), console.warn(\"heatmapLibrary will be deprecated in the future. Please use { libraries: ['visualization'] } in bootstrapURLKeys property instead\")), \"production\" !== process.env.NODE_ENV && Object.keys(e).indexOf(\"callback\") > -1) {\n var n = '\"callback\" key in bootstrapURLKeys is not allowed,\\n use onGoogleApiLoaded property instead';\n throw console.error(n), new Error(n);\n }\n\n if (\"undefined\" == typeof window) throw new Error(\"google map cannot be loaded outside browser env\");\n\n var r = e.key,\n s = function (e, t) {\n if (null == e) return {};\n var o,\n n,\n r = {},\n i = Object.keys(e);\n\n for (n = 0; n < i.length; n++) {\n t.indexOf(o = i[n]) >= 0 || (r[o] = e[o]);\n }\n\n return r;\n }(e, [\"key\"]);\n\n return w || (w = new i(a({\n apiKey: r || \"\"\n }, s, {\n libraries: o\n }))), L = w.load().then(function () {\n return b(window.google.maps), window.google.maps;\n }), b(L), L;\n};\n\nfunction k(e, t, o) {\n var n = o - t;\n return e === o ? e : ((e - t) % n + n) % n + t;\n}\n\nvar O = function () {\n function e(e, t) {\n if (isNaN(e) || isNaN(t)) throw new Error(\"Invalid LatLng object: (\" + e + \", \" + t + \")\");\n this.lat = +e, this.lng = +t;\n }\n\n return e.prototype.wrap = function () {\n return new e(this.lat, k(this.lng, -180, 180));\n }, e;\n}();\n\nO.convert = function (e) {\n return e instanceof O ? e : Array.isArray(e) ? new O(e[0], e[1]) : \"lng\" in e && \"lat\" in e ? new O(e.lat, e.lng) : e;\n};\n\nvar x = function () {\n function e(e, t, o) {\n this.tileSize = e || 512, this._minZoom = t || 0, this._maxZoom = o || 52, this.latRange = [-85.05113, 85.05113], this.width = 0, this.height = 0, this.zoom = 0, this.center = new O(0, 0), this.angle = 0;\n }\n\n var t,\n o = e.prototype;\n return o.zoomScale = function (e) {\n return Math.pow(2, e);\n }, o.scaleZoom = function (e) {\n return Math.log(e) / Math.LN2;\n }, o.project = function (e, t) {\n return new s(this.lngX(e.lng, t), this.latY(e.lat, t));\n }, o.unproject = function (e, t) {\n return new O(this.yLat(e.y, t), this.xLng(e.x, t));\n }, o.lngX = function (e, t) {\n return (180 + e) * (t || this.worldSize) / 360;\n }, o.latY = function (e, t) {\n return (180 - 180 / Math.PI * Math.log(Math.tan(Math.PI / 4 + e * Math.PI / 360))) * (t || this.worldSize) / 360;\n }, o.xLng = function (e, t) {\n return 360 * e / (t || this.worldSize) - 180;\n }, o.yLat = function (e, t) {\n return 360 / Math.PI * Math.atan(Math.exp((180 - 360 * e / (t || this.worldSize)) * Math.PI / 180)) - 90;\n }, o.locationPoint = function (e) {\n var t = this.project(e);\n return this.centerPoint._sub(this.point._sub(t)._rotate(this.angle));\n }, o.pointLocation = function (e) {\n var t = this.centerPoint._sub(e)._rotate(-this.angle);\n\n return this.unproject(this.point.sub(t));\n }, (t = [{\n key: \"minZoom\",\n get: function get() {\n return this._minZoom;\n },\n set: function set(e) {\n this._minZoom = e, this.zoom = Math.max(this.zoom, e);\n }\n }, {\n key: \"maxZoom\",\n get: function get() {\n return this._maxZoom;\n },\n set: function set(e) {\n this._maxZoom = e, this.zoom = Math.min(this.zoom, e);\n }\n }, {\n key: \"worldSize\",\n get: function get() {\n return this.tileSize * this.scale;\n }\n }, {\n key: \"centerPoint\",\n get: function get() {\n return new s(0, 0);\n }\n }, {\n key: \"size\",\n get: function get() {\n return new s(this.width, this.height);\n }\n }, {\n key: \"bearing\",\n get: function get() {\n return -this.angle / Math.PI * 180;\n },\n set: function set(e) {\n this.angle = -k(e, -180, 180) * Math.PI / 180;\n }\n }, {\n key: \"zoom\",\n get: function get() {\n return this._zoom;\n },\n set: function set(e) {\n var t = Math.min(Math.max(e, this.minZoom), this.maxZoom);\n this._zoom = t, this.scale = this.zoomScale(t), this.tileZoom = Math.floor(t), this.zoomFraction = t - this.tileZoom;\n }\n }, {\n key: \"x\",\n get: function get() {\n return this.lngX(this.center.lng);\n }\n }, {\n key: \"y\",\n get: function get() {\n return this.latY(this.center.lat);\n }\n }, {\n key: \"point\",\n get: function get() {\n return new s(this.x, this.y);\n }\n }]) && function (e, t) {\n for (var o = 0; o < t.length; o++) {\n var n = t[o];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(e, n.key, n);\n }\n }(e.prototype, t), e;\n}(),\n T = function () {\n function e(e) {\n this.hasSize_ = !1, this.hasView_ = !1, this.transform_ = new x(e || 512);\n }\n\n var t = e.prototype;\n return t.setView = function (e, t, o) {\n this.transform_.center = O.convert(e), this.transform_.zoom = +t, this.transform_.bearing = +o, this.hasView_ = !0;\n }, t.setViewSize = function (e, t) {\n this.transform_.width = e, this.transform_.height = t, this.hasSize_ = !0;\n }, t.setMapCanvasProjection = function (e, t) {\n this.maps_ = e, this.mapCanvasProjection_ = t;\n }, t.canProject = function () {\n return this.hasSize_ && this.hasView_;\n }, t.hasSize = function () {\n return this.hasSize_;\n }, t.fromLatLngToCenterPixel = function (e) {\n return this.transform_.locationPoint(O.convert(e));\n }, t.fromLatLngToDivPixel = function (e) {\n if (this.mapCanvasProjection_) {\n var t = new this.maps_.LatLng(e.lat, e.lng);\n return this.mapCanvasProjection_.fromLatLngToDivPixel(t);\n }\n\n return this.fromLatLngToCenterPixel(e);\n }, t.fromLatLngToContainerPixel = function (e) {\n if (this.mapCanvasProjection_) {\n var t = new this.maps_.LatLng(e.lat, e.lng);\n return this.mapCanvasProjection_.fromLatLngToContainerPixel(t);\n }\n\n var o = this.fromLatLngToCenterPixel(e);\n return o.x -= this.transform_.worldSize * Math.round(o.x / this.transform_.worldSize), o.x += this.transform_.width / 2, o.y += this.transform_.height / 2, o;\n }, t.fromContainerPixelToLatLng = function (e) {\n if (this.mapCanvasProjection_) {\n var t = this.mapCanvasProjection_.fromContainerPixelToLatLng(e);\n return {\n lat: t.lat(),\n lng: t.lng()\n };\n }\n\n var o = a({}, e);\n o.x -= this.transform_.width / 2, o.y -= this.transform_.height / 2;\n var n = this.transform_.pointLocation(s.convert(o));\n return n.lng -= 360 * Math.round(n.lng / 360), n;\n }, t.getWidth = function () {\n return this.transform_.width;\n }, t.getHeight = function () {\n return this.transform_.height;\n }, t.getZoom = function () {\n return this.transform_.zoom;\n }, t.getCenter = function () {\n return this.transform_.pointLocation({\n x: 0,\n y: 0\n });\n }, t.getBounds = function (e, t) {\n var o = e && e[0] || 0,\n n = e && e[1] || 0,\n r = e && e[2] || 0,\n i = e && e[3] || 0;\n\n if (this.getWidth() - n - i > 0 && this.getHeight() - o - r > 0) {\n var a = this.transform_.pointLocation(s.convert({\n x: i - this.getWidth() / 2,\n y: o - this.getHeight() / 2\n })),\n p = this.transform_.pointLocation(s.convert({\n x: this.getWidth() / 2 - n,\n y: this.getHeight() / 2 - r\n })),\n l = [a.lat, a.lng, p.lat, p.lng, p.lat, a.lng, a.lat, p.lng];\n return t && (l = l.map(function (e) {\n return Math.round(e * t) / t;\n })), l;\n }\n\n return [0, 0, 0, 0];\n }, e;\n}();\n\nfunction S(e) {\n if (window.requestAnimationFrame) return window.requestAnimationFrame(e);\n var t = window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;\n return t ? t(e) : window.setTimeout(e, 1e3 / 60);\n}\n\nvar E = Math.log2 ? Math.log2 : function (e) {\n return Math.log(e) / Math.LN2;\n};\n\nfunction P(e, t) {\n return Object.keys(e).reduce(function (o, n) {\n return t(e[n]) && (o[n] = e[n]), o;\n }, {});\n}\n\nvar A = function A(e) {\n if (null !== e && \"object\" == typeof e) {\n if (0 === Object.keys(e).length) return !0;\n } else if (null == e || \"\" === e) return !0;\n\n return !1;\n},\n I = Object.prototype.toString;\n\nfunction N(e) {\n return \"number\" == typeof e || function (e) {\n return !!e && \"object\" == typeof e;\n }(e) && \"[object Number]\" === I.call(e);\n}\n\nvar Z = null;\n\nfunction j() {\n if (Z) return Z;\n\n if (\"undefined\" != typeof navigator) {\n var e = navigator.userAgent.indexOf(\"MSIE\") > -1,\n t = navigator.userAgent.indexOf(\"Firefox\") > -1,\n o = navigator.userAgent.toLowerCase().indexOf(\"op\") > -1,\n n = navigator.userAgent.indexOf(\"Chrome\") > -1,\n r = navigator.userAgent.indexOf(\"Safari\") > -1;\n return n && r && (r = !1), n && o && (n = !1), Z = {\n isExplorer: e,\n isFirefox: t,\n isOpera: o,\n isChrome: n,\n isSafari: r\n };\n }\n\n return Z = {\n isChrome: !0,\n isExplorer: !1,\n isFirefox: !1,\n isOpera: !1,\n isSafari: !1\n };\n}\n\nvar U = function U(e) {\n return Function.prototype.toString.call(e);\n};\n\nfunction H(e) {\n if (!e || \"object\" != typeof e) return !1;\n var t = \"function\" == typeof e.constructor ? Object.getPrototypeOf(e) : Object.prototype;\n if (null === t) return !0;\n var o = t.constructor;\n return \"function\" == typeof o && o instanceof o && U(o) === U(Object);\n}\n\nfunction K(e, t, o, n) {\n e.addEventListener(t, o, function () {\n var e = !1;\n\n try {\n var t = Object.defineProperty({}, \"passive\", {\n get: function get() {\n e = !0;\n }\n });\n window.addEventListener(\"test\", t, t), window.removeEventListener(\"test\", t, t);\n } catch (t) {\n e = !1;\n }\n\n return e;\n }() ? {\n capture: n,\n passive: !0\n } : n);\n}\n\nvar R,\n G = !(\"undefined\" == typeof window || !window.document || !window.document.createElement);\nR = G ? window : \"undefined\" != typeof self ? self : void 0;\nvar B,\n W = \"undefined\" != typeof document && document.attachEvent,\n V = !1;\n\nif (G && !W) {\n var F = function () {\n var e = R.requestAnimationFrame || R.mozRequestAnimationFrame || R.webkitRequestAnimationFrame || function (e) {\n return R.setTimeout(e, 20);\n };\n\n return function (t) {\n return e(t);\n };\n }(),\n $ = (B = R.cancelAnimationFrame || R.mozCancelAnimationFrame || R.webkitCancelAnimationFrame || R.clearTimeout, function (e) {\n return B(e);\n }),\n q = function q(e) {\n var t = e.__resizeTriggers__,\n o = t.firstElementChild,\n n = t.lastElementChild,\n r = o.firstElementChild;\n n.scrollLeft = n.scrollWidth, n.scrollTop = n.scrollHeight, r.style.width = o.offsetWidth + 1 + \"px\", r.style.height = o.offsetHeight + 1 + \"px\", o.scrollLeft = o.scrollWidth, o.scrollTop = o.scrollHeight;\n },\n Y = function Y(e) {\n var t = this;\n q(this), this.__resizeRAF__ && $(this.__resizeRAF__), this.__resizeRAF__ = F(function () {\n (function (e) {\n return e.offsetWidth != e.__resizeLast__.width || e.offsetHeight != e.__resizeLast__.height;\n })(t) && (t.__resizeLast__.width = t.offsetWidth, t.__resizeLast__.height = t.offsetHeight, t.__resizeListeners__.forEach(function (o) {\n o.call(t, e);\n }));\n });\n },\n X = !1,\n J = \"\",\n Q = \"animationstart\",\n ee = \"Webkit Moz O ms\".split(\" \"),\n te = \"webkitAnimationStart animationstart oAnimationStart MSAnimationStart\".split(\" \");\n\n if (G) {\n var oe = document.createElement(\"fakeelement\");\n if (void 0 !== oe.style.animationName && (X = !0), !1 === X) for (var ne = 0; ne < ee.length; ne++) {\n if (void 0 !== oe.style[ee[ne] + \"AnimationName\"]) {\n J = \"-\" + ee[ne].toLowerCase() + \"-\", Q = te[ne], X = !0;\n break;\n }\n }\n }\n\n var re = \"resizeanim\",\n ie = \"@\" + J + \"keyframes \" + re + \" { from { opacity: 0; } to { opacity: 0; } } \",\n se = J + \"animation: 1ms \" + re + \"; \";\n}\n\nvar ae = void 0 !== n.createPortal,\n pe = ae ? n.createPortal : n.unstable_renderSubtreeIntoContainer,\n le = function le(e) {\n return H(e) ? e : {\n lat: e[0],\n lng: e[1]\n };\n},\n ue = function ue(e, t) {\n return \"production\" !== process.env.NODE_ENV && e < t && console.warn(\"GoogleMap: minZoom option is less than recommended minZoom option for your map sizes.\\noverrided to value \" + t), t < e ? e : t;\n},\n he = function (t) {\n function o(o) {\n var r;\n\n if ((r = t.call(this, o) || this)._getMinZoom = function () {\n if (r.geoService_.getWidth() > 0 || r.geoService_.getHeight() > 0) {\n var e = Math.ceil(r.geoService_.getWidth() / 256) + 2,\n t = Math.ceil(r.geoService_.getHeight() / 256) + 2,\n o = Math.max(e, t);\n return Math.ceil(E(o));\n }\n\n return 3;\n }, r._computeMinZoom = function (e) {\n return A(e) ? r._getMinZoom() : e;\n }, r._mapDomResizeCallback = function () {\n if (r.resetSizeOnIdle_ = !0, r.maps_) {\n var e = r.props.center || r.props.defaultCenter,\n t = r.map_.getCenter();\n r.maps_.event.trigger(r.map_, \"resize\"), r.map_.setCenter(r.props.resetBoundsOnResize ? e : t);\n }\n }, r._setLayers = function (e) {\n e.forEach(function (e) {\n r.layers_[e] = new r.maps_[e](), r.layers_[e].setMap(r.map_);\n });\n }, r._renderPortal = function () {\n return e.createElement(M, {\n experimental: r.props.experimental,\n onChildClick: r._onChildClick,\n onChildMouseDown: r._onChildMouseDown,\n onChildMouseEnter: r._onChildMouseEnter,\n onChildMouseLeave: r._onChildMouseLeave,\n geoService: r.geoService_,\n insideMapPanes: !0,\n distanceToMouse: r.props.distanceToMouse,\n getHoverDistance: r._getHoverDistance,\n dispatcher: r.markersDispatcher_\n });\n }, r._initMap = function () {\n if (!r.initialized_) {\n r.initialized_ = !0;\n var e = le(r.props.center || r.props.defaultCenter);\n r.geoService_.setView(e, r.props.zoom || r.props.defaultZoom, 0), r._onBoundsChanged();\n var t = a({}, r.props.apiKey && {\n key: r.props.apiKey\n }, r.props.bootstrapURLKeys);\n r.props.googleMapLoader(t, r.props.heatmapLibrary).then(function (e) {\n if (r.mounted_) {\n var t,\n o,\n i = r.geoService_.getCenter(),\n s = {\n zoom: r.props.zoom || r.props.defaultZoom,\n center: new e.LatLng(i.lat, i.lng)\n };\n r.props.heatmap.positions && (Object.assign(l(r), {\n heatmap: (t = e, o = r.props.heatmap, new t.visualization.HeatmapLayer({\n data: o.positions.reduce(function (e, o) {\n var n = o.weight,\n r = void 0 === n ? 1 : n;\n return e.push({\n location: new t.LatLng(o.lat, o.lng),\n weight: r\n }), e;\n }, [])\n }))\n }), function (e, t) {\n var o = t.options,\n n = void 0 === o ? {} : o;\n Object.keys(n).map(function (t) {\n return e.set(t, n[t]);\n });\n }(r.heatmap, r.props.heatmap));\n\n var p = P(e, H),\n u = \"function\" == typeof r.props.options ? r.props.options(p) : r.props.options,\n h = !A(r.props.draggable) && {\n draggable: r.props.draggable\n },\n c = r._computeMinZoom(u.minZoom);\n\n r.minZoom_ = c;\n var d = a({}, {\n overviewMapControl: !1,\n streetViewControl: !1,\n rotateControl: !0,\n mapTypeControl: !1,\n styles: [{\n featureType: \"poi\",\n elementType: \"labels\",\n stylers: [{\n visibility: \"off\"\n }]\n }],\n minZoom: 3\n }, {\n minZoom: c\n }, u, s);\n r.defaultDraggableOption_ = A(d.draggable) ? r.defaultDraggableOption_ : d.draggable;\n var m = a({}, d, h);\n m.minZoom = ue(m.minZoom, c);\n var g = new e.Map(n.findDOMNode(r.googleMapDom_), m);\n r.map_ = g, r.maps_ = e, r._setLayers(r.props.layerTypes);\n\n var _ = e.version.match(/^3\\.(\\d+)\\./),\n f = _ && Number(_[1]),\n v = l(r),\n M = Object.assign(new e.OverlayView(), {\n onAdd: function onAdd() {\n var t = \"undefined\" != typeof screen ? screen.width + \"px\" : \"2000px\",\n o = \"undefined\" != typeof screen ? screen.height + \"px\" : \"2000px\",\n n = document.createElement(\"div\");\n\n if (n.style.backgroundColor = \"transparent\", n.style.position = \"absolute\", n.style.left = \"0px\", n.style.top = \"0px\", n.style.width = t, n.style.height = o, v.props.overlayViewDivStyle) {\n var r = v.props.overlayViewDivStyle;\n \"object\" == typeof r && Object.keys(r).forEach(function (e) {\n n.style[e] = r[e];\n });\n }\n\n this.getPanes().overlayMouseTarget.appendChild(n), v.geoService_.setMapCanvasProjection(e, M.getProjection()), ae ? v.setState({\n overlay: n\n }) : pe(v, v._renderPortal(), n, function () {\n return v.setState({\n overlay: n\n });\n });\n },\n onRemove: function onRemove() {\n var e = v.state.overlay;\n e && !ae && n.unmountComponentAtNode(e), v.setState({\n overlay: null\n });\n },\n draw: function draw() {\n if (v.updateCounter_++, v._onBoundsChanged(g, e, !v.props.debounced), v.googleApiLoadedCalled_ || (v._onGoogleApiLoaded({\n map: g,\n maps: e,\n ref: v.googleMapDom_\n }), v.googleApiLoadedCalled_ = !0), v.mouse_) {\n var t = v.geoService_.fromContainerPixelToLatLng(v.mouse_);\n v.mouse_.lat = t.lat, v.mouse_.lng = t.lng;\n }\n\n v._onChildMouseMove(), v.markersDispatcher_ && (v.markersDispatcher_.emit(\"kON_CHANGE\"), v.fireMouseEventOnIdle_ && v.markersDispatcher_.emit(\"kON_MOUSE_POSITION_CHANGE\"));\n }\n });\n\n r.overlay_ = M, M.setMap(g), r.props.heatmap.positions && r.heatmap.setMap(g), r.props.onTilesLoaded && e.event.addListener(g, \"tilesloaded\", function () {\n v._onTilesLoaded();\n }), e.event.addListener(g, \"zoom_changed\", function () {\n v.geoService_.getZoom() !== g.getZoom() && (v.zoomAnimationInProgress_ || (v.zoomAnimationInProgress_ = !0, v._onZoomAnimationStart(g.zoom)), f < 32) && (new Date().getTime() - r.zoomControlClickTime_ < 300 ? S(function () {\n return S(function () {\n v.updateCounter_++, v._onBoundsChanged(g, e);\n });\n }) : (v.updateCounter_++, v._onBoundsChanged(g, e)));\n }), e.event.addListener(g, \"idle\", function () {\n if (r.resetSizeOnIdle_) {\n r._setViewSize();\n\n var t = r._computeMinZoom(u.minZoom);\n\n t !== r.minZoom_ && (r.minZoom_ = t, g.setOptions({\n minZoom: t\n })), r.resetSizeOnIdle_ = !1;\n }\n\n v.zoomAnimationInProgress_ && (v.zoomAnimationInProgress_ = !1, v._onZoomAnimationEnd(g.zoom)), v.updateCounter_++, v._onBoundsChanged(g, e), v.dragTime_ = 0, v.markersDispatcher_ && v.markersDispatcher_.emit(\"kON_CHANGE\");\n }), e.event.addListener(g, \"mouseover\", function () {\n v.mouseInMap_ = !0;\n }), e.event.addListener(g, \"click\", function () {\n v.mouseInMap_ = !0;\n }), e.event.addListener(g, \"mouseout\", function () {\n v.mouseInMap_ = !1, v.mouse_ = null, v.markersDispatcher_.emit(\"kON_MOUSE_POSITION_CHANGE\");\n }), e.event.addListener(g, \"drag\", function () {\n v.dragTime_ = new Date().getTime(), v._onDrag(g);\n }), e.event.addListener(g, \"dragend\", function () {\n var t = e.event.addListener(g, \"idle\", function () {\n e.event.removeListener(t), v._onDragEnd(g);\n });\n }), e.event.addListener(g, \"maptypeid_changed\", function () {\n v._onMapTypeIdChange(g.getMapTypeId());\n });\n }\n }).catch(function (e) {\n throw r._onGoogleApiLoaded({\n map: null,\n maps: null,\n ref: r.googleMapDom_\n }), console.error(e), e;\n });\n }\n }, r._onGoogleApiLoaded = function () {\n var e;\n r.props.onGoogleApiLoaded && (\"production\" !== process.env.NODE_ENV && !0 !== r.props.yesIWantToUseGoogleMapApiInternals && console.warn(\"GoogleMap: Usage of internal api objects is dangerous and can cause a lot of issues.\\nTo hide this warning add yesIWantToUseGoogleMapApiInternals={true} to 50 && (r.boundingRect_ = e.currentTarget.getBoundingClientRect()), r.mouseMoveTime_ = t;\n var o = e.clientX - r.boundingRect_.left,\n n = e.clientY - r.boundingRect_.top;\n r.mouse_ || (r.mouse_ = {\n x: 0,\n y: 0,\n lat: 0,\n lng: 0\n }), r.mouse_.x = o, r.mouse_.y = n;\n var i = r.geoService_.fromContainerPixelToLatLng(r.mouse_);\n r.mouse_.lat = i.lat, r.mouse_.lng = i.lng, r._onChildMouseMove(), t - r.dragTime_ < 100 ? r.fireMouseEventOnIdle_ = !0 : (r.markersDispatcher_.emit(\"kON_MOUSE_POSITION_CHANGE\"), r.fireMouseEventOnIdle_ = !1);\n }\n }, r._onClick = function () {\n var e;\n return r.props.onClick && !r.childMouseDownArgs_ && new Date().getTime() - r.childMouseUpTime_ > 300 && 0 === r.dragTime_ && (e = r.props).onClick.apply(e, arguments);\n }, r._onMapClick = function (e) {\n r.markersDispatcher_ && (r._onMapMouseMove(e), new Date().getTime() - r.dragTime_ > 100 && (r.mouse_ && r._onClick(a({}, r.mouse_, {\n event: e\n })), r.markersDispatcher_.emit(\"kON_CLICK\", e)));\n }, r._onMapMouseDownNative = function (e) {\n r.mouseInMap_ && r._onMapMouseDown(e);\n }, r._onMapMouseDown = function (e) {\n r.markersDispatcher_ && new Date().getTime() - r.dragTime_ > 100 && (r._onMapMouseMove(e), r.markersDispatcher_.emit(\"kON_MDOWN\", e));\n }, r._onMapMouseDownCapture = function () {\n j().isChrome && (r.zoomControlClickTime_ = new Date().getTime());\n }, r._onKeyDownCapture = function () {\n j().isChrome && (r.zoomControlClickTime_ = new Date().getTime());\n }, r._isCenterDefined = function (e) {\n return e && (H(e) && N(e.lat) && N(e.lng) || 2 === e.length && N(e[0]) && N(e[1]));\n }, r._onBoundsChanged = function (e, t, o) {\n if (e) {\n var n = e.getCenter();\n r.geoService_.setView([n.lat(), n.lng()], e.getZoom(), 0);\n }\n\n if ((r.props.onChange || r.props.onBoundsChange) && r.geoService_.canProject()) {\n var i = r.geoService_.getZoom(),\n s = r.geoService_.getBounds(),\n p = r.geoService_.getCenter();\n\n if (!function (e, t, o) {\n if (e && t) {\n for (var n = 0; n !== e.length; ++n) {\n if (Math.abs(e[n] - t[n]) > 1e-5) return !1;\n }\n\n return !0;\n }\n\n return !1;\n }(s, r.prevBounds_) && !1 !== o) {\n var l = r.geoService_.getBounds(r.props.margin);\n r.props.onBoundsChange && r.props.onBoundsChange(r.centerIsObject_ ? a({}, p) : [p.lat, p.lng], i, s, l), r.props.onChange && r.props.onChange({\n center: a({}, p),\n zoom: i,\n bounds: {\n nw: {\n lat: s[0],\n lng: s[1]\n },\n se: {\n lat: s[2],\n lng: s[3]\n },\n sw: {\n lat: s[4],\n lng: s[5]\n },\n ne: {\n lat: s[6],\n lng: s[7]\n }\n },\n marginBounds: {\n nw: {\n lat: l[0],\n lng: l[1]\n },\n se: {\n lat: l[2],\n lng: l[3]\n },\n sw: {\n lat: l[4],\n lng: l[5]\n },\n ne: {\n lat: l[6],\n lng: l[7]\n }\n },\n size: r.geoService_.hasSize() ? {\n width: r.geoService_.getWidth(),\n height: r.geoService_.getHeight()\n } : {\n width: 0,\n height: 0\n }\n }), r.prevBounds_ = s;\n }\n }\n }, r._registerChild = function (e) {\n r.googleMapDom_ = e;\n }, r.mounted_ = !1, r.initialized_ = !1, r.googleApiLoadedCalled_ = !1, r.map_ = null, r.maps_ = null, r.prevBounds_ = null, r.heatmap = null, r.layers_ = {}, r.mouse_ = null, r.mouseMoveTime_ = 0, r.boundingRect_ = null, r.mouseInMap_ = !0, r.dragTime_ = 0, r.fireMouseEventOnIdle_ = !1, r.updateCounter_ = 0, r.markersDispatcher_ = new c(l(r)), r.geoService_ = new T(256), r.centerIsObject_ = H(r.props.center), r.minZoom_ = 3, r.defaultDraggableOption_ = !0, r.zoomControlClickTime_ = 0, r.childMouseDownArgs_ = null, r.childMouseUpTime_ = 0, r.googleMapDom_ = null, \"production\" !== process.env.NODE_ENV && (r.props.apiKey && console.warn(\"GoogleMap: apiKey is deprecated, use bootstrapURLKeys={{key: YOUR_API_KEY}} instead.\"), r.props.onBoundsChange && console.warn(\"GoogleMap: onBoundsChange is deprecated, use onChange({center, zoom, bounds, ...other}) instead.\"), A(r.props.center) && A(r.props.defaultCenter) && console.warn(\"GoogleMap: center or defaultCenter property must be defined\"), A(r.props.zoom) && A(r.props.defaultZoom) && console.warn(\"GoogleMap: zoom or defaultZoom property must be defined\")), r._isCenterDefined(r.props.center || r.props.defaultCenter)) {\n var i = le(r.props.center || r.props.defaultCenter);\n r.geoService_.setView(i, r.props.zoom || r.props.defaultZoom, 0);\n }\n\n return r.zoomAnimationInProgress_ = !1, r.state = {\n overlay: null\n }, r;\n }\n\n p(o, t);\n var r = o.prototype;\n return r.componentDidMount = function () {\n var e = this;\n this.mounted_ = !0, K(window, \"resize\", this._onWindowResize, !1), K(window, \"keydown\", this._onKeyDownCapture, !0);\n var t = n.findDOMNode(this.googleMapDom_);\n t && K(t, \"mousedown\", this._onMapMouseDownNative, !0), K(window, \"mouseup\", this._onChildMouseUp, !1);\n var o = a({}, this.props.apiKey && {\n key: this.props.apiKey\n }, this.props.bootstrapURLKeys);\n this.props.googleMapLoader(o, this.props.heatmapLibrary), setTimeout(function () {\n e._setViewSize(), e._isCenterDefined(e.props.center || e.props.defaultCenter) && e._initMap();\n }, 0, this), this.props.resetBoundsOnResize && function (e, t) {\n if (void 0 === e.parentNode) {\n var o = document.createElement(\"div\");\n e.parentNode = o;\n }\n\n e = e.parentNode, W ? e.attachEvent(\"onresize\", t) : (e.__resizeTriggers__ || (\"static\" == getComputedStyle(e).position && (e.style.position = \"relative\"), function () {\n if (!V) {\n var e = (ie || \"\") + \".resize-triggers { \" + (se || \"\") + 'visibility: hidden; opacity: 0; } .resize-triggers, .resize-triggers > div, .contract-trigger:before { content: \" \"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',\n t = document.head || document.getElementsByTagName(\"head\")[0],\n o = document.createElement(\"style\");\n o.type = \"text/css\", o.styleSheet ? o.styleSheet.cssText = e : o.appendChild(document.createTextNode(e)), t.appendChild(o), V = !0;\n }\n }(), e.__resizeLast__ = {}, e.__resizeListeners__ = [], (e.__resizeTriggers__ = document.createElement(\"div\")).className = \"resize-triggers\", e.__resizeTriggers__.innerHTML = '
    ', e.appendChild(e.__resizeTriggers__), q(e), K(e, \"scroll\", Y, !0), Q && e.__resizeTriggers__.addEventListener(Q, function (t) {\n t.animationName == re && q(e);\n })), e.__resizeListeners__.push(t));\n }(t, this._mapDomResizeCallback);\n }, r.shouldComponentUpdate = function (e, t) {\n return !_(d(this.props, [\"draggable\"]), d(e, [\"draggable\"])) || !_(this.state, t);\n }, r.componentDidUpdate = function (e) {\n var t = this;\n\n if (\"production\" !== process.env.NODE_ENV && (_(e.defaultCenter, this.props.defaultCenter) || console.warn(\"GoogleMap: defaultCenter prop changed. You can't change default props.\"), _(e.defaultZoom, this.props.defaultZoom) || console.warn(\"GoogleMap: defaultZoom prop changed. You can't change default props.\")), !this._isCenterDefined(e.center) && this._isCenterDefined(this.props.center) && setTimeout(function () {\n return t._initMap();\n }, 0), this.map_) {\n var o = this.geoService_.getCenter();\n\n if (this._isCenterDefined(this.props.center)) {\n var n = le(this.props.center),\n r = this._isCenterDefined(e.center) ? le(e.center) : null;\n (!r || Math.abs(n.lat - r.lat) + Math.abs(n.lng - r.lng) > 1e-5) && Math.abs(n.lat - o.lat) + Math.abs(n.lng - o.lng) > 1e-5 && this.map_.panTo({\n lat: n.lat,\n lng: n.lng\n });\n }\n\n if (A(this.props.zoom) || Math.abs(this.props.zoom - e.zoom) > 0 && this.map_.setZoom(this.props.zoom), !A(e.draggable) && A(this.props.draggable) ? this.map_.setOptions({\n draggable: this.defaultDraggableOption_\n }) : _(e.draggable, this.props.draggable) || this.map_.setOptions({\n draggable: this.props.draggable\n }), !A(this.props.options) && !_(e.options, this.props.options)) {\n var i = P(this.maps_, H),\n s = \"function\" == typeof this.props.options ? this.props.options(i) : this.props.options;\n\n if (\"minZoom\" in (s = d(s, [\"zoom\", \"center\", \"draggable\"]))) {\n var a = this._computeMinZoom(s.minZoom);\n\n s.minZoom = ue(s.minZoom, a);\n }\n\n this.map_.setOptions(s);\n }\n\n _(this.props.layerTypes, e.layerTypes) || (Object.keys(this.layers_).forEach(function (e) {\n t.layers_[e].setMap(null), delete t.layers_[e];\n }), this._setLayers(this.props.layerTypes)), this.heatmap && !_(this.props.heatmap.positions, e.heatmap.positions) && this.heatmap.setData(this.props.heatmap.positions.map(function (e) {\n return {\n location: new t.maps_.LatLng(e.lat, e.lng),\n weight: e.weight\n };\n })), this.heatmap && !_(this.props.heatmap.options, e.heatmap.options) && Object.keys(this.props.heatmap.options).forEach(function (e) {\n t.heatmap.set(e, t.props.heatmap.options[e]);\n });\n }\n\n this.markersDispatcher_.emit(\"kON_CHANGE\"), _(this.props.hoverDistance, e.hoverDistance) || this.markersDispatcher_.emit(\"kON_MOUSE_POSITION_CHANGE\");\n }, r.componentWillUnmount = function () {\n this.mounted_ = !1;\n var e,\n t,\n o = n.findDOMNode(this.googleMapDom_);\n o && o.removeEventListener(\"mousedown\", this._onMapMouseDownNative, !0), window.removeEventListener(\"resize\", this._onWindowResize), window.removeEventListener(\"keydown\", this._onKeyDownCapture), window.removeEventListener(\"mouseup\", this._onChildMouseUp, !1), this.props.resetBoundsOnResize && (t = this._mapDomResizeCallback, e = (e = o).parentNode, W ? e.detachEvent(\"onresize\", t) : (e.__resizeListeners__.splice(e.__resizeListeners__.indexOf(t), 1), e.__resizeListeners__.length || (e.removeEventListener(\"scroll\", Y), e.__resizeTriggers__ = !e.removeChild(e.__resizeTriggers__)))), this.overlay_ && this.overlay_.setMap(null), this.maps_ && this.map_ && this.props.shouldUnregisterMapOnUnmount && (this.map_.setOptions({\n scrollwheel: !1\n }), this.maps_.event.clearInstanceListeners(this.map_)), this.props.shouldUnregisterMapOnUnmount && (this.map_ = null, this.maps_ = null), this.markersDispatcher_.dispose(), this.resetSizeOnIdle_ = !1, this.props.shouldUnregisterMapOnUnmount && (delete this.map_, delete this.markersDispatcher_);\n }, r.render = function () {\n var t = this.state.overlay,\n o = t ? null : e.createElement(C, {\n experimental: this.props.experimental,\n onChildClick: this._onChildClick,\n onChildMouseDown: this._onChildMouseDown,\n onChildMouseEnter: this._onChildMouseEnter,\n onChildMouseLeave: this._onChildMouseLeave,\n geoService: this.geoService_,\n insideMapPanes: !1,\n distanceToMouse: this.props.distanceToMouse,\n getHoverDistance: this._getHoverDistance,\n dispatcher: this.markersDispatcher_\n });\n return e.createElement(\"div\", {\n style: this.props.style,\n onMouseMove: this._onMapMouseMove,\n onMouseDownCapture: this._onMapMouseDownCapture,\n onClick: this._onMapClick\n }, e.createElement(h, {\n registerChild: this._registerChild\n }), ae && t && pe(this._renderPortal(), t), o);\n }, o;\n}(t);\n\nfunction ce(e) {\n var t = e.lng,\n o = Math.sin(e.lat * Math.PI / 180),\n n = t / 360 + .5,\n r = .5 - .25 * Math.log((1 + o) / (1 - o)) / Math.PI;\n return {\n x: n,\n y: r = r < 0 ? 0 : r > 1 ? 1 : r\n };\n}\n\nfunction de(e) {\n var t = e.x,\n o = Math.PI - 2 * Math.PI * e.y;\n return {\n lat: 180 / Math.PI * Math.atan(.5 * (Math.exp(o) - Math.exp(-o))),\n lng: 360 * t - 180\n };\n}\n\nfunction me(e, t, o, n) {\n var r = ce(e),\n i = ce(t),\n s = r.x < i.x ? i.x - r.x : 1 - r.x + i.x,\n a = i.y - r.y;\n if (s <= 0 && a <= 0) return null;\n\n var p = E(o / 256 / Math.abs(s)),\n l = E(n / 256 / Math.abs(a)),\n u = Math.floor(1e-9 + Math.min(p, l)),\n h = {\n x: r.x < i.x ? .5 * (r.x + i.x) : r.x + i.x - 1 > 0 ? .5 * (r.x + i.x - 1) : .5 * (1 + r.x + i.x),\n y: .5 * (r.y + i.y)\n },\n c = Math.pow(2, u),\n d = o / c / 256 / 2,\n m = n / c / 256 / 2,\n g = de({\n x: h.x - d,\n y: h.y - m\n }),\n _ = de({\n x: h.x + d,\n y: h.y + m\n });\n\n return {\n center: de(h),\n zoom: u,\n newBounds: {\n nw: g,\n se: _\n }\n };\n}\n\nfunction ge(e) {\n var t = e.ne,\n o = e.sw;\n return {\n nw: {\n lat: t.lat,\n lng: o.lng\n },\n se: {\n lat: o.lat,\n lng: t.lng\n }\n };\n}\n\nfunction _e(e) {\n var t = e.nw,\n o = e.se;\n return {\n ne: {\n lat: t.lat,\n lng: o.lng\n },\n sw: {\n lat: o.lat,\n lng: t.lng\n }\n };\n}\n\nfunction fe(e, t) {\n var o,\n n = e.nw,\n r = e.se,\n i = e.ne,\n s = e.sw,\n p = t.width,\n l = t.height;\n if (n && r) o = me(n, r, p, l);else {\n var u = ge({\n ne: i,\n sw: s\n });\n o = me(u.nw, u.se, p, l);\n }\n return a({}, o, {\n newBounds: a({}, o.newBounds, _e(o.newBounds))\n });\n}\n\nfunction ve(e, t, o) {\n var n = function (e, t) {\n var o = function (e, t) {\n var o,\n n = t.lat,\n r = t.lng,\n i = (o = n * Math.PI / 180, {\n metersPerLatDegree: 111132.92 - 559.82 * Math.cos(2 * o) + 1.175 * Math.cos(4 * o) - .0023 * Math.cos(6 * o),\n metersPerLngDegree: 111412.84 * Math.cos(o) - 93.5 * Math.cos(3 * o) + .118 * Math.cos(5 * o)\n }),\n s = .5 * e / i.metersPerLatDegree,\n a = .5 * e / i.metersPerLngDegree;\n return {\n nw: {\n lat: n - s,\n lng: r - a\n },\n se: {\n lat: n + s,\n lng: r + a\n }\n };\n }(e, {\n lat: t.lat,\n lng: t.lng\n }),\n n = o.se,\n r = ce(o.nw),\n i = ce(n);\n\n return {\n w: Math.abs(i.x - r.x),\n h: Math.abs(i.y - r.y)\n };\n }(e, {\n lat: t.lat,\n lng: t.lng\n }),\n r = n.w,\n i = n.h,\n s = Math.pow(2, o);\n\n return {\n w: r * s * 256,\n h: i * s * 256\n };\n}\n\nfunction Me(e, t) {\n var o = e.x,\n n = Math.PI - 2 * Math.PI * e.y / Math.pow(2, t);\n return {\n lat: 180 / Math.PI * Math.atan(.5 * (Math.exp(n) - Math.exp(-n))),\n lng: o / Math.pow(2, t) * 360 - 180\n };\n}\n\nfunction ye(e, t) {\n var o = ce({\n lat: e.lat,\n lng: e.lng\n }),\n n = Math.pow(2, t);\n return {\n x: Math.floor(o.x * n),\n y: Math.floor(o.y * n)\n };\n}\n\nfunction Ce(e, t) {\n for (var o = e.from, n = e.to, r = Math.pow(2, t), i = [], s = o.x; s !== (n.x + 1) % r; s = (s + 1) % r) {\n for (var a = o.y; a !== (n.y + 1) % r; a = (a + 1) % r) {\n i.push([t, s, a]);\n }\n }\n\n return i;\n}\n\nhe.propTypes = {\n apiKey: o.string,\n bootstrapURLKeys: o.any,\n defaultCenter: o.oneOfType([o.array, o.shape({\n lat: o.number,\n lng: o.number\n })]),\n center: o.oneOfType([o.array, o.shape({\n lat: o.number,\n lng: o.number\n })]),\n defaultZoom: o.number,\n zoom: o.number,\n onBoundsChange: o.func,\n onChange: o.func,\n onClick: o.func,\n onChildClick: o.func,\n onChildMouseDown: o.func,\n onChildMouseUp: o.func,\n onChildMouseMove: o.func,\n onChildMouseEnter: o.func,\n onChildMouseLeave: o.func,\n onZoomAnimationStart: o.func,\n onZoomAnimationEnd: o.func,\n onDrag: o.func,\n onDragEnd: o.func,\n onMapTypeIdChange: o.func,\n onTilesLoaded: o.func,\n options: o.any,\n distanceToMouse: o.func,\n hoverDistance: o.number,\n debounced: o.bool,\n margin: o.array,\n googleMapLoader: o.any,\n onGoogleApiLoaded: o.func,\n yesIWantToUseGoogleMapApiInternals: o.bool,\n draggable: o.bool,\n style: o.any,\n resetBoundsOnResize: o.bool,\n layerTypes: o.arrayOf(o.string),\n shouldUnregisterMapOnUnmount: o.bool\n}, he.defaultProps = {\n distanceToMouse: function distanceToMouse(e, t) {\n return Math.sqrt((e.x - t.x) * (e.x - t.x) + (e.y - t.y) * (e.y - t.y));\n },\n hoverDistance: 30,\n debounced: !0,\n options: function options() {\n return {\n overviewMapControl: !1,\n streetViewControl: !1,\n rotateControl: !0,\n mapTypeControl: !1,\n styles: [{\n featureType: \"poi\",\n elementType: \"labels\",\n stylers: [{\n visibility: \"off\"\n }]\n }],\n minZoom: 3\n };\n },\n googleMapLoader: z,\n yesIWantToUseGoogleMapApiInternals: !1,\n style: {\n width: \"100%\",\n height: \"100%\",\n margin: 0,\n padding: 0,\n position: \"relative\"\n },\n layerTypes: [],\n heatmap: {},\n heatmapLibrary: !1,\n shouldUnregisterMapOnUnmount: !0\n}, he.googleMapLoader = z;\nexport default he;\nexport { ge as convertNeSwToNwSe, _e as convertNwSeToNeSw, fe as fitBounds, Ce as getTilesIds, ye as latLng2Tile, ve as meters2ScreenPixels, Me as tile2LatLng };","import React, { Fragment } from 'react';\nimport { gsap as gsap$2 } from 'gsap';\nimport { isForwardRef, isFragment } from 'react-is';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n it = o[Symbol.iterator]();\n return it.next.bind(it);\n}\n\nvar PlayState;\n\n(function (PlayState) {\n PlayState[\"play\"] = \"play\";\n PlayState[\"reverse\"] = \"reverse\";\n PlayState[\"stop\"] = \"stop\";\n PlayState[\"pause\"] = \"pause\";\n})(PlayState || (PlayState = {}));\n\nvar setPlayState = function setPlayState(playState, prevPlayState, tween) {\n if (tween === void 0) {\n tween = null;\n }\n\n if (tween && playState && playState !== prevPlayState) {\n if (playState === PlayState.play) {\n if (prevPlayState === PlayState.pause || prevPlayState === PlayState.reverse) {\n tween.play();\n } else {\n tween.restart(true);\n }\n } else if (playState === PlayState.reverse) {\n if (prevPlayState === PlayState.pause || prevPlayState === PlayState.play) {\n tween.reverse();\n } else {\n tween.reverse(0);\n }\n } else if (playState === PlayState.stop) {\n tween.pause(0);\n } else if (playState === PlayState.pause) {\n tween.pause();\n }\n }\n};\n\nvar getTweenFunction = function getTweenFunction(targets, props) {\n var _props$duration = props.duration,\n duration = _props$duration === void 0 ? 1 : _props$duration,\n from = props.from,\n to = props.to,\n stagger = props.stagger,\n progress = props.progress,\n totalProgress = props.totalProgress,\n playState = props.playState,\n onCompleteAll = props.onCompleteAll,\n onCompleteAllParams = props.onCompleteAllParams,\n onCompleteAllScope = props.onCompleteAllScope,\n onStartAll = props.onStartAll,\n vars = _objectWithoutPropertiesLoose(props, [\"children\", \"wrapper\", \"duration\", \"from\", \"to\", \"stagger\", \"progress\", \"totalProgress\", \"playState\", \"disabled\", \"onlyInvalidateTo\", \"onCompleteAll\", \"onCompleteAllParams\", \"onCompleteAllScope\", \"onStartAll\", \"position\", \"target\"]);\n\n var tweenFunction;\n\n if (from && to) {\n tweenFunction = gsap$2.fromTo(targets, from, _extends({\n stagger: stagger,\n duration: duration\n }, to, vars));\n } else if (to) {\n tweenFunction = gsap$2.to(targets, _extends({\n stagger: stagger,\n duration: duration\n }, to, vars));\n } else {\n tweenFunction = gsap$2.from(targets, _extends({\n stagger: stagger,\n duration: duration\n }, from, vars));\n } // if multiple tweens (stagger), wrap them in a timeline\n // TODO: if it's already an timeline add event handlers\n\n\n if (Array.isArray(tweenFunction)) {\n tweenFunction.forEach(function (t) {\n t.paused(false);\n });\n tweenFunction = gsap$2.timeline(_extends({}, vars, {\n tweens: tweenFunction,\n smoothChildTiming: true,\n onComplete: onCompleteAll,\n onCompleteParams: onCompleteAllParams,\n onCompleteScope: onCompleteAllScope,\n onStart: onStartAll\n }));\n } // props at mount\n\n\n if (progress) {\n tweenFunction.progress(progress);\n }\n\n if (totalProgress) {\n tweenFunction.totalProgress(totalProgress);\n }\n\n if (playState) {\n setPlayState(playState, null, tweenFunction);\n }\n\n return tweenFunction;\n};\n\nvar isEqual = function isEqual(obj1, obj2) {\n // very easy equal check\n // attention: if the order of properties are different it returns false\n return JSON.stringify(obj1) === JSON.stringify(obj2);\n};\n\nvar getRefProp = function getRefProp(child, addTarget) {\n if (child.props.innerRef) {\n return {\n innerRef: function innerRef(target) {\n addTarget(target);\n var innerRef = child.props.innerRef;\n if (typeof innerRef === 'function') innerRef(target);else if (innerRef) innerRef.current = target;\n }\n };\n }\n\n return {\n ref: function ref(target) {\n addTarget(target);\n var ref = child.ref;\n if (typeof ref === 'function') ref(target);else if (ref) ref.current = target;\n }\n };\n};\n\nvar getTargetRefProp = function getTargetRefProp(child, setTarget) {\n return {\n // ref: (target: any) => {\n // const { ref } = child;\n //\n // if (target) {\n // Object.keys(target).forEach(key => {\n // const elementRef = target[key];\n // if (typeof elementRef === 'object' && elementRef.current) {\n // setTarget(key, elementRef.current);\n // }\n // });\n // }\n //\n // if (typeof ref === 'function') ref(target);\n // else if (ref) ref.current = target;\n // },\n // Old version: Can we make it work for both variants?\n ref: {\n set: setTarget\n }\n };\n};\n\nvar nullishCoalescing = function nullishCoalescing(value, ifNullish) {\n if (value === null || typeof value === 'undefined') {\n return ifNullish;\n }\n\n return value;\n};\n\nvar Context = /*#__PURE__*/React.createContext({\n registerConsumer: function registerConsumer() {}\n});\n\nvar Provider = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Provider, _React$Component);\n\n function Provider(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.consumers = [];\n _this.registerConsumer = _this.registerConsumer.bind(_assertThisInitialized(_this));\n _this.getContextValue = _this.getContextValue.bind(_assertThisInitialized(_this));\n _this.renderWithProvider = _this.renderWithProvider.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.registerConsumer = function registerConsumer(consumer) {\n this.consumers.push(consumer);\n };\n\n _proto.getContextValue = function getContextValue() {\n return {\n registerConsumer: this.registerConsumer\n };\n };\n\n _proto.renderWithProvider = function renderWithProvider(output) {\n return React.createElement(Context.Provider, {\n value: this.getContextValue()\n }, output);\n };\n\n return Provider;\n}(React.Component);\n\nvar gsap;\n\nvar _interpolate;\n\nvar _getProp;\n\nvar _getGSAP = function _getGSAP() {\n return gsap || typeof window !== 'undefined' && (gsap = window.gsap) && gsap.registerPlugin && gsap;\n};\n\nfunction getDistance(p1, p2) {\n return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));\n}\n\nfunction getCircleLength(el) {\n return 2 * Math.PI * parseFloat(nullishCoalescing(el.getAttribute('r'), '1') || '0');\n}\n\nfunction getRectLength(el) {\n return parseFloat(nullishCoalescing(el.getAttribute('width'), '1') || '0') * 2 + parseFloat(nullishCoalescing(el.getAttribute('height'), '1') || '0') * 2;\n}\n\nfunction getLineLength(el) {\n return getDistance({\n x: parseFloat(nullishCoalescing(el.getAttribute('x1'), '1') || '0'),\n y: parseFloat(nullishCoalescing(el.getAttribute('y1'), '1') || '0')\n }, {\n x: parseFloat(nullishCoalescing(el.getAttribute('x2'), '1') || '0'),\n y: parseFloat(nullishCoalescing(el.getAttribute('y2'), '1') || '0')\n });\n}\n\nfunction getPolylineLength(el) {\n var points = el.points;\n var totalLength = 0;\n var previousPos = undefined;\n\n for (var i = 0; i < points.numberOfItems; i++) {\n var currentPos = points.getItem(i);\n if (previousPos) totalLength += getDistance(previousPos, currentPos);\n previousPos = currentPos;\n }\n\n return totalLength;\n}\n\nfunction getPolygonLength(el) {\n var points = el.points;\n return getPolylineLength(el) + getDistance(points.getItem(points.numberOfItems - 1), points.getItem(0));\n} // if path is splitted into multiple move commands then return longest path\n\n\nfunction getPathLength(el) {\n if (!el.hasAttribute('d')) {\n return el.getTotalLength();\n }\n\n var d = el.getAttribute('d');\n var pathString = d ? d.replace(/m/gi, 'M') : null;\n\n if (!pathString) {\n return el.getTotalLength();\n }\n\n var paths = pathString.split('M').filter(function (path) {\n return path !== '';\n }).map(function (path) {\n return \"M\" + path;\n });\n\n if (paths.length === 1) {\n return el.getTotalLength();\n }\n\n var maxLength = 0;\n paths.forEach(function (path) {\n var pathElement = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n pathElement.setAttribute('d', path);\n maxLength = Math.max(maxLength, pathElement.getTotalLength());\n });\n return maxLength;\n}\n\nfunction getTotalLength(el) {\n if (el.getTotalLength) {\n return getPathLength(el);\n }\n\n switch (el.tagName.toLowerCase()) {\n case 'circle':\n return getCircleLength(el);\n\n case 'rect':\n return getRectLength(el);\n\n case 'line':\n return getLineLength(el);\n\n case 'polyline':\n return getPolylineLength(el);\n\n case 'polygon':\n return getPolygonLength(el);\n\n default:\n return 0;\n }\n}\n\nvar SvgDrawPlugin = {\n version: '2.0.0',\n name: 'svgDraw',\n register: function register(core, Plugin, propTween) {\n gsap = core;\n _interpolate = gsap.utils.interpolate;\n _getProp = gsap.getProperty;\n },\n init: function init(target, value, _tween, index, targets) {\n var length = getTotalLength(target);\n var lengthParam = value;\n var offsetParam = 0;\n\n if (Array.isArray(value)) {\n lengthParam = value[0];\n\n if (value.length >= 2) {\n offsetParam = value[1] * -1;\n }\n }\n\n var data = this;\n data.target = target;\n data.strokeDashoffset = _interpolate(_getProp(target, 'stroke-dashoffset'), length * offsetParam);\n data.strokeDasharray = _interpolate(_getProp(target, 'stroke-dasharray'), [lengthParam * length, length]);\n },\n render: function render(progress, data) {\n data.target.setAttribute('stroke-dashoffset', data.strokeDashoffset(progress));\n data.target.setAttribute('stroke-dasharray', data.strokeDasharray(progress));\n }\n};\n_getGSAP() && gsap.registerPlugin(SvgDrawPlugin);\nvar gsap$1;\n\nvar _interpolate$1;\n\nvar _format;\n\nvar _getGSAP$1 = function _getGSAP() {\n return gsap$1 || typeof window !== 'undefined' && (gsap$1 = window.gsap) && gsap$1.registerPlugin && gsap$1;\n};\n\nvar CountPlugin = {\n version: '1.0.0',\n name: 'count',\n register: function register(core, Plugin, propTween) {\n gsap$1 = core;\n _interpolate$1 = gsap$1.utils.interpolate;\n\n _format = function _format(value) {\n return parseInt(value.toString(), 10);\n };\n },\n init: function init(target, value, _tween, index, targets) {\n var inputValue = value;\n var format = _format;\n\n if (typeof value === 'object') {\n inputValue = nullishCoalescing(value.value, 0);\n\n if (value.format) {\n format = value.format;\n }\n }\n\n var initialCount = parseFloat(target.innerText);\n var data = this;\n data.target = target;\n data.count = _interpolate$1(initialCount, parseFloat(inputValue.toString()));\n data.format = format;\n },\n render: function render(progress, data) {\n data.target.innerText = data.format(data.count(progress));\n }\n};\n_getGSAP$1() && gsap$1.registerPlugin(CountPlugin);\ngsap$2.registerPlugin(SvgDrawPlugin); // @ts-ignore\n\ngsap$2.registerPlugin(CountPlugin);\n\nvar Tween = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Tween, _React$Component);\n\n function Tween(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.targets = [];\n _this.addTarget = _this.addTarget.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = Tween.prototype;\n\n _proto.setPlayState = function setPlayState$1(playState) {\n var previousPlayState = this.props.playState;\n setPlayState(playState, previousPlayState, this.tween);\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.createTween();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.tween) {\n this.tween.kill();\n }\n };\n\n _proto.getSnapshotBeforeUpdate = function getSnapshotBeforeUpdate() {\n this.targets = [];\n return null;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props = this.props,\n children = _this$props.children,\n duration = _this$props.duration,\n to = _this$props.to,\n progress = _this$props.progress,\n totalProgress = _this$props.totalProgress,\n playState = _this$props.playState,\n disabled = _this$props.disabled,\n onlyInvalidateTo = _this$props.onlyInvalidateTo,\n vars = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"wrapper\", \"duration\", \"from\", \"to\", \"stagger\", \"progress\", \"totalProgress\", \"playState\", \"disabled\", \"onlyInvalidateTo\", \"onCompleteAll\", \"onCompleteAllParams\", \"onCompleteAllScope\", \"onStartAll\", \"position\", \"target\"]); // if children change create a new tween\n // TODO: replace easy length check with fast equal check\n\n\n if (React.Children.count(prevProps.children) !== React.Children.count(children)) {\n this.createTween();\n }\n\n if (disabled) {\n return;\n } // execute function calls\n\n\n if (progress !== prevProps.progress) {\n this.tween.progress(progress);\n }\n\n if (totalProgress !== prevProps.totalProgress) {\n this.tween.totalProgress(totalProgress);\n }\n\n if (duration !== prevProps.duration) {\n this.tween.duration(duration);\n } // if \"to\" props are changed: reinit and restart tween\n\n\n if (!isEqual(to, prevProps.to)) {\n // is Tween\n if (!this.tween.getChildren) {\n this.tween.vars = _extends({}, to, vars);\n\n if (onlyInvalidateTo) {\n var progressTmp = this.tween.progress();\n this.tween.progress(0).invalidate().progress(progressTmp);\n } else {\n this.tween.invalidate();\n }\n } // is Timeline\n // TODO: not yet ready\n else {\n var delay = 0;\n this.tween.getChildren(false, true, false).forEach(function (tween) {\n tween.vars = _extends({}, to, vars, {\n delay: delay\n });\n tween.invalidate(); // delay += stagger || 0;\n });\n }\n\n if (!this.tween.paused()) {\n this.tween.restart();\n }\n }\n\n setPlayState(playState, prevProps.playState, this.tween);\n };\n\n _proto.createTween = function createTween() {\n if (this.tween) {\n this.tween.kill();\n }\n\n if (this.props.children) {\n this.tween = getTweenFunction(this.targets, this.props);\n } else {\n // why this is needed?\n this.tween = function () {};\n }\n\n this.context.registerConsumer(this);\n };\n\n _proto.getGSAP = function getGSAP() {\n return this.tween;\n };\n\n _proto.setGSAP = function setGSAP(tween) {\n this.tween = tween;\n };\n\n _proto.addTarget = function addTarget(target) {\n // target is null at unmount\n if (target !== null) {\n this.targets.push(target);\n }\n };\n\n _proto.getTargets = function getTargets() {\n return this.targets;\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n children = _this$props2.children,\n wrapper = _this$props2.wrapper;\n var output = React.createElement(Fragment, null, React.Children.map(children, function (child) {\n return React.cloneElement(child, getRefProp(child, _this2.addTarget));\n }));\n\n if (wrapper) {\n return React.cloneElement(wrapper, [], output);\n }\n\n return output;\n };\n\n return Tween;\n}(React.Component);\n\nTween.displayName = 'Tween';\nTween.contextType = Context;\n\nvar Timeline = /*#__PURE__*/function (_Provider) {\n _inheritsLoose(Timeline, _Provider);\n\n function Timeline(props) {\n var _this;\n\n _this = _Provider.call(this, props) || this;\n _this.targets = new Map();\n _this.addTarget = _this.addTarget.bind(_assertThisInitialized(_this));\n _this.setTarget = _this.setTarget.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = Timeline.prototype;\n\n _proto.setPlayState = function setPlayState$1(playState) {\n var previousPlayState = this.props.playState;\n setPlayState(playState, previousPlayState, this.timeline);\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.createTimeline();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.timeline.kill();\n };\n\n _proto.getSnapshotBeforeUpdate = function getSnapshotBeforeUpdate() {\n this.targets = new Map();\n return null;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props = this.props,\n children = _this$props.children,\n duration = _this$props.duration,\n progress = _this$props.progress,\n totalProgress = _this$props.totalProgress,\n playState = _this$props.playState; // if children change create a new timeline\n // TODO: replace easy length check with fast equal check\n // TODO: same for props.target?\n\n if (React.Children.count(prevProps.children) !== React.Children.count(children)) {\n this.createTimeline();\n } // execute function calls\n\n\n if (progress !== prevProps.progress) {\n this.timeline.progress(progress);\n }\n\n if (totalProgress !== prevProps.totalProgress) {\n this.timeline.totalProgress(totalProgress);\n }\n\n if (duration !== prevProps.duration) {\n this.timeline.duration(duration);\n }\n\n setPlayState(playState, prevProps.playState, this.timeline);\n };\n\n _proto.createTimeline = function createTimeline() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n duration = _this$props2.duration,\n progress = _this$props2.progress,\n totalProgress = _this$props2.totalProgress,\n playState = _this$props2.playState,\n labels = _this$props2.labels,\n vars = _objectWithoutPropertiesLoose(_this$props2, [\"children\", \"target\", \"duration\", \"progress\", \"totalProgress\", \"playState\", \"labels\", \"position\"]);\n\n if (this.timeline) {\n this.timeline.kill();\n } // init timeline\n\n\n this.timeline = gsap$2.timeline(_extends({\n smoothChildTiming: true\n }, vars));\n\n if (labels) {\n labels.forEach(function (label) {\n _this2.timeline.addLabel(label.label, label.position);\n });\n } // add tweens or nested timelines to timeline\n\n\n this.consumers.forEach(function (consumer) {\n // Tween with no children -> control Timeline target\n if (consumer.tween && !consumer.props.children) {\n var _consumer$props = consumer.props,\n _position = _consumer$props.position,\n _target = _consumer$props.target,\n stagger = _consumer$props.stagger,\n _vars = _objectWithoutPropertiesLoose(_consumer$props, [\"position\", \"target\", \"stagger\"]); // get target if not nullish\n\n\n var targets = null;\n\n if (_target !== null && typeof _target !== 'undefined') {\n targets = _this2.targets.get(_target);\n } // if no target found -> take all Timeline targets as target\n\n\n var tween = getTweenFunction( // @ts-ignore\n nullishCoalescing(targets, Array.from(_this2.targets.values())), _extends({\n stagger: stagger\n }, _vars));\n\n _this2.timeline.add(tween, nullishCoalescing(_position, '+=0'));\n\n consumer.setGSAP(tween);\n } else {\n var _position2 = consumer.props.position;\n\n _this2.timeline.add(consumer.getGSAP(), nullishCoalescing(_position2, '+=0'));\n }\n }); // props at mount\n\n if (duration) {\n this.timeline.duration(duration);\n }\n\n if (progress) {\n this.timeline.progress(progress);\n }\n\n if (totalProgress) {\n this.timeline.totalProgress(totalProgress);\n }\n\n if (playState) {\n this.setPlayState(playState);\n }\n\n this.context.registerConsumer(this);\n };\n\n _proto.getGSAP = function getGSAP() {\n return this.timeline;\n };\n\n _proto.addTarget = function addTarget(target) {\n if (target !== null) {\n this.targets.set(this.targets.size, target);\n }\n };\n\n _proto.setTarget = function setTarget(key, target) {\n if (target !== null) {\n if (this.targets.has(key)) {\n var targets = this.targets.get(key);\n\n if (Array.isArray(targets)) {\n this.targets.set(key, [].concat(targets, target));\n return;\n }\n }\n\n this.targets.set(key, target);\n }\n };\n\n _proto.setTargets = function setTargets(targets) {\n this.targets = targets;\n };\n\n _proto.getTargets = function getTargets() {\n return this.targets;\n };\n\n _proto.cloneElement = function cloneElement(child) {\n // @ts-ignore\n return React.cloneElement(child, getRefProp(child, this.addTarget));\n };\n\n _proto.renderTarget = function renderTarget(target) {\n var _this3 = this;\n\n if (!target) {\n return null;\n } // if is forwardRef clone and pass targets as ref\n\n\n if (isForwardRef(target)) {\n // @ts-ignore\n return React.cloneElement(target, getTargetRefProp(target, this.setTarget));\n } // else iterate the first level of children and set targets\n\n\n return React.createElement(Fragment, null, React.Children.map(target, function (child) {\n if (isFragment(child)) {\n return React.Children.map(child.props.children, function (fragmentChild) {\n return _this3.cloneElement(fragmentChild);\n });\n }\n\n return _this3.cloneElement(child);\n }));\n };\n\n _proto.render = function render() {\n var _this$props3 = this.props,\n target = _this$props3.target,\n children = _this$props3.children,\n wrapper = _this$props3.wrapper;\n var renderedTarget = this.renderTarget(target);\n var output = React.createElement(Fragment, null, renderedTarget, children);\n\n if (wrapper) {\n output = React.cloneElement(wrapper, [], output);\n }\n\n return this.renderWithProvider(output);\n };\n\n return Timeline;\n}(Provider);\n\nTimeline.displayName = 'Timeline';\nTimeline.contextType = Context;\nvar EntryState;\n\n(function (EntryState) {\n EntryState[EntryState[\"unknown\"] = 0] = \"unknown\";\n EntryState[EntryState[\"entered\"] = 1] = \"entered\";\n EntryState[EntryState[\"exited\"] = 2] = \"exited\";\n})(EntryState || (EntryState = {}));\n\nvar Reveal = /*#__PURE__*/function (_Provider) {\n _inheritsLoose(Reveal, _Provider);\n\n function Reveal() {\n var _this;\n\n _this = _Provider.apply(this, arguments) || this;\n _this.triggerRef = null;\n _this.observer = null;\n\n _this.intersectionObserverCallback = function (entries) {\n var _this$props = _this.props,\n repeat = _this$props.repeat,\n threshold = _this$props.threshold;\n var state = EntryState.unknown;\n\n for (var _iterator = _createForOfIteratorHelperLoose(entries), _step; !(_step = _iterator()).done;) {\n var entry = _step.value;\n\n if (entry.isIntersecting && entry.intersectionRatio >= threshold) {\n _this.timeline.play();\n\n state = EntryState.entered;\n break;\n } else if (!entry.isIntersecting) {\n state = EntryState.exited;\n break;\n }\n }\n\n if (!repeat && state === EntryState.entered) {\n _this.killIntersectionObserver();\n } else if (repeat && state === EntryState.exited) {\n _this.timeline.pause(0);\n }\n };\n\n return _this;\n }\n\n var _proto = Reveal.prototype;\n\n _proto.init = function init() {\n this.createTimeline();\n this.createIntersectionObserver();\n };\n\n _proto.kill = function kill() {\n this.killTimeline();\n this.killIntersectionObserver();\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.init();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.kill();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props2 = this.props,\n children = _this$props2.children,\n trigger = _this$props2.trigger; // if children change create a new timeline\n // TODO: replace easy length check with fast equal check\n // TODO: same for props.target?\n\n if (React.Children.count(prevProps.children) !== React.Children.count(children)) {\n this.init();\n }\n\n if (prevProps.trigger !== trigger) {\n this.init();\n }\n };\n\n _proto.createTimeline = function createTimeline() {\n var _this2 = this;\n\n this.killTimeline(); // init timeline\n\n this.timeline = gsap$2.timeline({\n smoothChildTiming: true,\n paused: true\n }); // add consumers\n\n this.consumers.forEach(function (consumer) {\n var position = consumer.props.position;\n\n _this2.timeline.add(consumer.getGSAP().play(), nullishCoalescing(position, 0));\n });\n };\n\n _proto.killTimeline = function killTimeline() {\n if (this.timeline) {\n this.timeline.kill();\n }\n };\n\n _proto.createIntersectionObserver = function createIntersectionObserver() {\n var _this3 = this;\n\n var _this$props3 = this.props,\n root = _this$props3.root,\n rootMargin = _this$props3.rootMargin,\n threshold = _this$props3.threshold;\n var options = {\n root: root,\n rootMargin: rootMargin,\n threshold: [0, threshold]\n };\n this.observer = new IntersectionObserver(this.intersectionObserverCallback, options); // It would be better if we wouldn't need an extra wrapper.\n // But it can be problematic for example with a fadeInLeft animation\n // were the element is out of the viewport in the initial state.\n // In this case there wouldn't be an intersection..\n\n if (!this.triggerRef) {\n this.consumers.forEach(function (consumer) {\n consumer.getTargets().forEach(function (target) {\n _this3.observer && _this3.observer.observe(target);\n });\n });\n } else {\n this.observer && this.observer.observe(this.triggerRef);\n }\n };\n\n _proto.killIntersectionObserver = function killIntersectionObserver() {\n this.unobserveAll();\n this.observer = null;\n };\n\n _proto.unobserveAll = function unobserveAll() {\n var _this4 = this;\n\n if (this.observer) {\n if (!this.triggerRef) {\n this.consumers.forEach(function (consumer) {\n consumer.getTargets().forEach(function (target) {\n _this4.observer && _this4.observer.unobserve(target);\n });\n });\n } else {\n this.observer && this.observer.unobserve(this.triggerRef);\n }\n }\n };\n\n _proto.getGSAP = function getGSAP() {\n return this.timeline;\n };\n\n _proto.render = function render() {\n var _this5 = this;\n\n var _this$props4 = this.props,\n children = _this$props4.children,\n trigger = _this$props4.trigger;\n var output = trigger ? React.createElement(trigger.type, Object.assign({}, trigger.props, {\n ref: function ref(trigger) {\n return _this5.triggerRef = trigger;\n }\n }), children) : children;\n return this.renderWithProvider(output);\n };\n\n return Reveal;\n}(Provider);\n\nReveal.displayName = 'Reveal';\nReveal.defaultProps = {\n trigger: null,\n repeat: false,\n root: null,\n rootMargin: '0px',\n threshold: 0.66\n};\n\nvar escapeRegExp = function escapeRegExp(regExp) {\n var specialChars = ['$', '^', '*', '(', ')', '+', '[', ']', '{', '}', '\\\\', '|', '.', '?', '/'];\n var regex = new RegExp('(\\\\' + specialChars.join('|\\\\') + ')', 'g');\n return regExp.replace(regex, '\\\\$1');\n};\n\nvar SplitWords = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var children = _ref.children,\n wrapper = _ref.wrapper,\n _ref$delimiter = _ref.delimiter,\n delimiter = _ref$delimiter === void 0 ? ' ' : _ref$delimiter;\n\n if (typeof children !== 'string') {\n throw new Error('SplitWords only accepts a string as child.');\n }\n\n var words = children.split(new RegExp(\"(\" + escapeRegExp(delimiter) + \")\", 'g'));\n return React.createElement(React.Fragment, null, words.map(function (word, i) {\n if (delimiter === ' ' && word === delimiter) {\n return React.createElement(React.Fragment, {\n key: i\n }, \" \");\n }\n\n return React.cloneElement(wrapper, {\n ref: ref,\n key: i\n }, word);\n }));\n});\nvar SplitChars = /*#__PURE__*/React.forwardRef(function (_ref2, ref) {\n var children = _ref2.children,\n wrapper = _ref2.wrapper;\n\n if (typeof children !== 'string') {\n throw new Error('SplitChars only accepts a string as child.');\n }\n\n return React.createElement(React.Fragment, null, children.split(/(?=(?:[\\0-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]))/).map(function (_char, i) {\n // TODO: enhance check for space\n if (_char === ' ') {\n return React.createElement(React.Fragment, {\n key: i\n }, \" \");\n }\n\n return React.cloneElement(wrapper, {\n ref: ref,\n key: i\n }, _char);\n }));\n});\nvar SplitLetters = /*#__PURE__*/React.forwardRef(function (props, ref) {\n console.warn('Deprecation warning: Use SplitChars instead of SplitLetters');\n return React.createElement(SplitChars, Object.assign({}, props, {\n ref: ref\n }));\n});\n\nvar Controls = /*#__PURE__*/function (_Provider) {\n _inheritsLoose(Controls, _Provider);\n\n function Controls() {\n var _this;\n\n _this = _Provider.apply(this, arguments) || this;\n _this.sliderTouched = false;\n _this.state = {\n totalProgress: 0,\n playState: undefined,\n prevPlayState: undefined\n };\n _this.containerStyle = {\n backgroundColor: '#f0f0f0',\n padding: '10px 10px 0 10px',\n marginTop: '10px',\n position: 'relative',\n zIndex: 2,\n fontFamily: 'verdana, sans-serif',\n fontSize: '16px',\n border: '1px solid #ccc'\n };\n _this.buttonContainerStyle = {\n margin: '0',\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'space-between'\n };\n _this.buttonStyle = {\n border: '1px solid #999',\n backgroundColor: '#f0f0f0',\n padding: '5px',\n margin: '10px 10px 10px 0',\n cursor: 'pointer'\n };\n _this.sliderStyle = {\n margin: '0',\n width: '100%'\n };\n _this.playStateStyle = {\n color: '#999',\n margin: '10px 0',\n fontSize: '14px'\n };\n\n _this.onUpdate = function () {\n if (_this.gsap && _this.slider && !_this.sliderTouched) {\n var totalProgress = _this.gsap.getGSAP().totalProgress();\n\n _this.slider.value = totalProgress * 100;\n }\n };\n\n _this.onChange = function (event) {\n if (_this.gsap && _this.gsap.getGSAP()) {\n _this.gsap.getGSAP().totalProgress(event.target.value / 100);\n }\n };\n\n _this.setPlayState = function (state) {\n _this.setState(function (prevState) {\n return {\n playState: state,\n prevPlayState: prevState.playState\n };\n });\n };\n\n _this.getControls = function (_totalProgress, playState) {\n return React.createElement(\"div\", {\n style: _this.containerStyle\n }, React.createElement(\"input\", {\n ref: function ref(el) {\n return _this.slider = el;\n },\n type: \"range\",\n style: _this.sliderStyle,\n step: \"0.001\",\n onChange: function onChange(e) {\n return _this.onChange(e);\n },\n onMouseDown: function onMouseDown() {\n return _this.sliderTouched = true;\n },\n onMouseUp: function onMouseUp() {\n return _this.sliderTouched = false;\n }\n }), React.createElement(\"div\", {\n style: _this.buttonContainerStyle\n }, React.createElement(\"div\", null, React.createElement(\"button\", {\n type: \"button\",\n style: _this.buttonStyle,\n onClick: function onClick() {\n return _this.setPlayState(PlayState.play);\n }\n }, \"Play\"), React.createElement(\"button\", {\n type: \"button\",\n style: _this.buttonStyle,\n onClick: function onClick() {\n return _this.setPlayState(PlayState.reverse);\n }\n }, \"Reverse\"), React.createElement(\"button\", {\n type: \"button\",\n style: _this.buttonStyle,\n onClick: function onClick() {\n return _this.setPlayState(PlayState.pause);\n }\n }, \"Pause\"), React.createElement(\"button\", {\n type: \"button\",\n style: _this.buttonStyle,\n onClick: function onClick() {\n return _this.setPlayState(PlayState.stop);\n }\n }, \"Stop\")), React.createElement(\"span\", {\n style: _this.playStateStyle\n }, playState)));\n };\n\n return _this;\n }\n\n var _proto = Controls.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.consumers.length) {\n this.gsap = this.consumers[0];\n var gsap = this.gsap.getGSAP();\n\n if (gsap) {\n gsap.eventCallback('onUpdate', this.onUpdate);\n\n if (this.props.playState) {\n this.setPlayState(this.props.playState);\n } else {\n // get child initial state\n if (gsap.paused()) {\n this.setPlayState(PlayState.pause);\n } else if (gsap.reversed()) {\n this.setPlayState(PlayState.reverse);\n } else {\n this.setPlayState(PlayState.play);\n }\n }\n\n var totalProgress = gsap.totalProgress();\n this.slider.value = totalProgress * 100;\n }\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.onUpdate();\n };\n\n _proto.render = function render() {\n var children = this.props.children;\n var _this$state = this.state,\n totalProgress = _this$state.totalProgress,\n playState = _this$state.playState,\n prevPlayState = _this$state.prevPlayState;\n\n if (this.gsap) {\n setPlayState(playState, prevPlayState, this.gsap.getGSAP());\n }\n\n return this.renderWithProvider(React.createElement(\"div\", null, children, this.getControls(totalProgress, playState)));\n };\n\n return Controls;\n}(Provider);\n\nexport { Controls, PlayState, Reveal, SplitChars, SplitLetters, SplitWords, Timeline, Tween };","import '../../styles/pages/spring-summer-2021/vanishing-words.scss';\r\nimport React from \"react\";\r\nimport Layout from '../../components/layout';\r\nimport { Helmet } from \"react-helmet\"\r\nimport MoreStories from \"../../components/spring-summer-2021-stories/more-stories\"\r\nimport Modal from 'react-modal';\r\nimport Vimeo from '@u-wave/react-vimeo';\r\nimport Icon from \"../../components/icons\";\r\nimport ReactFullpage from '@fullpage/react-fullpage';\r\nimport GoogleMapReact from 'google-map-react';\r\nimport { Timeline, Tween } from 'react-gsap';\r\nimport { Preloader, Placeholder } from 'react-preloading-screen';\r\nimport { SwishSpinner } from \"react-spinners-kit\";\r\n// import TextPDF from '../../components/spring-summer-2021-stories/text-pdf';\r\nimport { withPrefix } from \"gatsby\"\r\n\r\nimport closeIcon from '../../images/icons/close.svg';\r\nimport socialBanner from \"../../images/spring-summer-2021/social-banners/vanishing-words.jpg\";\r\n\r\nimport timothyHenryRodriguez from '../../images/spring-summer-2021/vanishing-words/timothy-henry-rodriguez.jpg'\r\nimport franzMueller from '../../images/spring-summer-2021/vanishing-words/franz-mueller.jpg'\r\nimport patriciaSchneiderZioga from '../../images/spring-summer-2021/vanishing-words/patricia-schneider-zioga.jpg'\r\nimport kennethVanBik from '../../images/spring-summer-2021/vanishing-words/kenneth-van-bik.jpg'\r\n\r\nimport homeIcon from '../../images/spring-summer-2021/vanishing-words/home-icon.svg'\r\nimport mapMarkerIcon from '../../images/spring-summer-2021/vanishing-words/map-marker-icon.svg'\r\n\r\n\r\nModal.setAppElement('#___gatsby')\r\n\r\nconst pluginWrapper = () => {\r\n require('../../scripts/fullpage.responsiveSlides.min.js');\r\n require('../../scripts/fullpage.scrollHorizontally.min.js');\r\n};\r\n\r\nfunction createMapOptions(maps) {\r\n return {\r\n disableDefaultUI: true,\r\n mapTypeId: 'satellite',\r\n scrollwheel: false\r\n };\r\n}\r\n\r\nexport default class Index extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n modalIsOpen: false,\r\n progress: 0,\r\n playState: 'play',\r\n pauseButtonText: 'Pause Text',\r\n introButtonText: 'Skip Text Intro',\r\n animateClass: '',\r\n headerHide: false,\r\n lat: 35.191262003136245,\r\n lng: -120.79940522868377\r\n };\r\n this.openModal = this.openModal.bind(this);\r\n this.closeModal = this.closeModal.bind(this);\r\n this.pause = this.pause.bind(this);\r\n this.skip = this.skip.bind(this);\r\n this.complete = this.complete.bind(this);\r\n }\r\n\r\n openModal() {\r\n this.setState({modalIsOpen: true});\r\n }\r\n\r\n closeModal() {\r\n this.setState({modalIsOpen: false});\r\n }\r\n\r\n pause() {\r\n if (this.state.playState === 'play') {\r\n this.setState({playState: 'pause'});\r\n this.setState({pauseButtonText: 'Resume Text'});\r\n // this.videoTeaser.current.pause();\r\n } else if (this.state.playState === 'pause') {\r\n this.setState({playState: 'play'});\r\n this.setState({pauseButtonText: 'Pause Text'});\r\n // this.videoTeaser.current.play();\r\n }\r\n }\r\n\r\n skip() {\r\n if (this.state.progress < 1) {\r\n this.setState({progress: 1});\r\n this.setState({introButtonText: 'Replay Text Intro'});\r\n this.setState({animateClass: 'vanish'});\r\n } else {\r\n this.setState({progress: 0});\r\n this.setState({introButtonText: 'Skip Intro'});\r\n }\r\n }\r\n\r\n complete() {\r\n this.setState({progress: 1});\r\n this.setState({introButtonText: 'Replay Text Intro'});\r\n this.setState({animateClass: 'vanish'});\r\n }\r\n\r\n mapTour() {\r\n\r\n this.setState({\r\n lat: -3.0265885212261474,\r\n lng: 121.59700074682264\r\n })\r\n\r\n setTimeout(function() {\r\n this.setState({\r\n lat: -2.875450877029716,\r\n lng: 23.52375977874027\r\n })\r\n }.bind(this), 2500)\r\n\r\n setTimeout(function() {\r\n this.setState({\r\n lat: -13.676225752583022,\r\n lng: -172.45263440207827\r\n })\r\n }.bind(this), 4500)\r\n\r\n setTimeout(function() {\r\n this.setState({\r\n lat: 21.4077410211248,\r\n\r\n lng: 95.91384374149068\r\n })\r\n }.bind(this), 6500)\r\n\r\n setTimeout(function() {\r\n this.setState({\r\n lat: 35.191262003136245,\r\n lng: -120.79940522868377\r\n })\r\n }.bind(this), 7500)\r\n\r\n\r\n }\r\n\r\n\r\n render() {\r\n var pageTitle = 'Vanishing Words';\r\n var pageDesc = 'Preserving Languages Near Extinction';\r\n var slug = 'vanishing-words';\r\n\r\n\r\n return (\r\n \r\n \r\n {pageTitle}\r\n \r\n\r\n \r\n\r\n {/* Schema.org markup for Google+ */}\r\n \r\n \r\n \r\n\r\n {/* Twitter Card data */}\r\n \r\n \r\n \r\n\r\n {/* Open Graph data */}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n {\r\n\r\n if (direction === 'down') {\r\n this.setState({headerHide: true});\r\n } else {\r\n this.setState({headerHide: false});\r\n }\r\n\r\n }}\r\n afterLoad ={(origin, destination, direction) => {\r\n\r\n if(destination.anchor === 'map') {\r\n this.mapTour();\r\n }\r\n\r\n }}\r\n render={({ state, fullpageApi }) => {\r\n return (\r\n \r\n
    \r\n\r\n \r\n \r\n Download text alternative PDF\r\n \r\n\r\n \r\n
    \r\n

    “Every language, endangered or otherwise, is an independent reflection of how a particular group of people has conceptualized the world and the human condition over the course of its history.”

    \r\n - Kenneth Van Bik, CSUF assistant professor of linguistics\r\n
    \r\n
    \r\n }\r\n >\r\n \r\n \r\n \r\n\r\n \r\n

    Colonization and the passing of generations are threatening the disappearance of global languages.

    \r\n \r\n }\r\n >\r\n \r\n \r\n \r\n\r\n \r\n

    With more than half of the world’s 6,500 languages headed toward extinction, Cal State Fullerton linguistics researchers are working to document them before they are forever lost.

    \r\n \r\n }\r\n >\r\n \r\n \r\n \r\n\r\n \r\n

    VanishingWords

    \r\n Preserving Languages Near Extinction\r\n Story by Lynn Juliano, Video by Matt Gush\r\n
    \r\n \r\n \r\n
    \r\n \r\n }\r\n >\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n

    Research Around the World

    \r\n

    From Africa and Asia to Oceania and North America, Cal State Fullerton linguistics faculty members are working to document and preserve several of the world’s endangered languages.

    \r\n

    Use your mouse to move the map and explore different regions.

    \r\n
    \r\n
    \r\n \r\n \r\n 1\r\n \r\n
    \r\n \r\n 2\r\n \r\n
    \r\n \r\n 3\r\n \r\n \r\n \r\n 4\r\n \r\n \r\n \r\n 5\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n

    Support the College of Humanities and Social Sciences
    campaign.fullerton.edu/hss

    \r\n
    \r\n \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
    • \r\n
    • \r\n
    • \r\n
    • \r\n
    • \r\n
    • \r\n
    \r\n
    \r\n \r\n \"Timothy\r\n

    Timothy Henry-Rodriguez

    \r\n Lecturer in linguistics\r\n
    \r\n\r\n

    \r\n Languages studied: Purisimeño, Ventureño (Chumashan languages)
    \r\n Region: U.S., Central Coast of California
    \r\n Status of language: Extinct
    \r\n Funding source: National Endowment for the Humanities\r\n

    \r\n\r\n

    What does your research entail? My current research project aims to produce a grammatical description and a lexicon of the Purisimeño language. A lexicon is similar to a dictionary, but it typically includes fewer entries and less analysis because there is less data to work with. My methodology involves reading and analyzing the Purisimeño linguistic notes of John Peabody Harrington and other scholars who recorded the language in the late 19th and early 20th centuries.

    \r\n\r\n

    How did the languages become endangered? Purisimeño and other Chumashan languages became endangered during the period of Spanish missionization in the late 18th and early 19th centuries. Missionization included forced relocations, conversion to Catholicism, and stigmatization of their languages and cultures. Disease also reduced Indigenous population numbers.

    \r\n\r\n

    Why is it important to study such languages? For a language to move out of an endangered or more severe status, it needs to gain more native speakers than it loses. It will be difficult for Purisimeño to move out of its current status given the relatively small amount of data on the language, but certainly some fluency in the language could be gained if one had access to a grammar and a lexicon.

    \r\n\r\n

    One interesting fact about the languages: Purisimeño and other Chumashan languages are quite different from many of the largest modern languages. The languages have an extensive number of consonants, including a type of consonant known as an ejective. This is written with an apostrophe over a consonant symbol: p̓, t̓, k̓, q̓, s̓, š̓, ts̓, tš̓. The languages also prefer to put the verb at the beginning of a sentence, which differs from many languages in Europe and Asia that put the verb in the middle of the sentence (English, French, German, Mandarin) or at the end of the sentence (Korean, Mongolian, Japanese).

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
    • \r\n
    • \r\n
    • \r\n
    • \r\n
    • \r\n
    • \r\n
    \r\n
    \r\n \r\n \"Franz\r\n

    Franz Mueller

    \r\n Professor of linguistics\r\n
    \r\n\r\n

    \r\n Languages studied: Sundanese
    \r\n Region: Indonesia
    \r\n Status of language: Diminishing
    \r\n Funding source: Intramural grants\r\n\r\n

    \r\n\r\n

    What does your research entail? I work with native speakers of the languages with the goal of describing and documenting their languages.

    \r\n\r\n

    How did the language become endangered? Sundanese is suffering what I call “functional attrition,” which means that it is used in fewer and fewer areas of life as speakers move to the national language, Indonesian.

    \r\n\r\n

    Why is it important to study such languages? Each language — in its vocabulary, its grammar and in its unique conventions of using language — represents a unique creation and a unique way of understanding the world. If a language dies before it has been properly documented, this understanding is irretrievably lost.

    \r\n\r\n

    One interesting fact about the language: Sundanese used to be more widely spoken throughout the western half of the island of Java, but it was gradually replaced in the central areas of the island by the Javanese language of east and central Java, as well as by the growth of the Malay-speaking area of Jakarta, the capital city of Indonesia.

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
    • \r\n
    • \r\n
    • \r\n
    • \r\n
    • \r\n
    • \r\n
    \r\n
    \r\n \r\n \"Patricia\r\n

    Patricia Schneider-Zioga

    \r\n Associate professor of linguistics\r\n
    \r\n\r\n

    \r\n Languages studied: Kinande (Bantu language)
    \r\n Region: Democratic Republic of the Congo
    \r\n Status of language: Diminishing
    \r\n Funding source: College of Humanities and Social Sciences research and writing stipends\r\n

    \r\n\r\n

    What does your research entail? I am working with Philip Ngessimo Mutaka — native speaker, linguist and visiting scholar from the University of Yaounde 1 in Cameroon — to write a grammar of Kinande, which belongs to the Bantu family of languages. Mutaka is documenting the sound system and socio-linguistic aspects of the language, and I am documenting the syntax and morphology (word structure) of the language. We plan to make our grammar available to all readers through open access.

    \r\n\r\n

    How did the language become endangered? Kinande is a regional language in a post-colonial rule. Since the DRC was colonized by Belgium, school children are taught almost exclusively in French. This puts them at a major educational disadvantage from the beginning of their school career as they do not natively speak the language of the educational system. Kinande is spoken by about one million people, but will almost certainly become endangered because it has no official writing system and is not taught in schools in the DRC.

    \r\n\r\n

    Why is it important to study such languages? The cultural and cognitive knowledge contained in Kinande is important to document as it is a rich and valuable system of knowledge, and contributes to our understanding of how language works in the human mind. It also can be used to develop educational materials related to Kinande and adds to our appreciation of the culture of the Nande people.

    \r\n\r\n

    \r\n One interesting fact about the language: Kinande has the longest word of any Bantu language as far as we know (it’s a sentence in English, but a single word in Kinande):
    \r\n tunémundisyátásyayabakinguliranisiákyô
    \r\n “We will make it possible one more time for them to open it for each other.”\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
    • \r\n
    • \r\n
    • \r\n
    • \r\n
    • \r\n
    • \r\n
    \r\n
    \r\n \r\n \"Franz\r\n

    Franz Mueller

    \r\n Professor of linguistics\r\n
    \r\n\r\n

    \r\n Languages studied: Samoan
    \r\n Region: Oceania
    \r\n Status of language: Diminishing
    \r\n Funding source: Intramural grants\r\n\r\n

    \r\n\r\n

    What does your research entail? I work with native speakers of the languages with the goal of describing and documenting their languages.

    \r\n\r\n

    How did the language become endangered? Samoan is still healthy in Samoa itself but has been increasingly displaced by English, especially in American Samoa.

    \r\n\r\n

    Why is it important to study such languages? Each language — in its vocabulary, its grammar and in its unique conventions of using language — represents a unique creation and a unique way of understanding the world. If a language dies before it has been properly documented, this understanding is irretrievably lost.

    \r\n\r\n

    One interesting fact about the language: There is a sizable Samoan community in Orange County, around Garden Grove.

    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
    • \r\n
    • \r\n
    • \r\n
    • \r\n
    • \r\n
    • \r\n
    \r\n
    \r\n \r\n \"Kenneth\r\n

    Kenneth Van Bik

    \r\n Assistant professor of linguistics\r\n
    \r\n\r\n

    \r\n Languages studied: Lamtuk-Ruavan, Mkang, Tapong, Taungtha
    \r\n Region: Chin State, Myanmar (Burma)
    \r\n Status of language: Endangered
    \r\n Funding source: National Science Foundation\r\n\r\n

    \r\n\r\n

    What does your research entail? Traveling to the research sites in Chin State, Myanmar; working with members of language communities to document the languages; presenting the research findings in conferences; and writing peer-reviewed articles based on the research findings.

    \r\n\r\n

    How/why did the languages become endangered? First, their population dwindled due to migration. And, most significantly, they face the social and political pressure from the local and national dominant languages.

    \r\n\r\n

    Why is it important to study such languages? Every language, endangered or otherwise, is an independent reflection of how a particular group of people has conceptualized the world and the human condition over the course of its history. The study and documentation of such unique knowledge encoded in their languages is a very important mission of linguistic research.

    \r\n\r\n

    One interesting fact about the languages: The speakers of these languages are multilingual speakers. For example, a Lamtuk speaker is conversational in Sakta (a neighboring Lai dialect), Hakha Lai (the dominant local language) and Burmese (the national language of Myanmar).

    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n );\r\n }}\r\n />\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n
    \r\n \r\n \r\n Loading\r\n \r\n
    \r\n\t\t\t\t
    \r\n\t\t\t\r\n\r\n \r\n );\r\n }\r\n}","module.exports = \"data:image/jpeg;base64,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\"","'use strict';\n\nvar has = Object.prototype.hasOwnProperty,\n prefix = '~';\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\n\nfunction Events() {} //\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\n\n\nif (Object.create) {\n Events.prototype = Object.create(null); //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n\n if (!new Events().__proto__) prefix = false;\n}\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\n\n\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\n\n\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once),\n evt = prefix ? prefix + event : event;\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);else emitter._events[evt] = [emitter._events[evt], listener];\n return emitter;\n}\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\n\n\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();else delete emitter._events[evt];\n}\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\n\n\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\n\n\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = [],\n events,\n name;\n if (this._eventsCount === 0) return names;\n\n for (name in events = this._events) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\n\n\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event,\n handlers = this._events[evt];\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\n\n\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event,\n listeners = this._events[evt];\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\n\n\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n if (!this._events[evt]) return false;\n var listeners = this._events[evt],\n len = arguments.length,\n args,\n i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1:\n return listeners.fn.call(listeners.context), true;\n\n case 2:\n return listeners.fn.call(listeners.context, a1), true;\n\n case 3:\n return listeners.fn.call(listeners.context, a1, a2), true;\n\n case 4:\n return listeners.fn.call(listeners.context, a1, a2, a3), true;\n\n case 5:\n return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n\n case 6:\n return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len - 1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length,\n j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1:\n listeners[i].fn.call(listeners[i].context);\n break;\n\n case 2:\n listeners[i].fn.call(listeners[i].context, a1);\n break;\n\n case 3:\n listeners[i].fn.call(listeners[i].context, a1, a2);\n break;\n\n case 4:\n listeners[i].fn.call(listeners[i].context, a1, a2, a3);\n break;\n\n default:\n if (!args) for (j = 1, args = new Array(len - 1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\n\n\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\n\n\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\n\n\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n if (!this._events[evt]) return this;\n\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (listeners.fn === fn && (!once || listeners.once) && (!context || listeners.context === context)) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (listeners[i].fn !== fn || once && !listeners[i].once || context && listeners[i].context !== context) {\n events.push(listeners[i]);\n }\n } //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n\n\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;else clearEvent(this, evt);\n }\n\n return this;\n};\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\n\n\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n}; //\n// Alias methods names because people roll like that.\n//\n\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on; //\n// Expose the prefix.\n//\n\nEventEmitter.prefixed = prefix; //\n// Allow `EventEmitter` to be imported as module namespace.\n//\n\nEventEmitter.EventEmitter = EventEmitter; //\n// Expose the module.\n//\n\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","'use strict';\n\nmodule.exports = Point;\n/**\n * A standalone point geometry with useful accessor, comparison, and\n * modification methods.\n *\n * @class Point\n * @param {Number} x the x-coordinate. this could be longitude or screen\n * pixels, or any other sort of unit.\n * @param {Number} y the y-coordinate. this could be latitude or screen\n * pixels, or any other sort of unit.\n * @example\n * var point = new Point(-77, 38);\n */\n\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n}\n\nPoint.prototype = {\n /**\n * Clone this point, returning a new point that can be modified\n * without affecting the old one.\n * @return {Point} the clone\n */\n clone: function clone() {\n return new Point(this.x, this.y);\n },\n\n /**\n * Add this point's x & y coordinates to another point,\n * yielding a new point.\n * @param {Point} p the other point\n * @return {Point} output point\n */\n add: function add(p) {\n return this.clone()._add(p);\n },\n\n /**\n * Subtract this point's x & y coordinates to from point,\n * yielding a new point.\n * @param {Point} p the other point\n * @return {Point} output point\n */\n sub: function sub(p) {\n return this.clone()._sub(p);\n },\n\n /**\n * Multiply this point's x & y coordinates by point,\n * yielding a new point.\n * @param {Point} p the other point\n * @return {Point} output point\n */\n multByPoint: function multByPoint(p) {\n return this.clone()._multByPoint(p);\n },\n\n /**\n * Divide this point's x & y coordinates by point,\n * yielding a new point.\n * @param {Point} p the other point\n * @return {Point} output point\n */\n divByPoint: function divByPoint(p) {\n return this.clone()._divByPoint(p);\n },\n\n /**\n * Multiply this point's x & y coordinates by a factor,\n * yielding a new point.\n * @param {Point} k factor\n * @return {Point} output point\n */\n mult: function mult(k) {\n return this.clone()._mult(k);\n },\n\n /**\n * Divide this point's x & y coordinates by a factor,\n * yielding a new point.\n * @param {Point} k factor\n * @return {Point} output point\n */\n div: function div(k) {\n return this.clone()._div(k);\n },\n\n /**\n * Rotate this point around the 0, 0 origin by an angle a,\n * given in radians\n * @param {Number} a angle to rotate around, in radians\n * @return {Point} output point\n */\n rotate: function rotate(a) {\n return this.clone()._rotate(a);\n },\n\n /**\n * Rotate this point around p point by an angle a,\n * given in radians\n * @param {Number} a angle to rotate around, in radians\n * @param {Point} p Point to rotate around\n * @return {Point} output point\n */\n rotateAround: function rotateAround(a, p) {\n return this.clone()._rotateAround(a, p);\n },\n\n /**\n * Multiply this point by a 4x1 transformation matrix\n * @param {Array} m transformation matrix\n * @return {Point} output point\n */\n matMult: function matMult(m) {\n return this.clone()._matMult(m);\n },\n\n /**\n * Calculate this point but as a unit vector from 0, 0, meaning\n * that the distance from the resulting point to the 0, 0\n * coordinate will be equal to 1 and the angle from the resulting\n * point to the 0, 0 coordinate will be the same as before.\n * @return {Point} unit vector point\n */\n unit: function unit() {\n return this.clone()._unit();\n },\n\n /**\n * Compute a perpendicular point, where the new y coordinate\n * is the old x coordinate and the new x coordinate is the old y\n * coordinate multiplied by -1\n * @return {Point} perpendicular point\n */\n perp: function perp() {\n return this.clone()._perp();\n },\n\n /**\n * Return a version of this point with the x & y coordinates\n * rounded to integers.\n * @return {Point} rounded point\n */\n round: function round() {\n return this.clone()._round();\n },\n\n /**\n * Return the magitude of this point: this is the Euclidean\n * distance from the 0, 0 coordinate to this point's x and y\n * coordinates.\n * @return {Number} magnitude\n */\n mag: function mag() {\n return Math.sqrt(this.x * this.x + this.y * this.y);\n },\n\n /**\n * Judge whether this point is equal to another point, returning\n * true or false.\n * @param {Point} other the other point\n * @return {boolean} whether the points are equal\n */\n equals: function equals(other) {\n return this.x === other.x && this.y === other.y;\n },\n\n /**\n * Calculate the distance from this point to another point\n * @param {Point} p the other point\n * @return {Number} distance\n */\n dist: function dist(p) {\n return Math.sqrt(this.distSqr(p));\n },\n\n /**\n * Calculate the distance from this point to another point,\n * without the square root step. Useful if you're comparing\n * relative distances.\n * @param {Point} p the other point\n * @return {Number} distance\n */\n distSqr: function distSqr(p) {\n var dx = p.x - this.x,\n dy = p.y - this.y;\n return dx * dx + dy * dy;\n },\n\n /**\n * Get the angle from the 0, 0 coordinate to this point, in radians\n * coordinates.\n * @return {Number} angle\n */\n angle: function angle() {\n return Math.atan2(this.y, this.x);\n },\n\n /**\n * Get the angle from this point to another point, in radians\n * @param {Point} b the other point\n * @return {Number} angle\n */\n angleTo: function angleTo(b) {\n return Math.atan2(this.y - b.y, this.x - b.x);\n },\n\n /**\n * Get the angle between this point and another point, in radians\n * @param {Point} b the other point\n * @return {Number} angle\n */\n angleWith: function angleWith(b) {\n return this.angleWithSep(b.x, b.y);\n },\n\n /*\n * Find the angle of the two vectors, solving the formula for\n * the cross product a x b = |a||b|sin(θ) for θ.\n * @param {Number} x the x-coordinate\n * @param {Number} y the y-coordinate\n * @return {Number} the angle in radians\n */\n angleWithSep: function angleWithSep(x, y) {\n return Math.atan2(this.x * y - this.y * x, this.x * x + this.y * y);\n },\n _matMult: function _matMult(m) {\n var x = m[0] * this.x + m[1] * this.y,\n y = m[2] * this.x + m[3] * this.y;\n this.x = x;\n this.y = y;\n return this;\n },\n _add: function _add(p) {\n this.x += p.x;\n this.y += p.y;\n return this;\n },\n _sub: function _sub(p) {\n this.x -= p.x;\n this.y -= p.y;\n return this;\n },\n _mult: function _mult(k) {\n this.x *= k;\n this.y *= k;\n return this;\n },\n _div: function _div(k) {\n this.x /= k;\n this.y /= k;\n return this;\n },\n _multByPoint: function _multByPoint(p) {\n this.x *= p.x;\n this.y *= p.y;\n return this;\n },\n _divByPoint: function _divByPoint(p) {\n this.x /= p.x;\n this.y /= p.y;\n return this;\n },\n _unit: function _unit() {\n this._div(this.mag());\n\n return this;\n },\n _perp: function _perp() {\n var y = this.y;\n this.y = this.x;\n this.x = -y;\n return this;\n },\n _rotate: function _rotate(angle) {\n var cos = Math.cos(angle),\n sin = Math.sin(angle),\n x = cos * this.x - sin * this.y,\n y = sin * this.x + cos * this.y;\n this.x = x;\n this.y = y;\n return this;\n },\n _rotateAround: function _rotateAround(angle, p) {\n var cos = Math.cos(angle),\n sin = Math.sin(angle),\n x = p.x + cos * (this.x - p.x) - sin * (this.y - p.y),\n y = p.y + sin * (this.x - p.x) + cos * (this.y - p.y);\n this.x = x;\n this.y = y;\n return this;\n },\n _round: function _round() {\n this.x = Math.round(this.x);\n this.y = Math.round(this.y);\n return this;\n }\n};\n/**\n * Construct a point from an array if necessary, otherwise if the input\n * is already a Point, or an unknown type, return it unchanged\n * @param {Array|Point|*} a any kind of input value\n * @return {Point} constructed point, or passed-through value.\n * @example\n * // this\n * var point = Point.convert([0, 1]);\n * // is equivalent to\n * var point = new Point(0, 1);\n */\n\nPoint.convert = function (a) {\n if (a instanceof Point) {\n return a;\n }\n\n if (Array.isArray(a)) {\n return new Point(a[0], a[1]);\n }\n\n return a;\n};","module.exports = \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBAUEBAYFBQUGBgYHCQ4JCQgICRINDQoOFRIWFhUSFBQXGiEcFxgfGRQUHScdHyIjJSUlFhwpLCgkKyEkJST/2wBDAQYGBgkICREJCREkGBQYJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCT/wgARCACWAJYDAREAAhEBAxEB/8QAHAAAAQUBAQEAAAAAAAAAAAAABgMEBQcIAgEA/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAAA1Iejc7FDw5G4JkoTAoeC4icnIkcEmejUUFDkq8oYYEuEpdYUDkRODgSPCWPBodCBX5mwZHBLngWGmCUGp4cCR4TR4NjkizIoxJAPiWBEr0v4uIanJ4eDgmTw5EyliiBuWgFw4I0q0hTZg4PBMSOSfOBMZGTwWHxZQUiozBUoE2MHpweCYiEwmcAkY3GARhmFRIA2NSgzQRoc8OBI4Cc4IQoIpYZh8eEoKksKlVHRsQWExAVCwbEEZDBMVLvJUhgiEyTKJBg2AFwmNxEJiPBMyiQh0Xicnw+ExYqYizWATiIkIhOR5CmeykBgaPI4nCWBMLDNROGxSaG43EQqGAwM+lMAsW+WcRw4HoLGdw4NfBINxqIhMR5GlQlMAWNDQQakgDZRIIloF+FljUZiYREYDxVhUADD4vEJCQI0oMES+y6gtPhmcEyQgIFGlTiRJF5h8KAAZxOAjNFlpEoMzgkgSMrACcHQWF0BMSRmEDz4+DIJAuLVCkHSGMnESfHZpMniQBszYMj4+CQfkgMjWgJjkyCNj4UNBhIEBXZno5Pj4myaOSSCsnQ0MhiR8fBAXmPCsCrz4+PiVJQVFxuf/8QAPhAAAQIEAwUFBQcEAAcAAAAAAgEDAAQFERIhMRMiQVFhBhAUMnEgI0JSgRUkM1NikbFyocHhB0NjgpLR8P/aAAgBAQABPwHuLJ1PY+sPTDbAK46YgCakWSQ52op2PALt+vCJWpsTWQOJfW3SNqnzJCL1hdIKL914NctYVd1NYTuP8UfY7S9s26UZScogPTQ+cl8jX/tYn6xPVZzaTUwbifq8qfSBfaDLEa+iZRL1WYlcKtOLZNIle1881YvOPEVih1lmqS+0bXP4h4jC8IOL914PSL5JCdzvnCDLBnHix/Lcjtb2o+zJTYSt0nX8gv8AAnEoT3irnu6qvzQ49nhAcVv2gTmTK2FLcoZl3fLZc9UhQFl5wd5L8YoFSOmTYugqEOhpzSGHheBswVCArKiw533goXh3upchgwE1viWJwmZOWdmXXcLbYqSxUZ5yqzjs295nV0+UOUOfl6c/SJCmrM7y3wcBiWpjbegJCSycESKlRriRDkvBUhHDl3sJbpJHYmsbX7mS74b4p84/6h96+6C/WMbnzp+0Y3P0Rtj5DCGpajaL5+wS2SO39TwyoSIrm6tz9Ib3jLkGa+sAm3eUeHGJAMKIloahOMTKXSK7T7tk8HnHNIolUKWm2JporE0SLEu82+w26FsBihJFx5JG5ySNzlFg6wq8svYeLRI7V1LxNVeNFxIC4Bg1SUkc9fMXrFHD3N11XNYkkyhkV6QiZrzh5IqQe5XlEk/hm3Av1jsVO+JoyNKtyZW30X2F9hVtFfnxkadMzN8OBtbesC4r0wpnomcVV8iBtsbkpLnFNmti1m08S8hGGq5s8vAvpyQsrxJVhHMjYdZJdEOJ+qMSAntt26ZJzhKrNzJbrLDYLohqql+0VGYnmwNpyUBxVyRRPDBSzknO3dumqWj/AIeVLZzmwUt14bfWNefffuXuny90WuuqR28nCBtmTF3Hj3yT+I/DDDlddYY+9VHB0sPrBMTDNlasmnraJSmTJz23W6s4sSiV8XpeHgN37ouLBMKjZIK8L6+sTNGZkKhLbHak2oknvTUsJcNYCmvzOfiSBUummecFSHsamL2FLWVBTdjtTLeGACTNVNEX6RQ54pWfAw1AsdoZceeAXAUCA0xCsWmP0wvif0R945BCX42VYKDO0VF77s4uSWzitT/j59x3EqpoidImfdGiqv1ikhgnJNed/wB1iVJnDncU9IU2rWFTJOiQw0M1OC7hWweReH+4n5cHUEsKqoWUeixLzYKWyeBQc5Q+4ot4AZJOpR2vBVflWuGd/S+sUwCWfTFfmsdl3T+zGmzztfD6coxwpwhYjjjBlBlFeJfsqZQfMY4Uicl/DTeAr2uipFf91M7Jdb8P4inzaNT0oB2wqSD6LDRizraDfKYXjg/mAWYaw4MCoOnONrOvoiXEET6wbal+Lcl+aAmzH3Tn0XnHah5Cq7Yf9FL/ALqsUY7z2FU+aOzrWGlsmvX+e5YDzLC+ZYcgoqDYvSzg2vlHaqngNlO9jVc010ukTZvOGpuqikmarzjGauArare6En9USuCeaZmM9m8N/rxifanJXflXdxFzHjbp1iRlDnWNq1UiVeILYV1tpH2YeYO1QhQCwqt0TK2sPMOvzgNMTj+xDN12/ny8o9OsJLICCiIidYrFRSerT0yHkxYR/pTJIo5qlQE8rLreKLu0tgMt1LRwgoDjCrclvzhxYKJj8M/SO1b22bRn40X/AMYng+7iGWV4w7ItY7H1JLuUhxbF52Oq8Ug7PJi55KnWEpoqWIESPstMCbqJzXW/7wwwLGX1jtZWkp1LNBL7xM3BtOQ8Sg1FXt3TK0U9dnMiReRIobl5Ju2eWcLBwi5L3OFBlEwe4UVaSRyWJEsI+czWJgBJ0nLboZCkTQYDHW+sS6unMgQEQmipYh4RT6k4QNm9niRMS9YZdAt66Q480je6SXiYmVMsLX1WO2F/tXPP3QwxvTA6JdYkpPGIO+Yb4Sjs065LB4R7/l+U/nHgvccfD3OLrDhxMzGUVOZHZFtXLgmaN/N6xUZnAG7hW28qQ4/iQkuqqWqlFM/F9YpICrYiuijErKCZEBIuWnpD0ow02pI3deF4Fq2zHPPOO1MyL9adw7wtbnSAPCeLreOzbrM5IuAGaiWNYaljaEcOoaL/APcIlzUw3kssHHw9zhRMO5LD6keiLFdqrEo643tRfdT4Bzt6rCzRqqrlnmvWMjLLThEgFnhNdE49YpW7KSznPWA3FxcFhz324l8+MdpqwlKBxW/xMOBv1hVUluuar3SFZdp0uTTLEqpqSEjxhdweiLyij9uwek2TnpYkNRzJjp0imVSUqQXlHhPmC5En0hzjC6dzyxNTrQLZN9ekdo6lMuVCbvMP22iiI41sKQXci2iQlXhxIqAuNLDf41iURpiQbllLNsUHreGX18MBctYR5EUrrkKXjtNPFO1E73si5ewzNAzTWNqiqmJRy4JeG5kpktu0ezH8wMlNf8J/eB7dzlJs1MvDMWT8IkutuGeoxRu0knXATZobLnyOJbH/AE8+6fn3ZhcPlb+VOMWxRUnlfnXyX8wv5701iTkZUBHAy2OXKBYFVxKKLbS+v7wyyUyaS7a4VL4iG4p1XkkVF3wsq5YzcVdxbhg/mJt0npl1w9VJfYk50pWXEkZQsBarzX/MU5Xp+obZvCxhsRqmQYU1UobPwKuKKjOy8yV8ZZY1TVP9RJVWe8QHhiRtWBVUJvXAnryilVFuqSYTIZLo4PyFATIvBdOMDD2bh/1L3gWAkLlnFPqDbrIOiWJCzhud6RS6u1JuuK+0dnLJcUv/AGjtfVNx98PKpbiL/aNfYkTAQLaN7QLpiS9sunWKkn2YH2W0h4LobhkNlfXh/wBqf7iSeFwsLhkMu5+IHzrwTpfS8UyYZ++zk3LkrrdmsLe7YS3P3SOztTcpBPeEmPEgfwB5h9RXSJGZ2bqBmqHnDLmJF6QfnL19ik1Q6c9pjaLzB/lIaW1uucJa/GO17ioDbfBSv7NPUdtYxxAm8qc7QxWXS2jU22E2yaqSg58K/pX4YmGJeVlkmExug8nuBP4eeLnFPykp0FVbqwpfVCRYOaWXdxBdD0v0j//EACYQAQACAgICAgICAwEAAAAAAAEAESExQVFhcRCBkcEgsaHR8OH/2gAIAQEAAT8Qz8JB4itnv4WXG10gA9sPk4nmJZaSE/au4m5LxeYrnKNp7IsffwV7i+4pJdn5fLFf+3HZ7+Fg+1rM8DX4YnAGy9ek4Poh2V5t/wAo4ga+dPIdepcacdoSDaIwuEj/AMiYh7+C/Bf5xofj4Mwb/tkIKLp0bfUeQPof3AtzFAH/AG0Szm+5VUtqu8w39WIUynhR/qW9YF3H3Hpa1vrzLcpBvPKe4G2Ix4PcWL8FNB4+FitNFqy1i6K1L0RNOA0e9TAPXOpoxhRdb8RGSstWMdsBr2K3G5E1WCFjfmGt9rZizuZf18cv3GLTptxfonlvZnmX0n7j2X2xSvDRuA/A+Fl3uD5o4+YI8WIVx+B4EUtuxfwbPtgHYhf1KmH8Sg4YY7nDKcUdHdRlFQ8mcjDr0R4TX1O/8Ue0kct2CL3g+GLGxbf6h3Sv0R07bR5WSC7TWeyKit0ShqDXNqt9QUeYbacrPqVpQup4Gv6Yf3T6CnMw6ixy4xhut9x+ZinsUTOtaziHSjQdHH5mBoYD24xyoDkJr6hhMK9Or+4BPBdS7n3TQxyCKkCgUa5MkyabSg2N6bqB+r/1PNsYlG+YsZuOKRALCHLTTF7s31oBaMuq6zro6jSOQbetp+INkoFWuwDvzHHawIDRtVW7qCNZupSDl0rcXrhaEC2PJySwV2rNuV3p8kHhdoKowp35gZ348C4meOB0NsEmMAZExGarhRb190VAVS1MEVfBoY0rPgiMXQ7LSPOA57Z8SpDLd+zn0RxDYw3/AMsx5Gxw/NSrtbRi+l/SXPpSaT0ytB4uCJ2PXuO0qUIBXe4fLSelZQ+UUIciZA+paCp2aDmHxnjiDeiL+IEqisKpTewtIAKE0nqzzV6hocfq2n4JAAotOeg+swjLD9TpLx/3UFBHoNlPcQziocuILl0VCJpIIJaGHRP6Y41CoXkWTRdf9gn0EfcKRxZehj0R/Fw57voYLScWhyCEtQbp4z4YvQqhlLGvuUoIW9JTBOxudMW4K8jw84hg6BqFbiF7gdDHF7txmLmIFNcQeTleiN1dq2X/AOR0O9gC6mx1cLXcIJg+GsMfhWfX9xU7W+NRHdbK+pzcNa0DRfKsG4Zc+VcS1DkNPHH6SDru3Lw3+4JgZb9EiMp6f07qVJd4cjwGhUrqUbLtqVHw5WUuTdyPABHzSh81zDdtr5VyfW44pW8v4vLLAWrEmdFq2cGPo4mBUxR7T/b5hEaVoO1YzU7CWUDCJzx4Gm04blECOYStci8EsVjXGePcNa3WX2xlkAWtEwzn0Ysbyf3GD3hVpDOd1hliR4l0/KQfjVCwxt4zGbj2aEa7VLWq4Ly5WIskvKU4rqVt3T6rmA7f5BFhl5Ci9H1K3HyqX5tl0Mnr3DNhjvY3X3FJ5QfYYylYZsE/sbPuO2viyghZ5XUMuGyceyPD6i0fcGbsygiPt7iwWPexCdHxwnkLhHou05f68RKG5adXohNcV+C0PQvMS5hw6TDBYGfMLUMmVijmowpf1ltjl1Cq7V+MJ1as7GFyRHqeMqecDNcmTzYuOgO+SPGDFzW47TNk1/MJ3CsQOAItHAfF29xRYr0Umjq84uV8Qg2AHJuxloGWFuu5saalsrVL1x/C61tsjkLcOZBaDkQLsKjJhdwx0zLfgzs5yscuOLA7fCDEZasdvteZrHXJEmu0+1/Oq85JQCVrnD9VUsQHBtXhuaePrj7ROi0iiZrLojkbKnolbF8hozx/AZy1MYspOhw1LNocMtzOO8Zg1maeUbVFHOUXpIcSk0xVq9qfaSvpwLwhZACRfCMSt2o/n5UctYB8MrLgCZpdj5HEHi99xggix4Ld2ycwG0ugKWwLEVSuV/gN35Z4eLXAdLjuXQXc7Fey1TSxo1EkAi3UzR4RigFwovVUVSTRcSHy8N17eSqevrsYqw1Uv1Hfsf3/AAvalV/0UwcNpgveSMJNpyya+j+JfxU/KpkguoW2nleseJxRw5gtq4RorDtqFaz12UuMGcNFJZyfkJ//xAAUEQEAAAAAAAAAAAAAAAAAAACA/9oACAECAQE/ADT/AP/EABQRAQAAAAAAAAAAAAAAAAAAAID/2gAIAQMBAT8ANP8A/9k=\""],"sourceRoot":""}