{"version":3,"sources":["webpack:///./node_modules/@mapbox/point-geometry/index.js","webpack:///./node_modules/autobind-decorator/lib/index.js","webpack:///./node_modules/babel-runtime/core-js/get-iterator.js","webpack:///./node_modules/babel-runtime/core-js/object/create.js","webpack:///./node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js","webpack:///./node_modules/babel-runtime/core-js/object/get-prototype-of.js","webpack:///./node_modules/babel-runtime/core-js/object/set-prototype-of.js","webpack:///./node_modules/babel-runtime/core-js/promise.js","webpack:///./node_modules/babel-runtime/core-js/set.js","webpack:///./node_modules/babel-runtime/helpers/defineProperty.js","webpack:///./node_modules/babel-runtime/helpers/extends.js","webpack:///./node_modules/babel-runtime/helpers/inherits.js","webpack:///./node_modules/babel-runtime/helpers/possibleConstructorReturn.js","webpack:///./node_modules/core-js/library/fn/get-iterator.js","webpack:///./node_modules/core-js/library/fn/object/create.js","webpack:///./node_modules/core-js/library/fn/object/get-own-property-descriptor.js","webpack:///./node_modules/core-js/library/fn/object/get-prototype-of.js","webpack:///./node_modules/core-js/library/fn/object/set-prototype-of.js","webpack:///./node_modules/core-js/library/fn/promise.js","webpack:///./node_modules/core-js/library/fn/set.js","webpack:///./node_modules/core-js/library/modules/_an-instance.js","webpack:///./node_modules/core-js/library/modules/_array-from-iterable.js","webpack:///./node_modules/core-js/library/modules/_array-methods.js","webpack:///./node_modules/core-js/library/modules/_array-species-constructor.js","webpack:///./node_modules/core-js/library/modules/_array-species-create.js","webpack:///./node_modules/core-js/library/modules/_collection-strong.js","webpack:///./node_modules/core-js/library/modules/_collection-to-json.js","webpack:///./node_modules/core-js/library/modules/_collection.js","webpack:///./node_modules/core-js/library/modules/_for-of.js","webpack:///./node_modules/core-js/library/modules/_invoke.js","webpack:///./node_modules/core-js/library/modules/_microtask.js","webpack:///./node_modules/core-js/library/modules/_new-promise-capability.js","webpack:///./node_modules/core-js/library/modules/_object-sap.js","webpack:///./node_modules/core-js/library/modules/_perform.js","webpack:///./node_modules/core-js/library/modules/_promise-resolve.js","webpack:///./node_modules/core-js/library/modules/_redefine-all.js","webpack:///./node_modules/core-js/library/modules/_set-collection-from.js","webpack:///./node_modules/core-js/library/modules/_set-collection-of.js","webpack:///./node_modules/core-js/library/modules/_set-proto.js","webpack:///./node_modules/core-js/library/modules/_set-species.js","webpack:///./node_modules/core-js/library/modules/_species-constructor.js","webpack:///./node_modules/core-js/library/modules/_task.js","webpack:///./node_modules/core-js/library/modules/_validate-collection.js","webpack:///./node_modules/core-js/library/modules/core.get-iterator.js","webpack:///./node_modules/core-js/library/modules/es6.object.create.js","webpack:///./node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js","webpack:///./node_modules/core-js/library/modules/es6.object.get-prototype-of.js","webpack:///./node_modules/core-js/library/modules/es6.object.set-prototype-of.js","webpack:///./node_modules/core-js/library/modules/es6.promise.js","webpack:///./node_modules/core-js/library/modules/es6.set.js","webpack:///./node_modules/core-js/library/modules/es7.promise.finally.js","webpack:///./node_modules/core-js/library/modules/es7.promise.try.js","webpack:///./node_modules/core-js/library/modules/es7.set.from.js","webpack:///./node_modules/core-js/library/modules/es7.set.of.js","webpack:///./node_modules/core-js/library/modules/es7.set.to-json.js","webpack:///./node_modules/date-fns/difference_in_calendar_days/index.js","webpack:///./node_modules/date-fns/format/index.js","webpack:///./node_modules/date-fns/get_day_of_year/index.js","webpack:///./node_modules/date-fns/get_iso_week/index.js","webpack:///./node_modules/date-fns/get_iso_year/index.js","webpack:///./node_modules/date-fns/is_date/index.js","webpack:///./node_modules/date-fns/is_valid/index.js","webpack:///./node_modules/date-fns/locale/_lib/build_formatting_tokens_reg_exp/index.js","webpack:///./node_modules/date-fns/locale/en/build_distance_in_words_locale/index.js","webpack:///./node_modules/date-fns/locale/en/build_format_locale/index.js","webpack:///./node_modules/date-fns/locale/en/index.js","webpack:///./node_modules/date-fns/parse/index.js","webpack:///./node_modules/date-fns/start_of_day/index.js","webpack:///./node_modules/date-fns/start_of_iso_week/index.js","webpack:///./node_modules/date-fns/start_of_iso_year/index.js","webpack:///./node_modules/date-fns/start_of_week/index.js","webpack:///./node_modules/date-fns/start_of_year/index.js","webpack:///./node_modules/eventemitter3/index.js","webpack:///./node_modules/google-map-react/lib/google_heatmap.js","webpack:///./node_modules/google-map-react/lib/google_map.js","webpack:///./node_modules/google-map-react/lib/google_map_map.js","webpack:///./node_modules/google-map-react/lib/google_map_markers.js","webpack:///./node_modules/google-map-react/lib/google_map_markers_prerender.js","webpack:///./node_modules/google-map-react/lib/index.js","webpack:///./node_modules/google-map-react/lib/loaders/google_map_loader.js","webpack:///./node_modules/google-map-react/lib/marker_dispatcher.js","webpack:///./node_modules/google-map-react/lib/utils/detect.js","webpack:///./node_modules/google-map-react/lib/utils/detectElementResize.js","webpack:///./node_modules/google-map-react/lib/utils/geo.js","webpack:///./node_modules/google-map-react/lib/utils/isArraysEqualEps.js","webpack:///./node_modules/google-map-react/lib/utils/isEmpty.js","webpack:///./node_modules/google-map-react/lib/utils/isNumber.js","webpack:///./node_modules/google-map-react/lib/utils/isPlainObject.js","webpack:///./node_modules/google-map-react/lib/utils/lib_geo/lat_lng.js","webpack:///./node_modules/google-map-react/lib/utils/lib_geo/transform.js","webpack:///./node_modules/google-map-react/lib/utils/lib_geo/wrap.js","webpack:///./node_modules/google-map-react/lib/utils/math/log2.js","webpack:///./node_modules/google-map-react/lib/utils/omit.js","webpack:///./node_modules/google-map-react/lib/utils/passiveEvents.js","webpack:///./node_modules/google-map-react/lib/utils/pick.js","webpack:///./node_modules/google-map-react/lib/utils/raf.js","webpack:///./node_modules/google-map-react/lib/utils/shallowEqual.js","webpack:///./node_modules/google-map-react/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/google-map-react/node_modules/prop-types/index.js","webpack:///./node_modules/google-map-react/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/history/DOMUtils.js","webpack:///./node_modules/history/LocationUtils.js","webpack:///./node_modules/history/PathUtils.js","webpack:///./node_modules/history/createHashHistory.js","webpack:///./node_modules/history/createTransitionManager.js","webpack:///./node_modules/invariant/browser.js","webpack:///./node_modules/redux-promise-middleware/dist/index.js","webpack:///./node_modules/redux-promise-middleware/dist/isPromise.js","webpack:///./node_modules/redux-thunk/lib/index.js","webpack:///./node_modules/resolve-pathname/index.js","webpack:///./node_modules/scriptjs/dist/script.js","webpack:///./node_modules/value-equal/index.js","webpack:///./node_modules/warning/browser.js","webpack:///./node_modules/wurl/wurl.js","webpack:///./src/_js/actions/attractionsActions.js","webpack:///./src/_js/actions/gmapActions.js","webpack:///./src/_js/actions/hoveredMarkerActions.js","webpack:///./src/_js/actions/mapAttractionActions.js","webpack:///./src/_js/actions/mapBackButtonActions.js","webpack:///./src/_js/actions/mapSectionViewActions.js","webpack:///./src/_js/actions/mapTitleActions.js","webpack:///./src/_js/actions/mapTourActions.js","webpack:///./src/_js/actions/mapTourStepActions.js","webpack:///./src/_js/actions/mapViewActions.js","webpack:///./src/_js/actions/sportPinActions.js","webpack:///./src/_js/actions/tourPolylinesActions.js","webpack:///./src/_js/components/FancyChevron.js","webpack:///./src/_js/components/InfoBubble.js","webpack:///./src/_js/components/Map.js","webpack:///./src/_js/components/MapButton.js","webpack:///./src/_js/components/MapFixButtonCol.js","webpack:///./src/_js/components/MapFixButtonWrapper.js","webpack:///./src/_js/components/MapHead.js","webpack:///./src/_js/components/MapList.js","webpack:///./src/_js/components/MapListBody.js","webpack:///./src/_js/components/MapListItem.js","webpack:///./src/_js/components/MapMap.js","webpack:///./src/_js/components/MapSectionAttraction.js","webpack:///./src/_js/components/MapSectionMain.js","webpack:///./src/_js/components/MapSectionTourAttractionList.js","webpack:///./src/_js/components/MapSectionTourStep.js","webpack:///./src/_js/components/MapTabsNav.js","webpack:///./src/_js/components/MapTabsNavItem.js","webpack:///./src/_js/components/ParkView.js","webpack:///./src/_js/components/Sharer.js","webpack:///./src/_js/components/SharerItem.js","webpack:///./src/_js/components/Slider.js","webpack:///./src/_js/components/SliderItem.js","webpack:///./src/_js/components/SportFieldView.js","webpack:///./src/_js/components/pins/AttractionPin.js","webpack:///./src/_js/components/pins/IndexPin.js","webpack:///./src/_js/components/pins/IndexPinWithBubble.js","webpack:///./src/_js/components/pins/SportPin.js","webpack:///./src/_js/components/pins/SportPinWithBubble.js","webpack:///./src/_js/components/pins/pinStyle.js","webpack:///./src/_js/constants/mapconstants.js","webpack:///./src/_js/partials/MapUtil.js","webpack:///./src/_js/reducers/attractionsReducer.js","webpack:///./src/_js/reducers/gmapReducer.js","webpack:///./src/_js/reducers/hoveredMarkerReducer.js","webpack:///./src/_js/reducers/index.js","webpack:///./src/_js/reducers/mapAttractionReducer.js","webpack:///./src/_js/reducers/mapBackButtonReducer.js","webpack:///./src/_js/reducers/mapSectionViewReducer.js","webpack:///./src/_js/reducers/mapTitleReducer.js","webpack:///./src/_js/reducers/mapTourReducer.js","webpack:///./src/_js/reducers/mapTourStepReducer.js","webpack:///./src/_js/reducers/mapViewReducer.js","webpack:///./src/_js/reducers/sportPinReducer.js","webpack:///./src/_js/reducers/tourAttractionsReducer.js","webpack:///./src/_js/reducers/tourPolylinesReducer.js","webpack:///./src/_js/store/MapStore.js","webpack:///./src/_js/utils/mapUtils.js"],"names":[],"mappings":"mFAAA,aAgBA,eACA,MACA,SACA,4BAyPA,WADA,6BAzQA,EAaA,UAMA,YAOA,iBAAuB,0BAAkC,EAQzD,iBAA0B,qBAA6B,OAQvD,iBAA0B,qBAA6B,OAQvD,yBAAiC,qBAAqC,eAQtE,wBAAiC,qBAAoC,cAQrE,kBAA0B,qBAA8B,QAQxD,iBAA0B,qBAA6B,OAQvD,oBAA0B,qBAAgC,UAS1D,4BAAkC,qBAAwC,kBAO1E,qBAA0B,qBAAiC,WAS3D,iBAAyB,qBAA6B,OAQtD,iBAAyB,qBAA6B,OAOtD,kBAAyB,qBAA8B,QAQvD,gBACA,oCACA,EAQA,oBACA,mBACA,cACA,CAOA,kBACA,eACA,WASA,qBACA,gBACA,aACA,aACA,GAOA,kBACA,sBACA,EAOA,qBACA,8BACA,EAOA,uBACA,gCACA,EASA,4BACA,OACA,iBACA,kBACA,IAEA,sBACA,6BACA,0BACA,cACA,SACA,IACA,IAEA,kBACA,kBACA,YACA,EACA,IAEA,kBACA,kBACA,YACA,EACA,IAEA,mBACA,aACA,UACA,KACA,IAEA,kBACA,aACA,UACA,KACA,IAEA,0BACA,kBACA,YACA,EACA,IAEA,yBACA,kBACA,YACA,EACA,IAEA,kBACA,uBACA,OACA,IAEA,kBACA,YACA,qBACA,SACA,GACA,IAEA,qBACA,qCAGA,oBACA,cACA,SACA,IACA,IAEA,6BACA,OACA,OACA,sCACA,oCACA,eACA,SACA,IACA,IAEA,mBACA,sBACA,iBACA,GACA,IAaA,GACA,qBACA,OAGA,wBACA,wBAGA,uECvTA,aAkCA,aAEA,IAEA,GAwBA,mCAvBA,uDAEA,2CAEA,WACA,4FAIA,mCAEA,IAIA,2DAGA,aACA,gEAEA,UACA,IAOA,CACA,iBACA,SAEA,SACA,mIAMA,UAEA,YACA,CACA,8BACA,mDACA,qBAGA,sBACA,MAaA,MAZA,mCACA,CACA,8BACA,CACA,QACA,iBACA,CACA,UACA,QAEA,IACA,MAEA,iBACA,CACA,GAEA,GAzGA,qCACA,CACC,WAED,6EAAoG,OAAmB,SAAE,aAAmB,4FAA8H,UAE1Q,EAcA,QACA,UACA,OACA,qCAEA,0BAEA,UAIA,0ECjCA,UAAkB,gE,wFCAlB,UAAkB,iE,6GCAlB,UAAkB,sF,kGCAlB,UAAkB,2E,kGCAlB,UAAkB,2E,kFCAlB,UAAkB,2D,8ECAlB,UAAkB,uD,yFCAlB,aAEA,gBAEA,QAEA,oEAEA,WAAsC,0BAAuC,CAAgB,eAE7F,yBACA,CAYA,MAXA,0BACA,CACA,QACA,cACA,gBAGA,cAGA,Q,qECtBA,aAEA,gBAEA,QAEA,2DAEA,WAAsC,0BAAuC,CAAgB,eAE7F,gCACA,WAAiB,gBAAsB,OACvC,WAGA,QADA,+CAEA,iBAKA,MACA,Q,sECtBA,aAgBA,aAAsC,0BAAuC,CAAgB,WAd7F,gBAEA,QAEA,qEAEA,SAEA,2DAEA,SAEA,yDAIA,uBACA,0BACA,gIAGA,uDACA,aACA,CACA,QACA,cACA,YAGA,sDACA,Y,uFChCA,aAEA,gBAEA,QAEA,oDAEA,WAAsC,0BAAuC,CAAgB,eAE7F,uBACA,IACA,4BAGA,yIACA,yB,uEChBA,gEACA,mEACA,iJCFA,iEACA,kEACA,uBACA,UACA,wGCJA,sFACA,kEACA,uBACA,UACA,+GCJA,2EACA,qKCDA,2EACA,qJCDA,oEACA,mEACA,gEACA,2DACA,mEACA,+DACA,mICNA,oEACA,mEACA,gEACA,uDACA,+DACA,0DACA,4DACA,yICPA,2BACA,mCACA,yBACG,2BACH,4FCJA,6DAEA,uBACA,IACA,MAEA,gBADA,wFCCA,CACA,QACA,sDACA,0DACA,4DACA,+HACA,uBACA,OACA,OAGA,OACA,OAEA,2BACA,WACA,OACA,aACA,SACA,UACA,aAXA,SAYA,YACA,EAAyB,YATzB,SAUA,YACA,OAEA,iBACA,iBACA,iBACA,gBACA,gBACA,kBACS,mBAGT,qBAzBA,IA0BA,OACA,2FC3CA,QACA,4DACA,wHAEA,qBACA,IACA,SACA,YAEA,gEACA,UACA,SACA,gBAEG,uBACH,2FCfA,CACA,gFAEA,uBACA,YACA,0FCLA,aACA,gEACA,MACA,gEACA,+DACA,sDACA,8DACA,yDACA,8DACA,4DACA,8DACA,iHACA,YACA,2EAEA,sBAEA,OACA,KACA,sBAEA,cAA8B,SAC9B,YAEA,UAEA,UACA,iCACA,sBACA,SACA,QACA,YACA,QACA,YACA,eACA,mBACA,OACA,GAqDA,qBAlDA,iBACA,gCAAqF,SACrF,IACA,mBACA,qBAEA,UACA,eACA,CAGA,oBACA,SACA,UACA,YACA,SACA,MACA,gBACA,KACA,WACA,WACA,iBACA,kBACA,MACA,MAAS,QACT,EAGA,qBACA,GACA,6DACA,GACA,eACA,kBAEA,kBAEA,CAGA,iBACA,aACA,UAEA,4BACA,eACA,UACA,UAEA,KAEA,qBACA,OACA,SAGA,EAiBA,WAdA,YACA,KACA,QACA,IACA,UACA,GACA,SAEA,gBACA,YACA,KAEA,mBACK,WAEL,EACA,oCAGA,oBACA,SACA,YACA,UACA,SAAK,YACL,WACA,SACA,OAEA,eAEA,kCAEA,oBAKA,qBACA,cACA,OANA,YAGA,GAGK,uBAGL,OACA,IACA,mFC/IA,CACA,QACA,4HACA,qBACA,kBACA,iCACA,kCACA,KACA,4ECRA,aACA,QACA,yDACA,yDACA,uDACA,wDACA,uDACA,+DACA,yDACA,8DACA,4DACA,4HACA,kEACA,iEAEA,+BACA,OACA,KACA,cACA,aACA,UACA,KAqCA,4DApCA,mBACA,MAEA,sBAKA,SACA,WACA,uBACA,OACA,wGACA,iBACA,gEACA,MACA,iBACA,6BACA,gBACA,OACA,EACA,2BACA,eACA,gBACA,IAIA,UAxBA,4BACA,eAEA,SAuBA,OACA,mBAEA,UAEA,yFCzDA,QACA,sDACA,4DACA,gEACA,4DACA,4DACA,sEACA,KACA,oCACA,mBAAuC,CAAiB,QAAE,EAC1D,iBACA,KACA,QACA,4CAEA,wCAAmE,QAAgB,IACnF,kCACA,mBACG,uBAA4C,sBAC/C,mBACA,sBAEA,UACA,UACA,2ECxBA,CACA,yBACA,OACA,oBACA,wBACA,MACA,4BACA,eACA,6BACA,oBACA,kCACA,yBACA,uCACA,8BACG,cACH,oFCfA,QACA,4GACA,4BACA,2BACA,YACA,4EAEA,oBACA,iBAGA,OACA,yBACA,UACA,KACA,OACA,QACA,CACA,GAAO,SACP,CAGA,QAFA,IACA,UAEA,CAAK,CACL,cACA,OAGA,MAlBA,EAmBA,iBACA,GACA,WAEG,YACH,IACA,gCACA,uBAAuC,CACvC,+BACA,UACA,EAEA,CAAG,sBACH,SACA,sBACA,GACA,OAOA,CACA,kBAEA,GACA,SAGA,oBACA,OAAgB,MAChB,mBAEA,YACA,IACK,KACL,GACA,wFClEA,aAGA,aACA,OACA,kCACA,yCACA,2BACA,IACA,GACA,gBACA,iBACA,KAXA,iEAaA,uBACA,OACA,mFCjBA,CACA,QACA,yDACA,2GACA,uBACA,UAA6B,gBAC7B,UACA,UACA,2BAAqD,GAAO,EAAE,GAC9D,+ECTA,qBACA,IACA,OAAY,QACZ,IAAG,SACH,OAAY,MACZ,IACA,iFCNA,QACA,4DACA,iIAEA,uBACA,IACA,6BACA,iBACA,SACA,cACA,QACA,oFCXA,2DACA,yBACA,QACA,qBACA,WACG,MACH,4FCLA,aACA,QACA,yDACA,6DACA,2GAEA,qBACA,SAAkC,iBAClC,iBACA,SACA,WACA,QACA,cACA,mBACA,OAEA,UACA,qBACA,qBACA,YACA,KAEA,aAEA,WACA,SACA,qFC1BA,aACA,6DAEA,qBACA,SAAkC,cAClC,qBACA,SACA,mBACA,uBACA,QACA,4ECVA,CACA,QACA,4DACA,uEACA,IACA,uCACA,8BACA,UACA,6BACA,+BACA,IACA,qKACA,GACA,wBACA,OAAO,SAAY,CAAc,IACjC,qBACA,CAIA,MAHA,YACA,YACA,QAEA,CACA,iBACA,mFCxBA,aACA,QACA,yDACA,uDACA,4DACA,2HAEA,qBACA,oCACA,0BACA,CACA,8BAAsB,OAAa,KAEnC,sFCbA,CACA,QACA,4DACA,0HACA,uBACA,YACA,YACA,2CACA,yECRA,QACA,sDACA,yDACA,uDACA,6DACA,yDACA,YACA,iBACA,mBACA,mBACA,WACA,EACA,OACA,iCAEA,QAEA,4BACA,OACA,WACA,MACA,GACA,CACA,eACA,UACA,KAEA,MAbA,EAcA,oBACA,QACA,QACA,uCACA,MAMA,wBAJA,0BACA,cACA,EACA,MAEA,eACA,OACA,KAEA,EACA,+EACA,kBACA,GAEG,OACH,iBACA,aACA,GAGA,OACA,UACA,cACA,gCAGG,2DACH,4BACA,oBACA,IACA,qBAEG,wBACH,uBACA,yCACA,eACA,QACA,OACA,CAGA,eACA,qBACA,EAEA,GACA,UACA,CACA,MACA,2FCnFA,gEACA,uBACA,gEACA,cACA,yFCJA,QACA,kIACA,sFACA,OACA,+CACA,gCACA,yFCNA,QACA,qDACA,eAA8B,UAAsC,iKCFpE,CACA,QACA,yHAEA,gGACA,qBACA,UACA,OACA,CAAC,2FCRD,CACA,QACA,qHAEA,sFACA,mBACA,UACA,KACA,CAAC,2FCRD,CACA,6DACA,eAA8B,0EAA8C,+ECF5E,aACA,QACA,0DACA,yDACA,sDACA,0DACA,yDACA,4DACA,6DACA,8DACA,yDACA,yHACA,QACA,8DACA,yEACA,0DACA,gEACA,cACA,cACA,UACA,OACA,4BAAyB,CACzB,QAGA,gBACA,IAEA,iBACA,QAA+C,2FAC/C,CACA,MAEA,yDACA,mBAAG,SAAY,CACf,CAGA,iBACA,IACA,gBACA,+BACA,iBACA,OACA,MACA,cACA,eACA,aACA,KACA,UACA,eACA,gBACA,SACA,YACA,WACA,SACA,KAEA,IACA,cACA,UAEA,UAEA,UACA,UACA,UAEA,cACA,YACW,2BACX,QACW,YACF,MACT,IAAO,SACP,CACA,IACA,CACA,kBACA,QACA,QACA,gBACA,IACA,GACA,eACA,oBACA,SACA,KACA,SAEA,uBAEA,UACS,+BACT,wBAAmB,WACV,4BACT,eAEA,gCAEA,kBACK,KACL,yBACA,CACA,EACA,eACA,YACA,2BACA,KACA,EACA,IACA,iBACA,2BACG,SACH,QACA,eACA,oBACA,IAEA,YACK,2BACL,uBAAe,oBAEf,IACA,EACA,eACA,OACA,OACA,OACA,UACA,QACA,UACA,oBACA,SACA,QACA,eACA,OACA,KACA,QACA,MACA,UACA,SACA,kBACA,uCACA,kBACA,OAAuB,MACvB,UACA,yBACA,GAAS,SACT,GACA,SACA,CAEA,MACA,UACA,EAEA,QAAG,SACH,QAAkB,MAClB,SACA,EAKA,QA9IA,mBA+IA,YACA,MACA,YACA,SACA,wBACA,GAAK,SACL,QACA,OACA,CAEA,cACA,MACA,WACA,kBACA,OACA,WACA,kBACA,OACA,KACA,uFAEA,mBACA,WACA,qBACA,+BACA,qCACA,sBACA,yBACA,mBACA,WACA,OAEA,mBACA,aACA,cAEA,gBACA,OACA,WACA,6BACA,qBACA,EACA,mBACA,eACA,MACA,SACA,IACA,GAEA,iBAA0D,CAAoB,YAC9E,uEACA,+DACA,IAEA,sDACA,eAEA,mBACA,SACA,UACA,aACA,QACA,OACC,IACD,oBAEA,oBACA,wBACA,OACC,IACD,sFACA,UACA,WAAC,MAED,gBACA,OACA,OACA,SACA,YACA,qBACA,IACA,QACA,IACA,oBACA,OACA,IACA,OACA,aACA,iCAEA,KACA,KACA,YACA,KACA,IACA,QACA,IACA,mBACA,KACA,OAEA,kBACA,OACA,OACA,SACA,qBACA,mBACA,qBACA,UACA,EACA,mBACA,KACA,OACC,yECvRD,aACA,QACA,oEACA,oEAEA,MACA,kFACA,kBAAyB,4CAAmE,UAC5F,CAAC,EAED,gBACA,gCACA,MACC,uFCZD,aACA,QACA,yDACA,uDACA,yDACA,oIAEA,oBAA2C,oBAC3C,2BACA,WACA,iCACA,kBACA,gCAA8D,CAAU,QACxE,EACA,iBACA,gCAA8D,CAAS,OACvE,EAEA,IAAG,iFClBH,aACA,QACA,yDACA,+HAEA,gBAA+B,gBAC/B,WACA,QACA,sCACA,KACA,OAAG,6ECXH,CACA,kJCDA,CACA,qJCDA,CACA,6DAEA,gBAAuC,2EAAkD,yFCHzF,QAEA,iDAsBA,MAgBA,UAfA,aACA,OACA,OAEA,SACA,YACA,0BACA,YAKA,yCACA,wECtCA,CAmRA,iBACA,SACA,aAEA,OACA,EACA,QAAa,EAAY,IACzB,iBAEA,MAEA,WAIA,wBACA,WACA,KAAmB,EAAY,IAC/B,qBACA,UAEA,UAGA,KACA,QACA,EAEA,aACA,gBACA,gCAEA,oBACA,IAEA,eACA,MACA,iBACA,iBAEA,0BACA,GACA,GAEA,eACA,gBACA,aACA,YAEA,MACA,oBAXA,qBAzTA,wDACA,qDACA,qDACA,8CACA,iDAoFA,gDA6BA,cACA,qBACA,CAGA,gBACA,yBACA,EAGA,eACA,mCACA,EAGA,eACA,UACA,SAGA,gBACA,sBACA,EAGA,iBACA,OACA,KAGA,kBACA,eACA,EAGA,eACA,UACA,QAGA,eACA,oBACA,CAGA,eACA,OACA,KAGA,gBACA,eACA,EAGA,gBACA,oCACA,EAGA,kBACA,0BACA,EAGA,gBACA,wBACA,EAGA,kBACA,OACA,KAGA,eACA,UACA,UAGA,gBACA,uBACA,EAGA,eACA,SACA,iBACA,OACK,GACL,OAIA,IAGA,gBACA,iBACA,EAGA,eACA,UACA,YAGA,gBACA,yBACA,EAGA,eACA,UACA,YAGA,gBACA,yBACA,EAGA,eACA,8BACA,IAGA,gBACA,oCACA,EAGA,iBACA,8BACA,EAGA,eACA,gCACA,IAGA,gBACA,YACA,oBAGA,eACA,YACA,cAGA,eACA,UACA,SACA,GAsDA,UA7OA,eACA,cACA,8BAEA,OACA,kBACA,sBACA,6CACA,wBAEA,oBACA,oCAIA,+BAEA,SACA,WAGA,qBAEA,eACA,KAEA,sECpHA,QACA,8CACA,sDAgBA,gEAQA,UAPA,WACA,OACA,WACA,MAEA,SADA,oECvBA,QACA,8CACA,0DAoBA,sDAWA,UAVA,WACA,OACA,2BAKA,uCACA,oEC/BA,QACA,8CAmBA,sDAwBA,UAvBA,WACA,OACA,SAEA,yBACA,uBACA,oBACA,SAEA,gBACA,qBACA,oBACA,SAEA,2BACA,YACG,iBAGH,cAEA,0DC5BA,CAKA,UAJA,WACA,oBACA,oECjBA,QAyBA,4CASA,UARA,WACA,IACA,YAEA,8CAEA,4HChCA,GAMA,qJAqBA,UAnBA,WACA,IACA,aACA,UACA,qBAIA,cACA,EACA,UACA,OACA,eACA,qDAGA,KACA,mGCyEA,UAlGA,UACA,OACA,kBACA,KACA,2BAGA,wCACA,KACA,iBAGA,iCAEA,iCACA,KACA,2BAGA,wCACA,KACA,iBAGA,iCACA,KACA,qBAGA,gCACA,KACA,eAGA,yBACA,KACA,cAGA,+BACA,KACA,sBAGA,kCACA,KACA,gBAGA,gCACA,KACA,qBAGA,gCACA,KACA,eAGA,8BACA,KACA,oBAGA,qCACA,KACA,sBAIA,iCAwBA,CAEA,wBAzBA,GAEA,SACA,YACA,sBACK,KACL,WAEA,uBAGA,iBACA,UACA,eAEA,UAKA,QAEA,sFCrBA,aACA,SACA,aACA,cACA,QACA,YACA,SACA,YACA,SACA,YAGA,eACA,KArFA,wFAuFA,UArFA,UAKA,IACA,6EACA,kHACA,uCACA,8CACA,2EACA,cACA,cAEA,oBAEA,gBACA,YACA,WAGA,kBACA,YACA,WAGA,gBACA,YACA,SAGA,iBACA,YACA,SAGA,kBACA,YACA,SAGA,eACA,kCACA,EAGA,eACA,kCACA,EAGA,gBACA,kCACA,EAKA,wDACA,uBACA,UACA,QACA,CAEA,GACA,CACA,oCAEA,qECtEA,QACA,iFAKA,kEACA,UACA,iBACA,WACA,+DCgHA,aACA,IACA,UACA,SAEA,cACA,YACA,SAEA,cACA,OAGA,MACA,SAEA,iCACA,iBAEA,MAEA,MAEA,CACA,SAEA,eACA,OACA,OAEA,KAGA,oBACA,UACA,SACA,SACA,iBACA,6BAEA,QAGA,mBACA,UACA,SACA,SACA,MACA,4CAEA,QAGA,OACA,MAEA,MAEA,eAEA,IACA,eAGA,SACA,GACA,EACA,EAGA,KACA,aAMA,kBALA,KACA,oBAMA,OADA,UAQA,kBANA,uBACA,IACA,6BAKA,UACA,YACA,uBACA,IAEA,0BADA,MAIA,QACA,UACA,YACA,uBACA,sBACA,IAEA,SADA,uBAIA,CAEA,OADA,qCAEA,EAIA,cACA,UACA,qBACA,0BACA,QACA,SAGA,OACA,MAEA,aACA,IACA,GACA,EAGA,EAEA,OADA,+CAEA,QAIA,KAEA,OADA,iCAEA,kCACA,QACA,KAIA,WACA,UACA,iBACA,oBACA,sCACA,eACA,KACA,IACA,KAGA,OACA,MAEA,aACA,IACA,GAGA,aAEA,WAIA,OAEA,cACA,gCAIA,WAEA,gDACA,eAGA,MACA,GAEA,iBACA,MACA,OACA,iBACA,wBACA,wBACA,UACA,IAEA,sBADA,kBA5TA,QAEA,4CACA,QACA,QAGA,SAGA,MACA,cACA,CACA,gBACA,gBAGA,mBACA,aACA,CACA,eACA,eAIA,kBACA,eACA,gBACA,yBACA,iBAGA,0BACA,wBACA,iCAGA,0CACA,eACA,UACA,oBAkCA,2BAqPA,UApPA,aACA,IAEA,uBACG,cACH,6BAGA,gBACA,OACA,mBAMA,QArFA,WAuFA,WACA,YACA,SAEA,iBAEA,YACA,SACA,YACA,EAEA,WACA,aAGA,SACA,eAGA,2BACA,wCAGA,kCACA,IACA,WAEA,2ECxHA,QAiBA,0CAOA,UANA,WACA,OACA,KAEA,wBADA,4ECrBA,QAmBA,kDAKA,UAJA,WACA,aAAiC,aACjC,2ECtBA,QACA,qDAoBA,sDAUA,UATA,WACA,OACA,gBACA,qBACA,oBACA,SACA,KACA,4EC7BA,QAwBA,0CAaA,UAZA,aACA,4BAEA,IACA,SACA,kBAEA,OAGA,mBAFA,8BACA,wEClCA,QAiBA,0CASA,UARA,WACA,OACA,gBACA,GAGA,uCAFA,oBACA,2DCvBA,aAsBA,iBACA,MACA,UACA,oBACA,KAQA,CACA,YAAyB,CAOzB,CAxCA,uBAUA,mDASA,IAsBA,YAQA,eACA,iCACA,YACA,QACA,KAEA,QAEA,SACA,yCAGA,oBACA,sCAIA,2BASA,EACA,mCACA,SACA,2BAEA,uBACA,SACA,0BAEA,6BAA0D,SAAO,IACjE,cAGA,GACA,QAQA,EACA,sCACA,SAEA,yCAEA,oBACA,uBACA,OACA,EAEA,6BACA,CAGA,uCADA,2CAEA,sCACA,wCACA,0CACA,4CACA,8CAGA,yCAAyC,GAAS,IAClD,WAGA,0BACA,UAAG,KACH,SACA,OAEA,QAAe,EAAY,IAC3B,IAGA,6CADA,0CAC2D,SAC3D,+BAA+D,WAC/D,+BAAmE,aACnE,MACA,gCAA0D,GAAS,IACnE,WAGA,gCAGA,YAEA,CACA,QASA,EACA,8BACA,kBACA,UAEA,yCAA+C,mBAC/C,0DAIA,MAIA,8BALA,aADA,aAOA,IASA,EACA,gCACA,kBACA,aAEA,yCAA+C,mBAC/C,0DAIA,MAIA,8BALA,aADA,aAOA,IAUA,EACA,4CACA,SAEA,+CAEA,iBACA,WAEA,KACA,UAEA,MACA,cACA,WAEA,gBAGA,6BAAgD,OAAY,IAE5D,UACA,iBACA,cAEA,qBASA,eACA,sCAEA,iBAGA,WACA,IAOA,EACA,0CACA,8CAGA,oBAAiC,mBAEjC,MACA,MAJA,IAQA,EACA,2CACA,oCAIA,GACA,sCACA,OACA,KAIA,EACA,EAMA,aACA,iFChSA,aAEA,gBACA,qCACA,SACA,kDACA,4BACA,SACA,QACA,QACA,oBAEA,IAKA,cAJA,gBACA,YAEA,YAGA,OAEA,kCACA,SACA,UACA,qDACA,gBACA,KACA,E,uEC3BA,aA8FA,aAAsC,0BAAuC,CAAgB,WAE7F,eAAiD,MAA0C,oCAA4D,qCAEvJ,eAAiD,IAAa,4BAAyF,4FAAuF,0BAE9O,eAA0C,0BAA+D,wFAAuG,mDAAyE,aAAe,mCAA6E,0EAAuH,YAa5e,CAaA,YACA,OACA,CACA,sBACA,qBACA,iBAEA,0BACA,aACA,kBACA,kBAAiB,YAEjB,UAEA,WAEA,4BA5IA,gBAEA,6EAAoG,OAAmB,SAAE,aAAmB,4FAA8H,QAE1Q,8BAAmD,WAAgB,gBAAsB,OAAO,WAAqD,QAA1B,+CAAmF,iBAAiC,MAAe,QAE9P,MAEA,WAEA,SAEA,sEAEA,SAEA,eAEA,SAEA,2DAEA,SAEA,8DAEA,SAEA,+DAEA,SAEA,yEAEA,SAEA,6DAEA,sEAEA,SAEA,sDAEA,SAEA,sDAEA,SAEA,uDAEA,SAEA,uDAEA,SAEA,4DAEA,SAEA,0DAEA,SAEA,2DAEA,SAEA,yDAEA,SAEA,+DAEA,SAEA,gEAEA,SAEA,mEAEA,SAEA,sEAEA,UAEA,uEAsBA,WAEA,OACA,OAIA,wBAGA,sGAmBA,0BAA0D,gBAC1D,GAEA,kBAQA,UAIA,OAEA,eACA,2FACA,mBAEA,gBACA,cAKA,GAEA,4BAEA,oCACA,4DACA,sCACA,oCACA,SACA,uBACA,YACA,CACA,SAEA,+BACA,YAGA,cACA,eAEA,oCACA,MACA,4BACA,+BACA,uBACA,yCACA,mCACA,wBACA,CAEA,0BACA,sBACA,oBACA,+BACA,KACA,EAEA,4BACA,0CACA,sBACA,4BACA,iCACA,sCACA,uCACA,gCACA,YACA,0CACA,mCACA,+BAEA,oBAEA,uBAEA,OAGA,gBAEA,iDACA,yEAEA,KAEA,yBAAwC,qBAAyB,aAA0B,gBAE3F,oFACA,MAIA,8BAEA,cACA,4BACA,wCAIA,sBACA,4BACA,yCAEA,kDAeA,kCACA,yEACA,UAEA,0CACA,mBAGA,iCACA,WAEA,iBAAuC,OACvC,CAGA,uEAEA,0CAEA,yBAEA,mDAEA,oBACA,SAEA,6BAGA,kCAEA,uBAGA,GACA,sCACA,iBACA,kCACA,wDAEA,qDACA,kCACA,+BACA,wBACA,kBACA,cACA,gBAEA,qCACA,eAEA,oBACA,uFACA,YACA,IAEA,EAEA,YACA,gCACA,wDAGA,+BAM8B,CAE9B,mBANA,4BACA,mBAAuC,CACvC,WAEA,EAGA,qBACA,eACA,WACA,eAEA,qCAA4B,SAC5B,MACA,iBACA,MACA,iDAEA,aACA,8CAAwC,oBACxC,kBAGA,oCACA,kDACA,uBACA,mBACA,GAEA,GAEA,sBACA,+CACA,gBACA,iDAGA,6BAGA,MAEA,aACA,0BACA,qBAGA,kBACA,6DACA,GACA,gBAGA,kDAEA,gCACA,cACA,6BACA,sDAKA,SAnRA,IAoRA,wBASA,sBAPA,4BAQA,+BACA,GACA,mBACA,qBACA,EAEA,MACA,mBAEA,sBAEA,CAEA,0CACA,uBACA,GACA,uDAEA,eACA,aACA,wBAA8B,CAG9B,eACA,mBAEA,GACA,6BACA,oDAGA,SACA,mBAEA,kCAEA,IACA,8CAEA,aAEA,+CAEA,GACA,cAMA,2CACA,GACA,cAEA,8CAEA,GACA,wBACA,+BACA,4BAEA,0CACA,wBACA,YACA,UAEA,6CAGA,8CACA,SACA,oBACA,aACA,EAEA,uDACA,wBACA,eACA,GAAO,oBAEP,CAOA,2BANA,KACA,UACA,WAEA,wBACA,UAEA,GAEA,iCACA,8BACA,IAOA,4CACA,UACA,CAEA,gCACA,gBACA,aAEA,sBACA,IAEA,qDACA,UAEA,yBACA,IAEA,2DACA,UAEA,iCACA,IAEA,2EACA,UAEA,oCACA,IAEA,iFACA,UAEA,kCACA,IAEA,6EACA,UAEA,6BACA,uCACA,eAEA,4BACA,yBACA,IAEA,0CACA,UAEA,CAEA,mCACA,uBACA,cACA,+CAAsE,OAEtE,QAEA,8BACA,0BACA,2BACA,IAEA,oEAAuH,OACvH,UACA,uBACA,oCACA,SACA,CAEA,gCACA,MACA,8CACA,IAEA,sEAAyH,OACzH,UAEA,CAEA,iCACA,8BACA,IAEA,+CACA,UAEA,CAEA,iCACA,8BACA,IAEA,+CACA,UAEA,CAEA,2BACA,MACA,aACA,wDACO,iBACP,+BACA,yDACA,aACA,GACA,mBAEA,8BACA,GACA,mBAEA,+BACA,MAEA,8BACA,cAGA,eADA,qCAGA,2BAEA,iDACA,iCAEA,MACA,kBAAwB,mBAGxB,aACA,aAEA,qDACA,uBACA,mBAEA,MAEA,wBACA,eAEA,oDACA,+BAEA,0BAEA,uBACA,IAEA,4FA5hBA,kDA6hBA,UAEA,2BACA,yBAEA,GACA,oCACA,cACA,iBACA,mBAAsC,cACtC,CAIA,qCAEA,eACA,CAEA,qCACA,GAEA,eACA,kBAEA,+BACA,yBACA,kBACA,cAGA,iBACA,6CAEA,eACA,CAEA,qCACA,iBAEA,8CAEA,UAEA,gCACA,iBACA,8CAEA,UAEA,gCACA,6HACA,IAEA,oCACA,MACA,SACA,gEACA,EAEA,2EACA,qBACA,0BACA,4BAEA,kCACA,wBACA,uCACA,gBACA,yDAA4E,iBAG5E,oBACA,2BACA,QACA,QACA,cACA,IACA,OACA,SAEA,OACA,OACA,SAEA,OACA,OACA,SAEA,OACA,OACA,SAGA,kBACA,IACA,OACA,SAEA,OACA,OACA,SAEA,OACA,OACA,SAEA,OACA,OACA,SAIA,kCACA,qBACA,gCACiB,aACjB,OACA,SAKA,OACA,aAEA,CACA,CAEA,8BACA,GACA,eAEA,IACA,cACA,kBAEA,iCACA,aACA,mBACA,eAEA,OAEA,oBACA,sBACA,kBACA,OAEA,2BACA,IACA,0CAEA,6BACA,+BACA,oDAEA,UACA,cAEA,mDAEA,wBACA,yBAEA,kBAwBA,kEACA,kCACA,yEACA,EAEA,CAMA,SAJA,oCACA,SAEA,OAGA,CAuNA,MA34BA,gDAqrBA,OAEA,UACA,gDACA,yDACA,uDAKA,oDAGA,+DACA,0BAAsC,wBAAwB,gBAAyB,mBAEvF,6DAEA,qCAEA,GACA,0DACA,kBAEA,UAAK,IACL,qCACA,OACA,qCACA,sBACA,CAEA,0DACA,OAYA,8EACA,8BACA,UACA,UAAO,EAGP,aACA,wBACA,+CACA,YACA,yEAEA,mCACA,mCACA,yBACA,OACA,UAIA,KAEA,qBAEA,OACA,iDAIA,4DAEA,gCAA8B,gBACvB,gEAEP,iCAA8B,aAI9B,oFACA,kCACA,uDAEA,kBAEA,wDACA,8BACA,wBACA,UAEA,WACA,aAEA,uCACA,2DACA,qBACA,eACA,UACA,qBAGA,iFACA,oEACA,OACA,qCACA,cAEA,OAEA,GACA,CAEA,iDAEA,mHACA,QAEA,4CACA,8BAEA,uDACA,6CAEA,4BAEA,6CACA,MACA,6CAEA,yDAEA,mEACA,2DACA,6DACA,+BACA,2DAGA,4BAEA,+BAGA,wCAEA,oDAA4B,CAC5B,8DAGA,kBACA,yCACA,gBAEA,8BAEA,eAEA,+BACA,2CACA,iBAEA,mBAoBA,+BACA,kBACA,YAaA,uCAZA,yBACA,+BACA,oCACA,yCACA,0CACA,mCACA,YACA,6CACA,sCACA,kCACK,sCAGL,cACA,MACA,kBACA,uBACA,wCACA,oCAEA,+CAA+D,oBAC/D,gCAGA,qBAEA,GACC,eAED,aACA,kBACA,kCAEA,uEACA,eACA,qBAEA,uEACA,eACA,qBAEA,iCACA,sBACA,gCACA,wBACA,uBACA,4BACA,gCACA,8BACA,gCACA,iCACA,iCACA,oCACA,kCACA,sBACA,yBACA,iCACA,6BACA,uBACA,8BACA,6BACA,2BACA,sBACA,gCACA,gCACA,kDACA,yBACA,qBACA,kCACA,4CACA,+CACA,MACA,gBACA,8BACA,uDACA,GAEA,gBACA,GACA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E,aAAe,mCAA6E,0EAAuH,YAE5e,CAdA,gBAEA,QAEA,2CAEA,WAAsC,0BAAuC,CAAgB,4BAS7F,cAGA,GAEA,4BAEA,OAEA,SADA,gBAGA,CAkBA,MA3BA,0CAUA,gCACA,QAEA,yCACA,0BACA,MAEA,yCACA,0BACA,cAEA,gCACA,mBACA,UACA,oBAEA,GACC,aAED,E,+EChDA,aAEA,gBACA,EACA,QAGA,UACA,CACA,KAGA,0CACA,QACA,yCACA,4CAEA,qDACA,2CAEA,wCAgBA,MAfA,QAGA,MACA,OAGA,QACA,CACA,aACA,YACA,UACA,WAEA,aAGA,CASA,SARA,CACA,YACA,cACA,aACA,WAGA,c,EAzCA,+FCLA,aAEA,QAEA,gEAEA,WAAsC,0BAAuC,CAAgB,UAG7F,uEAcA,eAEA,MACC,OACD,gCAGA,KAEA,6CACA,iBAEA,SACA,iBACA,sGACA,uBACA,GACA,oBACA,OACA,KACA,CAEA,gBACA,0FACA,+BACA,OACA,KACA,CAEA,iBACA,SACA,uBACA,sBACA,qBACA,iCACA,0BACA,2CACA,qCACA,oBACA,0BACA,YAEA,eACA,gFACA,MAEA,eACA,OACA,OACA,iCACA,8CACA,CACA,gCACA,sCACA,sDACA,GACA,SAEA,GACA,EAGA,EACA,OACA,cACA,KACA,iBACA,4BACA,mFAEA,QACA,8BACA,mCACA,gBAGA,MACA,gBAAqB,MAAwB,OAC7C,8CACA,GACA,SACA,kCACA,MACA,KACA,KACA,KAGA,CAEA,OACA,oCACA,wEACA,KAEA,gBACA,OAEA,gBAAkF,2BAClF,6YACA,4BAEA,gBACA,aACA,wBAEA,iCAGA,qBACA,eACA,IACA,CAEA,EAuCA,UACA,CACA,+BAxCA,0BACA,8BACA,SACA,YACA,KACA,2BACA,kBACA,+EACA,YACA,MACA,oBACA,sFACA,uCACA,kHACA,oBAEA,qBAGA,qEACA,qBACA,IAEA,0BAEA,QAEA,EAcA,kCAbA,KACA,2BACA,6EACA,0BACA,+BACA,kDAGA,4FC9KA,aAkBA,aAAsC,0BAAuC,CAAgB,WAE7F,eAAiD,MAA0C,oCAA4D,oCAEvJ,kBApBA,gBAEA,gCAAmD,WAAgB,gBAAsB,OAAO,WAAqD,QAA1B,+CAAmF,iBAAiC,MAAe,QAE9P,MAEA,oDAEA,SAEA,kEAEA,SAEA,qFAOA,cACA,GAIA,aACA,iBACA,6CACA,IAEA,CAsIA,0CArIA,kCACA,gCACA,2BACA,QACA,WAEA,uCACA,iBACA,wBACA,cACA,WAEA,kDACA,MACA,aACA,sBAEA,mCACA,4BACA,QAEA,gCACA,aACA,QAKA,iDACA,gDACA,WAQA,8CACA,8BACA,qCACA,sCACA,uBACA,aACA,0BAKA,oDACA,8BACA,qCACA,sCACA,6BAEA,YACA,2BAMA,4DAJA,sCACA,8BAEA,GAMA,oDACA,8BACA,iCACA,oCAAc,mBACd,MAEA,OACA,mCACA,8BACA,gDAEA,YAEA,0BADA,MAGA,iCACA,wBACA,KAEA,kCACA,wBACA,MAEA,gCACA,wBACA,IAEA,kCACA,qCAA+C,OAE/C,IACA,QAEA,qCACA,gBACA,aACA,aACA,aAEA,mDACA,uDACA,qBACA,uBAEA,uDACA,mBACA,uBAGA,kBACA,YACA,YACA,YAGA,KAKA,8BAJA,UACA,MAEA,KAGA,CACA,eAEA,GACC,IAED,E,yFCzKA,aAEA,gBACA,UACA,eACA,SACA,WAAmB,QAAqB,OACxC,qBACA,QAGA,SACA,QACA,CACA,Q,wECdA,aAEA,gBAEA,6EAAoG,OAAmB,SAAE,aAAmB,4FAA8H,QAE1Q,EAaA,E,mBAXA,cACA,wDACA,0BAEG,wCAEH,OAEA,SACA,iFCjBA,aAOA,aACA,YACA,oDAPA,gBAEA,6EAAoG,OAAmB,SAAE,aAAmB,4FAA8H,UAE1Q,UAOA,WACA,mCAEA,UADA,iB,EAJA,4GCXA,aAEA,gBAEA,6EAAoG,OAAmB,SAAE,aAAmB,4FAA8H,UAE1Q,EACA,QASA,WACA,QACA,oDAGA,gFAEA,aACA,SAGA,iBAEA,iEACA,O,EAtBA,iBACA,oCACA,OAKA,kFCfA,aAMA,eAAiD,MAA0C,oCAA4D,oCAEvJ,CANA,gBAEA,iFAKA,gBACA,MAEA,kBACA,6DAEA,cACA,YACA,EAEA,CAKA,kCAJA,gDACA,KAEA,GACC,IAED,qBACA,OAIA,wBACA,wBAGA,eACA,wBAIA,QAEA,E,4FC1CA,aAiBA,aAAsC,0BAAuC,CAAgB,WAE7F,eAAiD,MAA0C,oCAA4D,oCAGvJ,2BApBA,gBAEA,gBAAgC,gBAA2C,WAAgB,QAAkB,OAAO,MAA2B,oBAAwD,iBAAgC,gCAAuD,uCAA6D,MAAE,uBAAyD,CAAsJ,cAAjF,gBAA6D,QAAuB,CAG/iB,QAEA,oDAEA,SAEA,kEAEA,kFAQA,kBACA,GAEA,yBAEA,qBACA,mBAEA,QAEA,yCACA,cACA,YACA,8BACA,cACA,CAEA,0BAuHA,wCAtHA,iBACA,IAEA,mCACA,kBACA,GAEA,mCACA,qDACA,OAEA,qCACA,mDACA,KAGA,gCACA,mCACA,GAKA,gCACA,gCACA,wCACA,GAEA,gCACA,kCACA,GAEA,gCACA,0BACA,qDACA,EAEA,uCACA,YACA,wEACA,OAEA,uCACA,8CACA,wCACA,OAEA,OACA,KACA,wBACA,aACA,QACA,iBACA,MACA,4BACA,OACG,GACH,KACA,wBACA,aACA,QACA,iBACA,MACA,4BACA,OACG,GACH,KACA,0BACA,2BACA,KACG,GACH,KACA,4BACA,wBACA,EACG,GACH,KACA,qBACA,sCACA,OACG,GACH,KACA,wBACA,OACA,oBACA,iBACA,sCACA,GACG,GACH,KACA,qBACA,aACA,KACA,iBACA,gCACA,cACA,wBACA,gCACA,kCACA,QACG,GACH,KACA,kBACA,8BACA,IACG,GACH,KACA,kBACA,8BACA,IACG,GACH,KACA,sBACA,kCACA,EAGA,MACC,IAED,E,qFCjKA,aAEA,gBACA,EACA,KAEA,eACA,OACA,qBACA,a,0ECTA,6BAEA,gBACA,qBACA,yBACA,KAEA,E,6ECPA,aAIA,eAA8C,IAAiB,aAAqB,QAAoC,iDAA6D,iBAAsB,MAAe,QAG1N,CALA,gBAiBA,E,qBAXA,WAEA,UAAiB,QAAiB,OAClC,MACA,KACA,cAGA,MACA,sFCjBA,aAMA,YACA,IAEA,SACA,cAA0C,4BAC1C,eACA,CACA,IAGA,4BACA,uCACA,WAAG,SA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A,gBAlCA,KACA,OA+BA,aA3CA,OACA,QACA,IAQA,2BAoCA,CACA,QAAS,YACT,CACA,QACA,EACA,CACA,CACA,C,EApKA,QAEA,+DAEA,WAAsC,0BAAuC,CAAgB,UAE7F,iBACA,wBACA,yBAEA,aAMA,mFC/BA,aAEA,qCACA,CACC,WAED,6EAAoG,OAAmB,SAAE,aAAmB,4FAA8H,UAE1Q,UACA,WACA,kBACA,wDAIA,yB,2DCfA,aAGA,aACA,mBACA,SACA,aACA,2BACA,mBACA,OACA,qBAGA,SACA,IACA,CACA,CACA,EAfA,gBAiBA,UACA,sBAEA,E,qECtBA,aAEA,iBACA,OACA,iBAGA,iBACA,uBAAiD,OAAO,YACxD,OACA,KAAG,EACH,KAGA,EAuDA,E,mBAtDA,8DAEA,gBACA,sBAEA,cACA,UACA,OAEA,WAEA,KACG,MAEH,WACA,UAGA,2BAEA,OACA,eACA,kBACA,wBACA,MACA,KAGA,gBACA,MAAgC,SAAQ,KACxC,MAEA,KACA,QACK,OACL,UACA,OAEA,SACA,OAIA,WAAyB,KACzB,gBACG,8CAEH,iBAEA,KAGA,kCADA,kEClEA,QAIA;;;;IAEA,cACA,4CACA,mEAEA,YAAC,uBACD,gBAeA,iBAAkC,OAAO,oBACzC,eACA,EACA,gBACA,gBACA,OACA,MACA,CACA,EAEA,kBACA,cAMA,mBACA,IACA,aACA,KACA,YAGA,WAFA,KACA,sCAIA,QACA,UAhBA,eACA,OACA,iBACA,UACA,OA+BA,4BAlBA,oBACA,iBAEA,uBACA,gDAGA,KACA,eACA,oCAA6E,QAAsB,EAGnG,cACA,WACA,GACA,QACA,EAAK,EACL,IAGA,gBACA,iCACA,oCACA,wBACA,yBACA,OACA,OACA,EACA,IACA,UACA,qCACA,4BACA,UAEA,OA7EA,0CAEA,GACA,OACA,SACA,eACA,qBACA,KACA,KACA,KACA,KACA,EAEA,EAkGA,SAhCA,6BACA,eACA,KACA,iBACA,eACA,IAEA,oBACA,CACA,GACA,uBACA,CACA,GACA,yBACA,UACA,OACA,MASA,sBARA,OACA,OAAK,oBAAiC,WACtC,mBACA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","file":"map.js?v=0826e981f62696efa1c6","sourcesContent":["'use strict';\n\nmodule.exports = Point;\n\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 */\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n}\n\nPoint.prototype = {\n\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() { return new Point(this.x, this.y); },\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(p) { return this.clone()._add(p); },\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(p) { return this.clone()._sub(p); },\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(p) { return this.clone()._multByPoint(p); },\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(p) { return this.clone()._divByPoint(p); },\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(k) { return this.clone()._mult(k); },\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(k) { return this.clone()._div(k); },\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(a) { return this.clone()._rotate(a); },\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(a,p) { return this.clone()._rotateAround(a,p); },\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(m) { return this.clone()._matMult(m); },\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() { return this.clone()._unit(); },\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() { return this.clone()._perp(); },\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() { return this.clone()._round(); },\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() {\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(other) {\n return this.x === other.x &&\n 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(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(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() {\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(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(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(x, y) {\n return Math.atan2(\n this.x * y - this.y * x,\n this.x * x + this.y * y);\n },\n\n _matMult: function(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\n _add: function(p) {\n this.x += p.x;\n this.y += p.y;\n return this;\n },\n\n _sub: function(p) {\n this.x -= p.x;\n this.y -= p.y;\n return this;\n },\n\n _mult: function(k) {\n this.x *= k;\n this.y *= k;\n return this;\n },\n\n _div: function(k) {\n this.x /= k;\n this.y /= k;\n return this;\n },\n\n _multByPoint: function(p) {\n this.x *= p.x;\n this.y *= p.y;\n return this;\n },\n\n _divByPoint: function(p) {\n this.x /= p.x;\n this.y /= p.y;\n return this;\n },\n\n _unit: function() {\n this._div(this.mag());\n return this;\n },\n\n _perp: function() {\n var y = this.y;\n this.y = this.x;\n this.x = -y;\n return this;\n },\n\n _rotate: function(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\n _rotateAround: function(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\n _round: function() {\n this.x = Math.round(this.x);\n this.y = Math.round(this.y);\n return this;\n }\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 */\nPoint.convert = function (a) {\n if (a instanceof Point) {\n return a;\n }\n if (Array.isArray(a)) {\n return new Point(a[0], a[1]);\n }\n return a;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@mapbox/point-geometry/index.js\n// module id = ./node_modules/@mapbox/point-geometry/index.js\n// module chunks = map bluemountainmap wingtagsmap","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.default = autobind;\n/**\n * @copyright 2015, Andrey Popp <8mayday@gmail.com>\n *\n * The decorator may be used on classes or methods\n * ```\n * @autobind\n * class FullBound {}\n *\n * class PartBound {\n * @autobind\n * method () {}\n * }\n * ```\n */\nfunction autobind() {\n if (arguments.length === 1) {\n return boundClass.apply(undefined, arguments);\n } else {\n return boundMethod.apply(undefined, arguments);\n }\n}\n\n/**\n * Use boundMethod to bind all methods on the target.prototype\n */\nfunction boundClass(target) {\n // (Using reflect to get all keys including symbols)\n var keys = void 0;\n // Use Reflect if exists\n if (typeof Reflect !== 'undefined' && typeof Reflect.ownKeys === 'function') {\n keys = Reflect.ownKeys(target.prototype);\n } else {\n keys = Object.getOwnPropertyNames(target.prototype);\n // use symbols if support is provided\n if (typeof Object.getOwnPropertySymbols === 'function') {\n keys = keys.concat(Object.getOwnPropertySymbols(target.prototype));\n }\n }\n\n keys.forEach(function (key) {\n // Ignore special case target method\n if (key === 'constructor') {\n return;\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(target.prototype, key);\n\n // Only methods need binding\n if (typeof descriptor.value === 'function') {\n Object.defineProperty(target.prototype, key, boundMethod(target, key, descriptor));\n }\n });\n return target;\n}\n\n/**\n * Return a descriptor removing the value and returning a getter\n * The getter will return a .bind version of the function\n * and memoize the result against a symbol on the instance\n */\nfunction boundMethod(target, key, descriptor) {\n var fn = descriptor.value;\n\n if (typeof fn !== 'function') {\n throw new Error('@autobind decorator can only be applied to methods not: ' + (typeof fn === 'undefined' ? 'undefined' : _typeof(fn)));\n }\n\n // In IE11 calling Object.defineProperty has a side-effect of evaluating the\n // getter for the property which is being replaced. This causes infinite\n // recursion and an \"Out of stack space\" error.\n var definingProperty = false;\n\n return {\n configurable: true,\n get: function get() {\n if (definingProperty || this === target.prototype || this.hasOwnProperty(key) || typeof fn !== 'function') {\n return fn;\n }\n\n var boundFn = fn.bind(this);\n definingProperty = true;\n Object.defineProperty(this, key, {\n configurable: true,\n get: function get() {\n return boundFn;\n },\n set: function set(value) {\n fn = value;\n delete this[key];\n }\n });\n definingProperty = false;\n return boundFn;\n },\n set: function set(value) {\n fn = value;\n }\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/autobind-decorator/lib/index.js\n// module id = ./node_modules/autobind-decorator/lib/index.js\n// module chunks = map bluemountainmap wingtagsmap","module.exports = { \"default\": require(\"core-js/library/fn/get-iterator\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/get-iterator.js\n// module id = ./node_modules/babel-runtime/core-js/get-iterator.js\n// module chunks = map","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/create.js\n// module id = ./node_modules/babel-runtime/core-js/object/create.js\n// module chunks = herbariumprogress herbariumgallery map bluemountainmap wingtagsmap","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js\n// module id = ./node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js\n// module chunks = map bluemountainmap wingtagsmap","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/get-prototype-of.js\n// module id = ./node_modules/babel-runtime/core-js/object/get-prototype-of.js\n// module chunks = herbariumprogress herbariumgallery map bluemountainmap wingtagsmap","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/set-prototype-of.js\n// module id = ./node_modules/babel-runtime/core-js/object/set-prototype-of.js\n// module chunks = herbariumprogress herbariumgallery map bluemountainmap wingtagsmap","module.exports = { \"default\": require(\"core-js/library/fn/promise\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/promise.js\n// module id = ./node_modules/babel-runtime/core-js/promise.js\n// module chunks = socialstream herbariumprogress herbariumgallery map bluemountainmap homefeatures","module.exports = { \"default\": require(\"core-js/library/fn/set\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/set.js\n// module id = ./node_modules/babel-runtime/core-js/set.js\n// module chunks = map","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/defineProperty.js\n// module id = ./node_modules/babel-runtime/helpers/defineProperty.js\n// module chunks = map bluemountainmap wingtagsmap","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || 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\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/extends.js\n// module id = ./node_modules/babel-runtime/helpers/extends.js\n// module chunks = herbariumprogress herbariumgallery map bluemountainmap wingtagsmap","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/inherits.js\n// module id = ./node_modules/babel-runtime/helpers/inherits.js\n// module chunks = herbariumprogress herbariumgallery map bluemountainmap wingtagsmap","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/possibleConstructorReturn.js\n// module id = ./node_modules/babel-runtime/helpers/possibleConstructorReturn.js\n// module chunks = herbariumprogress herbariumgallery map bluemountainmap wingtagsmap","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.get-iterator');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/get-iterator.js\n// module id = ./node_modules/core-js/library/fn/get-iterator.js\n// module chunks = map","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/create.js\n// module id = ./node_modules/core-js/library/fn/object/create.js\n// module chunks = herbariumprogress herbariumgallery map bluemountainmap wingtagsmap","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key) {\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/get-own-property-descriptor.js\n// module id = ./node_modules/core-js/library/fn/object/get-own-property-descriptor.js\n// module chunks = map bluemountainmap wingtagsmap","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/get-prototype-of.js\n// module id = ./node_modules/core-js/library/fn/object/get-prototype-of.js\n// module chunks = herbariumprogress herbariumgallery map bluemountainmap wingtagsmap","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/set-prototype-of.js\n// module id = ./node_modules/core-js/library/fn/object/set-prototype-of.js\n// module chunks = herbariumprogress herbariumgallery map bluemountainmap wingtagsmap","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.promise');\nrequire('../modules/es7.promise.finally');\nrequire('../modules/es7.promise.try');\nmodule.exports = require('../modules/_core').Promise;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/promise.js\n// module id = ./node_modules/core-js/library/fn/promise.js\n// module chunks = socialstream herbariumprogress herbariumgallery map bluemountainmap homefeatures","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.set');\nrequire('../modules/es7.set.to-json');\nrequire('../modules/es7.set.of');\nrequire('../modules/es7.set.from');\nmodule.exports = require('../modules/_core').Set;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/set.js\n// module id = ./node_modules/core-js/library/fn/set.js\n// module chunks = map","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_an-instance.js\n// module id = ./node_modules/core-js/library/modules/_an-instance.js\n// module chunks = socialstream herbariumprogress herbariumgallery map bluemountainmap homefeatures","var forOf = require('./_for-of');\n\nmodule.exports = function (iter, ITERATOR) {\n var result = [];\n forOf(iter, false, result.push, result, ITERATOR);\n return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_array-from-iterable.js\n// module id = ./node_modules/core-js/library/modules/_array-from-iterable.js\n// module chunks = map","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_array-methods.js\n// module id = ./node_modules/core-js/library/modules/_array-methods.js\n// module chunks = map","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_array-species-constructor.js\n// module id = ./node_modules/core-js/library/modules/_array-species-constructor.js\n// module chunks = map","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_array-species-create.js\n// module id = ./node_modules/core-js/library/modules/_array-species-create.js\n// module chunks = map","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_collection-strong.js\n// module id = ./node_modules/core-js/library/modules/_collection-strong.js\n// module chunks = map","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar classof = require('./_classof');\nvar from = require('./_array-from-iterable');\nmodule.exports = function (NAME) {\n return function toJSON() {\n if (classof(this) != NAME) throw TypeError(NAME + \"#toJSON isn't generic\");\n return from(this);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_collection-to-json.js\n// module id = ./node_modules/core-js/library/modules/_collection-to-json.js\n// module chunks = map","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar meta = require('./_meta');\nvar fails = require('./_fails');\nvar hide = require('./_hide');\nvar redefineAll = require('./_redefine-all');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar setToStringTag = require('./_set-to-string-tag');\nvar dP = require('./_object-dp').f;\nvar each = require('./_array-methods')(0);\nvar DESCRIPTORS = require('./_descriptors');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME, '_c');\n target._c = new Base();\n if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);\n });\n each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {\n var IS_ADDER = KEY == 'add' || KEY == 'set';\n if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {\n anInstance(this, C, KEY);\n if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;\n var result = this._c[KEY](a === 0 ? 0 : a, b);\n return IS_ADDER ? this : result;\n });\n });\n IS_WEAK || dP(C.prototype, 'size', {\n get: function () {\n return this._c.size;\n }\n });\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F, O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_collection.js\n// module id = ./node_modules/core-js/library/modules/_collection.js\n// module chunks = map","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_for-of.js\n// module id = ./node_modules/core-js/library/modules/_for-of.js\n// module chunks = socialstream herbariumprogress herbariumgallery map bluemountainmap homefeatures","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_invoke.js\n// module id = ./node_modules/core-js/library/modules/_invoke.js\n// module chunks = socialstream herbariumprogress herbariumgallery map bluemountainmap homefeatures","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver\n } else if (Observer) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n var promise = Promise.resolve();\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_microtask.js\n// module id = ./node_modules/core-js/library/modules/_microtask.js\n// module chunks = socialstream herbariumprogress herbariumgallery map bluemountainmap homefeatures","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_new-promise-capability.js\n// module id = ./node_modules/core-js/library/modules/_new-promise-capability.js\n// module chunks = socialstream herbariumprogress herbariumgallery map bluemountainmap homefeatures","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-sap.js\n// module id = ./node_modules/core-js/library/modules/_object-sap.js\n// module chunks = socialstream herbariumprogress herbariumgallery map bluemountainmap wingtagsmap","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_perform.js\n// module id = ./node_modules/core-js/library/modules/_perform.js\n// module chunks = socialstream herbariumprogress herbariumgallery map bluemountainmap homefeatures","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_promise-resolve.js\n// module id = ./node_modules/core-js/library/modules/_promise-resolve.js\n// module chunks = socialstream herbariumprogress herbariumgallery map bluemountainmap homefeatures","var hide = require('./_hide');\nmodule.exports = function (target, src, safe) {\n for (var key in src) {\n if (safe && target[key]) target[key] = src[key];\n else hide(target, key, src[key]);\n } return target;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_redefine-all.js\n// module id = ./node_modules/core-js/library/modules/_redefine-all.js\n// module chunks = socialstream herbariumprogress herbariumgallery map bluemountainmap homefeatures","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar ctx = require('./_ctx');\nvar forOf = require('./_for-of');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {\n var mapFn = arguments[1];\n var mapping, A, n, cb;\n aFunction(this);\n mapping = mapFn !== undefined;\n if (mapping) aFunction(mapFn);\n if (source == undefined) return new this();\n A = [];\n if (mapping) {\n n = 0;\n cb = ctx(mapFn, arguments[2], 2);\n forOf(source, false, function (nextItem) {\n A.push(cb(nextItem, n++));\n });\n } else {\n forOf(source, false, A.push, A);\n }\n return new this(A);\n } });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_set-collection-from.js\n// module id = ./node_modules/core-js/library/modules/_set-collection-from.js\n// module chunks = map","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { of: function of() {\n var length = arguments.length;\n var A = Array(length);\n while (length--) A[length] = arguments[length];\n return new this(A);\n } });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_set-collection-of.js\n// module id = ./node_modules/core-js/library/modules/_set-collection-of.js\n// module chunks = map","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_set-proto.js\n// module id = ./node_modules/core-js/library/modules/_set-proto.js\n// module chunks = herbariumprogress herbariumgallery map bluemountainmap wingtagsmap","'use strict';\nvar global = require('./_global');\nvar core = require('./_core');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_set-species.js\n// module id = ./node_modules/core-js/library/modules/_set-species.js\n// module chunks = socialstream herbariumprogress herbariumgallery map bluemountainmap homefeatures","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_species-constructor.js\n// module id = ./node_modules/core-js/library/modules/_species-constructor.js\n// module chunks = socialstream herbariumprogress herbariumgallery map bluemountainmap homefeatures","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_task.js\n// module id = ./node_modules/core-js/library/modules/_task.js\n// module chunks = socialstream herbariumprogress herbariumgallery map bluemountainmap homefeatures","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_validate-collection.js\n// module id = ./node_modules/core-js/library/modules/_validate-collection.js\n// module chunks = map","var anObject = require('./_an-object');\nvar get = require('./core.get-iterator-method');\nmodule.exports = require('./_core').getIterator = function (it) {\n var iterFn = get(it);\n if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/core.get-iterator.js\n// module id = ./node_modules/core-js/library/modules/core.get-iterator.js\n// module chunks = map","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.create.js\n// module id = ./node_modules/core-js/library/modules/es6.object.create.js\n// module chunks = herbariumprogress herbariumgallery map bluemountainmap wingtagsmap","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js\n// module id = ./node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js\n// module chunks = map bluemountainmap wingtagsmap","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.get-prototype-of.js\n// module id = ./node_modules/core-js/library/modules/es6.object.get-prototype-of.js\n// module chunks = herbariumprogress herbariumgallery map bluemountainmap wingtagsmap","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.set-prototype-of.js\n// module id = ./node_modules/core-js/library/modules/es6.object.set-prototype-of.js\n// module chunks = herbariumprogress herbariumgallery map bluemountainmap wingtagsmap","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value);\n if (domain) domain.exit();\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n if (promise._h == 1) return false;\n var chain = promise._a || promise._c;\n var i = 0;\n var reaction;\n while (chain.length > i) {\n reaction = chain[i++];\n if (reaction.fail || !isUnhandled(reaction.promise)) return false;\n } return true;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.promise.js\n// module id = ./node_modules/core-js/library/modules/es6.promise.js\n// module chunks = socialstream herbariumprogress herbariumgallery map bluemountainmap homefeatures","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.set.js\n// module id = ./node_modules/core-js/library/modules/es6.set.js\n// module chunks = map","// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = require('./_export');\nvar core = require('./_core');\nvar global = require('./_global');\nvar speciesConstructor = require('./_species-constructor');\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.promise.finally.js\n// module id = ./node_modules/core-js/library/modules/es7.promise.finally.js\n// module chunks = socialstream herbariumprogress herbariumgallery map bluemountainmap homefeatures","'use strict';\n// https://github.com/tc39/proposal-promise-try\nvar $export = require('./_export');\nvar newPromiseCapability = require('./_new-promise-capability');\nvar perform = require('./_perform');\n\n$export($export.S, 'Promise', { 'try': function (callbackfn) {\n var promiseCapability = newPromiseCapability.f(this);\n var result = perform(callbackfn);\n (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);\n return promiseCapability.promise;\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.promise.try.js\n// module id = ./node_modules/core-js/library/modules/es7.promise.try.js\n// module chunks = socialstream herbariumprogress herbariumgallery map bluemountainmap homefeatures","// https://tc39.github.io/proposal-setmap-offrom/#sec-set.from\nrequire('./_set-collection-from')('Set');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.set.from.js\n// module id = ./node_modules/core-js/library/modules/es7.set.from.js\n// module chunks = map","// https://tc39.github.io/proposal-setmap-offrom/#sec-set.of\nrequire('./_set-collection-of')('Set');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.set.of.js\n// module id = ./node_modules/core-js/library/modules/es7.set.of.js\n// module chunks = map","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = require('./_export');\n\n$export($export.P + $export.R, 'Set', { toJSON: require('./_collection-to-json')('Set') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.set.to-json.js\n// module id = ./node_modules/core-js/library/modules/es7.set.to-json.js\n// module chunks = map","var startOfDay = require('../start_of_day/index.js')\n\nvar MILLISECONDS_IN_MINUTE = 60000\nvar MILLISECONDS_IN_DAY = 86400000\n\n/**\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * var result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n */\nfunction differenceInCalendarDays (dirtyDateLeft, dirtyDateRight) {\n var startOfDayLeft = startOfDay(dirtyDateLeft)\n var startOfDayRight = startOfDay(dirtyDateRight)\n\n var timestampLeft = startOfDayLeft.getTime() -\n startOfDayLeft.getTimezoneOffset() * MILLISECONDS_IN_MINUTE\n var timestampRight = startOfDayRight.getTime() -\n startOfDayRight.getTimezoneOffset() * MILLISECONDS_IN_MINUTE\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY)\n}\n\nmodule.exports = differenceInCalendarDays\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/date-fns/difference_in_calendar_days/index.js\n// module id = ./node_modules/date-fns/difference_in_calendar_days/index.js\n// module chunks = socialstream map wingtagsmap","var getDayOfYear = require('../get_day_of_year/index.js')\nvar getISOWeek = require('../get_iso_week/index.js')\nvar getISOYear = require('../get_iso_year/index.js')\nvar parse = require('../parse/index.js')\nvar isValid = require('../is_valid/index.js')\nvar enLocale = require('../locale/en/index.js')\n\n/**\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format.\n *\n * Accepted tokens:\n * | Unit | Token | Result examples |\n * |-------------------------|-------|----------------------------------|\n * | Month | M | 1, 2, ..., 12 |\n * | | Mo | 1st, 2nd, ..., 12th |\n * | | MM | 01, 02, ..., 12 |\n * | | MMM | Jan, Feb, ..., Dec |\n * | | MMMM | January, February, ..., December |\n * | Quarter | Q | 1, 2, 3, 4 |\n * | | Qo | 1st, 2nd, 3rd, 4th |\n * | Day of month | D | 1, 2, ..., 31 |\n * | | Do | 1st, 2nd, ..., 31st |\n * | | DD | 01, 02, ..., 31 |\n * | Day of year | DDD | 1, 2, ..., 366 |\n * | | DDDo | 1st, 2nd, ..., 366th |\n * | | DDDD | 001, 002, ..., 366 |\n * | Day of week | d | 0, 1, ..., 6 |\n * | | do | 0th, 1st, ..., 6th |\n * | | dd | Su, Mo, ..., Sa |\n * | | ddd | Sun, Mon, ..., Sat |\n * | | dddd | Sunday, Monday, ..., Saturday |\n * | Day of ISO week | E | 1, 2, ..., 7 |\n * | ISO week | W | 1, 2, ..., 53 |\n * | | Wo | 1st, 2nd, ..., 53rd |\n * | | WW | 01, 02, ..., 53 |\n * | Year | YY | 00, 01, ..., 99 |\n * | | YYYY | 1900, 1901, ..., 2099 |\n * | ISO week-numbering year | GG | 00, 01, ..., 99 |\n * | | GGGG | 1900, 1901, ..., 2099 |\n * | AM/PM | A | AM, PM |\n * | | a | am, pm |\n * | | aa | a.m., p.m. |\n * | Hour | H | 0, 1, ... 23 |\n * | | HH | 00, 01, ... 23 |\n * | | h | 1, 2, ..., 12 |\n * | | hh | 01, 02, ..., 12 |\n * | Minute | m | 0, 1, ..., 59 |\n * | | mm | 00, 01, ..., 59 |\n * | Second | s | 0, 1, ..., 59 |\n * | | ss | 00, 01, ..., 59 |\n * | 1/10 of second | S | 0, 1, ..., 9 |\n * | 1/100 of second | SS | 00, 01, ..., 99 |\n * | Millisecond | SSS | 000, 001, ..., 999 |\n * | Timezone | Z | -01:00, +00:00, ... +12:00 |\n * | | ZZ | -0100, +0000, ..., +1200 |\n * | Seconds timestamp | X | 512969520 |\n * | Milliseconds timestamp | x | 512969520900 |\n *\n * The characters wrapped in square brackets are escaped.\n *\n * The result may vary by locale.\n *\n * @param {Date|String|Number} date - the original date\n * @param {String} [format='YYYY-MM-DDTHH:mm:ss.SSSZ'] - the string of tokens\n * @param {Object} [options] - the object with options\n * @param {Object} [options.locale=enLocale] - the locale object\n * @returns {String} the formatted date string\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(\n * new Date(2014, 1, 11),\n * 'MM/DD/YYYY'\n * )\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * var eoLocale = require('date-fns/locale/eo')\n * var result = format(\n * new Date(2014, 6, 2),\n * 'Do [de] MMMM YYYY',\n * {locale: eoLocale}\n * )\n * //=> '2-a de julio 2014'\n */\nfunction format (dirtyDate, dirtyFormatStr, dirtyOptions) {\n var formatStr = dirtyFormatStr ? String(dirtyFormatStr) : 'YYYY-MM-DDTHH:mm:ss.SSSZ'\n var options = dirtyOptions || {}\n\n var locale = options.locale\n var localeFormatters = enLocale.format.formatters\n var formattingTokensRegExp = enLocale.format.formattingTokensRegExp\n if (locale && locale.format && locale.format.formatters) {\n localeFormatters = locale.format.formatters\n\n if (locale.format.formattingTokensRegExp) {\n formattingTokensRegExp = locale.format.formattingTokensRegExp\n }\n }\n\n var date = parse(dirtyDate)\n\n if (!isValid(date)) {\n return 'Invalid Date'\n }\n\n var formatFn = buildFormatFn(formatStr, localeFormatters, formattingTokensRegExp)\n\n return formatFn(date)\n}\n\nvar formatters = {\n // Month: 1, 2, ..., 12\n 'M': function (date) {\n return date.getMonth() + 1\n },\n\n // Month: 01, 02, ..., 12\n 'MM': function (date) {\n return addLeadingZeros(date.getMonth() + 1, 2)\n },\n\n // Quarter: 1, 2, 3, 4\n 'Q': function (date) {\n return Math.ceil((date.getMonth() + 1) / 3)\n },\n\n // Day of month: 1, 2, ..., 31\n 'D': function (date) {\n return date.getDate()\n },\n\n // Day of month: 01, 02, ..., 31\n 'DD': function (date) {\n return addLeadingZeros(date.getDate(), 2)\n },\n\n // Day of year: 1, 2, ..., 366\n 'DDD': function (date) {\n return getDayOfYear(date)\n },\n\n // Day of year: 001, 002, ..., 366\n 'DDDD': function (date) {\n return addLeadingZeros(getDayOfYear(date), 3)\n },\n\n // Day of week: 0, 1, ..., 6\n 'd': function (date) {\n return date.getDay()\n },\n\n // Day of ISO week: 1, 2, ..., 7\n 'E': function (date) {\n return date.getDay() || 7\n },\n\n // ISO week: 1, 2, ..., 53\n 'W': function (date) {\n return getISOWeek(date)\n },\n\n // ISO week: 01, 02, ..., 53\n 'WW': function (date) {\n return addLeadingZeros(getISOWeek(date), 2)\n },\n\n // Year: 00, 01, ..., 99\n 'YY': function (date) {\n return addLeadingZeros(date.getFullYear(), 4).substr(2)\n },\n\n // Year: 1900, 1901, ..., 2099\n 'YYYY': function (date) {\n return addLeadingZeros(date.getFullYear(), 4)\n },\n\n // ISO week-numbering year: 00, 01, ..., 99\n 'GG': function (date) {\n return String(getISOYear(date)).substr(2)\n },\n\n // ISO week-numbering year: 1900, 1901, ..., 2099\n 'GGGG': function (date) {\n return getISOYear(date)\n },\n\n // Hour: 0, 1, ... 23\n 'H': function (date) {\n return date.getHours()\n },\n\n // Hour: 00, 01, ..., 23\n 'HH': function (date) {\n return addLeadingZeros(date.getHours(), 2)\n },\n\n // Hour: 1, 2, ..., 12\n 'h': function (date) {\n var hours = date.getHours()\n if (hours === 0) {\n return 12\n } else if (hours > 12) {\n return hours % 12\n } else {\n return hours\n }\n },\n\n // Hour: 01, 02, ..., 12\n 'hh': function (date) {\n return addLeadingZeros(formatters['h'](date), 2)\n },\n\n // Minute: 0, 1, ..., 59\n 'm': function (date) {\n return date.getMinutes()\n },\n\n // Minute: 00, 01, ..., 59\n 'mm': function (date) {\n return addLeadingZeros(date.getMinutes(), 2)\n },\n\n // Second: 0, 1, ..., 59\n 's': function (date) {\n return date.getSeconds()\n },\n\n // Second: 00, 01, ..., 59\n 'ss': function (date) {\n return addLeadingZeros(date.getSeconds(), 2)\n },\n\n // 1/10 of second: 0, 1, ..., 9\n 'S': function (date) {\n return Math.floor(date.getMilliseconds() / 100)\n },\n\n // 1/100 of second: 00, 01, ..., 99\n 'SS': function (date) {\n return addLeadingZeros(Math.floor(date.getMilliseconds() / 10), 2)\n },\n\n // Millisecond: 000, 001, ..., 999\n 'SSS': function (date) {\n return addLeadingZeros(date.getMilliseconds(), 3)\n },\n\n // Timezone: -01:00, +00:00, ... +12:00\n 'Z': function (date) {\n return formatTimezone(date.getTimezoneOffset(), ':')\n },\n\n // Timezone: -0100, +0000, ... +1200\n 'ZZ': function (date) {\n return formatTimezone(date.getTimezoneOffset())\n },\n\n // Seconds timestamp: 512969520\n 'X': function (date) {\n return Math.floor(date.getTime() / 1000)\n },\n\n // Milliseconds timestamp: 512969520900\n 'x': function (date) {\n return date.getTime()\n }\n}\n\nfunction buildFormatFn (formatStr, localeFormatters, formattingTokensRegExp) {\n var array = formatStr.match(formattingTokensRegExp)\n var length = array.length\n\n var i\n var formatter\n for (i = 0; i < length; i++) {\n formatter = localeFormatters[array[i]] || formatters[array[i]]\n if (formatter) {\n array[i] = formatter\n } else {\n array[i] = removeFormattingTokens(array[i])\n }\n }\n\n return function (date) {\n var output = ''\n for (var i = 0; i < length; i++) {\n if (array[i] instanceof Function) {\n output += array[i](date, formatters)\n } else {\n output += array[i]\n }\n }\n return output\n }\n}\n\nfunction removeFormattingTokens (input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|]$/g, '')\n }\n return input.replace(/\\\\/g, '')\n}\n\nfunction formatTimezone (offset, delimeter) {\n delimeter = delimeter || ''\n var sign = offset > 0 ? '-' : '+'\n var absOffset = Math.abs(offset)\n var hours = Math.floor(absOffset / 60)\n var minutes = absOffset % 60\n return sign + addLeadingZeros(hours, 2) + delimeter + addLeadingZeros(minutes, 2)\n}\n\nfunction addLeadingZeros (number, targetLength) {\n var output = Math.abs(number).toString()\n while (output.length < targetLength) {\n output = '0' + output\n }\n return output\n}\n\nmodule.exports = format\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/date-fns/format/index.js\n// module id = ./node_modules/date-fns/format/index.js\n// module chunks = socialstream map wingtagsmap","var parse = require('../parse/index.js')\nvar startOfYear = require('../start_of_year/index.js')\nvar differenceInCalendarDays = require('../difference_in_calendar_days/index.js')\n\n/**\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * var result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nfunction getDayOfYear (dirtyDate) {\n var date = parse(dirtyDate)\n var diff = differenceInCalendarDays(date, startOfYear(date))\n var dayOfYear = diff + 1\n return dayOfYear\n}\n\nmodule.exports = getDayOfYear\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/date-fns/get_day_of_year/index.js\n// module id = ./node_modules/date-fns/get_day_of_year/index.js\n// module chunks = socialstream map wingtagsmap","var parse = require('../parse/index.js')\nvar startOfISOWeek = require('../start_of_iso_week/index.js')\nvar startOfISOYear = require('../start_of_iso_year/index.js')\n\nvar MILLISECONDS_IN_WEEK = 604800000\n\n/**\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * var result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nfunction getISOWeek (dirtyDate) {\n var date = parse(dirtyDate)\n var diff = startOfISOWeek(date).getTime() - startOfISOYear(date).getTime()\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1\n}\n\nmodule.exports = getISOWeek\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/date-fns/get_iso_week/index.js\n// module id = ./node_modules/date-fns/get_iso_week/index.js\n// module chunks = socialstream map wingtagsmap","var parse = require('../parse/index.js')\nvar startOfISOWeek = require('../start_of_iso_week/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * var result = getISOYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nfunction getISOYear (dirtyDate) {\n var date = parse(dirtyDate)\n var year = date.getFullYear()\n\n var fourthOfJanuaryOfNextYear = new Date(0)\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4)\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0)\n var startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear)\n\n var fourthOfJanuaryOfThisYear = new Date(0)\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4)\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0)\n var startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear)\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year\n } else {\n return year - 1\n }\n}\n\nmodule.exports = getISOYear\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/date-fns/get_iso_year/index.js\n// module id = ./node_modules/date-fns/get_iso_year/index.js\n// module chunks = socialstream map wingtagsmap","/**\n * @category Common Helpers\n * @summary Is the given argument an instance of Date?\n *\n * @description\n * Is the given argument an instance of Date?\n *\n * @param {*} argument - the argument to check\n * @returns {Boolean} the given argument is an instance of Date\n *\n * @example\n * // Is 'mayonnaise' a Date?\n * var result = isDate('mayonnaise')\n * //=> false\n */\nfunction isDate (argument) {\n return argument instanceof Date\n}\n\nmodule.exports = isDate\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/date-fns/is_date/index.js\n// module id = ./node_modules/date-fns/is_date/index.js\n// module chunks = socialstream map wingtagsmap","var isDate = require('../is_date/index.js')\n\n/**\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {Date} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} argument must be an instance of Date\n *\n * @example\n * // For the valid date:\n * var result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isValid(new Date(''))\n * //=> false\n */\nfunction isValid (dirtyDate) {\n if (isDate(dirtyDate)) {\n return !isNaN(dirtyDate)\n } else {\n throw new TypeError(toString.call(dirtyDate) + ' is not an instance of Date')\n }\n}\n\nmodule.exports = isValid\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/date-fns/is_valid/index.js\n// module id = ./node_modules/date-fns/is_valid/index.js\n// module chunks = socialstream map wingtagsmap","var commonFormatterKeys = [\n 'M', 'MM', 'Q', 'D', 'DD', 'DDD', 'DDDD', 'd',\n 'E', 'W', 'WW', 'YY', 'YYYY', 'GG', 'GGGG',\n 'H', 'HH', 'h', 'hh', 'm', 'mm',\n 's', 'ss', 'S', 'SS', 'SSS',\n 'Z', 'ZZ', 'X', 'x'\n]\n\nfunction buildFormattingTokensRegExp (formatters) {\n var formatterKeys = []\n for (var key in formatters) {\n if (formatters.hasOwnProperty(key)) {\n formatterKeys.push(key)\n }\n }\n\n var formattingTokens = commonFormatterKeys\n .concat(formatterKeys)\n .sort()\n .reverse()\n var formattingTokensRegExp = new RegExp(\n '(\\\\[[^\\\\[]*\\\\])|(\\\\\\\\)?' + '(' + formattingTokens.join('|') + '|.)', 'g'\n )\n\n return formattingTokensRegExp\n}\n\nmodule.exports = buildFormattingTokensRegExp\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/date-fns/locale/_lib/build_formatting_tokens_reg_exp/index.js\n// module id = ./node_modules/date-fns/locale/_lib/build_formatting_tokens_reg_exp/index.js\n// module chunks = socialstream map wingtagsmap","function buildDistanceInWordsLocale () {\n var distanceInWordsLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n\n halfAMinute: 'half a minute',\n\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n }\n\n function localize (token, count, options) {\n options = options || {}\n\n var result\n if (typeof distanceInWordsLocale[token] === 'string') {\n result = distanceInWordsLocale[token]\n } else if (count === 1) {\n result = distanceInWordsLocale[token].one\n } else {\n result = distanceInWordsLocale[token].other.replace('{{count}}', count)\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'in ' + result\n } else {\n return result + ' ago'\n }\n }\n\n return result\n }\n\n return {\n localize: localize\n }\n}\n\nmodule.exports = buildDistanceInWordsLocale\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/date-fns/locale/en/build_distance_in_words_locale/index.js\n// module id = ./node_modules/date-fns/locale/en/build_distance_in_words_locale/index.js\n// module chunks = socialstream map wingtagsmap","var buildFormattingTokensRegExp = require('../../_lib/build_formatting_tokens_reg_exp/index.js')\n\nfunction buildFormatLocale () {\n // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n var months3char = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\n var monthsFull = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n var weekdays2char = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']\n var weekdays3char = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n var weekdaysFull = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n var meridiemUppercase = ['AM', 'PM']\n var meridiemLowercase = ['am', 'pm']\n var meridiemFull = ['a.m.', 'p.m.']\n\n var formatters = {\n // Month: Jan, Feb, ..., Dec\n 'MMM': function (date) {\n return months3char[date.getMonth()]\n },\n\n // Month: January, February, ..., December\n 'MMMM': function (date) {\n return monthsFull[date.getMonth()]\n },\n\n // Day of week: Su, Mo, ..., Sa\n 'dd': function (date) {\n return weekdays2char[date.getDay()]\n },\n\n // Day of week: Sun, Mon, ..., Sat\n 'ddd': function (date) {\n return weekdays3char[date.getDay()]\n },\n\n // Day of week: Sunday, Monday, ..., Saturday\n 'dddd': function (date) {\n return weekdaysFull[date.getDay()]\n },\n\n // AM, PM\n 'A': function (date) {\n return (date.getHours() / 12) >= 1 ? meridiemUppercase[1] : meridiemUppercase[0]\n },\n\n // am, pm\n 'a': function (date) {\n return (date.getHours() / 12) >= 1 ? meridiemLowercase[1] : meridiemLowercase[0]\n },\n\n // a.m., p.m.\n 'aa': function (date) {\n return (date.getHours() / 12) >= 1 ? meridiemFull[1] : meridiemFull[0]\n }\n }\n\n // Generate ordinal version of formatters: M -> Mo, D -> Do, etc.\n var ordinalFormatters = ['M', 'D', 'DDD', 'd', 'Q', 'W']\n ordinalFormatters.forEach(function (formatterToken) {\n formatters[formatterToken + 'o'] = function (date, formatters) {\n return ordinal(formatters[formatterToken](date))\n }\n })\n\n return {\n formatters: formatters,\n formattingTokensRegExp: buildFormattingTokensRegExp(formatters)\n }\n}\n\nfunction ordinal (number) {\n var rem100 = number % 100\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st'\n case 2:\n return number + 'nd'\n case 3:\n return number + 'rd'\n }\n }\n return number + 'th'\n}\n\nmodule.exports = buildFormatLocale\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/date-fns/locale/en/build_format_locale/index.js\n// module id = ./node_modules/date-fns/locale/en/build_format_locale/index.js\n// module chunks = socialstream map wingtagsmap","var buildDistanceInWordsLocale = require('./build_distance_in_words_locale/index.js')\nvar buildFormatLocale = require('./build_format_locale/index.js')\n\n/**\n * @category Locales\n * @summary English locale.\n */\nmodule.exports = {\n distanceInWords: buildDistanceInWordsLocale(),\n format: buildFormatLocale()\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/date-fns/locale/en/index.js\n// module id = ./node_modules/date-fns/locale/en/index.js\n// module chunks = socialstream map wingtagsmap","var isDate = require('../is_date/index.js')\n\nvar MILLISECONDS_IN_HOUR = 3600000\nvar MILLISECONDS_IN_MINUTE = 60000\nvar DEFAULT_ADDITIONAL_DIGITS = 2\n\nvar parseTokenDateTimeDelimeter = /[T ]/\nvar parseTokenPlainTime = /:/\n\n// year tokens\nvar parseTokenYY = /^(\\d{2})$/\nvar parseTokensYYY = [\n /^([+-]\\d{2})$/, // 0 additional digits\n /^([+-]\\d{3})$/, // 1 additional digit\n /^([+-]\\d{4})$/ // 2 additional digits\n]\n\nvar parseTokenYYYY = /^(\\d{4})/\nvar parseTokensYYYYY = [\n /^([+-]\\d{4})/, // 0 additional digits\n /^([+-]\\d{5})/, // 1 additional digit\n /^([+-]\\d{6})/ // 2 additional digits\n]\n\n// date tokens\nvar parseTokenMM = /^-(\\d{2})$/\nvar parseTokenDDD = /^-?(\\d{3})$/\nvar parseTokenMMDD = /^-?(\\d{2})-?(\\d{2})$/\nvar parseTokenWww = /^-?W(\\d{2})$/\nvar parseTokenWwwD = /^-?W(\\d{2})-?(\\d{1})$/\n\n// time tokens\nvar parseTokenHH = /^(\\d{2}([.,]\\d*)?)$/\nvar parseTokenHHMM = /^(\\d{2}):?(\\d{2}([.,]\\d*)?)$/\nvar parseTokenHHMMSS = /^(\\d{2}):?(\\d{2}):?(\\d{2}([.,]\\d*)?)$/\n\n// timezone tokens\nvar parseTokenTimezone = /([Z+-].*)$/\nvar parseTokenTimezoneZ = /^(Z)$/\nvar parseTokenTimezoneHH = /^([+-])(\\d{2})$/\nvar parseTokenTimezoneHHMM = /^([+-])(\\d{2}):?(\\d{2})$/\n\n/**\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If an argument is a string, the function tries to parse it.\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If all above fails, the function passes the given argument to Date constructor.\n *\n * @param {Date|String|Number} argument - the value to convert\n * @param {Object} [options] - the object with options\n * @param {0 | 1 | 2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * var result = parse('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Parse string '+02014101',\n * // if the additional number of digits in the extended year format is 1:\n * var result = parse('+02014101', {additionalDigits: 1})\n * //=> Fri Apr 11 2014 00:00:00\n */\nfunction parse (argument, dirtyOptions) {\n if (isDate(argument)) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime())\n } else if (typeof argument !== 'string') {\n return new Date(argument)\n }\n\n var options = dirtyOptions || {}\n var additionalDigits = options.additionalDigits\n if (additionalDigits == null) {\n additionalDigits = DEFAULT_ADDITIONAL_DIGITS\n } else {\n additionalDigits = Number(additionalDigits)\n }\n\n var dateStrings = splitDateString(argument)\n\n var parseYearResult = parseYear(dateStrings.date, additionalDigits)\n var year = parseYearResult.year\n var restDateString = parseYearResult.restDateString\n\n var date = parseDate(restDateString, year)\n\n if (date) {\n var timestamp = date.getTime()\n var time = 0\n var offset\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time)\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone)\n } else {\n // get offset accurate to hour in timezones that change offset\n offset = new Date(timestamp + time).getTimezoneOffset()\n offset = new Date(timestamp + time + offset * MILLISECONDS_IN_MINUTE).getTimezoneOffset()\n }\n\n return new Date(timestamp + time + offset * MILLISECONDS_IN_MINUTE)\n } else {\n return new Date(argument)\n }\n}\n\nfunction splitDateString (dateString) {\n var dateStrings = {}\n var array = dateString.split(parseTokenDateTimeDelimeter)\n var timeString\n\n if (parseTokenPlainTime.test(array[0])) {\n dateStrings.date = null\n timeString = array[0]\n } else {\n dateStrings.date = array[0]\n timeString = array[1]\n }\n\n if (timeString) {\n var token = parseTokenTimezone.exec(timeString)\n if (token) {\n dateStrings.time = timeString.replace(token[1], '')\n dateStrings.timezone = token[1]\n } else {\n dateStrings.time = timeString\n }\n }\n\n return dateStrings\n}\n\nfunction parseYear (dateString, additionalDigits) {\n var parseTokenYYY = parseTokensYYY[additionalDigits]\n var parseTokenYYYYY = parseTokensYYYYY[additionalDigits]\n\n var token\n\n // YYYY or ±YYYYY\n token = parseTokenYYYY.exec(dateString) || parseTokenYYYYY.exec(dateString)\n if (token) {\n var yearString = token[1]\n return {\n year: parseInt(yearString, 10),\n restDateString: dateString.slice(yearString.length)\n }\n }\n\n // YY or ±YYY\n token = parseTokenYY.exec(dateString) || parseTokenYYY.exec(dateString)\n if (token) {\n var centuryString = token[1]\n return {\n year: parseInt(centuryString, 10) * 100,\n restDateString: dateString.slice(centuryString.length)\n }\n }\n\n // Invalid ISO-formatted year\n return {\n year: null\n }\n}\n\nfunction parseDate (dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) {\n return null\n }\n\n var token\n var date\n var month\n var week\n\n // YYYY\n if (dateString.length === 0) {\n date = new Date(0)\n date.setUTCFullYear(year)\n return date\n }\n\n // YYYY-MM\n token = parseTokenMM.exec(dateString)\n if (token) {\n date = new Date(0)\n month = parseInt(token[1], 10) - 1\n date.setUTCFullYear(year, month)\n return date\n }\n\n // YYYY-DDD or YYYYDDD\n token = parseTokenDDD.exec(dateString)\n if (token) {\n date = new Date(0)\n var dayOfYear = parseInt(token[1], 10)\n date.setUTCFullYear(year, 0, dayOfYear)\n return date\n }\n\n // YYYY-MM-DD or YYYYMMDD\n token = parseTokenMMDD.exec(dateString)\n if (token) {\n date = new Date(0)\n month = parseInt(token[1], 10) - 1\n var day = parseInt(token[2], 10)\n date.setUTCFullYear(year, month, day)\n return date\n }\n\n // YYYY-Www or YYYYWww\n token = parseTokenWww.exec(dateString)\n if (token) {\n week = parseInt(token[1], 10) - 1\n return dayOfISOYear(year, week)\n }\n\n // YYYY-Www-D or YYYYWwwD\n token = parseTokenWwwD.exec(dateString)\n if (token) {\n week = parseInt(token[1], 10) - 1\n var dayOfWeek = parseInt(token[2], 10) - 1\n return dayOfISOYear(year, week, dayOfWeek)\n }\n\n // Invalid ISO-formatted date\n return null\n}\n\nfunction parseTime (timeString) {\n var token\n var hours\n var minutes\n\n // hh\n token = parseTokenHH.exec(timeString)\n if (token) {\n hours = parseFloat(token[1].replace(',', '.'))\n return (hours % 24) * MILLISECONDS_IN_HOUR\n }\n\n // hh:mm or hhmm\n token = parseTokenHHMM.exec(timeString)\n if (token) {\n hours = parseInt(token[1], 10)\n minutes = parseFloat(token[2].replace(',', '.'))\n return (hours % 24) * MILLISECONDS_IN_HOUR +\n minutes * MILLISECONDS_IN_MINUTE\n }\n\n // hh:mm:ss or hhmmss\n token = parseTokenHHMMSS.exec(timeString)\n if (token) {\n hours = parseInt(token[1], 10)\n minutes = parseInt(token[2], 10)\n var seconds = parseFloat(token[3].replace(',', '.'))\n return (hours % 24) * MILLISECONDS_IN_HOUR +\n minutes * MILLISECONDS_IN_MINUTE +\n seconds * 1000\n }\n\n // Invalid ISO-formatted time\n return null\n}\n\nfunction parseTimezone (timezoneString) {\n var token\n var absoluteOffset\n\n // Z\n token = parseTokenTimezoneZ.exec(timezoneString)\n if (token) {\n return 0\n }\n\n // ±hh\n token = parseTokenTimezoneHH.exec(timezoneString)\n if (token) {\n absoluteOffset = parseInt(token[2], 10) * 60\n return (token[1] === '+') ? -absoluteOffset : absoluteOffset\n }\n\n // ±hh:mm or ±hhmm\n token = parseTokenTimezoneHHMM.exec(timezoneString)\n if (token) {\n absoluteOffset = parseInt(token[2], 10) * 60 + parseInt(token[3], 10)\n return (token[1] === '+') ? -absoluteOffset : absoluteOffset\n }\n\n return 0\n}\n\nfunction dayOfISOYear (isoYear, week, day) {\n week = week || 0\n day = day || 0\n var date = new Date(0)\n date.setUTCFullYear(isoYear, 0, 4)\n var fourthOfJanuaryDay = date.getUTCDay() || 7\n var diff = week * 7 + day + 1 - fourthOfJanuaryDay\n date.setUTCDate(date.getUTCDate() + diff)\n return date\n}\n\nmodule.exports = parse\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/date-fns/parse/index.js\n// module id = ./node_modules/date-fns/parse/index.js\n// module chunks = socialstream map wingtagsmap","var parse = require('../parse/index.js')\n\n/**\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * var result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nfunction startOfDay (dirtyDate) {\n var date = parse(dirtyDate)\n date.setHours(0, 0, 0, 0)\n return date\n}\n\nmodule.exports = startOfDay\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/date-fns/start_of_day/index.js\n// module id = ./node_modules/date-fns/start_of_day/index.js\n// module chunks = socialstream map wingtagsmap","var startOfWeek = require('../start_of_week/index.js')\n\n/**\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * var result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction startOfISOWeek (dirtyDate) {\n return startOfWeek(dirtyDate, {weekStartsOn: 1})\n}\n\nmodule.exports = startOfISOWeek\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/date-fns/start_of_iso_week/index.js\n// module id = ./node_modules/date-fns/start_of_iso_week/index.js\n// module chunks = socialstream map wingtagsmap","var getISOYear = require('../get_iso_year/index.js')\nvar startOfISOWeek = require('../start_of_iso_week/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of an ISO year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * var result = startOfISOYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nfunction startOfISOYear (dirtyDate) {\n var year = getISOYear(dirtyDate)\n var fourthOfJanuary = new Date(0)\n fourthOfJanuary.setFullYear(year, 0, 4)\n fourthOfJanuary.setHours(0, 0, 0, 0)\n var date = startOfISOWeek(fourthOfJanuary)\n return date\n}\n\nmodule.exports = startOfISOYear\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/date-fns/start_of_iso_year/index.js\n// module id = ./node_modules/date-fns/start_of_iso_year/index.js\n// module chunks = socialstream map wingtagsmap","var parse = require('../parse/index.js')\n\n/**\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * var result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * var result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), {weekStartsOn: 1})\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction startOfWeek (dirtyDate, dirtyOptions) {\n var weekStartsOn = dirtyOptions ? (Number(dirtyOptions.weekStartsOn) || 0) : 0\n\n var date = parse(dirtyDate)\n var day = date.getDay()\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn\n\n date.setDate(date.getDate() - diff)\n date.setHours(0, 0, 0, 0)\n return date\n}\n\nmodule.exports = startOfWeek\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/date-fns/start_of_week/index.js\n// module id = ./node_modules/date-fns/start_of_week/index.js\n// module chunks = socialstream map wingtagsmap","var parse = require('../parse/index.js')\n\n/**\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * var result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nfunction startOfYear (dirtyDate) {\n var cleanDate = parse(dirtyDate)\n var date = new Date(0)\n date.setFullYear(cleanDate.getFullYear(), 0, 1)\n date.setHours(0, 0, 0, 0)\n return date\n}\n\nmodule.exports = startOfYear\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/date-fns/start_of_year/index.js\n// module id = ./node_modules/date-fns/start_of_year/index.js\n// module chunks = socialstream map wingtagsmap","'use strict';\n\nvar has = Object.prototype.hasOwnProperty;\n\n//\n// We store our EE objects in a plain object whose properties are event names.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// `~` to make sure that the built-in object properties are not overridden or\n// used as an attack vector.\n// We also assume that `Object.create(null)` is available when the event name\n// is an ES6 Symbol.\n//\nvar prefix = typeof Object.create !== 'function' ? '~' : false;\n\n/**\n * Representation of a single EventEmitter function.\n *\n * @param {Function} fn Event handler to be called.\n * @param {Mixed} context Context for function execution.\n * @param {Boolean} [once=false] Only emit once\n * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal EventEmitter interface that is molded against the Node.js\n * EventEmitter interface.\n *\n * @constructor\n * @api public\n */\nfunction EventEmitter() { /* Nothing to set */ }\n\n/**\n * Hold the assigned EventEmitters by name.\n *\n * @type {Object}\n * @private\n */\nEventEmitter.prototype._events = undefined;\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @api public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var events = this._events\n , names = []\n , name;\n\n if (!events) return names;\n\n for (name in events) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return a list of assigned event listeners.\n *\n * @param {String} event The events that should be listed.\n * @param {Boolean} exists We only need to know if there are listeners.\n * @returns {Array|Boolean}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event, exists) {\n var evt = prefix ? prefix + event : event\n , available = this._events && this._events[evt];\n\n if (exists) return !!available;\n if (!available) return [];\n if (available.fn) return [available.fn];\n\n for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {\n ee[i] = available[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Emit an event to all registered event listeners.\n *\n * @param {String} event The name of the event.\n * @returns {Boolean} Indication if we've emitted an event.\n * @api public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events || !this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if ('function' === typeof listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Register a new EventListener for the given event.\n *\n * @param {String} event Name of the event.\n * @param {Function} fn Callback function.\n * @param {Mixed} [context=this] The context of the function.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n var listener = new EE(fn, context || this)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events) this._events = prefix ? {} : Object.create(null);\n if (!this._events[evt]) this._events[evt] = listener;\n else {\n if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [\n this._events[evt], listener\n ];\n }\n\n return this;\n};\n\n/**\n * Add an EventListener that's only called once.\n *\n * @param {String} event Name of the event.\n * @param {Function} fn Callback function.\n * @param {Mixed} [context=this] The context of the function.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n var listener = new EE(fn, context || this, true)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events) this._events = prefix ? {} : Object.create(null);\n if (!this._events[evt]) this._events[evt] = listener;\n else {\n if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [\n this._events[evt], listener\n ];\n }\n\n return this;\n};\n\n/**\n * Remove event listeners.\n *\n * @param {String} event The event we want to remove.\n * @param {Function} fn The listener that we need to find.\n * @param {Mixed} context Only remove listeners matching this context.\n * @param {Boolean} once Only remove once listeners.\n * @api public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events || !this._events[evt]) return this;\n\n var listeners = this._events[evt]\n , events = [];\n\n if (fn) {\n if (listeners.fn) {\n if (\n listeners.fn !== fn\n || (once && !listeners.once)\n || (context && listeners.context !== context)\n ) {\n events.push(listeners);\n }\n } else {\n for (var i = 0, length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn\n || (once && !listeners[i].once)\n || (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) {\n this._events[evt] = events.length === 1 ? events[0] : events;\n } else {\n delete this._events[evt];\n }\n\n return this;\n};\n\n/**\n * Remove all listeners or only the listeners for the specified event.\n *\n * @param {String} event The event want to remove all listeners for.\n * @api public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n if (!this._events) return this;\n\n if (event) delete this._events[prefix ? prefix + event : event];\n else this._events = prefix ? {} : Object.create(null);\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/eventemitter3/index.js\n// module id = ./node_modules/eventemitter3/index.js\n// module chunks = map bluemountainmap wingtagsmap","\"use strict\";\n\nexports.__esModule = true;\nvar generateHeatmap = exports.generateHeatmap = function generateHeatmap(instance, _ref) {\n var positions = _ref.positions;\n return new instance.visualization.HeatmapLayer({\n data: positions.reduce(function (acc, _ref2) {\n var lat = _ref2.lat,\n lng = _ref2.lng,\n _ref2$weight = _ref2.weight,\n weight = _ref2$weight === undefined ? 1 : _ref2$weight;\n\n acc.push({\n location: new instance.LatLng(lat, lng),\n weight: weight\n });\n return acc;\n }, [])\n });\n};\n\nvar optionsHeatmap = exports.optionsHeatmap = function optionsHeatmap(instance, _ref3) {\n var _ref3$options = _ref3.options,\n options = _ref3$options === undefined ? {} : _ref3$options;\n return Object.keys(options).map(function (option) {\n return instance.set(option, options[option]);\n });\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/google-map-react/lib/google_heatmap.js\n// module id = ./node_modules/google-map-react/lib/google_heatmap.js\n// module chunks = map bluemountainmap wingtagsmap","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _google_map_map = require('./google_map_map');\n\nvar _google_map_map2 = _interopRequireDefault(_google_map_map);\n\nvar _marker_dispatcher = require('./marker_dispatcher');\n\nvar _marker_dispatcher2 = _interopRequireDefault(_marker_dispatcher);\n\nvar _google_map_markers = require('./google_map_markers');\n\nvar _google_map_markers2 = _interopRequireDefault(_google_map_markers);\n\nvar _google_map_markers_prerender = require('./google_map_markers_prerender');\n\nvar _google_map_markers_prerender2 = _interopRequireDefault(_google_map_markers_prerender);\n\nvar _google_heatmap = require('./google_heatmap');\n\nvar _google_map_loader = require('./loaders/google_map_loader');\n\nvar _google_map_loader2 = _interopRequireDefault(_google_map_loader);\n\nvar _geo = require('./utils/geo');\n\nvar _geo2 = _interopRequireDefault(_geo);\n\nvar _raf = require('./utils/raf');\n\nvar _raf2 = _interopRequireDefault(_raf);\n\nvar _pick = require('./utils/pick');\n\nvar _pick2 = _interopRequireDefault(_pick);\n\nvar _omit = require('./utils/omit');\n\nvar _omit2 = _interopRequireDefault(_omit);\n\nvar _log = require('./utils/math/log2');\n\nvar _log2 = _interopRequireDefault(_log);\n\nvar _isEmpty = require('./utils/isEmpty');\n\nvar _isEmpty2 = _interopRequireDefault(_isEmpty);\n\nvar _isNumber = require('./utils/isNumber');\n\nvar _isNumber2 = _interopRequireDefault(_isNumber);\n\nvar _detect = require('./utils/detect');\n\nvar _detect2 = _interopRequireDefault(_detect);\n\nvar _shallowEqual = require('./utils/shallowEqual');\n\nvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\nvar _isPlainObject = require('./utils/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _isArraysEqualEps = require('./utils/isArraysEqualEps');\n\nvar _isArraysEqualEps2 = _interopRequireDefault(_isArraysEqualEps);\n\nvar _detectElementResize = require('./utils/detectElementResize');\n\nvar _detectElementResize2 = _interopRequireDefault(_detectElementResize);\n\nvar _passiveEvents = require('./utils/passiveEvents');\n\nvar _passiveEvents2 = _interopRequireDefault(_passiveEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint-disable import/no-extraneous-dependencies, react/forbid-prop-types, react/no-find-dom-node, no-console */\n\n\n// helpers\n\n\n// loaders\n\n\n// utils\n\n\n// consts\nvar kEPS = 0.00001;\nvar K_GOOGLE_TILE_SIZE = 256;\n// real minZoom calculated here _getMinZoom\nvar K_IDLE_TIMEOUT = 100;\nvar K_IDLE_CLICK_TIMEOUT = 300;\nvar DEFAULT_MIN_ZOOM = 3;\n// Starting with version 3.32, the maps API calls `draw()` each frame during\n// a zoom animation.\nvar DRAW_CALLED_DURING_ANIMATION_VERSION = 32;\nvar IS_REACT_16 = _reactDom2.default.createPortal !== undefined;\n\nvar createPortal = IS_REACT_16 ? _reactDom2.default.createPortal : _reactDom2.default.unstable_renderSubtreeIntoContainer;\n\nfunction defaultOptions_() /* maps */{\n return {\n overviewMapControl: false,\n streetViewControl: false,\n rotateControl: true,\n mapTypeControl: false,\n // disable poi\n styles: [{\n featureType: 'poi',\n elementType: 'labels',\n stylers: [{ visibility: 'off' }]\n }],\n minZoom: DEFAULT_MIN_ZOOM // dynamically recalculted if possible during init\n };\n}\n\nvar latLng2Obj = function latLng2Obj(latLng) {\n return (0, _isPlainObject2.default)(latLng) ? latLng : { lat: latLng[0], lng: latLng[1] };\n};\n\nvar _checkMinZoom = function _checkMinZoom(zoom, minZoom) {\n if (process.env.NODE_ENV !== 'production') {\n if (zoom < minZoom) {\n console.warn('GoogleMap: ' + // eslint-disable-line\n 'minZoom option is less than recommended ' + 'minZoom option for your map sizes.\\n' + 'overrided to value ' + minZoom);\n }\n }\n\n if (minZoom < zoom) {\n return zoom;\n }\n return minZoom;\n};\n\nvar isFullScreen = function isFullScreen() {\n return document.fullscreen || document.webkitIsFullScreen || document.mozFullScreen || document.msFullscreenElement;\n};\n\nvar GoogleMap = function (_Component) {\n _inherits(GoogleMap, _Component);\n\n // eslint-disable-line\n\n function GoogleMap(props) {\n _classCallCheck(this, GoogleMap);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props));\n\n _this._getMinZoom = function () {\n if (_this.geoService_.getWidth() > 0 || _this.geoService_.getHeight() > 0) {\n var tilesPerWidth = Math.ceil(_this.geoService_.getWidth() / K_GOOGLE_TILE_SIZE) + 2;\n var tilesPerHeight = Math.ceil(_this.geoService_.getHeight() / K_GOOGLE_TILE_SIZE) + 2;\n var maxTilesPerDim = Math.max(tilesPerWidth, tilesPerHeight);\n return Math.ceil((0, _log2.default)(maxTilesPerDim));\n }\n return DEFAULT_MIN_ZOOM;\n };\n\n _this._computeMinZoom = function (minZoom) {\n if (!(0, _isEmpty2.default)(minZoom)) {\n return minZoom;\n }\n return _this._getMinZoom();\n };\n\n _this._mapDomResizeCallback = function () {\n _this.resetSizeOnIdle_ = true;\n if (_this.maps_) {\n var originalCenter = _this.props.center || _this.props.defaultCenter;\n var currentCenter = _this.map_.getCenter();\n _this.maps_.event.trigger(_this.map_, 'resize');\n _this.map_.setCenter(_this.props.resetBoundsOnResize ? originalCenter : currentCenter);\n }\n };\n\n _this._setLayers = function (layerTypes) {\n layerTypes.forEach(function (layerType) {\n _this.layers_[layerType] = new _this.maps_[layerType]();\n _this.layers_[layerType].setMap(_this.map_);\n });\n };\n\n _this._renderPortal = function () {\n return _react2.default.createElement(_google_map_markers2.default, {\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: true,\n distanceToMouse: _this.props.distanceToMouse,\n getHoverDistance: _this._getHoverDistance,\n dispatcher: _this.markersDispatcher_\n });\n };\n\n _this._initMap = function () {\n // only initialize the map once\n if (_this.initialized_) {\n return;\n }\n _this.initialized_ = true;\n\n var propsCenter = latLng2Obj(_this.props.center || _this.props.defaultCenter);\n _this.geoService_.setView(propsCenter, _this.props.zoom || _this.props.defaultZoom, 0);\n\n _this._onBoundsChanged(); // now we can calculate map bounds center etc...\n\n var bootstrapURLKeys = _extends({}, _this.props.apiKey && { key: _this.props.apiKey }, _this.props.bootstrapURLKeys);\n\n _this.props.googleMapLoader(bootstrapURLKeys, _this.props.heatmapLibrary).then(function (maps) {\n if (!_this.mounted_) {\n return;\n }\n\n var centerLatLng = _this.geoService_.getCenter();\n\n var propsOptions = {\n zoom: _this.props.zoom || _this.props.defaultZoom,\n center: new maps.LatLng(centerLatLng.lat, centerLatLng.lng)\n };\n\n // Start Heatmap\n if (_this.props.heatmap.positions) {\n Object.assign(_this, {\n heatmap: (0, _google_heatmap.generateHeatmap)(maps, _this.props.heatmap)\n });\n (0, _google_heatmap.optionsHeatmap)(_this.heatmap, _this.props.heatmap);\n }\n // End Heatmap\n\n // prevent to exapose full api\n // next props must be exposed (console.log(Object.keys(pick(maps, isPlainObject))))\n // \"Animation\", \"ControlPosition\", \"MapTypeControlStyle\", \"MapTypeId\",\n // \"NavigationControlStyle\", \"ScaleControlStyle\", \"StrokePosition\",\n // \"SymbolPath\", \"ZoomControlStyle\",\n // \"event\", \"DirectionsStatus\", \"DirectionsTravelMode\", \"DirectionsUnitSystem\",\n // \"DistanceMatrixStatus\",\n // \"DistanceMatrixElementStatus\", \"ElevationStatus\", \"GeocoderLocationType\",\n // \"GeocoderStatus\", \"KmlLayerStatus\",\n // \"MaxZoomStatus\", \"StreetViewStatus\", \"TransitMode\", \"TransitRoutePreference\",\n // \"TravelMode\", \"UnitSystem\"\n var mapPlainObjects = (0, _pick2.default)(maps, _isPlainObject2.default);\n var options = typeof _this.props.options === 'function' ? _this.props.options(mapPlainObjects) : _this.props.options;\n var defaultOptions = defaultOptions_(mapPlainObjects);\n\n var draggableOptions = !(0, _isEmpty2.default)(_this.props.draggable) && {\n draggable: _this.props.draggable\n };\n\n var minZoom = _this._computeMinZoom(options.minZoom);\n _this.minZoom_ = minZoom;\n\n var preMapOptions = _extends({}, defaultOptions, {\n minZoom: minZoom\n }, options, propsOptions);\n\n _this.defaultDraggableOption_ = !(0, _isEmpty2.default)(preMapOptions.draggable) ? preMapOptions.draggable : _this.defaultDraggableOption_;\n\n var mapOptions = _extends({}, preMapOptions, draggableOptions);\n\n mapOptions.minZoom = _checkMinZoom(mapOptions.minZoom, minZoom);\n\n var map = new maps.Map(_reactDom2.default.findDOMNode(_this.googleMapDom_), mapOptions);\n\n _this.map_ = map;\n _this.maps_ = maps;\n\n _this._setLayers(_this.props.layerTypes);\n\n // Parse `google.maps.version` to capture the major version number.\n var versionMatch = maps.version.match(/^3\\.(\\d+)\\./);\n // The major version is the first (and only) captured group.\n var mapsVersion = versionMatch && Number(versionMatch[1]);\n\n // render in overlay\n var this_ = _this;\n var overlay = Object.assign(new maps.OverlayView(), {\n onAdd: function onAdd() {\n var K_MAX_WIDTH = typeof screen !== 'undefined' ? screen.width + 'px' : '2000px';\n var K_MAX_HEIGHT = typeof screen !== 'undefined' ? screen.height + 'px' : '2000px';\n\n var div = document.createElement('div');\n div.style.backgroundColor = 'transparent';\n div.style.position = 'absolute';\n div.style.left = '0px';\n div.style.top = '0px';\n div.style.width = K_MAX_WIDTH; // prevents some chrome draw defects\n div.style.height = K_MAX_HEIGHT;\n\n if (this_.props.overlayViewDivStyle) {\n var overlayViewDivStyle = this_.props.overlayViewDivStyle;\n\n if ((typeof overlayViewDivStyle === 'undefined' ? 'undefined' : _typeof(overlayViewDivStyle)) === 'object') {\n Object.keys(overlayViewDivStyle).forEach(function (property) {\n div.style[property] = overlayViewDivStyle[property];\n });\n }\n }\n\n var panes = this.getPanes();\n panes.overlayMouseTarget.appendChild(div);\n this_.geoService_.setMapCanvasProjection(maps, overlay.getProjection());\n\n if (!IS_REACT_16) {\n createPortal(this_, this_._renderPortal(), div,\n // remove prerendered markers\n function () {\n return this_.setState({ overlay: div });\n });\n } else {\n this_.setState({ overlay: div });\n }\n },\n onRemove: function onRemove() {\n var renderedOverlay = this_.state.overlay;\n if (renderedOverlay && !IS_REACT_16) {\n _reactDom2.default.unmountComponentAtNode(renderedOverlay);\n }\n this_.setState({ overlay: null });\n },\n draw: function draw() {\n this_.updateCounter_++;\n this_._onBoundsChanged(map, maps, !this_.props.debounced);\n\n if (!this_.googleApiLoadedCalled_) {\n this_._onGoogleApiLoaded({ map: map, maps: maps, ref: this_.googleMapDom_ });\n this_.googleApiLoadedCalled_ = true;\n }\n\n if (this_.mouse_) {\n var latLng = this_.geoService_.fromContainerPixelToLatLng(this_.mouse_);\n this_.mouse_.lat = latLng.lat;\n this_.mouse_.lng = latLng.lng;\n }\n\n this_._onChildMouseMove();\n\n if (this_.markersDispatcher_) {\n this_.markersDispatcher_.emit('kON_CHANGE');\n if (this_.fireMouseEventOnIdle_) {\n this_.markersDispatcher_.emit('kON_MOUSE_POSITION_CHANGE');\n }\n }\n }\n });\n\n _this.overlay_ = overlay;\n\n overlay.setMap(map);\n if (_this.props.heatmap.positions) {\n _this.heatmap.setMap(map);\n }\n\n if (_this.props.onTilesLoaded) {\n maps.event.addListener(map, 'tilesloaded', function () {\n this_._onTilesLoaded();\n });\n }\n\n maps.event.addListener(map, 'zoom_changed', function () {\n // recalc position at zoom start\n if (this_.geoService_.getZoom() !== map.getZoom()) {\n if (!this_.zoomAnimationInProgress_) {\n this_.zoomAnimationInProgress_ = true;\n this_._onZoomAnimationStart(map.zoom);\n }\n\n // If draw() is not called each frame during a zoom animation,\n // simulate it.\n if (mapsVersion < DRAW_CALLED_DURING_ANIMATION_VERSION) {\n var TIMEOUT_ZOOM = 300;\n\n if (new Date().getTime() - _this.zoomControlClickTime_ < TIMEOUT_ZOOM) {\n // there is strange Google Map Api behavior in chrome when zoom animation of map\n // is started only on second raf call, if was click on zoom control\n // or +- keys pressed, so i wait for two rafs before change state\n\n // this does not fully prevent animation jump\n // but reduce it's occurence probability\n (0, _raf2.default)(function () {\n return (0, _raf2.default)(function () {\n this_.updateCounter_++;\n this_._onBoundsChanged(map, maps);\n });\n });\n } else {\n this_.updateCounter_++;\n this_._onBoundsChanged(map, maps);\n }\n }\n }\n });\n\n maps.event.addListener(map, 'idle', function () {\n if (_this.resetSizeOnIdle_) {\n _this._setViewSize();\n var currMinZoom = _this._computeMinZoom(_this.props.options.minZoom);\n\n if (currMinZoom !== _this.minZoom_) {\n _this.minZoom_ = currMinZoom;\n map.setOptions({ minZoom: currMinZoom });\n }\n\n _this.resetSizeOnIdle_ = false;\n }\n\n if (this_.zoomAnimationInProgress_) {\n this_.zoomAnimationInProgress_ = false;\n this_._onZoomAnimationEnd(map.zoom);\n }\n\n this_.updateCounter_++;\n this_._onBoundsChanged(map, maps);\n\n this_.dragTime_ = 0;\n\n if (this_.markersDispatcher_) {\n this_.markersDispatcher_.emit('kON_CHANGE');\n }\n });\n\n maps.event.addListener(map, 'mouseover', function () {\n // has advantage over div MouseLeave\n this_.mouseInMap_ = true;\n });\n\n // an alternative way to know the mouse is back within the map\n // This would not fire when clicking/interacting with google maps\n // own on-map countrols+markers. This handles an edge case for touch devices\n // + 'draggable:false' custom option. See #332 for more details.\n maps.event.addListener(map, 'click', function () {\n this_.mouseInMap_ = true;\n });\n\n maps.event.addListener(map, 'mouseout', function () {\n // has advantage over div MouseLeave\n this_.mouseInMap_ = false;\n this_.mouse_ = null;\n this_.markersDispatcher_.emit('kON_MOUSE_POSITION_CHANGE');\n });\n\n maps.event.addListener(map, 'drag', function () {\n this_.dragTime_ = new Date().getTime();\n this_._onDrag(map);\n });\n\n maps.event.addListener(map, 'dragend', function () {\n // 'dragend' fires on mouse release.\n // 'idle' listener waits until drag inertia ends before firing `onDragEnd`\n var idleListener = maps.event.addListener(map, 'idle', function () {\n maps.event.removeListener(idleListener);\n this_._onDragEnd(map);\n });\n });\n // user choosing satellite vs roads, etc\n maps.event.addListener(map, 'maptypeid_changed', function () {\n this_._onMapTypeIdChange(map.getMapTypeId());\n });\n }).catch(function (e) {\n // notify callback of load failure\n _this._onGoogleApiLoaded({\n map: null,\n maps: null,\n ref: _this.googleMapDom_\n });\n console.error(e); // eslint-disable-line no-console\n throw e;\n });\n };\n\n _this._onGoogleApiLoaded = function () {\n if (_this.props.onGoogleApiLoaded) {\n var _this$props;\n\n if (process.env.NODE_ENV !== 'production' && _this.props.yesIWantToUseGoogleMapApiInternals !== true) {\n console.warn('GoogleMap: ' + // eslint-disable-line\n 'Usage of internal api objects is dangerous ' + 'and can cause a lot of issues.\\n' + 'To hide this warning add yesIWantToUseGoogleMapApiInternals={true} ' + 'to K_RECALC_CLIENT_RECT_MS) {\n _this.boundingRect_ = e.currentTarget.getBoundingClientRect();\n }\n _this.mouseMoveTime_ = currTime;\n\n var mousePosX = e.clientX - _this.boundingRect_.left;\n var mousePosY = e.clientY - _this.boundingRect_.top;\n\n if (!_this.mouse_) {\n _this.mouse_ = { x: 0, y: 0, lat: 0, lng: 0 };\n }\n\n _this.mouse_.x = mousePosX;\n _this.mouse_.y = mousePosY;\n\n var latLng = _this.geoService_.fromContainerPixelToLatLng(_this.mouse_);\n _this.mouse_.lat = latLng.lat;\n _this.mouse_.lng = latLng.lng;\n\n _this._onChildMouseMove();\n\n if (currTime - _this.dragTime_ < K_IDLE_TIMEOUT) {\n _this.fireMouseEventOnIdle_ = true;\n } else {\n _this.markersDispatcher_.emit('kON_MOUSE_POSITION_CHANGE');\n _this.fireMouseEventOnIdle_ = false;\n }\n };\n\n _this._onClick = function () {\n var _this$props12;\n\n return _this.props.onClick && !_this.childMouseDownArgs_ && new Date().getTime() - _this.childMouseUpTime_ > K_IDLE_CLICK_TIMEOUT && _this.dragTime_ === 0 && (_this$props12 = _this.props).onClick.apply(_this$props12, arguments);\n };\n\n _this._onMapClick = function (event) {\n if (_this.markersDispatcher_) {\n // support touch events and recalculate mouse position on click\n _this._onMapMouseMove(event);\n var currTime = new Date().getTime();\n if (currTime - _this.dragTime_ > K_IDLE_TIMEOUT) {\n if (_this.mouse_) {\n _this._onClick(_extends({}, _this.mouse_, {\n event: event\n }));\n }\n\n _this.markersDispatcher_.emit('kON_CLICK', event);\n }\n }\n };\n\n _this._onMapMouseDownNative = function (event) {\n if (!_this.mouseInMap_) return;\n\n _this._onMapMouseDown(event);\n };\n\n _this._onMapMouseDown = function (event) {\n if (_this.markersDispatcher_) {\n var currTime = new Date().getTime();\n if (currTime - _this.dragTime_ > K_IDLE_TIMEOUT) {\n // Hovered marker detected at mouse move could be deleted at mouse down time\n // so it will be good to force hovered marker recalculation\n _this._onMapMouseMove(event);\n _this.markersDispatcher_.emit('kON_MDOWN', event);\n }\n }\n };\n\n _this._onMapMouseDownCapture = function () {\n if ((0, _detect2.default)().isChrome) {\n // to fix strange zoom in chrome\n _this.zoomControlClickTime_ = new Date().getTime();\n }\n };\n\n _this._onKeyDownCapture = function () {\n if ((0, _detect2.default)().isChrome) {\n _this.zoomControlClickTime_ = new Date().getTime();\n }\n };\n\n _this._isCenterDefined = function (center) {\n return center && ((0, _isPlainObject2.default)(center) && (0, _isNumber2.default)(center.lat) && (0, _isNumber2.default)(center.lng) || center.length === 2 && (0, _isNumber2.default)(center[0]) && (0, _isNumber2.default)(center[1]));\n };\n\n _this._onBoundsChanged = function (map, maps, callExtBoundsChange) {\n if (map) {\n var gmC = map.getCenter();\n _this.geoService_.setView([gmC.lat(), gmC.lng()], map.getZoom(), 0);\n }\n\n if ((_this.props.onChange || _this.props.onBoundsChange) && _this.geoService_.canProject()) {\n var zoom = _this.geoService_.getZoom();\n var bounds = _this.geoService_.getBounds();\n var centerLatLng = _this.geoService_.getCenter();\n\n if (!(0, _isArraysEqualEps2.default)(bounds, _this.prevBounds_, kEPS)) {\n if (callExtBoundsChange !== false) {\n var marginBounds = _this.geoService_.getBounds(_this.props.margin);\n if (_this.props.onBoundsChange) {\n _this.props.onBoundsChange(_this.centerIsObject_ ? _extends({}, centerLatLng) : [centerLatLng.lat, centerLatLng.lng], zoom, bounds, marginBounds);\n }\n\n if (_this.props.onChange) {\n _this.props.onChange({\n center: _extends({}, centerLatLng),\n zoom: zoom,\n bounds: {\n nw: {\n lat: bounds[0],\n lng: bounds[1]\n },\n se: {\n lat: bounds[2],\n lng: bounds[3]\n },\n sw: {\n lat: bounds[4],\n lng: bounds[5]\n },\n ne: {\n lat: bounds[6],\n lng: bounds[7]\n }\n },\n marginBounds: {\n nw: {\n lat: marginBounds[0],\n lng: marginBounds[1]\n },\n se: {\n lat: marginBounds[2],\n lng: marginBounds[3]\n },\n sw: {\n lat: marginBounds[4],\n lng: marginBounds[5]\n },\n ne: {\n lat: marginBounds[6],\n lng: marginBounds[7]\n }\n },\n\n size: _this.geoService_.hasSize() ? {\n width: _this.geoService_.getWidth(),\n height: _this.geoService_.getHeight()\n } : {\n width: 0,\n height: 0\n }\n });\n }\n\n _this.prevBounds_ = bounds;\n }\n }\n }\n };\n\n _this._registerChild = function (ref) {\n _this.googleMapDom_ = ref;\n };\n\n _this.mounted_ = false;\n _this.initialized_ = false;\n _this.googleApiLoadedCalled_ = false;\n\n _this.map_ = null;\n _this.maps_ = null;\n _this.prevBounds_ = null;\n _this.heatmap = null;\n\n _this.layers_ = {};\n\n _this.mouse_ = null;\n _this.mouseMoveTime_ = 0;\n _this.boundingRect_ = null;\n _this.mouseInMap_ = true;\n\n _this.dragTime_ = 0;\n _this.fireMouseEventOnIdle_ = false;\n _this.updateCounter_ = 0;\n\n _this.markersDispatcher_ = new _marker_dispatcher2.default(_this);\n _this.geoService_ = new _geo2.default(K_GOOGLE_TILE_SIZE);\n _this.centerIsObject_ = (0, _isPlainObject2.default)(_this.props.center);\n\n _this.minZoom_ = DEFAULT_MIN_ZOOM;\n _this.defaultDraggableOption_ = true;\n\n _this.zoomControlClickTime_ = 0;\n\n _this.childMouseDownArgs_ = null;\n _this.childMouseUpTime_ = 0;\n\n _this.googleMapDom_ = null;\n\n if (process.env.NODE_ENV !== 'production') {\n if (_this.props.apiKey) {\n console.warn('GoogleMap: ' + // eslint-disable-line no-console\n 'apiKey is deprecated, use ' + 'bootstrapURLKeys={{key: YOUR_API_KEY}} instead.');\n }\n\n if (_this.props.onBoundsChange) {\n console.warn('GoogleMap: ' + // eslint-disable-line no-console\n 'onBoundsChange is deprecated, use ' + 'onChange({center, zoom, bounds, ...other}) instead.');\n }\n\n if ((0, _isEmpty2.default)(_this.props.center) && (0, _isEmpty2.default)(_this.props.defaultCenter)) {\n console.warn('GoogleMap: center or defaultCenter property must be defined' // eslint-disable-line no-console\n );\n }\n\n if ((0, _isEmpty2.default)(_this.props.zoom) && (0, _isEmpty2.default)(_this.props.defaultZoom)) {\n console.warn('GoogleMap: zoom or defaultZoom property must be defined' // eslint-disable-line no-console\n );\n }\n }\n\n if (_this._isCenterDefined(_this.props.center || _this.props.defaultCenter)) {\n var propsCenter = latLng2Obj(_this.props.center || _this.props.defaultCenter);\n _this.geoService_.setView(propsCenter, _this.props.zoom || _this.props.defaultZoom, 0);\n }\n\n _this.zoomAnimationInProgress_ = false;\n\n _this.state = {\n overlay: null\n };\n return _this;\n }\n\n GoogleMap.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n this.mounted_ = true;\n (0, _passiveEvents2.default)(window, 'resize', this._onWindowResize, false);\n (0, _passiveEvents2.default)(window, 'keydown', this._onKeyDownCapture, true);\n var mapDom = _reactDom2.default.findDOMNode(this.googleMapDom_);\n // gmap can't prevent map drag if mousedown event already occured\n // the only workaround I find is prevent mousedown native browser event\n\n if (mapDom) {\n (0, _passiveEvents2.default)(mapDom, 'mousedown', this._onMapMouseDownNative, true);\n }\n\n (0, _passiveEvents2.default)(window, 'mouseup', this._onChildMouseUp, false);\n var bootstrapURLKeys = _extends({}, this.props.apiKey && { key: this.props.apiKey }, this.props.bootstrapURLKeys);\n\n this.props.googleMapLoader(bootstrapURLKeys, this.props.heatmapLibrary); // we can start load immediatly\n\n setTimeout(function () {\n // to detect size\n _this2._setViewSize();\n if (_this2._isCenterDefined(_this2.props.center || _this2.props.defaultCenter)) {\n _this2._initMap();\n }\n }, 0, this);\n if (this.props.resetBoundsOnResize) {\n var that = this;\n _detectElementResize2.default.addResizeListener(mapDom, that._mapDomResizeCallback);\n }\n };\n\n GoogleMap.prototype.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(nextProps) {\n var _this3 = this;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(0, _shallowEqual2.default)(this.props.defaultCenter, nextProps.defaultCenter)) {\n console.warn(\"GoogleMap: defaultCenter prop changed. You can't change default props.\");\n }\n\n if (!(0, _shallowEqual2.default)(this.props.defaultZoom, nextProps.defaultZoom)) {\n console.warn(\"GoogleMap: defaultZoom prop changed. You can't change default props.\");\n }\n }\n\n if (!this._isCenterDefined(this.props.center) && this._isCenterDefined(nextProps.center)) {\n setTimeout(function () {\n return _this3._initMap();\n }, 0);\n }\n\n if (this.map_) {\n var centerLatLng = this.geoService_.getCenter();\n if (this._isCenterDefined(nextProps.center)) {\n var nextPropsCenter = latLng2Obj(nextProps.center);\n var currCenter = this._isCenterDefined(this.props.center) ? latLng2Obj(this.props.center) : null;\n\n if (!currCenter || Math.abs(nextPropsCenter.lat - currCenter.lat) + Math.abs(nextPropsCenter.lng - currCenter.lng) > kEPS) {\n if (Math.abs(nextPropsCenter.lat - centerLatLng.lat) + Math.abs(nextPropsCenter.lng - centerLatLng.lng) > kEPS) {\n this.map_.panTo({\n lat: nextPropsCenter.lat,\n lng: nextPropsCenter.lng\n });\n }\n }\n }\n\n if (!(0, _isEmpty2.default)(nextProps.zoom)) {\n // if zoom chaged by user\n if (Math.abs(nextProps.zoom - this.props.zoom) > 0) {\n this.map_.setZoom(nextProps.zoom);\n }\n }\n\n if (!(0, _isEmpty2.default)(this.props.draggable) && (0, _isEmpty2.default)(nextProps.draggable)) {\n // reset to default\n this.map_.setOptions({ draggable: this.defaultDraggableOption_ });\n } else if (!(0, _shallowEqual2.default)(this.props.draggable, nextProps.draggable)) {\n // also prevent this on window 'mousedown' event to prevent map move\n this.map_.setOptions({ draggable: nextProps.draggable });\n }\n\n // use shallowEqual to try avoid calling map._setOptions if only the ref changes\n if (!(0, _isEmpty2.default)(nextProps.options) && !(0, _shallowEqual2.default)(this.props.options, nextProps.options)) {\n var mapPlainObjects = (0, _pick2.default)(this.maps_, _isPlainObject2.default);\n var options = typeof nextProps.options === 'function' ? nextProps.options(mapPlainObjects) : nextProps.options;\n // remove zoom, center and draggable options as these are managed by google-maps-react\n options = (0, _omit2.default)(options, ['zoom', 'center', 'draggable']);\n\n if ('minZoom' in options) {\n var minZoom = this._computeMinZoom(options.minZoom);\n options.minZoom = _checkMinZoom(options.minZoom, minZoom);\n }\n\n this.map_.setOptions(options);\n }\n\n if (!(0, _shallowEqual2.default)(nextProps.layerTypes, this.props.layerTypes)) {\n Object.keys(this.layers_).forEach(function (layerKey) {\n _this3.layers_[layerKey].setMap(null);\n delete _this3.layers_[layerKey];\n });\n this._setLayers(nextProps.layerTypes);\n }\n\n if (this.heatmap && !(0, _shallowEqual2.default)(nextProps.heatmap.positions, this.props.heatmap.positions)) {\n this.heatmap.setData(nextProps.heatmap.positions.map(function (p) {\n return {\n location: new _this3.maps_.LatLng(p.lat, p.lng),\n weight: p.weight\n };\n }));\n }\n }\n };\n\n GoogleMap.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState) {\n // draggable does not affect inner components\n return !(0, _shallowEqual2.default)((0, _omit2.default)(this.props, ['draggable']), (0, _omit2.default)(nextProps, ['draggable'])) || !(0, _shallowEqual2.default)(this.state, nextState);\n };\n\n GoogleMap.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {\n this.markersDispatcher_.emit('kON_CHANGE');\n\n if (!(0, _shallowEqual2.default)(this.props.hoverDistance, prevProps.hoverDistance)) {\n this.markersDispatcher_.emit('kON_MOUSE_POSITION_CHANGE');\n }\n };\n\n GoogleMap.prototype.componentWillUnmount = function componentWillUnmount() {\n this.mounted_ = false;\n var mapDom = _reactDom2.default.findDOMNode(this.googleMapDom_);\n if (mapDom) {\n mapDom.removeEventListener('mousedown', this._onMapMouseDownNative, true);\n }\n window.removeEventListener('resize', this._onWindowResize);\n window.removeEventListener('keydown', this._onKeyDownCapture);\n window.removeEventListener('mouseup', this._onChildMouseUp, false);\n if (this.props.resetBoundsOnResize) {\n _detectElementResize2.default.removeResizeListener(mapDom, this._mapDomResizeCallback);\n }\n\n if (this.overlay_) {\n // this triggers overlay_.onRemove(), which will unmount the \n this.overlay_.setMap(null);\n }\n\n if (this.maps_ && this.map_ && this.props.shouldUnregisterMapOnUnmount) {\n // fix google, as otherwise listeners works even without map\n this.map_.setOptions({ scrollwheel: false });\n this.maps_.event.clearInstanceListeners(this.map_);\n }\n\n if (this.props.shouldUnregisterMapOnUnmount) {\n this.map_ = null;\n this.maps_ = null;\n }\n this.markersDispatcher_.dispose();\n\n this.resetSizeOnIdle_ = false;\n\n if (this.props.shouldUnregisterMapOnUnmount) {\n delete this.map_;\n delete this.markersDispatcher_;\n }\n };\n // calc minZoom if map size available\n // it's better to not set minZoom less than this calculation gives\n // otherwise there is no homeomorphism between screen coordinates and map\n // (one map coordinate can have different screen coordinates)\n\n\n // this method works only if this.props.onChildMouseDown was called\n\n\n // this method works only if this.props.onChildMouseDown was called\n\n\n // K_IDLE_CLICK_TIMEOUT - looks like 300 is enough\n\n\n // gmap can't prevent map drag if mousedown event already occured\n // the only workaround I find is prevent mousedown native browser event\n\n\n GoogleMap.prototype.render = function render() {\n var overlay = this.state.overlay;\n var mapMarkerPrerender = !overlay ? _react2.default.createElement(_google_map_markers_prerender2.default, {\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: false,\n distanceToMouse: this.props.distanceToMouse,\n getHoverDistance: this._getHoverDistance,\n dispatcher: this.markersDispatcher_\n }) : null;\n\n return _react2.default.createElement(\n 'div',\n {\n style: this.props.style,\n onMouseMove: this._onMapMouseMove,\n onMouseDownCapture: this._onMapMouseDownCapture,\n onClick: this._onMapClick\n },\n _react2.default.createElement(_google_map_map2.default, { registerChild: this._registerChild }),\n IS_REACT_16 && overlay && createPortal(this._renderPortal(), overlay),\n mapMarkerPrerender\n );\n };\n\n return GoogleMap;\n}(_react.Component);\n\nGoogleMap.propTypes = {\n apiKey: _propTypes2.default.string,\n bootstrapURLKeys: _propTypes2.default.any,\n\n defaultCenter: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.shape({\n lat: _propTypes2.default.number,\n lng: _propTypes2.default.number\n })]),\n center: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.shape({\n lat: _propTypes2.default.number,\n lng: _propTypes2.default.number\n })]),\n defaultZoom: _propTypes2.default.number,\n zoom: _propTypes2.default.number,\n onBoundsChange: _propTypes2.default.func,\n onChange: _propTypes2.default.func,\n onClick: _propTypes2.default.func,\n onChildClick: _propTypes2.default.func,\n onChildMouseDown: _propTypes2.default.func,\n onChildMouseUp: _propTypes2.default.func,\n onChildMouseMove: _propTypes2.default.func,\n onChildMouseEnter: _propTypes2.default.func,\n onChildMouseLeave: _propTypes2.default.func,\n onZoomAnimationStart: _propTypes2.default.func,\n onZoomAnimationEnd: _propTypes2.default.func,\n onDrag: _propTypes2.default.func,\n onDragEnd: _propTypes2.default.func,\n onMapTypeIdChange: _propTypes2.default.func,\n onTilesLoaded: _propTypes2.default.func,\n options: _propTypes2.default.any,\n distanceToMouse: _propTypes2.default.func,\n hoverDistance: _propTypes2.default.number,\n debounced: _propTypes2.default.bool,\n margin: _propTypes2.default.array,\n googleMapLoader: _propTypes2.default.any,\n onGoogleApiLoaded: _propTypes2.default.func,\n yesIWantToUseGoogleMapApiInternals: _propTypes2.default.bool,\n draggable: _propTypes2.default.bool,\n style: _propTypes2.default.any,\n resetBoundsOnResize: _propTypes2.default.bool,\n layerTypes: _propTypes2.default.arrayOf(_propTypes2.default.string), // ['TransitLayer', 'TrafficLayer']\n shouldUnregisterMapOnUnmount: _propTypes2.default.bool\n};\nGoogleMap.defaultProps = {\n distanceToMouse: function distanceToMouse(pt, mousePos /* , markerProps */) {\n return Math.sqrt((pt.x - mousePos.x) * (pt.x - mousePos.x) + (pt.y - mousePos.y) * (pt.y - mousePos.y));\n },\n\n hoverDistance: 30,\n debounced: true,\n options: defaultOptions_,\n googleMapLoader: _google_map_loader2.default,\n yesIWantToUseGoogleMapApiInternals: false,\n style: {\n width: '100%',\n height: '100%',\n margin: 0,\n padding: 0,\n position: 'relative'\n },\n layerTypes: [],\n heatmap: {},\n heatmapLibrary: false,\n shouldUnregisterMapOnUnmount: true\n};\nGoogleMap.googleMapLoader = _google_map_loader2.default;\nexports.default = GoogleMap;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/google-map-react/lib/google_map.js\n// module id = ./node_modules/google-map-react/lib/google_map.js\n// module chunks = map bluemountainmap wingtagsmap","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar style = {\n width: '100%',\n height: '100%',\n left: 0,\n top: 0,\n margin: 0,\n padding: 0,\n position: 'absolute'\n};\n\nvar GoogleMapMap = function (_Component) {\n _inherits(GoogleMapMap, _Component);\n\n function GoogleMapMap() {\n _classCallCheck(this, GoogleMapMap);\n\n return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n }\n\n GoogleMapMap.prototype.shouldComponentUpdate = function shouldComponentUpdate() {\n return false; // disable react on this div\n };\n\n GoogleMapMap.prototype.render = function render() {\n var registerChild = this.props.registerChild;\n\n return _react2.default.createElement('div', { ref: registerChild, style: style });\n };\n\n return GoogleMapMap;\n}(_react.Component);\n\nexports.default = GoogleMapMap;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/google-map-react/lib/google_map_map.js\n// module id = ./node_modules/google-map-react/lib/google_map_map.js\n// module chunks = map bluemountainmap wingtagsmap","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _omit = require('./utils/omit');\n\nvar _omit2 = _interopRequireDefault(_omit);\n\nvar _shallowEqual = require('./utils/shallowEqual');\n\nvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// utils\n\n\nvar mainStyle = {\n width: '100%',\n height: '100%',\n left: 0,\n top: 0,\n margin: 0,\n padding: 0,\n position: 'absolute'\n};\n\nvar style = {\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n backgroundColor: 'transparent',\n position: 'absolute'\n};\n\nvar GoogleMapMarkers = function (_Component) {\n _inherits(GoogleMapMarkers, _Component);\n\n /* eslint-disable react/forbid-prop-types */\n function GoogleMapMarkers(props) {\n _classCallCheck(this, GoogleMapMarkers);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props));\n\n _this._getState = function () {\n return {\n children: _this.props.dispatcher.getChildren(),\n updateCounter: _this.props.dispatcher.getUpdateCounter()\n };\n };\n\n _this._onChangeHandler = function () {\n if (!_this.dimensionsCache_) {\n return;\n }\n\n var prevChildCount = (_this.state.children || []).length;\n var state = _this._getState();\n\n _this.setState(state, function () {\n return (state.children || []).length !== prevChildCount && _this._onMouseChangeHandler();\n });\n };\n\n _this._onChildClick = function () {\n if (_this.props.onChildClick) {\n if (_this.hoverChildProps_) {\n var hoverKey = _this.hoverKey_;\n var childProps = _this.hoverChildProps_;\n // click works only on hovered item\n _this.props.onChildClick(hoverKey, childProps);\n }\n }\n };\n\n _this._onChildMouseDown = function () {\n if (_this.props.onChildMouseDown) {\n if (_this.hoverChildProps_) {\n var hoverKey = _this.hoverKey_;\n var childProps = _this.hoverChildProps_;\n // works only on hovered item\n _this.props.onChildMouseDown(hoverKey, childProps);\n }\n }\n };\n\n _this._onChildMouseEnter = function (hoverKey, childProps) {\n if (!_this.dimensionsCache_) {\n return;\n }\n\n if (_this.props.onChildMouseEnter) {\n _this.props.onChildMouseEnter(hoverKey, childProps);\n }\n\n _this.hoverChildProps_ = childProps;\n _this.hoverKey_ = hoverKey;\n _this.setState({ hoverKey: hoverKey });\n };\n\n _this._onChildMouseLeave = function () {\n if (!_this.dimensionsCache_) {\n return;\n }\n\n var hoverKey = _this.hoverKey_;\n var childProps = _this.hoverChildProps_;\n\n if (hoverKey !== undefined && hoverKey !== null) {\n if (_this.props.onChildMouseLeave) {\n _this.props.onChildMouseLeave(hoverKey, childProps);\n }\n\n _this.hoverKey_ = null;\n _this.hoverChildProps_ = null;\n _this.setState({ hoverKey: null });\n }\n };\n\n _this._onMouseAllow = function (value) {\n if (!value) {\n _this._onChildMouseLeave();\n }\n\n _this.allowMouse_ = value;\n };\n\n _this._onMouseChangeHandler = function () {\n if (_this.allowMouse_) {\n _this._onMouseChangeHandlerRaf();\n }\n };\n\n _this._onMouseChangeHandlerRaf = function () {\n if (!_this.dimensionsCache_) {\n return;\n }\n\n var mp = _this.props.dispatcher.getMousePosition();\n\n if (mp) {\n var distances = [];\n var hoverDistance = _this.props.getHoverDistance();\n\n _react2.default.Children.forEach(_this.state.children, function (child, childIndex) {\n if (!child) return;\n // layers\n if (child.props.latLng === undefined && child.props.lat === undefined && child.props.lng === undefined) {\n return;\n }\n\n var childKey = child.key !== undefined && child.key !== null ? child.key : childIndex;\n var dist = _this.props.distanceToMouse(_this.dimensionsCache_[childKey], mp, child.props);\n if (dist < hoverDistance) {\n distances.push({\n key: childKey,\n dist: dist,\n props: child.props\n });\n }\n });\n\n if (distances.length) {\n distances.sort(function (a, b) {\n return a.dist - b.dist;\n });\n var hoverKey = distances[0].key;\n var childProps = distances[0].props;\n\n if (_this.hoverKey_ !== hoverKey) {\n _this._onChildMouseLeave();\n\n _this._onChildMouseEnter(hoverKey, childProps);\n }\n } else {\n _this._onChildMouseLeave();\n }\n } else {\n _this._onChildMouseLeave();\n }\n };\n\n _this._getDimensions = function (key) {\n var childKey = key;\n return _this.dimensionsCache_[childKey];\n };\n\n _this.props.dispatcher.on('kON_CHANGE', _this._onChangeHandler);\n _this.props.dispatcher.on('kON_MOUSE_POSITION_CHANGE', _this._onMouseChangeHandler);\n _this.props.dispatcher.on('kON_CLICK', _this._onChildClick);\n _this.props.dispatcher.on('kON_MDOWN', _this._onChildMouseDown);\n\n _this.dimensionsCache_ = {};\n _this.hoverKey_ = null;\n _this.hoverChildProps_ = null;\n _this.allowMouse_ = true;\n\n _this.state = _extends({}, _this._getState(), { hoverKey: null });\n return _this;\n }\n /* eslint-enable react/forbid-prop-types */\n\n GoogleMapMarkers.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState) {\n if (this.props.experimental === true) {\n return !(0, _shallowEqual2.default)(this.props, nextProps) || !(0, _shallowEqual2.default)((0, _omit2.default)(this.state, ['hoverKey']), (0, _omit2.default)(nextState, ['hoverKey']));\n }\n\n return !(0, _shallowEqual2.default)(this.props, nextProps) || !(0, _shallowEqual2.default)(this.state, nextState);\n };\n\n GoogleMapMarkers.prototype.componentWillUnmount = function componentWillUnmount() {\n this.props.dispatcher.removeListener('kON_CHANGE', this._onChangeHandler);\n this.props.dispatcher.removeListener('kON_MOUSE_POSITION_CHANGE', this._onMouseChangeHandler);\n this.props.dispatcher.removeListener('kON_CLICK', this._onChildClick);\n this.props.dispatcher.removeListener('kON_MDOWN', this._onChildMouseDown);\n\n this.dimensionsCache_ = null;\n };\n\n GoogleMapMarkers.prototype.render = function render() {\n var _this2 = this;\n\n var mainElementStyle = this.props.style || mainStyle;\n this.dimensionsCache_ = {};\n\n var markers = _react2.default.Children.map(this.state.children, function (child, childIndex) {\n if (!child) return undefined;\n if (child.props.latLng === undefined && child.props.lat === undefined && child.props.lng === undefined) {\n return _react2.default.cloneElement(child, {\n $geoService: _this2.props.geoService,\n $onMouseAllow: _this2._onMouseAllow,\n $prerender: _this2.props.prerender\n });\n }\n\n var latLng = child.props.latLng !== undefined ? child.props.latLng : { lat: child.props.lat, lng: child.props.lng };\n\n var pt = _this2.props.insideMapPanes ? _this2.props.geoService.fromLatLngToDivPixel(latLng) : _this2.props.geoService.fromLatLngToCenterPixel(latLng);\n\n var stylePtPos = {\n left: pt.x,\n top: pt.y\n };\n\n // If the component has a southeast corner defined (either as a LatLng, or a separate\n // lat and lng pair), set the width and height based on the distance between the northwest\n // and the southeast corner to lock the overlay to the correct geographic bounds.\n if (child.props.seLatLng !== undefined || child.props.seLat !== undefined && child.props.seLng !== undefined) {\n var seLatLng = child.props.seLatLng !== undefined ? child.props.seLatLng : { lat: child.props.seLat, lng: child.props.seLng };\n\n var sePt = _this2.props.insideMapPanes ? _this2.props.geoService.fromLatLngToDivPixel(seLatLng) : _this2.props.geoService.fromLatLngToCenterPixel(seLatLng);\n\n stylePtPos.width = sePt.x - pt.x;\n stylePtPos.height = sePt.y - pt.y;\n }\n\n var containerPt = _this2.props.geoService.fromLatLngToContainerPixel(latLng);\n\n // to prevent rerender on child element i need to pass\n // const params $getDimensions and $dimensionKey instead of dimension object\n var childKey = child.key !== undefined && child.key !== null ? child.key : childIndex;\n\n _this2.dimensionsCache_[childKey] = _extends({\n x: containerPt.x,\n y: containerPt.y\n }, latLng);\n\n return _react2.default.createElement(\n 'div',\n {\n key: childKey,\n style: _extends({}, style, stylePtPos),\n className: child.props.$markerHolderClassName\n },\n _react2.default.cloneElement(child, {\n $hover: childKey === _this2.state.hoverKey,\n $getDimensions: _this2._getDimensions,\n $dimensionKey: childKey,\n $geoService: _this2.props.geoService,\n $onMouseAllow: _this2._onMouseAllow,\n $prerender: _this2.props.prerender\n })\n );\n });\n\n return _react2.default.createElement(\n 'div',\n { style: mainElementStyle },\n markers\n );\n };\n\n return GoogleMapMarkers;\n}(_react.Component);\n\nGoogleMapMarkers.propTypes = {\n geoService: _propTypes2.default.any,\n style: _propTypes2.default.any,\n distanceToMouse: _propTypes2.default.func,\n dispatcher: _propTypes2.default.any,\n onChildClick: _propTypes2.default.func,\n onChildMouseDown: _propTypes2.default.func,\n onChildMouseLeave: _propTypes2.default.func,\n onChildMouseEnter: _propTypes2.default.func,\n getHoverDistance: _propTypes2.default.func,\n insideMapPanes: _propTypes2.default.bool,\n prerender: _propTypes2.default.bool\n};\nGoogleMapMarkers.defaultProps = {\n insideMapPanes: false,\n prerender: false\n};\nexports.default = GoogleMapMarkers;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/google-map-react/lib/google_map_markers.js\n// module id = ./node_modules/google-map-react/lib/google_map_markers.js\n// module chunks = map bluemountainmap wingtagsmap","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.default = function (props) {\n return _react2.default.createElement(\n 'div',\n { style: style },\n _react2.default.createElement(_google_map_markers2.default, _extends({}, props, { prerender: true }))\n );\n};\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _google_map_markers = require('./google_map_markers');\n\nvar _google_map_markers2 = _interopRequireDefault(_google_map_markers);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar style = {\n width: '50%',\n height: '50%',\n left: '50%',\n top: '50%',\n // backgroundColor: 'red',\n margin: 0,\n padding: 0,\n position: 'absolute'\n // opacity: 0.3\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/google-map-react/lib/google_map_markers_prerender.js\n// module id = ./node_modules/google-map-react/lib/google_map_markers_prerender.js\n// module chunks = map bluemountainmap wingtagsmap","'use strict';\n\nexports.__esModule = true;\nexports.default = undefined;\n\nvar _google_map = require('./google_map');\n\nvar _google_map2 = _interopRequireDefault(_google_map);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _google_map2.default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/google-map-react/lib/index.js\n// module id = ./node_modules/google-map-react/lib/index.js\n// module chunks = map bluemountainmap wingtagsmap","'use strict';\n\nexports.__esModule = true;\nvar BASE_URL = 'https://maps';\nvar DEFAULT_URL = BASE_URL + '.googleapis.com';\nvar API_PATH = '/maps/api/js?callback=_$_google_map_initialize_$_';\n\nvar $script_ = null;\n\nvar loadPromise_ = void 0;\n\nvar resolveCustomPromise_ = void 0;\n\nvar _customPromise = new Promise(function (resolve) {\n resolveCustomPromise_ = resolve;\n});\n\n// TODO add libraries language and other map options\n\nexports.default = function (bootstrapURLKeys, heatmapLibrary) {\n if (!$script_) {\n $script_ = require('scriptjs'); // eslint-disable-line\n }\n\n // call from outside google-map-react\n // will be as soon as loadPromise_ resolved\n if (!bootstrapURLKeys) {\n return _customPromise;\n }\n\n if (loadPromise_) {\n return loadPromise_;\n }\n\n loadPromise_ = new Promise(function (resolve, reject) {\n if (typeof window === 'undefined') {\n reject(new Error('google map cannot be loaded outside browser env'));\n return;\n }\n\n if (window.google && window.google.maps) {\n resolve(window.google.maps);\n return;\n }\n\n if (typeof window._$_google_map_initialize_$_ !== 'undefined') {\n reject(new Error('google map initialization error'));\n }\n\n window._$_google_map_initialize_$_ = function () {\n delete window._$_google_map_initialize_$_;\n resolve(window.google.maps);\n };\n\n if (process.env.NODE_ENV !== 'production') {\n if (Object.keys(bootstrapURLKeys).indexOf('callback') > -1) {\n var message = '\"callback\" key in bootstrapURLKeys is not allowed,\\n use onGoogleApiLoaded property instead';\n // eslint-disable-next-line no-console\n console.error(message);\n throw new Error(message);\n }\n }\n\n var params = Object.keys(bootstrapURLKeys).reduce(function (r, key) {\n return r + '&' + key + '=' + bootstrapURLKeys[key];\n }, '');\n\n var libraries = heatmapLibrary ? '&libraries=visualization' : '';\n\n $script_('' + DEFAULT_URL + API_PATH + params + libraries, function () {\n return typeof window.google === 'undefined' && reject(new Error('google map initialization error (not loaded)'));\n });\n });\n\n resolveCustomPromise_(loadPromise_);\n\n return loadPromise_;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/google-map-react/lib/loaders/google_map_loader.js\n// module id = ./node_modules/google-map-react/lib/loaders/google_map_loader.js\n// module chunks = map bluemountainmap wingtagsmap","'use strict';\n\nexports.__esModule = true;\n\nvar _eventemitter = require('eventemitter3');\n\nvar _eventemitter2 = _interopRequireDefault(_eventemitter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MarkerDispatcher = function (_EventEmitter) {\n _inherits(MarkerDispatcher, _EventEmitter);\n\n function MarkerDispatcher(gmapInstance) {\n _classCallCheck(this, MarkerDispatcher);\n\n var _this = _possibleConstructorReturn(this, _EventEmitter.call(this));\n\n _this.gmapInstance = gmapInstance;\n return _this;\n }\n\n MarkerDispatcher.prototype.getChildren = function getChildren() {\n return this.gmapInstance.props.children;\n };\n\n MarkerDispatcher.prototype.getMousePosition = function getMousePosition() {\n return this.gmapInstance.mouse_;\n };\n\n MarkerDispatcher.prototype.getUpdateCounter = function getUpdateCounter() {\n return this.gmapInstance.updateCounter_;\n };\n\n MarkerDispatcher.prototype.dispose = function dispose() {\n this.gmapInstance = null;\n this.removeAllListeners();\n };\n\n return MarkerDispatcher;\n}(_eventemitter2.default);\n\nexports.default = MarkerDispatcher;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/google-map-react/lib/marker_dispatcher.js\n// module id = ./node_modules/google-map-react/lib/marker_dispatcher.js\n// module chunks = map bluemountainmap wingtagsmap","'use strict';\n\nexports.__esModule = true;\nexports.default = detectBrowser;\n// http://stackoverflow.com/questions/5899783/detect-safari-chrome-ie-firefox-opera-with-user-agent\nvar detectBrowserResult_ = null;\n\nfunction detectBrowser() {\n if (detectBrowserResult_) {\n return detectBrowserResult_;\n }\n\n if (typeof navigator !== 'undefined') {\n var isExplorer = navigator.userAgent.indexOf('MSIE') > -1;\n var isFirefox = navigator.userAgent.indexOf('Firefox') > -1;\n var isOpera = navigator.userAgent.toLowerCase().indexOf('op') > -1;\n\n var isChrome = navigator.userAgent.indexOf('Chrome') > -1;\n var isSafari = navigator.userAgent.indexOf('Safari') > -1;\n\n if (isChrome && isSafari) {\n isSafari = false;\n }\n\n if (isChrome && isOpera) {\n isChrome = false;\n }\n\n detectBrowserResult_ = {\n isExplorer: isExplorer,\n isFirefox: isFirefox,\n isOpera: isOpera,\n isChrome: isChrome,\n isSafari: isSafari\n };\n return detectBrowserResult_;\n }\n\n detectBrowserResult_ = {\n isChrome: true,\n isExplorer: false,\n isFirefox: false,\n isOpera: false,\n isSafari: false\n };\n\n return detectBrowserResult_;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/google-map-react/lib/utils/detect.js\n// module id = ./node_modules/google-map-react/lib/utils/detect.js\n// module chunks = map bluemountainmap wingtagsmap","'use strict';\n\nvar _passiveEvents = require('./passiveEvents');\n\nvar _passiveEvents2 = _interopRequireDefault(_passiveEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Reliable `window` and `document` detection\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n// Check `document` and `window` in case of server-side rendering\n/* eslint-disable */\n/**\n* Detect Element Resize.\n* Forked in order to guard against unsafe 'window' and 'document' references.\n*\n* https://github.com/sdecima/javascript-detect-element-resize\n* Sebastian Decima\n*\n* version: 0.5.3\n**/\n\nvar _window;\nif (canUseDOM) {\n _window = window;\n} else if (typeof self !== 'undefined') {\n _window = self;\n} else {\n _window = undefined;\n}\n\nvar attachEvent = typeof document !== 'undefined' && document.attachEvent;\nvar stylesCreated = false;\n\nif (canUseDOM && !attachEvent) {\n var requestFrame = function () {\n var raf = _window.requestAnimationFrame || _window.mozRequestAnimationFrame || _window.webkitRequestAnimationFrame || function (fn) {\n return _window.setTimeout(fn, 20);\n };\n return function (fn) {\n return raf(fn);\n };\n }();\n\n var cancelFrame = function () {\n var cancel = _window.cancelAnimationFrame || _window.mozCancelAnimationFrame || _window.webkitCancelAnimationFrame || _window.clearTimeout;\n return function (id) {\n return cancel(id);\n };\n }();\n\n var resetTriggers = function resetTriggers(element) {\n var triggers = element.__resizeTriggers__,\n expand = triggers.firstElementChild,\n contract = triggers.lastElementChild,\n expandChild = expand.firstElementChild;\n contract.scrollLeft = contract.scrollWidth;\n contract.scrollTop = contract.scrollHeight;\n expandChild.style.width = expand.offsetWidth + 1 + 'px';\n expandChild.style.height = expand.offsetHeight + 1 + 'px';\n expand.scrollLeft = expand.scrollWidth;\n expand.scrollTop = expand.scrollHeight;\n };\n\n var checkTriggers = function checkTriggers(element) {\n return element.offsetWidth != element.__resizeLast__.width || element.offsetHeight != element.__resizeLast__.height;\n };\n\n var scrollListener = function scrollListener(e) {\n var element = this;\n resetTriggers(this);\n if (this.__resizeRAF__) cancelFrame(this.__resizeRAF__);\n this.__resizeRAF__ = requestFrame(function () {\n if (checkTriggers(element)) {\n element.__resizeLast__.width = element.offsetWidth;\n element.__resizeLast__.height = element.offsetHeight;\n element.__resizeListeners__.forEach(function (fn) {\n fn.call(element, e);\n });\n }\n });\n };\n\n /* Detect CSS Animations support to detect element display/re-attach */\n var animation = false,\n animationstring = 'animation',\n keyframeprefix = '',\n animationstartevent = 'animationstart',\n domPrefixes = 'Webkit Moz O ms'.split(' '),\n startEvents = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(' '),\n pfx = '';\n\n if (canUseDOM) {\n var elm = document.createElement('fakeelement');\n if (elm.style.animationName !== undefined) {\n animation = true;\n }\n\n if (animation === false) {\n for (var i = 0; i < domPrefixes.length; i++) {\n if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {\n pfx = domPrefixes[i];\n animationstring = pfx + 'Animation';\n keyframeprefix = '-' + pfx.toLowerCase() + '-';\n animationstartevent = startEvents[i];\n animation = true;\n break;\n }\n }\n }\n }\n\n var animationName = 'resizeanim';\n var animationKeyframes = '@' + keyframeprefix + 'keyframes ' + animationName + ' { from { opacity: 0; } to { opacity: 0; } } ';\n var animationStyle = keyframeprefix + 'animation: 1ms ' + animationName + '; ';\n}\n\nvar createStyles = function createStyles() {\n if (!stylesCreated) {\n //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360\n var css = (animationKeyframes ? animationKeyframes : '') + '.resize-triggers { ' + (animationStyle ? animationStyle : '') + '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 head = document.head || document.getElementsByTagName('head')[0],\n style = document.createElement('style');\n\n style.type = 'text/css';\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n\n head.appendChild(style);\n stylesCreated = true;\n }\n};\n\nvar addResizeListener = function addResizeListener(element, fn) {\n if (element.parentNode === undefined) {\n var tempParentDiv = document.createElement('div');\n element.parentNode = tempParentDiv;\n }\n element = element.parentNode;\n if (attachEvent) element.attachEvent('onresize', fn);else {\n if (!element.__resizeTriggers__) {\n if (getComputedStyle(element).position == 'static') element.style.position = 'relative';\n createStyles();\n element.__resizeLast__ = {};\n element.__resizeListeners__ = [];\n (element.__resizeTriggers__ = document.createElement('div')).className = 'resize-triggers';\n element.__resizeTriggers__.innerHTML = '
' + '
';\n element.appendChild(element.__resizeTriggers__);\n resetTriggers(element);\n\n (0, _passiveEvents2.default)(element, 'scroll', scrollListener, true);\n\n /* Listen for a css animation to detect element display/re-attach */\n animationstartevent && element.__resizeTriggers__.addEventListener(animationstartevent, function (e) {\n if (e.animationName == animationName) resetTriggers(element);\n });\n }\n element.__resizeListeners__.push(fn);\n }\n};\n\nvar removeResizeListener = function removeResizeListener(element, fn) {\n element = element.parentNode;\n if (attachEvent) element.detachEvent('onresize', fn);else {\n element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);\n if (!element.__resizeListeners__.length) {\n element.removeEventListener('scroll', scrollListener);\n element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);\n }\n }\n};\n\nmodule.exports = {\n addResizeListener: addResizeListener,\n removeResizeListener: removeResizeListener\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/google-map-react/lib/utils/detectElementResize.js\n// module id = ./node_modules/google-map-react/lib/utils/detectElementResize.js\n// module chunks = map bluemountainmap wingtagsmap","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _pointGeometry = require('@mapbox/point-geometry');\n\nvar _pointGeometry2 = _interopRequireDefault(_pointGeometry);\n\nvar _lat_lng = require('./lib_geo/lat_lng');\n\nvar _lat_lng2 = _interopRequireDefault(_lat_lng);\n\nvar _transform = require('./lib_geo/transform');\n\nvar _transform2 = _interopRequireDefault(_transform);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Geo = function () {\n function Geo(tileSize) {\n _classCallCheck(this, Geo);\n\n // left_top view пользует гугл\n // super();\n this.hasSize_ = false;\n this.hasView_ = false;\n this.transform_ = new _transform2.default(tileSize || 512);\n }\n\n Geo.prototype.setView = function setView(center, zoom, bearing) {\n this.transform_.center = _lat_lng2.default.convert(center);\n this.transform_.zoom = +zoom;\n this.transform_.bearing = +bearing;\n this.hasView_ = true;\n };\n\n Geo.prototype.setViewSize = function setViewSize(width, height) {\n this.transform_.width = width;\n this.transform_.height = height;\n this.hasSize_ = true;\n };\n\n Geo.prototype.setMapCanvasProjection = function setMapCanvasProjection(maps, mapCanvasProjection) {\n this.maps_ = maps;\n this.mapCanvasProjection_ = mapCanvasProjection;\n };\n\n Geo.prototype.canProject = function canProject() {\n return this.hasSize_ && this.hasView_;\n };\n\n Geo.prototype.hasSize = function hasSize() {\n return this.hasSize_;\n };\n\n /** Returns the pixel position relative to the map center. */\n\n\n Geo.prototype.fromLatLngToCenterPixel = function fromLatLngToCenterPixel(ptLatLng) {\n return this.transform_.locationPoint(_lat_lng2.default.convert(ptLatLng));\n };\n\n /**\n * Returns the pixel position relative to the map panes,\n * or relative to the map center if there are no panes.\n */\n\n\n Geo.prototype.fromLatLngToDivPixel = function fromLatLngToDivPixel(ptLatLng) {\n if (this.mapCanvasProjection_) {\n var latLng = new this.maps_.LatLng(ptLatLng.lat, ptLatLng.lng);\n return this.mapCanvasProjection_.fromLatLngToDivPixel(latLng);\n }\n return this.fromLatLngToCenterPixel(ptLatLng);\n };\n\n /** Returns the pixel position relative to the map top-left. */\n\n\n Geo.prototype.fromLatLngToContainerPixel = function fromLatLngToContainerPixel(ptLatLng) {\n if (this.mapCanvasProjection_) {\n var latLng = new this.maps_.LatLng(ptLatLng.lat, ptLatLng.lng);\n return this.mapCanvasProjection_.fromLatLngToContainerPixel(latLng);\n }\n\n var pt = this.fromLatLngToCenterPixel(ptLatLng);\n pt.x -= this.transform_.worldSize * Math.round(pt.x / this.transform_.worldSize);\n\n pt.x += this.transform_.width / 2;\n pt.y += this.transform_.height / 2;\n\n return pt;\n };\n\n /** Returns the LatLng for the given offset from the map top-left. */\n\n\n Geo.prototype.fromContainerPixelToLatLng = function fromContainerPixelToLatLng(ptXY) {\n if (this.mapCanvasProjection_) {\n var latLng = this.mapCanvasProjection_.fromContainerPixelToLatLng(ptXY);\n return { lat: latLng.lat(), lng: latLng.lng() };\n }\n\n var ptxy = _extends({}, ptXY);\n ptxy.x -= this.transform_.width / 2;\n ptxy.y -= this.transform_.height / 2;\n var ptRes = this.transform_.pointLocation(_pointGeometry2.default.convert(ptxy));\n\n ptRes.lng -= 360 * Math.round(ptRes.lng / 360); // convert 2 google format\n return ptRes;\n };\n\n Geo.prototype.getWidth = function getWidth() {\n return this.transform_.width;\n };\n\n Geo.prototype.getHeight = function getHeight() {\n return this.transform_.height;\n };\n\n Geo.prototype.getZoom = function getZoom() {\n return this.transform_.zoom;\n };\n\n Geo.prototype.getCenter = function getCenter() {\n var ptRes = this.transform_.pointLocation({ x: 0, y: 0 });\n\n return ptRes;\n };\n\n Geo.prototype.getBounds = function getBounds(margins, roundFactor) {\n var bndT = margins && margins[0] || 0;\n var bndR = margins && margins[1] || 0;\n var bndB = margins && margins[2] || 0;\n var bndL = margins && margins[3] || 0;\n\n if (this.getWidth() - bndR - bndL > 0 && this.getHeight() - bndT - bndB > 0) {\n var topLeftCorner = this.transform_.pointLocation(_pointGeometry2.default.convert({\n x: bndL - this.getWidth() / 2,\n y: bndT - this.getHeight() / 2\n }));\n var bottomRightCorner = this.transform_.pointLocation(_pointGeometry2.default.convert({\n x: this.getWidth() / 2 - bndR,\n y: this.getHeight() / 2 - bndB\n }));\n\n var res = [topLeftCorner.lat, topLeftCorner.lng, // NW\n bottomRightCorner.lat, bottomRightCorner.lng, // SE\n bottomRightCorner.lat, topLeftCorner.lng, // SW\n topLeftCorner.lat, bottomRightCorner.lng];\n\n if (roundFactor) {\n res = res.map(function (r) {\n return Math.round(r * roundFactor) / roundFactor;\n });\n }\n return res;\n }\n\n return [0, 0, 0, 0];\n };\n\n return Geo;\n}();\n\nexports.default = Geo;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/google-map-react/lib/utils/geo.js\n// module id = ./node_modules/google-map-react/lib/utils/geo.js\n// module chunks = map bluemountainmap wingtagsmap","\"use strict\";\n\nexports.__esModule = true;\nexports.default = isArraysEqualEps;\nfunction isArraysEqualEps(arrayA, arrayB, eps) {\n if (arrayA && arrayB) {\n for (var i = 0; i !== arrayA.length; ++i) {\n if (Math.abs(arrayA[i] - arrayB[i]) > eps) {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/google-map-react/lib/utils/isArraysEqualEps.js\n// module id = ./node_modules/google-map-react/lib/utils/isArraysEqualEps.js\n// module chunks = map bluemountainmap wingtagsmap","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar isEmpty = function isEmpty(val) {\n // check for empty object {}, array []\n if (val !== null && (typeof val === 'undefined' ? 'undefined' : _typeof(val)) === 'object') {\n if (Object.keys(val).length === 0) {\n return true;\n }\n } else if (val === null || val === undefined || val === '') {\n // check for undefined, null and \"\"\n return true;\n }\n return false;\n};\n\nexports.default = isEmpty;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/google-map-react/lib/utils/isEmpty.js\n// module id = ./node_modules/google-map-react/lib/utils/isEmpty.js\n// module chunks = map bluemountainmap wingtagsmap","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.default = isNumber;\nfunction isObjectLike(value) {\n return !!value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object';\n}\n\nvar objectToString = Object.prototype.toString;\n\nfunction isNumber(value) {\n var numberTag = '[object Number]';\n return typeof value === 'number' || isObjectLike(value) && objectToString.call(value) === numberTag;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/google-map-react/lib/utils/isNumber.js\n// module id = ./node_modules/google-map-react/lib/utils/isNumber.js\n// module chunks = map bluemountainmap wingtagsmap","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.default = isPlainObject;\n// source taken from https://github.com/rackt/redux/blob/master/src/utils/isPlainObject.js\nvar fnToString = function fnToString(fn) {\n return Function.prototype.toString.call(fn);\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (!obj || (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) !== 'object') {\n return false;\n }\n\n var proto = typeof obj.constructor === 'function' ? Object.getPrototypeOf(obj) : Object.prototype;\n\n if (proto === null) {\n return true;\n }\n\n var constructor = proto.constructor;\n\n return typeof constructor === 'function' && constructor instanceof constructor && fnToString(constructor) === fnToString(Object);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/google-map-react/lib/utils/isPlainObject.js\n// module id = ./node_modules/google-map-react/lib/utils/isPlainObject.js\n// module chunks = map bluemountainmap wingtagsmap","'use strict';\n\nexports.__esModule = true;\n\nvar _wrap2 = require('./wrap');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar LatLng = function () {\n function LatLng(lat, lng) {\n _classCallCheck(this, LatLng);\n\n if (isNaN(lat) || isNaN(lng)) {\n throw new Error('Invalid LatLng object: (' + lat + ', ' + lng + ')');\n }\n this.lat = +lat;\n this.lng = +lng;\n }\n\n LatLng.prototype.wrap = function wrap() {\n return new LatLng(this.lat, (0, _wrap2.wrap)(this.lng, -180, 180));\n };\n\n return LatLng;\n}();\n\nLatLng.convert = function (a) {\n if (a instanceof LatLng) {\n return a;\n }\n\n if (Array.isArray(a)) {\n return new LatLng(a[0], a[1]);\n }\n\n if ('lng' in a && 'lat' in a) {\n return new LatLng(a.lat, a.lng);\n }\n\n return a;\n};\n\nexports.default = LatLng;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/google-map-react/lib/utils/lib_geo/lat_lng.js\n// module id = ./node_modules/google-map-react/lib/utils/lib_geo/lat_lng.js\n// module chunks = map bluemountainmap wingtagsmap","'use strict';\n\nexports.__esModule = true;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /* eslint-disable class-methods-use-this */\n\n\nvar _pointGeometry = require('@mapbox/point-geometry');\n\nvar _pointGeometry2 = _interopRequireDefault(_pointGeometry);\n\nvar _lat_lng = require('./lat_lng');\n\nvar _lat_lng2 = _interopRequireDefault(_lat_lng);\n\nvar _wrap = require('./wrap');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// A single transform, generally used for a single tile to be scaled, rotated, and zoomed.\nvar Transform = function () {\n function Transform(tileSize, minZoom, maxZoom) {\n _classCallCheck(this, Transform);\n\n this.tileSize = tileSize || 512; // constant\n\n this._minZoom = minZoom || 0;\n this._maxZoom = maxZoom || 52;\n\n this.latRange = [-85.05113, 85.05113];\n\n this.width = 0;\n this.height = 0;\n this.zoom = 0;\n this.center = new _lat_lng2.default(0, 0);\n this.angle = 0;\n }\n\n Transform.prototype.zoomScale = function zoomScale(zoom) {\n return Math.pow(2, zoom);\n };\n\n Transform.prototype.scaleZoom = function scaleZoom(scale) {\n return Math.log(scale) / Math.LN2;\n };\n\n Transform.prototype.project = function project(latlng, worldSize) {\n return new _pointGeometry2.default(this.lngX(latlng.lng, worldSize), this.latY(latlng.lat, worldSize));\n };\n\n Transform.prototype.unproject = function unproject(point, worldSize) {\n return new _lat_lng2.default(this.yLat(point.y, worldSize), this.xLng(point.x, worldSize));\n };\n\n // lat/lon <-> absolute pixel coords convertion\n Transform.prototype.lngX = function lngX(lon, worldSize) {\n return (180 + lon) * (worldSize || this.worldSize) / 360;\n };\n\n // latitude to absolute y coord\n\n\n Transform.prototype.latY = function latY(lat, worldSize) {\n var y = 180 / Math.PI * Math.log(Math.tan(Math.PI / 4 + lat * Math.PI / 360));\n return (180 - y) * (worldSize || this.worldSize) / 360;\n };\n\n Transform.prototype.xLng = function xLng(x, worldSize) {\n return x * 360 / (worldSize || this.worldSize) - 180;\n };\n\n Transform.prototype.yLat = function yLat(y, worldSize) {\n var y2 = 180 - y * 360 / (worldSize || this.worldSize);\n return 360 / Math.PI * Math.atan(Math.exp(y2 * Math.PI / 180)) - 90;\n };\n\n Transform.prototype.locationPoint = function locationPoint(latlng) {\n var p = this.project(latlng);\n return this.centerPoint._sub(this.point._sub(p)._rotate(this.angle));\n };\n\n Transform.prototype.pointLocation = function pointLocation(p) {\n var p2 = this.centerPoint._sub(p)._rotate(-this.angle);\n return this.unproject(this.point.sub(p2));\n };\n\n _createClass(Transform, [{\n key: 'minZoom',\n get: function get() {\n return this._minZoom;\n },\n set: function set(zoom) {\n this._minZoom = zoom;\n this.zoom = Math.max(this.zoom, zoom);\n }\n }, {\n key: 'maxZoom',\n get: function get() {\n return this._maxZoom;\n },\n set: function set(zoom) {\n this._maxZoom = zoom;\n this.zoom = Math.min(this.zoom, zoom);\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 _pointGeometry2.default(0, 0); // this.size._div(2);\n }\n }, {\n key: 'size',\n get: function get() {\n return new _pointGeometry2.default(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(bearing) {\n this.angle = -(0, _wrap.wrap)(bearing, -180, 180) * Math.PI / 180;\n }\n }, {\n key: 'zoom',\n get: function get() {\n return this._zoom;\n },\n set: function set(zoom) {\n var zoomV = Math.min(Math.max(zoom, this.minZoom), this.maxZoom);\n this._zoom = zoomV;\n this.scale = this.zoomScale(zoomV);\n this.tileZoom = Math.floor(zoomV);\n this.zoomFraction = zoomV - 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 _pointGeometry2.default(this.x, this.y);\n }\n }]);\n\n return Transform;\n}();\n\nexports.default = Transform;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/google-map-react/lib/utils/lib_geo/transform.js\n// module id = ./node_modules/google-map-react/lib/utils/lib_geo/transform.js\n// module chunks = map bluemountainmap wingtagsmap","\"use strict\";\n\nexports.__esModule = true;\nexports.wrap = wrap;\n/* eslint-disable import/prefer-default-export */\n\nfunction wrap(n, min, max) {\n var d = max - min;\n return n === max ? n : ((n - min) % d + d) % d + min;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/google-map-react/lib/utils/lib_geo/wrap.js\n// module id = ./node_modules/google-map-react/lib/utils/lib_geo/wrap.js\n// module chunks = map bluemountainmap wingtagsmap","\"use strict\";\n\nexports.__esModule = true;\nvar log2 = Math.log2 ? Math.log2 : function (x) {\n return Math.log(x) / Math.LN2;\n};\n\nexports.default = log2;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/google-map-react/lib/utils/math/log2.js\n// module id = ./node_modules/google-map-react/lib/utils/math/log2.js\n// module chunks = map bluemountainmap wingtagsmap","\"use strict\";\n\nexports.__esModule = true;\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n// https://github.com/acdlite/recompose/blob/master/src/packages/recompose/utils/omit.js\nvar omit = function omit(obj, keys) {\n var rest = _objectWithoutProperties(obj, []);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (key in rest) {\n delete rest[key];\n }\n }\n return rest;\n};\n\nexports.default = omit;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/google-map-react/lib/utils/omit.js\n// module id = ./node_modules/google-map-react/lib/utils/omit.js\n// module chunks = map bluemountainmap wingtagsmap","'use strict';\n\nexports.__esModule = true;\nexports.default = addPassiveEventListener;\n// feature detection for passive support\n// see: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\nfunction hasPassiveSupport() {\n var passiveSupported = false;\n\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function get() {\n passiveSupported = true;\n }\n });\n\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n } catch (err) {\n passiveSupported = false;\n }\n\n return passiveSupported;\n}\n\nfunction addPassiveEventListener(element, eventName, func, capture) {\n element.addEventListener(eventName, func, hasPassiveSupport() ? {\n capture: capture,\n passive: true\n } : capture);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/google-map-react/lib/utils/passiveEvents.js\n// module id = ./node_modules/google-map-react/lib/utils/passiveEvents.js\n// module chunks = map bluemountainmap wingtagsmap","\"use strict\";\n\nexports.__esModule = true;\nexports.default = pick;\n// source taken from https://github.com/rackt/redux/blob/master/src/utils/pick.js\n\nfunction pick(obj, fn) {\n return Object.keys(obj).reduce(function (result, key) {\n if (fn(obj[key])) {\n result[key] = obj[key]; // eslint-disable-line\n }\n return result;\n }, {});\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/google-map-react/lib/utils/pick.js\n// module id = ./node_modules/google-map-react/lib/utils/pick.js\n// module chunks = map bluemountainmap wingtagsmap","\"use strict\";\n\nexports.__esModule = true;\nexports.default = raf;\nfunction raf(callback) {\n if (window.requestAnimationFrame) {\n return window.requestAnimationFrame(callback);\n }\n\n var nativeRaf = window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;\n\n return nativeRaf ? nativeRaf(callback) : window.setTimeout(callback, 1e3 / 60);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/google-map-react/lib/utils/raf.js\n// module id = ./node_modules/google-map-react/lib/utils/raf.js\n// module chunks = map bluemountainmap wingtagsmap","'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @providesModule shallowEqual\n * @typechecks\n * \n */\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n }\n // Step 6.a: NaN == NaN\n // eslint-disable-next-line no-self-compare\n return x !== x && y !== y;\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) {\n return true;\n }\n\n if ((typeof objA === 'undefined' ? 'undefined' : _typeof(objA)) !== 'object' || objA === null || (typeof objB === 'undefined' ? 'undefined' : _typeof(objB)) !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqual;\n/* src: https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/shallowEqual.js */\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/google-map-react/lib/utils/shallowEqual.js\n// module id = ./node_modules/google-map-react/lib/utils/shallowEqual.js\n// module chunks = map bluemountainmap wingtagsmap","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/google-map-react/node_modules/prop-types/factoryWithThrowingShims.js\n// module id = ./node_modules/google-map-react/node_modules/prop-types/factoryWithThrowingShims.js\n// module chunks = map bluemountainmap wingtagsmap","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/google-map-react/node_modules/prop-types/index.js\n// module id = ./node_modules/google-map-react/node_modules/prop-types/index.js\n// module chunks = map bluemountainmap wingtagsmap","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/google-map-react/node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = ./node_modules/google-map-react/node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module chunks = map bluemountainmap wingtagsmap","'use strict';\n\nexports.__esModule = true;\nvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\nvar getConfirmation = exports.getConfirmation = function getConfirmation(message, callback) {\n return callback(window.confirm(message));\n}; // eslint-disable-line no-alert\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n var ua = window.navigator.userAgent;\n\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\nvar supportsPopStateOnHashChange = exports.supportsPopStateOnHashChange = function supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\nvar isExtraneousPopstateEvent = exports.isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/DOMUtils.js\n// module id = ./node_modules/history/DOMUtils.js\n// module chunks = map","'use strict';\n\nexports.__esModule = true;\nexports.locationsAreEqual = exports.createLocation = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _resolvePathname = require('resolve-pathname');\n\nvar _resolvePathname2 = _interopRequireDefault(_resolvePathname);\n\nvar _valueEqual = require('value-equal');\n\nvar _valueEqual2 = _interopRequireDefault(_valueEqual);\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createLocation = exports.createLocation = function createLocation(path, state, key, currentLocation) {\n var location = void 0;\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = (0, _PathUtils.parsePath)(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = (0, _resolvePathname2.default)(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n};\n\nvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && (0, _valueEqual2.default)(a.state, b.state);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/LocationUtils.js\n// module id = ./node_modules/history/LocationUtils.js\n// module chunks = map","'use strict';\n\nexports.__esModule = true;\nvar addLeadingSlash = exports.addLeadingSlash = function addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n};\n\nvar stripLeadingSlash = exports.stripLeadingSlash = function stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n};\n\nvar hasBasename = exports.hasBasename = function hasBasename(path, prefix) {\n return new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path);\n};\n\nvar stripBasename = exports.stripBasename = function stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n};\n\nvar stripTrailingSlash = exports.stripTrailingSlash = function stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n};\n\nvar parsePath = exports.parsePath = function parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n\n var hashIndex = pathname.indexOf('#');\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n};\n\nvar createPath = exports.createPath = function createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n\n\n var path = pathname || '/';\n\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : '?' + search;\n\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : '#' + hash;\n\n return path;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/PathUtils.js\n// module id = ./node_modules/history/PathUtils.js\n// module chunks = map","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _createTransitionManager = require('./createTransitionManager');\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nvar _DOMUtils = require('./DOMUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar HashChangeEvent = 'hashchange';\n\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + (0, _PathUtils.stripLeadingSlash)(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: _PathUtils.stripLeadingSlash,\n decodePath: _PathUtils.addLeadingSlash\n },\n slash: {\n encodePath: _PathUtils.addLeadingSlash,\n decodePath: _PathUtils.addLeadingSlash\n }\n};\n\nvar getHashPath = function getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n};\n\nvar pushHashPath = function pushHashPath(path) {\n return window.location.hash = path;\n};\n\nvar replaceHashPath = function replaceHashPath(path) {\n var hashIndex = window.location.href.indexOf('#');\n\n window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path);\n};\n\nvar createHashHistory = function createHashHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n (0, _invariant2.default)(_DOMUtils.canUseDOM, 'Hash history needs a DOM');\n\n var globalHistory = window.history;\n var canGoWithoutReload = (0, _DOMUtils.supportsGoWithoutReloadUsingHash)();\n\n var _props$getUserConfirm = props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === undefined ? _DOMUtils.getConfirmation : _props$getUserConfirm,\n _props$hashType = props.hashType,\n hashType = _props$hashType === undefined ? 'slash' : _props$hashType;\n\n var basename = props.basename ? (0, _PathUtils.stripTrailingSlash)((0, _PathUtils.addLeadingSlash)(props.basename)) : '';\n\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n\n var getDOMLocation = function getDOMLocation() {\n var path = decodePath(getHashPath());\n\n (0, _warning2.default)(!basename || (0, _PathUtils.hasBasename)(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n if (basename) path = (0, _PathUtils.stripBasename)(path, basename);\n\n return (0, _LocationUtils.createLocation)(path);\n };\n\n var transitionManager = (0, _createTransitionManager2.default)();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var forceNextPop = false;\n var ignorePath = null;\n\n var handleHashChange = function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n\n if (!forceNextPop && (0, _LocationUtils.locationsAreEqual)(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === (0, _PathUtils.createPath)(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n\n handlePop(location);\n }\n };\n\n var handlePop = function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({ action: action, location: location });\n } else {\n revertPop(location);\n }\n });\n }\n };\n\n var revertPop = function revertPop(fromLocation) {\n var toLocation = history.location;\n\n // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(toLocation));\n\n if (toIndex === -1) toIndex = 0;\n\n var fromIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(fromLocation));\n\n if (fromIndex === -1) fromIndex = 0;\n\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n };\n\n // Ensure the hash is encoded properly before doing anything else.\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) replaceHashPath(encodedPath);\n\n var initialLocation = getDOMLocation();\n var allPaths = [(0, _PathUtils.createPath)(initialLocation)];\n\n // Public interface\n\n var createHref = function createHref(location) {\n return '#' + encodePath(basename + (0, _PathUtils.createPath)(location));\n };\n\n var push = function push(path, state) {\n (0, _warning2.default)(state === undefined, 'Hash history cannot push state; it is ignored');\n\n var action = 'PUSH';\n var location = (0, _LocationUtils.createLocation)(path, undefined, undefined, history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var path = (0, _PathUtils.createPath)(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n\n var prevIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(history.location));\n var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n nextPaths.push(path);\n allPaths = nextPaths;\n\n setState({ action: action, location: location });\n } else {\n (0, _warning2.default)(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack');\n\n setState();\n }\n });\n };\n\n var replace = function replace(path, state) {\n (0, _warning2.default)(state === undefined, 'Hash history cannot replace state; it is ignored');\n\n var action = 'REPLACE';\n var location = (0, _LocationUtils.createLocation)(path, undefined, undefined, history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var path = (0, _PathUtils.createPath)(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf((0, _PathUtils.createPath)(history.location));\n\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n\n setState({ action: action, location: location });\n });\n };\n\n var go = function go(n) {\n (0, _warning2.default)(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser');\n\n globalHistory.go(n);\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var listenerCount = 0;\n\n var checkDOMListeners = function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1) {\n (0, _DOMUtils.addEventListener)(window, HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n (0, _DOMUtils.removeEventListener)(window, HashChangeEvent, handleHashChange);\n }\n };\n\n var isBlocked = false;\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n };\n\n var listen = function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n };\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\nexports.default = createHashHistory;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/createHashHistory.js\n// module id = ./node_modules/history/createHashHistory.js\n// module chunks = map","'use strict';\n\nexports.__esModule = true;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createTransitionManager = function createTransitionManager() {\n var prompt = null;\n\n var setPrompt = function setPrompt(nextPrompt) {\n (0, _warning2.default)(prompt == null, 'A history supports only one prompt at a time');\n\n prompt = nextPrompt;\n\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n };\n\n var confirmTransitionTo = function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n (0, _warning2.default)(false, 'A history needs a getUserConfirmation function in order to use a prompt message');\n\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n };\n\n var listeners = [];\n\n var appendListener = function appendListener(fn) {\n var isActive = true;\n\n var listener = function listener() {\n if (isActive) fn.apply(undefined, arguments);\n };\n\n listeners.push(listener);\n\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var notifyListeners = function notifyListeners() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(undefined, args);\n });\n };\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n};\n\nexports.default = createTransitionManager;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/createTransitionManager.js\n// module id = ./node_modules/history/createTransitionManager.js\n// module chunks = map","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/invariant/browser.js\n// module id = ./node_modules/invariant/browser.js\n// module chunks = map","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.REJECTED = exports.FULFILLED = exports.PENDING = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nexports.default = promiseMiddleware;\n\nvar _isPromise = require('./isPromise');\n\nvar _isPromise2 = _interopRequireDefault(_isPromise);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PENDING = exports.PENDING = 'PENDING';\nvar FULFILLED = exports.FULFILLED = 'FULFILLED';\nvar REJECTED = exports.REJECTED = 'REJECTED';\n\nvar defaultTypes = [PENDING, FULFILLED, REJECTED];\n\n/**\n * @function promiseMiddleware\n * @description\n * @returns {function} thunk\n */\nfunction promiseMiddleware() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var promiseTypeSuffixes = config.promiseTypeSuffixes || defaultTypes;\n\n return function (ref) {\n var dispatch = ref.dispatch;\n\n\n return function (next) {\n return function (action) {\n if (action.payload) {\n if (!(0, _isPromise2.default)(action.payload) && !(0, _isPromise2.default)(action.payload.promise)) {\n return next(action);\n }\n } else {\n return next(action);\n }\n\n // Deconstruct the properties of the original action object to constants\n var type = action.type,\n payload = action.payload,\n meta = action.meta;\n\n // Assign values for promise type suffixes\n\n var _promiseTypeSuffixes = _slicedToArray(promiseTypeSuffixes, 3),\n _PENDING = _promiseTypeSuffixes[0],\n _FULFILLED = _promiseTypeSuffixes[1],\n _REJECTED = _promiseTypeSuffixes[2];\n\n /**\n * @function getAction\n * @description Utility function for creating a rejected or fulfilled\n * flux standard action object.\n * @param {boolean} Is the action rejected?\n * @returns {object} action\n */\n\n\n var getAction = function getAction(newPayload, isRejected) {\n return _extends({\n type: type + '_' + (isRejected ? _REJECTED : _FULFILLED)\n }, newPayload === null || typeof newPayload === 'undefined' ? {} : {\n payload: newPayload\n }, meta !== undefined ? { meta: meta } : {}, isRejected ? {\n error: true\n } : {});\n };\n\n /**\n * Assign values for promise and data variables. In the case the payload\n * is an object with a `promise` and `data` property, the values of those\n * properties will be used. In the case the payload is a promise, the\n * value of the payload will be used and data will be null.\n */\n var promise = void 0;\n var data = void 0;\n\n if (!(0, _isPromise2.default)(action.payload) && _typeof(action.payload) === 'object') {\n promise = payload.promise;\n data = payload.data;\n } else {\n promise = payload;\n data = undefined;\n }\n\n /**\n * First, dispatch the pending action. This flux standard action object\n * describes the pending state of a promise and will include any data\n * (for optimistic updates) and/or meta from the original action.\n */\n next(_extends({\n type: type + '_' + _PENDING\n }, data !== undefined ? { payload: data } : {}, meta !== undefined ? { meta: meta } : {}));\n\n /*\n * @function transformFulfill\n * @description Transforms a fulfilled value into a success object.\n * @returns {object}\n */\n var transformFulfill = function transformFulfill() {\n var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n var resolvedAction = getAction(value, false);\n return { value: value, action: resolvedAction };\n };\n\n /*\n * @function handleReject\n * @description Dispatch the rejected action.\n * @returns {void}\n */\n var handleReject = function handleReject(reason) {\n var rejectedAction = getAction(reason, true);\n dispatch(rejectedAction);\n };\n\n /*\n * @function handleFulfill\n * @description Dispatch the fulfilled action.\n * @param successValue The value from transformFulfill\n * @returns {void}\n */\n var handleFulfill = function handleFulfill(successValue) {\n dispatch(successValue.action);\n };\n\n /**\n * Second, dispatch a rejected or fulfilled action. This flux standard\n * action object will describe the resolved state of the promise. In\n * the case of a rejected promise, it will include an `error` property.\n *\n * In order to allow proper chaining of actions using `then`, a new\n * promise is constructed and returned. This promise will resolve\n * with two properties: (1) the value (if fulfilled) or reason\n * (if rejected) and (2) the flux standard action.\n *\n * Rejected object:\n * {\n * reason: ...\n * action: {\n * error: true,\n * type: 'ACTION_REJECTED',\n * payload: ...\n * }\n * }\n *\n * Fulfilled object:\n * {\n * value: ...\n * action: {\n * type: 'ACTION_FULFILLED',\n * payload: ...\n * }\n * }\n */\n var promiseValue = promise.then(transformFulfill);\n var sideEffects = promiseValue.then(handleFulfill, handleReject);\n return sideEffects.then(function () {\n return promiseValue;\n }, function () {\n return promiseValue;\n });\n };\n };\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/redux-promise-middleware/dist/index.js\n// module id = ./node_modules/redux-promise-middleware/dist/index.js\n// module chunks = map","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.default = isPromise;\nfunction isPromise(value) {\n if (value !== null && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {\n return value && typeof value.then === 'function';\n }\n\n return false;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/redux-promise-middleware/dist/isPromise.js\n// module id = ./node_modules/redux-promise-middleware/dist/isPromise.js\n// module chunks = map","'use strict';\n\nexports.__esModule = true;\nfunction createThunkMiddleware(extraArgument) {\n return function (_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n if (typeof action === 'function') {\n return action(dispatch, getState, extraArgument);\n }\n\n return next(action);\n };\n };\n };\n}\n\nvar thunk = createThunkMiddleware();\nthunk.withExtraArgument = createThunkMiddleware;\n\nexports['default'] = thunk;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/redux-thunk/lib/index.js\n// module id = ./node_modules/redux-thunk/lib/index.js\n// module chunks = map","'use strict';\n\nvar isAbsolute = function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n};\n\n// About 1.5x faster than the two-arg version of Array#splice()\nvar spliceOne = function spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }list.pop();\n};\n\n// This implementation is based heavily on node's url.parse\nvar resolvePathname = function resolvePathname(to) {\n var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n var toParts = to && to.split('/') || [];\n var fromParts = from && from.split('/') || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash = void 0;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) {\n fromParts.unshift('..');\n }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n};\n\nmodule.exports = resolvePathname;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/resolve-pathname/index.js\n// module id = ./node_modules/resolve-pathname/index.js\n// module chunks = map","/*!\n * $script.js JS loader & dependency manager\n * https://github.com/ded/script.js\n * (c) Dustin Diaz 2014 | License MIT\n */\n\n(function (name, definition) {\n if (typeof module != 'undefined' && module.exports) module.exports = definition()\n else if (typeof define == 'function' && define.amd) define(definition)\n else this[name] = definition()\n})('$script', function () {\n var doc = document\n , head = doc.getElementsByTagName('head')[0]\n , s = 'string'\n , f = false\n , push = 'push'\n , readyState = 'readyState'\n , onreadystatechange = 'onreadystatechange'\n , list = {}\n , ids = {}\n , delay = {}\n , scripts = {}\n , scriptpath\n , urlArgs\n\n function every(ar, fn) {\n for (var i = 0, j = ar.length; i < j; ++i) if (!fn(ar[i])) return f\n return 1\n }\n function each(ar, fn) {\n every(ar, function (el) {\n fn(el)\n return 1\n })\n }\n\n function $script(paths, idOrDone, optDone) {\n paths = paths[push] ? paths : [paths]\n var idOrDoneIsDone = idOrDone && idOrDone.call\n , done = idOrDoneIsDone ? idOrDone : optDone\n , id = idOrDoneIsDone ? paths.join('') : idOrDone\n , queue = paths.length\n function loopFn(item) {\n return item.call ? item() : list[item]\n }\n function callback() {\n if (!--queue) {\n list[id] = 1\n done && done()\n for (var dset in delay) {\n every(dset.split('|'), loopFn) && !each(delay[dset], loopFn) && (delay[dset] = [])\n }\n }\n }\n setTimeout(function () {\n each(paths, function loading(path, force) {\n if (path === null) return callback()\n \n if (!force && !/^https?:\\/\\//.test(path) && scriptpath) {\n path = (path.indexOf('.js') === -1) ? scriptpath + path + '.js' : scriptpath + path;\n }\n \n if (scripts[path]) {\n if (id) ids[id] = 1\n return (scripts[path] == 2) ? callback() : setTimeout(function () { loading(path, true) }, 0)\n }\n\n scripts[path] = 1\n if (id) ids[id] = 1\n create(path, callback)\n })\n }, 0)\n return $script\n }\n\n function create(path, fn) {\n var el = doc.createElement('script'), loaded\n el.onload = el.onerror = el[onreadystatechange] = function () {\n if ((el[readyState] && !(/^c|loade/.test(el[readyState]))) || loaded) return;\n el.onload = el[onreadystatechange] = null\n loaded = 1\n scripts[path] = 2\n fn()\n }\n el.async = 1\n el.src = urlArgs ? path + (path.indexOf('?') === -1 ? '?' : '&') + urlArgs : path;\n head.insertBefore(el, head.lastChild)\n }\n\n $script.get = create\n\n $script.order = function (scripts, id, done) {\n (function callback(s) {\n s = scripts.shift()\n !scripts.length ? $script(s, id, done) : $script(s, callback)\n }())\n }\n\n $script.path = function (p) {\n scriptpath = p\n }\n $script.urlArgs = function (str) {\n urlArgs = str;\n }\n $script.ready = function (deps, ready, req) {\n deps = deps[push] ? deps : [deps]\n var missing = [];\n !each(deps, function (dep) {\n list[dep] || missing[push](dep);\n }) && every(deps, function (dep) {return list[dep]}) ?\n ready() : !function (key) {\n delay[key] = delay[key] || []\n delay[key][push](ready)\n req && req(missing)\n }(deps.join('|'))\n return $script\n }\n\n $script.done = function (idOrDone) {\n $script([null], idOrDone)\n }\n\n return $script\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/scriptjs/dist/script.js\n// module id = ./node_modules/scriptjs/dist/script.js\n// module chunks = map bluemountainmap wingtagsmap","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar valueEqual = function valueEqual(a, b) {\n if (a === b) return true;\n\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n return valueEqual(item, b[index]);\n });\n\n var aType = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n var bType = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n if (aType !== bType) return false;\n\n if (aType === 'object') {\n var aValue = a.valueOf();\n var bValue = b.valueOf();\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n\n if (aKeys.length !== bKeys.length) return false;\n\n return aKeys.every(function (key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n};\n\nexports.default = valueEqual;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/value-equal/index.js\n// module id = ./node_modules/value-equal/index.js\n// module chunks = map","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n\n if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n throw new Error(\n 'The warning format should be able to uniquely identify this ' +\n 'warning. Please, use a more descriptive format than: ' + format\n );\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch(x) {}\n }\n };\n}\n\nmodule.exports = warning;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/warning/browser.js\n// module id = ./node_modules/warning/browser.js\n// module chunks = herbariumgallery map","module.exports = function (arg, url) {\r\n\r\n function _t() {\r\n return new RegExp(/(.*?)\\.?([^\\.]*?)\\.(gl|com|net|org|biz|ws|in|me|co\\.uk|co|org\\.uk|ltd\\.uk|plc\\.uk|me\\.uk|edu|mil|br\\.com|cn\\.com|eu\\.com|hu\\.com|no\\.com|qc\\.com|sa\\.com|se\\.com|se\\.net|us\\.com|uy\\.com|ac|co\\.ac|gv\\.ac|or\\.ac|ac\\.ac|af|am|as|at|ac\\.at|co\\.at|gv\\.at|or\\.at|asn\\.au|com\\.au|edu\\.au|org\\.au|net\\.au|id\\.au|be|ac\\.be|adm\\.br|adv\\.br|am\\.br|arq\\.br|art\\.br|bio\\.br|cng\\.br|cnt\\.br|com\\.br|ecn\\.br|eng\\.br|esp\\.br|etc\\.br|eti\\.br|fm\\.br|fot\\.br|fst\\.br|g12\\.br|gov\\.br|ind\\.br|inf\\.br|jor\\.br|lel\\.br|med\\.br|mil\\.br|net\\.br|nom\\.br|ntr\\.br|odo\\.br|org\\.br|ppg\\.br|pro\\.br|psc\\.br|psi\\.br|rec\\.br|slg\\.br|tmp\\.br|tur\\.br|tv\\.br|vet\\.br|zlg\\.br|br|ab\\.ca|bc\\.ca|mb\\.ca|nb\\.ca|nf\\.ca|ns\\.ca|nt\\.ca|on\\.ca|pe\\.ca|qc\\.ca|sk\\.ca|yk\\.ca|ca|cc|ac\\.cn|com\\.cn|edu\\.cn|gov\\.cn|org\\.cn|bj\\.cn|sh\\.cn|tj\\.cn|cq\\.cn|he\\.cn|nm\\.cn|ln\\.cn|jl\\.cn|hl\\.cn|js\\.cn|zj\\.cn|ah\\.cn|gd\\.cn|gx\\.cn|hi\\.cn|sc\\.cn|gz\\.cn|yn\\.cn|xz\\.cn|sn\\.cn|gs\\.cn|qh\\.cn|nx\\.cn|xj\\.cn|tw\\.cn|hk\\.cn|mo\\.cn|cn|cx|cz|de|dk|fo|com\\.ec|tm\\.fr|com\\.fr|asso\\.fr|presse\\.fr|fr|gf|gs|co\\.il|net\\.il|ac\\.il|k12\\.il|gov\\.il|muni\\.il|ac\\.in|co\\.in|org\\.in|ernet\\.in|gov\\.in|net\\.in|res\\.in|is|it|ac\\.jp|co\\.jp|go\\.jp|or\\.jp|ne\\.jp|ac\\.kr|co\\.kr|go\\.kr|ne\\.kr|nm\\.kr|or\\.kr|li|lt|lu|asso\\.mc|tm\\.mc|com\\.mm|org\\.mm|net\\.mm|edu\\.mm|gov\\.mm|ms|nl|no|nu|pl|ro|org\\.ro|store\\.ro|tm\\.ro|firm\\.ro|www\\.ro|arts\\.ro|rec\\.ro|info\\.ro|nom\\.ro|nt\\.ro|se|si|com\\.sg|org\\.sg|net\\.sg|gov\\.sg|sk|st|tf|ac\\.th|co\\.th|go\\.th|mi\\.th|net\\.th|or\\.th|tm|to|com\\.tr|edu\\.tr|gov\\.tr|k12\\.tr|net\\.tr|org\\.tr|com\\.tw|org\\.tw|net\\.tw|ac\\.uk|uk\\.com|uk\\.net|gb\\.com|gb\\.net|vg|sh|kz|ch|info|ua|gov|name|pro|ie|hk|com\\.hk|org\\.hk|net\\.hk|edu\\.hk|us|tk|cd|by|ad|lv|eu\\.lv|bz|es|jp|cl|ag|mobi|eu|co\\.nz|org\\.nz|net\\.nz|maori\\.nz|iwi\\.nz|io|la|md|sc|sg|vc|tw|travel|my|se|tv|pt|com\\.pt|edu\\.pt|asia|fi|com\\.ve|net\\.ve|fi|org\\.ve|web\\.ve|info\\.ve|co\\.ve|tel|im|gr|ru|net\\.ru|org\\.ru|hr|com\\.hr|ly|xyz)$/);\r\n }\r\n\r\n function _d(s) {\r\n return decodeURIComponent(s.replace(/\\+/g, ' '));\r\n }\r\n\r\n function _i(arg, str) {\r\n var sptr = arg.charAt(0),\r\n split = str.split(sptr);\r\n\r\n if (sptr === arg) { return split; }\r\n\r\n arg = parseInt(arg.substring(1), 10);\r\n\r\n return split[arg < 0 ? split.length + arg : arg - 1];\r\n }\r\n\r\n function _f(arg, str) {\r\n var sptr = arg.charAt(0),\r\n split = str.split('&'),\r\n field = [],\r\n params = {},\r\n tmp = [],\r\n arg2 = arg.substring(1);\r\n\r\n for (var i = 0, ii = split.length; i < ii; i++) {\r\n field = split[i].match(/(.*?)=(.*)/);\r\n\r\n // TODO: regex should be able to handle this.\r\n if ( ! field) {\r\n field = [split[i], split[i], ''];\r\n }\r\n\r\n if (field[1].replace(/\\s/g, '') !== '') {\r\n field[2] = _d(field[2] || '');\r\n\r\n // If we have a match just return it right away.\r\n if (arg2 === field[1]) { return field[2]; }\r\n\r\n // Check for array pattern.\r\n tmp = field[1].match(/(.*)\\[([0-9]+)\\]/);\r\n\r\n if (tmp) {\r\n params[tmp[1]] = params[tmp[1]] || [];\r\n \r\n params[tmp[1]][tmp[2]] = field[2];\r\n }\r\n else {\r\n params[field[1]] = field[2];\r\n }\r\n }\r\n }\r\n\r\n if (sptr === arg) { return params; }\r\n\r\n return params[arg2];\r\n }\r\n\r\n var _l = {}, tmp, tmp2;\r\n\r\n if (arg === 'tld?') { return _t(); }\r\n\r\n url = url || window.location.toString();\r\n\r\n if ( ! arg) { return url; }\r\n\r\n arg = arg.toString();\r\n\r\n if (tmp = url.match(/^mailto:([^\\/].+)/)) {\r\n _l.protocol = 'mailto';\r\n _l.email = tmp[1];\r\n }\r\n else {\r\n\r\n // Ignore Hashbangs.\r\n if (tmp = url.match(/(.*?)\\/#\\!(.*)/)) {\r\n url = tmp[1] + tmp[2];\r\n }\r\n\r\n // Hash.\r\n if (tmp = url.match(/(.*?)#(.*)/)) {\r\n _l.hash = tmp[2];\r\n url = tmp[1];\r\n }\r\n\r\n // Return hash parts.\r\n if (_l.hash && arg.match(/^#/)) { return _f(arg, _l.hash); }\r\n\r\n // Query\r\n if (tmp = url.match(/(.*?)\\?(.*)/)) {\r\n _l.query = tmp[2];\r\n url = tmp[1];\r\n }\r\n\r\n // Return query parts.\r\n if (_l.query && arg.match(/^\\?/)) { return _f(arg, _l.query); }\r\n\r\n // Protocol.\r\n if (tmp = url.match(/(.*?)\\:?\\/\\/(.*)/)) {\r\n _l.protocol = tmp[1].toLowerCase();\r\n url = tmp[2];\r\n }\r\n\r\n // Path.\r\n if (tmp = url.match(/(.*?)(\\/.*)/)) {\r\n _l.path = tmp[2];\r\n url = tmp[1];\r\n }\r\n\r\n // Clean up path.\r\n _l.path = (_l.path || '').replace(/^([^\\/])/, '/$1');\r\n\r\n // Return path parts.\r\n if (arg.match(/^[\\-0-9]+$/)) { arg = arg.replace(/^([^\\/])/, '/$1'); }\r\n if (arg.match(/^\\//)) { return _i(arg, _l.path.substring(1)); }\r\n\r\n // File.\r\n tmp = _i('/-1', _l.path.substring(1));\r\n \r\n if (tmp && (tmp = tmp.match(/(.*?)\\.([^.]+)$/))) {\r\n _l.file = tmp[0];\r\n _l.filename = tmp[1];\r\n _l.fileext = tmp[2];\r\n }\r\n\r\n // Port.\r\n if (tmp = url.match(/(.*)\\:([0-9]+)$/)) {\r\n _l.port = tmp[2];\r\n url = tmp[1];\r\n }\r\n\r\n // Auth.\r\n if (tmp = url.match(/(.*?)@(.*)/)) {\r\n _l.auth = tmp[1];\r\n url = tmp[2];\r\n }\r\n\r\n // User and pass.\r\n if (_l.auth) {\r\n tmp = _l.auth.match(/(.*)\\:(.*)/);\r\n\r\n _l.user = tmp ? tmp[1] : _l.auth;\r\n _l.pass = tmp ? tmp[2] : undefined;\r\n }\r\n\r\n // Hostname.\r\n _l.hostname = url.toLowerCase();\r\n\r\n // Return hostname parts.\r\n if (arg.charAt(0) === '.') { return _i(arg, _l.hostname); }\r\n\r\n // Domain, tld and sub domain.\r\n if (_t()) {\r\n tmp = _l.hostname.match(_t());\r\n\r\n if (tmp) {\r\n _l.tld = tmp[3];\r\n _l.domain = tmp[2] ? tmp[2] + '.' + tmp[3] : undefined;\r\n _l.sub = tmp[1] || undefined;\r\n }\r\n }\r\n\r\n // Set port and protocol defaults if not set.\r\n _l.port = _l.port || (_l.protocol === 'https' ? '443' : '80');\r\n _l.protocol = _l.protocol || (_l.port === '443' ? 'https' : 'http');\r\n }\r\n\r\n // Return arg.\r\n if (arg in _l) { return _l[arg]; }\r\n\r\n // Return everything.\r\n if (arg === '{}') { return _l; }\r\n\r\n // Default to undefined for no match.\r\n return undefined;\r\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/wurl/wurl.js\n// module id = ./node_modules/wurl/wurl.js\n// module chunks = map videopopup","const getAttractionsByType= (type, viewmode, resolve, rejected) => {\r\n\tjQuery.ajax({\r\n\t\turl: `/WWW_RBGS/API/GetMapData.ashx?type=${type}&viewmode=${viewmode}`,\r\n\t\tdataType: 'json',\r\n\t\tsuccess: (data) =>\tresolve(data),\r\n\t\terror: (xhr, textStatus, errorThrown) => rejected(textStatus)\r\n\t});\r\n}\r\n\r\nconst getAllAttractions= (tabs, viewmode, mainResolve, mainRejected) => {\r\n\tconst promises = tabs.map(tab => {\r\n\t\treturn new Promise( (resolve, rejected) => {\r\n\t\t\tjQuery.ajax({\r\n\t\t\t\turl: `/WWW_RBGS/API/GetMapData.ashx?type=${tab.key}&viewmode=${viewmode}`,\r\n\t\t\t\tdataType: 'json',\r\n\t\t\t\tsuccess: (data) =>\tresolve({key: tab.key, label:tab.label, items:data}),\r\n\t\t\t\terror: (xhr, textStatus, errorThrown) => rejected(textStatus)\r\n\t\t\t});\r\n\t\t});\r\n\t});\r\n\r\n\treturn Promise.all(promises).then(values => {\r\n\t\tmainResolve(values);\r\n\t})\r\n}\r\n\r\nexport function fetchTours(viewmode){\r\n\treturn {\r\n\t\ttype: 'FETCH_TOURS',\r\n\t\tpayload: new Promise((resolve, rejected) => getAttractionsByType('tours', viewmode, resolve, rejected))\r\n\t};\r\n}\r\n\r\nexport function fetchHighlights(viewmode){\r\n\treturn {\r\n\t\ttype: 'FETCH_HIGHLIGHTS',\r\n\t\tpayload: new Promise((resolve, rejected) => getAttractionsByType('highlights', viewmode, resolve, rejected))\r\n\t};\r\n}\r\n\r\nexport function fetchVenues(viewmode){\r\n\treturn {\r\n\t\ttype: 'FETCH_VENUES',\r\n\t\tpayload: new Promise((resolve, rejected) => getAttractionsByType('venues', viewmode, resolve, rejected))\r\n\t};\r\n}\r\n\r\nexport function fetchItems(tabs, viewmode){\r\n\treturn {\r\n\t\ttype: 'FETCH_ITEMS',\r\n\t\tpayload: new Promise((resolve, rejected) => getAllAttractions(tabs, viewmode, resolve, rejected))\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/actions/attractionsActions.js","export function updateGmapMapMaps(obj){\r\n\treturn{\r\n\t\ttype: 'UPDATE_MAP_MAPS',\r\n\t\tpayload: obj\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/actions/gmapActions.js","export function updateHoveredMarker(key){\r\n\treturn {\r\n\t\ttype: 'UPDATE_HOVERED_MARKER',\r\n\t\tpayload: key\r\n\t};\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/actions/hoveredMarkerActions.js","export const setActiveAttraction = (attraction) =>{\r\n\treturn{\r\n\t\ttype: 'SET_ACTIVE_ATTRACTION',\r\n\t\tpayload: attraction,\r\n\t};\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/actions/mapAttractionActions.js","export const changeBackButtonTitle = (str) => {\r\n\treturn {\r\n\t\ttype: 'CHANGE_BACKBUTTON_TITLE',\r\n\t\tpayload:{title: str}\r\n\t};\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/actions/mapBackButtonActions.js","import { TOURS_KEY, SPORTFIELD_KEY, PARK_KEY } from \"../constants/mapconstants\";\r\n\r\n/**\r\n * Show Main Tabs\r\n * @return {[type]} [description]\r\n */\r\nexport function showMain() {\r\n\treturn { type: \"SHOW_MAIN\", payload: { section: \"main\", title: \"\" } };\r\n}\r\n\r\n/**\r\n * Show Tour Attraction Tabs (Highlights and Abouts)\r\n * @return {[type]} [description]\r\n */\r\nexport function showTour(section = \"tour\", title = \"Tours\") {\r\n\treturn { type: \"SHOW_TOUR\", payload: { section, title } };\r\n}\r\n\r\n/**\r\n * Show Tour Step\r\n * @return {[type]} [description]\r\n */\r\nexport function showTourStep(section = TOURS_KEY, title = \"Tours\") {\r\n\treturn { type: \"SHOW_TOURSTEP\", payload: { section, title } };\r\n}\r\n\r\n/**\r\n * Show Highlight Detail (when clicking item for Highligts tab)\r\n * @return {[type]} [description]\r\n */\r\nexport function showHighlight(section = \"highlight\", title = \"Highlights\") {\r\n\treturn { type: \"SHOW_HIGHLIGHT\", payload: { section, title } };\r\n}\r\n\r\nexport function showVenue(section = \"venue\", title = \"Places\") {\r\n\treturn { type: \"SHOW_VENUE\", payload: { section, title } };\r\n}\r\n\r\nexport function showPark(section = PARK_KEY, title = \"Park\") {\r\n\treturn { type: \"SHOW_PARK\", payload: { section, title } };\r\n}\r\n\r\nexport function showSportField(\r\n\tsection = SPORTFIELD_KEY,\r\n\ttitle = \"Sport Field\"\r\n) {\r\n\treturn { type: \"SHOW_SPORTFIELD\", payload: { section, title } };\r\n}\r\n\r\nexport function updateActiveTab(activeTab) {\r\n\treturn { type: \"UPDATE_ACTIVE_TAB\", payload: activeTab };\r\n}\r\n\r\nexport function updateTourZoomCenter(tourZoomLevel, tourMapCenter) {\r\n\treturn {\r\n\t\ttype: \"UPDATE_TOUR_ZOOMCENTER\",\r\n\t\tpayload: { tourZoomLevel, tourMapCenter }\r\n\t};\r\n}\r\n\r\nexport function updateMainZoomCenter(mainZoomLevel, mainMapCenter) {\r\n\treturn {\r\n\t\ttype: \"UPDATE_MAIN_ZOOMCENTER\",\r\n\t\tpayload: { mainZoomLevel, mainMapCenter }\r\n\t};\r\n}\r\n\r\nexport function updateVenueFilter(str) {\r\n\treturn {\r\n\t\ttype: \"UPDATE_VENUE_FILTER\",\r\n\t\tpayload: { venueFilter: str }\r\n\t};\r\n}\r\n\r\nexport function updateTourRoutes(arr) {\r\n\treturn {\r\n\t\ttype: \"UPDATE_TOUR_ROUTES\",\r\n\t\tpayload: { routes: arr }\r\n\t};\r\n}\r\n\r\nexport function updateActiveItemId(activeItemId) {\r\n\treturn {\r\n\t\ttype: \"UPDATE_ACTIVE_ITEMID\",\r\n\t\tpayload: { activeItemId }\r\n\t};\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/actions/mapSectionViewActions.js","export function changeMapTitle(title){\r\n\treturn {type: 'CHANGE_TITLE', payload: {title}};\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/actions/mapTitleActions.js","export const setActiveTour = (tour={}, id) => {\r\n\treturn { type: 'SET_ACTIVE_TOUR', payload: {tour, id} };\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/actions/mapTourActions.js","'use strict';\r\n\r\nexport function setActiveTourStep(tourStep){\r\n\treturn {\r\n\t\ttype: 'SET_ACTIVE_TOURSTEP',\r\n\t\tpayload: tourStep\r\n\t};\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/actions/mapTourStepActions.js","'use strict';\r\n\r\nexport function showMap() {\r\n return { type: 'CHANGE_VIEW', payload: { view: 'map' } };\r\n}\r\n\r\nexport function showList() {\r\n return { type: 'CHANGE_VIEW', payload: {view: 'list' } };\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/actions/mapViewActions.js","export function updateBubbleIdShown(id){\r\n\treturn {\r\n\t\ttype: \"UPDATE_BUBBLEID_SHOWN\",\r\n\t\tpayload: id\r\n\t};\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/actions/sportPinActions.js","export function updatePolylines(arr){\r\n\treturn {\r\n\t\ttype: 'UPDATE_POLYLINES',\r\n\t\tpayload: arr\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/actions/tourPolylinesActions.js","export default (props) => {\r\n\treturn (\r\n\t\t\r\n \r\n \r\n \t\r\n \t);\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/FancyChevron.js","'use strict';\r\nimport { getPinStyle } from './pins/pinStyle';\r\n\r\nexport default (props) =>{\r\n\tconst backgroundStyle = {\r\n\t\tbackgroundImage: props.imageUrl ? `url(${props.imageUrl})` : 'none'\r\n\t};\r\n\tconst bubbleStyle = {\r\n\t\ttop: props.showLabelOnly ? -34 : ((60 / -2) - 36)\r\n\t};\r\n\r\n\treturn(\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{props.text}\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/InfoBubble.js","\"use strict\";\r\nimport autobind from \"autobind-decorator\";\r\nimport React, { PureComponent } from \"react\";\r\nimport { Switch, Route } from \"react-router\";\r\nimport { push } from \"react-router-redux\";\r\nimport { connect } from \"react-redux\";\r\nimport wurl from \"wurl\";\r\nimport MapList from \"./MapList\";\r\nimport MapMap from \"./MapMap\";\r\nimport MapHead from \"./MapHead\";\r\n\r\n// const {whyDidYouUpdate} = require('why-did-you-update');\r\n// whyDidYouUpdate(React, {\r\n// \texclude: [ /^GoogleMapMarkers/, /^Route/ ]\r\n// });\r\n\r\nimport { fetchItems } from \"../actions/attractionsActions\";\r\nimport { updateActiveTab } from \"../actions/mapSectionViewActions\";\r\nimport { changeMapTitle } from \"../actions/mapTitleActions\";\r\nimport { changeBackButtonTitle } from \"../actions/mapBackButtonActions\";\r\nimport { updateHoveredMarker } from \"../actions/hoveredMarkerActions\";\r\nimport { showList } from \"../actions/mapViewActions\";\r\nimport {\r\n\tTOURSTEP_KEY,\r\n\tTOURS_KEY,\r\n\tPARK_KEY,\r\n\tSPORTS_KEY,\r\n\tSPORTFIELD_KEY\r\n} from \"../constants/mapconstants\";\r\nimport { getSportFieldsFromParks } from \"../utils/mapUtils\";\r\n\r\n@connect(store => {\r\n\treturn {\r\n\t\tmapView: store.mapView,\r\n\t\tmapViewView: store.mapView.view,\r\n\t\tmapTitle: store.mapTitle.title,\r\n\t\tmapTour: store.mapTour.tour,\r\n\t\tmapBackButtonTitle: store.mapBackButton.title,\r\n\t\tmapSectionViewSection: store.mapSectionView.section,\r\n\t\tmapSectionViewActiveTab: store.mapSectionView.activeTab,\r\n\t\tmapSectionViewTourZoomLevel: store.mapSectionView.tourZoomLevel,\r\n\t\tmapSectionViewTourMapCenterLat: store.mapSectionView.tourMapCenter\r\n\t\t\t? store.mapSectionView.tourMapCenter.lat\r\n\t\t\t: undefined,\r\n\t\tmapSectionViewTourMapCenterLng: store.mapSectionView.tourMapCenter\r\n\t\t\t? store.mapSectionView.tourMapCenter.lng\r\n\t\t\t: undefined,\r\n\t\tmapSectionViewMainZoomLevel: store.mapSectionView.mainZoomLevel,\r\n\t\tmapSectionViewMainMapCenterLat: store.mapSectionView.mainMapCenter\r\n\t\t\t? store.mapSectionView.mainMapCenter.lat\r\n\t\t\t: undefined,\r\n\t\tmapSectionViewMainMapCenterLng: store.mapSectionView.mainMapCenter\r\n\t\t\t? store.mapSectionView.mainMapCenter.lng\r\n\t\t\t: undefined,\r\n\t\ttourPolylines: store.tourPolylines,\r\n\t\tgmap: store.gmap,\r\n\t\ttabs: store.attractions.tabs,\r\n\t\tviewmode: store.attractions.viewmode,\r\n\t\tmapSectionViewActiveItemId: store.mapSectionView.activeItemId,\r\n\t\titems: store.attractions.items\r\n\t};\r\n})\r\nexport default class Map extends PureComponent {\r\n\t// Event\r\n\t@autobind\r\n\thandleBackClick(ev) {\r\n\t\tev.preventDefault();\r\n\t\tconst {\r\n\t\t\tmapTour,\r\n\t\t\tmapSectionViewSection,\r\n\t\t\tmapSectionViewMainZoomLevel,\r\n\t\t\tmapSectionViewMainMapCenterLat,\r\n\t\t\tmapSectionViewMainMapCenterLng,\r\n\t\t\tmapBackButtonTitle,\r\n\t\t\tgmap,\r\n\t\t\tdispatch,\r\n\t\t\tmapSectionViewActiveItemId,\r\n\t\t\titems\r\n\t\t} = this.props;\r\n\r\n\t\tconst map = gmap.map,\r\n\t\t\tmaps = gmap.maps;\r\n\r\n\t\t// reset hovered marker\r\n\t\tdispatch(updateHoveredMarker(-1));\r\n\r\n\t\tconst section = mapSectionViewSection.toLowerCase();\r\n\t\tconst isSectionSportfield = section == SPORTFIELD_KEY;\r\n\t\tconst sportsItems = items.find(item => item.key == SPORTS_KEY);\r\n\r\n\t\tlet sportField;\r\n\t\tif (isSectionSportfield) {\r\n\t\t\tconst sportFields = getSportFieldsFromParks(\r\n\t\t\t\tsportsItems.items.parks\r\n\t\t\t);\r\n\t\t\tsportField = sportFields.find(\r\n\t\t\t\tsf => sf.SpaceID == mapSectionViewActiveItemId\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif (section == TOURSTEP_KEY) {\r\n\t\t\tev.preventDefault();\r\n\r\n\t\t\t// change back button title to tours\r\n\t\t\tdispatch(\r\n\t\t\t\tchangeBackButtonTitle(\r\n\t\t\t\t\tthis.props.tabs.find(item => item.key == \"tours\").label\r\n\t\t\t\t)\r\n\t\t\t);\r\n\r\n\t\t\t// change title to the tour name\r\n\t\t\t// in this view, the back button title is tour name\r\n\t\t\tdispatch(changeMapTitle(mapBackButtonTitle));\r\n\r\n\t\t\tdispatch(push(`/${TOURS_KEY}/${mapTour.id}`));\r\n\t\t} else if (section == SPORTFIELD_KEY) {\r\n\t\t\tdispatch(push(`/${PARK_KEY}/${sportField.ParkID}`));\r\n\t\t} else {\r\n\t\t\tdispatch(push(\"/\"));\r\n\t\t\tsetTimeout(function() {\r\n\t\t\t\tmaps.event.addListenerOnce(map, \"zoom_changed\", function() {\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tmapSectionViewMainMapCenterLat &&\r\n\t\t\t\t\t\tmapSectionViewMainMapCenterLng\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tmap.panTo({\r\n\t\t\t\t\t\t\tlat: mapSectionViewMainMapCenterLat(),\r\n\t\t\t\t\t\t\tlng: mapSectionViewMainMapCenterLng()\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tmap.setZoom(mapSectionViewMainZoomLevel);\r\n\t\t\t}, 0);\r\n\t\t}\r\n\t}\r\n\r\n\t@autobind\r\n\thandleViewListClick() {\r\n\t\tthis.props.dispatch(showList());\r\n\t}\r\n\r\n\t@autobind\r\n\t_onRoot() {\r\n\t\t// change title to the main title, e.g. Royal Botanical Garden or Centennial Parklands\r\n\t\tthis.props.dispatch(changeMapTitle());\r\n\r\n\t\t// hide active track\r\n\t\tif (this.props.mapTour) {\r\n\t\t\tconst poly = this.props.tourPolylines.polylines.find(\r\n\t\t\t\tobj => !!obj && obj.id == this.props.mapTour.id\r\n\t\t\t);\r\n\t\t\tif (poly) poly.polyline.setMap(null);\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tconst activeTab = wurl(\"?tab\") || wurl(\"?type\") || \"\";\r\n\t\tthis.props.dispatch(fetchItems(this.props.tabs, this.props.viewmode));\r\n\t\tthis.props.dispatch(\r\n\t\t\tupdateActiveTab(activeTab || this.props.tabs[0].key)\r\n\t\t);\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst {\r\n\t\t\tmapViewView,\r\n\t\t\tlocation,\r\n\t\t\tmapTitle,\r\n\t\t\tmapSectionViewActiveTab,\r\n\t\t\tmapSectionViewSection\r\n\t\t} = this.props;\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t{mapViewView == \"map\" && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tView list\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/Map.js","import FancyChevron from './FancyChevron';\r\n\r\nexport default (props) =>{\r\n\treturn(\r\n\t\t\r\n\t\t\t{props.text}\r\n\t\t\t{props.hasChevron ? : null}\r\n\t\t\r\n\t);\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/MapButton.js","export default (props) => {\r\n\treturn (\r\n\t\t
\r\n\t\t\t{ props.children }\r\n\t\t
\r\n\t);\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/MapFixButtonCol.js","export default (props) => {\r\n\treturn (\r\n\t\t
\r\n\t\t\t{\r\n\t\t\t\tprops.hasNoCols ? props.children :
{ props.children }
\r\n\t\t\t}\r\n\t\t
\r\n\t);\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/MapFixButtonWrapper.js","import autobind from \"autobind-decorator\";\r\nimport React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport { showMap, showList } from \"../actions/mapViewActions\";\r\nimport { TOURS_KEY } from \"../constants/mapconstants\";\r\n\r\nconst MapViewButton = props => {\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t{props.title}\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\n@connect(store => {\r\n\treturn {\r\n\t\tmapTitle: store.mapTitle,\r\n\t\tmapSectionViewSection: store.mapSectionView.section,\r\n\t\tmapSectionViewActiveItemId: store.mapSectionView.activeItemId,\r\n\t\tattractions: store.attractions\r\n\t};\r\n})\r\nexport default class MapHead extends Component {\r\n\t@autobind\r\n\tviewMapClickHandler() {\r\n\t\tthis.props.dispatch(showMap());\r\n\t}\r\n\t@autobind\r\n\tviewListClickHandler() {\r\n\t\tthis.props.dispatch(showList());\r\n\t}\r\n\r\n\t_hideDetailsViewBtn() {\r\n\t\tconst view = this.props.mapSectionViewSection;\r\n\t\tconst activeItemId = this.props.mapSectionViewActiveItemId;\r\n\t\tlet item;\r\n\t\tswitch (view) {\r\n\t\t\tcase \"highlight\":\r\n\t\t\t\titem = this.props.attractions.highlights.find(\r\n\t\t\t\t\tobj => obj.id == parseInt(activeItemId)\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"venue\":\r\n\t\t\t\titem = this.props.attractions.venues.find(\r\n\t\t\t\t\tobj => obj.id == parseInt(activeItemId)\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn !!item ? !!item.desc : true;\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst tourOrMain =\r\n\t\t\tthis.props.mapSectionViewSection == \"main\" ||\r\n\t\t\tthis.props.mapSectionViewSection == TOURS_KEY;\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t

\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{this.props.mapSectionViewSection == \"main\" ? null : (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{this.props.mapTitle.title}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t

\r\n\t\t\t\t{/*
\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t{this._hideDetailsViewBtn() && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t
*/}\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/MapHead.js","import autobind from \"autobind-decorator\";\r\nimport React, { PureComponent } from \"react\";\r\nimport { Switch, Route } from \"react-router\";\r\nimport { connect } from \"react-redux\";\r\nimport MapListBody from \"./MapListBody\";\r\nimport {\r\n\tSPORTS_KEY,\r\n\tSPORTFIELD_KEY,\r\n\tPARK_KEY\r\n} from \"../constants/mapconstants\";\r\nimport { getSportFieldsFromParks } from \"../utils/mapUtils\";\r\n\r\n@connect(store => {\r\n\treturn {\r\n\t\tmapSectionViewSection: store.mapSectionView.section,\r\n\t\tmapSectionViewActiveTab: store.mapSectionView.activeTab,\r\n\t\tmapSectionViewActiveItemId: store.mapSectionView.activeItemId,\r\n\t\tmapBackButtonTitle: store.mapBackButton.title,\r\n\t\titemsFetched: store.attractions.fetched,\r\n\t\ttabs: store.attractions.tabs,\r\n\t\titems: store.attractions.items\r\n\t};\r\n})\r\nexport default class MapList extends PureComponent {\r\n\t@autobind\r\n\tshowBackButton(routerProps, page, id) {\r\n\t\tconst {\r\n\t\t\tmapSectionViewActiveTab,\r\n\t\t\tmapSectionViewSection,\r\n\t\t\tmapBackButtonTitle,\r\n\t\t\tonBackButtonClick,\r\n\t\t\titemsFetched,\r\n\t\t\titems,\r\n\t\t\tmapTitle,\r\n\t\t\ttabs\r\n\t\t} = this.props;\r\n\r\n\t\tconst _section = page || mapSectionViewSection;\r\n\t\tconst isSectionPark = _section == PARK_KEY;\r\n\t\tconst isSectionSportfield = _section == SPORTFIELD_KEY;\r\n\r\n\t\tconst activeTab = tabs.find(item => item.key == _section);\r\n\t\tlet text = activeTab ? activeTab.label : mapBackButtonTitle;\r\n\r\n\t\tconst renderSportRelatedHead = () => {\r\n\t\t\tconst sportsItems = items.find(item => item.key == SPORTS_KEY);\r\n\t\t\tif (!sportsItems || !sportsItems.items || !sportsItems.items.parks)\r\n\t\t\t\treturn null;\r\n\r\n\t\t\tif (isSectionPark || isSectionSportfield) {\r\n\t\t\t\tlet sportField;\r\n\t\t\t\tlet park;\r\n\t\t\t\tif (isSectionSportfield) {\r\n\t\t\t\t\tconst sportFields = getSportFieldsFromParks(\r\n\t\t\t\t\t\tsportsItems.items.parks\r\n\t\t\t\t\t);\r\n\t\t\t\t\tsportField = sportFields.find(sf => sf.SpaceID == id);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tpark = sportsItems.items.parks.find(p => p.ParkID == id);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!sportField && !park) return null;\r\n\r\n\t\t\t\treturn (\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{_section != \"main\" && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tBack to{\" \"}\r\n\t\t\t\t\t\t\t\t\t{isSectionPark ? \"all parks\" : \"results\"}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{itemsFetched && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{isSectionSportfield\r\n\t\t\t\t\t\t\t\t\t? sportField.SpaceName\r\n\t\t\t\t\t\t\t\t\t: park.parkName}\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tconst renderNonSportRelatedHead = () => {\r\n\t\t\treturn (\r\n\t\t\t\t
\r\n\t\t\t\t\t{mapSectionViewSection != \"main\" && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{text}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{itemsFetched && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{mapTitle}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\t};\r\n\r\n\t\tif (\r\n\t\t\tmapSectionViewSection == \"main\" &&\r\n\t\t\tmapSectionViewActiveTab == SPORTS_KEY\r\n\t\t) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tif (isSectionPark || isSectionSportfield) {\r\n\t\t\treturn renderSportRelatedHead();\r\n\t\t}\r\n\r\n\t\treturn renderNonSportRelatedHead();\r\n\t}\r\n\r\n\t@autobind\r\n\t_renderBackButton(props) {\r\n\t\treturn this.showBackButton(\r\n\t\t\tprops,\r\n\t\t\tprops.match.params.section,\r\n\t\t\tprops.match.params.id\r\n\t\t);\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/MapList.js","import autobind from \"autobind-decorator\";\r\nimport React, { Component } from \"react\";\r\nimport { Route, Switch } from \"react-router\";\r\nimport { connect } from \"react-redux\";\r\nimport MapSectionMain from \"./MapSectionMain\";\r\nimport MapSectionTourStep from \"./MapSectionTourStep\";\r\nimport MapSectionTourAttractionList from \"./MapSectionTourAttractionList\";\r\nimport MapSectionAttraction from \"./MapSectionAttraction\";\r\nimport ParkView from \"./ParkView\";\r\nimport SportFieldView from \"./SportFieldView\";\r\nimport { updateHoveredMarker } from \"../actions/hoveredMarkerActions\";\r\nimport { updateBubbleIdShown } from \"../actions/sportPinActions\";\r\nimport {\r\n\tSPORTS_KEY,\r\n\tSPORTFIELD_KEY,\r\n\tPARK_KEY,\r\n\tTOURSTEP_KEY,\r\n\tTOURS_KEY\r\n} from \"../constants/mapconstants\";\r\nimport { getSportFieldsFromParks } from \"../utils/mapUtils\";\r\n\r\nimport {\r\n\tshowMain,\r\n\tshowTour,\r\n\tshowHighlight,\r\n\tshowVenue,\r\n\tshowTourStep,\r\n\tshowPark,\r\n\tshowSportField,\r\n\tupdateActiveItemId\r\n} from \"../actions/mapSectionViewActions\";\r\n\r\nimport { changeMapTitle } from \"../actions/mapTitleActions\";\r\n\r\n@connect(store => {\r\n\treturn {\r\n\t\tmapSectionViewSection: store.mapSectionView.section,\r\n\t\tmapTourStep: store.mapTourStep,\r\n\t\ttabs: store.attractions.tabs,\r\n\t\tattractions: store.attractions\r\n\t};\r\n})\r\nexport default class MapListBody extends Component {\r\n\t@autobind\r\n\t_onMarkerMouseEnter(key) {\r\n\t\tthis.props.dispatch(updateHoveredMarker(key));\r\n\t}\r\n\r\n\t@autobind\r\n\t_onMarkerMouseLeave(key) {\r\n\t\tthis.props.dispatch(updateHoveredMarker(-1));\r\n\t}\r\n\r\n\tshowSection(section, routerProps) {\r\n\t\tconst {\r\n\t\t\tattractions,\r\n\t\t\tmapSectionViewSection,\r\n\t\t\tdispatch,\r\n\t\t\ttabs\r\n\t\t} = this.props;\r\n\t\tlet sportItem;\r\n\r\n\t\tconst changeView = (action, itemId, section, label) => {\r\n\t\t\tif (mapSectionViewSection != section) {\r\n\t\t\t\tdispatch(action(section, label));\r\n\t\t\t\tif (itemId) {\r\n\t\t\t\t\tdispatch(updateActiveItemId(itemId));\r\n\t\t\t\t}\r\n\t\t\t\tdispatch(updateBubbleIdShown(null));\r\n\t\t\t}\r\n\t\t};\r\n\t\tconst activeSection = tabs.find(item => item.key == section);\r\n\r\n\t\tswitch (section.toLowerCase()) {\r\n\t\t\tcase TOURS_KEY:\r\n\t\t\t\tchangeView(\r\n\t\t\t\t\tshowTour,\r\n\t\t\t\t\trouterProps.match.params.id,\r\n\t\t\t\t\tactiveSection.key,\r\n\t\t\t\t\tactiveSection.label\r\n\t\t\t\t);\r\n\t\t\t\treturn (\r\n\t\t\t\t\t\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase TOURSTEP_KEY:\r\n\t\t\t\tconst tourTab = tabs.find(item => item.key == \"tours\");\r\n\t\t\t\tchangeView(\r\n\t\t\t\t\tshowTourStep,\r\n\t\t\t\t\trouterProps.match.params.id,\r\n\t\t\t\t\tsection.toLowerCase(),\r\n\t\t\t\t\ttourTab.label\r\n\t\t\t\t);\r\n\t\t\t\treturn (\r\n\t\t\t\t\t\r\n\t\t\t\t);\r\n\t\t\tcase PARK_KEY:\r\n\t\t\t\tsportItem = attractions.items.find(\r\n\t\t\t\t\titem => item.key == SPORTS_KEY\r\n\t\t\t\t);\r\n\r\n\t\t\t\tif (!sportItem) return null;\r\n\r\n\t\t\t\tconst park = sportItem.items.parks.find(\r\n\t\t\t\t\tpark => park.ParkID == routerProps.match.params.id\r\n\t\t\t\t);\r\n\r\n\t\t\t\tdispatch(changeMapTitle(park.parkName));\r\n\r\n\t\t\t\tchangeView(\r\n\t\t\t\t\tshowPark,\r\n\t\t\t\t\trouterProps.match.params.id,\r\n\t\t\t\t\tsection.toLowerCase(),\r\n\t\t\t\t\tpark.parkName\r\n\t\t\t\t);\r\n\t\t\t\treturn (\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t);\r\n\t\t\tcase SPORTFIELD_KEY:\r\n\t\t\t\tsportItem = attractions.items.find(\r\n\t\t\t\t\titem => item.key == SPORTS_KEY\r\n\t\t\t\t);\r\n\r\n\t\t\t\tif (!sportItem) return null;\r\n\t\t\t\tif (!sportItem.items) return null;\r\n\t\t\t\tif (!sportItem.items.parks) return null;\r\n\r\n\t\t\t\tconst sportFields = getSportFieldsFromParks(\r\n\t\t\t\t\tsportItem.items.parks\r\n\t\t\t\t);\r\n\t\t\t\tconst sportField = sportFields.find(\r\n\t\t\t\t\tsportField =>\r\n\t\t\t\t\t\tsportField.SpaceID == routerProps.match.params.id\r\n\t\t\t\t);\r\n\r\n\t\t\t\tdispatch(changeMapTitle(sportField.SpaceName));\r\n\r\n\t\t\t\tchangeView(\r\n\t\t\t\t\tshowSportField,\r\n\t\t\t\t\trouterProps.match.params.id,\r\n\t\t\t\t\tsection.toLowerCase(),\r\n\t\t\t\t\t\"Sport Field title\"\r\n\t\t\t\t);\r\n\t\t\t\treturn (\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t);\r\n\r\n\t\t\tcase \"main\":\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tdefault:\r\n\t\t\t\tchangeView(\r\n\t\t\t\t\tsection !== \"venues\" ? showHighlight : showVenue,\r\n\t\t\t\t\trouterProps.match.params.id,\r\n\t\t\t\t\tactiveSection.key,\r\n\t\t\t\t\tactiveSection.label\r\n\t\t\t\t);\r\n\t\t\t\treturn (\r\n\t\t\t\t\t\r\n\t\t\t\t);\r\n\t\t}\r\n\r\n\t\tchangeView(showMain);\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\t@autobind\r\n\t_showMain(props) {\r\n\t\treturn this.showSection(\"main\", props);\r\n\t}\r\n\r\n\t@autobind\r\n\t_showActiveSection(props) {\r\n\t\treturn this.showSection(props.match.params.section, props);\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{this.props.tabs.map(tab => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/MapListBody.js","import autobind from 'autobind-decorator';\r\nimport React, { PureComponent } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { push } from 'react-router-redux';\r\nimport IndexPin from './pins/IndexPin';\r\nimport FancyChevron from './FancyChevron';\r\n\r\n@connect()\r\nexport default class MapListItem extends PureComponent{\r\n\t@autobind\r\n\t_onMouseEnter(){\r\n\t\tthis.props.onItemMouseEnter(this.props.id);\r\n\t}\r\n\r\n\t@autobind\r\n\t_onMouseLeave(){\r\n\t\tthis.props.onItemMouseLeave(this.props.id);\r\n\t}\r\n\r\n\t@autobind\r\n\t_onClick(ev){\r\n\t\tconst { id, pinNumber, dispatch, link, onItemClicked} = this.props;\r\n\t\tev.preventDefault();\r\n\t\tlink && dispatch(push(link));\r\n\r\n\t\tif(onItemClicked) onItemClicked(ev, id, pinNumber);\r\n\t}\r\n\r\n\trender(){\r\n\t\tconst { id, pinNumber, text, link} = this.props;\r\n\t\treturn (\r\n\t\t\t
  • \r\n\t\t\t\t{\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{ text }\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t
  • \r\n\t\t);\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/MapListItem.js","\"use strict\";\r\nimport JSON5 from \"json5\";\r\nimport autobind from \"autobind-decorator\";\r\nimport React, { PureComponent } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { push } from \"react-router-redux\";\r\nimport GoogleMap from \"google-map-react\";\r\nimport formatDate from \"date-fns/format\";\r\nimport IndexPinWithBubble from \"./pins/IndexPinWithBubble\";\r\nimport SportPinWithBubble from \"./pins/SportPinWithBubble\";\r\nimport AttractionPin from \"./pins/AttractionPin\";\r\nimport { updateHoveredMarker } from \"../actions/hoveredMarkerActions\";\r\nimport { updateGmapMapMaps } from \"../actions/gmapActions\";\r\nimport { updatePolylines } from \"../actions/tourPolylinesActions\";\r\nimport { updateBubbleIdShown } from \"../actions/sportPinActions\";\r\nimport { showMap } from \"../actions/mapViewActions\";\r\nimport {\r\n\tVENUES_KEY,\r\n\tTOURS_KEY,\r\n\tSPORTS_KEY,\r\n\tPARK_KEY,\r\n\tSPORTFIELD_KEY\r\n} from \"../constants/mapconstants\";\r\nimport {\r\n\tgetSportFieldsFromParks,\r\n\tgetSportFieldsFromPark\r\n} from \"../utils/mapUtils\";\r\n\r\n@connect(store => {\r\n\treturn {\r\n\t\tattractions: store.attractions,\r\n\t\titemsFetched: store.attractions.fetched,\r\n\t\ttabs: store.attractions.tabs,\r\n\t\titems: store.attractions.items,\r\n\t\tdownloadMapLink: store.attractions.downloadMapLink,\r\n\t\tmapTour: store.mapTour.tour,\r\n\t\tmapTourStep: store.mapTourStep,\r\n\t\tmapAttraction: store.mapAttraction.attraction,\r\n\t\tmapSectionView: store.mapSectionView,\r\n\t\tgmap: store.gmap,\r\n\t\ttourPolylines: store.tourPolylines,\r\n\t\tbubbleIdShown: store.sportPin.bubbleIdShown,\r\n\t\tmapViewView: store.mapView.view\r\n\t};\r\n})\r\nexport default class MapMap extends PureComponent {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.geoMarker = null;\r\n\t\tthis.mapOptions = {\r\n\t\t\tcenter: [-33.8641859, 151.2143821],\r\n\t\t\tzoom: 17\r\n\t\t};\r\n\t\tconst $map = $(\"#map\");\r\n\t\tconst attr = $map.attr(\"data-mapoptions\");\r\n\t\tif (!!attr) {\r\n\t\t\tconst options = JSON5.parse(attr);\r\n\t\t\tthis.mapOptions = { ...this.mapOptions, ...options };\r\n\t\t}\r\n\t}\r\n\r\n\t@autobind\r\n\t_onChildMouseEnter(key, props) {\r\n\t\t// set hovered marker\r\n\t\tthis.props.dispatch(updateHoveredMarker(key));\r\n\t}\r\n\r\n\t@autobind\r\n\t_onChildMouseLeave(key, props) {\r\n\t\tthis.props.dispatch(updateHoveredMarker(-1));\r\n\t}\r\n\r\n\t_addMyLocationButton(map, maps) {\r\n\t\tvar controlDiv = document.createElement(\"div\");\r\n\t\tcontrolDiv.classList.add(\"hide-on-listview-sm-max\");\r\n\r\n\t\tvar firstChild = document.createElement(\"button\");\r\n\t\tfirstChild.style.backgroundColor = \"#fff\";\r\n\t\tfirstChild.style.border = \"none\";\r\n\t\tfirstChild.style.outline = \"none\";\r\n\t\tfirstChild.style.width = \"28px\";\r\n\t\tfirstChild.style.height = \"28px\";\r\n\t\tfirstChild.style.borderRadius = \"2px\";\r\n\t\tfirstChild.style.boxShadow = \"0 1px 4px rgba(0,0,0,0.3)\";\r\n\t\tfirstChild.style.cursor = \"pointer\";\r\n\t\tfirstChild.style.marginRight = \"10px\";\r\n\t\tfirstChild.style.padding = \"0px\";\r\n\t\tfirstChild.type = \"button\";\r\n\t\tfirstChild.title = \"My Current Location\";\r\n\t\tcontrolDiv.appendChild(firstChild);\r\n\r\n\t\tvar secondChild = document.createElement(\"div\");\r\n\t\tsecondChild.style.margin = \"5px\";\r\n\t\tsecondChild.style.width = \"18px\";\r\n\t\tsecondChild.style.height = \"18px\";\r\n\t\tsecondChild.style.backgroundImage =\r\n\t\t\t\"url(https://maps.gstatic.com/tactile/mylocation/mylocation-sprite-1x.png)\";\r\n\t\tsecondChild.style.backgroundSize = \"180px 18px\";\r\n\t\tsecondChild.style.backgroundPosition = \"0px 0px\";\r\n\t\tsecondChild.style.backgroundRepeat = \"no-repeat\";\r\n\t\tsecondChild.id = \"my_location_img\";\r\n\t\tfirstChild.appendChild(secondChild);\r\n\r\n\t\tgoogle.maps.event.addListener(map, \"dragend\", function() {\r\n\t\t\t$(\"#my_location_img\").css(\"background-position\", \"0px 0px\");\r\n\t\t});\r\n\r\n\t\tfirstChild.addEventListener(\"click\", () => {\r\n\t\t\tvar imgX = \"0\";\r\n\t\t\tvar animationInterval = setInterval(function() {\r\n\t\t\t\tif (imgX == \"-18\") imgX = \"0\";\r\n\t\t\t\telse imgX = \"-18\";\r\n\t\t\t\t$(\"#my_location_img\").css(\r\n\t\t\t\t\t\"background-position\",\r\n\t\t\t\t\timgX + \"px 0px\"\r\n\t\t\t\t);\r\n\t\t\t}, 500);\r\n\r\n\t\t\tconst onGeolocationFail = () => {\r\n\t\t\t\tconsole.info(\r\n\t\t\t\t\t\"Something wrong when getting your current position. Please try again.\"\r\n\t\t\t\t);\r\n\t\t\t\tclearInterval(animationInterval);\r\n\t\t\t\t$(\"#my_location_img\").css(\"background-position\", \"0px 0px\");\r\n\t\t\t};\r\n\r\n\t\t\tconst onGeolocationSuccess = latlng => {\r\n\t\t\t\tmap.setCenter(latlng || this.geoMarker.getPosition());\r\n\t\t\t\tmap.fitBounds(this.geoMarker.getBounds());\r\n\t\t\t\tclearInterval(animationInterval);\r\n\t\t\t\t$(\"#my_location_img\").css(\"background-position\", \"-144px 0px\");\r\n\t\t\t};\r\n\r\n\t\t\tif (navigator.geolocation) {\r\n\t\t\t\tif (!this.geoMarker) {\r\n\t\t\t\t\tnavigator.geolocation.getCurrentPosition(position => {\r\n\t\t\t\t\t\tvar latlng = new google.maps.LatLng(\r\n\t\t\t\t\t\t\tposition.coords.latitude,\r\n\t\t\t\t\t\t\tposition.coords.longitude\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\trequire.ensure(\r\n\t\t\t\t\t\t\t[],\r\n\t\t\t\t\t\t\t() => {\r\n\t\t\t\t\t\t\t\tconst GeolocationMarker = require(\"geolocation-marker/src/geolocation-marker-exports\")\r\n\t\t\t\t\t\t\t\t\t.GeolocationMarker;\r\n\r\n\t\t\t\t\t\t\t\tconst geolocationMarker_markerOpts = {\r\n\t\t\t\t\t\t\t\t\ticon: {\r\n\t\t\t\t\t\t\t\t\t\tpath: maps.SymbolPath.CIRCLE,\r\n\t\t\t\t\t\t\t\t\t\tscale: 6,\r\n\t\t\t\t\t\t\t\t\t\tfillColor: \"#3a84df\",\r\n\t\t\t\t\t\t\t\t\t\tfillOpacity: 0.9,\r\n\t\t\t\t\t\t\t\t\t\tstrokeColor: \"#fff\",\r\n\t\t\t\t\t\t\t\t\t\tstrokeWeight: 2\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t\tconst geolocationMarker_circleOpts = {\r\n\t\t\t\t\t\t\t\t\tstrokeColor: \"#3a84df\",\r\n\t\t\t\t\t\t\t\t\tstrokeOpacity: 0.8,\r\n\t\t\t\t\t\t\t\t\tstrokeWeight: 0.5,\r\n\t\t\t\t\t\t\t\t\tfillColor: \"#3a84df\",\r\n\t\t\t\t\t\t\t\t\tfillOpacity: 0.25\r\n\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t\tconst GeoMarker = new GeolocationMarker(\r\n\t\t\t\t\t\t\t\t\tnull,\r\n\t\t\t\t\t\t\t\t\tgeolocationMarker_markerOpts,\r\n\t\t\t\t\t\t\t\t\tgeolocationMarker_circleOpts\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\tGeoMarker.setMap(map);\r\n\t\t\t\t\t\t\t\tthis.geoMarker = GeoMarker;\r\n\r\n\t\t\t\t\t\t\t\tmaps.event.addListener(\r\n\t\t\t\t\t\t\t\t\tthis.geoMarker,\r\n\t\t\t\t\t\t\t\t\t\"geolocation_error\",\r\n\t\t\t\t\t\t\t\t\tfunction(e) {\r\n\t\t\t\t\t\t\t\t\t\tconsole.info(\r\n\t\t\t\t\t\t\t\t\t\t\t\"There was an error obtaining your position. Message: \" +\r\n\t\t\t\t\t\t\t\t\t\t\t\te.message\r\n\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t\tmaps.event.addListenerOnce(\r\n\t\t\t\t\t\t\t\t\tthis.geoMarker,\r\n\t\t\t\t\t\t\t\t\t\"position_changed\",\r\n\t\t\t\t\t\t\t\t\te => {\r\n\t\t\t\t\t\t\t\t\t\tonGeolocationSuccess();\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\"geolocationmarker\"\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tonGeolocationSuccess();\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tonGeolocationFail();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tcontrolDiv.index = 1;\r\n\t\tmap.controls[google.maps.ControlPosition.RIGHT_BOTTOM].push(controlDiv);\r\n\t}\r\n\r\n\t@autobind\r\n\t_onGoogleApiLoaded({ map, maps }) {\r\n\t\tif (!this.props.gmap.map) {\r\n\t\t\tlet center = map.getCenter();\r\n\t\t\tlet prevCenter;\r\n\t\t\tmaps.event.addDomListener(window, \"resize\", function() {\r\n\t\t\t\tprevCenter = center;\r\n\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\tmaps.event.trigger(map, \"resize\");\r\n\t\t\t\t\tmap.setCenter(center);\r\n\t\t\t\t\tcenter = map.getCenter();\r\n\t\t\t\t}, 100);\r\n\t\t\t});\r\n\r\n\t\t\tthis._addMyLocationButton(map, maps);\r\n\t\t\tthis.props.dispatch(updateGmapMapMaps({ map, maps }));\r\n\t\t}\r\n\t}\r\n\r\n\tgetAttractionBubblePin(obj, index, type) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\t@autobind\r\n\thandleSportBubblePinClick(ev, sportFieldId) {\r\n\t\tconst { dispatch } = this.props\r\n\t\tdispatch(push(`/${SPORTFIELD_KEY}/${sportFieldId}`));\r\n\t}\r\n\r\n\t@autobind\r\n\thandleSportBubbleCloseClick() {\r\n\t\tthis.props.dispatch(updateBubbleIdShown(null));\r\n\t}\r\n\r\n\t@autobind\r\n\tgetSportFieldPin(fieldObj, index, type = SPORTFIELD_KEY) {\r\n\t\tconst { mapSectionView } = this.props;\r\n\t\tconst {\r\n\t\t\tSpaceID,\r\n\t\t\tSpaceLatitude,\r\n\t\t\tSpaceLongitude,\r\n\t\t\tSpaceName,\r\n\t\t\tSpaceIsOpen,\r\n\t\t\tSpaceLastModifiedDate\r\n\t\t} = fieldObj;\r\n\r\n\t\tconst lastModified = `${formatDate(SpaceLastModifiedDate, \"D MMM\")} at ${formatDate(SpaceLastModifiedDate, \"h:mma\")}`;\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\tLast updated {lastModified}\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\tgetVenuePins() {\r\n\t\tconst { items, mapSectionView, itemsFetched } = this.props;\r\n\t\tlet tempList = [];\r\n\r\n\t\tlet filterFn = venue => {\r\n\t\t\tif (mapSectionView.venueFilter) {\r\n\t\t\t\treturn venue.type == mapSectionView.venueFilter;\r\n\t\t\t} else {\r\n\t\t\t\t// if found in temp list, return false, otherwise a\r\n\t\t\t\tif (\r\n\t\t\t\t\ttempList.find(\r\n\t\t\t\t\t\tobj =>\r\n\t\t\t\t\t\t\tobj.name == venue.name &&\r\n\t\t\t\t\t\t\tobj.lat == obj.lat &&\r\n\t\t\t\t\t\t\tobj.lng == obj.lng\r\n\t\t\t\t\t)\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn !1;\r\n\t\t\t\t}\r\n\t\t\t\ttempList.push(venue);\r\n\t\t\t\treturn !0; //return true\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tif (itemsFetched) {\r\n\t\t\tconst attraction = items.find(item => item.key == VENUES_KEY);\r\n\t\t\treturn attraction.items\r\n\t\t\t\t.filter(filterFn)\r\n\t\t\t\t.map((obj, index) =>\r\n\t\t\t\t\tthis.getAttractionBubblePin(obj, index, VENUES_KEY)\r\n\t\t\t\t);\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tgetSportPins() {\r\n\t\tconst { items, itemsFetched, mapSectionView } = this.props;\r\n\r\n\t\tconst { section, activeItemId } = mapSectionView;\r\n\r\n\t\tif (itemsFetched) {\r\n\t\t\tconst sportsItems = items.find(item => item.key == SPORTS_KEY);\r\n\r\n\t\t\tif (!sportsItems) return null;\r\n\t\t\tif (!sportsItems.items) return null;\r\n\t\t\tif (!sportsItems.items.parks) return null;\r\n\r\n\t\t\tconst sportFields =\r\n\t\t\t\tsection == PARK_KEY && activeItemId\r\n\t\t\t\t\t? getSportFieldsFromPark(\r\n\t\t\t\t\t\t\tsportsItems.items.parks.find(\r\n\t\t\t\t\t\t\t\tpark => park.ParkID == activeItemId\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t )\r\n\t\t\t\t\t: getSportFieldsFromParks(sportsItems.items.parks);\r\n\r\n\t\t\tif (sportFields) {\r\n\t\t\t\treturn sportFields\r\n\t\t\t\t\t.filter(sportField =>\r\n\t\t\t\t\t\tsection == SPORTFIELD_KEY\r\n\t\t\t\t\t\t\t? sportField.SpaceID == activeItemId\r\n\t\t\t\t\t\t\t: true\r\n\t\t\t\t\t)\r\n\t\t\t\t\t.map((sportField, index) =>\r\n\t\t\t\t\t\tthis.getSportFieldPin(sportField, index)\r\n\t\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tgetTourBubblePin(obj, index) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\tgetTourStepBubblePin(obj, orderNumber) {\r\n\t\tconst { onTourStepClick, mapTourStep, mapSectionView } = this.props;\r\n\t\treturn (\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\t// https://github.com/istarkov/google-map-react/issues/296\r\n\t// Markers currently are not correctly positioned while in fullscreen mode.\r\n\tcreateMapOptions(maps) {\r\n\t\treturn {\r\n\t\t\tgestureHandling: \"cooperative\",\r\n\t\t\tfullscreenControl: false, //wait until the issue has been fixed\r\n\t\t\tzoomControlOptions: {\r\n\t\t\t\tposition: maps.ControlPosition.LEFT_TOP\r\n\t\t\t},\r\n\t\t\tstreetViewControl: true,\r\n\t\t\tstreetViewControl: {\r\n\t\t\t\tposition: maps.ControlPosition.RIGHT_BOTTOM\r\n\t\t\t},\r\n\t\t\tstyles: {\r\n\t\t\t\tfeatureType: \"poi\",\r\n\t\t\t\telementType: \"labels\",\r\n\t\t\t\tstylers: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvisibility: \"on\"\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tcomponentDidUpdate() {\r\n\t\tconst {\r\n\t\t\titems,\r\n\t\t\tattractions,\r\n\t\t\tgmap: { map, maps },\r\n\t\t\tdispatch,\r\n\t\t\ttourPolylines,\r\n\t\t\titemsFetched\r\n\t\t} = this.props;\r\n\t\tif (itemsFetched && !tourPolylines.polylines.length) {\r\n\t\t\tconst tours = items.find(item => item.key == \"tours\");\r\n\t\t\tif (tours) {\r\n\t\t\t\tconst polylines = tours.items.map(tour => {\r\n\t\t\t\t\tif (tour.route) {\r\n\t\t\t\t\t\tconst pathArrays = tour.route.map(r => ({\r\n\t\t\t\t\t\t\tlat: r[1],\r\n\t\t\t\t\t\t\tlng: r[0]\r\n\t\t\t\t\t\t}));\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tid: tour.id,\r\n\t\t\t\t\t\t\tpolyline: new maps.Polyline({\r\n\t\t\t\t\t\t\t\tpath: pathArrays,\r\n\t\t\t\t\t\t\t\t// make the polyline dashed. From the example in the documentation:\r\n\t\t\t\t\t\t\t\t// https://developers.google.com/maps/documentation/javascript/examples/overlay-symbol-dashed\r\n\t\t\t\t\t\t\t\tstrokeColor: \"#fff\",\r\n\t\t\t\t\t\t\t\tstrokeWeight: 8,\r\n\t\t\t\t\t\t\t\ticons: [\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\ticon: {\r\n\t\t\t\t\t\t\t\t\t\t\tpath: \"M 0,-1 0,1\",\r\n\t\t\t\t\t\t\t\t\t\t\tstrokeOpacity: 1,\r\n\t\t\t\t\t\t\t\t\t\t\tstrokeColor: \"#ab4e27\",\r\n\t\t\t\t\t\t\t\t\t\t\tscale: 4\r\n\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\toffset: \"0\",\r\n\t\t\t\t\t\t\t\t\t\trepeat: \"20px\"\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t]\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tdispatch(updatePolylines(polylines));\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t@autobind\r\n\tisAttraction(str) {\r\n\t\treturn ![TOURS_KEY, VENUES_KEY].includes(str);\r\n\t}\r\n\r\n\t@autobind\r\n\tgetNonVenuePins() {\r\n\t\tconst activeAttractions = this.props.items.find(\r\n\t\t\titem => item.key == this.props.mapSectionView.activeTab\r\n\t\t);\r\n\t\tif (this.props.itemsFetched && !!activeAttractions) {\r\n\t\t\treturn activeAttractions.items.map((item, i) => {\r\n\t\t\t\treturn this.props.mapSectionView.activeTab == TOURS_KEY\r\n\t\t\t\t\t? this.getTourBubblePin(item, i)\r\n\t\t\t\t\t: this.getAttractionBubblePin(\r\n\t\t\t\t\t\t\titem,\r\n\t\t\t\t\t\t\ti,\r\n\t\t\t\t\t\t\tthis.props.mapSectionView.activeTab\r\n\t\t\t\t\t );\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t@autobind\r\n\thandleMapOverlayClick() {\r\n\t\tthis.props.dispatch(showMap());\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst {\r\n\t\t\tmapTour,\r\n\t\t\tmapAttraction,\r\n\t\t\tmapSectionView,\r\n\t\t\tdownloadMapLink,\r\n\t\t\tmapViewView\r\n\t\t} = this.props;\r\n\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t{mapViewView == \"list\" && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tView map\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t{downloadMapLink && (\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tDownload map\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\t\t{/* Attraction Marker */\r\n\t\t\t\t\tmapAttraction &&\r\n\t\t\t\t\tmapSectionView.section !== SPORTS_KEY &&\r\n\t\t\t\t\tmapSectionView.section !== PARK_KEY &&\r\n\t\t\t\t\tmapSectionView.section !== SPORTFIELD_KEY &&\r\n\t\t\t\t\tmapSectionView.section !== TOURS_KEY &&\r\n\t\t\t\t\tmapSectionView.section !== \"main\" &&\r\n\t\t\t\t\tmapSectionView.section.toLowerCase() !== \"tourstep\" ? (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t) : null}\r\n\t\t\t\t\t{/* Tour's Attractions */\r\n\t\t\t\t\t(mapSectionView.section == TOURS_KEY ||\r\n\t\t\t\t\t\tmapSectionView.section.toLowerCase() == \"tourstep\") &&\r\n\t\t\t\t\t\tmapTour &&\r\n\t\t\t\t\t\tmapTour.highlights &&\r\n\t\t\t\t\t\tmapTour.highlights.map((highlight, i) => {\r\n\t\t\t\t\t\t\treturn this.getTourStepBubblePin(highlight, i + 1);\r\n\t\t\t\t\t\t})}\r\n\t\t\t\t\t{/* Venues */\r\n\t\t\t\t\tmapSectionView.section == \"main\" &&\r\n\t\t\t\t\t\tmapSectionView.activeTab == VENUES_KEY &&\r\n\t\t\t\t\t\tthis.getVenuePins()}\r\n\r\n\t\t\t\t\t{/* Sport */\r\n\t\t\t\t\t(mapSectionView.activeTab == SPORTS_KEY ||\r\n\t\t\t\t\t\tmapSectionView.section == SPORTFIELD_KEY ||\r\n\t\t\t\t\t\tmapSectionView.section == PARK_KEY) &&\r\n\t\t\t\t\t\tthis.getSportPins()}\r\n\r\n\t\t\t\t\t{/* Non Venues */\r\n\t\t\t\t\tmapSectionView.section == \"main\" &&\r\n\t\t\t\t\t\tmapSectionView.activeTab !== VENUES_KEY &&\r\n\t\t\t\t\t\tmapSectionView.activeTab !== SPORTS_KEY &&\r\n\t\t\t\t\t\tthis.getNonVenuePins()}\r\n\t\t\t\t
    \r\n\t\t\t\r\n\t\t);\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/MapMap.js","import React, { PureComponent } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport Sharer from './Sharer';\r\nimport Slider from './Slider';\r\nimport FancyChevron from './FancyChevron';\r\nimport MapButton from './MapButton';\r\nimport MapFixButtonWrapper from './MapFixButtonWrapper';\r\nimport MapFixButtonCol from './MapFixButtonCol';\r\n\r\nimport { updateMainZoomCenter, updateActiveTab } from '../actions/mapSectionViewActions';\r\nimport { changeMapTitle } from '../actions/mapTitleActions';\r\nimport { changeBackButtonTitle } from '../actions/mapBackButtonActions';\r\nimport { setActiveAttraction } from '../actions/mapAttractionActions';\r\nimport { updateHoveredMarker } from '../actions/hoveredMarkerActions';\r\n\r\n@connect((store, ownProps)=>{\r\n\treturn {\r\n\t\tgmap: store.gmap,\r\n\t\tattractions: store.attractions,\r\n\t\titems: store.attractions.items,\r\n\t\tattractionId: ownProps.attractionId,\r\n\t\tmapSectionViewSection: store.mapSectionView.section,\r\n\t\ttabs: store.attractions.tabs\r\n\t};\r\n})\r\nexport default class MapSectionAttraction extends PureComponent{\r\n\tconstructor(){\r\n\t\tsuper();\r\n\t\tthis.attraction = null;\r\n\t}\r\n\r\n\tonClick(){\r\n\t\tthis.refs.detailPane.scrollTop = 0;\r\n\t}\r\n\r\n\t_onRender(){\r\n\t\tconst { dispatch, attractions, items, tabs, type, match, gmap, attractionId, mapSectionViewSection } = this.props;\r\n\r\n\t\tconst getActiveSection = item=>item.key == mapSectionViewSection;\r\n\r\n\t\tif(attractions && attractions.fetched && gmap.map){\r\n\r\n\t\t\tconst list = items.find(getActiveSection).items;\r\n\t\t\tconst activeSectionFromTabObj = tabs.find(getActiveSection);\r\n\r\n\t\t\tconst attraction = list.find((obj) => obj.id == attractionId);\r\n\t\t\tconst map = gmap.map;\r\n\r\n\t\t\tif(!attraction) return;\r\n\r\n\t\t\t// change title\r\n\t\t\tdispatch(changeMapTitle(attraction.name));\r\n\r\n\t\t\t// reset hovered marker\r\n\t\t\tdispatch(updateHoveredMarker(-1));\r\n\r\n\t\t\t// get current zoom level and save it to store\r\n\t\t\t// so that the back button knows what zoom level it should load\r\n\t\t\tdispatch(updateMainZoomCenter(map.getZoom(),map.getCenter()));\r\n\r\n\t\t\t// set active attraction\r\n\t\t\tthis.attraction = attraction;\r\n\t\t\tdispatch(setActiveAttraction(attraction));\r\n\r\n\t\t\t// update active tab\r\n\t\t\tdispatch(updateActiveTab(activeSectionFromTabObj.key));\r\n\r\n\t\t\t// change back button\r\n\t\t\tdispatch(changeBackButtonTitle(activeSectionFromTabObj.label));\r\n\r\n\t\t\t// change zoom\r\n\t\t\tmap.setZoom(18);\r\n\r\n\t\t\t// change map center\r\n\t\t\tmap.panTo({lat:attraction.lat, lng:attraction.lng});\r\n\t\t}\r\n\t}\r\n\r\n\trender(){\r\n\t\tthis._onRender();\r\n\r\n\t\tconst { type } = this.props;\r\n\r\n\t\tconst attraction = this.attraction;\r\n\r\n\t\tif(!attraction) return null;\r\n\r\n\t\treturn(\r\n\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t{\r\n\t\t\t\t\t!!attraction.link && (\r\n\t\t\t\t\t\ttype == 'venue' ?\r\n\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t) :\r\n\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t)\r\n\t\t\t\t}\r\n\t\t\t
    \r\n\t\t);\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/MapSectionAttraction.js","\"use strict\";\r\nimport autobind from \"autobind-decorator\";\r\nimport React, { PureComponent } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { push } from \"react-router-redux\";\r\nimport MapTabsNav from \"./MapTabsNav\";\r\nimport MapListItem from \"./MapListItem\";\r\nimport { updateVenueFilter } from \"../actions/mapSectionViewActions\";\r\nimport {\r\n\textendBound,\r\n\tmapSportFieldObjToMapPositionable\r\n} from \"../utils/mapUtils\";\r\nimport { showMap } from \"../actions/mapViewActions\";\r\nimport { VENUES_KEY, SPORTS_KEY } from \"../constants/mapconstants\";\r\nimport {\r\n\tgetSportFieldsFromParks,\r\n\tgetSportFieldsFromPark\r\n} from \"../utils/mapUtils\";\r\n\r\n@connect(store => {\r\n\treturn {\r\n\t\tattractions: store.attractions,\r\n\t\titems: store.attractions.items,\r\n\t\tmapSectionView: store.mapSectionView,\r\n\t\tgmap: store.gmap\r\n\t};\r\n})\r\nexport default class MapSectionMain extends PureComponent {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = { venueType: \"\" };\r\n\t}\r\n\r\n\thandleVenueSelectChange(event) {\r\n\t\t// update venue filter to filter the markers on MapMap\r\n\t\tthis.props.dispatch(updateVenueFilter(event.target.value));\r\n\t}\r\n\r\n\tgetMapListItem(obj, index, type) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\tgetVenueListItems() {\r\n\t\tconst { items, mapSectionView } = this.props;\r\n\t\tlet tempList = [];\r\n\r\n\t\tlet filterFn = venue => {\r\n\t\t\tif (mapSectionView.venueFilter) {\r\n\t\t\t\treturn venue.type == mapSectionView.venueFilter;\r\n\t\t\t} else {\r\n\t\t\t\t// if found in temp list, return false, otherwise a\r\n\t\t\t\tif (\r\n\t\t\t\t\ttempList.find(\r\n\t\t\t\t\t\tobj =>\r\n\t\t\t\t\t\t\tobj.name == venue.name &&\r\n\t\t\t\t\t\t\tobj.lat == obj.lat &&\r\n\t\t\t\t\t\t\tobj.lng == obj.lng\r\n\t\t\t\t\t)\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn !1;\r\n\t\t\t\t}\r\n\t\t\t\ttempList.push(venue);\r\n\t\t\t\treturn !0; //return true\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tconst attraction = items.find(item => item.key == \"venues\");\r\n\t\treturn attraction.items\r\n\t\t\t.filter(filterFn)\r\n\t\t\t.map((obj, index) =>\r\n\t\t\t\tthis.getMapListItem(obj, index, attraction.key)\r\n\t\t\t);\r\n\t}\r\n\r\n\t_onRender() {\r\n\t\tconst { items, attractions, mapSectionView, gmap } = this.props;\r\n\r\n\t\t// Update Boundary based on selected tab\r\n\t\tif (attractions.fetched && mapSectionView.section == \"main\") {\r\n\t\t\tconst maps = gmap.maps;\r\n\t\t\tlet bounds = new maps.LatLngBounds();\r\n\t\t\tconst activeTab = mapSectionView.activeTab;\r\n\r\n\t\t\tconst activeTabItems = items.find(item => item.key == activeTab);\r\n\t\t\tif (\r\n\t\t\t\tactiveTab == SPORTS_KEY &&\r\n\t\t\t\tactiveTabItems &&\r\n\t\t\t\tactiveTabItems.items &&\r\n\t\t\t\tactiveTabItems.items.parks\r\n\t\t\t) {\r\n\t\t\t\tconst sportFields = getSportFieldsFromParks(\r\n\t\t\t\t\tactiveTabItems.items.parks\r\n\t\t\t\t);\r\n\r\n\t\t\t\tif (sportFields.length < 2) return;\r\n\r\n\t\t\t\tsportFields\r\n\t\t\t\t\t.map(mapSportFieldObjToMapPositionable)\r\n\t\t\t\t\t.forEach(sportField => {\r\n\t\t\t\t\t\textendBound(bounds, sportField, maps);\r\n\t\t\t\t\t});\r\n\t\t\t} else if (activeTabItems && activeTabItems.items) {\r\n\t\t\t\tconst itemsForBounds = activeTabItems.items.filter(obj => {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t//only filter on venue and there's value\r\n\t\t\t\t\t\tactiveTab !== \"venues\" ||\r\n\t\t\t\t\t\t(activeTab == \"venues\" &&\r\n\t\t\t\t\t\t\t(mapSectionView.venueFilter == undefined ||\r\n\t\t\t\t\t\t\t\tmapSectionView.venueFilter == \"\" ||\r\n\t\t\t\t\t\t\t\tmapSectionView.venueFilter == obj.type))\r\n\t\t\t\t\t);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (itemsForBounds.length < 2) return;\r\n\r\n\t\t\t\titemsForBounds.forEach(obj => {\r\n\t\t\t\t\textendBound(bounds, obj, maps);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tsetTimeout(function() {\r\n\t\t\t\tgmap.map.fitBounds(bounds);\r\n\t\t\t}, 100);\r\n\t\t}\r\n\t}\r\n\r\n\t@autobind\r\n\tgetActiveClass(index, key) {\r\n\t\treturn index == 0 || this.props.mapSectionView.activeTab == key\r\n\t\t\t? \"active\"\r\n\t\t\t: \"\";\r\n\t}\r\n\r\n\t@autobind\r\n\thandleClickPark(ev) {\r\n\t\tthis.props.dispatch(push(ev.currentTarget.dataset.link));\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst { attractions, mapSectionView } = this.props;\r\n\r\n\t\tthis._onRender();\r\n\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t{this.props.items.map((attraction, index) => (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{attraction.key == VENUES_KEY && (\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{!!attraction.items.length &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t...new Set(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tattraction.items.map(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\titem => item.type\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t].map(item => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t{attraction.key != SPORTS_KEY && (\r\n\t\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t\t{attraction.key == VENUES_KEY\r\n\t\t\t\t\t\t\t\t\t\t\t? this.getVenueListItems()\r\n\t\t\t\t\t\t\t\t\t\t\t: !!attraction.items.length &&\r\n\t\t\t\t\t\t\t\t\t\t\t attraction.items.map(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(obj, index) =>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.getMapListItem(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tobj,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tattraction.key\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t )}\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t{attraction.key == SPORTS_KEY && (\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t\t\t{attraction.items.parks.map(\r\n\t\t\t\t\t\t\t\t\t\t\t\tpark => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst sportFields = getSportFieldsFromPark(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tpark\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst closedSportFields = sportFields.filter(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsportField =>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!sportField.SpaceIsOpen\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst sportFieldsTotal =\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsportFields.length;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst closedSportFieldsTotal =\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclosedSportFields.length;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    1. \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpark.parkName\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{`${\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclosedSportFieldsTotal ==\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t0 ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclosedSportFieldsTotal ==\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsportFieldsTotal\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"All\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: closedSportFieldsTotal\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} ${\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclosedSportFieldsTotal >\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t0\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"closed\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"open\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}`}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    2. \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\r\n\t\t);\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/MapSectionMain.js","import React, { PureComponent } from 'react';\r\nimport {connect} from 'react-redux';\r\nimport MapTabsNav from './MapTabsNav';\r\nimport MapListItem from './MapListItem';\r\nimport MapButton from './MapButton';\r\nimport MapFixButtonWrapper from './MapFixButtonWrapper';\r\nimport FancyChevron from './FancyChevron';\r\nimport Slider from './Slider';\r\nimport Sharer from './Sharer';\r\nimport { updateMainZoomCenter, updateActiveTab } from '../actions/mapSectionViewActions';\r\nimport { changeMapTitle } from '../actions/mapTitleActions';\r\nimport { changeBackButtonTitle } from '../actions/mapBackButtonActions';\r\nimport { extendBound } from '../utils/mapUtils';\r\nimport { updateHoveredMarker } from '../actions/hoveredMarkerActions';\r\nimport { setActiveTour } from '../actions/mapTourActions';\r\n\r\nconst tabTitles = [{key: 'tourHighlights', label: 'Highlights'}, {key: 'tourAbout', label: 'About'}];\r\n\r\n@connect((store, ownProps)=>{\r\n\treturn {\r\n\t\ttourPolylines: store.tourPolylines,\r\n\t\tgmap: store.gmap,\r\n\t\ttabs: store.attractions.tabs,\r\n\t\titems: store.attractions.items,\r\n\t\titemsFetched: store.attractions.fetched,\r\n\t\ttourId: ownProps.tourId,\r\n\t};\r\n})\r\nexport default class MapSectionTourAttractionList extends PureComponent{\r\n\tconstructor(){\r\n\t\tsuper();\r\n\t\tthis.tour = null;\r\n\t}\r\n\r\n\t_onRender(){\r\n\t\tconst {dispatch, tabs, items, itemsFetched, gmap, tourId: id} = this.props;\r\n\t\tconst isTour = (item=>item.key == 'tours');\r\n\r\n\t\tif(items && itemsFetched && gmap.map){\r\n\t\t\tconst tours = items.find(isTour).items;\r\n\t\t\tconst toursTab= tabs.find(isTour);\r\n\t\t\tconst tour = tours.find((obj) => obj.id == id);\r\n\t\t\tconst map = gmap.map;\r\n\r\n\t\t\t// reset hovered marker\r\n\t\t\tdispatch(updateHoveredMarker(-1));\r\n\r\n\t\t\t// get current zoom level and save it to store\r\n\t\t\t// so that the back button knows what zoom level it should load\r\n\t\t\tdispatch(updateMainZoomCenter(map.getZoom(),map.getCenter()));\r\n\r\n\t\t\t// set active tour\r\n\t\t\tthis.tour = tour;\r\n\t\t\tdispatch(setActiveTour(tour, id));\r\n\r\n\t\t\t// update active tab\r\n\t\t\tdispatch(updateActiveTab(toursTab.key));\r\n\r\n\t\t\t// change title\r\n\t\t\tdispatch(changeMapTitle(tour.name));\r\n\r\n\t\t\t// change back button\r\n\t\t\tdispatch(changeBackButtonTitle(toursTab.label));\r\n\r\n\t\t\t// fit boundary\r\n\t\t\tthis._fitBound();\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t_fitBound(){\r\n\t\tconst { tourPolylines, gmap: {map, maps} } = this.props;\r\n\t\tconst mapTour = this.tour;\r\n\r\n\t\tif(!mapTour) return;\r\n\r\n\t\tlet bounds = new maps.LatLngBounds();\r\n\t\tif(mapTour.highlights && mapTour.highlights.length){\r\n\t\t\tmapTour.highlights.forEach(highlight => extendBound(bounds, highlight, maps));\r\n\t\t\tmap.fitBounds(bounds);\r\n\t\t\tconst poly = tourPolylines.polylines.find(obj => !!obj && obj.id == mapTour.id);\r\n\t\t\tif(poly) poly.polyline.setMap(map);\r\n\t\t}\r\n\t}\r\n\r\n\trender(){\r\n\t\tthis._onRender();\r\n\r\n\t\tconst mapTour = this.tour;\r\n\r\n\t\tif(!mapTour) return null;\r\n\r\n\t\tconst tourDesc = mapTour.desc ? mapTour.desc.replace(/\\r\\n/g, '') : '';\r\n\r\n\t\treturn(\r\n\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tmapTour.highlights && mapTour.highlights.length && mapTour.highlights.map((highlight, i) => {\r\n\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tmapTour.imagelabel &&\r\n\t\t\t\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tmapTour.link && (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t);\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/MapSectionTourAttractionList.js","import autobind from 'autobind-decorator';\r\nimport React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { push } from 'react-router-redux';\r\nimport GoogleMap from 'google-map-react';\r\nimport IndexPin from './pins/IndexPin';\r\nimport Slider from './Slider';\r\nimport MapButton from './MapButton';\r\nimport MapFixButtonWrapper from './MapFixButtonWrapper';\r\nimport MapFixButtonCol from './MapFixButtonCol';\r\nimport { showTourStep, updateTourZoomCenter } from '../actions/mapSectionViewActions';\r\nimport { setActiveTour } from '../actions/mapTourActions';\r\nimport { setActiveTourStep } from '../actions/mapTourStepActions';\r\nimport { changeMapTitle } from '../actions/mapTitleActions';\r\nimport { changeBackButtonTitle } from '../actions/mapBackButtonActions';\r\nimport { updateHoveredMarker } from '../actions/hoveredMarkerActions';\r\n\r\nconst TOUR_STEPS_ZOOM_LEVEL = 20;\r\n\r\n@connect((store) =>{\r\n\treturn{\r\n\t\ttourPolylines: store.tourPolylines,\r\n\t\tmapTour: store.mapTour.tour,\r\n\t\titems: store.attractions.items,\r\n\t\titemsFetched: store.attractions.fetched,\r\n\t\tgmap: store.gmap\r\n\t};\r\n})\r\nexport default class MapSectionTourStep extends Component{\r\n\tconstructor(){\r\n\t\tsuper();\r\n\t\tthis.tour = null;\r\n\t\tthis.tourStep = null;\r\n\t}\r\n\r\n\t_drawTourPath(){\r\n\t\tconst { tourPolylines, gmap: {map} } = this.props;\r\n\r\n\t\tconst poly = tourPolylines.polylines.find(obj => !!obj && obj.id == this.tour.id);\r\n\t\tif (poly) poly.polyline.setMap(map);\r\n\t}\r\n\r\n\t_handleNavClick(orderNumber){\r\n\t\tconst { mapTour, gmap, dispatch } = this.props;\r\n\r\n\t\t// for cycle through all the attractions (inifitely)\r\n\t\tif(orderNumber == 0){\r\n\t\t\torderNumber = this.tour.highlights.length;\r\n\t\t} else if(orderNumber > this.tour.highlights.length){\r\n\t\t\torderNumber = 1;\r\n\t\t}\r\n\r\n\t\t// get tour step\r\n\t\tconst tourStep = this.tour.highlights[orderNumber - 1];\r\n\t\tthis.tourStep = tourStep;\r\n\r\n\t\t//update tour step\r\n\t\tdispatch(setActiveTourStep({...tourStep, orderNumber}));\r\n\r\n\t\t//update change title\r\n\t\tdispatch(changeMapTitle(tourStep.name));\r\n\r\n\t\t//pan to the active step\r\n\t\tgmap.map.panTo({lat: tourStep.lat, lng: tourStep.lng});\r\n\r\n\t\tdispatch(push(`/tourstep/${tourStep.id}`))\r\n\t}\r\n\r\n\t@autobind\r\n\t_handlePrevClick(ev){\r\n\t\tev.preventDefault();\r\n\t\tthis.refs.detailPane.scrollTop = 0;\r\n\t\tthis._handleNavClick(this.tourStep.orderNumber - 1);\r\n\t}\r\n\r\n\t@autobind\r\n\t_handleNextClick(ev){\r\n\t\tev.preventDefault();\r\n\t\tthis.refs.detailPane.scrollTop = 0;\r\n\t\tthis._handleNavClick(this.tourStep.orderNumber + 1);\r\n\r\n\t}\r\n\r\n\t_onRender(){\r\n\t\tconst { mapTour, items, itemsFetched, dispatch, gmap, id } = this.props;\r\n\r\n\t\tconst isTourStep = (obj) => obj.id == id;\r\n\t\tconst isTour = (item) => item.key == 'tours';\r\n\r\n\r\n\t\tif(items && itemsFetched && gmap.map){\r\n\t\t\tlet tourStep;\r\n\t\t\tlet orderNumber;\r\n\t\t\tlet highlightIndex = -1;\r\n\t\t\tlet mapTourFinal = mapTour;\r\n\r\n\t\t\tif(!mapTourFinal){\r\n\t\t\t\tconst tours = items.find(isTour);\r\n\r\n\t\t\t\tfor(let tour of tours.items){\r\n\t\t\t\t\thighlightIndex = tour.highlights.findIndex(isTourStep);\r\n\r\n\t\t\t\t\tif(highlightIndex >= 0){\r\n\t\t\t\t\t\tmapTourFinal = tour;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t} else{\r\n\t\t\t\thighlightIndex = mapTourFinal.highlights.findIndex(isTourStep);\r\n\t\t\t}\r\n\r\n\t\t\tif(highlightIndex < 0) return;\r\n\t\t\ttourStep = mapTourFinal.highlights[highlightIndex];\r\n\r\n\t\t\tconst map = gmap.map;\r\n\t\t\t// reset hovered marker\r\n\t\t\tdispatch(updateHoveredMarker(-1));\r\n\r\n\t\t\t// get current zoom level and save it to store\r\n\t\t\t// so that the back button knows what zoom level it should load\r\n\t\t\tdispatch(updateTourZoomCenter(map.getZoom(), map.getCenter()));\r\n\r\n\t\t\t// change view to tour step\r\n\t\t\tdispatch(showTourStep());\r\n\r\n\t\t\t// set active tour step\r\n\t\t\tthis.tour = mapTourFinal;\r\n\t\t\tthis.tourStep = tourStep;\r\n\t\t\tthis.tourStep.orderNumber = highlightIndex+1\r\n\t\t\tdispatch(setActiveTourStep({...tourStep, orderNumber: this.tourStep.orderNumber }));\r\n\r\n\t\t\t// set tour as well\r\n\t\t\tdispatch(setActiveTour(mapTourFinal, mapTourFinal.id));\r\n\r\n\t\t\t// change back button\r\n\t\t\t// in this stage, the map title is the same as the tour title\r\n\t\t\tdispatch(changeBackButtonTitle(mapTourFinal.name));\r\n\r\n\t\t\t// change title\r\n\t\t\tdispatch(changeMapTitle(tourStep.name));\r\n\r\n\t\t\t// change zoom\r\n\t\t\tgmap.map.setZoom(TOUR_STEPS_ZOOM_LEVEL);\r\n\r\n\t\t\t// change map center\r\n\t\t\tgmap.map.setCenter({lat:tourStep.lat, lng:tourStep.lng});\r\n\r\n\t\t\tthis._drawTourPath();\r\n\t\t}\r\n\t}\r\n\r\n\trender(){\r\n\t\tthis._onRender();\r\n\r\n\t\tconst mapTourStep = this.tourStep;\r\n\r\n\t\tif(!mapTourStep) return null;\r\n\r\n\t\tconst { tourAttractions } = this.props;\r\n\t\tconst tourStepImages = mapTourStep.sliderImages || (mapTourStep.mapImage ? [mapTourStep.mapImage] : []);\r\n\t\tconst tourStepDesc = mapTourStep.desc ? mapTourStep.desc.replace(/\\r\\n/g, '') : '';\r\n\t\tconst orderNumber = mapTourStep.orderNumber;\r\n\r\n\t\treturn (\r\n\t\t\t
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \t

    \r\n\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tmapTourStep.imagelabel &&\r\n\t\t\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t}\r\n
    \r\n
    \r\n
    \r\n
    \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n
    \r\n\t\t);\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/MapSectionTourStep.js","import autobind from 'autobind-decorator';\r\nimport React, {Component} from 'react';\r\nimport {connect} from 'react-redux';\r\nimport MapTabsNavItem from './MapTabsNavItem';\r\nimport { updateActiveTab } from '../actions/mapSectionViewActions';\r\nimport { changeBackButtonTitle } from '../actions/mapBackButtonActions';\r\n@connect((store)=>{\r\n\treturn {\r\n\t\tmapSectionView: store.mapSectionView\r\n\t}\r\n})\r\nexport default class MapTabsNav extends Component{\r\n\t@autobind\r\n\thandleOnItemClick(tab){\r\n\t\tif( this.props.tabContentType == 'main'){\r\n\t\t\t// change the back button title\r\n\t\t\tthis.props.dispatch(changeBackButtonTitle(tab.label));\r\n\r\n\t\t\t// update active tab\r\n\t\t\tthis.props.dispatch(updateActiveTab(tab.key));\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst { tabTitles } = this.props;\r\n\r\n\t\tconst tabNavs = tabTitles.map((tab,i)=>{\r\n\t\t\tconst activeTab = this.props.mapSectionView.activeTab;\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\t});\r\n\r\n\t\treturn(\r\n\t\t\t
      \r\n\t\t\t\t{tabNavs}\r\n\t\t\t
    \r\n\t\t);\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/MapTabsNav.js","import autobind from 'autobind-decorator';\r\nimport React, { PureComponent } from 'react';\r\n\r\nexport default class MapTabsNavItem extends PureComponent {\r\n\t@autobind\r\n\t_onClick(ev){\r\n\t\tev.preventDefault();\r\n\t\tthis.props.onItemClicked(this.props.tab, this.props);\r\n\t}\r\n\r\n\trender(){\r\n\t\tconst { tab, index, bsTabDisabled, isActive } = this.props;\r\n\r\n\t\tconst activeClass = bsTabDisabled ?\r\n\t\t\t(isActive? 'active':'') :\r\n\t\t\t((index ==0) ? 'active':'');\r\n\r\n\t\treturn(\r\n\t\t\t
  • \r\n\t\t\t\t\r\n\t\t\t\t\t\t{tab.label}\r\n\t\t\t\t\r\n\t\t\t
  • \r\n\t\t);\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/MapTabsNavItem.js","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { push } from \"react-router-redux\";\r\nimport SportPin from \"./pins/SportPin\";\r\nimport {\r\n\tSPORTS_KEY,\r\n\tSPORTFIELD_KEY,\r\n\tSPORTFIELD_STATUS_COLOR\r\n} from \"../constants/mapconstants\";\r\nimport {\r\n\tgetSportFieldsFromPark,\r\n\textendBound,\r\n\tmapSportFieldObjToMapPositionable\r\n} from \"../utils/mapUtils\";\r\nimport { updateActiveTab } from \"../actions/mapSectionViewActions\";\r\n\r\n@connect(store => {\r\n\treturn {\r\n\t\tmapSectionView: store.mapSectionView,\r\n\t\tgmap: store.gmap\r\n\t};\r\n})\r\nexport default class ParkView extends Component {\r\n\tfitBound() {\r\n\t\tconst {\r\n\t\t\tgmap: { map, maps },\r\n\t\t\tpark\r\n\t\t} = this.props;\r\n\r\n\t\tlet bounds = new maps.LatLngBounds();\r\n\t\tconst sportFields = getSportFieldsFromPark(park);\r\n\r\n\t\tif (sportFields && sportFields.length) {\r\n\t\t\tsportFields\r\n\t\t\t\t.map(mapSportFieldObjToMapPositionable)\r\n\t\t\t\t.forEach(sportField => extendBound(bounds, sportField, maps));\r\n\t\t\tmap.fitBounds(bounds);\r\n\t\t}\r\n\t}\r\n\r\n\thandleSportFieldClick = ev => {\r\n\t\tconst { dispatch } = this.props;\r\n\t\tdispatch(push(ev.currentTarget.dataset.link));\r\n\t};\r\n\r\n\thandleSportFieldMouserEnter = ev => {\r\n\t\tthis.props.onMarkerMouseEnter(ev.currentTarget.dataset.id);\r\n\t};\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis.props.dispatch(updateActiveTab(SPORTS_KEY));\r\n\t\tthis.fitBound();\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst { park, onMarkerMouseLeave } = this.props;\r\n\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t{park.precints.map(precint => (\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{precint.preceintName}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t{precint.spaces.map(space => (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{space.SpaceName}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{space.SpaceIsOpen\r\n\t\t\t\t\t\t\t\t\t\t\t\t? \"Open\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t: \"Closed\"}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{space.SpaceIsOpen ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t))}\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/ParkView.js","import React, { PureComponent } from 'react';\r\nimport SharerItem from './SharerItem';\r\n\r\nconst addthisSocials= [\r\n\t{ name: \"facebook\", icon: \"facebook\"},\r\n\t{ name: \"twitter\", icon: \"twitter\"},\r\n\t{ name: \"google_plusone_share\", icon: \"gplus\"},\r\n\t{ name: \"email\", icon: \"mail\"},\r\n];\r\n\r\nclass Sharer extends PureComponent {\r\n\tcomponentDidMount(){\r\n\t\taddthis.toolbox('.addthis_toolbox');\r\n\t}\r\n\trender() {\r\n\t\tconst props = this.props;\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t
    Share
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t{addthisSocials.map( (item) => )}\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t);\r\n\t}\r\n}\r\n\r\nexport default Sharer;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/Sharer.js","import React from 'react';\r\nexport default (props) =>{\r\n\treturn (\r\n\t\t
    \r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
    \r\n\t)\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/SharerItem.js","import React, { PureComponent } from 'react';\r\nimport SliderItem from './SliderItem';\r\nexport default class Slider extends PureComponent{\r\n\tcomponentDidMount(){\r\n\t\tif(this.props.items && this.props.items.length){\r\n\t\t\tconst $slider = $(this.sliderDom);\r\n\t\t\tconst slickOpt = window.jsSlickOptions[$slider.attr('data-slickjs')];\r\n\t\t\tslickOpt.dots = this.props.items.length > 1\r\n\t\t\t$slider.slick(slickOpt);\r\n\r\n\t\t\t// wait for a bit\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\t$slider[0].slick.setPosition();\r\n\t\t\t}, 100);\r\n\r\n\t\t\t// second setPosition if the image is still slowly loaded\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\t$slider[0].slick.setPosition();\r\n\t\t\t}, 800);\r\n\t\t}\r\n\t}\r\n\r\n\trenderSliderItem(item,index){\r\n\t\tconst pattern = new RegExp(/^[\\/ | http]/);\r\n\t\tconst imgUrl = pattern.test(item) ? item : `/${item}`;\r\n\t\treturn ;\r\n\t}\r\n\r\n\trender(){\r\n\t\tconst { items } = this.props;\r\n\t\tconst pattern = new RegExp(/^[\\/ | http]/);\r\n\r\n\t\treturn (items && items.length) ? (\r\n\t\t\t
    this.sliderDom = node } className=\"u-ma o-slider c-map__slider\" data-slickjs=\"one\">\r\n\t\t\t\t{ items.map(this.renderSliderItem) }\r\n\t\t\t
    \r\n\t\t) : null;\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/Slider.js","import React, { PureComponent } from 'react';\r\n\r\nexport default class SliderItem extends PureComponent {\r\n\trender(){\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t);\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/SliderItem.js","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport formatDate from \"date-fns/format\";\r\nimport { SPORTS_KEY, SPORTFIELD_STATUS_COLOR } from \"../constants/mapconstants\";\r\nimport { updateActiveTab } from \"../actions/mapSectionViewActions\";\r\n\r\n@connect(store => {\r\n\treturn {\r\n\t\tmapSectionViewSection: store.mapSectionView.section,\r\n\t\tgmap: store.gmap\r\n\t};\r\n})\r\nexport default class ParkView extends Component {\r\n\tsetCenter() {\r\n\t\tconst {\r\n\t\t\tgmap: { map },\r\n\t\t\tsportField\r\n\t\t} = this.props;\r\n\r\n\t\t// change zoom\r\n\t\tmap.setZoom(18);\r\n\r\n\t\t// change map center\r\n\t\tmap.setCenter({\r\n\t\t\tlat: sportField.SpaceLatitude,\r\n\t\t\tlng: sportField.SpaceLongitude\r\n\t\t});\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\tthis.props.dispatch(updateActiveTab(SPORTS_KEY));\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst { sportField } = this.props;\r\n\r\n\t\tif (!sportField) return null;\r\n\r\n\t\tthis.setCenter();\r\n\r\n\t\tconst { SpaceIsOpen, SpaceLastModifiedDate, SpaceClosedMessage } = sportField;\r\n\r\n\t\tconst lastModified = `${formatDate(SpaceLastModifiedDate,\"D MMM\")} at ${formatDate(SpaceLastModifiedDate, \"h:mma\")}`;\r\n\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t\t{SpaceIsOpen ? \"OPEN\" : \"CLOSED\"}\r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\tLast updated {lastModified}. \r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tSpaceClosedMessage && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t}\r\n\t\t\t\t
    \r\n\t\t\t\r\n\t\t);\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/SportFieldView.js","import React, { PureComponent } from 'react';\r\nimport { getPinStyle } from './pinStyle';\r\n// initially any map object has left top corner at lat lng coordinates\r\n// it's on you to set object origin to 0,0 coordinates\r\n\r\nconst style = getPinStyle(42, 60, ['center', 'bottom']);\r\n\r\nclass AttractionPin extends PureComponent {\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n}\r\n\r\nexport default AttractionPin;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/pins/AttractionPin.js","import React, { PureComponent } from 'react';\r\n\r\nclass IndexPin extends PureComponent {\r\n\trender() {\r\n\t\tconst { size=36, color, borderColor, textColor, text, additionalClass='', additionalStyle } = this.props;\r\n\t\treturn (\r\n\t\t\t\r\n\t\t );\r\n\t}\r\n}\r\n\r\nexport default IndexPin;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/pins/IndexPin.js","import autobind from 'autobind-decorator';\r\nimport React, { PureComponent } from 'react';\r\nimport { push } from 'react-router-redux';\r\nimport { connect } from 'react-redux';\r\nimport IndexPin from './IndexPin';\r\nimport InfoBubble from '../InfoBubble';\r\nimport { getPinStyle } from './pinStyle';\r\n\r\n@connect((store)=>{\r\n\treturn{\r\n\t\thoveredMarkerKey: store.hoveredMarker.key,\r\n\t\tmapSectionViewSection: store.mapSectionView.section\r\n\t}\r\n})\r\nclass IndexPinWithBubble extends PureComponent {\r\n\tstyle = {\r\n\t\tcursor: 'pointer',\r\n\t}\r\n\r\n\t@autobind\r\n\t_onClick(ev){\r\n\t\tconst { link, dispatch, onItemClicked, id, pinNumber } = this.props\r\n\t\tdispatch(push(link));\r\n\r\n\t\tif(onItemClicked) onItemClicked(ev, id, pinNumber);\r\n\t}\r\n\r\n\trender(){\r\n\t\tconst { id, link, mapSectionViewSection, pinNumber, color, bubbleTitle, bubbleImageUrl, biggerSize, hoveredMarkerKey, alwaysShowBubble } = this.props;\r\n\t\tconst pattern = new RegExp(/^[\\/ | http]/);\r\n\t\tconst imgUrl = bubbleImageUrl && (pattern.test(bubbleImageUrl) ? bubbleImageUrl : `/${bubbleImageUrl}`);\r\n\r\n\t\tconst size = biggerSize ? 56 : 36;\r\n\r\n\t\treturn (
    \r\n\t\t\t\r\n\t\t\t\r\n\t\t
    );\r\n\t}\r\n}\r\n\r\nexport default IndexPinWithBubble;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/pins/IndexPinWithBubble.js","import { SPORTFIELD_STATUS_COLOR } from \"../../constants/mapconstants\";\r\nexport default function SportPin({ isClose }) {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t{!isClose ? (\r\n\t\t\t\t\r\n\t\t\t) : (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/pins/SportPin.js","import autobind from \"autobind-decorator\";\r\nimport React, { PureComponent } from \"react\";\r\nimport { push } from \"react-router-redux\";\r\nimport { connect } from \"react-redux\";\r\nimport SportPin from \"./SportPin\";\r\nimport { getPinStyle } from \"./pinStyle\";\r\nimport { SPORTFIELD_STATUS_COLOR } from \"../../constants/mapconstants\";\r\n\r\n@connect(store => {\r\n\treturn {\r\n\t\thoveredMarkerKey: store.hoveredMarker.key,\r\n\t\tmapSectionViewSection: store.mapSectionView.section\r\n\t};\r\n})\r\nclass SportPinWithBubble extends PureComponent {\r\n\tstyle = {\r\n\t\tcursor: \"pointer\"\r\n\t};\r\n\r\n\t@autobind\r\n\t_onClick(ev) {\r\n\t\tconst { link, dispatch } = this.props;\r\n\t\tif (link) {\r\n\t\t\tdispatch(push(link));\r\n\t\t}\r\n\t}\r\n\r\n\t@autobind\r\n\t_onClickWithoutGoingToLink(ev) {\r\n\t\tconst { onPinClick, id } = this.props;\r\n\t\tif (onPinClick) onPinClick(ev, id);\r\n\t}\r\n\r\n\t@autobind\r\n\thandleCloseClick(ev) {\r\n\t\tconst { onCloseClick } = this.props;\r\n\r\n\t\tif (onCloseClick) onCloseClick(ev, this.props);\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst {\r\n\t\t\tid,\r\n\t\t\tbubbleTitle,\r\n\t\t\tshowBubble,\r\n\t\t\tshowTitle,\r\n\t\t\tisClose,\r\n\t\t\thoveredMarkerKey,\r\n\t\t\tchildren\r\n\t\t} = this.props;\r\n\t\tconst size = 30;\r\n\t\tconst isBubbleShowing = showBubble || hoveredMarkerKey == id;\r\n\t\tconst statusColor = isClose\r\n\t\t\t? SPORTFIELD_STATUS_COLOR.CLOSED\r\n\t\t\t: SPORTFIELD_STATUS_COLOR.OPEN;\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\tShow tooltip\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tOpen detail\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{showTitle && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{bubbleTitle}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tShow tooltip\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tOpen detail\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t)}\r\n\t\t\t\t\r\n\r\n\t\t\t\t{/* Bubble */}\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
    {bubbleTitle}
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{isClose ? \"CLOSED\" : \"OPEN\"}\r\n\t\t\t\t\t\r\n\t\t\t\t\t{children && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{children}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t{/* */}\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n}\r\n\r\nexport default SportPinWithBubble;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/pins/SportPinWithBubble.js","/**\r\n *\r\n * @param {integer} width pin width\r\n * @param {integer} height pin height\r\n * @param {[string,string]} position format: [x,y], e.g. [\"center\",\"top\"], [\"center\", \"bottom\"]. [\"center\", \"center\"] by default\r\n */\r\nexport function getPinStyle (width, height, position=[\"center\",\"center\"]) {\r\n\tlet left = 0;\r\n\tswitch(position[0]){\r\n\t\tcase 'center':\r\n\t\t\tleft = -width/2;\r\n\t\t\tbreak;\r\n\t\tcase 'right':\r\n\t\t\tleft = -width;\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\tleft = 0;\r\n\t}\r\n\r\n\tlet top=0;\r\n\tswitch(position[1]){\r\n\t\tcase 'center':\r\n\t\t\ttop = -height/2;\r\n\t\t\tbreak;\r\n\t\tcase 'bottom':\r\n\t\t\ttop = -height;\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\ttop = 0;\r\n\t}\r\n\r\n\r\n\treturn {\r\n\t\tposition: 'absolute',\r\n \t\twidth, height, top, left\r\n\t};\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/components/pins/pinStyle.js","export const VENUES_KEY = \"venues\";\r\nexport const TOURS_KEY = \"tours\";\r\nexport const TOURSTEP_KEY = \"tourstep\";\r\nexport const SPORTS_KEY = \"sports\";\r\nexport const PARK_KEY = \"park\";\r\nexport const SPORTFIELD_KEY = \"sportfield\";\r\n\r\nexport const SPORTFIELD_STATUS_COLOR = {\r\n\tOPEN: \"#51B34C\",\r\n\tCLOSED: \"#EB3A02\"\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/constants/mapconstants.js","//Ref: https://www.youtube.com/watch?v=Td-2D-_7Y2E\r\n\r\n'use strict';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport { Router, Route } from 'react-router';\r\nimport { ConnectedRouter } from 'react-router-redux';\r\n\r\nimport Map from '../components/Map';\r\nimport { hashHistory, store } from '../store/MapStore';\r\n\r\nexport default class MapUtil{\r\n\tstatic init(){\r\n\t\tReactDOM.render(\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t, $('#map')[0]);\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/partials/MapUtil.js","'use strict';\r\nimport JSON5 from 'json5';\r\n\r\nconst $map = $('#map');\r\n\r\nconst tabsAttr = $map.attr('data-tabs');\r\nlet tabs = JSON5.parse(tabsAttr);\r\ntabs = tabs.sort((a,b) => a.order - b.order);\r\n\r\nconst downloadMapLink = $map.attr('data-map-pdf') || '';\r\n\r\nconst viewmode = $map.attr('data-viewmode');\r\n\r\nconst initialState = {\r\n\ttours: [],\r\n\thighlights: [],\r\n\tvenues: [],\r\n\titems: [],\r\n\tfetched: false,\r\n\tfetching: false,\r\n\terror: false,\r\n\thighlightsFetched: false,\r\n\thighlightsFetching: false,\r\n\thighlightsError: null,\r\n\tvenuesFetched: false,\r\n\tvenuesFetching: false,\r\n\tvenuesError: null,\r\n\ttabs,\r\n\tviewmode,\r\n\ttabTitles: tabs.map(tab => tab.label),\r\n\tdownloadMapLink,\r\n};\r\n\r\nexport default function reducer(state = initialState, action){\r\n\tconst {type, payload} = action;\r\n\tswitch(type){\r\n\t\tcase 'FETCH_TOURS_PENDING':\r\n\t\t\treturn {...state, fetching: true};\r\n\t\tcase 'FETCH_TOURS_FULFILLED':\r\n\t\t\treturn {...state, tours: payload, fetching: false, fetched: true};\r\n\t\tcase 'FETCH_TOURS_REJECTED':\r\n\t\t\treturn {...state, fetching: false, error: payload};\r\n\r\n\t\tcase 'FETCH_HIGHLIGHTS_PENDING':\r\n\t\t\treturn {...state, highlightsFetching: true, highlightsError: null};\r\n\t\tcase 'FETCH_HIGHLIGHTS_FULFILLED':\r\n\t\t\treturn {...state, highlights: payload, highlightsFetching: false, highlightsFetched: true};\r\n\t\tcase 'FETCH_HIGHLIGHTS_REJECTED':\r\n\t\t\treturn {...state, highlightsFetching: false, highlightsError: payload};\r\n\r\n\t\tcase 'FETCH_VENUES_PENDING':\r\n\t\t\treturn {...state, venuesFetching: true, venuesError: null};\r\n\t\tcase 'FETCH_VENUES_FULFILLED':\r\n\t\t\treturn {...state, venues: payload, venuesFetching: false, venuesFetched: true};\r\n\t\tcase 'FETCH_VENUES_REJECTED':\r\n\t\t\treturn {...state, venuesFetching: false, venuesError: payload};\r\n\r\n\t\tcase 'FETCH_ITEMS_PENDING':\r\n\t\t\treturn {...state, fetching: true, error: null};\r\n\t\tcase 'FETCH_ITEMS_FULFILLED':\r\n\t\t\treturn {...state, items: payload, fetching: false, fetched: true};\r\n\t\tcase 'FETCH_ITEMS_REJECTED':\r\n\t\t\treturn {...state, fetching: false, error: payload};\r\n\t}\r\n\treturn state;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/reducers/attractionsReducer.js","export default (state = {map: null, maps: null}, action) => {\r\n\tconst { type, payload } = action;\r\n\tswitch(type){\r\n\t\tcase 'UPDATE_MAP_MAPS':\r\n\t\t\treturn { ...state, ...payload};\r\n\t\tdefault:\r\n\t\t\treturn state;\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/reducers/gmapReducer.js","export default (state = {key: -1}, action) => {\r\n\tconst { type, payload } = action;\r\n\tswitch(type){\r\n\t\tcase 'UPDATE_HOVERED_MARKER':\r\n\t\t\treturn {...state, ...{key: payload}};\r\n\t\tdefault:\r\n\t\t\treturn state;\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/reducers/hoveredMarkerReducer.js","'use strict';\r\nimport { combineReducers } from 'redux';\r\nimport { routerReducer } from 'react-router-redux';\r\nimport attractionsReducer from './attractionsReducer';\r\nimport tourAttractionsReducer from './tourAttractionsReducer';\r\nimport mapAttractionReducer from './mapAttractionReducer';\r\nimport mapViewReducer from './mapViewReducer';\r\nimport mapSectionViewReducer from './mapSectionViewReducer';\r\nimport mapTitleReducer from './mapTitleReducer';\r\nimport mapTourStepReducer from './mapTourStepReducer';\r\nimport mapTourReducer from './mapTourReducer';\r\nimport mapBackButtonReducer from './mapBackButtonReducer';\r\nimport hoveredMarkerReducer from './hoveredMarkerReducer';\r\nimport gmapReducer from './gmapReducer';\r\nimport tourPolylinesReducer from './tourPolylinesReducer';\r\nimport sportPinReducer from './sportPinReducer'\r\n\r\nexport default combineReducers({\r\n\tattractions: attractionsReducer,\r\n\ttourAttractions: tourAttractionsReducer,\r\n\tmapView: mapViewReducer,\r\n\tmapAttraction: mapAttractionReducer,\r\n\tmapSectionView: mapSectionViewReducer,\r\n\tmapTitle: mapTitleReducer,\r\n\tmapTourStep: mapTourStepReducer,\r\n\tmapTour: mapTourReducer,\r\n\tmapBackButton: mapBackButtonReducer,\r\n\thoveredMarker: hoveredMarkerReducer,\r\n\tgmap: gmapReducer,\r\n\ttourPolylines: tourPolylinesReducer,\r\n\trouting: routerReducer,\r\n\tsportPin: sportPinReducer,\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/reducers/index.js","export default (state = { attraction: {} }, action) => {\r\n\tconst { type, payload } = action;\r\n\tswitch(type){\r\n\t\tcase 'SET_ACTIVE_ATTRACTION':\r\n\t\t\treturn {...state, attraction: payload};\r\n\t\tdefault:\r\n\t\t\treturn state;\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/reducers/mapAttractionReducer.js","export default (state = {title: ''}, action) => {\r\n\tconst { type, payload } = action;\r\n\tswitch (type) {\r\n\t\tcase 'CHANGE_BACKBUTTON_TITLE':\r\n\t\t\treturn { ...state, ...payload};\r\n\t\tdefault:\r\n\t\t\treturn state;\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/reducers/mapBackButtonReducer.js","\"use strict\";\r\n\r\nconst wurl = require('wurl');\r\n\r\nexport default (\r\n\tstate = {\r\n\t\tsection: \"main\",\r\n\t\ttitle: \"\",\r\n\t\tactiveTab: \"\",\r\n\t\tvenueFilter: wurl('?venue') || '',\r\n\t},\r\n\taction\r\n) => {\r\n\tconst { type, payload } = action;\r\n\r\n\tswitch (action.type) {\r\n\t\tcase \"SHOW_MAIN\":\r\n\t\tcase \"SHOW_TOUR\":\r\n\t\tcase \"SHOW_TOURSTEP\":\r\n\t\tcase \"SHOW_HIGHLIGHT\":\r\n\t\tcase \"SHOW_ATTRACTION\":\r\n\t\tcase \"SHOW_VENUE\":\r\n\t\tcase \"SHOW_PARK\":\r\n\t\tcase \"SHOW_SPORTFIELD\":\r\n\t\tcase \"UPDATE_MAIN_ZOOMCENTER\":\r\n\t\tcase \"UPDATE_TOUR_ZOOMCENTER\":\r\n\t\tcase \"UPDATE_VENUE_FILTER\":\r\n\t\tcase \"UPDATE_ACTIVE_ITEMID\":\r\n\t\t\treturn { ...state, ...payload };\r\n\t\tcase \"UPDATE_ACTIVE_TAB\":\r\n\t\t\treturn { ...state, activeTab: payload };\r\n\t}\r\n\treturn state;\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/reducers/mapSectionViewReducer.js","const initialState = {\r\n\ttitle: $('#map').attr('data-title'),\r\n};\r\n\r\nexport default (state= initialState, action)=>{\r\n\tconst { type, payload } =action;\r\n\r\n\tswitch(action.type){\r\n\t\tcase 'CHANGE_TITLE':\r\n\t\t\tpayload.title = payload.title || initialState.title;\r\n\t\t\treturn {...state, ...payload};\r\n\t\tdefault:\r\n\t\t\treturn state;\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/reducers/mapTitleReducer.js","export default (state = {}, action) => {\r\n\tconst { type, payload } = action;\r\n\tswitch (type) {\r\n\t\tcase 'SET_ACTIVE_TOUR':\r\n\t\t\treturn {...state, ...payload};\r\n\t\tdefault:\r\n\t\t\treturn state;\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/reducers/mapTourReducer.js","export default (state = {}, action) => {\r\n const { type, payload } = action;\r\n\r\n switch (type) {\r\n case 'SET_ACTIVE_TOURSTEP':\r\n return {...state, ...payload };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/reducers/mapTourStepReducer.js","export default (state = { view: \"list\" }, action) => {\r\n\tconst { type, payload } = action;\r\n\tswitch (type) {\r\n\t\tcase \"CHANGE_VIEW\":\r\n\t\t\treturn { ...state, ...payload };\r\n\t}\r\n\treturn state;\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/reducers/mapViewReducer.js","export default (state = { bubbleIdShown: null }, action) => {\r\n\tconst { type, payload } = action;\r\n\tswitch (type) {\r\n\t\tcase \"UPDATE_BUBBLEID_SHOWN\":\r\n\t\t\treturn { ...state, ...{ bubbleIdShown: payload } };\r\n\t\tdefault:\r\n\t\t\treturn state;\r\n\t}\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/reducers/sportPinReducer.js","'use strict';\r\n\r\nconst initialState = {\r\n\ttourAttractions: [],\r\n\tfetched: false,\r\n\tfetching: false,\r\n\terror: null\r\n};\r\n\r\nexport default function reducer(state = initialState, action){\r\n\tconst {type, payload} = action;\r\n\tswitch(type){\r\n\t\tcase 'FETCH_TOUR_ATTRACTIONS_PENDING':\r\n\t\t\treturn {...state, fetching: true};\r\n\t\tcase 'FETCH_TOUR_ATTRACTIONS_FULFILLED':\r\n\t\t\treturn {...state, tourAttractions: payload.tourAttractions, fetching: false, fetched: true};\r\n\t\tcase 'FETCH_TOUR_ATTRACTIONS_REJECTED':\r\n\t\t\treturn {...state, fetching: false, error: payload};\r\n\t}\r\n\treturn state;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/reducers/tourAttractionsReducer.js","export default(state={ polylines: []}, action) => {\r\n\tconst { type, payload } = action;\r\n\tswitch(type){\r\n\t\tcase 'UPDATE_POLYLINES':\r\n\t\t\treturn {...state, polylines: payload }\r\n\t\tdefault:\r\n\t\t\treturn state;\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/reducers/tourPolylinesReducer.js","'use strict';\r\n\r\nimport { createStore, applyMiddleware, compose } from 'redux';\r\nimport { routerMiddleware } from 'react-router-redux';\r\nconst thunk = require('redux-thunk').default;\r\nimport promiseMiddleware from 'redux-promise-middleware';\r\nimport createHistory from 'history/createHashHistory';\r\nimport reducers from '../reducers';\r\n\r\nconst composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\r\n\r\nconst hashHistory = createHistory();\r\n\r\nconst middleware = applyMiddleware(thunk, promiseMiddleware(), routerMiddleware(hashHistory));\r\n\r\nconst store = createStore(reducers, composeEnhancers(middleware));\r\n\r\nexport { hashHistory, store };\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/store/MapStore.js","/**\r\n * @export\r\n * @param {google.maps.LatLngBounds} bounds bounds created using google.maps.LatLngBounds\r\n * @param {Object} obj any object that has lat and lng property\r\n * @param {google.maps} maps passing google.maps\r\n */\r\nexport function extendBound(bounds, obj, maps) {\r\n\tbounds.extend(new maps.LatLng({ lat: obj.lat, lng: obj.lng }));\r\n}\r\n\r\nexport function getSportFieldsFromParks(parks, filterFn) {\r\n\tconst _filterFn = filterFn || (() => true);\r\n\treturn parks\r\n\t\t.filter(_filterFn)\r\n\t\t.reduce(\r\n\t\t\t(acc, park) => [\r\n\t\t\t\t...acc,\r\n\t\t\t\t...park.precints.map(precinct => ({\r\n\t\t\t\t\t...precinct,\r\n\t\t\t\t\tParkID: park.ParkID\r\n\t\t\t\t}))\r\n\t\t\t],\r\n\t\t\t[]\r\n\t\t)\r\n\t\t.reduce(\r\n\t\t\t(acc, precinct) => [\r\n\t\t\t\t...acc,\r\n\t\t\t\t...precinct.spaces.map(space => ({\r\n\t\t\t\t\t...space,\r\n\t\t\t\t\tParkID: precinct.ParkID\r\n\t\t\t\t}))\r\n\t\t\t],\r\n\t\t\t[]\r\n\t\t);\r\n}\r\n\r\nexport function getSportFieldsFromPark(park, filterFn) {\r\n\tconst _filterFn = filterFn || (() => true);\r\n\treturn park.precints\r\n\t\t.filter(_filterFn)\r\n\t\t.reduce((acc, precinct) => [...acc, ...precinct.spaces], []);\r\n}\r\n\r\nexport const mapSportFieldObjToMapPositionable = sportField => ({\r\n\t...sportField,\r\n\tlat: sportField.SpaceLatitude,\r\n\tlng: sportField.SpaceLongitude\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/_js/utils/mapUtils.js"],"sourceRoot":""}