{"version":3,"sources":["../node_modules/react/index.js","math.js","../../modules/HistoryContext.js","../../modules/createNameContext.js","../../modules/RouterContext.js","../../modules/Router.js","../../modules/MemoryRouter.js","../../modules/Lifecycle.js","../../modules/generatePath.js","../../modules/Redirect.js","../../modules/matchPath.js","../../modules/Route.js","../../modules/StaticRouter.js","../../modules/Switch.js","../../modules/hooks.js","extent.js","../../src/proj/epsg3857.js","../../src/proj/epsg4326.js","../../src/proj/projections.js","proj.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../../src/geom/GeometryType.js","util.js","obj.js","../../src/proj/Units.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../src/extent/Relationship.js","../../src/geom/GeometryLayout.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/prop-types/index.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","array.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../../src/proj/transforms.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/defineProperty.js","asserts.js","../../src/geom/flat/contains.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","ViewHint.js","coordinate.js","../node_modules/react-dom/index.js","../node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../../src/proj/Projection.js","../node_modules/react-i18next/dist/es/context.js","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/Trans.js","../node_modules/react-i18next/dist/es/useTranslation.js","../node_modules/react-i18next/dist/es/withTranslation.js","../node_modules/react-i18next/dist/es/I18nextProvider.js","events.js","../../src/geom/flat/transform.js","functions.js","../../src/geom/SimpleGeometry.js","../../src/geom/flat/deflate.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../../src/geom/flat/closest.js","../node_modules/@babel/runtime/helpers/slicedToArray.js","rotationconstraint.js","../node_modules/tslib/tslib.es6.js","../node_modules/deox/dist/index.esm.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/redux/es/redux.js","sphere.js","../../src/extent/Corner.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../src/geom/flat/inflate.js","../../src/geom/flat/simplify.js","../../src/events/Event.js","../../src/geom/flat/area.js","../../src/geom/flat/reverse.js","../../src/geom/flat/orient.js","../node_modules/react-is/index.js","Object.js","easing.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/react-ga/dist/esm/utils/console/warn.js","../node_modules/react-ga/dist/esm/components/OutboundLink.js","../node_modules/react-ga/dist/esm/utils/redactEmail.js","../node_modules/react-ga/dist/esm/utils/mightBeEmail.js","../node_modules/react-ga/dist/esm/utils/trim.js","../node_modules/react-ga/dist/esm/utils/toTitleCase.js","../node_modules/react-ga/dist/esm/utils/loadGA.js","../node_modules/react-ga/dist/esm/utils/console/log.js","../node_modules/react-ga/dist/esm/utils/testModeAPI.js","../node_modules/react-ga/dist/esm/core.js","../node_modules/react-ga/dist/esm/utils/format.js","../node_modules/react-ga/dist/esm/utils/removeLeadingSlash.js","../node_modules/react-ga/dist/esm/index.js","../../src/geom/LinearRing.js","../../src/geom/Polygon.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","transform.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","string.js","../node_modules/symbol-observable/es/index.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/path-to-regexp/index.js","../node_modules/proj4/lib/global.js","../node_modules/proj4/lib/constants/values.js","../node_modules/proj4/lib/constants/PrimeMeridian.js","../node_modules/proj4/lib/constants/units.js","../node_modules/proj4/lib/match.js","../node_modules/proj4/lib/projString.js","../node_modules/wkt-parser/parser.js","../node_modules/wkt-parser/process.js","../node_modules/wkt-parser/index.js","../node_modules/proj4/lib/defs.js","../node_modules/proj4/lib/parseCode.js","../node_modules/proj4/lib/extend.js","../node_modules/proj4/lib/common/msfnz.js","../node_modules/proj4/lib/common/sign.js","../node_modules/proj4/lib/common/adjust_lon.js","../node_modules/proj4/lib/common/tsfnz.js","../node_modules/proj4/lib/common/phi2z.js","../node_modules/proj4/lib/projections/longlat.js","../node_modules/proj4/lib/projections.js","../node_modules/proj4/lib/projections/merc.js","../node_modules/proj4/lib/constants/Ellipsoid.js","../node_modules/proj4/lib/constants/Datum.js","../node_modules/proj4/lib/datum.js","../node_modules/proj4/lib/Proj.js","../node_modules/proj4/lib/deriveConstants.js","../node_modules/proj4/lib/datumUtils.js","../node_modules/proj4/lib/datum_transform.js","../node_modules/proj4/lib/adjust_axis.js","../node_modules/proj4/lib/common/toPoint.js","../node_modules/proj4/lib/checkSanity.js","../node_modules/proj4/lib/transform.js","../node_modules/proj4/lib/core.js","../node_modules/mgrs/mgrs.js","../node_modules/proj4/lib/Point.js","../node_modules/proj4/lib/common/pj_enfn.js","../node_modules/proj4/lib/common/pj_mlfn.js","../node_modules/proj4/lib/common/pj_inv_mlfn.js","../node_modules/proj4/lib/projections/tmerc.js","../node_modules/proj4/lib/common/sinh.js","../node_modules/proj4/lib/common/hypot.js","../node_modules/proj4/lib/common/asinhy.js","../node_modules/proj4/lib/common/log1py.js","../node_modules/proj4/lib/common/gatg.js","../node_modules/proj4/lib/common/clens_cmplx.js","../node_modules/proj4/lib/common/cosh.js","../node_modules/proj4/lib/projections/etmerc.js","../node_modules/proj4/lib/common/clens.js","../node_modules/proj4/lib/projections/utm.js","../node_modules/proj4/lib/common/adjust_zone.js","../node_modules/proj4/lib/common/srat.js","../node_modules/proj4/lib/projections/gauss.js","../node_modules/proj4/lib/projections/sterea.js","../node_modules/proj4/lib/projections/stere.js","../node_modules/proj4/lib/projections/somerc.js","../node_modules/proj4/lib/projections/omerc.js","../node_modules/proj4/lib/projections/lcc.js","../node_modules/proj4/lib/projections/krovak.js","../node_modules/proj4/lib/common/mlfn.js","../node_modules/proj4/lib/common/e0fn.js","../node_modules/proj4/lib/common/e1fn.js","../node_modules/proj4/lib/common/e2fn.js","../node_modules/proj4/lib/common/e3fn.js","../node_modules/proj4/lib/common/gN.js","../node_modules/proj4/lib/common/adjust_lat.js","../node_modules/proj4/lib/common/imlfn.js","../node_modules/proj4/lib/projections/cass.js","../node_modules/proj4/lib/common/qsfnz.js","../node_modules/proj4/lib/projections/laea.js","../node_modules/proj4/lib/common/asinz.js","../node_modules/proj4/lib/projections/aea.js","../node_modules/proj4/lib/projections/gnom.js","../node_modules/proj4/lib/projections/cea.js","../node_modules/proj4/lib/common/iqsfnz.js","../node_modules/proj4/lib/projections/eqc.js","../node_modules/proj4/lib/projections/poly.js","../node_modules/proj4/lib/projections/nzmg.js","../node_modules/proj4/lib/projections/mill.js","../node_modules/proj4/lib/projections/sinu.js","../node_modules/proj4/lib/projections/moll.js","../node_modules/proj4/lib/projections/eqdc.js","../node_modules/proj4/lib/projections/vandg.js","../node_modules/proj4/lib/projections/aeqd.js","../node_modules/proj4/lib/projections/ortho.js","../node_modules/proj4/lib/projections/qsc.js","../node_modules/proj4/lib/projections/robin.js","../node_modules/proj4/lib/projections/geocent.js","../node_modules/proj4/projs.js","../node_modules/proj4/lib/index.js","../node_modules/@babel/runtime/helpers/esm/objectSpread.js","../node_modules/i18next/dist/esm/i18next.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/webpack/buildin/global.js","../../src/events/EventType.js","../node_modules/@babel/runtime/helpers/extends.js","../../src/geom/flat/intersectsextent.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../src/geom/Point.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../src/geom/flat/interiorpoint.js","../../src/geom/Geometry.js","../../src/geom/flat/segments.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../src/events/Target.js","ObjectEventType.js","../node_modules/object-assign/index.js","Disposable.js","../../src/tilegrid/common.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","AssertionError.js","Observable.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/symbol-observable/es/ponyfill.js","../node_modules/html-parse-stringify2/index.js","../node_modules/i18next-xhr-backend/dist/esm/i18nextXHRBackend.js","../node_modules/i18next-browser-languagedetector/index.js","../../src/proj/proj4.js","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/index.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/webpack/buildin/harmony-module.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/html-parse-stringify2/lib/parse.js","../node_modules/html-parse-stringify2/lib/parse-tag.js","../node_modules/void-elements/index.js","../node_modules/html-parse-stringify2/lib/stringify.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/i18next-browser-languagedetector/dist/commonjs/index.js","../node_modules/i18next-browser-languagedetector/dist/commonjs/utils.js","../node_modules/i18next-browser-languagedetector/dist/commonjs/browserLookups/cookie.js","../node_modules/i18next-browser-languagedetector/dist/commonjs/browserLookups/querystring.js","../node_modules/i18next-browser-languagedetector/dist/commonjs/browserLookups/localStorage.js","../node_modules/i18next-browser-languagedetector/dist/commonjs/browserLookups/navigator.js","../node_modules/i18next-browser-languagedetector/dist/commonjs/browserLookups/htmlTag.js","../node_modules/i18next-browser-languagedetector/dist/commonjs/browserLookups/path.js","../node_modules/i18next-browser-languagedetector/dist/commonjs/browserLookups/subdomain.js","../node_modules/path-to-regexp/node_modules/isarray/index.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/react-transition-group/esm/CSSTransition.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js","ViewProperty.js","centerconstraint.js","resolutionconstraint.js","View.js"],"names":["module","exports","require","dx","j","historyContext","name","context","createContext","createNamedContext","Router","location","props","computeRootMatch","path","url","params","isExact","pathname","componentDidMount","this","_pendingLocation","componentWillUnmount","unlisten","render","RouterContext","value","history","state","match","staticContext","HistoryContext","children","React","Component","Lifecycle","onMount","call","componentDidUpdate","onUpdate","prevProps","onUnmount","cache","cacheCount","generatePath","generator","pathToRegexp","compilePath","pretty","Redirect","computedMatch","to","push","method","createLocation","prevLocation","locationsAreEqual","key","matchPath","options","Array","exact","strict","sensitive","concat","matched","cacheKey","pathCache","keys","result","regexp","end","values","memo","Route","component","addLeadingSlash","stripBasename","basename","base","createURL","createPath","staticHandler","methodName","invariant","noop","Switch","child","element","useContext","useHistory","useLocation","x","relationship","i","extendCoordinate","Math","apply","opt_output","_extends","Object","assign","target","arguments","length","source","prototype","hasOwnProperty","METERS_PER_UNIT","Units","_objectWithoutPropertiesLoose","excluded","sourceKeys","indexOf","XY","_inheritsLoose","subClass","superClass","create","constructor","__proto__","condition","message","Error","_classCallCheck","instance","Constructor","TypeError","_defineProperties","descriptor","enumerable","configurable","writable","defineProperty","_createClass","protoProps","staticProps","isAbsolute","charAt","spliceOne","list","index","k","n","pop","resolvePathname","from","undefined","hasTrailingSlash","toParts","split","fromParts","isToAbs","isFromAbs","mustEndAbs","last","up","part","unshift","join","substr","valueOf","obj","valueEqual","a","b","isArray","every","item","aValue","bValue","stripLeadingSlash","prefix","toLowerCase","hasBasename","stripTrailingSlash","slice","search","hash","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","e","URIError","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","callback","appendListener","fn","isActive","listener","filter","notifyListeners","_len","args","_key","forEach","canUseDOM","window","document","createElement","getConfirmation","confirm","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","ua","navigator","userAgent","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","getDOMLocation","historyState","_ref","_window$location","createKey","random","toString","transitionManager","setState","nextState","handlePopState","event","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","addEventListener","removeEventListener","isBlocked","href","pushState","prevIndex","nextKeys","replace","replaceState","goBack","goForward","block","unblock","listen","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","substring","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","allPaths","lastIndexOf","baseTag","querySelector","getAttribute","pushHashPath","nextPaths","clamp","lowerBound","upperBound","min","max","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entries","map","entry","nextIndex","nextEntries","splice","canGo","arr","_typeof","Symbol","iterator","_slicedToArray","arrayWithHoles","_arr","_n","_d","_e","_s","_i","next","done","err","unsupportedIterableToArray","nonIterableRest","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","getOwnPropertyDescriptors","defineProperties","_assertThisInitialized","self","ReferenceError","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","process","console","error","objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_objectSpread","_defineProperty","i18nInstance","hasUsedI18nextProvider","defaultOptions","bindI18n","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transKeepBasicHtmlNodesFor","useSuspense","I18nContext","getHasUsedI18nextProvider","getDefaults","ReportNamespaces","usedNamespaces","namespaces","_this","ns","getI18n","initReactI18next","type","init","setDefaults","react","setI18n","warn","_console","alreadyWarned","warnOnce","_len2","_key2","Date","loadNamespaces","i18n","cb","isInitialized","on","initialized","setTimeout","off","hasLoadedNamespace","languages","lng","fallbackLng","lastLng","loadNotPending","l","loadState","services","backendConnector","hasResourceBundle","backend","getDisplayName","displayName","hasChildren","node","getChildren","getAsArray","data","renderNodes","targetString","i18nOptions","combinedTOpts","keepArray","emptyChildrenButNeedsHandling","RegExp","test","getData","childs","isValidElement","interpolatedString","interpolator","interpolate","language","mapAST","reactNode","astNode","reactNodes","reduce","mem","translationContent","content","parseInt","isElement","mappedChildren","inner","hasValidReactChildren","dummy","cloneElement","_inner","Number","isNaN","parseFloat","voidElement","_inner2","_inner3","HTML","parse","Trans","count","parent","i18nKey","tOptions","defaults","components","i18nFromProps","tFromProps","t","additionalProps","_objectWithoutProperties","_ref2","i18nFromContext","defaultNSFromContext","defaultNS","bind","reactI18nextOptions","useAsParent","defaultTransParent","defaultValue","nodesToString","startingString","stringNode","childrenArray","elementKey","elementTag","i18nIsDynamicList","clone","format","hashTransKey","interpolation","suffix","translation","useTranslation","ReactI18nContext","reportNamespaces","retNotReady","ready","_props$useSuspense","addUsedNamespaces","initializedStoreOnce","getT","getFixedT","nsMode","_useState","useState","_useState2","setT","useEffect","isMounted","boundReset","store","ret","Promise","resolve","withTranslation","WrappedComponent","I18nextWithTranslation","forwardedRef","rest","_useTranslation","_useTranslation2","passDownProps","tReady","withRef","ref","forwardRef","I18nextProvider","Provider","SimpleGeometry","getLastCoordinate","stride","ends","offset","_possibleConstructorReturn","iterableToArrayLimit","__assign","s","p","createActionCreator","executor","callable","payload","meta","createAction","getType","actionCreator","createHandlerMap","actionCreators","handler","acc","merge","objs","createReducer","defaultState","handlerMapsCreator","handlerMap","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","_inherits","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","getOwnPropertyNames","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","randomString","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","isPlainObject","proto","createStore","reducer","preloadedState","enhancer","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","getState","subscribe","isSubscribed","dispatch","replaceReducer","nextReducer","observable","outerSubscribe","observer","observeState","unsubscribe","$$observable","getUndefinedStateErrorMessage","actionType","String","combineReducers","reducers","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","previousStateForKey","nextStateForKey","errorMessage","bindActionCreator","bindActionCreators","boundActionCreators","_arrayLikeToArray","len","arr2","coordinatess","flatCoordinates","x2","BaseObject","_unsupportedIterableToArray","minLen","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","_isNativeReflectConstruct","Super","NewTarget","OutboundLink","_Component","_super","_this$props","eventLabel","onClick","trackerNames","eventMeta","label","sameTarget","normalClick","ctrlKey","shiftKey","metaKey","button","preventDefault","trackLink","_this$props2","handleClick","rel","trim","PropTypes","string","isRequired","func","arrayOf","redactEmail","smallWords","toTitleCase","title","toUpperCase","isLoaded","log","info","gaCalls","calls","ga","resetCalls","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","_isNotBrowser","_debug","_titleCase","_testMode","_alwaysSendToDefaultTracker","_redactEmail","internalGa","_window","TestModeAPI","_format","titleCase","redactingEmail","_str","_gaCommand","command","_initialize","gaTrackingID","debug","useExistingGa","gaOptions","addTrackers","configsOrTrackingId","config","trackingId","initialize","testMode","standardImplementation","gaAddress","g","r","m","onerror","q","getElementsByTagName","async","src","parentNode","insertBefore","loadGA","alwaysSendToDefaultTracker","JSON","stringify","set","fieldsObject","send","fieldObject","pageview","rawPath","extraFields","hitType","page","extraLog","modalview","rawModalName","modalName","timing","category","variable","timingCategory","timingVar","timingValue","timingLabel","nonInteraction","transport","eventCategory","eventAction","eventValue","exception","_ref3","description","fatal","exDescription","exFatal","plugin","rawName","trackerName","requireString","execute","pluginName","_len3","_key3","outboundLink","hitCallback","safetyCallbackCalled","clearTimeout","testModeAPI","UnboundOutboundLink","origTrackLink","Defaults","linearRing","getFlatCoordinates","Polygon","BrowserRouter","createHistory","resolveToLocation","normalizeToLocation","forwardRefShim","C","LinkAnchor","innerRef","navigate","ex","isModifiedEvent","Link","ariaCurrent","activeClassName","activeStyle","classNameProp","className","isActiveProp","locationProp","styleProp","style","escapedPath","classnames","joinClassnames","root","global","ponyfill","commonjsGlobal","globalThis","createEventEmitter","handlers","h","get","newValue","changedBits","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","emitter","_proto","getChildContext","componentWillReceiveProps","nextProps","oldValue","y","Consumer","_Component2","_this2","getValue","observedBits","_proto2","isarray","compile","str","tokensToFunction","tokensToRegExp","PATH_REGEXP","res","tokens","defaultDelimiter","delimiter","exec","escaped","capture","group","modifier","asterisk","partial","repeat","optional","pattern","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","c","charCodeAt","matches","flags","opts","encode","encodeURIComponent","token","segment","attachKeys","re","route","endsWithDelimiter","groups","regexpToRegexp","parts","arrayToRegexp","stringToRegexp","SEC_TO_RAD","HALF_PI","PI","D2R","R2D","FORTPI","TWO_PI","SPI","ft","to_meter","ignoredChar","testkey","lkey","defData","paramName","paramVal","paramOutname","paramObj","v","proj","datum","rf","lat_0","lat0","lat_1","lat1","lat_2","lat2","lat_ts","lon_0","long0","lon_1","long1","lon_2","long2","alpha","lonc","longc","x_0","x0","y_0","y0","k_0","k0","r_a","R_A","zone","south","utmSouth","towgs84","datum_params","units","unit","from_greenwich","pm","PrimeMeridian","nadgrids","datumCode","axis","parseString","txt","Parser","output","whitespace","latin","keyword","endThings","digets","text","level","place","stack","currentObject","mapit","thing","out","newObj","sExpr","shift","convert","readCharicter","char","neutral","quoted","afterquote","number","word","afterItem","newObjects","d2r","input","wkt","lisp","parser","projName","local","PROJECTION","AXIS","axisOrder","ii","UNIT","DATUM","SPHEROID","geogcs","GEOGCS","toMeter","sphere","ellps","TOWGS84","isFinite","outName","inName","rename","cleanWKT","defs","that","def","parseProj","EPSG","ESRI","IAU2000","WGS84","GOOGLE","globals","codeWords","codes","code","testObj","testDef","some","testWKT","auth","checkMercator","maybeProjStr","ext","checkProjStr","projStr","testProj","destination","property","eccent","sinphi","cosphi","con","sqrt","abs","sign","phi","com","pow","tan","ts","dphi","eccnth","atan","sin","identity","pt","projs","es","cos","msfnz","forward","lon","lat","adjust_lon","tsfnz","inverse","exp","phi2z","names","projStore","add","start","ellipseName","wgs84","ellipse","datumName","ch1903","ggrs87","nad83","nad27","potsdam","carthage","hermannskogel","osni52","ire65","rassadiran","nzgd49","osgb36","s_jtsk","beduaram","gunung_segara","rnb72","ep2","datum_type","Projection","srsCode","json","parseCode","ourProj","projections","datumDef","Datum","sphere_","Ellipsoid","dc_sphere","ecc","a2","b2","dc_eccentricity","datumObj","extend","geodeticToGeocentric","Rn","Sin_Lat","Sin2_Lat","Cos_Lat","Longitude","Latitude","Height","z","Infinity","geocentricToGeodetic","P","RR","CT","ST","RX","RK","RN","CPHI0","SPHI0","CPHI","SPHI","SDPHI","X","Y","Z","atan2","genau","checkParams","dest","point","compareDatums","Dx_BF","Dy_BF","Dz_BF","Rx_BF","Ry_BF","Rz_BF","M_BF","geocentricToWgs84","x_tmp","y_tmp","z_tmp","geocentricFromWgs84","crs","denorm","xin","yin","zin","array","checkCoord","num","transform","toPoint","checkSanity","checkNotWGS","adjust_axis","datum_transform","transformer","coords","transformedArray","NaN","checkProj","oProj","proj4","fromProj","toProj","coord","single","I","O","mgrs","bbox","UTMtoLL","decode","left","bottom","right","top","ll","accuracy","utm","seasting","easting","snorthing","northing","zoneNumber","zoneLetter","setParm","get100kSetForZone","setColumn","floor","setRow","column","row","parm","colOrigin","rowOrigin","colInt","rowInt","rollover","fromCharCode","getLetter100kID","get100kID","N","T","A","M","LongOriginRad","ZoneNumber","Lat","Long","LatRad","degToRad","LongRad","eccSquared","UTMEasting","UTMNorthing","round","getLetterDesignator","LLtoUTM","deg","radToDeg","rad","N1","T1","C1","R1","D","LongOrigin","mu","phi1Rad","e1","topRight","LetterDesignator","mgrsString","testChar","hunK","sb","east100k","curCol","eastingValue","rewindMarker","getEastingFromChar","north100k","curRow","northingValue","getNorthingFromChar","getMinNorthing","remainder","accuracyBonus","sepEastingString","sepNorthingString","sep","sepEasting","sepNorthing","Point","fromMGRS","mgrsStr","toMGRS","C08","en","sphi","cphi","arg","pj_mlfn","pj_enfn","ml0","delta_lon","sin_phi","cos_phi","al","als","cs","tq","ml","acos","pj_inv_mlfn","tan_phi","d","ds","f","temp","asin","log1py","hypot","pp","B","cos_2B","h1","h2","arg_r","arg_i","hr2","hi2","sin_arg_r","cos_arg_r","sinh_arg_i","sinh","cosh_arg_i","cosh","hr","hi1","hr1","hi","cgb","cbg","utg","gtu","np","Qn","gatg","Zb","clens","Ce","Cn","sin_Cn","cos_Cn","sin_Ce","cos_Ce","asinhy","tmp","clens_cmplx","adjust_zone","etmerc","dependsOn","esinp","rc","phic0","ratexp","K","srat","gauss","sinc0","cosc0","R2","sinc","cosc","cosl","rho","coslat0","sinlat0","cons","ms1","X0","ssfn_","cosX0","sinX0","sinX","cosX","rh","sinlat","coslat","dlon","ce","Chi","phit","eccen","phy0","lambda0","sinPhy0","semiMajorAxis","flattening","e2","R","b0","k1","k2","k3","Sa1","Sa2","S","rotI","rotB","lambda","phy","prevPhy","iteration","no_off","no_rot","bl","fl","gl","t0","dl","t1","t2","el","hl","jl","pl","dlon12","dlon10","gamma0","uc","us","vs","ql","sl","tl","vl","ul","POSITIVE_INFINITY","qp","sp","tp","vp","sin1","cos1","ts1","sin2","cos2","ms2","ts2","ts0","f0","rh1","theta","s45","s90","fi0","alfa","uq","u0","n0","s0","ro0","ad","gfi","u","deltav","eps","ro","czech","fi1","e0","e3","e0fn","e1fn","e2fn","e3fn","mlfn","lam","nl","gN","asq","cl","dd","ml1","phi1","imlfn","nl1","rl1","tl1","dsq","adjust_lat","mode","S_POLE","N_POLE","EQUIT","OBLIQ","qsfnz","mmf","apa","APA","authset","rq","xmf","ymf","sinb1","cosb1","sinph0","cosph0","coslam","sinlam","sinb","cosb","cCe","sCe","ab","cosz","sinz","beta","authlat","sin_po","cos_po","qs1","qs2","t3","qs0","ns0","qs","phi1z","asinz","eccnts","sin_p14","cos_p14","infinity_dist","coslon","iqsfnz","dlat","tanphi","mln","mlnp","ma","B_re","B_im","C_re","C_im","delta_lat","d_phi","d_lambda","d_phi_n","d_psi","th_n_im1","th_re","th_im","th_n_re","th_n_im","z_re","z_im","z_n_im1","delta_x","z_n_re","z_n_im","iterations","num_re","num_im","den_re","den_im","den2","d_psi_n","C_y","C_x","V","delta_theta","ml2","sinth","costh","gsq","msq","xx","yy","xys","c1","c2","c3","a1","m1","th1","sin_p12","cos_p12","Mlp","Ml","Nl1","Nl","psi","Az","G","H","GH","Hs","kp","cos_c","s2","s3","s4","cosAz","Ee","F","sinpsi","FACE_ENUM","AREA_ENUM","qsc_fwd_equat_face_theta","area","qsc_shift_lon_origin","slon","face","one_minus_f","one_minus_f_squared","xy","sinlon","nu","cosmu","tannu","tantheta","invert_sign","xa","lp","COEFS_X","COEFS_Y","poly3_val","coefs","NODES","f_df","max_err","iters","upd","newton_rapshon","poly3_der","defaultDatum","Proj","common","version","tmerc","sterea","stere","somerc","omerc","lcc","krovak","cass","laea","aea","gnom","cea","eqc","poly","nzmg","mill","sinu","moll","eqdc","vandg","aeqd","ortho","qsc","robin","geocent","consoleLogger","baseLogger","Logger","concreteLogger","logger","bool","_len4","_key4","lvl","debugOnly","moduleName","EventEmitter","observers","events","cloned","_cloned","defer","rej","promise","reject","makeString","copy","getLastOfPath","Empty","cleanKey","canNotTraverseDeeper","setPath","_getLastOfPath","getPath","_getLastOfPath3","getPathWithDefaults","defaultData","deepExtend","overwrite","prop","regexEscape","_entityMap","escape","ResourceStore","_EventEmitter","keySeparator","silent","addNamespaces","emit","resources","addResource","deep","pack","removeNamespaces","getResource","compatibilityAPI","postProcessor","processors","addPostProcessor","handle","translator","processor","Translator","resolved","nsSeparator","overloadTranslationOptionHandler","_this$extractFromKey","extractFromKey","namespace","appendNamespaceToCIMode","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","copy$$1","newKeyToUse","deepKey","translate","extendTranslation","usedDefault","isValidLookup","pluralResolver","getSuffix","updateMissing","lngs","fallbackLngs","languageUtils","getFallbackCodes","saveMissingTo","toResolveHierarchy","missingKeyHandler","saveMissing","needsPluralHandling","saveMissingPlurals","getPluralFormsOfKey","appendNamespaceToMissingKey","parseMissingKeyHandler","_this3","usedLng","usedNS","skipInterpolation","defaultVariables","nest","reset","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","found","_this4","extracted","fallbackNS","needsContextHandling","utils","pluralSuffix","possibleKey","finalKey","finalKeys","addLookupKeys","contextSeparator","returnNull","returnEmptyString","resourceStore","capitalize","LanguageUtil","whitelist","formatLanguageCode","specialCases","lowerCaseLng","cleanCode","load","nonExplicitWhitelist","getLanguagePartFromCode","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","isWhitelisted","fc","sets","nr","_rulesPluralsTypes","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","createRules","rules","numbers","plurals","PluralResolver","rule","getRule","idx","noAbs","simplifyPluralSuffix","returnSuffix","prepend","compatibilityJSON","Interpolator","escapeValue","iOpts","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","maxReplaces","resetRegExp","regexpStr","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","nestingRegexp","replaces","regexSafe","val","handleFormat","missingInterpolationHandler","lastIndex","_temp","clonedOptions","handleHasOptions","inheritedOptions","optionsString","Connector","queue","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","loaded","errors","_name$split","_name$split2","addResourceBundle","_getLastOfPath2","pushPath","what","remove","fcName","tried","wait","read","queueLoad","loadOne","prepareLoading","_this5","_name$split3","_name$split4","fallbackValue","isUpdate","initImmediate","preload","pluralSeparator","partialBundledLanguages","tDescription","transformOptions","i18next","I18n","modules","external","isClone","createClassOnDemand","ClassOrObject","lu","languageDetector","detection","storeApi","_this2$store","deferred","changeLanguage","append","setLng","cacheUserLanguage","loadResources","detect","fixedT","_this$translator","_this$translator2","exists","_this6","_this7","preloaded","newLngs","_this8","mergedOptions","membersToCopy","Function","pointX","Geometry","point2","point1","arrayLikeToArray","propagate","Target","hasListener","propIsEnumerable","toObject","test1","test2","test3","letter","shouldUseNative","_arrayWithHoles","_nonIterableRest","symbolObservablePonyfill","each","addQueryString","queryString","ajax","queryStringParams","XMLHttpRequest","ActiveXObject","open","crossDomain","setRequestHeader","withCredentials","overrideMimeType","customHeaders","onreadystatechange","readyState","responseText","loadPath","addPath","allowMultiLoading","parsePayload","Backend","loadUrl","xhr","status","main","default","ReactReduxContext","batch","nullListeners","notify","createListenerCollection","first","clear","prev","Subscription","parentSub","handleChangeWrapper","addNestedSub","trySubscribe","notifyNestedSubs","onStateChange","Boolean","tryUnsubscribe","contextValue","useMemo","subscription","previousState","Context","useLayoutEffect","newBatch","for","w","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","E","refs","updater","isReactComponent","forceUpdate","isPureReactComponent","J","current","L","__self","__source","$$typeof","_owner","Q","keyPrefix","U","W","aa","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Children","toArray","only","Fragment","Profiler","PureComponent","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","_context","createFactory","createRef","lazy","_ctor","_status","_result","useCallback","useDebugValue","useImperativeHandle","useReducer","useRef","onError","da","ea","fa","ha","ia","ja","la","na","oa","currentTarget","ka","pa","qa","ra","sa","extractEvents","eventTypes","ta","phasedRegistrationNames","registrationName","va","wa","dependencies","ya","za","Aa","Ba","Ca","stateNode","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","Ua","Va","xlinkHref","Wa","Xa","Sa","Ta","Ra","removeAttribute","setAttribute","setAttributeNS","Ya","Za","$a","bb","db","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","pb","qb","tag","_debugOwner","_debugSource","fileName","lineNumber","return","rb","nodeName","xb","_valueTracker","setValue","stopTracking","tb","yb","checked","zb","defaultChecked","_wrapperState","initialChecked","Ab","initialValue","controlled","Bb","Cb","Db","Eb","ownerDocument","activeElement","Gb","Fb","Hb","selected","defaultSelected","disabled","Ib","dangerouslySetInnerHTML","Jb","Kb","Lb","textContent","Mb","Nb","Ob","Pb","Qb","MSApp","execUnsafeLocalFunction","namespaceURI","innerHTML","firstChild","removeChild","appendChild","Rb","lastChild","nodeType","nodeValue","Sb","Tb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","animation","transition","Xb","Yb","$b","ac","bc","WeakMap","Map","cc","dc","alternate","effectTag","ec","memoizedState","dehydrated","hc","sibling","gc","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","mc","nc","srcElement","correspondingUseElement","oc","pc","qc","topLevelType","nativeEvent","targetInst","ancestors","eventSystemFlags","sc","containerInfo","tc","has","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","container","Lc","delete","pointerId","Mc","Nc","Pc","unstable_runWithPriority","priority","hydrate","Qc","Rc","Sc","Tc","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","bubbled","captured","eventPriority","bd","cd","unstable_UserBlockingPriority","ed","fd","gd","hd","id","Oc","jd","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","kd","ld","md","setProperty","nd","menuitem","br","col","embed","img","keygen","link","param","track","wbr","od","pd","is","qd","rd","sd","td","body","ud","vd","nextSibling","xd","HTMLIFrameElement","contentWindow","yd","contentEditable","Dd","Ed","Fd","autoFocus","Gd","__html","Hd","Id","Jd","Kd","previousSibling","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","ae","be","Interface","isDefaultPrevented","defaultPrevented","returnValue","ee","eventPool","fe","destructor","de","getPooled","stopPropagation","cancelBubble","persist","eventPhase","bubbles","cancelable","timeStamp","now","isTrusted","ge","he","ie","je","ke","documentMode","le","me","ne","oe","beforeInput","compositionEnd","compositionStart","compositionUpdate","pe","qe","keyCode","detail","se","ve","locale","which","te","altKey","ue","we","color","date","datetime","email","month","password","range","tel","time","week","xe","ye","change","ze","Ae","Be","De","Fe","Ge","detachEvent","He","Ie","attachEvent","Je","Ke","Le","Me","_isInputEventSupported","Ne","view","Oe","Alt","Control","Meta","Shift","Pe","getModifierState","Qe","Re","Se","Te","Ue","Ve","screenX","screenY","clientX","clientY","pageX","pageY","buttons","relatedTarget","fromElement","toElement","movementX","movementY","We","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Xe","mouseEnter","mouseLeave","pointerEnter","pointerLeave","Ye","defaultView","parentWindow","$e","af","bf","cf","df","select","ef","ff","gf","hf","jf","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","kf","onSelect","lf","animationName","elapsedTime","pseudoElement","mf","clipboardData","nf","of","charCode","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","qf","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","sf","dataTransfer","tf","touches","targetTouches","changedTouches","uf","vf","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","Cf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Df","Ef","Ff","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","responders","tg","ug","updateQueue","baseState","baseQueue","shared","effects","vg","wg","suspenseConfig","xg","yg","zg","ca","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","shouldComponentUpdate","Lg","Mg","UNSAFE_componentWillReceiveProps","Ng","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","elementType","Ug","implementation","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","documentElement","tagName","eh","fh","gh","hh","memoizedProps","revealOrder","ih","responder","jh","kh","lh","mh","nh","oh","ph","qh","sh","th","uh","vh","wh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","xh","yh","zh","Ah","destroy","deps","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","ei","fi","UNSAFE_componentWillUpdate","componentWillUpdate","gi","pendingContext","ni","pi","qi","retryTime","ji","fallback","unstable_avoidThisFallback","ki","li","isBackwards","rendering","renderingStartTime","tail","tailExpiration","tailMode","mi","ri","si","wasMultiple","multiple","onclick","size","createElementNS","createTextNode","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","WeakSet","Set","Ci","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","focus","Ki","Li","Di","Mi","Ni","Oi","Pi","Qi","_reactRootContainer","Ri","Si","Ti","display","Ui","Vi","then","Wi","Xi","Yi","Zi","$i","componentDidCatch","aj","componentStack","Rj","bj","ceil","cj","dj","kj","lj","mj","nj","oj","qj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","timeout","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","Tj","wd","contains","compareDocumentPosition","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","vb","Uj","Vj","Wj","hidden","ob","Xj","unstable_observedBits","Zj","pendingChildren","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hasAttribute","hk","jk","kk","unmount","querySelectorAll","form","Lj","lk","Events","findFiberByHostInstance","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","performance","cancelAnimationFrame","requestAnimationFrame","port2","port1","onmessage","postMessage","sortIndex","startTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","ReactPropTypes","symbol","any","instanceOf","objectOf","oneOf","oneOfType","shape","checkPropTypes","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","originalModule","webpackPolyfill","tagRE","parseTag","empty","pushTextNode","html","ignoreWhitespace","byTag","inComponent","isOpen","isComment","nextChar","attrRE","voidElements","expectingValueAfterEquals","attrs","buff","doc","attrString","rootEl","__esModule","_interopRequireWildcard","_cookie2","_interopRequireDefault","_querystring2","_localStorage2","_navigator2","_htmlTag2","_path2","_subdomain2","Browser","detectors","lookupQuerystring","lookupCookie","lookupLocalStorage","caches","excludeCacheFor","checkWhitelist","lookupFromUrlIndex","lookupFromPathIndex","addDetector","detector","detectionOrder","detected","detectorName","lookup","cleanedLng","cacheName","cookie","minutes","domain","expires","setTime","getTime","toGMTString","nameEQ","cookieMinutes","cookieDomain","pos","hasLocalStorageSupport","localStorage","setItem","removeItem","getItem","userLanguage","htmlTag","lookupFromSubdomainIndex","replaceClassName","origClass","classToRemove","Transition","_React$Component","initialStatus","appear","isMounting","enter","appearStatus","in","unmountOnExit","mountOnEnter","nextCallback","prevState","updateStatus","nextStatus","cancelNextCallback","getTimeouts","exit","mounting","performEnter","performExit","appearing","nodeRef","ReactDOM","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","onExit","onExiting","onExited","cancel","setNextCallback","active","doesNotHaveTimeoutOrListener","addEndListener","maybeNextCallback","childProps","TransitionGroupContext","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","removeClass","classes","classList","baseVal","CSSTransition","appliedClasses","_this$resolveArgument","resolveArguments","removeClasses","addClass","_this$resolveArgument2","_this$resolveArgument3","getClassNames","classNames","isStringClassNames","baseClassName","doneClassName","phase","hasClass","_addClass","_this$appliedClasses$","opt_smooth","series","View"],"mappings":"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","file":"static/js/30.ada3d7d6.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * @module ol/math\n */\n/**\n * Takes a number and clamps it to within the provided bounds.\n * @param {number} value The input number.\n * @param {number} min The minimum value to return.\n * @param {number} max The maximum value to return.\n * @return {number} The input number if it is within bounds, or the nearest\n * number within the bounds.\n */\nexport function clamp(value, min, max) {\n return Math.min(Math.max(value, min), max);\n}\n/**\n * Return the hyperbolic cosine of a given number. The method will use the\n * native `Math.cosh` function if it is available, otherwise the hyperbolic\n * cosine will be calculated via the reference implementation of the Mozilla\n * developer network.\n *\n * @param {number} x X.\n * @return {number} Hyperbolic cosine of x.\n */\nexport var cosh = (function () {\n // Wrapped in a iife, to save the overhead of checking for the native\n // implementation on every invocation.\n var cosh;\n if ('cosh' in Math) {\n // The environment supports the native Math.cosh function, use it…\n cosh = Math.cosh;\n }\n else {\n // … else, use the reference implementation of MDN:\n cosh = function (x) {\n var y = /** @type {Math} */ (Math).exp(x);\n return (y + 1 / y) / 2;\n };\n }\n return cosh;\n})();\n/**\n * Return the base 2 logarithm of a given number. The method will use the\n * native `Math.log2` function if it is available, otherwise the base 2\n * logarithm will be calculated via the reference implementation of the\n * Mozilla developer network.\n *\n * @param {number} x X.\n * @return {number} Base 2 logarithm of x.\n */\nexport var log2 = (function () {\n // Wrapped in a iife, to save the overhead of checking for the native\n // implementation on every invocation.\n var log2;\n if ('log2' in Math) {\n // The environment supports the native Math.log2 function, use it…\n log2 = Math.log2;\n }\n else {\n // … else, use the reference implementation of MDN:\n log2 = function (x) {\n return Math.log(x) * Math.LOG2E;\n };\n }\n return log2;\n})();\n/**\n * Returns the square of the closest distance between the point (x, y) and the\n * line segment (x1, y1) to (x2, y2).\n * @param {number} x X.\n * @param {number} y Y.\n * @param {number} x1 X1.\n * @param {number} y1 Y1.\n * @param {number} x2 X2.\n * @param {number} y2 Y2.\n * @return {number} Squared distance.\n */\nexport function squaredSegmentDistance(x, y, x1, y1, x2, y2) {\n var dx = x2 - x1;\n var dy = y2 - y1;\n if (dx !== 0 || dy !== 0) {\n var t = ((x - x1) * dx + (y - y1) * dy) / (dx * dx + dy * dy);\n if (t > 1) {\n x1 = x2;\n y1 = y2;\n }\n else if (t > 0) {\n x1 += dx * t;\n y1 += dy * t;\n }\n }\n return squaredDistance(x, y, x1, y1);\n}\n/**\n * Returns the square of the distance between the points (x1, y1) and (x2, y2).\n * @param {number} x1 X1.\n * @param {number} y1 Y1.\n * @param {number} x2 X2.\n * @param {number} y2 Y2.\n * @return {number} Squared distance.\n */\nexport function squaredDistance(x1, y1, x2, y2) {\n var dx = x2 - x1;\n var dy = y2 - y1;\n return dx * dx + dy * dy;\n}\n/**\n * Solves system of linear equations using Gaussian elimination method.\n *\n * @param {Array>} mat Augmented matrix (n x n + 1 column)\n * in row-major order.\n * @return {Array} The resulting vector.\n */\nexport function solveLinearSystem(mat) {\n var n = mat.length;\n for (var i = 0; i < n; i++) {\n // Find max in the i-th column (ignoring i - 1 first rows)\n var maxRow = i;\n var maxEl = Math.abs(mat[i][i]);\n for (var r = i + 1; r < n; r++) {\n var absValue = Math.abs(mat[r][i]);\n if (absValue > maxEl) {\n maxEl = absValue;\n maxRow = r;\n }\n }\n if (maxEl === 0) {\n return null; // matrix is singular\n }\n // Swap max row with i-th (current) row\n var tmp = mat[maxRow];\n mat[maxRow] = mat[i];\n mat[i] = tmp;\n // Subtract the i-th row to make all the remaining rows 0 in the i-th column\n for (var j = i + 1; j < n; j++) {\n var coef = -mat[j][i] / mat[i][i];\n for (var k = i; k < n + 1; k++) {\n if (i == k) {\n mat[j][k] = 0;\n }\n else {\n mat[j][k] += coef * mat[i][k];\n }\n }\n }\n }\n // Solve Ax=b for upper triangular matrix A (mat)\n var x = new Array(n);\n for (var l = n - 1; l >= 0; l--) {\n x[l] = mat[l][n] / mat[l][l];\n for (var m = l - 1; m >= 0; m--) {\n mat[m][n] -= mat[m][l] * x[l];\n }\n }\n return x;\n}\n/**\n * Converts radians to to degrees.\n *\n * @param {number} angleInRadians Angle in radians.\n * @return {number} Angle in degrees.\n */\nexport function toDegrees(angleInRadians) {\n return (angleInRadians * 180) / Math.PI;\n}\n/**\n * Converts degrees to radians.\n *\n * @param {number} angleInDegrees Angle in degrees.\n * @return {number} Angle in radians.\n */\nexport function toRadians(angleInDegrees) {\n return (angleInDegrees * Math.PI) / 180;\n}\n/**\n * Returns the modulo of a / b, depending on the sign of b.\n *\n * @param {number} a Dividend.\n * @param {number} b Divisor.\n * @return {number} Modulo.\n */\nexport function modulo(a, b) {\n var r = a % b;\n return r * b < 0 ? r + b : r;\n}\n/**\n * Calculates the linearly interpolated value of x between a and b.\n *\n * @param {number} a Number\n * @param {number} b Number\n * @param {number} x Value to be interpolated.\n * @return {number} Interpolated value.\n */\nexport function lerp(a, b, x) {\n return a + x * (b - a);\n}\n//# sourceMappingURL=math.js.map","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(Context).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(Context).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(Context).match;\n\n return path ? matchPath(location.pathname, path) : match;\n}\n","/**\n * @module ol/extent\n */\nimport Corner from './extent/Corner.js';\nimport Relationship from './extent/Relationship.js';\nimport { assert } from './asserts.js';\n/**\n * An array of numbers representing an extent: `[minx, miny, maxx, maxy]`.\n * @typedef {Array} Extent\n * @api\n */\n/**\n * Build an extent that includes all given coordinates.\n *\n * @param {Array} coordinates Coordinates.\n * @return {Extent} Bounding extent.\n * @api\n */\nexport function boundingExtent(coordinates) {\n var extent = createEmpty();\n for (var i = 0, ii = coordinates.length; i < ii; ++i) {\n extendCoordinate(extent, coordinates[i]);\n }\n return extent;\n}\n/**\n * @param {Array} xs Xs.\n * @param {Array} ys Ys.\n * @param {Extent=} opt_extent Destination extent.\n * @private\n * @return {Extent} Extent.\n */\nfunction _boundingExtentXYs(xs, ys, opt_extent) {\n var minX = Math.min.apply(null, xs);\n var minY = Math.min.apply(null, ys);\n var maxX = Math.max.apply(null, xs);\n var maxY = Math.max.apply(null, ys);\n return createOrUpdate(minX, minY, maxX, maxY, opt_extent);\n}\n/**\n * Return extent increased by the provided value.\n * @param {Extent} extent Extent.\n * @param {number} value The amount by which the extent should be buffered.\n * @param {Extent=} opt_extent Extent.\n * @return {Extent} Extent.\n * @api\n */\nexport function buffer(extent, value, opt_extent) {\n if (opt_extent) {\n opt_extent[0] = extent[0] - value;\n opt_extent[1] = extent[1] - value;\n opt_extent[2] = extent[2] + value;\n opt_extent[3] = extent[3] + value;\n return opt_extent;\n }\n else {\n return [\n extent[0] - value,\n extent[1] - value,\n extent[2] + value,\n extent[3] + value,\n ];\n }\n}\n/**\n * Creates a clone of an extent.\n *\n * @param {Extent} extent Extent to clone.\n * @param {Extent=} opt_extent Extent.\n * @return {Extent} The clone.\n */\nexport function clone(extent, opt_extent) {\n if (opt_extent) {\n opt_extent[0] = extent[0];\n opt_extent[1] = extent[1];\n opt_extent[2] = extent[2];\n opt_extent[3] = extent[3];\n return opt_extent;\n }\n else {\n return extent.slice();\n }\n}\n/**\n * @param {Extent} extent Extent.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {number} Closest squared distance.\n */\nexport function closestSquaredDistanceXY(extent, x, y) {\n var dx, dy;\n if (x < extent[0]) {\n dx = extent[0] - x;\n }\n else if (extent[2] < x) {\n dx = x - extent[2];\n }\n else {\n dx = 0;\n }\n if (y < extent[1]) {\n dy = extent[1] - y;\n }\n else if (extent[3] < y) {\n dy = y - extent[3];\n }\n else {\n dy = 0;\n }\n return dx * dx + dy * dy;\n}\n/**\n * Check if the passed coordinate is contained or on the edge of the extent.\n *\n * @param {Extent} extent Extent.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @return {boolean} The coordinate is contained in the extent.\n * @api\n */\nexport function containsCoordinate(extent, coordinate) {\n return containsXY(extent, coordinate[0], coordinate[1]);\n}\n/**\n * Check if one extent contains another.\n *\n * An extent is deemed contained if it lies completely within the other extent,\n * including if they share one or more edges.\n *\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {boolean} The second extent is contained by or on the edge of the\n * first.\n * @api\n */\nexport function containsExtent(extent1, extent2) {\n return (extent1[0] <= extent2[0] &&\n extent2[2] <= extent1[2] &&\n extent1[1] <= extent2[1] &&\n extent2[3] <= extent1[3]);\n}\n/**\n * Check if the passed coordinate is contained or on the edge of the extent.\n *\n * @param {Extent} extent Extent.\n * @param {number} x X coordinate.\n * @param {number} y Y coordinate.\n * @return {boolean} The x, y values are contained in the extent.\n * @api\n */\nexport function containsXY(extent, x, y) {\n return extent[0] <= x && x <= extent[2] && extent[1] <= y && y <= extent[3];\n}\n/**\n * Get the relationship between a coordinate and extent.\n * @param {Extent} extent The extent.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate The coordinate.\n * @return {import(\"./extent/Relationship.js\").default} The relationship (bitwise compare with\n * import(\"./extent/Relationship.js\").Relationship).\n */\nexport function coordinateRelationship(extent, coordinate) {\n var minX = extent[0];\n var minY = extent[1];\n var maxX = extent[2];\n var maxY = extent[3];\n var x = coordinate[0];\n var y = coordinate[1];\n var relationship = Relationship.UNKNOWN;\n if (x < minX) {\n relationship = relationship | Relationship.LEFT;\n }\n else if (x > maxX) {\n relationship = relationship | Relationship.RIGHT;\n }\n if (y < minY) {\n relationship = relationship | Relationship.BELOW;\n }\n else if (y > maxY) {\n relationship = relationship | Relationship.ABOVE;\n }\n if (relationship === Relationship.UNKNOWN) {\n relationship = Relationship.INTERSECTING;\n }\n return relationship;\n}\n/**\n * Create an empty extent.\n * @return {Extent} Empty extent.\n * @api\n */\nexport function createEmpty() {\n return [Infinity, Infinity, -Infinity, -Infinity];\n}\n/**\n * Create a new extent or update the provided extent.\n * @param {number} minX Minimum X.\n * @param {number} minY Minimum Y.\n * @param {number} maxX Maximum X.\n * @param {number} maxY Maximum Y.\n * @param {Extent=} opt_extent Destination extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdate(minX, minY, maxX, maxY, opt_extent) {\n if (opt_extent) {\n opt_extent[0] = minX;\n opt_extent[1] = minY;\n opt_extent[2] = maxX;\n opt_extent[3] = maxY;\n return opt_extent;\n }\n else {\n return [minX, minY, maxX, maxY];\n }\n}\n/**\n * Create a new empty extent or make the provided one empty.\n * @param {Extent=} opt_extent Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateEmpty(opt_extent) {\n return createOrUpdate(Infinity, Infinity, -Infinity, -Infinity, opt_extent);\n}\n/**\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {Extent=} opt_extent Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromCoordinate(coordinate, opt_extent) {\n var x = coordinate[0];\n var y = coordinate[1];\n return createOrUpdate(x, y, x, y, opt_extent);\n}\n/**\n * @param {Array} coordinates Coordinates.\n * @param {Extent=} opt_extent Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromCoordinates(coordinates, opt_extent) {\n var extent = createOrUpdateEmpty(opt_extent);\n return extendCoordinates(extent, coordinates);\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {Extent=} opt_extent Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromFlatCoordinates(flatCoordinates, offset, end, stride, opt_extent) {\n var extent = createOrUpdateEmpty(opt_extent);\n return extendFlatCoordinates(extent, flatCoordinates, offset, end, stride);\n}\n/**\n * @param {Array>} rings Rings.\n * @param {Extent=} opt_extent Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromRings(rings, opt_extent) {\n var extent = createOrUpdateEmpty(opt_extent);\n return extendRings(extent, rings);\n}\n/**\n * Determine if two extents are equivalent.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {boolean} The two extents are equivalent.\n * @api\n */\nexport function equals(extent1, extent2) {\n return (extent1[0] == extent2[0] &&\n extent1[2] == extent2[2] &&\n extent1[1] == extent2[1] &&\n extent1[3] == extent2[3]);\n}\n/**\n * Determine if two extents are approximately equivalent.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @param {number} tolerance Tolerance in extent coordinate units.\n * @return {boolean} The two extents differ by less than the tolerance.\n */\nexport function approximatelyEquals(extent1, extent2, tolerance) {\n return (Math.abs(extent1[0] - extent2[0]) < tolerance &&\n Math.abs(extent1[2] - extent2[2]) < tolerance &&\n Math.abs(extent1[1] - extent2[1]) < tolerance &&\n Math.abs(extent1[3] - extent2[3]) < tolerance);\n}\n/**\n * Modify an extent to include another extent.\n * @param {Extent} extent1 The extent to be modified.\n * @param {Extent} extent2 The extent that will be included in the first.\n * @return {Extent} A reference to the first (extended) extent.\n * @api\n */\nexport function extend(extent1, extent2) {\n if (extent2[0] < extent1[0]) {\n extent1[0] = extent2[0];\n }\n if (extent2[2] > extent1[2]) {\n extent1[2] = extent2[2];\n }\n if (extent2[1] < extent1[1]) {\n extent1[1] = extent2[1];\n }\n if (extent2[3] > extent1[3]) {\n extent1[3] = extent2[3];\n }\n return extent1;\n}\n/**\n * @param {Extent} extent Extent.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n */\nexport function extendCoordinate(extent, coordinate) {\n if (coordinate[0] < extent[0]) {\n extent[0] = coordinate[0];\n }\n if (coordinate[0] > extent[2]) {\n extent[2] = coordinate[0];\n }\n if (coordinate[1] < extent[1]) {\n extent[1] = coordinate[1];\n }\n if (coordinate[1] > extent[3]) {\n extent[3] = coordinate[1];\n }\n}\n/**\n * @param {Extent} extent Extent.\n * @param {Array} coordinates Coordinates.\n * @return {Extent} Extent.\n */\nexport function extendCoordinates(extent, coordinates) {\n for (var i = 0, ii = coordinates.length; i < ii; ++i) {\n extendCoordinate(extent, coordinates[i]);\n }\n return extent;\n}\n/**\n * @param {Extent} extent Extent.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @return {Extent} Extent.\n */\nexport function extendFlatCoordinates(extent, flatCoordinates, offset, end, stride) {\n for (; offset < end; offset += stride) {\n extendXY(extent, flatCoordinates[offset], flatCoordinates[offset + 1]);\n }\n return extent;\n}\n/**\n * @param {Extent} extent Extent.\n * @param {Array>} rings Rings.\n * @return {Extent} Extent.\n */\nexport function extendRings(extent, rings) {\n for (var i = 0, ii = rings.length; i < ii; ++i) {\n extendCoordinates(extent, rings[i]);\n }\n return extent;\n}\n/**\n * @param {Extent} extent Extent.\n * @param {number} x X.\n * @param {number} y Y.\n */\nexport function extendXY(extent, x, y) {\n extent[0] = Math.min(extent[0], x);\n extent[1] = Math.min(extent[1], y);\n extent[2] = Math.max(extent[2], x);\n extent[3] = Math.max(extent[3], y);\n}\n/**\n * This function calls `callback` for each corner of the extent. If the\n * callback returns a truthy value the function returns that value\n * immediately. Otherwise the function returns `false`.\n * @param {Extent} extent Extent.\n * @param {function(import(\"./coordinate.js\").Coordinate): S} callback Callback.\n * @return {S|boolean} Value.\n * @template S\n */\nexport function forEachCorner(extent, callback) {\n var val;\n val = callback(getBottomLeft(extent));\n if (val) {\n return val;\n }\n val = callback(getBottomRight(extent));\n if (val) {\n return val;\n }\n val = callback(getTopRight(extent));\n if (val) {\n return val;\n }\n val = callback(getTopLeft(extent));\n if (val) {\n return val;\n }\n return false;\n}\n/**\n * Get the size of an extent.\n * @param {Extent} extent Extent.\n * @return {number} Area.\n * @api\n */\nexport function getArea(extent) {\n var area = 0;\n if (!isEmpty(extent)) {\n area = getWidth(extent) * getHeight(extent);\n }\n return area;\n}\n/**\n * Get the bottom left coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Bottom left coordinate.\n * @api\n */\nexport function getBottomLeft(extent) {\n return [extent[0], extent[1]];\n}\n/**\n * Get the bottom right coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Bottom right coordinate.\n * @api\n */\nexport function getBottomRight(extent) {\n return [extent[2], extent[1]];\n}\n/**\n * Get the center coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Center.\n * @api\n */\nexport function getCenter(extent) {\n return [(extent[0] + extent[2]) / 2, (extent[1] + extent[3]) / 2];\n}\n/**\n * Get a corner coordinate of an extent.\n * @param {Extent} extent Extent.\n * @param {import(\"./extent/Corner.js\").default} corner Corner.\n * @return {import(\"./coordinate.js\").Coordinate} Corner coordinate.\n */\nexport function getCorner(extent, corner) {\n var coordinate;\n if (corner === Corner.BOTTOM_LEFT) {\n coordinate = getBottomLeft(extent);\n }\n else if (corner === Corner.BOTTOM_RIGHT) {\n coordinate = getBottomRight(extent);\n }\n else if (corner === Corner.TOP_LEFT) {\n coordinate = getTopLeft(extent);\n }\n else if (corner === Corner.TOP_RIGHT) {\n coordinate = getTopRight(extent);\n }\n else {\n assert(false, 13); // Invalid corner\n }\n return coordinate;\n}\n/**\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {number} Enlarged area.\n */\nexport function getEnlargedArea(extent1, extent2) {\n var minX = Math.min(extent1[0], extent2[0]);\n var minY = Math.min(extent1[1], extent2[1]);\n var maxX = Math.max(extent1[2], extent2[2]);\n var maxY = Math.max(extent1[3], extent2[3]);\n return (maxX - minX) * (maxY - minY);\n}\n/**\n * @param {import(\"./coordinate.js\").Coordinate} center Center.\n * @param {number} resolution Resolution.\n * @param {number} rotation Rotation.\n * @param {import(\"./size.js\").Size} size Size.\n * @param {Extent=} opt_extent Destination extent.\n * @return {Extent} Extent.\n */\nexport function getForViewAndSize(center, resolution, rotation, size, opt_extent) {\n var dx = (resolution * size[0]) / 2;\n var dy = (resolution * size[1]) / 2;\n var cosRotation = Math.cos(rotation);\n var sinRotation = Math.sin(rotation);\n var xCos = dx * cosRotation;\n var xSin = dx * sinRotation;\n var yCos = dy * cosRotation;\n var ySin = dy * sinRotation;\n var x = center[0];\n var y = center[1];\n var x0 = x - xCos + ySin;\n var x1 = x - xCos - ySin;\n var x2 = x + xCos - ySin;\n var x3 = x + xCos + ySin;\n var y0 = y - xSin - yCos;\n var y1 = y - xSin + yCos;\n var y2 = y + xSin + yCos;\n var y3 = y + xSin - yCos;\n return createOrUpdate(Math.min(x0, x1, x2, x3), Math.min(y0, y1, y2, y3), Math.max(x0, x1, x2, x3), Math.max(y0, y1, y2, y3), opt_extent);\n}\n/**\n * Get the height of an extent.\n * @param {Extent} extent Extent.\n * @return {number} Height.\n * @api\n */\nexport function getHeight(extent) {\n return extent[3] - extent[1];\n}\n/**\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {number} Intersection area.\n */\nexport function getIntersectionArea(extent1, extent2) {\n var intersection = getIntersection(extent1, extent2);\n return getArea(intersection);\n}\n/**\n * Get the intersection of two extents.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @param {Extent=} opt_extent Optional extent to populate with intersection.\n * @return {Extent} Intersecting extent.\n * @api\n */\nexport function getIntersection(extent1, extent2, opt_extent) {\n var intersection = opt_extent ? opt_extent : createEmpty();\n if (intersects(extent1, extent2)) {\n if (extent1[0] > extent2[0]) {\n intersection[0] = extent1[0];\n }\n else {\n intersection[0] = extent2[0];\n }\n if (extent1[1] > extent2[1]) {\n intersection[1] = extent1[1];\n }\n else {\n intersection[1] = extent2[1];\n }\n if (extent1[2] < extent2[2]) {\n intersection[2] = extent1[2];\n }\n else {\n intersection[2] = extent2[2];\n }\n if (extent1[3] < extent2[3]) {\n intersection[3] = extent1[3];\n }\n else {\n intersection[3] = extent2[3];\n }\n }\n else {\n createOrUpdateEmpty(intersection);\n }\n return intersection;\n}\n/**\n * @param {Extent} extent Extent.\n * @return {number} Margin.\n */\nexport function getMargin(extent) {\n return getWidth(extent) + getHeight(extent);\n}\n/**\n * Get the size (width, height) of an extent.\n * @param {Extent} extent The extent.\n * @return {import(\"./size.js\").Size} The extent size.\n * @api\n */\nexport function getSize(extent) {\n return [extent[2] - extent[0], extent[3] - extent[1]];\n}\n/**\n * Get the top left coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Top left coordinate.\n * @api\n */\nexport function getTopLeft(extent) {\n return [extent[0], extent[3]];\n}\n/**\n * Get the top right coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Top right coordinate.\n * @api\n */\nexport function getTopRight(extent) {\n return [extent[2], extent[3]];\n}\n/**\n * Get the width of an extent.\n * @param {Extent} extent Extent.\n * @return {number} Width.\n * @api\n */\nexport function getWidth(extent) {\n return extent[2] - extent[0];\n}\n/**\n * Determine if one extent intersects another.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent.\n * @return {boolean} The two extents intersect.\n * @api\n */\nexport function intersects(extent1, extent2) {\n return (extent1[0] <= extent2[2] &&\n extent1[2] >= extent2[0] &&\n extent1[1] <= extent2[3] &&\n extent1[3] >= extent2[1]);\n}\n/**\n * Determine if an extent is empty.\n * @param {Extent} extent Extent.\n * @return {boolean} Is empty.\n * @api\n */\nexport function isEmpty(extent) {\n return extent[2] < extent[0] || extent[3] < extent[1];\n}\n/**\n * @param {Extent} extent Extent.\n * @param {Extent=} opt_extent Extent.\n * @return {Extent} Extent.\n */\nexport function returnOrUpdate(extent, opt_extent) {\n if (opt_extent) {\n opt_extent[0] = extent[0];\n opt_extent[1] = extent[1];\n opt_extent[2] = extent[2];\n opt_extent[3] = extent[3];\n return opt_extent;\n }\n else {\n return extent;\n }\n}\n/**\n * @param {Extent} extent Extent.\n * @param {number} value Value.\n */\nexport function scaleFromCenter(extent, value) {\n var deltaX = ((extent[2] - extent[0]) / 2) * (value - 1);\n var deltaY = ((extent[3] - extent[1]) / 2) * (value - 1);\n extent[0] -= deltaX;\n extent[2] += deltaX;\n extent[1] -= deltaY;\n extent[3] += deltaY;\n}\n/**\n * Determine if the segment between two coordinates intersects (crosses,\n * touches, or is contained by) the provided extent.\n * @param {Extent} extent The extent.\n * @param {import(\"./coordinate.js\").Coordinate} start Segment start coordinate.\n * @param {import(\"./coordinate.js\").Coordinate} end Segment end coordinate.\n * @return {boolean} The segment intersects the extent.\n */\nexport function intersectsSegment(extent, start, end) {\n var intersects = false;\n var startRel = coordinateRelationship(extent, start);\n var endRel = coordinateRelationship(extent, end);\n if (startRel === Relationship.INTERSECTING ||\n endRel === Relationship.INTERSECTING) {\n intersects = true;\n }\n else {\n var minX = extent[0];\n var minY = extent[1];\n var maxX = extent[2];\n var maxY = extent[3];\n var startX = start[0];\n var startY = start[1];\n var endX = end[0];\n var endY = end[1];\n var slope = (endY - startY) / (endX - startX);\n var x = void 0, y = void 0;\n if (!!(endRel & Relationship.ABOVE) && !(startRel & Relationship.ABOVE)) {\n // potentially intersects top\n x = endX - (endY - maxY) / slope;\n intersects = x >= minX && x <= maxX;\n }\n if (!intersects &&\n !!(endRel & Relationship.RIGHT) &&\n !(startRel & Relationship.RIGHT)) {\n // potentially intersects right\n y = endY - (endX - maxX) * slope;\n intersects = y >= minY && y <= maxY;\n }\n if (!intersects &&\n !!(endRel & Relationship.BELOW) &&\n !(startRel & Relationship.BELOW)) {\n // potentially intersects bottom\n x = endX - (endY - minY) / slope;\n intersects = x >= minX && x <= maxX;\n }\n if (!intersects &&\n !!(endRel & Relationship.LEFT) &&\n !(startRel & Relationship.LEFT)) {\n // potentially intersects left\n y = endY - (endX - minX) * slope;\n intersects = y >= minY && y <= maxY;\n }\n }\n return intersects;\n}\n/**\n * Apply a transform function to the extent.\n * @param {Extent} extent Extent.\n * @param {import(\"./proj.js\").TransformFunction} transformFn Transform function.\n * Called with `[minX, minY, maxX, maxY]` extent coordinates.\n * @param {Extent=} opt_extent Destination extent.\n * @param {number=} opt_stops Number of stops per side used for the transform.\n * By default only the corners are used.\n * @return {Extent} Extent.\n * @api\n */\nexport function applyTransform(extent, transformFn, opt_extent, opt_stops) {\n var coordinates = [];\n if (opt_stops > 1) {\n var width = extent[2] - extent[0];\n var height = extent[3] - extent[1];\n for (var i = 0; i < opt_stops; ++i) {\n coordinates.push(extent[0] + (width * i) / opt_stops, extent[1], extent[2], extent[1] + (height * i) / opt_stops, extent[2] - (width * i) / opt_stops, extent[3], extent[0], extent[3] - (height * i) / opt_stops);\n }\n }\n else {\n coordinates = [\n extent[0],\n extent[1],\n extent[2],\n extent[1],\n extent[2],\n extent[3],\n extent[0],\n extent[3],\n ];\n }\n transformFn(coordinates, coordinates, 2);\n var xs = [];\n var ys = [];\n for (var i = 0, l = coordinates.length; i < l; i += 2) {\n xs.push(coordinates[i]);\n ys.push(coordinates[i + 1]);\n }\n return _boundingExtentXYs(xs, ys, opt_extent);\n}\n/**\n * Modifies the provided extent in-place to be within the real world\n * extent.\n *\n * @param {Extent} extent Extent.\n * @param {import(\"./proj/Projection.js\").default} projection Projection\n * @return {Extent} The extent within the real world extent.\n */\nexport function wrapX(extent, projection) {\n var projectionExtent = projection.getExtent();\n var center = getCenter(extent);\n if (projection.canWrapX() &&\n (center[0] < projectionExtent[0] || center[0] >= projectionExtent[2])) {\n var worldWidth = getWidth(projectionExtent);\n var worldsAway = Math.floor((center[0] - projectionExtent[0]) / worldWidth);\n var offset = worldsAway * worldWidth;\n extent[0] -= offset;\n extent[2] -= offset;\n }\n return extent;\n}\n//# sourceMappingURL=extent.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/proj/epsg3857\n */\nimport Projection from './Projection.js';\nimport Units from './Units.js';\nimport { cosh } from '../math.js';\n/**\n * Radius of WGS84 sphere\n *\n * @const\n * @type {number}\n */\nexport var RADIUS = 6378137;\n/**\n * @const\n * @type {number}\n */\nexport var HALF_SIZE = Math.PI * RADIUS;\n/**\n * @const\n * @type {import(\"../extent.js\").Extent}\n */\nexport var EXTENT = [-HALF_SIZE, -HALF_SIZE, HALF_SIZE, HALF_SIZE];\n/**\n * @const\n * @type {import(\"../extent.js\").Extent}\n */\nexport var WORLD_EXTENT = [-180, -85, 180, 85];\n/**\n * Maximum safe value in y direction\n * @const\n * @type {number}\n */\nexport var MAX_SAFE_Y = RADIUS * Math.log(Math.tan(Math.PI / 2));\n/**\n * @classdesc\n * Projection object for web/spherical Mercator (EPSG:3857).\n */\nvar EPSG3857Projection = /** @class */ (function (_super) {\n __extends(EPSG3857Projection, _super);\n /**\n * @param {string} code Code.\n */\n function EPSG3857Projection(code) {\n return _super.call(this, {\n code: code,\n units: Units.METERS,\n extent: EXTENT,\n global: true,\n worldExtent: WORLD_EXTENT,\n getPointResolution: function (resolution, point) {\n return resolution / cosh(point[1] / RADIUS);\n },\n }) || this;\n }\n return EPSG3857Projection;\n}(Projection));\n/**\n * Projections equal to EPSG:3857.\n *\n * @const\n * @type {Array}\n */\nexport var PROJECTIONS = [\n new EPSG3857Projection('EPSG:3857'),\n new EPSG3857Projection('EPSG:102100'),\n new EPSG3857Projection('EPSG:102113'),\n new EPSG3857Projection('EPSG:900913'),\n new EPSG3857Projection('http://www.opengis.net/gml/srs/epsg.xml#3857'),\n];\n/**\n * Transformation from EPSG:4326 to EPSG:3857.\n *\n * @param {Array} input Input array of coordinate values.\n * @param {Array=} opt_output Output array of coordinate values.\n * @param {number=} opt_dimension Dimension (default is `2`).\n * @return {Array} Output array of coordinate values.\n */\nexport function fromEPSG4326(input, opt_output, opt_dimension) {\n var length = input.length;\n var dimension = opt_dimension > 1 ? opt_dimension : 2;\n var output = opt_output;\n if (output === undefined) {\n if (dimension > 2) {\n // preserve values beyond second dimension\n output = input.slice();\n }\n else {\n output = new Array(length);\n }\n }\n for (var i = 0; i < length; i += dimension) {\n output[i] = (HALF_SIZE * input[i]) / 180;\n var y = RADIUS * Math.log(Math.tan((Math.PI * (+input[i + 1] + 90)) / 360));\n if (y > MAX_SAFE_Y) {\n y = MAX_SAFE_Y;\n }\n else if (y < -MAX_SAFE_Y) {\n y = -MAX_SAFE_Y;\n }\n output[i + 1] = y;\n }\n return output;\n}\n/**\n * Transformation from EPSG:3857 to EPSG:4326.\n *\n * @param {Array} input Input array of coordinate values.\n * @param {Array=} opt_output Output array of coordinate values.\n * @param {number=} opt_dimension Dimension (default is `2`).\n * @return {Array} Output array of coordinate values.\n */\nexport function toEPSG4326(input, opt_output, opt_dimension) {\n var length = input.length;\n var dimension = opt_dimension > 1 ? opt_dimension : 2;\n var output = opt_output;\n if (output === undefined) {\n if (dimension > 2) {\n // preserve values beyond second dimension\n output = input.slice();\n }\n else {\n output = new Array(length);\n }\n }\n for (var i = 0; i < length; i += dimension) {\n output[i] = (180 * input[i]) / HALF_SIZE;\n output[i + 1] =\n (360 * Math.atan(Math.exp(input[i + 1] / RADIUS))) / Math.PI - 90;\n }\n return output;\n}\n//# sourceMappingURL=epsg3857.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/proj/epsg4326\n */\nimport Projection from './Projection.js';\nimport Units from './Units.js';\n/**\n * Semi-major radius of the WGS84 ellipsoid.\n *\n * @const\n * @type {number}\n */\nexport var RADIUS = 6378137;\n/**\n * Extent of the EPSG:4326 projection which is the whole world.\n *\n * @const\n * @type {import(\"../extent.js\").Extent}\n */\nexport var EXTENT = [-180, -90, 180, 90];\n/**\n * @const\n * @type {number}\n */\nexport var METERS_PER_UNIT = (Math.PI * RADIUS) / 180;\n/**\n * @classdesc\n * Projection object for WGS84 geographic coordinates (EPSG:4326).\n *\n * Note that OpenLayers does not strictly comply with the EPSG definition.\n * The EPSG registry defines 4326 as a CRS for Latitude,Longitude (y,x).\n * OpenLayers treats EPSG:4326 as a pseudo-projection, with x,y coordinates.\n */\nvar EPSG4326Projection = /** @class */ (function (_super) {\n __extends(EPSG4326Projection, _super);\n /**\n * @param {string} code Code.\n * @param {string=} opt_axisOrientation Axis orientation.\n */\n function EPSG4326Projection(code, opt_axisOrientation) {\n return _super.call(this, {\n code: code,\n units: Units.DEGREES,\n extent: EXTENT,\n axisOrientation: opt_axisOrientation,\n global: true,\n metersPerUnit: METERS_PER_UNIT,\n worldExtent: EXTENT,\n }) || this;\n }\n return EPSG4326Projection;\n}(Projection));\n/**\n * Projections equal to EPSG:4326.\n *\n * @const\n * @type {Array}\n */\nexport var PROJECTIONS = [\n new EPSG4326Projection('CRS:84'),\n new EPSG4326Projection('EPSG:4326', 'neu'),\n new EPSG4326Projection('urn:ogc:def:crs:OGC:1.3:CRS84'),\n new EPSG4326Projection('urn:ogc:def:crs:OGC:2:84'),\n new EPSG4326Projection('http://www.opengis.net/gml/srs/epsg.xml#4326', 'neu'),\n];\n//# sourceMappingURL=epsg4326.js.map","/**\n * @module ol/proj/projections\n */\n/**\n * @type {Object}\n */\nvar cache = {};\n/**\n * Clear the projections cache.\n */\nexport function clear() {\n cache = {};\n}\n/**\n * Get a cached projection by code.\n * @param {string} code The code for the projection.\n * @return {import(\"./Projection.js\").default} The projection (if cached).\n */\nexport function get(code) {\n return (cache[code] ||\n cache[code.replace(/urn:(x-)?ogc:def:crs:EPSG:(.*:)?(\\w+)$/, 'EPSG:$3')] ||\n null);\n}\n/**\n * Add a projection to the cache.\n * @param {string} code The projection code.\n * @param {import(\"./Projection.js\").default} projection The projection to cache.\n */\nexport function add(code, projection) {\n cache[code] = projection;\n}\n//# sourceMappingURL=projections.js.map","/**\n * @module ol/proj\n */\n/**\n * The ol/proj module stores:\n * * a list of {@link module:ol/proj/Projection}\n * objects, one for each projection supported by the application\n * * a list of transform functions needed to convert coordinates in one projection\n * into another.\n *\n * The static functions are the methods used to maintain these.\n * Each transform function can handle not only simple coordinate pairs, but also\n * large arrays of coordinates such as vector geometries.\n *\n * When loaded, the library adds projection objects for EPSG:4326 (WGS84\n * geographic coordinates) and EPSG:3857 (Web or Spherical Mercator, as used\n * for example by Bing Maps or OpenStreetMap), together with the relevant\n * transform functions.\n *\n * Additional transforms may be added by using the http://proj4js.org/\n * library (version 2.2 or later). You can use the full build supplied by\n * Proj4js, or create a custom build to support those projections you need; see\n * the Proj4js website for how to do this. You also need the Proj4js definitions\n * for the required projections. These definitions can be obtained from\n * https://epsg.io/, and are a JS function, so can be loaded in a script\n * tag (as in the examples) or pasted into your application.\n *\n * After all required projection definitions are added to proj4's registry (by\n * using `proj4.defs()`), simply call `register(proj4)` from the `ol/proj/proj4`\n * package. Existing transforms are not changed by this function. See\n * examples/wms-image-custom-proj for an example of this.\n *\n * Additional projection definitions can be registered with `proj4.defs()` any\n * time. Just make sure to call `register(proj4)` again; for example, with user-supplied data where you don't\n * know in advance what projections are needed, you can initially load minimal\n * support and then load whichever are requested.\n *\n * Note that Proj4js does not support projection extents. If you want to add\n * one for creating default tile grids, you can add it after the Projection\n * object has been created with `setExtent`, for example,\n * `get('EPSG:1234').setExtent(extent)`.\n *\n * In addition to Proj4js support, any transform functions can be added with\n * {@link module:ol/proj~addCoordinateTransforms}. To use this, you must first create\n * a {@link module:ol/proj/Projection} object for the new projection and add it with\n * {@link module:ol/proj~addProjection}. You can then add the forward and inverse\n * functions with {@link module:ol/proj~addCoordinateTransforms}. See\n * examples/wms-custom-proj for an example of this.\n *\n * Note that if no transforms are needed and you only need to define the\n * projection, just add a {@link module:ol/proj/Projection} with\n * {@link module:ol/proj~addProjection}. See examples/wms-no-proj for an example of\n * this.\n */\nimport Projection from './proj/Projection.js';\nimport Units, { METERS_PER_UNIT } from './proj/Units.js';\nimport { PROJECTIONS as EPSG3857_PROJECTIONS, fromEPSG4326, toEPSG4326, } from './proj/epsg3857.js';\nimport { PROJECTIONS as EPSG4326_PROJECTIONS } from './proj/epsg4326.js';\nimport { add as addProj, clear as clearProj, get as getProj, } from './proj/projections.js';\nimport { add as addTransformFunc, clear as clearTransformFuncs, get as getTransformFunc, } from './proj/transforms.js';\nimport { applyTransform, getWidth } from './extent.js';\nimport { clamp, modulo } from './math.js';\nimport { getDistance } from './sphere.js';\nimport { getWorldsAway } from './coordinate.js';\n/**\n * A projection as {@link module:ol/proj/Projection}, SRS identifier\n * string or undefined.\n * @typedef {Projection|string|undefined} ProjectionLike\n * @api\n */\n/**\n * A transform function accepts an array of input coordinate values, an optional\n * output array, and an optional dimension (default should be 2). The function\n * transforms the input coordinate values, populates the output array, and\n * returns the output array.\n *\n * @typedef {function(Array, Array=, number=): Array} TransformFunction\n * @api\n */\nexport { METERS_PER_UNIT };\nexport { Projection };\n/**\n * @param {Array} input Input coordinate array.\n * @param {Array=} opt_output Output array of coordinate values.\n * @param {number=} opt_dimension Dimension.\n * @return {Array} Output coordinate array (new array, same coordinate\n * values).\n */\nexport function cloneTransform(input, opt_output, opt_dimension) {\n var output;\n if (opt_output !== undefined) {\n for (var i = 0, ii = input.length; i < ii; ++i) {\n opt_output[i] = input[i];\n }\n output = opt_output;\n }\n else {\n output = input.slice();\n }\n return output;\n}\n/**\n * @param {Array} input Input coordinate array.\n * @param {Array=} opt_output Output array of coordinate values.\n * @param {number=} opt_dimension Dimension.\n * @return {Array} Input coordinate array (same array as input).\n */\nexport function identityTransform(input, opt_output, opt_dimension) {\n if (opt_output !== undefined && input !== opt_output) {\n for (var i = 0, ii = input.length; i < ii; ++i) {\n opt_output[i] = input[i];\n }\n input = opt_output;\n }\n return input;\n}\n/**\n * Add a Projection object to the list of supported projections that can be\n * looked up by their code.\n *\n * @param {Projection} projection Projection instance.\n * @api\n */\nexport function addProjection(projection) {\n addProj(projection.getCode(), projection);\n addTransformFunc(projection, projection, cloneTransform);\n}\n/**\n * @param {Array} projections Projections.\n */\nexport function addProjections(projections) {\n projections.forEach(addProjection);\n}\n/**\n * Fetches a Projection object for the code specified.\n *\n * @param {ProjectionLike} projectionLike Either a code string which is\n * a combination of authority and identifier such as \"EPSG:4326\", or an\n * existing projection object, or undefined.\n * @return {Projection} Projection object, or null if not in list.\n * @api\n */\nexport function get(projectionLike) {\n return typeof projectionLike === 'string'\n ? getProj(/** @type {string} */ (projectionLike))\n : /** @type {Projection} */ (projectionLike) || null;\n}\n/**\n * Get the resolution of the point in degrees or distance units.\n * For projections with degrees as the unit this will simply return the\n * provided resolution. For other projections the point resolution is\n * by default estimated by transforming the 'point' pixel to EPSG:4326,\n * measuring its width and height on the normal sphere,\n * and taking the average of the width and height.\n * A custom function can be provided for a specific projection, either\n * by setting the `getPointResolution` option in the\n * {@link module:ol/proj/Projection~Projection} constructor or by using\n * {@link module:ol/proj/Projection~Projection#setGetPointResolution} to change an existing\n * projection object.\n * @param {ProjectionLike} projection The projection.\n * @param {number} resolution Nominal resolution in projection units.\n * @param {import(\"./coordinate.js\").Coordinate} point Point to find adjusted resolution at.\n * @param {import(\"./proj/Units.js\").default=} opt_units Units to get the point resolution in.\n * Default is the projection's units.\n * @return {number} Point resolution.\n * @api\n */\nexport function getPointResolution(projection, resolution, point, opt_units) {\n projection = get(projection);\n var pointResolution;\n var getter = projection.getPointResolutionFunc();\n if (getter) {\n pointResolution = getter(resolution, point);\n if (opt_units && opt_units !== projection.getUnits()) {\n var metersPerUnit = projection.getMetersPerUnit();\n if (metersPerUnit) {\n pointResolution =\n (pointResolution * metersPerUnit) / METERS_PER_UNIT[opt_units];\n }\n }\n }\n else {\n var units = projection.getUnits();\n if ((units == Units.DEGREES && !opt_units) || opt_units == Units.DEGREES) {\n pointResolution = resolution;\n }\n else {\n // Estimate point resolution by transforming the center pixel to EPSG:4326,\n // measuring its width and height on the normal sphere, and taking the\n // average of the width and height.\n var toEPSG4326_1 = getTransformFromProjections(projection, get('EPSG:4326'));\n if (toEPSG4326_1 === identityTransform && units !== Units.DEGREES) {\n // no transform is available\n pointResolution = resolution * projection.getMetersPerUnit();\n }\n else {\n var vertices = [\n point[0] - resolution / 2,\n point[1],\n point[0] + resolution / 2,\n point[1],\n point[0],\n point[1] - resolution / 2,\n point[0],\n point[1] + resolution / 2,\n ];\n vertices = toEPSG4326_1(vertices, vertices, 2);\n var width = getDistance(vertices.slice(0, 2), vertices.slice(2, 4));\n var height = getDistance(vertices.slice(4, 6), vertices.slice(6, 8));\n pointResolution = (width + height) / 2;\n }\n var metersPerUnit = opt_units\n ? METERS_PER_UNIT[opt_units]\n : projection.getMetersPerUnit();\n if (metersPerUnit !== undefined) {\n pointResolution /= metersPerUnit;\n }\n }\n }\n return pointResolution;\n}\n/**\n * Registers transformation functions that don't alter coordinates. Those allow\n * to transform between projections with equal meaning.\n *\n * @param {Array} projections Projections.\n * @api\n */\nexport function addEquivalentProjections(projections) {\n addProjections(projections);\n projections.forEach(function (source) {\n projections.forEach(function (destination) {\n if (source !== destination) {\n addTransformFunc(source, destination, cloneTransform);\n }\n });\n });\n}\n/**\n * Registers transformation functions to convert coordinates in any projection\n * in projection1 to any projection in projection2.\n *\n * @param {Array} projections1 Projections with equal\n * meaning.\n * @param {Array} projections2 Projections with equal\n * meaning.\n * @param {TransformFunction} forwardTransform Transformation from any\n * projection in projection1 to any projection in projection2.\n * @param {TransformFunction} inverseTransform Transform from any projection\n * in projection2 to any projection in projection1..\n */\nexport function addEquivalentTransforms(projections1, projections2, forwardTransform, inverseTransform) {\n projections1.forEach(function (projection1) {\n projections2.forEach(function (projection2) {\n addTransformFunc(projection1, projection2, forwardTransform);\n addTransformFunc(projection2, projection1, inverseTransform);\n });\n });\n}\n/**\n * Clear all cached projections and transforms.\n */\nexport function clearAllProjections() {\n clearProj();\n clearTransformFuncs();\n}\n/**\n * @param {Projection|string|undefined} projection Projection.\n * @param {string} defaultCode Default code.\n * @return {Projection} Projection.\n */\nexport function createProjection(projection, defaultCode) {\n if (!projection) {\n return get(defaultCode);\n }\n else if (typeof projection === 'string') {\n return get(projection);\n }\n else {\n return /** @type {Projection} */ (projection);\n }\n}\n/**\n * Creates a {@link module:ol/proj~TransformFunction} from a simple 2D coordinate transform\n * function.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} coordTransform Coordinate\n * transform.\n * @return {TransformFunction} Transform function.\n */\nexport function createTransformFromCoordinateTransform(coordTransform) {\n return (\n /**\n * @param {Array} input Input.\n * @param {Array=} opt_output Output.\n * @param {number=} opt_dimension Dimension.\n * @return {Array} Output.\n */\n function (input, opt_output, opt_dimension) {\n var length = input.length;\n var dimension = opt_dimension !== undefined ? opt_dimension : 2;\n var output = opt_output !== undefined ? opt_output : new Array(length);\n for (var i = 0; i < length; i += dimension) {\n var point = coordTransform([input[i], input[i + 1]]);\n output[i] = point[0];\n output[i + 1] = point[1];\n for (var j = dimension - 1; j >= 2; --j) {\n output[i + j] = input[i + j];\n }\n }\n return output;\n });\n}\n/**\n * Registers coordinate transform functions to convert coordinates between the\n * source projection and the destination projection.\n * The forward and inverse functions convert coordinate pairs; this function\n * converts these into the functions used internally which also handle\n * extents and coordinate arrays.\n *\n * @param {ProjectionLike} source Source projection.\n * @param {ProjectionLike} destination Destination projection.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} forward The forward transform\n * function (that is, from the source projection to the destination\n * projection) that takes a {@link module:ol/coordinate~Coordinate} as argument and returns\n * the transformed {@link module:ol/coordinate~Coordinate}.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} inverse The inverse transform\n * function (that is, from the destination projection to the source\n * projection) that takes a {@link module:ol/coordinate~Coordinate} as argument and returns\n * the transformed {@link module:ol/coordinate~Coordinate}.\n * @api\n */\nexport function addCoordinateTransforms(source, destination, forward, inverse) {\n var sourceProj = get(source);\n var destProj = get(destination);\n addTransformFunc(sourceProj, destProj, createTransformFromCoordinateTransform(forward));\n addTransformFunc(destProj, sourceProj, createTransformFromCoordinateTransform(inverse));\n}\n/**\n * Transforms a coordinate from longitude/latitude to a different projection.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate as longitude and latitude, i.e.\n * an array with longitude as 1st and latitude as 2nd element.\n * @param {ProjectionLike=} opt_projection Target projection. The\n * default is Web Mercator, i.e. 'EPSG:3857'.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate projected to the target projection.\n * @api\n */\nexport function fromLonLat(coordinate, opt_projection) {\n return transform(coordinate, 'EPSG:4326', opt_projection !== undefined ? opt_projection : 'EPSG:3857');\n}\n/**\n * Transforms a coordinate to longitude/latitude.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Projected coordinate.\n * @param {ProjectionLike=} opt_projection Projection of the coordinate.\n * The default is Web Mercator, i.e. 'EPSG:3857'.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate as longitude and latitude, i.e. an array\n * with longitude as 1st and latitude as 2nd element.\n * @api\n */\nexport function toLonLat(coordinate, opt_projection) {\n var lonLat = transform(coordinate, opt_projection !== undefined ? opt_projection : 'EPSG:3857', 'EPSG:4326');\n var lon = lonLat[0];\n if (lon < -180 || lon > 180) {\n lonLat[0] = modulo(lon + 180, 360) - 180;\n }\n return lonLat;\n}\n/**\n * Checks if two projections are the same, that is every coordinate in one\n * projection does represent the same geographic point as the same coordinate in\n * the other projection.\n *\n * @param {Projection} projection1 Projection 1.\n * @param {Projection} projection2 Projection 2.\n * @return {boolean} Equivalent.\n * @api\n */\nexport function equivalent(projection1, projection2) {\n if (projection1 === projection2) {\n return true;\n }\n var equalUnits = projection1.getUnits() === projection2.getUnits();\n if (projection1.getCode() === projection2.getCode()) {\n return equalUnits;\n }\n else {\n var transformFunc = getTransformFromProjections(projection1, projection2);\n return transformFunc === cloneTransform && equalUnits;\n }\n}\n/**\n * Searches in the list of transform functions for the function for converting\n * coordinates from the source projection to the destination projection.\n *\n * @param {Projection} sourceProjection Source Projection object.\n * @param {Projection} destinationProjection Destination Projection\n * object.\n * @return {TransformFunction} Transform function.\n */\nexport function getTransformFromProjections(sourceProjection, destinationProjection) {\n var sourceCode = sourceProjection.getCode();\n var destinationCode = destinationProjection.getCode();\n var transformFunc = getTransformFunc(sourceCode, destinationCode);\n if (!transformFunc) {\n transformFunc = identityTransform;\n }\n return transformFunc;\n}\n/**\n * Given the projection-like objects, searches for a transformation\n * function to convert a coordinates array from the source projection to the\n * destination projection.\n *\n * @param {ProjectionLike} source Source.\n * @param {ProjectionLike} destination Destination.\n * @return {TransformFunction} Transform function.\n * @api\n */\nexport function getTransform(source, destination) {\n var sourceProjection = get(source);\n var destinationProjection = get(destination);\n return getTransformFromProjections(sourceProjection, destinationProjection);\n}\n/**\n * Transforms a coordinate from source projection to destination projection.\n * This returns a new coordinate (and does not modify the original).\n *\n * See {@link module:ol/proj~transformExtent} for extent transformation.\n * See the transform method of {@link module:ol/geom/Geometry~Geometry} and its\n * subclasses for geometry transforms.\n *\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {ProjectionLike} source Source projection-like.\n * @param {ProjectionLike} destination Destination projection-like.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate.\n * @api\n */\nexport function transform(coordinate, source, destination) {\n var transformFunc = getTransform(source, destination);\n return transformFunc(coordinate, undefined, coordinate.length);\n}\n/**\n * Transforms an extent from source projection to destination projection. This\n * returns a new extent (and does not modify the original).\n *\n * @param {import(\"./extent.js\").Extent} extent The extent to transform.\n * @param {ProjectionLike} source Source projection-like.\n * @param {ProjectionLike} destination Destination projection-like.\n * @param {number=} opt_stops Number of stops per side used for the transform.\n * By default only the corners are used.\n * @return {import(\"./extent.js\").Extent} The transformed extent.\n * @api\n */\nexport function transformExtent(extent, source, destination, opt_stops) {\n var transformFunc = getTransform(source, destination);\n return applyTransform(extent, transformFunc, undefined, opt_stops);\n}\n/**\n * Transforms the given point to the destination projection.\n *\n * @param {import(\"./coordinate.js\").Coordinate} point Point.\n * @param {Projection} sourceProjection Source projection.\n * @param {Projection} destinationProjection Destination projection.\n * @return {import(\"./coordinate.js\").Coordinate} Point.\n */\nexport function transformWithProjections(point, sourceProjection, destinationProjection) {\n var transformFunc = getTransformFromProjections(sourceProjection, destinationProjection);\n return transformFunc(point);\n}\n/**\n * @type {?Projection}\n */\nvar userProjection = null;\n/**\n * Set the projection for coordinates supplied from and returned by API methods.\n * Note that this method is not yet a part of the stable API. Support for user\n * projections is not yet complete and should be considered experimental.\n * @param {ProjectionLike} projection The user projection.\n */\nexport function setUserProjection(projection) {\n userProjection = get(projection);\n}\n/**\n * Clear the user projection if set. Note that this method is not yet a part of\n * the stable API. Support for user projections is not yet complete and should\n * be considered experimental.\n */\nexport function clearUserProjection() {\n userProjection = null;\n}\n/**\n * Get the projection for coordinates supplied from and returned by API methods.\n * Note that this method is not yet a part of the stable API. Support for user\n * projections is not yet complete and should be considered experimental.\n * @returns {?Projection} The user projection (or null if not set).\n */\nexport function getUserProjection() {\n return userProjection;\n}\n/**\n * Use geographic coordinates (WGS-84 datum) in API methods. Note that this\n * method is not yet a part of the stable API. Support for user projections is\n * not yet complete and should be considered experimental.\n */\nexport function useGeographic() {\n setUserProjection('EPSG:4326');\n}\n/**\n * Return a coordinate transformed into the user projection. If no user projection\n * is set, the original coordinate is returned.\n * @param {Array} coordinate Input coordinate.\n * @param {ProjectionLike} sourceProjection The input coordinate projection.\n * @returns {Array} The input coordinate in the user projection.\n */\nexport function toUserCoordinate(coordinate, sourceProjection) {\n if (!userProjection) {\n return coordinate;\n }\n return transform(coordinate, sourceProjection, userProjection);\n}\n/**\n * Return a coordinate transformed from the user projection. If no user projection\n * is set, the original coordinate is returned.\n * @param {Array} coordinate Input coordinate.\n * @param {ProjectionLike} destProjection The destination projection.\n * @returns {Array} The input coordinate transformed.\n */\nexport function fromUserCoordinate(coordinate, destProjection) {\n if (!userProjection) {\n return coordinate;\n }\n return transform(coordinate, userProjection, destProjection);\n}\n/**\n * Return an extent transformed into the user projection. If no user projection\n * is set, the original extent is returned.\n * @param {import(\"./extent.js\").Extent} extent Input extent.\n * @param {ProjectionLike} sourceProjection The input extent projection.\n * @returns {import(\"./extent.js\").Extent} The input extent in the user projection.\n */\nexport function toUserExtent(extent, sourceProjection) {\n if (!userProjection) {\n return extent;\n }\n return transformExtent(extent, sourceProjection, userProjection);\n}\n/**\n * Return an extent transformed from the user projection. If no user projection\n * is set, the original extent is returned.\n * @param {import(\"./extent.js\").Extent} extent Input extent.\n * @param {ProjectionLike} destProjection The destination projection.\n * @returns {import(\"./extent.js\").Extent} The input extent transformed.\n */\nexport function fromUserExtent(extent, destProjection) {\n if (!userProjection) {\n return extent;\n }\n return transformExtent(extent, userProjection, destProjection);\n}\n/**\n * Creates a safe coordinate transform function from a coordinate transform function.\n * \"Safe\" means that it can handle wrapping of x-coordinates for global projections,\n * and that coordinates exceeding the source projection validity extent's range will be\n * clamped to the validity range.\n * @param {Projection} sourceProj Source projection.\n * @param {Projection} destProj Destination projection.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} transform Transform function (source to destiation).\n * @return {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} Safe transform function (source to destiation).\n */\nexport function createSafeCoordinateTransform(sourceProj, destProj, transform) {\n return function (coord) {\n var sourceX = coord[0];\n var sourceY = coord[1];\n var transformed, worldsAway;\n if (sourceProj.canWrapX()) {\n var sourceExtent = sourceProj.getExtent();\n var sourceExtentWidth = getWidth(sourceExtent);\n worldsAway = getWorldsAway(coord, sourceProj, sourceExtentWidth);\n if (worldsAway) {\n // Move x to the real world\n sourceX = sourceX - worldsAway * sourceExtentWidth;\n }\n sourceX = clamp(sourceX, sourceExtent[0], sourceExtent[2]);\n sourceY = clamp(sourceY, sourceExtent[1], sourceExtent[3]);\n transformed = transform([sourceX, sourceY]);\n }\n else {\n transformed = transform(coord);\n }\n if (worldsAway && destProj.canWrapX()) {\n // Move transformed coordinate back to the offset world\n transformed[0] += worldsAway * getWidth(destProj.getExtent());\n }\n return transformed;\n };\n}\n/**\n * Add transforms to and from EPSG:4326 and EPSG:3857. This function is called\n * by when this module is executed and should only need to be called again after\n * `clearAllProjections()` is called (e.g. in tests).\n */\nexport function addCommon() {\n // Add transformations that don't alter coordinates to convert within set of\n // projections with equal meaning.\n addEquivalentProjections(EPSG3857_PROJECTIONS);\n addEquivalentProjections(EPSG4326_PROJECTIONS);\n // Add transformations to convert EPSG:4326 like coordinates to EPSG:3857 like\n // coordinates and back.\n addEquivalentTransforms(EPSG4326_PROJECTIONS, EPSG3857_PROJECTIONS, fromEPSG4326, toEPSG4326);\n}\naddCommon();\n//# sourceMappingURL=proj.js.map","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","/**\n * @module ol/geom/GeometryType\n */\n/**\n * The geometry type. One of `'Point'`, `'LineString'`, `'LinearRing'`,\n * `'Polygon'`, `'MultiPoint'`, `'MultiLineString'`, `'MultiPolygon'`,\n * `'GeometryCollection'`, `'Circle'`.\n * @enum {string}\n */\nexport default {\n POINT: 'Point',\n LINE_STRING: 'LineString',\n LINEAR_RING: 'LinearRing',\n POLYGON: 'Polygon',\n MULTI_POINT: 'MultiPoint',\n MULTI_LINE_STRING: 'MultiLineString',\n MULTI_POLYGON: 'MultiPolygon',\n GEOMETRY_COLLECTION: 'GeometryCollection',\n CIRCLE: 'Circle',\n};\n//# sourceMappingURL=GeometryType.js.map","/**\n * @module ol/util\n */\n/**\n * @return {?} Any return.\n */\nexport function abstract() {\n return /** @type {?} */ ((function () {\n throw new Error('Unimplemented abstract method.');\n })());\n}\n/**\n * Counter for getUid.\n * @type {number}\n * @private\n */\nvar uidCounter_ = 0;\n/**\n * Gets a unique ID for an object. This mutates the object so that further calls\n * with the same object as a parameter returns the same value. Unique IDs are generated\n * as a strictly increasing sequence. Adapted from goog.getUid.\n *\n * @param {Object} obj The object to get the unique ID for.\n * @return {string} The unique ID for the object.\n * @api\n */\nexport function getUid(obj) {\n return obj.ol_uid || (obj.ol_uid = String(++uidCounter_));\n}\n/**\n * OpenLayers version.\n * @type {string}\n */\nexport var VERSION = '6.5.0';\n//# sourceMappingURL=util.js.map","/**\n * @module ol/obj\n */\n/**\n * Polyfill for Object.assign(). Assigns enumerable and own properties from\n * one or more source objects to a target object.\n * See https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign.\n *\n * @param {!Object} target The target object.\n * @param {...Object} var_sources The source object(s).\n * @return {!Object} The modified target object.\n */\nexport var assign = typeof Object.assign === 'function'\n ? Object.assign\n : function (target, var_sources) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n var output = Object(target);\n for (var i = 1, ii = arguments.length; i < ii; ++i) {\n var source = arguments[i];\n if (source !== undefined && source !== null) {\n for (var key in source) {\n if (source.hasOwnProperty(key)) {\n output[key] = source[key];\n }\n }\n }\n }\n return output;\n };\n/**\n * Removes all properties from an object.\n * @param {Object} object The object to clear.\n */\nexport function clear(object) {\n for (var property in object) {\n delete object[property];\n }\n}\n/**\n * Polyfill for Object.values(). Get an array of property values from an object.\n * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/values\n *\n * @param {!Object} object The object from which to get the values.\n * @return {!Array} The property values.\n * @template K,V\n */\nexport var getValues = typeof Object.values === 'function'\n ? Object.values\n : function (object) {\n var values = [];\n for (var property in object) {\n values.push(object[property]);\n }\n return values;\n };\n/**\n * Determine if an object has any properties.\n * @param {Object} object The object to check.\n * @return {boolean} The object is empty.\n */\nexport function isEmpty(object) {\n var property;\n for (property in object) {\n return false;\n }\n return !property;\n}\n//# sourceMappingURL=obj.js.map","/**\n * @module ol/proj/Units\n */\n/**\n * Projection units: `'degrees'`, `'ft'`, `'m'`, `'pixels'`, `'tile-pixels'` or\n * `'us-ft'`.\n * @enum {string}\n */\nvar Units = {\n /**\n * Degrees\n * @api\n */\n DEGREES: 'degrees',\n /**\n * Feet\n * @api\n */\n FEET: 'ft',\n /**\n * Meters\n * @api\n */\n METERS: 'm',\n /**\n * Pixels\n * @api\n */\n PIXELS: 'pixels',\n /**\n * Tile Pixels\n * @api\n */\n TILE_PIXELS: 'tile-pixels',\n /**\n * US Feet\n * @api\n */\n USFEET: 'us-ft',\n};\n/**\n * Meters per unit lookup table.\n * @const\n * @type {Object}\n * @api\n */\nexport var METERS_PER_UNIT = {};\n// use the radius of the Normal sphere\nMETERS_PER_UNIT[Units.DEGREES] = (2 * Math.PI * 6370997) / 360;\nMETERS_PER_UNIT[Units.FEET] = 0.3048;\nMETERS_PER_UNIT[Units.METERS] = 1;\nMETERS_PER_UNIT[Units.USFEET] = 1200 / 3937;\nexport default Units;\n//# sourceMappingURL=Units.js.map","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","/**\n * @module ol/extent/Relationship\n */\n/**\n * Relationship to an extent.\n * @enum {number}\n */\nexport default {\n UNKNOWN: 0,\n INTERSECTING: 1,\n ABOVE: 2,\n RIGHT: 4,\n BELOW: 8,\n LEFT: 16,\n};\n//# sourceMappingURL=Relationship.js.map","/**\n * @module ol/geom/GeometryLayout\n */\n/**\n * The coordinate layout for geometries, indicating whether a 3rd or 4th z ('Z')\n * or measure ('M') coordinate is available. Supported values are `'XY'`,\n * `'XYZ'`, `'XYM'`, `'XYZM'`.\n * @enum {string}\n */\nexport default {\n XY: 'XY',\n XYZ: 'XYZ',\n XYM: 'XYM',\n XYZM: 'XYZM',\n};\n//# sourceMappingURL=GeometryLayout.js.map","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\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\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","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction 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 }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\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;\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) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\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}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\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 = resolvePathname(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}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n 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 process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\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 function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // 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 */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\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 return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\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 */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || 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 + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\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 function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\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 return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction 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\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || 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 + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n 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 if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // 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(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = 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 var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = 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(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\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 function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\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 return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","/**\n * @module ol/array\n */\n/**\n * Performs a binary search on the provided sorted list and returns the index of the item if found. If it can't be found it'll return -1.\n * https://github.com/darkskyapp/binary-search\n *\n * @param {Array<*>} haystack Items to search through.\n * @param {*} needle The item to look for.\n * @param {Function=} opt_comparator Comparator function.\n * @return {number} The index of the item if found, -1 if not.\n */\nexport function binarySearch(haystack, needle, opt_comparator) {\n var mid, cmp;\n var comparator = opt_comparator || numberSafeCompareFunction;\n var low = 0;\n var high = haystack.length;\n var found = false;\n while (low < high) {\n /* Note that \"(low + high) >>> 1\" may overflow, and results in a typecast\n * to double (which gives the wrong results). */\n mid = low + ((high - low) >> 1);\n cmp = +comparator(haystack[mid], needle);\n if (cmp < 0.0) {\n /* Too low. */\n low = mid + 1;\n }\n else {\n /* Key found or too high */\n high = mid;\n found = !cmp;\n }\n }\n /* Key not found. */\n return found ? low : ~low;\n}\n/**\n * Compare function for array sort that is safe for numbers.\n * @param {*} a The first object to be compared.\n * @param {*} b The second object to be compared.\n * @return {number} A negative number, zero, or a positive number as the first\n * argument is less than, equal to, or greater than the second.\n */\nexport function numberSafeCompareFunction(a, b) {\n return a > b ? 1 : a < b ? -1 : 0;\n}\n/**\n * Whether the array contains the given object.\n * @param {Array<*>} arr The array to test for the presence of the element.\n * @param {*} obj The object for which to test.\n * @return {boolean} The object is in the array.\n */\nexport function includes(arr, obj) {\n return arr.indexOf(obj) >= 0;\n}\n/**\n * @param {Array} arr Array.\n * @param {number} target Target.\n * @param {number} direction 0 means return the nearest, > 0\n * means return the largest nearest, < 0 means return the\n * smallest nearest.\n * @return {number} Index.\n */\nexport function linearFindNearest(arr, target, direction) {\n var n = arr.length;\n if (arr[0] <= target) {\n return 0;\n }\n else if (target <= arr[n - 1]) {\n return n - 1;\n }\n else {\n var i = void 0;\n if (direction > 0) {\n for (i = 1; i < n; ++i) {\n if (arr[i] < target) {\n return i - 1;\n }\n }\n }\n else if (direction < 0) {\n for (i = 1; i < n; ++i) {\n if (arr[i] <= target) {\n return i;\n }\n }\n }\n else {\n for (i = 1; i < n; ++i) {\n if (arr[i] == target) {\n return i;\n }\n else if (arr[i] < target) {\n if (arr[i - 1] - target < target - arr[i]) {\n return i - 1;\n }\n else {\n return i;\n }\n }\n }\n }\n return n - 1;\n }\n}\n/**\n * @param {Array<*>} arr Array.\n * @param {number} begin Begin index.\n * @param {number} end End index.\n */\nexport function reverseSubArray(arr, begin, end) {\n while (begin < end) {\n var tmp = arr[begin];\n arr[begin] = arr[end];\n arr[end] = tmp;\n ++begin;\n --end;\n }\n}\n/**\n * @param {Array} arr The array to modify.\n * @param {!Array|VALUE} data The elements or arrays of elements to add to arr.\n * @template VALUE\n */\nexport function extend(arr, data) {\n var extension = Array.isArray(data) ? data : [data];\n var length = extension.length;\n for (var i = 0; i < length; i++) {\n arr[arr.length] = extension[i];\n }\n}\n/**\n * @param {Array} arr The array to modify.\n * @param {VALUE} obj The element to remove.\n * @template VALUE\n * @return {boolean} If the element was removed.\n */\nexport function remove(arr, obj) {\n var i = arr.indexOf(obj);\n var found = i > -1;\n if (found) {\n arr.splice(i, 1);\n }\n return found;\n}\n/**\n * @param {Array} arr The array to search in.\n * @param {function(VALUE, number, ?) : boolean} func The function to compare.\n * @template VALUE\n * @return {VALUE|null} The element found or null.\n */\nexport function find(arr, func) {\n var length = arr.length >>> 0;\n var value;\n for (var i = 0; i < length; i++) {\n value = arr[i];\n if (func(value, i, arr)) {\n return value;\n }\n }\n return null;\n}\n/**\n * @param {Array|Uint8ClampedArray} arr1 The first array to compare.\n * @param {Array|Uint8ClampedArray} arr2 The second array to compare.\n * @return {boolean} Whether the two arrays are equal.\n */\nexport function equals(arr1, arr2) {\n var len1 = arr1.length;\n if (len1 !== arr2.length) {\n return false;\n }\n for (var i = 0; i < len1; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Sort the passed array such that the relative order of equal elements is preverved.\n * See https://en.wikipedia.org/wiki/Sorting_algorithm#Stability for details.\n * @param {Array<*>} arr The array to sort (modifies original).\n * @param {!function(*, *): number} compareFnc Comparison function.\n * @api\n */\nexport function stableSort(arr, compareFnc) {\n var length = arr.length;\n var tmp = Array(arr.length);\n var i;\n for (i = 0; i < length; i++) {\n tmp[i] = { index: i, value: arr[i] };\n }\n tmp.sort(function (a, b) {\n return compareFnc(a.value, b.value) || a.index - b.index;\n });\n for (i = 0; i < arr.length; i++) {\n arr[i] = tmp[i].value;\n }\n}\n/**\n * @param {Array<*>} arr The array to search in.\n * @param {Function} func Comparison function.\n * @return {number} Return index.\n */\nexport function findIndex(arr, func) {\n var index;\n var found = !arr.every(function (el, idx) {\n index = idx;\n return !func(el, idx, arr);\n });\n return found ? index : -1;\n}\n/**\n * @param {Array<*>} arr The array to test.\n * @param {Function=} opt_func Comparison function.\n * @param {boolean=} opt_strict Strictly sorted (default false).\n * @return {boolean} Return index.\n */\nexport function isSorted(arr, opt_func, opt_strict) {\n var compare = opt_func || numberSafeCompareFunction;\n return arr.every(function (currentVal, index) {\n if (index === 0) {\n return true;\n }\n var res = compare(arr[index - 1], currentVal);\n return !(res > 0 || (opt_strict && res === 0));\n });\n}\n//# sourceMappingURL=array.js.map","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","/**\n * @module ol/proj/transforms\n */\nimport { isEmpty } from '../obj.js';\n/**\n * @private\n * @type {!Object>}\n */\nvar transforms = {};\n/**\n * Clear the transform cache.\n */\nexport function clear() {\n transforms = {};\n}\n/**\n * Registers a conversion function to convert coordinates from the source\n * projection to the destination projection.\n *\n * @param {import(\"./Projection.js\").default} source Source.\n * @param {import(\"./Projection.js\").default} destination Destination.\n * @param {import(\"../proj.js\").TransformFunction} transformFn Transform.\n */\nexport function add(source, destination, transformFn) {\n var sourceCode = source.getCode();\n var destinationCode = destination.getCode();\n if (!(sourceCode in transforms)) {\n transforms[sourceCode] = {};\n }\n transforms[sourceCode][destinationCode] = transformFn;\n}\n/**\n * Unregisters the conversion function to convert coordinates from the source\n * projection to the destination projection. This method is used to clean up\n * cached transforms during testing.\n *\n * @param {import(\"./Projection.js\").default} source Source projection.\n * @param {import(\"./Projection.js\").default} destination Destination projection.\n * @return {import(\"../proj.js\").TransformFunction} transformFn The unregistered transform.\n */\nexport function remove(source, destination) {\n var sourceCode = source.getCode();\n var destinationCode = destination.getCode();\n var transform = transforms[sourceCode][destinationCode];\n delete transforms[sourceCode][destinationCode];\n if (isEmpty(transforms[sourceCode])) {\n delete transforms[sourceCode];\n }\n return transform;\n}\n/**\n * Get a transform given a source code and a destination code.\n * @param {string} sourceCode The code for the source projection.\n * @param {string} destinationCode The code for the destination projection.\n * @return {import(\"../proj.js\").TransformFunction|undefined} The transform function (if found).\n */\nexport function get(sourceCode, destinationCode) {\n var transform;\n if (sourceCode in transforms && destinationCode in transforms[sourceCode]) {\n transform = transforms[sourceCode][destinationCode];\n }\n return transform;\n}\n//# sourceMappingURL=transforms.js.map","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(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\nmodule.exports = _defineProperty;","/**\n * @module ol/asserts\n */\nimport AssertionError from './AssertionError.js';\n/**\n * @param {*} assertion Assertion we expected to be truthy.\n * @param {number} errorCode Error code.\n */\nexport function assert(assertion, errorCode) {\n if (!assertion) {\n throw new AssertionError(errorCode);\n }\n}\n//# sourceMappingURL=asserts.js.map","/**\n * @module ol/geom/flat/contains\n */\nimport { forEachCorner } from '../../extent.js';\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} Contains extent.\n */\nexport function linearRingContainsExtent(flatCoordinates, offset, end, stride, extent) {\n var outside = forEachCorner(extent, \n /**\n * @param {import(\"../../coordinate.js\").Coordinate} coordinate Coordinate.\n * @return {boolean} Contains (x, y).\n */\n function (coordinate) {\n return !linearRingContainsXY(flatCoordinates, offset, end, stride, coordinate[0], coordinate[1]);\n });\n return !outside;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\nexport function linearRingContainsXY(flatCoordinates, offset, end, stride, x, y) {\n // http://geomalgorithms.com/a03-_inclusion.html\n // Copyright 2000 softSurfer, 2012 Dan Sunday\n // This code may be freely used and modified for any purpose\n // providing that this copyright notice is included with it.\n // SoftSurfer makes no warranty for this code, and cannot be held\n // liable for any real or imagined damage resulting from its use.\n // Users of this code must verify correctness for their application.\n var wn = 0;\n var x1 = flatCoordinates[end - stride];\n var y1 = flatCoordinates[end - stride + 1];\n for (; offset < end; offset += stride) {\n var x2 = flatCoordinates[offset];\n var y2 = flatCoordinates[offset + 1];\n if (y1 <= y) {\n if (y2 > y && (x2 - x1) * (y - y1) - (x - x1) * (y2 - y1) > 0) {\n wn++;\n }\n }\n else if (y2 <= y && (x2 - x1) * (y - y1) - (x - x1) * (y2 - y1) < 0) {\n wn--;\n }\n x1 = x2;\n y1 = y2;\n }\n return wn !== 0;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\nexport function linearRingsContainsXY(flatCoordinates, offset, ends, stride, x, y) {\n if (ends.length === 0) {\n return false;\n }\n if (!linearRingContainsXY(flatCoordinates, offset, ends[0], stride, x, y)) {\n return false;\n }\n for (var i = 1, ii = ends.length; i < ii; ++i) {\n if (linearRingContainsXY(flatCoordinates, ends[i - 1], ends[i], stride, x, y)) {\n return false;\n }\n }\n return true;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\nexport function linearRingssContainsXY(flatCoordinates, offset, endss, stride, x, y) {\n if (endss.length === 0) {\n return false;\n }\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n if (linearRingsContainsXY(flatCoordinates, offset, ends, stride, x, y)) {\n return true;\n }\n offset = ends[ends.length - 1];\n }\n return false;\n}\n//# sourceMappingURL=contains.js.map","import defineProperty from \"./defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","/**\n * @module ol/ViewHint\n */\n/**\n * @enum {number}\n */\nexport default {\n ANIMATING: 0,\n INTERACTING: 1,\n};\n//# sourceMappingURL=ViewHint.js.map","/**\n * @module ol/coordinate\n */\nimport { getWidth } from './extent.js';\nimport { modulo } from './math.js';\nimport { padNumber } from './string.js';\n/**\n * An array of numbers representing an xy coordinate. Example: `[16, 48]`.\n * @typedef {Array} Coordinate\n * @api\n */\n/**\n * A function that takes a {@link module:ol/coordinate~Coordinate} and\n * transforms it into a `{string}`.\n *\n * @typedef {function((Coordinate|undefined)): string} CoordinateFormat\n * @api\n */\n/**\n * Add `delta` to `coordinate`. `coordinate` is modified in place and returned\n * by the function.\n *\n * Example:\n *\n * import {add} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * add(coord, [-2, 4]);\n * // coord is now [5.85, 51.983333]\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {Coordinate} delta Delta.\n * @return {Coordinate} The input coordinate adjusted by\n * the given delta.\n * @api\n */\nexport function add(coordinate, delta) {\n coordinate[0] += +delta[0];\n coordinate[1] += +delta[1];\n return coordinate;\n}\n/**\n * Calculates the point closest to the passed coordinate on the passed circle.\n *\n * @param {Coordinate} coordinate The coordinate.\n * @param {import(\"./geom/Circle.js\").default} circle The circle.\n * @return {Coordinate} Closest point on the circumference.\n */\nexport function closestOnCircle(coordinate, circle) {\n var r = circle.getRadius();\n var center = circle.getCenter();\n var x0 = center[0];\n var y0 = center[1];\n var x1 = coordinate[0];\n var y1 = coordinate[1];\n var dx = x1 - x0;\n var dy = y1 - y0;\n if (dx === 0 && dy === 0) {\n dx = 1;\n }\n var d = Math.sqrt(dx * dx + dy * dy);\n var x = x0 + (r * dx) / d;\n var y = y0 + (r * dy) / d;\n return [x, y];\n}\n/**\n * Calculates the point closest to the passed coordinate on the passed segment.\n * This is the foot of the perpendicular of the coordinate to the segment when\n * the foot is on the segment, or the closest segment coordinate when the foot\n * is outside the segment.\n *\n * @param {Coordinate} coordinate The coordinate.\n * @param {Array} segment The two coordinates\n * of the segment.\n * @return {Coordinate} The foot of the perpendicular of\n * the coordinate to the segment.\n */\nexport function closestOnSegment(coordinate, segment) {\n var x0 = coordinate[0];\n var y0 = coordinate[1];\n var start = segment[0];\n var end = segment[1];\n var x1 = start[0];\n var y1 = start[1];\n var x2 = end[0];\n var y2 = end[1];\n var dx = x2 - x1;\n var dy = y2 - y1;\n var along = dx === 0 && dy === 0\n ? 0\n : (dx * (x0 - x1) + dy * (y0 - y1)) / (dx * dx + dy * dy || 0);\n var x, y;\n if (along <= 0) {\n x = x1;\n y = y1;\n }\n else if (along >= 1) {\n x = x2;\n y = y2;\n }\n else {\n x = x1 + along * dx;\n y = y1 + along * dy;\n }\n return [x, y];\n}\n/**\n * Returns a {@link module:ol/coordinate~CoordinateFormat} function that can be\n * used to format\n * a {Coordinate} to a string.\n *\n * Example without specifying the fractional digits:\n *\n * import {createStringXY} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var stringifyFunc = createStringXY();\n * var out = stringifyFunc(coord);\n * // out is now '8, 48'\n *\n * Example with explicitly specifying 2 fractional digits:\n *\n * import {createStringXY} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var stringifyFunc = createStringXY(2);\n * var out = stringifyFunc(coord);\n * // out is now '7.85, 47.98'\n *\n * @param {number=} opt_fractionDigits The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {CoordinateFormat} Coordinate format.\n * @api\n */\nexport function createStringXY(opt_fractionDigits) {\n return (\n /**\n * @param {Coordinate} coordinate Coordinate.\n * @return {string} String XY.\n */\n function (coordinate) {\n return toStringXY(coordinate, opt_fractionDigits);\n });\n}\n/**\n * @param {string} hemispheres Hemispheres.\n * @param {number} degrees Degrees.\n * @param {number=} opt_fractionDigits The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {string} String.\n */\nexport function degreesToStringHDMS(hemispheres, degrees, opt_fractionDigits) {\n var normalizedDegrees = modulo(degrees + 180, 360) - 180;\n var x = Math.abs(3600 * normalizedDegrees);\n var dflPrecision = opt_fractionDigits || 0;\n var precision = Math.pow(10, dflPrecision);\n var deg = Math.floor(x / 3600);\n var min = Math.floor((x - deg * 3600) / 60);\n var sec = x - deg * 3600 - min * 60;\n sec = Math.ceil(sec * precision) / precision;\n if (sec >= 60) {\n sec = 0;\n min += 1;\n }\n if (min >= 60) {\n min = 0;\n deg += 1;\n }\n return (deg +\n '\\u00b0 ' +\n padNumber(min, 2) +\n '\\u2032 ' +\n padNumber(sec, 2, dflPrecision) +\n '\\u2033' +\n (normalizedDegrees == 0\n ? ''\n : ' ' + hemispheres.charAt(normalizedDegrees < 0 ? 1 : 0)));\n}\n/**\n * Transforms the given {@link module:ol/coordinate~Coordinate} to a string\n * using the given string template. The strings `{x}` and `{y}` in the template\n * will be replaced with the first and second coordinate values respectively.\n *\n * Example without specifying the fractional digits:\n *\n * import {format} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var template = 'Coordinate is ({x}|{y}).';\n * var out = format(coord, template);\n * // out is now 'Coordinate is (8|48).'\n *\n * Example explicitly specifying the fractional digits:\n *\n * import {format} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var template = 'Coordinate is ({x}|{y}).';\n * var out = format(coord, template, 2);\n * // out is now 'Coordinate is (7.85|47.98).'\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {string} template A template string with `{x}` and `{y}` placeholders\n * that will be replaced by first and second coordinate values.\n * @param {number=} opt_fractionDigits The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {string} Formatted coordinate.\n * @api\n */\nexport function format(coordinate, template, opt_fractionDigits) {\n if (coordinate) {\n return template\n .replace('{x}', coordinate[0].toFixed(opt_fractionDigits))\n .replace('{y}', coordinate[1].toFixed(opt_fractionDigits));\n }\n else {\n return '';\n }\n}\n/**\n * @param {Coordinate} coordinate1 First coordinate.\n * @param {Coordinate} coordinate2 Second coordinate.\n * @return {boolean} The two coordinates are equal.\n */\nexport function equals(coordinate1, coordinate2) {\n var equals = true;\n for (var i = coordinate1.length - 1; i >= 0; --i) {\n if (coordinate1[i] != coordinate2[i]) {\n equals = false;\n break;\n }\n }\n return equals;\n}\n/**\n * Rotate `coordinate` by `angle`. `coordinate` is modified in place and\n * returned by the function.\n *\n * Example:\n *\n * import {rotate} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var rotateRadians = Math.PI / 2; // 90 degrees\n * rotate(coord, rotateRadians);\n * // coord is now [-47.983333, 7.85]\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {number} angle Angle in radian.\n * @return {Coordinate} Coordinate.\n * @api\n */\nexport function rotate(coordinate, angle) {\n var cosAngle = Math.cos(angle);\n var sinAngle = Math.sin(angle);\n var x = coordinate[0] * cosAngle - coordinate[1] * sinAngle;\n var y = coordinate[1] * cosAngle + coordinate[0] * sinAngle;\n coordinate[0] = x;\n coordinate[1] = y;\n return coordinate;\n}\n/**\n * Scale `coordinate` by `scale`. `coordinate` is modified in place and returned\n * by the function.\n *\n * Example:\n *\n * import {scale as scaleCoordinate} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var scale = 1.2;\n * scaleCoordinate(coord, scale);\n * // coord is now [9.42, 57.5799996]\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {number} scale Scale factor.\n * @return {Coordinate} Coordinate.\n */\nexport function scale(coordinate, scale) {\n coordinate[0] *= scale;\n coordinate[1] *= scale;\n return coordinate;\n}\n/**\n * @param {Coordinate} coord1 First coordinate.\n * @param {Coordinate} coord2 Second coordinate.\n * @return {number} Squared distance between coord1 and coord2.\n */\nexport function squaredDistance(coord1, coord2) {\n var dx = coord1[0] - coord2[0];\n var dy = coord1[1] - coord2[1];\n return dx * dx + dy * dy;\n}\n/**\n * @param {Coordinate} coord1 First coordinate.\n * @param {Coordinate} coord2 Second coordinate.\n * @return {number} Distance between coord1 and coord2.\n */\nexport function distance(coord1, coord2) {\n return Math.sqrt(squaredDistance(coord1, coord2));\n}\n/**\n * Calculate the squared distance from a coordinate to a line segment.\n *\n * @param {Coordinate} coordinate Coordinate of the point.\n * @param {Array} segment Line segment (2\n * coordinates).\n * @return {number} Squared distance from the point to the line segment.\n */\nexport function squaredDistanceToSegment(coordinate, segment) {\n return squaredDistance(coordinate, closestOnSegment(coordinate, segment));\n}\n/**\n * Format a geographic coordinate with the hemisphere, degrees, minutes, and\n * seconds.\n *\n * Example without specifying fractional digits:\n *\n * import {toStringHDMS} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var out = toStringHDMS(coord);\n * // out is now '47° 58′ 60″ N 7° 50′ 60″ E'\n *\n * Example explicitly specifying 1 fractional digit:\n *\n * import {toStringHDMS} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var out = toStringHDMS(coord, 1);\n * // out is now '47° 58′ 60.0″ N 7° 50′ 60.0″ E'\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {number=} opt_fractionDigits The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {string} Hemisphere, degrees, minutes and seconds.\n * @api\n */\nexport function toStringHDMS(coordinate, opt_fractionDigits) {\n if (coordinate) {\n return (degreesToStringHDMS('NS', coordinate[1], opt_fractionDigits) +\n ' ' +\n degreesToStringHDMS('EW', coordinate[0], opt_fractionDigits));\n }\n else {\n return '';\n }\n}\n/**\n * Format a coordinate as a comma delimited string.\n *\n * Example without specifying fractional digits:\n *\n * import {toStringXY} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var out = toStringXY(coord);\n * // out is now '8, 48'\n *\n * Example explicitly specifying 1 fractional digit:\n *\n * import {toStringXY} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var out = toStringXY(coord, 1);\n * // out is now '7.8, 48.0'\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {number=} opt_fractionDigits The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {string} XY.\n * @api\n */\nexport function toStringXY(coordinate, opt_fractionDigits) {\n return format(coordinate, '{x}, {y}', opt_fractionDigits);\n}\n/**\n * Modifies the provided coordinate in-place to be within the real world\n * extent. The lower projection extent boundary is inclusive, the upper one\n * exclusive.\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {import(\"./proj/Projection.js\").default} projection Projection.\n * @return {Coordinate} The coordinate within the real world extent.\n */\nexport function wrapX(coordinate, projection) {\n if (projection.canWrapX()) {\n var worldWidth = getWidth(projection.getExtent());\n var worldsAway = getWorldsAway(coordinate, projection, worldWidth);\n if (worldsAway) {\n coordinate[0] -= worldsAway * worldWidth;\n }\n }\n return coordinate;\n}\n/**\n * @param {Coordinate} coordinate Coordinate.\n * @param {import(\"./proj/Projection.js\").default} projection Projection.\n * @param {number=} opt_sourceExtentWidth Width of the source extent.\n * @return {number} Offset in world widths.\n */\nexport function getWorldsAway(coordinate, projection, opt_sourceExtentWidth) {\n var projectionExtent = projection.getExtent();\n var worldsAway = 0;\n if (projection.canWrapX() &&\n (coordinate[0] < projectionExtent[0] || coordinate[0] > projectionExtent[2])) {\n var sourceExtentWidth = opt_sourceExtentWidth || getWidth(projectionExtent);\n worldsAway = Math.floor((coordinate[0] - projectionExtent[0]) / sourceExtentWidth);\n }\n return worldsAway;\n}\n//# sourceMappingURL=coordinate.js.map","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;","/**\n * @module ol/proj/Projection\n */\nimport { METERS_PER_UNIT } from './Units.js';\n/**\n * @typedef {Object} Options\n * @property {string} code The SRS identifier code, e.g. `EPSG:4326`.\n * @property {import(\"./Units.js\").default|string} [units] Units. Required unless a\n * proj4 projection is defined for `code`.\n * @property {import(\"../extent.js\").Extent} [extent] The validity extent for the SRS.\n * @property {string} [axisOrientation='enu'] The axis orientation as specified in Proj4.\n * @property {boolean} [global=false] Whether the projection is valid for the whole globe.\n * @property {number} [metersPerUnit] The meters per unit for the SRS.\n * If not provided, the `units` are used to get the meters per unit from the {@link module:ol/proj/Units~METERS_PER_UNIT}\n * lookup table.\n * @property {import(\"../extent.js\").Extent} [worldExtent] The world extent for the SRS.\n * @property {function(number, import(\"../coordinate.js\").Coordinate):number} [getPointResolution]\n * Function to determine resolution at a point. The function is called with a\n * `{number}` view resolution and an `{import(\"../coordinate.js\").Coordinate}` as arguments, and returns\n * the `{number}` resolution in projection units at the passed coordinate. If this is `undefined`,\n * the default {@link module:ol/proj#getPointResolution} function will be used.\n */\n/**\n * @classdesc\n * Projection definition class. One of these is created for each projection\n * supported in the application and stored in the {@link module:ol/proj} namespace.\n * You can use these in applications, but this is not required, as API params\n * and options use {@link module:ol/proj~ProjectionLike} which means the simple string\n * code will suffice.\n *\n * You can use {@link module:ol/proj~get} to retrieve the object for a particular\n * projection.\n *\n * The library includes definitions for `EPSG:4326` and `EPSG:3857`, together\n * with the following aliases:\n * * `EPSG:4326`: CRS:84, urn:ogc:def:crs:EPSG:6.6:4326,\n * urn:ogc:def:crs:OGC:1.3:CRS84, urn:ogc:def:crs:OGC:2:84,\n * http://www.opengis.net/gml/srs/epsg.xml#4326,\n * urn:x-ogc:def:crs:EPSG:4326\n * * `EPSG:3857`: EPSG:102100, EPSG:102113, EPSG:900913,\n * urn:ogc:def:crs:EPSG:6.18:3:3857,\n * http://www.opengis.net/gml/srs/epsg.xml#3857\n *\n * If you use [proj4js](https://github.com/proj4js/proj4js), aliases can\n * be added using `proj4.defs()`. After all required projection definitions are\n * added, call the {@link module:ol/proj/proj4~register} function.\n *\n * @api\n */\nvar Projection = /** @class */ (function () {\n /**\n * @param {Options} options Projection options.\n */\n function Projection(options) {\n /**\n * @private\n * @type {string}\n */\n this.code_ = options.code;\n /**\n * Units of projected coordinates. When set to `TILE_PIXELS`, a\n * `this.extent_` and `this.worldExtent_` must be configured properly for each\n * tile.\n * @private\n * @type {import(\"./Units.js\").default}\n */\n this.units_ = /** @type {import(\"./Units.js\").default} */ (options.units);\n /**\n * Validity extent of the projection in projected coordinates. For projections\n * with `TILE_PIXELS` units, this is the extent of the tile in\n * tile pixel space.\n * @private\n * @type {import(\"../extent.js\").Extent}\n */\n this.extent_ = options.extent !== undefined ? options.extent : null;\n /**\n * Extent of the world in EPSG:4326. For projections with\n * `TILE_PIXELS` units, this is the extent of the tile in\n * projected coordinate space.\n * @private\n * @type {import(\"../extent.js\").Extent}\n */\n this.worldExtent_ =\n options.worldExtent !== undefined ? options.worldExtent : null;\n /**\n * @private\n * @type {string}\n */\n this.axisOrientation_ =\n options.axisOrientation !== undefined ? options.axisOrientation : 'enu';\n /**\n * @private\n * @type {boolean}\n */\n this.global_ = options.global !== undefined ? options.global : false;\n /**\n * @private\n * @type {boolean}\n */\n this.canWrapX_ = !!(this.global_ && this.extent_);\n /**\n * @private\n * @type {function(number, import(\"../coordinate.js\").Coordinate):number|undefined}\n */\n this.getPointResolutionFunc_ = options.getPointResolution;\n /**\n * @private\n * @type {import(\"../tilegrid/TileGrid.js\").default}\n */\n this.defaultTileGrid_ = null;\n /**\n * @private\n * @type {number|undefined}\n */\n this.metersPerUnit_ = options.metersPerUnit;\n }\n /**\n * @return {boolean} The projection is suitable for wrapping the x-axis\n */\n Projection.prototype.canWrapX = function () {\n return this.canWrapX_;\n };\n /**\n * Get the code for this projection, e.g. 'EPSG:4326'.\n * @return {string} Code.\n * @api\n */\n Projection.prototype.getCode = function () {\n return this.code_;\n };\n /**\n * Get the validity extent for this projection.\n * @return {import(\"../extent.js\").Extent} Extent.\n * @api\n */\n Projection.prototype.getExtent = function () {\n return this.extent_;\n };\n /**\n * Get the units of this projection.\n * @return {import(\"./Units.js\").default} Units.\n * @api\n */\n Projection.prototype.getUnits = function () {\n return this.units_;\n };\n /**\n * Get the amount of meters per unit of this projection. If the projection is\n * not configured with `metersPerUnit` or a units identifier, the return is\n * `undefined`.\n * @return {number|undefined} Meters.\n * @api\n */\n Projection.prototype.getMetersPerUnit = function () {\n return this.metersPerUnit_ || METERS_PER_UNIT[this.units_];\n };\n /**\n * Get the world extent for this projection.\n * @return {import(\"../extent.js\").Extent} Extent.\n * @api\n */\n Projection.prototype.getWorldExtent = function () {\n return this.worldExtent_;\n };\n /**\n * Get the axis orientation of this projection.\n * Example values are:\n * enu - the default easting, northing, elevation.\n * neu - northing, easting, up - useful for \"lat/long\" geographic coordinates,\n * or south orientated transverse mercator.\n * wnu - westing, northing, up - some planetary coordinate systems have\n * \"west positive\" coordinate systems\n * @return {string} Axis orientation.\n * @api\n */\n Projection.prototype.getAxisOrientation = function () {\n return this.axisOrientation_;\n };\n /**\n * Is this projection a global projection which spans the whole world?\n * @return {boolean} Whether the projection is global.\n * @api\n */\n Projection.prototype.isGlobal = function () {\n return this.global_;\n };\n /**\n * Set if the projection is a global projection which spans the whole world\n * @param {boolean} global Whether the projection is global.\n * @api\n */\n Projection.prototype.setGlobal = function (global) {\n this.global_ = global;\n this.canWrapX_ = !!(global && this.extent_);\n };\n /**\n * @return {import(\"../tilegrid/TileGrid.js\").default} The default tile grid.\n */\n Projection.prototype.getDefaultTileGrid = function () {\n return this.defaultTileGrid_;\n };\n /**\n * @param {import(\"../tilegrid/TileGrid.js\").default} tileGrid The default tile grid.\n */\n Projection.prototype.setDefaultTileGrid = function (tileGrid) {\n this.defaultTileGrid_ = tileGrid;\n };\n /**\n * Set the validity extent for this projection.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @api\n */\n Projection.prototype.setExtent = function (extent) {\n this.extent_ = extent;\n this.canWrapX_ = !!(this.global_ && extent);\n };\n /**\n * Set the world extent for this projection.\n * @param {import(\"../extent.js\").Extent} worldExtent World extent\n * [minlon, minlat, maxlon, maxlat].\n * @api\n */\n Projection.prototype.setWorldExtent = function (worldExtent) {\n this.worldExtent_ = worldExtent;\n };\n /**\n * Set the getPointResolution function (see {@link module:ol/proj~getPointResolution}\n * for this projection.\n * @param {function(number, import(\"../coordinate.js\").Coordinate):number} func Function\n * @api\n */\n Projection.prototype.setGetPointResolution = function (func) {\n this.getPointResolutionFunc_ = func;\n };\n /**\n * Get the custom point resolution function for this projection (if set).\n * @return {function(number, import(\"../coordinate.js\").Coordinate):number|undefined} The custom point\n * resolution function (if set).\n */\n Projection.prototype.getPointResolutionFunc = function () {\n return this.getPointResolutionFunc_;\n };\n return Projection;\n}());\nexport default Projection;\n//# sourceMappingURL=Projection.js.map","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nvar defaultOptions = {\n bindI18n: 'languageChanging languageChanged',\n bindI18nStore: '',\n // nsMode: 'fallback' // loop through all namespaces given to hook, HOC, render prop for key lookup\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n // hashTransKey: key => key // calculate a key for Trans component based on defaultValue\n useSuspense: true\n};\nvar i18nInstance;\nvar hasUsedI18nextProvider;\nexport var I18nContext = React.createContext();\nexport function usedI18nextProvider(used) {\n hasUsedI18nextProvider = used;\n}\nexport function getHasUsedI18nextProvider() {\n return hasUsedI18nextProvider;\n}\nexport function setDefaults() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n defaultOptions = _objectSpread({}, defaultOptions, {}, options);\n}\nexport function getDefaults() {\n return defaultOptions;\n}\nexport var ReportNamespaces =\n/*#__PURE__*/\nfunction () {\n function ReportNamespaces() {\n _classCallCheck(this, ReportNamespaces);\n\n this.usedNamespaces = {};\n }\n\n _createClass(ReportNamespaces, [{\n key: \"addUsedNamespaces\",\n value: function addUsedNamespaces(namespaces) {\n var _this = this;\n\n namespaces.forEach(function (ns) {\n if (!_this.usedNamespaces[ns]) _this.usedNamespaces[ns] = true;\n });\n }\n }, {\n key: \"getUsedNamespaces\",\n value: function getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n }]);\n\n return ReportNamespaces;\n}();\nexport function setI18n(instance) {\n i18nInstance = instance;\n}\nexport function getI18n() {\n return i18nInstance;\n}\nexport var initReactI18next = {\n type: '3rdParty',\n init: function init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};\nexport function composeInitialProps(ForComponent) {\n return function (ctx) {\n return new Promise(function (resolve) {\n var i18nInitialProps = getInitialProps();\n\n if (ForComponent.getInitialProps) {\n ForComponent.getInitialProps(ctx).then(function (componentsInitialProps) {\n resolve(_objectSpread({}, componentsInitialProps, {}, i18nInitialProps));\n });\n } else {\n resolve(i18nInitialProps);\n }\n });\n }; // Avoid async for now - so we do not need to pull in regenerator\n // return async ctx => {\n // const componentsInitialProps = ForComponent.getInitialProps\n // ? await ForComponent.getInitialProps(ctx)\n // : {};\n // const i18nInitialProps = getInitialProps();\n // return {\n // ...componentsInitialProps,\n // ...i18nInitialProps,\n // };\n // };\n}\nexport function getInitialProps() {\n var i18n = getI18n();\n var namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];\n var ret = {};\n var initialI18nStore = {};\n i18n.languages.forEach(function (l) {\n initialI18nStore[l] = {};\n namespaces.forEach(function (ns) {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n}","export function warn() {\n if (console && console.warn) {\n var _console;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'string') args[0] = \"react-i18next:: \".concat(args[0]);\n\n (_console = console).warn.apply(_console, args);\n }\n}\nvar alreadyWarned = {};\nexport function warnOnce() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return;\n if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date();\n warn.apply(void 0, args);\n} // not needed right now\n//\n// export function deprecated(...args) {\n// if (process && process.env && (!process.env.NODE_ENV || process.env.NODE_ENV === 'development')) {\n// if (typeof args[0] === 'string') args[0] = `deprecation warning -> ${args[0]}`;\n// warnOnce(...args);\n// }\n// }\n\nexport function loadNamespaces(i18n, ns, cb) {\n i18n.loadNamespaces(ns, function () {\n // delay ready if not yet initialized i18n instance\n if (i18n.isInitialized) {\n cb();\n } else {\n var initialized = function initialized() {\n // due to emitter removing issue in i18next we need to delay remove\n setTimeout(function () {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n\n i18n.on('initialized', initialized);\n }\n });\n}\nexport function hasLoadedNamespace(ns, i18n) {\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce('i18n.languages were undefined or empty', i18n.languages);\n return true;\n }\n\n var lng = i18n.languages[0];\n var fallbackLng = i18n.options ? i18n.options.fallbackLng : false;\n var lastLng = i18n.languages[i18n.languages.length - 1]; // we're in cimode so this shall pass\n\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = i18n.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n return loadState === -1 || loadState === 2;\n }; // loaded -> SUCCESS\n\n\n if (i18n.hasResourceBundle(lng, ns)) return true; // were not loading at all -> SEMI SUCCESS\n\n if (!i18n.services.backendConnector.backend) return true; // failed loading ns - but at least fallback is not pending -> SEMI SUCCESS\n\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n}\nexport function getDisplayName(Component) {\n return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/typeof\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React, { useContext } from 'react';\nimport HTML from 'html-parse-stringify2';\nimport { getI18n, getHasUsedI18nextProvider, I18nContext, getDefaults } from './context';\nimport { warn, warnOnce } from './utils';\n\nfunction hasChildren(node) {\n return node && (node.children || node.props && node.props.children);\n}\n\nfunction getChildren(node) {\n if (!node) return [];\n return node && node.children ? node.children : node.props && node.props.children;\n}\n\nfunction hasValidReactChildren(children) {\n if (Object.prototype.toString.call(children) !== '[object Array]') return false;\n return children.every(function (child) {\n return React.isValidElement(child);\n });\n}\n\nfunction getAsArray(data) {\n return Array.isArray(data) ? data : [data];\n}\n\nexport function nodesToString(startingString, children, index, i18nOptions) {\n if (!children) return '';\n var stringNode = startingString;\n var childrenArray = getAsArray(children);\n var keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];\n childrenArray.forEach(function (child, i) {\n var elementKey = \"\".concat(i);\n\n if (typeof child === 'string') {\n stringNode = \"\".concat(stringNode).concat(child);\n } else if (hasChildren(child)) {\n var elementTag = keepArray.indexOf(child.type) > -1 && Object.keys(child.props).length === 1 && typeof hasChildren(child) === 'string' ? child.type : elementKey;\n\n if (child.props && child.props.i18nIsDynamicList) {\n // we got a dynamic list like \"
    {['a', 'b'].map(item => (
  • {item}
  • ))}
\"\"\n // the result should be \"<0>\" and not \"<0><0>a<1>b\"\n stringNode = \"\".concat(stringNode, \"<\").concat(elementTag, \">\");\n } else {\n // regular case mapping the inner children\n stringNode = \"\".concat(stringNode, \"<\").concat(elementTag, \">\").concat(nodesToString('', getChildren(child), i + 1, i18nOptions), \"\");\n }\n } else if (React.isValidElement(child)) {\n if (keepArray.indexOf(child.type) > -1 && Object.keys(child.props).length === 0) {\n stringNode = \"\".concat(stringNode, \"<\").concat(child.type, \"/>\");\n } else {\n stringNode = \"\".concat(stringNode, \"<\").concat(elementKey, \">\");\n }\n } else if (_typeof(child) === 'object') {\n var clone = _objectSpread({}, child);\n\n var format = clone.format;\n delete clone.format;\n var keys = Object.keys(clone);\n\n if (format && keys.length === 1) {\n stringNode = \"\".concat(stringNode, \"{{\").concat(keys[0], \", \").concat(format, \"}}\");\n } else if (keys.length === 1) {\n stringNode = \"\".concat(stringNode, \"{{\").concat(keys[0], \"}}\");\n } else {\n // not a valid interpolation object (can only contain one value plus format)\n warn(\"react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.\", child);\n }\n } else {\n warn(\"Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.\", child);\n }\n });\n return stringNode;\n}\n\nfunction renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {\n if (targetString === '') return []; // check if contains tags we need to replace from html string to react nodes\n\n var keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];\n var emptyChildrenButNeedsHandling = targetString && new RegExp(keepArray.join('|')).test(targetString); // no need to replace tags in the targetstring\n\n if (!children && !emptyChildrenButNeedsHandling) return [targetString]; // v2 -> interpolates upfront no need for \"some <0>{{var}}\"\" -> will be just \"some {{var}}\" in translation file\n\n var data = {};\n\n function getData(childs) {\n var childrenArray = getAsArray(childs);\n childrenArray.forEach(function (child) {\n if (typeof child === 'string') return;\n if (hasChildren(child)) getData(getChildren(child));else if (_typeof(child) === 'object' && !React.isValidElement(child)) Object.assign(data, child);\n });\n }\n\n getData(children);\n var interpolatedString = i18n.services.interpolator.interpolate(targetString, _objectSpread({}, data, {}, combinedTOpts), i18n.language); // parse ast from string with additional wrapper tag\n // -> avoids issues in parser removing prepending text nodes\n\n var ast = HTML.parse(\"<0>\".concat(interpolatedString, \"\"));\n\n function mapAST(reactNode, astNode) {\n var reactNodes = getAsArray(reactNode);\n var astNodes = getAsArray(astNode);\n return astNodes.reduce(function (mem, node, i) {\n var translationContent = node.children && node.children[0] && node.children[0].content;\n\n if (node.type === 'tag') {\n var child = reactNodes[parseInt(node.name, 10)] || {};\n var isElement = React.isValidElement(child);\n\n if (typeof child === 'string') {\n mem.push(child);\n } else if (hasChildren(child)) {\n var childs = getChildren(child);\n var mappedChildren = mapAST(childs, node.children);\n var inner = hasValidReactChildren(childs) && mappedChildren.length === 0 ? childs : mappedChildren;\n if (child.dummy) child.children = inner; // needed on preact!\n\n mem.push(React.cloneElement(child, _objectSpread({}, child.props, {\n key: i\n }), inner));\n } else if (emptyChildrenButNeedsHandling && _typeof(child) === 'object' && child.dummy && !isElement) {\n // we have a empty Trans node (the dummy element) with a targetstring that contains html tags needing\n // conversion to react nodes\n // so we just need to map the inner stuff\n var _inner = mapAST(reactNodes\n /* wrong but we need something */\n , node.children);\n\n mem.push(React.cloneElement(child, _objectSpread({}, child.props, {\n key: i\n }), _inner));\n } else if (Number.isNaN(parseFloat(node.name))) {\n if (i18nOptions.transSupportBasicHtmlNodes && keepArray.indexOf(node.name) > -1) {\n if (node.voidElement) {\n mem.push(React.createElement(node.name, {\n key: \"\".concat(node.name, \"-\").concat(i)\n }));\n } else {\n var _inner2 = mapAST(reactNodes\n /* wrong but we need something */\n , node.children);\n\n mem.push(React.createElement(node.name, {\n key: \"\".concat(node.name, \"-\").concat(i)\n }, _inner2));\n }\n } else if (node.voidElement) {\n mem.push(\"<\".concat(node.name, \" />\"));\n } else {\n var _inner3 = mapAST(reactNodes\n /* wrong but we need something */\n , node.children);\n\n mem.push(\"<\".concat(node.name, \">\").concat(_inner3, \"\"));\n }\n } else if (_typeof(child) === 'object' && !isElement) {\n var content = node.children[0] ? translationContent : null; // v1\n // as interpolation was done already we just have a regular content node\n // in the translation AST while having an object in reactNodes\n // -> push the content no need to interpolate again\n\n if (content) mem.push(content);\n } else if (node.children.length === 1 && translationContent) {\n // If component does not have children, but translation - has\n // with this in component could be components={[]} and in translation - 'some text <0>some highlighted message'\n mem.push(React.cloneElement(child, _objectSpread({}, child.props, {\n key: i\n }), translationContent));\n } else {\n mem.push(React.cloneElement(child, _objectSpread({}, child.props, {\n key: i\n })));\n }\n } else if (node.type === 'text') {\n mem.push(node.content);\n }\n\n return mem;\n }, []);\n } // call mapAST with having react nodes nested into additional node like\n // we did for the string ast from translation\n // return the children of that extra node to get expected result\n\n\n var result = mapAST([{\n dummy: true,\n children: children\n }], ast);\n return getChildren(result[0]);\n}\n\nexport function Trans(_ref) {\n var children = _ref.children,\n count = _ref.count,\n parent = _ref.parent,\n i18nKey = _ref.i18nKey,\n tOptions = _ref.tOptions,\n values = _ref.values,\n defaults = _ref.defaults,\n components = _ref.components,\n ns = _ref.ns,\n i18nFromProps = _ref.i18n,\n tFromProps = _ref.t,\n additionalProps = _objectWithoutProperties(_ref, [\"children\", \"count\", \"parent\", \"i18nKey\", \"tOptions\", \"values\", \"defaults\", \"components\", \"ns\", \"i18n\", \"t\"]);\n\n var _ref2 = getHasUsedI18nextProvider() ? useContext(I18nContext) || {} : {},\n i18nFromContext = _ref2.i18n,\n defaultNSFromContext = _ref2.defaultNS;\n\n var i18n = i18nFromProps || i18nFromContext || getI18n();\n\n if (!i18n) {\n warnOnce('You will need pass in an i18next instance by using i18nextReactModule');\n return children;\n }\n\n var t = tFromProps || i18n.t.bind(i18n) || function (k) {\n return k;\n };\n\n var reactI18nextOptions = _objectSpread({}, getDefaults(), {}, i18n.options && i18n.options.react);\n\n var useAsParent = parent !== undefined ? parent : reactI18nextOptions.defaultTransParent; // prepare having a namespace\n\n var namespaces = ns || t.ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n var defaultValue = defaults || nodesToString('', children, 0, reactI18nextOptions) || reactI18nextOptions.transEmptyNodeValue;\n var hashTransKey = reactI18nextOptions.hashTransKey;\n var key = i18nKey || (hashTransKey ? hashTransKey(defaultValue) : defaultValue);\n var interpolationOverride = values ? {} : {\n interpolation: {\n prefix: '#$?',\n suffix: '?$#'\n }\n };\n\n var combinedTOpts = _objectSpread({}, tOptions, {\n count: count\n }, values, {}, interpolationOverride, {\n defaultValue: defaultValue,\n ns: namespaces\n });\n\n var translation = key ? t(key, combinedTOpts) : defaultValue;\n if (!useAsParent) return renderNodes(components || children, translation, i18n, reactI18nextOptions, combinedTOpts);\n return React.createElement(useAsParent, additionalProps, renderNodes(components || children, translation, i18n, reactI18nextOptions, combinedTOpts));\n}","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { useState, useEffect, useContext } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, getHasUsedI18nextProvider, I18nContext } from './context';\nimport { warnOnce, loadNamespaces, hasLoadedNamespace } from './utils';\nexport function useTranslation(ns) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // assert we have the needed i18nInstance\n var i18nFromProps = props.i18n;\n var ReactI18nContext = useContext(I18nContext);\n\n var _ref = getHasUsedI18nextProvider() ? ReactI18nContext || {} : {},\n i18nFromContext = _ref.i18n,\n defaultNSFromContext = _ref.defaultNS;\n\n var i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n\n if (!i18n) {\n warnOnce('You will need pass in an i18next instance by using initReactI18next');\n var retNotReady = [function (k) {\n return k;\n }, {}, false];\n\n retNotReady.t = function (k) {\n return k;\n };\n\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n\n var i18nOptions = _objectSpread({}, getDefaults(), {}, i18n.options.react);\n\n var _props$useSuspense = props.useSuspense,\n useSuspense = _props$useSuspense === void 0 ? i18nOptions.useSuspense : _props$useSuspense; // prepare having a namespace\n\n var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation']; // report namespaces as used\n\n if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces); // are we ready? yes if all namespaces in first language are loaded already (either with data or empty object on failed load)\n\n var ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(function (n) {\n return hasLoadedNamespace(n, i18n);\n }); // binding t function to namespace (acts also as rerender trigger)\n\n function getT() {\n return {\n t: i18n.getFixedT(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0])\n };\n }\n\n var _useState = useState(getT()),\n _useState2 = _slicedToArray(_useState, 2),\n t = _useState2[0],\n setT = _useState2[1]; // seems we can't have functions as value -> wrap it in obj\n\n\n useEffect(function () {\n var isMounted = true;\n var bindI18n = i18nOptions.bindI18n,\n bindI18nStore = i18nOptions.bindI18nStore; // if not ready and not using suspense load the namespaces\n // in side effect and do not call resetT if unmounted\n\n if (!ready && !useSuspense) {\n loadNamespaces(i18n, namespaces, function () {\n if (isMounted) setT(getT());\n });\n }\n\n function boundReset() {\n if (isMounted) setT(getT());\n } // bind events to trigger change, like languageChanged\n\n\n if (bindI18n && i18n) i18n.on(bindI18n, boundReset);\n if (bindI18nStore && i18n) i18n.store.on(bindI18nStore, boundReset); // unbinding on unmount\n\n return function () {\n isMounted = false;\n if (bindI18n && i18n) bindI18n.split(' ').forEach(function (e) {\n return i18n.off(e, boundReset);\n });\n if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(function (e) {\n return i18n.store.off(e, boundReset);\n });\n };\n }, [namespaces.join()]); // re-run effect whenever list of namespaces changes\n\n var ret = [t.t, i18n, ready];\n ret.t = t.t;\n ret.i18n = i18n;\n ret.ready = ready; // return hook stuff if ready\n\n if (ready) return ret; // not yet loaded namespaces -> load them -> and return if useSuspense option set false\n\n if (!ready && !useSuspense) return ret; // not yet loaded namespaces -> load them -> and trigger suspense\n\n throw new Promise(function (resolve) {\n loadNamespaces(i18n, namespaces, function () {\n setT(getT());\n resolve();\n });\n });\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nimport { useTranslation } from './useTranslation';\nimport { getDisplayName } from './utils';\nexport function withTranslation(ns) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function Extend(WrappedComponent) {\n function I18nextWithTranslation(_ref) {\n var forwardedRef = _ref.forwardedRef,\n rest = _objectWithoutProperties(_ref, [\"forwardedRef\"]);\n\n var _useTranslation = useTranslation(ns, rest),\n _useTranslation2 = _slicedToArray(_useTranslation, 3),\n t = _useTranslation2[0],\n i18n = _useTranslation2[1],\n ready = _useTranslation2[2];\n\n var passDownProps = _objectSpread({}, rest, {\n t: t,\n i18n: i18n,\n tReady: ready\n });\n\n if (options.withRef && forwardedRef) {\n passDownProps.ref = forwardedRef;\n }\n\n return React.createElement(WrappedComponent, passDownProps);\n }\n\n I18nextWithTranslation.displayName = \"withI18nextTranslation(\".concat(getDisplayName(WrappedComponent), \")\");\n I18nextWithTranslation.WrappedComponent = WrappedComponent;\n\n var forwardRef = function forwardRef(props, ref) {\n return React.createElement(I18nextWithTranslation, _extends({}, props, {\n forwardedRef: ref\n }));\n };\n\n return options.withRef ? React.forwardRef(forwardRef) : I18nextWithTranslation;\n };\n}","import React from 'react';\nimport { I18nContext, usedI18nextProvider } from './context';\nexport function I18nextProvider(_ref) {\n var i18n = _ref.i18n,\n defaultNS = _ref.defaultNS,\n children = _ref.children;\n usedI18nextProvider(true);\n return React.createElement(I18nContext.Provider, {\n value: {\n i18n: i18n,\n defaultNS: defaultNS\n }\n }, children);\n}","/**\n * @module ol/events\n */\nimport { clear } from './obj.js';\n/**\n * Key to use with {@link module:ol/Observable~Observable#unByKey}.\n * @typedef {Object} EventsKey\n * @property {ListenerFunction} listener\n * @property {import(\"./events/Target.js\").EventTargetLike} target\n * @property {string} type\n * @api\n */\n/**\n * Listener function. This function is called with an event object as argument.\n * When the function returns `false`, event propagation will stop.\n *\n * @typedef {function((Event|import(\"./events/Event.js\").default)): (void|boolean)} ListenerFunction\n * @api\n */\n/**\n * @typedef {Object} ListenerObject\n * @property {ListenerFunction} handleEvent\n */\n/**\n * @typedef {ListenerFunction|ListenerObject} Listener\n */\n/**\n * Registers an event listener on an event target. Inspired by\n * https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html\n *\n * This function efficiently binds a `listener` to a `this` object, and returns\n * a key for use with {@link module:ol/events~unlistenByKey}.\n *\n * @param {import(\"./events/Target.js\").EventTargetLike} target Event target.\n * @param {string} type Event type.\n * @param {ListenerFunction} listener Listener.\n * @param {Object=} opt_this Object referenced by the `this` keyword in the\n * listener. Default is the `target`.\n * @param {boolean=} opt_once If true, add the listener as one-off listener.\n * @return {EventsKey} Unique key for the listener.\n */\nexport function listen(target, type, listener, opt_this, opt_once) {\n if (opt_this && opt_this !== target) {\n listener = listener.bind(opt_this);\n }\n if (opt_once) {\n var originalListener_1 = listener;\n listener = function () {\n target.removeEventListener(type, listener);\n originalListener_1.apply(this, arguments);\n };\n }\n var eventsKey = {\n target: target,\n type: type,\n listener: listener,\n };\n target.addEventListener(type, listener);\n return eventsKey;\n}\n/**\n * Registers a one-off event listener on an event target. Inspired by\n * https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html\n *\n * This function efficiently binds a `listener` as self-unregistering listener\n * to a `this` object, and returns a key for use with\n * {@link module:ol/events~unlistenByKey} in case the listener needs to be\n * unregistered before it is called.\n *\n * When {@link module:ol/events~listen} is called with the same arguments after this\n * function, the self-unregistering listener will be turned into a permanent\n * listener.\n *\n * @param {import(\"./events/Target.js\").EventTargetLike} target Event target.\n * @param {string} type Event type.\n * @param {ListenerFunction} listener Listener.\n * @param {Object=} opt_this Object referenced by the `this` keyword in the\n * listener. Default is the `target`.\n * @return {EventsKey} Key for unlistenByKey.\n */\nexport function listenOnce(target, type, listener, opt_this) {\n return listen(target, type, listener, opt_this, true);\n}\n/**\n * Unregisters event listeners on an event target. Inspired by\n * https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html\n *\n * The argument passed to this function is the key returned from\n * {@link module:ol/events~listen} or {@link module:ol/events~listenOnce}.\n *\n * @param {EventsKey} key The key.\n */\nexport function unlistenByKey(key) {\n if (key && key.target) {\n key.target.removeEventListener(key.type, key.listener);\n clear(key);\n }\n}\n//# sourceMappingURL=events.js.map","/**\n * @module ol/geom/flat/transform\n */\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {import(\"../../transform.js\").Transform} transform Transform.\n * @param {Array=} opt_dest Destination.\n * @return {Array} Transformed coordinates.\n */\nexport function transform2D(flatCoordinates, offset, end, stride, transform, opt_dest) {\n var dest = opt_dest ? opt_dest : [];\n var i = 0;\n for (var j = offset; j < end; j += stride) {\n var x = flatCoordinates[j];\n var y = flatCoordinates[j + 1];\n dest[i++] = transform[0] * x + transform[2] * y + transform[4];\n dest[i++] = transform[1] * x + transform[3] * y + transform[5];\n }\n if (opt_dest && dest.length != i) {\n dest.length = i;\n }\n return dest;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} angle Angle.\n * @param {Array} anchor Rotation anchor point.\n * @param {Array=} opt_dest Destination.\n * @return {Array} Transformed coordinates.\n */\nexport function rotate(flatCoordinates, offset, end, stride, angle, anchor, opt_dest) {\n var dest = opt_dest ? opt_dest : [];\n var cos = Math.cos(angle);\n var sin = Math.sin(angle);\n var anchorX = anchor[0];\n var anchorY = anchor[1];\n var i = 0;\n for (var j = offset; j < end; j += stride) {\n var deltaX = flatCoordinates[j] - anchorX;\n var deltaY = flatCoordinates[j + 1] - anchorY;\n dest[i++] = anchorX + deltaX * cos - deltaY * sin;\n dest[i++] = anchorY + deltaX * sin + deltaY * cos;\n for (var k = j + 2; k < j + stride; ++k) {\n dest[i++] = flatCoordinates[k];\n }\n }\n if (opt_dest && dest.length != i) {\n dest.length = i;\n }\n return dest;\n}\n/**\n * Scale the coordinates.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} sx Scale factor in the x-direction.\n * @param {number} sy Scale factor in the y-direction.\n * @param {Array} anchor Scale anchor point.\n * @param {Array=} opt_dest Destination.\n * @return {Array} Transformed coordinates.\n */\nexport function scale(flatCoordinates, offset, end, stride, sx, sy, anchor, opt_dest) {\n var dest = opt_dest ? opt_dest : [];\n var anchorX = anchor[0];\n var anchorY = anchor[1];\n var i = 0;\n for (var j = offset; j < end; j += stride) {\n var deltaX = flatCoordinates[j] - anchorX;\n var deltaY = flatCoordinates[j + 1] - anchorY;\n dest[i++] = anchorX + sx * deltaX;\n dest[i++] = anchorY + sy * deltaY;\n for (var k = j + 2; k < j + stride; ++k) {\n dest[i++] = flatCoordinates[k];\n }\n }\n if (opt_dest && dest.length != i) {\n dest.length = i;\n }\n return dest;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} deltaX Delta X.\n * @param {number} deltaY Delta Y.\n * @param {Array=} opt_dest Destination.\n * @return {Array} Transformed coordinates.\n */\nexport function translate(flatCoordinates, offset, end, stride, deltaX, deltaY, opt_dest) {\n var dest = opt_dest ? opt_dest : [];\n var i = 0;\n for (var j = offset; j < end; j += stride) {\n dest[i++] = flatCoordinates[j] + deltaX;\n dest[i++] = flatCoordinates[j + 1] + deltaY;\n for (var k = j + 2; k < j + stride; ++k) {\n dest[i++] = flatCoordinates[k];\n }\n }\n if (opt_dest && dest.length != i) {\n dest.length = i;\n }\n return dest;\n}\n//# sourceMappingURL=transform.js.map","/**\n * @module ol/functions\n */\nimport { equals as arrayEquals } from './array.js';\n/**\n * Always returns true.\n * @returns {boolean} true.\n */\nexport function TRUE() {\n return true;\n}\n/**\n * Always returns false.\n * @returns {boolean} false.\n */\nexport function FALSE() {\n return false;\n}\n/**\n * A reusable function, used e.g. as a default for callbacks.\n *\n * @return {void} Nothing.\n */\nexport function VOID() { }\n/**\n * Wrap a function in another function that remembers the last return. If the\n * returned function is called twice in a row with the same arguments and the same\n * this object, it will return the value from the first call in the second call.\n *\n * @param {function(...any): ReturnType} fn The function to memoize.\n * @return {function(...any): ReturnType} The memoized function.\n * @template ReturnType\n */\nexport function memoizeOne(fn) {\n var called = false;\n /** @type {ReturnType} */\n var lastResult;\n /** @type {Array} */\n var lastArgs;\n var lastThis;\n return function () {\n var nextArgs = Array.prototype.slice.call(arguments);\n if (!called || this !== lastThis || !arrayEquals(nextArgs, lastArgs)) {\n called = true;\n lastThis = this;\n lastArgs = nextArgs;\n lastResult = fn.apply(this, arguments);\n }\n return lastResult;\n };\n}\n//# sourceMappingURL=functions.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/geom/SimpleGeometry\n */\nimport Geometry from './Geometry.js';\nimport GeometryLayout from './GeometryLayout.js';\nimport { abstract } from '../util.js';\nimport { createOrUpdateFromFlatCoordinates, getCenter } from '../extent.js';\nimport { rotate, scale, transform2D, translate } from './flat/transform.js';\n/**\n * @classdesc\n * Abstract base class; only used for creating subclasses; do not instantiate\n * in apps, as cannot be rendered.\n *\n * @abstract\n * @api\n */\nvar SimpleGeometry = /** @class */ (function (_super) {\n __extends(SimpleGeometry, _super);\n function SimpleGeometry() {\n var _this = _super.call(this) || this;\n /**\n * @protected\n * @type {import(\"./GeometryLayout.js\").default}\n */\n _this.layout = GeometryLayout.XY;\n /**\n * @protected\n * @type {number}\n */\n _this.stride = 2;\n /**\n * @protected\n * @type {Array}\n */\n _this.flatCoordinates = null;\n return _this;\n }\n /**\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @protected\n * @return {import(\"../extent.js\").Extent} extent Extent.\n */\n SimpleGeometry.prototype.computeExtent = function (extent) {\n return createOrUpdateFromFlatCoordinates(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, extent);\n };\n /**\n * @abstract\n * @return {Array<*>} Coordinates.\n */\n SimpleGeometry.prototype.getCoordinates = function () {\n return abstract();\n };\n /**\n * Return the first coordinate of the geometry.\n * @return {import(\"../coordinate.js\").Coordinate} First coordinate.\n * @api\n */\n SimpleGeometry.prototype.getFirstCoordinate = function () {\n return this.flatCoordinates.slice(0, this.stride);\n };\n /**\n * @return {Array} Flat coordinates.\n */\n SimpleGeometry.prototype.getFlatCoordinates = function () {\n return this.flatCoordinates;\n };\n /**\n * Return the last coordinate of the geometry.\n * @return {import(\"../coordinate.js\").Coordinate} Last point.\n * @api\n */\n SimpleGeometry.prototype.getLastCoordinate = function () {\n return this.flatCoordinates.slice(this.flatCoordinates.length - this.stride);\n };\n /**\n * Return the {@link module:ol/geom/GeometryLayout layout} of the geometry.\n * @return {import(\"./GeometryLayout.js\").default} Layout.\n * @api\n */\n SimpleGeometry.prototype.getLayout = function () {\n return this.layout;\n };\n /**\n * Create a simplified version of this geometry using the Douglas Peucker algorithm.\n * @param {number} squaredTolerance Squared tolerance.\n * @return {SimpleGeometry} Simplified geometry.\n */\n SimpleGeometry.prototype.getSimplifiedGeometry = function (squaredTolerance) {\n if (this.simplifiedGeometryRevision !== this.getRevision()) {\n this.simplifiedGeometryMaxMinSquaredTolerance = 0;\n this.simplifiedGeometryRevision = this.getRevision();\n }\n // If squaredTolerance is negative or if we know that simplification will not\n // have any effect then just return this.\n if (squaredTolerance < 0 ||\n (this.simplifiedGeometryMaxMinSquaredTolerance !== 0 &&\n squaredTolerance <= this.simplifiedGeometryMaxMinSquaredTolerance)) {\n return this;\n }\n var simplifiedGeometry = this.getSimplifiedGeometryInternal(squaredTolerance);\n var simplifiedFlatCoordinates = simplifiedGeometry.getFlatCoordinates();\n if (simplifiedFlatCoordinates.length < this.flatCoordinates.length) {\n return simplifiedGeometry;\n }\n else {\n // Simplification did not actually remove any coordinates. We now know\n // that any calls to getSimplifiedGeometry with a squaredTolerance less\n // than or equal to the current squaredTolerance will also not have any\n // effect. This allows us to short circuit simplification (saving CPU\n // cycles) and prevents the cache of simplified geometries from filling\n // up with useless identical copies of this geometry (saving memory).\n this.simplifiedGeometryMaxMinSquaredTolerance = squaredTolerance;\n return this;\n }\n };\n /**\n * @param {number} squaredTolerance Squared tolerance.\n * @return {SimpleGeometry} Simplified geometry.\n * @protected\n */\n SimpleGeometry.prototype.getSimplifiedGeometryInternal = function (squaredTolerance) {\n return this;\n };\n /**\n * @return {number} Stride.\n */\n SimpleGeometry.prototype.getStride = function () {\n return this.stride;\n };\n /**\n * @param {import(\"./GeometryLayout.js\").default} layout Layout.\n * @param {Array} flatCoordinates Flat coordinates.\n */\n SimpleGeometry.prototype.setFlatCoordinates = function (layout, flatCoordinates) {\n this.stride = getStrideForLayout(layout);\n this.layout = layout;\n this.flatCoordinates = flatCoordinates;\n };\n /**\n * @abstract\n * @param {!Array<*>} coordinates Coordinates.\n * @param {import(\"./GeometryLayout.js\").default=} opt_layout Layout.\n */\n SimpleGeometry.prototype.setCoordinates = function (coordinates, opt_layout) {\n abstract();\n };\n /**\n * @param {import(\"./GeometryLayout.js\").default|undefined} layout Layout.\n * @param {Array<*>} coordinates Coordinates.\n * @param {number} nesting Nesting.\n * @protected\n */\n SimpleGeometry.prototype.setLayout = function (layout, coordinates, nesting) {\n /** @type {number} */\n var stride;\n if (layout) {\n stride = getStrideForLayout(layout);\n }\n else {\n for (var i = 0; i < nesting; ++i) {\n if (coordinates.length === 0) {\n this.layout = GeometryLayout.XY;\n this.stride = 2;\n return;\n }\n else {\n coordinates = /** @type {Array} */ (coordinates[0]);\n }\n }\n stride = coordinates.length;\n layout = getLayoutForStride(stride);\n }\n this.layout = layout;\n this.stride = stride;\n };\n /**\n * Apply a transform function to the coordinates of the geometry.\n * The geometry is modified in place.\n * If you do not want the geometry modified in place, first `clone()` it and\n * then use this function on the clone.\n * @param {import(\"../proj.js\").TransformFunction} transformFn Transform function.\n * Called with a flat array of geometry coordinates.\n * @api\n */\n SimpleGeometry.prototype.applyTransform = function (transformFn) {\n if (this.flatCoordinates) {\n transformFn(this.flatCoordinates, this.flatCoordinates, this.stride);\n this.changed();\n }\n };\n /**\n * Rotate the geometry around a given coordinate. This modifies the geometry\n * coordinates in place.\n * @param {number} angle Rotation angle in counter-clockwise radians.\n * @param {import(\"../coordinate.js\").Coordinate} anchor The rotation center.\n * @api\n */\n SimpleGeometry.prototype.rotate = function (angle, anchor) {\n var flatCoordinates = this.getFlatCoordinates();\n if (flatCoordinates) {\n var stride = this.getStride();\n rotate(flatCoordinates, 0, flatCoordinates.length, stride, angle, anchor, flatCoordinates);\n this.changed();\n }\n };\n /**\n * Scale the geometry (with an optional origin). This modifies the geometry\n * coordinates in place.\n * @param {number} sx The scaling factor in the x-direction.\n * @param {number=} opt_sy The scaling factor in the y-direction (defaults to sx).\n * @param {import(\"../coordinate.js\").Coordinate=} opt_anchor The scale origin (defaults to the center\n * of the geometry extent).\n * @api\n */\n SimpleGeometry.prototype.scale = function (sx, opt_sy, opt_anchor) {\n var sy = opt_sy;\n if (sy === undefined) {\n sy = sx;\n }\n var anchor = opt_anchor;\n if (!anchor) {\n anchor = getCenter(this.getExtent());\n }\n var flatCoordinates = this.getFlatCoordinates();\n if (flatCoordinates) {\n var stride = this.getStride();\n scale(flatCoordinates, 0, flatCoordinates.length, stride, sx, sy, anchor, flatCoordinates);\n this.changed();\n }\n };\n /**\n * Translate the geometry. This modifies the geometry coordinates in place. If\n * instead you want a new geometry, first `clone()` this geometry.\n * @param {number} deltaX Delta X.\n * @param {number} deltaY Delta Y.\n * @api\n */\n SimpleGeometry.prototype.translate = function (deltaX, deltaY) {\n var flatCoordinates = this.getFlatCoordinates();\n if (flatCoordinates) {\n var stride = this.getStride();\n translate(flatCoordinates, 0, flatCoordinates.length, stride, deltaX, deltaY, flatCoordinates);\n this.changed();\n }\n };\n return SimpleGeometry;\n}(Geometry));\n/**\n * @param {number} stride Stride.\n * @return {import(\"./GeometryLayout.js\").default} layout Layout.\n */\nfunction getLayoutForStride(stride) {\n var layout;\n if (stride == 2) {\n layout = GeometryLayout.XY;\n }\n else if (stride == 3) {\n layout = GeometryLayout.XYZ;\n }\n else if (stride == 4) {\n layout = GeometryLayout.XYZM;\n }\n return /** @type {import(\"./GeometryLayout.js\").default} */ (layout);\n}\n/**\n * @param {import(\"./GeometryLayout.js\").default} layout Layout.\n * @return {number} Stride.\n */\nexport function getStrideForLayout(layout) {\n var stride;\n if (layout == GeometryLayout.XY) {\n stride = 2;\n }\n else if (layout == GeometryLayout.XYZ || layout == GeometryLayout.XYM) {\n stride = 3;\n }\n else if (layout == GeometryLayout.XYZM) {\n stride = 4;\n }\n return /** @type {number} */ (stride);\n}\n/**\n * @param {SimpleGeometry} simpleGeometry Simple geometry.\n * @param {import(\"../transform.js\").Transform} transform Transform.\n * @param {Array=} opt_dest Destination.\n * @return {Array} Transformed flat coordinates.\n */\nexport function transformGeom2D(simpleGeometry, transform, opt_dest) {\n var flatCoordinates = simpleGeometry.getFlatCoordinates();\n if (!flatCoordinates) {\n return null;\n }\n else {\n var stride = simpleGeometry.getStride();\n return transform2D(flatCoordinates, 0, flatCoordinates.length, stride, transform, opt_dest);\n }\n}\nexport default SimpleGeometry;\n//# sourceMappingURL=SimpleGeometry.js.map","/**\n * @module ol/geom/flat/deflate\n */\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {import(\"../../coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {number} stride Stride.\n * @return {number} offset Offset.\n */\nexport function deflateCoordinate(flatCoordinates, offset, coordinate, stride) {\n for (var i = 0, ii = coordinate.length; i < ii; ++i) {\n flatCoordinates[offset++] = coordinate[i];\n }\n return offset;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} coordinates Coordinates.\n * @param {number} stride Stride.\n * @return {number} offset Offset.\n */\nexport function deflateCoordinates(flatCoordinates, offset, coordinates, stride) {\n for (var i = 0, ii = coordinates.length; i < ii; ++i) {\n var coordinate = coordinates[i];\n for (var j = 0; j < stride; ++j) {\n flatCoordinates[offset++] = coordinate[j];\n }\n }\n return offset;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} coordinatess Coordinatess.\n * @param {number} stride Stride.\n * @param {Array=} opt_ends Ends.\n * @return {Array} Ends.\n */\nexport function deflateCoordinatesArray(flatCoordinates, offset, coordinatess, stride, opt_ends) {\n var ends = opt_ends ? opt_ends : [];\n var i = 0;\n for (var j = 0, jj = coordinatess.length; j < jj; ++j) {\n var end = deflateCoordinates(flatCoordinates, offset, coordinatess[j], stride);\n ends[i++] = end;\n offset = end;\n }\n ends.length = i;\n return ends;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>>} coordinatesss Coordinatesss.\n * @param {number} stride Stride.\n * @param {Array>=} opt_endss Endss.\n * @return {Array>} Endss.\n */\nexport function deflateMultiCoordinatesArray(flatCoordinates, offset, coordinatesss, stride, opt_endss) {\n var endss = opt_endss ? opt_endss : [];\n var i = 0;\n for (var j = 0, jj = coordinatesss.length; j < jj; ++j) {\n var ends = deflateCoordinatesArray(flatCoordinates, offset, coordinatesss[j], stride, endss[i]);\n endss[i++] = ends;\n offset = ends[ends.length - 1];\n }\n endss.length = i;\n return endss;\n}\n//# sourceMappingURL=deflate.js.map","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","/**\n * @module ol/geom/flat/closest\n */\nimport { lerp, squaredDistance as squaredDx } from '../../math.js';\n/**\n * Returns the point on the 2D line segment flatCoordinates[offset1] to\n * flatCoordinates[offset2] that is closest to the point (x, y). Extra\n * dimensions are linearly interpolated.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset1 Offset 1.\n * @param {number} offset2 Offset 2.\n * @param {number} stride Stride.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {Array} closestPoint Closest point.\n */\nfunction assignClosest(flatCoordinates, offset1, offset2, stride, x, y, closestPoint) {\n var x1 = flatCoordinates[offset1];\n var y1 = flatCoordinates[offset1 + 1];\n var dx = flatCoordinates[offset2] - x1;\n var dy = flatCoordinates[offset2 + 1] - y1;\n var offset;\n if (dx === 0 && dy === 0) {\n offset = offset1;\n }\n else {\n var t = ((x - x1) * dx + (y - y1) * dy) / (dx * dx + dy * dy);\n if (t > 1) {\n offset = offset2;\n }\n else if (t > 0) {\n for (var i = 0; i < stride; ++i) {\n closestPoint[i] = lerp(flatCoordinates[offset1 + i], flatCoordinates[offset2 + i], t);\n }\n closestPoint.length = stride;\n return;\n }\n else {\n offset = offset1;\n }\n }\n for (var i = 0; i < stride; ++i) {\n closestPoint[i] = flatCoordinates[offset + i];\n }\n closestPoint.length = stride;\n}\n/**\n * Return the squared of the largest distance between any pair of consecutive\n * coordinates.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} max Max squared delta.\n * @return {number} Max squared delta.\n */\nexport function maxSquaredDelta(flatCoordinates, offset, end, stride, max) {\n var x1 = flatCoordinates[offset];\n var y1 = flatCoordinates[offset + 1];\n for (offset += stride; offset < end; offset += stride) {\n var x2 = flatCoordinates[offset];\n var y2 = flatCoordinates[offset + 1];\n var squaredDelta = squaredDx(x1, y1, x2, y2);\n if (squaredDelta > max) {\n max = squaredDelta;\n }\n x1 = x2;\n y1 = y2;\n }\n return max;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} max Max squared delta.\n * @return {number} Max squared delta.\n */\nexport function arrayMaxSquaredDelta(flatCoordinates, offset, ends, stride, max) {\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n max = maxSquaredDelta(flatCoordinates, offset, end, stride, max);\n offset = end;\n }\n return max;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} max Max squared delta.\n * @return {number} Max squared delta.\n */\nexport function multiArrayMaxSquaredDelta(flatCoordinates, offset, endss, stride, max) {\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n max = arrayMaxSquaredDelta(flatCoordinates, offset, ends, stride, max);\n offset = ends[ends.length - 1];\n }\n return max;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} maxDelta Max delta.\n * @param {boolean} isRing Is ring.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {Array} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @param {Array=} opt_tmpPoint Temporary point object.\n * @return {number} Minimum squared distance.\n */\nexport function assignClosestPoint(flatCoordinates, offset, end, stride, maxDelta, isRing, x, y, closestPoint, minSquaredDistance, opt_tmpPoint) {\n if (offset == end) {\n return minSquaredDistance;\n }\n var i, squaredDistance;\n if (maxDelta === 0) {\n // All points are identical, so just test the first point.\n squaredDistance = squaredDx(x, y, flatCoordinates[offset], flatCoordinates[offset + 1]);\n if (squaredDistance < minSquaredDistance) {\n for (i = 0; i < stride; ++i) {\n closestPoint[i] = flatCoordinates[offset + i];\n }\n closestPoint.length = stride;\n return squaredDistance;\n }\n else {\n return minSquaredDistance;\n }\n }\n var tmpPoint = opt_tmpPoint ? opt_tmpPoint : [NaN, NaN];\n var index = offset + stride;\n while (index < end) {\n assignClosest(flatCoordinates, index - stride, index, stride, x, y, tmpPoint);\n squaredDistance = squaredDx(x, y, tmpPoint[0], tmpPoint[1]);\n if (squaredDistance < minSquaredDistance) {\n minSquaredDistance = squaredDistance;\n for (i = 0; i < stride; ++i) {\n closestPoint[i] = tmpPoint[i];\n }\n closestPoint.length = stride;\n index += stride;\n }\n else {\n // Skip ahead multiple points, because we know that all the skipped\n // points cannot be any closer than the closest point we have found so\n // far. We know this because we know how close the current point is, how\n // close the closest point we have found so far is, and the maximum\n // distance between consecutive points. For example, if we're currently\n // at distance 10, the best we've found so far is 3, and that the maximum\n // distance between consecutive points is 2, then we'll need to skip at\n // least (10 - 3) / 2 == 3 (rounded down) points to have any chance of\n // finding a closer point. We use Math.max(..., 1) to ensure that we\n // always advance at least one point, to avoid an infinite loop.\n index +=\n stride *\n Math.max(((Math.sqrt(squaredDistance) - Math.sqrt(minSquaredDistance)) /\n maxDelta) |\n 0, 1);\n }\n }\n if (isRing) {\n // Check the closing segment.\n assignClosest(flatCoordinates, end - stride, offset, stride, x, y, tmpPoint);\n squaredDistance = squaredDx(x, y, tmpPoint[0], tmpPoint[1]);\n if (squaredDistance < minSquaredDistance) {\n minSquaredDistance = squaredDistance;\n for (i = 0; i < stride; ++i) {\n closestPoint[i] = tmpPoint[i];\n }\n closestPoint.length = stride;\n }\n }\n return minSquaredDistance;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} maxDelta Max delta.\n * @param {boolean} isRing Is ring.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {Array} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @param {Array=} opt_tmpPoint Temporary point object.\n * @return {number} Minimum squared distance.\n */\nexport function assignClosestArrayPoint(flatCoordinates, offset, ends, stride, maxDelta, isRing, x, y, closestPoint, minSquaredDistance, opt_tmpPoint) {\n var tmpPoint = opt_tmpPoint ? opt_tmpPoint : [NaN, NaN];\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n minSquaredDistance = assignClosestPoint(flatCoordinates, offset, end, stride, maxDelta, isRing, x, y, closestPoint, minSquaredDistance, tmpPoint);\n offset = end;\n }\n return minSquaredDistance;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} maxDelta Max delta.\n * @param {boolean} isRing Is ring.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {Array} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @param {Array=} opt_tmpPoint Temporary point object.\n * @return {number} Minimum squared distance.\n */\nexport function assignClosestMultiArrayPoint(flatCoordinates, offset, endss, stride, maxDelta, isRing, x, y, closestPoint, minSquaredDistance, opt_tmpPoint) {\n var tmpPoint = opt_tmpPoint ? opt_tmpPoint : [NaN, NaN];\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n minSquaredDistance = assignClosestArrayPoint(flatCoordinates, offset, ends, stride, maxDelta, isRing, x, y, closestPoint, minSquaredDistance, tmpPoint);\n offset = ends[ends.length - 1];\n }\n return minSquaredDistance;\n}\n//# sourceMappingURL=closest.js.map","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","/**\n * @module ol/rotationconstraint\n */\nimport { toRadians } from './math.js';\n/**\n * @typedef {function((number|undefined), boolean=): (number|undefined)} Type\n */\n/**\n * @param {number|undefined} rotation Rotation.\n * @return {number|undefined} Rotation.\n */\nexport function disable(rotation) {\n if (rotation !== undefined) {\n return 0;\n }\n else {\n return undefined;\n }\n}\n/**\n * @param {number|undefined} rotation Rotation.\n * @return {number|undefined} Rotation.\n */\nexport function none(rotation) {\n if (rotation !== undefined) {\n return rotation;\n }\n else {\n return undefined;\n }\n}\n/**\n * @param {number} n N.\n * @return {Type} Rotation constraint.\n */\nexport function createSnapToN(n) {\n var theta = (2 * Math.PI) / n;\n return (\n /**\n * @param {number|undefined} rotation Rotation.\n * @param {boolean=} opt_isMoving True if an interaction or animation is in progress.\n * @return {number|undefined} Rotation.\n */\n function (rotation, opt_isMoving) {\n if (opt_isMoving) {\n return rotation;\n }\n if (rotation !== undefined) {\n rotation = Math.floor(rotation / theta + 0.5) * theta;\n return rotation;\n }\n else {\n return undefined;\n }\n });\n}\n/**\n * @param {number=} opt_tolerance Tolerance.\n * @return {Type} Rotation constraint.\n */\nexport function createSnapToZero(opt_tolerance) {\n var tolerance = opt_tolerance || toRadians(5);\n return (\n /**\n * @param {number|undefined} rotation Rotation.\n * @param {boolean=} opt_isMoving True if an interaction or animation is in progress.\n * @return {number|undefined} Rotation.\n */\n function (rotation, opt_isMoving) {\n if (opt_isMoving) {\n return rotation;\n }\n if (rotation !== undefined) {\n if (Math.abs(rotation) <= tolerance) {\n return 0;\n }\n else {\n return rotation;\n }\n }\n else {\n return undefined;\n }\n });\n}\n//# sourceMappingURL=rotationconstraint.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export { configureStore } from 'redux-starter-kit';\nimport { __assign } from 'tslib';\nimport { filter } from 'rxjs/operators';\n\n/**\n * Flux standard action factory\n * @example\n * const clearTodos = action('[Todo] truncate');\n * @example\n * const fetchTodosRejected = (payload: Error) => action('[Todo] fetch rejected', payload);\n * @example\n * const addTodo = ({ name, completed = false }: Todo) => action('[Todo] add', { name, completed });\n * @example\n * const fetchTodosRejected = (payload: Error, meta?: Meta) => action('[Todo] fetch rejected', payload, meta);\n * @example\n * const addTodo = ({ name, completed = false }: Todo, meta?: Meta) => action('[Todo] add', { name, completed }, meta);\n */\nfunction createAction(type, payload, meta) {\n return __assign({ type: type }, (payload !== undefined ? { payload: payload } : {}), (meta !== undefined ? { meta: meta } : {}), (payload instanceof Error ? { error: true } : {}));\n}\n\n/**\n * Flux standard action creator factory\n * @example\n * createActionCreator('[Todo] truncate');\n * @example\n * createActionCreator(\n * '[Todo] fetch rejected',\n * resolve => (error: Error) => resolve(error)\n * );\n * @example\n * createActionCreator(\n * '[Todo] fetch rejected',\n * resolve => (error: Error, meta?: { status: number }) => resolve(error, meta)\n * )\n * @example\n * createActionCreator(\n * '[Todo] add',\n * resolve => (name: string, completed = false) => resolve({ name, completed })\n * )\n * @example\n * createActionCreator(\n * '[Todo] add',\n * resolve => (name: string, completed = false) => resolve({ name, completed }, 'Meta data of all todos')\n * )\n *\n */\nfunction createActionCreator(type, executor) {\n if (executor === void 0) { executor = function (resolve) { return (function () { return resolve(); }); }; }\n var callable = executor(function (payload, meta) {\n return createAction(type, payload, meta);\n });\n return Object.assign(callable, {\n type: type,\n toString: function () {\n return type;\n },\n });\n}\n\n/**\n * Map action creator to it's contained action type\n * @description it gets an object with at least a type property or overridden toString method and returns it.\n * @example\n * const increment = createActionCreator('[Counter] increment')\n * getType(increment) //=> '[Counter] increment'\n * @example\n * getType({ type: 'TEST' }) //=> 'TEST'\n * @example\n * getType({\n * toString() { return 'TEST' }\n * }) //=> 'TEST'\n */\nfunction getType(actionCreator) {\n if (!actionCreator.type && !actionCreator.hasOwnProperty('toString')) {\n throw new Error(\"Action creator that has been passed to getType() does not provide any API to expose action type. You can use createAction() to create an action creator without any unsense errors.\");\n }\n return (actionCreator.type || actionCreator.toString());\n}\n\n/**\n * Handler map factory\n * @description create an action(s) to reducer map\n * @example\n * createHandlerMap(increment, (state: number) => state + 1)\n * @example\n * createHandlerMap([increment, increase], (state: number) => state + 1)\n */\nfunction createHandlerMap(actionCreators, handler) {\n return (Array.isArray(actionCreators) ? actionCreators : [actionCreators])\n .map(getType)\n .reduce(function (acc, type) {\n acc[type] = handler;\n return acc;\n }, {});\n}\n\nvar merge = function () {\n var objs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n objs[_i] = arguments[_i];\n }\n return Object.assign.apply(Object, [{}].concat(objs));\n};\nfunction castArray(value) {\n return [].concat(value);\n}\n\n/**\n * Reducer factory\n * @description combines multiple handler map into single reducer\n * @example\n * const counter = createReducer(0, handleAction => [\n * handleAction(increment, state => state + 1),\n * handleAction(decrement, state => state - 1),\n * ])\n */\nfunction createReducer(defaultState, handlerMapsCreator) {\n var handlerMap = merge.apply(void 0, handlerMapsCreator(createHandlerMap));\n return function (state, action) {\n if (state === void 0) { state = defaultState; }\n var handler = handlerMap[action.type];\n return handler ? handler(state, action) : state;\n };\n}\n\nfunction ofType(keys) {\n var types = castArray(keys).map(function (key) {\n return typeof key === 'string' ? key : getType(key);\n });\n return filter(function (action) { return types.includes(action.type); });\n}\n\nexport { createAction as action, createActionCreator as createAction, createActionCreator, createReducer, getType, ofType };\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import $$observable from 'symbol-observable';\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\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 (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error('You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected the listener to be a function.');\n }\n\n if (isDispatching) {\n throw new Error('You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionDescription = actionType && \"action \\\"\" + String(actionType) + \"\\\"\" || 'an action';\n return \"Given \" + actionDescription + \", reducer \\\"\" + key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\";\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle \" + ActionTypes.INIT + \" or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(\"bindActionCreators expected an object or a function, instead received \" + (actionCreators === null ? 'null' : typeof actionCreators) + \". \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(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\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n keys.push.apply(keys, Object.getOwnPropertySymbols(object));\n }\n\n if (enumerableOnly) keys = keys.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error('Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread2({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\n","/**\n * @module ol/sphere\n */\nimport GeometryType from './geom/GeometryType.js';\nimport { toDegrees, toRadians } from './math.js';\n/**\n * Object literal with options for the {@link getLength} or {@link getArea}\n * functions.\n * @typedef {Object} SphereMetricOptions\n * @property {import(\"./proj.js\").ProjectionLike} [projection='EPSG:3857']\n * Projection of the geometry. By default, the geometry is assumed to be in\n * Web Mercator.\n * @property {number} [radius=6371008.8] Sphere radius. By default, the\n * [mean Earth radius](https://en.wikipedia.org/wiki/Earth_radius#Mean_radius)\n * for the WGS84 ellipsoid is used.\n */\n/**\n * The mean Earth radius (1/3 * (2a + b)) for the WGS84 ellipsoid.\n * https://en.wikipedia.org/wiki/Earth_radius#Mean_radius\n * @type {number}\n */\nexport var DEFAULT_RADIUS = 6371008.8;\n/**\n * Get the great circle distance (in meters) between two geographic coordinates.\n * @param {Array} c1 Starting coordinate.\n * @param {Array} c2 Ending coordinate.\n * @param {number=} opt_radius The sphere radius to use. Defaults to the Earth's\n * mean radius using the WGS84 ellipsoid.\n * @return {number} The great circle distance between the points (in meters).\n * @api\n */\nexport function getDistance(c1, c2, opt_radius) {\n var radius = opt_radius || DEFAULT_RADIUS;\n var lat1 = toRadians(c1[1]);\n var lat2 = toRadians(c2[1]);\n var deltaLatBy2 = (lat2 - lat1) / 2;\n var deltaLonBy2 = toRadians(c2[0] - c1[0]) / 2;\n var a = Math.sin(deltaLatBy2) * Math.sin(deltaLatBy2) +\n Math.sin(deltaLonBy2) *\n Math.sin(deltaLonBy2) *\n Math.cos(lat1) *\n Math.cos(lat2);\n return 2 * radius * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n}\n/**\n * Get the cumulative great circle length of linestring coordinates (geographic).\n * @param {Array} coordinates Linestring coordinates.\n * @param {number} radius The sphere radius to use.\n * @return {number} The length (in meters).\n */\nfunction getLengthInternal(coordinates, radius) {\n var length = 0;\n for (var i = 0, ii = coordinates.length; i < ii - 1; ++i) {\n length += getDistance(coordinates[i], coordinates[i + 1], radius);\n }\n return length;\n}\n/**\n * Get the spherical length of a geometry. This length is the sum of the\n * great circle distances between coordinates. For polygons, the length is\n * the sum of all rings. For points, the length is zero. For multi-part\n * geometries, the length is the sum of the length of each part.\n * @param {import(\"./geom/Geometry.js\").default} geometry A geometry.\n * @param {SphereMetricOptions=} opt_options Options for the\n * length calculation. By default, geometries are assumed to be in 'EPSG:3857'.\n * You can change this by providing a `projection` option.\n * @return {number} The spherical length (in meters).\n * @api\n */\nexport function getLength(geometry, opt_options) {\n var options = opt_options || {};\n var radius = options.radius || DEFAULT_RADIUS;\n var projection = options.projection || 'EPSG:3857';\n var type = geometry.getType();\n if (type !== GeometryType.GEOMETRY_COLLECTION) {\n geometry = geometry.clone().transform(projection, 'EPSG:4326');\n }\n var length = 0;\n var coordinates, coords, i, ii, j, jj;\n switch (type) {\n case GeometryType.POINT:\n case GeometryType.MULTI_POINT: {\n break;\n }\n case GeometryType.LINE_STRING:\n case GeometryType.LINEAR_RING: {\n coordinates = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (geometry).getCoordinates();\n length = getLengthInternal(coordinates, radius);\n break;\n }\n case GeometryType.MULTI_LINE_STRING:\n case GeometryType.POLYGON: {\n coordinates = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (geometry).getCoordinates();\n for (i = 0, ii = coordinates.length; i < ii; ++i) {\n length += getLengthInternal(coordinates[i], radius);\n }\n break;\n }\n case GeometryType.MULTI_POLYGON: {\n coordinates = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (geometry).getCoordinates();\n for (i = 0, ii = coordinates.length; i < ii; ++i) {\n coords = coordinates[i];\n for (j = 0, jj = coords.length; j < jj; ++j) {\n length += getLengthInternal(coords[j], radius);\n }\n }\n break;\n }\n case GeometryType.GEOMETRY_COLLECTION: {\n var geometries = /** @type {import(\"./geom/GeometryCollection.js\").default} */ (geometry).getGeometries();\n for (i = 0, ii = geometries.length; i < ii; ++i) {\n length += getLength(geometries[i], opt_options);\n }\n break;\n }\n default: {\n throw new Error('Unsupported geometry type: ' + type);\n }\n }\n return length;\n}\n/**\n * Returns the spherical area for a list of coordinates.\n *\n * [Reference](https://trs-new.jpl.nasa.gov/handle/2014/40409)\n * Robert. G. Chamberlain and William H. Duquette, \"Some Algorithms for\n * Polygons on a Sphere\", JPL Publication 07-03, Jet Propulsion\n * Laboratory, Pasadena, CA, June 2007\n *\n * @param {Array} coordinates List of coordinates of a linear\n * ring. If the ring is oriented clockwise, the area will be positive,\n * otherwise it will be negative.\n * @param {number} radius The sphere radius.\n * @return {number} Area (in square meters).\n */\nfunction getAreaInternal(coordinates, radius) {\n var area = 0;\n var len = coordinates.length;\n var x1 = coordinates[len - 1][0];\n var y1 = coordinates[len - 1][1];\n for (var i = 0; i < len; i++) {\n var x2 = coordinates[i][0];\n var y2 = coordinates[i][1];\n area +=\n toRadians(x2 - x1) *\n (2 + Math.sin(toRadians(y1)) + Math.sin(toRadians(y2)));\n x1 = x2;\n y1 = y2;\n }\n return (area * radius * radius) / 2.0;\n}\n/**\n * Get the spherical area of a geometry. This is the area (in meters) assuming\n * that polygon edges are segments of great circles on a sphere.\n * @param {import(\"./geom/Geometry.js\").default} geometry A geometry.\n * @param {SphereMetricOptions=} opt_options Options for the area\n * calculation. By default, geometries are assumed to be in 'EPSG:3857'.\n * You can change this by providing a `projection` option.\n * @return {number} The spherical area (in square meters).\n * @api\n */\nexport function getArea(geometry, opt_options) {\n var options = opt_options || {};\n var radius = options.radius || DEFAULT_RADIUS;\n var projection = options.projection || 'EPSG:3857';\n var type = geometry.getType();\n if (type !== GeometryType.GEOMETRY_COLLECTION) {\n geometry = geometry.clone().transform(projection, 'EPSG:4326');\n }\n var area = 0;\n var coordinates, coords, i, ii, j, jj;\n switch (type) {\n case GeometryType.POINT:\n case GeometryType.MULTI_POINT:\n case GeometryType.LINE_STRING:\n case GeometryType.MULTI_LINE_STRING:\n case GeometryType.LINEAR_RING: {\n break;\n }\n case GeometryType.POLYGON: {\n coordinates = /** @type {import(\"./geom/Polygon.js\").default} */ (geometry).getCoordinates();\n area = Math.abs(getAreaInternal(coordinates[0], radius));\n for (i = 1, ii = coordinates.length; i < ii; ++i) {\n area -= Math.abs(getAreaInternal(coordinates[i], radius));\n }\n break;\n }\n case GeometryType.MULTI_POLYGON: {\n coordinates = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (geometry).getCoordinates();\n for (i = 0, ii = coordinates.length; i < ii; ++i) {\n coords = coordinates[i];\n area += Math.abs(getAreaInternal(coords[0], radius));\n for (j = 1, jj = coords.length; j < jj; ++j) {\n area -= Math.abs(getAreaInternal(coords[j], radius));\n }\n }\n break;\n }\n case GeometryType.GEOMETRY_COLLECTION: {\n var geometries = /** @type {import(\"./geom/GeometryCollection.js\").default} */ (geometry).getGeometries();\n for (i = 0, ii = geometries.length; i < ii; ++i) {\n area += getArea(geometries[i], opt_options);\n }\n break;\n }\n default: {\n throw new Error('Unsupported geometry type: ' + type);\n }\n }\n return area;\n}\n/**\n * Returns the coordinate at the given distance and bearing from `c1`.\n *\n * @param {import(\"./coordinate.js\").Coordinate} c1 The origin point (`[lon, lat]` in degrees).\n * @param {number} distance The great-circle distance between the origin\n * point and the target point.\n * @param {number} bearing The bearing (in radians).\n * @param {number=} opt_radius The sphere radius to use. Defaults to the Earth's\n * mean radius using the WGS84 ellipsoid.\n * @return {import(\"./coordinate.js\").Coordinate} The target point.\n */\nexport function offset(c1, distance, bearing, opt_radius) {\n var radius = opt_radius || DEFAULT_RADIUS;\n var lat1 = toRadians(c1[1]);\n var lon1 = toRadians(c1[0]);\n var dByR = distance / radius;\n var lat = Math.asin(Math.sin(lat1) * Math.cos(dByR) +\n Math.cos(lat1) * Math.sin(dByR) * Math.cos(bearing));\n var lon = lon1 +\n Math.atan2(Math.sin(bearing) * Math.sin(dByR) * Math.cos(lat1), Math.cos(dByR) - Math.sin(lat1) * Math.sin(lat));\n return [toDegrees(lon), toDegrees(lat)];\n}\n//# sourceMappingURL=sphere.js.map","/**\n * @module ol/extent/Corner\n */\n/**\n * Extent corner.\n * @enum {string}\n */\nexport default {\n BOTTOM_LEFT: 'bottom-left',\n BOTTOM_RIGHT: 'bottom-right',\n TOP_LEFT: 'top-left',\n TOP_RIGHT: 'top-right',\n};\n//# sourceMappingURL=Corner.js.map","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(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 * @module ol/geom/flat/inflate\n */\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {Array=} opt_coordinates Coordinates.\n * @return {Array} Coordinates.\n */\nexport function inflateCoordinates(flatCoordinates, offset, end, stride, opt_coordinates) {\n var coordinates = opt_coordinates !== undefined ? opt_coordinates : [];\n var i = 0;\n for (var j = offset; j < end; j += stride) {\n coordinates[i++] = flatCoordinates.slice(j, j + stride);\n }\n coordinates.length = i;\n return coordinates;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {Array>=} opt_coordinatess Coordinatess.\n * @return {Array>} Coordinatess.\n */\nexport function inflateCoordinatesArray(flatCoordinates, offset, ends, stride, opt_coordinatess) {\n var coordinatess = opt_coordinatess !== undefined ? opt_coordinatess : [];\n var i = 0;\n for (var j = 0, jj = ends.length; j < jj; ++j) {\n var end = ends[j];\n coordinatess[i++] = inflateCoordinates(flatCoordinates, offset, end, stride, coordinatess[i]);\n offset = end;\n }\n coordinatess.length = i;\n return coordinatess;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {Array>>=} opt_coordinatesss\n * Coordinatesss.\n * @return {Array>>} Coordinatesss.\n */\nexport function inflateMultiCoordinatesArray(flatCoordinates, offset, endss, stride, opt_coordinatesss) {\n var coordinatesss = opt_coordinatesss !== undefined ? opt_coordinatesss : [];\n var i = 0;\n for (var j = 0, jj = endss.length; j < jj; ++j) {\n var ends = endss[j];\n coordinatesss[i++] = inflateCoordinatesArray(flatCoordinates, offset, ends, stride, coordinatesss[i]);\n offset = ends[ends.length - 1];\n }\n coordinatesss.length = i;\n return coordinatesss;\n}\n//# sourceMappingURL=inflate.js.map","/**\n * @module ol/geom/flat/simplify\n */\n// Based on simplify-js https://github.com/mourner/simplify-js\n// Copyright (c) 2012, Vladimir Agafonkin\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are met:\n//\n// 1. Redistributions of source code must retain the above copyright notice,\n// this list of conditions and the following disclaimer.\n//\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n// POSSIBILITY OF SUCH DAMAGE.\nimport { squaredDistance, squaredSegmentDistance } from '../../math.js';\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {boolean} highQuality Highest quality.\n * @param {Array=} opt_simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @return {Array} Simplified line string.\n */\nexport function simplifyLineString(flatCoordinates, offset, end, stride, squaredTolerance, highQuality, opt_simplifiedFlatCoordinates) {\n var simplifiedFlatCoordinates = opt_simplifiedFlatCoordinates !== undefined\n ? opt_simplifiedFlatCoordinates\n : [];\n if (!highQuality) {\n end = radialDistance(flatCoordinates, offset, end, stride, squaredTolerance, simplifiedFlatCoordinates, 0);\n flatCoordinates = simplifiedFlatCoordinates;\n offset = 0;\n stride = 2;\n }\n simplifiedFlatCoordinates.length = douglasPeucker(flatCoordinates, offset, end, stride, squaredTolerance, simplifiedFlatCoordinates, 0);\n return simplifiedFlatCoordinates;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @return {number} Simplified offset.\n */\nexport function douglasPeucker(flatCoordinates, offset, end, stride, squaredTolerance, simplifiedFlatCoordinates, simplifiedOffset) {\n var n = (end - offset) / stride;\n if (n < 3) {\n for (; offset < end; offset += stride) {\n simplifiedFlatCoordinates[simplifiedOffset++] = flatCoordinates[offset];\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset + 1];\n }\n return simplifiedOffset;\n }\n /** @type {Array} */\n var markers = new Array(n);\n markers[0] = 1;\n markers[n - 1] = 1;\n /** @type {Array} */\n var stack = [offset, end - stride];\n var index = 0;\n while (stack.length > 0) {\n var last = stack.pop();\n var first = stack.pop();\n var maxSquaredDistance = 0;\n var x1 = flatCoordinates[first];\n var y1 = flatCoordinates[first + 1];\n var x2 = flatCoordinates[last];\n var y2 = flatCoordinates[last + 1];\n for (var i = first + stride; i < last; i += stride) {\n var x = flatCoordinates[i];\n var y = flatCoordinates[i + 1];\n var squaredDistance_1 = squaredSegmentDistance(x, y, x1, y1, x2, y2);\n if (squaredDistance_1 > maxSquaredDistance) {\n index = i;\n maxSquaredDistance = squaredDistance_1;\n }\n }\n if (maxSquaredDistance > squaredTolerance) {\n markers[(index - offset) / stride] = 1;\n if (first + stride < index) {\n stack.push(first, index);\n }\n if (index + stride < last) {\n stack.push(index, last);\n }\n }\n }\n for (var i = 0; i < n; ++i) {\n if (markers[i]) {\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset + i * stride];\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset + i * stride + 1];\n }\n }\n return simplifiedOffset;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @param {Array} simplifiedEnds Simplified ends.\n * @return {number} Simplified offset.\n */\nexport function douglasPeuckerArray(flatCoordinates, offset, ends, stride, squaredTolerance, simplifiedFlatCoordinates, simplifiedOffset, simplifiedEnds) {\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n simplifiedOffset = douglasPeucker(flatCoordinates, offset, end, stride, squaredTolerance, simplifiedFlatCoordinates, simplifiedOffset);\n simplifiedEnds.push(simplifiedOffset);\n offset = end;\n }\n return simplifiedOffset;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @param {Array>} simplifiedEndss Simplified endss.\n * @return {number} Simplified offset.\n */\nexport function douglasPeuckerMultiArray(flatCoordinates, offset, endss, stride, squaredTolerance, simplifiedFlatCoordinates, simplifiedOffset, simplifiedEndss) {\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n var simplifiedEnds = [];\n simplifiedOffset = douglasPeuckerArray(flatCoordinates, offset, ends, stride, squaredTolerance, simplifiedFlatCoordinates, simplifiedOffset, simplifiedEnds);\n simplifiedEndss.push(simplifiedEnds);\n offset = ends[ends.length - 1];\n }\n return simplifiedOffset;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @return {number} Simplified offset.\n */\nexport function radialDistance(flatCoordinates, offset, end, stride, squaredTolerance, simplifiedFlatCoordinates, simplifiedOffset) {\n if (end <= offset + stride) {\n // zero or one point, no simplification possible, so copy and return\n for (; offset < end; offset += stride) {\n simplifiedFlatCoordinates[simplifiedOffset++] = flatCoordinates[offset];\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset + 1];\n }\n return simplifiedOffset;\n }\n var x1 = flatCoordinates[offset];\n var y1 = flatCoordinates[offset + 1];\n // copy first point\n simplifiedFlatCoordinates[simplifiedOffset++] = x1;\n simplifiedFlatCoordinates[simplifiedOffset++] = y1;\n var x2 = x1;\n var y2 = y1;\n for (offset += stride; offset < end; offset += stride) {\n x2 = flatCoordinates[offset];\n y2 = flatCoordinates[offset + 1];\n if (squaredDistance(x1, y1, x2, y2) > squaredTolerance) {\n // copy point at offset\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n x1 = x2;\n y1 = y2;\n }\n }\n if (x2 != x1 || y2 != y1) {\n // copy last point\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n }\n return simplifiedOffset;\n}\n/**\n * @param {number} value Value.\n * @param {number} tolerance Tolerance.\n * @return {number} Rounded value.\n */\nexport function snap(value, tolerance) {\n return tolerance * Math.round(value / tolerance);\n}\n/**\n * Simplifies a line string using an algorithm designed by Tim Schaub.\n * Coordinates are snapped to the nearest value in a virtual grid and\n * consecutive duplicate coordinates are discarded. This effectively preserves\n * topology as the simplification of any subsection of a line string is\n * independent of the rest of the line string. This means that, for examples,\n * the common edge between two polygons will be simplified to the same line\n * string independently in both polygons. This implementation uses a single\n * pass over the coordinates and eliminates intermediate collinear points.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} tolerance Tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @return {number} Simplified offset.\n */\nexport function quantize(flatCoordinates, offset, end, stride, tolerance, simplifiedFlatCoordinates, simplifiedOffset) {\n // do nothing if the line is empty\n if (offset == end) {\n return simplifiedOffset;\n }\n // snap the first coordinate (P1)\n var x1 = snap(flatCoordinates[offset], tolerance);\n var y1 = snap(flatCoordinates[offset + 1], tolerance);\n offset += stride;\n // add the first coordinate to the output\n simplifiedFlatCoordinates[simplifiedOffset++] = x1;\n simplifiedFlatCoordinates[simplifiedOffset++] = y1;\n // find the next coordinate that does not snap to the same value as the first\n // coordinate (P2)\n var x2, y2;\n do {\n x2 = snap(flatCoordinates[offset], tolerance);\n y2 = snap(flatCoordinates[offset + 1], tolerance);\n offset += stride;\n if (offset == end) {\n // all coordinates snap to the same value, the line collapses to a point\n // push the last snapped value anyway to ensure that the output contains\n // at least two points\n // FIXME should we really return at least two points anyway?\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n return simplifiedOffset;\n }\n } while (x2 == x1 && y2 == y1);\n while (offset < end) {\n // snap the next coordinate (P3)\n var x3 = snap(flatCoordinates[offset], tolerance);\n var y3 = snap(flatCoordinates[offset + 1], tolerance);\n offset += stride;\n // skip P3 if it is equal to P2\n if (x3 == x2 && y3 == y2) {\n continue;\n }\n // calculate the delta between P1 and P2\n var dx1 = x2 - x1;\n var dy1 = y2 - y1;\n // calculate the delta between P3 and P1\n var dx2 = x3 - x1;\n var dy2 = y3 - y1;\n // if P1, P2, and P3 are colinear and P3 is further from P1 than P2 is from\n // P1 in the same direction then P2 is on the straight line between P1 and\n // P3\n if (dx1 * dy2 == dy1 * dx2 &&\n ((dx1 < 0 && dx2 < dx1) || dx1 == dx2 || (dx1 > 0 && dx2 > dx1)) &&\n ((dy1 < 0 && dy2 < dy1) || dy1 == dy2 || (dy1 > 0 && dy2 > dy1))) {\n // discard P2 and set P2 = P3\n x2 = x3;\n y2 = y3;\n continue;\n }\n // either P1, P2, and P3 are not colinear, or they are colinear but P3 is\n // between P3 and P1 or on the opposite half of the line to P2. add P2,\n // and continue with P1 = P2 and P2 = P3\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n x1 = x2;\n y1 = y2;\n x2 = x3;\n y2 = y3;\n }\n // add the last point (P2)\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n return simplifiedOffset;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} tolerance Tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @param {Array} simplifiedEnds Simplified ends.\n * @return {number} Simplified offset.\n */\nexport function quantizeArray(flatCoordinates, offset, ends, stride, tolerance, simplifiedFlatCoordinates, simplifiedOffset, simplifiedEnds) {\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n simplifiedOffset = quantize(flatCoordinates, offset, end, stride, tolerance, simplifiedFlatCoordinates, simplifiedOffset);\n simplifiedEnds.push(simplifiedOffset);\n offset = end;\n }\n return simplifiedOffset;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} tolerance Tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @param {Array>} simplifiedEndss Simplified endss.\n * @return {number} Simplified offset.\n */\nexport function quantizeMultiArray(flatCoordinates, offset, endss, stride, tolerance, simplifiedFlatCoordinates, simplifiedOffset, simplifiedEndss) {\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n var simplifiedEnds = [];\n simplifiedOffset = quantizeArray(flatCoordinates, offset, ends, stride, tolerance, simplifiedFlatCoordinates, simplifiedOffset, simplifiedEnds);\n simplifiedEndss.push(simplifiedEnds);\n offset = ends[ends.length - 1];\n }\n return simplifiedOffset;\n}\n//# sourceMappingURL=simplify.js.map","/**\n * @module ol/events/Event\n */\n/**\n * @classdesc\n * Stripped down implementation of the W3C DOM Level 2 Event interface.\n * See https://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-interface.\n *\n * This implementation only provides `type` and `target` properties, and\n * `stopPropagation` and `preventDefault` methods. It is meant as base class\n * for higher level events defined in the library, and works with\n * {@link module:ol/events/Target~Target}.\n */\nvar BaseEvent = /** @class */ (function () {\n /**\n * @param {string} type Type.\n */\n function BaseEvent(type) {\n /**\n * @type {boolean}\n */\n this.propagationStopped;\n /**\n * The event type.\n * @type {string}\n * @api\n */\n this.type = type;\n /**\n * The event target.\n * @type {Object}\n * @api\n */\n this.target = null;\n }\n /**\n * Stop event propagation.\n * @api\n */\n BaseEvent.prototype.preventDefault = function () {\n this.propagationStopped = true;\n };\n /**\n * Stop event propagation.\n * @api\n */\n BaseEvent.prototype.stopPropagation = function () {\n this.propagationStopped = true;\n };\n return BaseEvent;\n}());\n/**\n * @param {Event|import(\"./Event.js\").default} evt Event\n */\nexport function stopPropagation(evt) {\n evt.stopPropagation();\n}\n/**\n * @param {Event|import(\"./Event.js\").default} evt Event\n */\nexport function preventDefault(evt) {\n evt.preventDefault();\n}\nexport default BaseEvent;\n//# sourceMappingURL=Event.js.map","/**\n * @module ol/geom/flat/area\n */\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @return {number} Area.\n */\nexport function linearRing(flatCoordinates, offset, end, stride) {\n var twiceArea = 0;\n var x1 = flatCoordinates[end - stride];\n var y1 = flatCoordinates[end - stride + 1];\n for (; offset < end; offset += stride) {\n var x2 = flatCoordinates[offset];\n var y2 = flatCoordinates[offset + 1];\n twiceArea += y1 * x2 - x1 * y2;\n x1 = x2;\n y1 = y2;\n }\n return twiceArea / 2;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @return {number} Area.\n */\nexport function linearRings(flatCoordinates, offset, ends, stride) {\n var area = 0;\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n area += linearRing(flatCoordinates, offset, end, stride);\n offset = end;\n }\n return area;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @return {number} Area.\n */\nexport function linearRingss(flatCoordinates, offset, endss, stride) {\n var area = 0;\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n area += linearRings(flatCoordinates, offset, ends, stride);\n offset = ends[ends.length - 1];\n }\n return area;\n}\n//# sourceMappingURL=area.js.map","/**\n * @module ol/geom/flat/reverse\n */\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n */\nexport function coordinates(flatCoordinates, offset, end, stride) {\n while (offset < end - stride) {\n for (var i = 0; i < stride; ++i) {\n var tmp = flatCoordinates[offset + i];\n flatCoordinates[offset + i] = flatCoordinates[end - stride + i];\n flatCoordinates[end - stride + i] = tmp;\n }\n offset += stride;\n end -= stride;\n }\n}\n//# sourceMappingURL=reverse.js.map","/**\n * @module ol/geom/flat/orient\n */\nimport { coordinates as reverseCoordinates } from './reverse.js';\n/**\n * Is the linear ring oriented clockwise in a coordinate system with a bottom-left\n * coordinate origin? For a coordinate system with a top-left coordinate origin,\n * the ring's orientation is clockwise when this function returns false.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @return {boolean} Is clockwise.\n */\nexport function linearRingIsClockwise(flatCoordinates, offset, end, stride) {\n // http://tinyurl.com/clockwise-method\n // https://github.com/OSGeo/gdal/blob/trunk/gdal/ogr/ogrlinearring.cpp\n var edge = 0;\n var x1 = flatCoordinates[end - stride];\n var y1 = flatCoordinates[end - stride + 1];\n for (; offset < end; offset += stride) {\n var x2 = flatCoordinates[offset];\n var y2 = flatCoordinates[offset + 1];\n edge += (x2 - x1) * (y2 + y1);\n x1 = x2;\n y1 = y2;\n }\n return edge === 0 ? undefined : edge > 0;\n}\n/**\n * Determines if linear rings are oriented. By default, left-hand orientation\n * is tested (first ring must be clockwise, remaining rings counter-clockwise).\n * To test for right-hand orientation, use the `opt_right` argument.\n *\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Array of end indexes.\n * @param {number} stride Stride.\n * @param {boolean=} opt_right Test for right-hand orientation\n * (counter-clockwise exterior ring and clockwise interior rings).\n * @return {boolean} Rings are correctly oriented.\n */\nexport function linearRingsAreOriented(flatCoordinates, offset, ends, stride, opt_right) {\n var right = opt_right !== undefined ? opt_right : false;\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n var isClockwise = linearRingIsClockwise(flatCoordinates, offset, end, stride);\n if (i === 0) {\n if ((right && isClockwise) || (!right && !isClockwise)) {\n return false;\n }\n }\n else {\n if ((right && !isClockwise) || (!right && isClockwise)) {\n return false;\n }\n }\n offset = end;\n }\n return true;\n}\n/**\n * Determines if linear rings are oriented. By default, left-hand orientation\n * is tested (first ring must be clockwise, remaining rings counter-clockwise).\n * To test for right-hand orientation, use the `opt_right` argument.\n *\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Array of array of end indexes.\n * @param {number} stride Stride.\n * @param {boolean=} opt_right Test for right-hand orientation\n * (counter-clockwise exterior ring and clockwise interior rings).\n * @return {boolean} Rings are correctly oriented.\n */\nexport function linearRingssAreOriented(flatCoordinates, offset, endss, stride, opt_right) {\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n if (!linearRingsAreOriented(flatCoordinates, offset, ends, stride, opt_right)) {\n return false;\n }\n if (ends.length) {\n offset = ends[ends.length - 1];\n }\n }\n return true;\n}\n/**\n * Orient coordinates in a flat array of linear rings. By default, rings\n * are oriented following the left-hand rule (clockwise for exterior and\n * counter-clockwise for interior rings). To orient according to the\n * right-hand rule, use the `opt_right` argument.\n *\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {boolean=} opt_right Follow the right-hand rule for orientation.\n * @return {number} End.\n */\nexport function orientLinearRings(flatCoordinates, offset, ends, stride, opt_right) {\n var right = opt_right !== undefined ? opt_right : false;\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n var isClockwise = linearRingIsClockwise(flatCoordinates, offset, end, stride);\n var reverse = i === 0\n ? (right && isClockwise) || (!right && !isClockwise)\n : (right && !isClockwise) || (!right && isClockwise);\n if (reverse) {\n reverseCoordinates(flatCoordinates, offset, end, stride);\n }\n offset = end;\n }\n return offset;\n}\n/**\n * Orient coordinates in a flat array of linear rings. By default, rings\n * are oriented following the left-hand rule (clockwise for exterior and\n * counter-clockwise for interior rings). To orient according to the\n * right-hand rule, use the `opt_right` argument.\n *\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Array of array of end indexes.\n * @param {number} stride Stride.\n * @param {boolean=} opt_right Follow the right-hand rule for orientation.\n * @return {number} End.\n */\nexport function orientLinearRingsArray(flatCoordinates, offset, endss, stride, opt_right) {\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n offset = orientLinearRings(flatCoordinates, offset, endss[i], stride, opt_right);\n }\n return offset;\n}\n//# sourceMappingURL=orient.js.map","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/Object\n */\nimport Event from './events/Event.js';\nimport ObjectEventType from './ObjectEventType.js';\nimport Observable from './Observable.js';\nimport { assign, isEmpty } from './obj.js';\nimport { getUid } from './util.js';\n/**\n * @classdesc\n * Events emitted by {@link module:ol/Object~BaseObject} instances are instances of this type.\n */\nvar ObjectEvent = /** @class */ (function (_super) {\n __extends(ObjectEvent, _super);\n /**\n * @param {string} type The event type.\n * @param {string} key The property name.\n * @param {*} oldValue The old value for `key`.\n */\n function ObjectEvent(type, key, oldValue) {\n var _this = _super.call(this, type) || this;\n /**\n * The name of the property whose value is changing.\n * @type {string}\n * @api\n */\n _this.key = key;\n /**\n * The old value. To get the new value use `e.target.get(e.key)` where\n * `e` is the event object.\n * @type {*}\n * @api\n */\n _this.oldValue = oldValue;\n return _this;\n }\n return ObjectEvent;\n}(Event));\nexport { ObjectEvent };\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * Most non-trivial classes inherit from this.\n *\n * This extends {@link module:ol/Observable} with observable\n * properties, where each property is observable as well as the object as a\n * whole.\n *\n * Classes that inherit from this have pre-defined properties, to which you can\n * add your owns. The pre-defined properties are listed in this documentation as\n * 'Observable Properties', and have their own accessors; for example,\n * {@link module:ol/Map~Map} has a `target` property, accessed with\n * `getTarget()` and changed with `setTarget()`. Not all properties are however\n * settable. There are also general-purpose accessors `get()` and `set()`. For\n * example, `get('target')` is equivalent to `getTarget()`.\n *\n * The `set` accessors trigger a change event, and you can monitor this by\n * registering a listener. For example, {@link module:ol/View~View} has a\n * `center` property, so `view.on('change:center', function(evt) {...});` would\n * call the function whenever the value of the center property changes. Within\n * the function, `evt.target` would be the view, so `evt.target.getCenter()`\n * would return the new center.\n *\n * You can add your own observable properties with\n * `object.set('prop', 'value')`, and retrieve that with `object.get('prop')`.\n * You can listen for changes on that property value with\n * `object.on('change:prop', listener)`. You can get a list of all\n * properties with {@link module:ol/Object~BaseObject#getProperties}.\n *\n * Note that the observable properties are separate from standard JS properties.\n * You can, for example, give your map object a title with\n * `map.title='New title'` and with `map.set('title', 'Another title')`. The\n * first will be a `hasOwnProperty`; the second will appear in\n * `getProperties()`. Only the second is observable.\n *\n * Properties can be deleted by using the unset method. E.g.\n * object.unset('foo').\n *\n * @fires ObjectEvent\n * @api\n */\nvar BaseObject = /** @class */ (function (_super) {\n __extends(BaseObject, _super);\n /**\n * @param {Object=} opt_values An object with key-value pairs.\n */\n function BaseObject(opt_values) {\n var _this = _super.call(this) || this;\n // Call {@link module:ol/util~getUid} to ensure that the order of objects' ids is\n // the same as the order in which they were created. This also helps to\n // ensure that object properties are always added in the same order, which\n // helps many JavaScript engines generate faster code.\n getUid(_this);\n /**\n * @private\n * @type {Object}\n */\n _this.values_ = null;\n if (opt_values !== undefined) {\n _this.setProperties(opt_values);\n }\n return _this;\n }\n /**\n * Gets a value.\n * @param {string} key Key name.\n * @return {*} Value.\n * @api\n */\n BaseObject.prototype.get = function (key) {\n var value;\n if (this.values_ && this.values_.hasOwnProperty(key)) {\n value = this.values_[key];\n }\n return value;\n };\n /**\n * Get a list of object property names.\n * @return {Array} List of property names.\n * @api\n */\n BaseObject.prototype.getKeys = function () {\n return (this.values_ && Object.keys(this.values_)) || [];\n };\n /**\n * Get an object of all property names and values.\n * @return {Object} Object.\n * @api\n */\n BaseObject.prototype.getProperties = function () {\n return (this.values_ && assign({}, this.values_)) || {};\n };\n /**\n * @return {boolean} The object has properties.\n */\n BaseObject.prototype.hasProperties = function () {\n return !!this.values_;\n };\n /**\n * @param {string} key Key name.\n * @param {*} oldValue Old value.\n */\n BaseObject.prototype.notify = function (key, oldValue) {\n var eventType;\n eventType = getChangeEventType(key);\n this.dispatchEvent(new ObjectEvent(eventType, key, oldValue));\n eventType = ObjectEventType.PROPERTYCHANGE;\n this.dispatchEvent(new ObjectEvent(eventType, key, oldValue));\n };\n /**\n * Sets a value.\n * @param {string} key Key name.\n * @param {*} value Value.\n * @param {boolean=} opt_silent Update without triggering an event.\n * @api\n */\n BaseObject.prototype.set = function (key, value, opt_silent) {\n var values = this.values_ || (this.values_ = {});\n if (opt_silent) {\n values[key] = value;\n }\n else {\n var oldValue = values[key];\n values[key] = value;\n if (oldValue !== value) {\n this.notify(key, oldValue);\n }\n }\n };\n /**\n * Sets a collection of key-value pairs. Note that this changes any existing\n * properties and adds new ones (it does not remove any existing properties).\n * @param {Object} values Values.\n * @param {boolean=} opt_silent Update without triggering an event.\n * @api\n */\n BaseObject.prototype.setProperties = function (values, opt_silent) {\n for (var key in values) {\n this.set(key, values[key], opt_silent);\n }\n };\n /**\n * Apply any properties from another object without triggering events.\n * @param {BaseObject} source The source object.\n * @protected\n */\n BaseObject.prototype.applyProperties = function (source) {\n if (!source.values_) {\n return;\n }\n assign(this.values_ || (this.values_ = {}), source.values_);\n };\n /**\n * Unsets a property.\n * @param {string} key Key name.\n * @param {boolean=} opt_silent Unset without triggering an event.\n * @api\n */\n BaseObject.prototype.unset = function (key, opt_silent) {\n if (this.values_ && key in this.values_) {\n var oldValue = this.values_[key];\n delete this.values_[key];\n if (isEmpty(this.values_)) {\n this.values_ = null;\n }\n if (!opt_silent) {\n this.notify(key, oldValue);\n }\n }\n };\n return BaseObject;\n}(Observable));\n/**\n * @type {Object}\n */\nvar changeEventTypeCache = {};\n/**\n * @param {string} key Key name.\n * @return {string} Change name.\n */\nexport function getChangeEventType(key) {\n return changeEventTypeCache.hasOwnProperty(key)\n ? changeEventTypeCache[key]\n : (changeEventTypeCache[key] = 'change:' + key);\n}\nexport default BaseObject;\n//# sourceMappingURL=Object.js.map","/**\n * @module ol/easing\n */\n/**\n * Start slow and speed up.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function easeIn(t) {\n return Math.pow(t, 3);\n}\n/**\n * Start fast and slow down.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function easeOut(t) {\n return 1 - easeIn(1 - t);\n}\n/**\n * Start slow, speed up, and then slow down again.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function inAndOut(t) {\n return 3 * t * t - 2 * t * t * t;\n}\n/**\n * Maintain a constant speed over time.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function linear(t) {\n return t;\n}\n/**\n * Start slow, speed up, and at the very end slow down again. This has the\n * same general behavior as {@link module:ol/easing~inAndOut}, but the final\n * slowdown is delayed.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function upAndDown(t) {\n if (t < 0.5) {\n return inAndOut(2 * t);\n }\n else {\n return 1 - inAndOut(2 * (t - 0.5));\n }\n}\n//# sourceMappingURL=easing.js.map","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function warn(s) {\n console.warn('[react-ga]', s);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport warn from '../utils/console/warn';\nvar NEWTAB = '_blank';\nvar MIDDLECLICK = 1;\n\nvar OutboundLink = /*#__PURE__*/function (_Component) {\n _inherits(OutboundLink, _Component);\n\n var _super = _createSuper(OutboundLink);\n\n function OutboundLink() {\n var _this;\n\n _classCallCheck(this, OutboundLink);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"handleClick\", function (event) {\n var _this$props = _this.props,\n target = _this$props.target,\n eventLabel = _this$props.eventLabel,\n to = _this$props.to,\n onClick = _this$props.onClick,\n trackerNames = _this$props.trackerNames;\n var eventMeta = {\n label: eventLabel\n };\n var sameTarget = target !== NEWTAB;\n var normalClick = !(event.ctrlKey || event.shiftKey || event.metaKey || event.button === MIDDLECLICK);\n\n if (sameTarget && normalClick) {\n event.preventDefault();\n OutboundLink.trackLink(eventMeta, function () {\n window.location.href = to;\n }, trackerNames);\n } else {\n OutboundLink.trackLink(eventMeta, function () {}, trackerNames);\n }\n\n if (onClick) {\n onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(OutboundLink, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n href = _this$props2.to,\n target = _this$props2.target,\n oldProps = _objectWithoutProperties(_this$props2, [\"to\", \"target\"]);\n\n var props = _objectSpread(_objectSpread({}, oldProps), {}, {\n target: target,\n href: href,\n onClick: this.handleClick\n });\n\n if (target === NEWTAB) {\n props.rel = \"\".concat(props.rel ? props.rel : '', \" noopener noreferrer\").trim();\n }\n\n delete props.eventLabel;\n delete props.trackerNames;\n return /*#__PURE__*/React.createElement('a', props);\n }\n }]);\n\n return OutboundLink;\n}(Component);\n\n_defineProperty(OutboundLink, \"trackLink\", function () {\n warn('ga tracking not enabled');\n});\n\nexport { OutboundLink as default };\nOutboundLink.propTypes = {\n eventLabel: PropTypes.string.isRequired,\n target: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n trackerNames: PropTypes.arrayOf(PropTypes.string)\n};\nOutboundLink.defaultProps = {\n target: null,\n to: null,\n onClick: null,\n trackerNames: null\n};","import warn from './console/warn';\nimport mightBeEmail from './mightBeEmail';\nvar redacted = 'REDACTED (Potential Email Address)';\nexport default function redactEmail(string) {\n if (mightBeEmail(string)) {\n warn('This arg looks like an email address, redacting.');\n return redacted;\n }\n\n return string;\n}","// See if s could be an email address. We don't want to send personal data like email.\n// https://support.google.com/analytics/answer/2795983?hl=en\nexport default function mightBeEmail(s) {\n // There's no point trying to validate rfc822 fully, just look for ...@...\n return typeof s === 'string' && s.indexOf('@') !== -1;\n}","// GA strings need to have leading/trailing whitespace trimmed, and not all\n// browsers have String.prototoype.trim().\nexport default function trim(s) {\n return s && s.toString().replace(/^\\s+|\\s+$/g, '');\n}","/**\n * To Title Case 2.1 - http://individed.com/code/to-title-case/\n * Copyright 2008-2013 David Gouch. Licensed under the MIT License.\n * https://github.com/gouch/to-title-case\n */\nimport trim from './trim';\nvar smallWords = /^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\\.?|via)$/i; // test\n\nexport default function toTitleCase(string) {\n return trim(string).replace(/[A-Za-z0-9\\u00C0-\\u00FF]+[^\\s-]*/g, function (match, index, title) {\n if (index > 0 && index + match.length !== title.length && match.search(smallWords) > -1 && title.charAt(index - 2) !== ':' && (title.charAt(index + match.length) !== '-' || title.charAt(index - 1) === '-') && title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n\n return match.charAt(0).toUpperCase() + match.substr(1);\n });\n}","var isLoaded = false;\nexport default function (options) {\n if (isLoaded) return;\n isLoaded = true;\n var gaAddress = 'https://www.google-analytics.com/analytics.js';\n\n if (options && options.gaAddress) {\n gaAddress = options.gaAddress;\n } else if (options && options.debug) {\n gaAddress = 'https://www.google-analytics.com/analytics_debug.js';\n }\n\n var onerror = options && options.onerror; // https://developers.google.com/analytics/devguides/collection/analyticsjs/\n\n /* eslint-disable */\n\n (function (i, s, o, g, r, a, m) {\n i['GoogleAnalyticsObject'] = r;\n i[r] = i[r] || function () {\n (i[r].q = i[r].q || []).push(arguments);\n }, i[r].l = 1 * new Date();\n a = s.createElement(o), m = s.getElementsByTagName(o)[0];\n a.async = 1;\n a.src = g;\n a.onerror = onerror;\n m.parentNode.insertBefore(a, m);\n })(window, document, 'script', gaAddress, 'ga');\n /* eslint-enable */\n\n}","export default function log(s) {\n console.info('[react-ga]', s);\n}","export var gaCalls = [];\nexport default {\n calls: gaCalls,\n ga: function ga() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n gaCalls.push([].concat(args));\n },\n resetCalls: function resetCalls() {\n gaCalls.length = 0;\n }\n};","function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * React Google Analytics Module\n *\n * @package react-ga\n * @author Adam Lofting \n * Atul Varma \n */\n\n/**\n * Utilities\n */\nimport format from './utils/format';\nimport removeLeadingSlash from './utils/removeLeadingSlash';\nimport trim from './utils/trim';\nimport loadGA from './utils/loadGA';\nimport warn from './utils/console/warn';\nimport log from './utils/console/log';\nimport TestModeAPI from './utils/testModeAPI';\n\nvar _isNotBrowser = typeof window === 'undefined' || typeof document === 'undefined';\n\nvar _debug = false;\nvar _titleCase = true;\nvar _testMode = false;\nvar _alwaysSendToDefaultTracker = true;\nvar _redactEmail = true;\n\nvar internalGa = function internalGa() {\n var _window;\n\n if (_testMode) return TestModeAPI.ga.apply(TestModeAPI, arguments);\n if (_isNotBrowser) return false;\n if (!window.ga) return warn('ReactGA.initialize must be called first or GoogleAnalytics should be loaded manually');\n return (_window = window).ga.apply(_window, arguments);\n};\n\nfunction _format(s) {\n return format(s, _titleCase, _redactEmail);\n}\n\nfunction _gaCommand(trackerNames) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var command = args[0];\n\n if (typeof internalGa === 'function') {\n if (typeof command !== 'string') {\n warn('ga command must be a string');\n return;\n }\n\n if (_alwaysSendToDefaultTracker || !Array.isArray(trackerNames)) internalGa.apply(void 0, args);\n\n if (Array.isArray(trackerNames)) {\n trackerNames.forEach(function (name) {\n internalGa.apply(void 0, _toConsumableArray([\"\".concat(name, \".\").concat(command)].concat(args.slice(1))));\n });\n }\n }\n}\n\nfunction _initialize(gaTrackingID, options) {\n if (!gaTrackingID) {\n warn('gaTrackingID is required in initialize()');\n return;\n }\n\n if (options) {\n if (options.debug && options.debug === true) {\n _debug = true;\n }\n\n if (options.titleCase === false) {\n _titleCase = false;\n }\n\n if (options.redactEmail === false) {\n _redactEmail = false;\n }\n\n if (options.useExistingGa) {\n return;\n }\n }\n\n if (options && options.gaOptions) {\n internalGa('create', gaTrackingID, options.gaOptions);\n } else {\n internalGa('create', gaTrackingID, 'auto');\n }\n}\n\nexport function addTrackers(configsOrTrackingId, options) {\n if (Array.isArray(configsOrTrackingId)) {\n configsOrTrackingId.forEach(function (config) {\n if (_typeof(config) !== 'object') {\n warn('All configs must be an object');\n return;\n }\n\n _initialize(config.trackingId, config);\n });\n } else {\n _initialize(configsOrTrackingId, options);\n }\n\n return true;\n}\nexport function initialize(configsOrTrackingId, options) {\n if (options && options.testMode === true) {\n _testMode = true;\n } else {\n if (_isNotBrowser) {\n return;\n }\n\n if (!options || options.standardImplementation !== true) loadGA(options);\n }\n\n _alwaysSendToDefaultTracker = options && typeof options.alwaysSendToDefaultTracker === 'boolean' ? options.alwaysSendToDefaultTracker : true;\n addTrackers(configsOrTrackingId, options);\n}\n/**\n * ga:\n * Returns the original GA object.\n */\n\nexport function ga() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (args.length > 0) {\n internalGa.apply(void 0, args);\n\n if (_debug) {\n log(\"called ga('arguments');\");\n log(\"with arguments: \".concat(JSON.stringify(args)));\n }\n }\n\n return window.ga;\n}\n/**\n * set:\n * GA tracker set method\n * @param {Object} fieldsObject - a field/value pair or a group of field/value pairs on the tracker\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function set(fieldsObject, trackerNames) {\n if (!fieldsObject) {\n warn('`fieldsObject` is required in .set()');\n return;\n }\n\n if (_typeof(fieldsObject) !== 'object') {\n warn('Expected `fieldsObject` arg to be an Object');\n return;\n }\n\n if (Object.keys(fieldsObject).length === 0) {\n warn('empty `fieldsObject` given to .set()');\n }\n\n _gaCommand(trackerNames, 'set', fieldsObject);\n\n if (_debug) {\n log(\"called ga('set', fieldsObject);\");\n log(\"with fieldsObject: \".concat(JSON.stringify(fieldsObject)));\n }\n}\n/**\n * send:\n * Clone of the low level `ga.send` method\n * WARNING: No validations will be applied to this\n * @param {Object} fieldObject - field object for tracking different analytics\n * @param {Array} trackerNames - trackers to send the command to\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function send(fieldObject, trackerNames) {\n _gaCommand(trackerNames, 'send', fieldObject);\n\n if (_debug) {\n log(\"called ga('send', fieldObject);\");\n log(\"with fieldObject: \".concat(JSON.stringify(fieldObject)));\n log(\"with trackers: \".concat(JSON.stringify(trackerNames)));\n }\n}\n/**\n * pageview:\n * Basic GA pageview tracking\n * @param {String} path - the current page page e.g. '/about'\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n * @param {String} title - (optional) the page title e. g. 'My Website'\n */\n\nexport function pageview(rawPath, trackerNames, title) {\n if (!rawPath) {\n warn('path is required in .pageview()');\n return;\n }\n\n var path = trim(rawPath);\n\n if (path === '') {\n warn('path cannot be an empty string in .pageview()');\n return;\n }\n\n var extraFields = {};\n\n if (title) {\n extraFields.title = title;\n }\n\n if (typeof ga === 'function') {\n _gaCommand(trackerNames, 'send', _objectSpread({\n hitType: 'pageview',\n page: path\n }, extraFields));\n\n if (_debug) {\n log(\"called ga('send', 'pageview', path);\");\n var extraLog = '';\n\n if (title) {\n extraLog = \" and title: \".concat(title);\n }\n\n log(\"with path: \".concat(path).concat(extraLog));\n }\n }\n}\n/**\n * modalview:\n * a proxy to basic GA pageview tracking to consistently track\n * modal views that are an equivalent UX to a traditional pageview\n * @param {String} modalName e.g. 'add-or-edit-club'\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function modalview(rawModalName, trackerNames) {\n if (!rawModalName) {\n warn('modalName is required in .modalview(modalName)');\n return;\n }\n\n var modalName = removeLeadingSlash(trim(rawModalName));\n\n if (modalName === '') {\n warn('modalName cannot be an empty string or a single / in .modalview()');\n return;\n }\n\n if (typeof ga === 'function') {\n var path = \"/modal/\".concat(modalName);\n\n _gaCommand(trackerNames, 'send', 'pageview', path);\n\n if (_debug) {\n log(\"called ga('send', 'pageview', path);\");\n log(\"with path: \".concat(path));\n }\n }\n}\n/**\n * timing:\n * GA timing\n * @param args.category {String} required\n * @param args.variable {String} required\n * @param args.value {Int} required\n * @param args.label {String} required\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function timing() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n category = _ref.category,\n variable = _ref.variable,\n value = _ref.value,\n label = _ref.label;\n\n var trackerNames = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof ga === 'function') {\n if (!category || !variable || typeof value !== 'number') {\n warn('args.category, args.variable ' + 'AND args.value are required in timing() ' + 'AND args.value has to be a number');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'timing',\n timingCategory: _format(category),\n timingVar: _format(variable),\n timingValue: value\n };\n\n if (label) {\n fieldObject.timingLabel = _format(label);\n }\n\n send(fieldObject, trackerNames);\n }\n}\n/**\n * event:\n * GA event tracking\n * @param args.category {String} required\n * @param args.action {String} required\n * @param args.label {String} optional\n * @param args.value {Int} optional\n * @param args.nonInteraction {boolean} optional\n * @param args.transport {string} optional\n * @param {{action: string, category: string}} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function event() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n category = _ref2.category,\n action = _ref2.action,\n label = _ref2.label,\n value = _ref2.value,\n nonInteraction = _ref2.nonInteraction,\n transport = _ref2.transport,\n args = _objectWithoutProperties(_ref2, [\"category\", \"action\", \"label\", \"value\", \"nonInteraction\", \"transport\"]);\n\n var trackerNames = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof ga === 'function') {\n // Simple Validation\n if (!category || !action) {\n warn('args.category AND args.action are required in event()');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'event',\n eventCategory: _format(category),\n eventAction: _format(action)\n }; // Optional Fields\n\n if (label) {\n fieldObject.eventLabel = _format(label);\n }\n\n if (typeof value !== 'undefined') {\n if (typeof value !== 'number') {\n warn('Expected `args.value` arg to be a Number.');\n } else {\n fieldObject.eventValue = value;\n }\n }\n\n if (typeof nonInteraction !== 'undefined') {\n if (typeof nonInteraction !== 'boolean') {\n warn('`args.nonInteraction` must be a boolean.');\n } else {\n fieldObject.nonInteraction = nonInteraction;\n }\n }\n\n if (typeof transport !== 'undefined') {\n if (typeof transport !== 'string') {\n warn('`args.transport` must be a string.');\n } else {\n if (['beacon', 'xhr', 'image'].indexOf(transport) === -1) {\n warn('`args.transport` must be either one of these values: `beacon`, `xhr` or `image`');\n }\n\n fieldObject.transport = transport;\n }\n }\n\n Object.keys(args).filter(function (key) {\n return key.substr(0, 'dimension'.length) === 'dimension';\n }).forEach(function (key) {\n fieldObject[key] = args[key];\n });\n Object.keys(args).filter(function (key) {\n return key.substr(0, 'metric'.length) === 'metric';\n }).forEach(function (key) {\n fieldObject[key] = args[key];\n }); // Send to GA\n\n send(fieldObject, trackerNames);\n }\n}\n/**\n * exception:\n * GA exception tracking\n * @param args.description {String} optional\n * @param args.fatal {boolean} optional\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function exception(_ref3, trackerNames) {\n var description = _ref3.description,\n fatal = _ref3.fatal;\n\n if (typeof ga === 'function') {\n // Required Fields\n var fieldObject = {\n hitType: 'exception'\n }; // Optional Fields\n\n if (description) {\n fieldObject.exDescription = _format(description);\n }\n\n if (typeof fatal !== 'undefined') {\n if (typeof fatal !== 'boolean') {\n warn('`args.fatal` must be a boolean.');\n } else {\n fieldObject.exFatal = fatal;\n }\n } // Send to GA\n\n\n send(fieldObject, trackerNames);\n }\n}\nexport var plugin = {\n /**\n * require:\n * GA requires a plugin\n * @param name {String} e.g. 'ecommerce' or 'myplugin'\n * @param options {Object} optional e.g {path: '/log', debug: true}\n * @param trackerName {String} optional e.g 'trackerName'\n */\n require: function require(rawName, options, trackerName) {\n if (typeof ga === 'function') {\n // Required Fields\n if (!rawName) {\n warn('`name` is required in .require()');\n return;\n }\n\n var name = trim(rawName);\n\n if (name === '') {\n warn('`name` cannot be an empty string in .require()');\n return;\n }\n\n var requireString = trackerName ? \"\".concat(trackerName, \".require\") : 'require'; // Optional Fields\n\n if (options) {\n if (_typeof(options) !== 'object') {\n warn('Expected `options` arg to be an Object');\n return;\n }\n\n if (Object.keys(options).length === 0) {\n warn('Empty `options` given to .require()');\n }\n\n ga(requireString, name, options);\n\n if (_debug) {\n log(\"called ga('require', '\".concat(name, \"', \").concat(JSON.stringify(options)));\n }\n } else {\n ga(requireString, name);\n\n if (_debug) {\n log(\"called ga('require', '\".concat(name, \"');\"));\n }\n }\n }\n },\n\n /**\n * execute:\n * GA execute action for plugin\n * Takes variable number of arguments\n * @param pluginName {String} e.g. 'ecommerce' or 'myplugin'\n * @param action {String} e.g. 'addItem' or 'myCustomAction'\n * @param actionType {String} optional e.g. 'detail'\n * @param payload {Object} optional e.g { id: '1x5e', name : 'My product to track' }\n */\n execute: function execute(pluginName, action) {\n var payload;\n var actionType;\n\n for (var _len3 = arguments.length, args = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n args[_key3 - 2] = arguments[_key3];\n }\n\n if (args.length === 1) {\n payload = args[0];\n } else {\n actionType = args[0];\n payload = args[1];\n }\n\n if (typeof ga === 'function') {\n if (typeof pluginName !== 'string') {\n warn('Expected `pluginName` arg to be a String.');\n } else if (typeof action !== 'string') {\n warn('Expected `action` arg to be a String.');\n } else {\n var command = \"\".concat(pluginName, \":\").concat(action);\n payload = payload || null;\n\n if (actionType && payload) {\n ga(command, actionType, payload);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n log(\"actionType: \\\"\".concat(actionType, \"\\\" with payload: \").concat(JSON.stringify(payload)));\n }\n } else if (payload) {\n ga(command, payload);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n log(\"with payload: \".concat(JSON.stringify(payload)));\n }\n } else {\n ga(command);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n }\n }\n }\n }\n }\n};\n/**\n * outboundLink:\n * GA outboundLink tracking\n * @param args.label {String} e.g. url, or 'Create an Account'\n * @param {function} hitCallback - Called after processing a hit.\n */\n\nexport function outboundLink(args, hitCallback, trackerNames) {\n if (typeof hitCallback !== 'function') {\n warn('hitCallback function is required');\n return;\n }\n\n if (typeof ga === 'function') {\n // Simple Validation\n if (!args || !args.label) {\n warn('args.label is required in outboundLink()');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'event',\n eventCategory: 'Outbound',\n eventAction: 'Click',\n eventLabel: _format(args.label)\n };\n var safetyCallbackCalled = false;\n\n var safetyCallback = function safetyCallback() {\n // This prevents a delayed response from GA\n // causing hitCallback from being fired twice\n safetyCallbackCalled = true;\n hitCallback();\n }; // Using a timeout to ensure the execution of critical application code\n // in the case when the GA server might be down\n // or an ad blocker prevents sending the data\n // register safety net timeout:\n\n\n var t = setTimeout(safetyCallback, 250);\n\n var clearableCallbackForGA = function clearableCallbackForGA() {\n clearTimeout(t);\n\n if (!safetyCallbackCalled) {\n hitCallback();\n }\n };\n\n fieldObject.hitCallback = clearableCallbackForGA; // Send to GA\n\n send(fieldObject, trackerNames);\n } else {\n // if ga is not defined, return the callback so the application\n // continues to work as expected\n setTimeout(hitCallback, 0);\n }\n}\nexport var testModeAPI = TestModeAPI;\nexport default {\n initialize: initialize,\n ga: ga,\n set: set,\n send: send,\n pageview: pageview,\n modalview: modalview,\n timing: timing,\n event: event,\n exception: exception,\n plugin: plugin,\n outboundLink: outboundLink,\n testModeAPI: TestModeAPI\n};","import redactEmail from './redactEmail';\nimport toTitleCase from './toTitleCase';\nexport default function format() {\n var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var titleCase = arguments.length > 1 ? arguments[1] : undefined;\n var redactingEmail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n var _str = s || '';\n\n if (titleCase) {\n _str = toTitleCase(s);\n }\n\n if (redactingEmail) {\n _str = redactEmail(_str);\n }\n\n return _str;\n}","export default function removeLeadingSlash(string) {\n if (string.substring(0, 1) === '/') {\n return string.substring(1);\n }\n\n return string;\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport UnboundOutboundLink from './components/OutboundLink';\nimport * as Defaults from './core';\nvar initialize = Defaults.initialize;\nexport { initialize };\nvar addTrackers = Defaults.addTrackers;\nexport { addTrackers };\nvar ga = Defaults.ga;\nexport { ga };\nvar set = Defaults.set;\nexport { set };\nvar send = Defaults.send;\nexport { send };\nvar pageview = Defaults.pageview;\nexport { pageview };\nvar modalview = Defaults.modalview;\nexport { modalview };\nvar timing = Defaults.timing;\nexport { timing };\nvar event = Defaults.event;\nexport { event };\nvar exception = Defaults.exception;\nexport { exception };\nvar plugin = Defaults.plugin;\nexport { plugin };\nvar outboundLink = Defaults.outboundLink;\nexport { outboundLink };\nvar testModeAPI = Defaults.testModeAPI;\nexport { testModeAPI };\nUnboundOutboundLink.origTrackLink = UnboundOutboundLink.trackLink;\nUnboundOutboundLink.trackLink = Defaults.outboundLink;\nexport var OutboundLink = UnboundOutboundLink;\nexport default _objectSpread(_objectSpread({}, Defaults), {}, {\n OutboundLink: OutboundLink\n});","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/geom/LinearRing\n */\nimport GeometryLayout from './GeometryLayout.js';\nimport GeometryType from './GeometryType.js';\nimport SimpleGeometry from './SimpleGeometry.js';\nimport { assignClosestPoint, maxSquaredDelta } from './flat/closest.js';\nimport { closestSquaredDistanceXY } from '../extent.js';\nimport { deflateCoordinates } from './flat/deflate.js';\nimport { douglasPeucker } from './flat/simplify.js';\nimport { inflateCoordinates } from './flat/inflate.js';\nimport { linearRing as linearRingArea } from './flat/area.js';\n/**\n * @classdesc\n * Linear ring geometry. Only used as part of polygon; cannot be rendered\n * on its own.\n *\n * @api\n */\nvar LinearRing = /** @class */ (function (_super) {\n __extends(LinearRing, _super);\n /**\n * @param {Array|Array} coordinates Coordinates.\n * For internal use, flat coordinates in combination with `opt_layout` are also accepted.\n * @param {import(\"./GeometryLayout.js\").default=} opt_layout Layout.\n */\n function LinearRing(coordinates, opt_layout) {\n var _this = _super.call(this) || this;\n /**\n * @private\n * @type {number}\n */\n _this.maxDelta_ = -1;\n /**\n * @private\n * @type {number}\n */\n _this.maxDeltaRevision_ = -1;\n if (opt_layout !== undefined && !Array.isArray(coordinates[0])) {\n _this.setFlatCoordinates(opt_layout, \n /** @type {Array} */ (coordinates));\n }\n else {\n _this.setCoordinates(\n /** @type {Array} */ (coordinates), opt_layout);\n }\n return _this;\n }\n /**\n * Make a complete copy of the geometry.\n * @return {!LinearRing} Clone.\n * @api\n */\n LinearRing.prototype.clone = function () {\n return new LinearRing(this.flatCoordinates.slice(), this.layout);\n };\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n */\n LinearRing.prototype.closestPointXY = function (x, y, closestPoint, minSquaredDistance) {\n if (minSquaredDistance < closestSquaredDistanceXY(this.getExtent(), x, y)) {\n return minSquaredDistance;\n }\n if (this.maxDeltaRevision_ != this.getRevision()) {\n this.maxDelta_ = Math.sqrt(maxSquaredDelta(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, 0));\n this.maxDeltaRevision_ = this.getRevision();\n }\n return assignClosestPoint(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, this.maxDelta_, true, x, y, closestPoint, minSquaredDistance);\n };\n /**\n * Return the area of the linear ring on projected plane.\n * @return {number} Area (on projected plane).\n * @api\n */\n LinearRing.prototype.getArea = function () {\n return linearRingArea(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride);\n };\n /**\n * Return the coordinates of the linear ring.\n * @return {Array} Coordinates.\n * @api\n */\n LinearRing.prototype.getCoordinates = function () {\n return inflateCoordinates(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride);\n };\n /**\n * @param {number} squaredTolerance Squared tolerance.\n * @return {LinearRing} Simplified LinearRing.\n * @protected\n */\n LinearRing.prototype.getSimplifiedGeometryInternal = function (squaredTolerance) {\n var simplifiedFlatCoordinates = [];\n simplifiedFlatCoordinates.length = douglasPeucker(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, squaredTolerance, simplifiedFlatCoordinates, 0);\n return new LinearRing(simplifiedFlatCoordinates, GeometryLayout.XY);\n };\n /**\n * Get the type of this geometry.\n * @return {import(\"./GeometryType.js\").default} Geometry type.\n * @api\n */\n LinearRing.prototype.getType = function () {\n return GeometryType.LINEAR_RING;\n };\n /**\n * Test if the geometry and the passed extent intersect.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n * @api\n */\n LinearRing.prototype.intersectsExtent = function (extent) {\n return false;\n };\n /**\n * Set the coordinates of the linear ring.\n * @param {!Array} coordinates Coordinates.\n * @param {import(\"./GeometryLayout.js\").default=} opt_layout Layout.\n * @api\n */\n LinearRing.prototype.setCoordinates = function (coordinates, opt_layout) {\n this.setLayout(opt_layout, coordinates, 1);\n if (!this.flatCoordinates) {\n this.flatCoordinates = [];\n }\n this.flatCoordinates.length = deflateCoordinates(this.flatCoordinates, 0, coordinates, this.stride);\n this.changed();\n };\n return LinearRing;\n}(SimpleGeometry));\nexport default LinearRing;\n//# sourceMappingURL=LinearRing.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/geom/Polygon\n */\nimport GeometryLayout from './GeometryLayout.js';\nimport GeometryType from './GeometryType.js';\nimport LinearRing from './LinearRing.js';\nimport Point from './Point.js';\nimport SimpleGeometry from './SimpleGeometry.js';\nimport { arrayMaxSquaredDelta, assignClosestArrayPoint } from './flat/closest.js';\nimport { closestSquaredDistanceXY, getCenter } from '../extent.js';\nimport { deflateCoordinatesArray } from './flat/deflate.js';\nimport { extend } from '../array.js';\nimport { getInteriorPointOfArray } from './flat/interiorpoint.js';\nimport { inflateCoordinatesArray } from './flat/inflate.js';\nimport { intersectsLinearRingArray } from './flat/intersectsextent.js';\nimport { linearRingsAreOriented, orientLinearRings } from './flat/orient.js';\nimport { linearRings as linearRingsArea } from './flat/area.js';\nimport { linearRingsContainsXY } from './flat/contains.js';\nimport { modulo } from '../math.js';\nimport { quantizeArray } from './flat/simplify.js';\nimport { offset as sphereOffset } from '../sphere.js';\n/**\n * @classdesc\n * Polygon geometry.\n *\n * @api\n */\nvar Polygon = /** @class */ (function (_super) {\n __extends(Polygon, _super);\n /**\n * @param {!Array>|!Array} coordinates\n * Array of linear rings that define the polygon. The first linear ring of the\n * array defines the outer-boundary or surface of the polygon. Each subsequent\n * linear ring defines a hole in the surface of the polygon. A linear ring is\n * an array of vertices' coordinates where the first coordinate and the last are\n * equivalent. (For internal use, flat coordinates in combination with\n * `opt_layout` and `opt_ends` are also accepted.)\n * @param {import(\"./GeometryLayout.js\").default=} opt_layout Layout.\n * @param {Array=} opt_ends Ends (for internal use with flat coordinates).\n */\n function Polygon(coordinates, opt_layout, opt_ends) {\n var _this = _super.call(this) || this;\n /**\n * @type {Array}\n * @private\n */\n _this.ends_ = [];\n /**\n * @private\n * @type {number}\n */\n _this.flatInteriorPointRevision_ = -1;\n /**\n * @private\n * @type {import(\"../coordinate.js\").Coordinate}\n */\n _this.flatInteriorPoint_ = null;\n /**\n * @private\n * @type {number}\n */\n _this.maxDelta_ = -1;\n /**\n * @private\n * @type {number}\n */\n _this.maxDeltaRevision_ = -1;\n /**\n * @private\n * @type {number}\n */\n _this.orientedRevision_ = -1;\n /**\n * @private\n * @type {Array}\n */\n _this.orientedFlatCoordinates_ = null;\n if (opt_layout !== undefined && opt_ends) {\n _this.setFlatCoordinates(opt_layout, \n /** @type {Array} */ (coordinates));\n _this.ends_ = opt_ends;\n }\n else {\n _this.setCoordinates(\n /** @type {Array>} */ (coordinates), opt_layout);\n }\n return _this;\n }\n /**\n * Append the passed linear ring to this polygon.\n * @param {LinearRing} linearRing Linear ring.\n * @api\n */\n Polygon.prototype.appendLinearRing = function (linearRing) {\n if (!this.flatCoordinates) {\n this.flatCoordinates = linearRing.getFlatCoordinates().slice();\n }\n else {\n extend(this.flatCoordinates, linearRing.getFlatCoordinates());\n }\n this.ends_.push(this.flatCoordinates.length);\n this.changed();\n };\n /**\n * Make a complete copy of the geometry.\n * @return {!Polygon} Clone.\n * @api\n */\n Polygon.prototype.clone = function () {\n var polygon = new Polygon(this.flatCoordinates.slice(), this.layout, this.ends_.slice());\n polygon.applyProperties(this);\n return polygon;\n };\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n */\n Polygon.prototype.closestPointXY = function (x, y, closestPoint, minSquaredDistance) {\n if (minSquaredDistance < closestSquaredDistanceXY(this.getExtent(), x, y)) {\n return minSquaredDistance;\n }\n if (this.maxDeltaRevision_ != this.getRevision()) {\n this.maxDelta_ = Math.sqrt(arrayMaxSquaredDelta(this.flatCoordinates, 0, this.ends_, this.stride, 0));\n this.maxDeltaRevision_ = this.getRevision();\n }\n return assignClosestArrayPoint(this.flatCoordinates, 0, this.ends_, this.stride, this.maxDelta_, true, x, y, closestPoint, minSquaredDistance);\n };\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\n Polygon.prototype.containsXY = function (x, y) {\n return linearRingsContainsXY(this.getOrientedFlatCoordinates(), 0, this.ends_, this.stride, x, y);\n };\n /**\n * Return the area of the polygon on projected plane.\n * @return {number} Area (on projected plane).\n * @api\n */\n Polygon.prototype.getArea = function () {\n return linearRingsArea(this.getOrientedFlatCoordinates(), 0, this.ends_, this.stride);\n };\n /**\n * Get the coordinate array for this geometry. This array has the structure\n * of a GeoJSON coordinate array for polygons.\n *\n * @param {boolean=} opt_right Orient coordinates according to the right-hand\n * rule (counter-clockwise for exterior and clockwise for interior rings).\n * If `false`, coordinates will be oriented according to the left-hand rule\n * (clockwise for exterior and counter-clockwise for interior rings).\n * By default, coordinate orientation will depend on how the geometry was\n * constructed.\n * @return {Array>} Coordinates.\n * @api\n */\n Polygon.prototype.getCoordinates = function (opt_right) {\n var flatCoordinates;\n if (opt_right !== undefined) {\n flatCoordinates = this.getOrientedFlatCoordinates().slice();\n orientLinearRings(flatCoordinates, 0, this.ends_, this.stride, opt_right);\n }\n else {\n flatCoordinates = this.flatCoordinates;\n }\n return inflateCoordinatesArray(flatCoordinates, 0, this.ends_, this.stride);\n };\n /**\n * @return {Array} Ends.\n */\n Polygon.prototype.getEnds = function () {\n return this.ends_;\n };\n /**\n * @return {Array} Interior point.\n */\n Polygon.prototype.getFlatInteriorPoint = function () {\n if (this.flatInteriorPointRevision_ != this.getRevision()) {\n var flatCenter = getCenter(this.getExtent());\n this.flatInteriorPoint_ = getInteriorPointOfArray(this.getOrientedFlatCoordinates(), 0, this.ends_, this.stride, flatCenter, 0);\n this.flatInteriorPointRevision_ = this.getRevision();\n }\n return this.flatInteriorPoint_;\n };\n /**\n * Return an interior point of the polygon.\n * @return {Point} Interior point as XYM coordinate, where M is the\n * length of the horizontal intersection that the point belongs to.\n * @api\n */\n Polygon.prototype.getInteriorPoint = function () {\n return new Point(this.getFlatInteriorPoint(), GeometryLayout.XYM);\n };\n /**\n * Return the number of rings of the polygon, this includes the exterior\n * ring and any interior rings.\n *\n * @return {number} Number of rings.\n * @api\n */\n Polygon.prototype.getLinearRingCount = function () {\n return this.ends_.length;\n };\n /**\n * Return the Nth linear ring of the polygon geometry. Return `null` if the\n * given index is out of range.\n * The exterior linear ring is available at index `0` and the interior rings\n * at index `1` and beyond.\n *\n * @param {number} index Index.\n * @return {LinearRing} Linear ring.\n * @api\n */\n Polygon.prototype.getLinearRing = function (index) {\n if (index < 0 || this.ends_.length <= index) {\n return null;\n }\n return new LinearRing(this.flatCoordinates.slice(index === 0 ? 0 : this.ends_[index - 1], this.ends_[index]), this.layout);\n };\n /**\n * Return the linear rings of the polygon.\n * @return {Array} Linear rings.\n * @api\n */\n Polygon.prototype.getLinearRings = function () {\n var layout = this.layout;\n var flatCoordinates = this.flatCoordinates;\n var ends = this.ends_;\n var linearRings = [];\n var offset = 0;\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n var linearRing = new LinearRing(flatCoordinates.slice(offset, end), layout);\n linearRings.push(linearRing);\n offset = end;\n }\n return linearRings;\n };\n /**\n * @return {Array} Oriented flat coordinates.\n */\n Polygon.prototype.getOrientedFlatCoordinates = function () {\n if (this.orientedRevision_ != this.getRevision()) {\n var flatCoordinates = this.flatCoordinates;\n if (linearRingsAreOriented(flatCoordinates, 0, this.ends_, this.stride)) {\n this.orientedFlatCoordinates_ = flatCoordinates;\n }\n else {\n this.orientedFlatCoordinates_ = flatCoordinates.slice();\n this.orientedFlatCoordinates_.length = orientLinearRings(this.orientedFlatCoordinates_, 0, this.ends_, this.stride);\n }\n this.orientedRevision_ = this.getRevision();\n }\n return this.orientedFlatCoordinates_;\n };\n /**\n * @param {number} squaredTolerance Squared tolerance.\n * @return {Polygon} Simplified Polygon.\n * @protected\n */\n Polygon.prototype.getSimplifiedGeometryInternal = function (squaredTolerance) {\n var simplifiedFlatCoordinates = [];\n var simplifiedEnds = [];\n simplifiedFlatCoordinates.length = quantizeArray(this.flatCoordinates, 0, this.ends_, this.stride, Math.sqrt(squaredTolerance), simplifiedFlatCoordinates, 0, simplifiedEnds);\n return new Polygon(simplifiedFlatCoordinates, GeometryLayout.XY, simplifiedEnds);\n };\n /**\n * Get the type of this geometry.\n * @return {import(\"./GeometryType.js\").default} Geometry type.\n * @api\n */\n Polygon.prototype.getType = function () {\n return GeometryType.POLYGON;\n };\n /**\n * Test if the geometry and the passed extent intersect.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n * @api\n */\n Polygon.prototype.intersectsExtent = function (extent) {\n return intersectsLinearRingArray(this.getOrientedFlatCoordinates(), 0, this.ends_, this.stride, extent);\n };\n /**\n * Set the coordinates of the polygon.\n * @param {!Array>} coordinates Coordinates.\n * @param {import(\"./GeometryLayout.js\").default=} opt_layout Layout.\n * @api\n */\n Polygon.prototype.setCoordinates = function (coordinates, opt_layout) {\n this.setLayout(opt_layout, coordinates, 2);\n if (!this.flatCoordinates) {\n this.flatCoordinates = [];\n }\n var ends = deflateCoordinatesArray(this.flatCoordinates, 0, coordinates, this.stride, this.ends_);\n this.flatCoordinates.length = ends.length === 0 ? 0 : ends[ends.length - 1];\n this.changed();\n };\n return Polygon;\n}(SimpleGeometry));\nexport default Polygon;\n/**\n * Create an approximation of a circle on the surface of a sphere.\n * @param {import(\"../coordinate.js\").Coordinate} center Center (`[lon, lat]` in degrees).\n * @param {number} radius The great-circle distance from the center to\n * the polygon vertices.\n * @param {number=} opt_n Optional number of vertices for the resulting\n * polygon. Default is `32`.\n * @param {number=} opt_sphereRadius Optional radius for the sphere (defaults to\n * the Earth's mean radius using the WGS84 ellipsoid).\n * @return {Polygon} The \"circular\" polygon.\n * @api\n */\nexport function circular(center, radius, opt_n, opt_sphereRadius) {\n var n = opt_n ? opt_n : 32;\n /** @type {Array} */\n var flatCoordinates = [];\n for (var i = 0; i < n; ++i) {\n extend(flatCoordinates, sphereOffset(center, radius, (2 * Math.PI * i) / n, opt_sphereRadius));\n }\n flatCoordinates.push(flatCoordinates[0], flatCoordinates[1]);\n return new Polygon(flatCoordinates, GeometryLayout.XY, [\n flatCoordinates.length,\n ]);\n}\n/**\n * Create a polygon from an extent. The layout used is `XY`.\n * @param {import(\"../extent.js\").Extent} extent The extent.\n * @return {Polygon} The polygon.\n * @api\n */\nexport function fromExtent(extent) {\n var minX = extent[0];\n var minY = extent[1];\n var maxX = extent[2];\n var maxY = extent[3];\n var flatCoordinates = [\n minX,\n minY,\n minX,\n maxY,\n maxX,\n maxY,\n maxX,\n minY,\n minX,\n minY,\n ];\n return new Polygon(flatCoordinates, GeometryLayout.XY, [\n flatCoordinates.length,\n ]);\n}\n/**\n * Create a regular polygon from a circle.\n * @param {import(\"./Circle.js\").default} circle Circle geometry.\n * @param {number=} opt_sides Number of sides of the polygon. Default is 32.\n * @param {number=} opt_angle Start angle for the first vertex of the polygon in\n * counter-clockwise radians. 0 means East. Default is 0.\n * @return {Polygon} Polygon geometry.\n * @api\n */\nexport function fromCircle(circle, opt_sides, opt_angle) {\n var sides = opt_sides ? opt_sides : 32;\n var stride = circle.getStride();\n var layout = circle.getLayout();\n var center = circle.getCenter();\n var arrayLength = stride * (sides + 1);\n var flatCoordinates = new Array(arrayLength);\n for (var i = 0; i < arrayLength; i += stride) {\n flatCoordinates[i] = 0;\n flatCoordinates[i + 1] = 0;\n for (var j = 2; j < stride; j++) {\n flatCoordinates[i + j] = center[j];\n }\n }\n var ends = [flatCoordinates.length];\n var polygon = new Polygon(flatCoordinates, layout, ends);\n makeRegular(polygon, center, circle.getRadius(), opt_angle);\n return polygon;\n}\n/**\n * Modify the coordinates of a polygon to make it a regular polygon.\n * @param {Polygon} polygon Polygon geometry.\n * @param {import(\"../coordinate.js\").Coordinate} center Center of the regular polygon.\n * @param {number} radius Radius of the regular polygon.\n * @param {number=} opt_angle Start angle for the first vertex of the polygon in\n * counter-clockwise radians. 0 means East. Default is 0.\n */\nexport function makeRegular(polygon, center, radius, opt_angle) {\n var flatCoordinates = polygon.getFlatCoordinates();\n var stride = polygon.getStride();\n var sides = flatCoordinates.length / stride - 1;\n var startAngle = opt_angle ? opt_angle : 0;\n for (var i = 0; i <= sides; ++i) {\n var offset = i * stride;\n var angle = startAngle + (modulo(i, sides) * 2 * Math.PI) / sides;\n flatCoordinates[offset] = center[0] + radius * Math.cos(angle);\n flatCoordinates[offset + 1] = center[1] + radius * Math.sin(angle);\n }\n polygon.changed();\n}\n//# sourceMappingURL=Polygon.js.map","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const method = replace ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n","/**\n * @module ol/transform\n */\nimport { assert } from './asserts.js';\n/**\n * An array representing an affine 2d transformation for use with\n * {@link module:ol/transform} functions. The array has 6 elements.\n * @typedef {!Array} Transform\n * @api\n */\n/**\n * Collection of affine 2d transformation functions. The functions work on an\n * array of 6 elements. The element order is compatible with the [SVGMatrix\n * interface](https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix) and is\n * a subset (elements a to f) of a 3×3 matrix:\n * ```\n * [ a c e ]\n * [ b d f ]\n * [ 0 0 1 ]\n * ```\n */\n/**\n * @private\n * @type {Transform}\n */\nvar tmp_ = new Array(6);\n/**\n * Create an identity transform.\n * @return {!Transform} Identity transform.\n */\nexport function create() {\n return [1, 0, 0, 1, 0, 0];\n}\n/**\n * Resets the given transform to an identity transform.\n * @param {!Transform} transform Transform.\n * @return {!Transform} Transform.\n */\nexport function reset(transform) {\n return set(transform, 1, 0, 0, 1, 0, 0);\n}\n/**\n * Multiply the underlying matrices of two transforms and return the result in\n * the first transform.\n * @param {!Transform} transform1 Transform parameters of matrix 1.\n * @param {!Transform} transform2 Transform parameters of matrix 2.\n * @return {!Transform} transform1 multiplied with transform2.\n */\nexport function multiply(transform1, transform2) {\n var a1 = transform1[0];\n var b1 = transform1[1];\n var c1 = transform1[2];\n var d1 = transform1[3];\n var e1 = transform1[4];\n var f1 = transform1[5];\n var a2 = transform2[0];\n var b2 = transform2[1];\n var c2 = transform2[2];\n var d2 = transform2[3];\n var e2 = transform2[4];\n var f2 = transform2[5];\n transform1[0] = a1 * a2 + c1 * b2;\n transform1[1] = b1 * a2 + d1 * b2;\n transform1[2] = a1 * c2 + c1 * d2;\n transform1[3] = b1 * c2 + d1 * d2;\n transform1[4] = a1 * e2 + c1 * f2 + e1;\n transform1[5] = b1 * e2 + d1 * f2 + f1;\n return transform1;\n}\n/**\n * Set the transform components a-f on a given transform.\n * @param {!Transform} transform Transform.\n * @param {number} a The a component of the transform.\n * @param {number} b The b component of the transform.\n * @param {number} c The c component of the transform.\n * @param {number} d The d component of the transform.\n * @param {number} e The e component of the transform.\n * @param {number} f The f component of the transform.\n * @return {!Transform} Matrix with transform applied.\n */\nexport function set(transform, a, b, c, d, e, f) {\n transform[0] = a;\n transform[1] = b;\n transform[2] = c;\n transform[3] = d;\n transform[4] = e;\n transform[5] = f;\n return transform;\n}\n/**\n * Set transform on one matrix from another matrix.\n * @param {!Transform} transform1 Matrix to set transform to.\n * @param {!Transform} transform2 Matrix to set transform from.\n * @return {!Transform} transform1 with transform from transform2 applied.\n */\nexport function setFromArray(transform1, transform2) {\n transform1[0] = transform2[0];\n transform1[1] = transform2[1];\n transform1[2] = transform2[2];\n transform1[3] = transform2[3];\n transform1[4] = transform2[4];\n transform1[5] = transform2[5];\n return transform1;\n}\n/**\n * Transforms the given coordinate with the given transform returning the\n * resulting, transformed coordinate. The coordinate will be modified in-place.\n *\n * @param {Transform} transform The transformation.\n * @param {import(\"./coordinate.js\").Coordinate|import(\"./pixel.js\").Pixel} coordinate The coordinate to transform.\n * @return {import(\"./coordinate.js\").Coordinate|import(\"./pixel.js\").Pixel} return coordinate so that operations can be\n * chained together.\n */\nexport function apply(transform, coordinate) {\n var x = coordinate[0];\n var y = coordinate[1];\n coordinate[0] = transform[0] * x + transform[2] * y + transform[4];\n coordinate[1] = transform[1] * x + transform[3] * y + transform[5];\n return coordinate;\n}\n/**\n * Applies rotation to the given transform.\n * @param {!Transform} transform Transform.\n * @param {number} angle Angle in radians.\n * @return {!Transform} The rotated transform.\n */\nexport function rotate(transform, angle) {\n var cos = Math.cos(angle);\n var sin = Math.sin(angle);\n return multiply(transform, set(tmp_, cos, sin, -sin, cos, 0, 0));\n}\n/**\n * Applies scale to a given transform.\n * @param {!Transform} transform Transform.\n * @param {number} x Scale factor x.\n * @param {number} y Scale factor y.\n * @return {!Transform} The scaled transform.\n */\nexport function scale(transform, x, y) {\n return multiply(transform, set(tmp_, x, 0, 0, y, 0, 0));\n}\n/**\n * Creates a scale transform.\n * @param {!Transform} target Transform to overwrite.\n * @param {number} x Scale factor x.\n * @param {number} y Scale factor y.\n * @return {!Transform} The scale transform.\n */\nexport function makeScale(target, x, y) {\n return set(target, x, 0, 0, y, 0, 0);\n}\n/**\n * Applies translation to the given transform.\n * @param {!Transform} transform Transform.\n * @param {number} dx Translation x.\n * @param {number} dy Translation y.\n * @return {!Transform} The translated transform.\n */\nexport function translate(transform, dx, dy) {\n return multiply(transform, set(tmp_, 1, 0, 0, 1, dx, dy));\n}\n/**\n * Creates a composite transform given an initial translation, scale, rotation, and\n * final translation (in that order only, not commutative).\n * @param {!Transform} transform The transform (will be modified in place).\n * @param {number} dx1 Initial translation x.\n * @param {number} dy1 Initial translation y.\n * @param {number} sx Scale factor x.\n * @param {number} sy Scale factor y.\n * @param {number} angle Rotation (in counter-clockwise radians).\n * @param {number} dx2 Final translation x.\n * @param {number} dy2 Final translation y.\n * @return {!Transform} The composite transform.\n */\nexport function compose(transform, dx1, dy1, sx, sy, angle, dx2, dy2) {\n var sin = Math.sin(angle);\n var cos = Math.cos(angle);\n transform[0] = sx * cos;\n transform[1] = sy * sin;\n transform[2] = -sx * sin;\n transform[3] = sy * cos;\n transform[4] = dx2 * sx * cos - dy2 * sx * sin + dx1;\n transform[5] = dx2 * sy * sin + dy2 * sy * cos + dy1;\n return transform;\n}\n/**\n * Creates a composite transform given an initial translation, scale, rotation, and\n * final translation (in that order only, not commutative). The resulting transform\n * string can be applied as `transform` porperty of an HTMLElement's style.\n * @param {number} dx1 Initial translation x.\n * @param {number} dy1 Initial translation y.\n * @param {number} sx Scale factor x.\n * @param {number} sy Scale factor y.\n * @param {number} angle Rotation (in counter-clockwise radians).\n * @param {number} dx2 Final translation x.\n * @param {number} dy2 Final translation y.\n * @return {string} The composite css transform.\n * @api\n */\nexport function composeCssTransform(dx1, dy1, sx, sy, angle, dx2, dy2) {\n return toString(compose(create(), dx1, dy1, sx, sy, angle, dx2, dy2));\n}\n/**\n * Invert the given transform.\n * @param {!Transform} source The source transform to invert.\n * @return {!Transform} The inverted (source) transform.\n */\nexport function invert(source) {\n return makeInverse(source, source);\n}\n/**\n * Invert the given transform.\n * @param {!Transform} target Transform to be set as the inverse of\n * the source transform.\n * @param {!Transform} source The source transform to invert.\n * @return {!Transform} The inverted (target) transform.\n */\nexport function makeInverse(target, source) {\n var det = determinant(source);\n assert(det !== 0, 32); // Transformation matrix cannot be inverted\n var a = source[0];\n var b = source[1];\n var c = source[2];\n var d = source[3];\n var e = source[4];\n var f = source[5];\n target[0] = d / det;\n target[1] = -b / det;\n target[2] = -c / det;\n target[3] = a / det;\n target[4] = (c * f - d * e) / det;\n target[5] = -(a * f - b * e) / det;\n return target;\n}\n/**\n * Returns the determinant of the given matrix.\n * @param {!Transform} mat Matrix.\n * @return {number} Determinant.\n */\nexport function determinant(mat) {\n return mat[0] * mat[3] - mat[1] * mat[2];\n}\n/**\n * A string version of the transform. This can be used\n * for CSS transforms.\n * @param {!Transform} mat Matrix.\n * @return {string} The transform as a string.\n */\nexport function toString(mat) {\n return 'matrix(' + mat.join(', ') + ')';\n}\n//# sourceMappingURL=transform.js.map","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","/**\n * @module ol/string\n */\n/**\n * @param {number} number Number to be formatted\n * @param {number} width The desired width\n * @param {number=} opt_precision Precision of the output string (i.e. number of decimal places)\n * @returns {string} Formatted string\n */\nexport function padNumber(number, width, opt_precision) {\n var numberString = opt_precision !== undefined ? number.toFixed(opt_precision) : '' + number;\n var decimal = numberString.indexOf('.');\n decimal = decimal === -1 ? numberString.length : decimal;\n return decimal > width\n ? numberString\n : new Array(1 + width - decimal).join('0') + numberString;\n}\n/**\n * Adapted from https://github.com/omichelsen/compare-versions/blob/master/index.js\n * @param {string|number} v1 First version\n * @param {string|number} v2 Second version\n * @returns {number} Value\n */\nexport function compareVersions(v1, v2) {\n var s1 = ('' + v1).split('.');\n var s2 = ('' + v2).split('.');\n for (var i = 0; i < Math.max(s1.length, s2.length); i++) {\n var n1 = parseInt(s1[i] || '0', 10);\n var n2 = parseInt(s2[i] || '0', 10);\n if (n1 > n2) {\n return 1;\n }\n if (n2 > n1) {\n return -1;\n }\n }\n return 0;\n}\n//# sourceMappingURL=string.js.map","/* global window */\nimport ponyfill from './ponyfill.js';\n\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = ponyfill(root);\nexport default result;\n","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","export default function(defs) {\n defs('EPSG:4326', \"+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees\");\n defs('EPSG:4269', \"+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees\");\n defs('EPSG:3857', \"+title=WGS 84 / Pseudo-Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs\");\n\n defs.WGS84 = defs['EPSG:4326'];\n defs['EPSG:3785'] = defs['EPSG:3857']; // maintain backward compat, official code is 3857\n defs.GOOGLE = defs['EPSG:3857'];\n defs['EPSG:900913'] = defs['EPSG:3857'];\n defs['EPSG:102113'] = defs['EPSG:3857'];\n}\n","export var PJD_3PARAM = 1;\nexport var PJD_7PARAM = 2;\nexport var PJD_WGS84 = 4; // WGS84 or equivalent\nexport var PJD_NODATUM = 5; // WGS84 or equivalent\nexport var SEC_TO_RAD = 4.84813681109535993589914102357e-6;\nexport var HALF_PI = Math.PI/2;\n// ellipoid pj_set_ell.c\nexport var SIXTH = 0.1666666666666666667;\n/* 1/6 */\nexport var RA4 = 0.04722222222222222222;\n/* 17/360 */\nexport var RA6 = 0.02215608465608465608;\nexport var EPSLN = 1.0e-10;\n// you'd think you could use Number.EPSILON above but that makes\n// Mollweide get into an infinate loop.\n\nexport var D2R = 0.01745329251994329577;\nexport var R2D = 57.29577951308232088;\nexport var FORTPI = Math.PI/4;\nexport var TWO_PI = Math.PI * 2;\n// SPI is slightly greater than Math.PI, so values that exceed the -180..180\n// degree range by a tiny amount don't get wrapped. This prevents points that\n// have drifted from their original location along the 180th meridian (due to\n// floating point error) from changing their sign.\nexport var SPI = 3.14159265359;\n","var exports = {};\nexport {exports as default};\n\nexports.greenwich = 0.0; //\"0dE\",\nexports.lisbon = -9.131906111111; //\"9d07'54.862\\\"W\",\nexports.paris = 2.337229166667; //\"2d20'14.025\\\"E\",\nexports.bogota = -74.080916666667; //\"74d04'51.3\\\"W\",\nexports.madrid = -3.687938888889; //\"3d41'16.58\\\"W\",\nexports.rome = 12.452333333333; //\"12d27'8.4\\\"E\",\nexports.bern = 7.439583333333; //\"7d26'22.5\\\"E\",\nexports.jakarta = 106.807719444444; //\"106d48'27.79\\\"E\",\nexports.ferro = -17.666666666667; //\"17d40'W\",\nexports.brussels = 4.367975; //\"4d22'4.71\\\"E\",\nexports.stockholm = 18.058277777778; //\"18d3'29.8\\\"E\",\nexports.athens = 23.7163375; //\"23d42'58.815\\\"E\",\nexports.oslo = 10.722916666667; //\"10d43'22.5\\\"E\"\n","export default {\n ft: {to_meter: 0.3048},\n 'us-ft': {to_meter: 1200 / 3937}\n};\n","var ignoredChar = /[\\s_\\-\\/\\(\\)]/g;\nexport default function match(obj, key) {\n if (obj[key]) {\n return obj[key];\n }\n var keys = Object.keys(obj);\n var lkey = key.toLowerCase().replace(ignoredChar, '');\n var i = -1;\n var testkey, processedKey;\n while (++i < keys.length) {\n testkey = keys[i];\n processedKey = testkey.toLowerCase().replace(ignoredChar, '');\n if (processedKey === lkey) {\n return obj[testkey];\n }\n }\n}\n","import {D2R} from './constants/values';\nimport PrimeMeridian from './constants/PrimeMeridian';\nimport units from './constants/units';\nimport match from './match';\n\nexport default function(defData) {\n var self = {};\n var paramObj = defData.split('+').map(function(v) {\n return v.trim();\n }).filter(function(a) {\n return a;\n }).reduce(function(p, a) {\n var split = a.split('=');\n split.push(true);\n p[split[0].toLowerCase()] = split[1];\n return p;\n }, {});\n var paramName, paramVal, paramOutname;\n var params = {\n proj: 'projName',\n datum: 'datumCode',\n rf: function(v) {\n self.rf = parseFloat(v);\n },\n lat_0: function(v) {\n self.lat0 = v * D2R;\n },\n lat_1: function(v) {\n self.lat1 = v * D2R;\n },\n lat_2: function(v) {\n self.lat2 = v * D2R;\n },\n lat_ts: function(v) {\n self.lat_ts = v * D2R;\n },\n lon_0: function(v) {\n self.long0 = v * D2R;\n },\n lon_1: function(v) {\n self.long1 = v * D2R;\n },\n lon_2: function(v) {\n self.long2 = v * D2R;\n },\n alpha: function(v) {\n self.alpha = parseFloat(v) * D2R;\n },\n lonc: function(v) {\n self.longc = v * D2R;\n },\n x_0: function(v) {\n self.x0 = parseFloat(v);\n },\n y_0: function(v) {\n self.y0 = parseFloat(v);\n },\n k_0: function(v) {\n self.k0 = parseFloat(v);\n },\n k: function(v) {\n self.k0 = parseFloat(v);\n },\n a: function(v) {\n self.a = parseFloat(v);\n },\n b: function(v) {\n self.b = parseFloat(v);\n },\n r_a: function() {\n self.R_A = true;\n },\n zone: function(v) {\n self.zone = parseInt(v, 10);\n },\n south: function() {\n self.utmSouth = true;\n },\n towgs84: function(v) {\n self.datum_params = v.split(\",\").map(function(a) {\n return parseFloat(a);\n });\n },\n to_meter: function(v) {\n self.to_meter = parseFloat(v);\n },\n units: function(v) {\n self.units = v;\n var unit = match(units, v);\n if (unit) {\n self.to_meter = unit.to_meter;\n }\n },\n from_greenwich: function(v) {\n self.from_greenwich = v * D2R;\n },\n pm: function(v) {\n var pm = match(PrimeMeridian, v);\n self.from_greenwich = (pm ? pm : parseFloat(v)) * D2R;\n },\n nadgrids: function(v) {\n if (v === '@null') {\n self.datumCode = 'none';\n }\n else {\n self.nadgrids = v;\n }\n },\n axis: function(v) {\n var legalAxis = \"ewnsud\";\n if (v.length === 3 && legalAxis.indexOf(v.substr(0, 1)) !== -1 && legalAxis.indexOf(v.substr(1, 1)) !== -1 && legalAxis.indexOf(v.substr(2, 1)) !== -1) {\n self.axis = v;\n }\n }\n };\n for (paramName in paramObj) {\n paramVal = paramObj[paramName];\n if (paramName in params) {\n paramOutname = params[paramName];\n if (typeof paramOutname === 'function') {\n paramOutname(paramVal);\n }\n else {\n self[paramOutname] = paramVal;\n }\n }\n else {\n self[paramName] = paramVal;\n }\n }\n if(typeof self.datumCode === 'string' && self.datumCode !== \"WGS84\"){\n self.datumCode = self.datumCode.toLowerCase();\n }\n return self;\n}\n","export default parseString;\n\nvar NEUTRAL = 1;\nvar KEYWORD = 2;\nvar NUMBER = 3;\nvar QUOTED = 4;\nvar AFTERQUOTE = 5;\nvar ENDED = -1;\nvar whitespace = /\\s/;\nvar latin = /[A-Za-z]/;\nvar keyword = /[A-Za-z84]/;\nvar endThings = /[,\\]]/;\nvar digets = /[\\d\\.E\\-\\+]/;\n// const ignoredChar = /[\\s_\\-\\/\\(\\)]/g;\nfunction Parser(text) {\n if (typeof text !== 'string') {\n throw new Error('not a string');\n }\n this.text = text.trim();\n this.level = 0;\n this.place = 0;\n this.root = null;\n this.stack = [];\n this.currentObject = null;\n this.state = NEUTRAL;\n}\nParser.prototype.readCharicter = function() {\n var char = this.text[this.place++];\n if (this.state !== QUOTED) {\n while (whitespace.test(char)) {\n if (this.place >= this.text.length) {\n return;\n }\n char = this.text[this.place++];\n }\n }\n switch (this.state) {\n case NEUTRAL:\n return this.neutral(char);\n case KEYWORD:\n return this.keyword(char)\n case QUOTED:\n return this.quoted(char);\n case AFTERQUOTE:\n return this.afterquote(char);\n case NUMBER:\n return this.number(char);\n case ENDED:\n return;\n }\n};\nParser.prototype.afterquote = function(char) {\n if (char === '\"') {\n this.word += '\"';\n this.state = QUOTED;\n return;\n }\n if (endThings.test(char)) {\n this.word = this.word.trim();\n this.afterItem(char);\n return;\n }\n throw new Error('havn\\'t handled \"' +char + '\" in afterquote yet, index ' + this.place);\n};\nParser.prototype.afterItem = function(char) {\n if (char === ',') {\n if (this.word !== null) {\n this.currentObject.push(this.word);\n }\n this.word = null;\n this.state = NEUTRAL;\n return;\n }\n if (char === ']') {\n this.level--;\n if (this.word !== null) {\n this.currentObject.push(this.word);\n this.word = null;\n }\n this.state = NEUTRAL;\n this.currentObject = this.stack.pop();\n if (!this.currentObject) {\n this.state = ENDED;\n }\n\n return;\n }\n};\nParser.prototype.number = function(char) {\n if (digets.test(char)) {\n this.word += char;\n return;\n }\n if (endThings.test(char)) {\n this.word = parseFloat(this.word);\n this.afterItem(char);\n return;\n }\n throw new Error('havn\\'t handled \"' +char + '\" in number yet, index ' + this.place);\n};\nParser.prototype.quoted = function(char) {\n if (char === '\"') {\n this.state = AFTERQUOTE;\n return;\n }\n this.word += char;\n return;\n};\nParser.prototype.keyword = function(char) {\n if (keyword.test(char)) {\n this.word += char;\n return;\n }\n if (char === '[') {\n var newObjects = [];\n newObjects.push(this.word);\n this.level++;\n if (this.root === null) {\n this.root = newObjects;\n } else {\n this.currentObject.push(newObjects);\n }\n this.stack.push(this.currentObject);\n this.currentObject = newObjects;\n this.state = NEUTRAL;\n return;\n }\n if (endThings.test(char)) {\n this.afterItem(char);\n return;\n }\n throw new Error('havn\\'t handled \"' +char + '\" in keyword yet, index ' + this.place);\n};\nParser.prototype.neutral = function(char) {\n if (latin.test(char)) {\n this.word = char;\n this.state = KEYWORD;\n return;\n }\n if (char === '\"') {\n this.word = '';\n this.state = QUOTED;\n return;\n }\n if (digets.test(char)) {\n this.word = char;\n this.state = NUMBER;\n return;\n }\n if (endThings.test(char)) {\n this.afterItem(char);\n return;\n }\n throw new Error('havn\\'t handled \"' +char + '\" in neutral yet, index ' + this.place);\n};\nParser.prototype.output = function() {\n while (this.place < this.text.length) {\n this.readCharicter();\n }\n if (this.state === ENDED) {\n return this.root;\n }\n throw new Error('unable to parse string \"' +this.text + '\". State is ' + this.state);\n};\n\nfunction parseString(txt) {\n var parser = new Parser(txt);\n return parser.output();\n}\n","\n\nfunction mapit(obj, key, value) {\n if (Array.isArray(key)) {\n value.unshift(key);\n key = null;\n }\n var thing = key ? {} : obj;\n\n var out = value.reduce(function(newObj, item) {\n sExpr(item, newObj);\n return newObj\n }, thing);\n if (key) {\n obj[key] = out;\n }\n}\n\nexport function sExpr(v, obj) {\n if (!Array.isArray(v)) {\n obj[v] = true;\n return;\n }\n var key = v.shift();\n if (key === 'PARAMETER') {\n key = v.shift();\n }\n if (v.length === 1) {\n if (Array.isArray(v[0])) {\n obj[key] = {};\n sExpr(v[0], obj[key]);\n return;\n }\n obj[key] = v[0];\n return;\n }\n if (!v.length) {\n obj[key] = true;\n return;\n }\n if (key === 'TOWGS84') {\n obj[key] = v;\n return;\n }\n if (key === 'AXIS') {\n if (!(key in obj)) {\n obj[key] = [];\n }\n obj[key].push(v);\n return;\n }\n if (!Array.isArray(key)) {\n obj[key] = {};\n }\n\n var i;\n switch (key) {\n case 'UNIT':\n case 'PRIMEM':\n case 'VERT_DATUM':\n obj[key] = {\n name: v[0].toLowerCase(),\n convert: v[1]\n };\n if (v.length === 3) {\n sExpr(v[2], obj[key]);\n }\n return;\n case 'SPHEROID':\n case 'ELLIPSOID':\n obj[key] = {\n name: v[0],\n a: v[1],\n rf: v[2]\n };\n if (v.length === 4) {\n sExpr(v[3], obj[key]);\n }\n return;\n case 'PROJECTEDCRS':\n case 'PROJCRS':\n case 'GEOGCS':\n case 'GEOCCS':\n case 'PROJCS':\n case 'LOCAL_CS':\n case 'GEODCRS':\n case 'GEODETICCRS':\n case 'GEODETICDATUM':\n case 'EDATUM':\n case 'ENGINEERINGDATUM':\n case 'VERT_CS':\n case 'VERTCRS':\n case 'VERTICALCRS':\n case 'COMPD_CS':\n case 'COMPOUNDCRS':\n case 'ENGINEERINGCRS':\n case 'ENGCRS':\n case 'FITTED_CS':\n case 'LOCAL_DATUM':\n case 'DATUM':\n v[0] = ['name', v[0]];\n mapit(obj, key, v);\n return;\n default:\n i = -1;\n while (++i < v.length) {\n if (!Array.isArray(v[i])) {\n return sExpr(v, obj[key]);\n }\n }\n return mapit(obj, key, v);\n }\n}\n","var D2R = 0.01745329251994329577;\nimport parser from './parser';\nimport {sExpr} from './process';\n\n\n\nfunction rename(obj, params) {\n var outName = params[0];\n var inName = params[1];\n if (!(outName in obj) && (inName in obj)) {\n obj[outName] = obj[inName];\n if (params.length === 3) {\n obj[outName] = params[2](obj[outName]);\n }\n }\n}\n\nfunction d2r(input) {\n return input * D2R;\n}\n\nfunction cleanWKT(wkt) {\n if (wkt.type === 'GEOGCS') {\n wkt.projName = 'longlat';\n } else if (wkt.type === 'LOCAL_CS') {\n wkt.projName = 'identity';\n wkt.local = true;\n } else {\n if (typeof wkt.PROJECTION === 'object') {\n wkt.projName = Object.keys(wkt.PROJECTION)[0];\n } else {\n wkt.projName = wkt.PROJECTION;\n }\n }\n if (wkt.AXIS) {\n var axisOrder = '';\n for (var i = 0, ii = wkt.AXIS.length; i < ii; ++i) {\n var axis = wkt.AXIS[i];\n var descriptor = axis[0].toLowerCase();\n if (descriptor.indexOf('north') !== -1) {\n axisOrder += 'n';\n } else if (descriptor.indexOf('south') !== -1) {\n axisOrder += 's';\n } else if (descriptor.indexOf('east') !== -1) {\n axisOrder += 'e';\n } else if (descriptor.indexOf('west') !== -1) {\n axisOrder += 'w';\n }\n }\n if (axisOrder.length === 2) {\n axisOrder += 'u';\n }\n if (axisOrder.length === 3) {\n wkt.axis = axisOrder;\n }\n }\n if (wkt.UNIT) {\n wkt.units = wkt.UNIT.name.toLowerCase();\n if (wkt.units === 'metre') {\n wkt.units = 'meter';\n }\n if (wkt.UNIT.convert) {\n if (wkt.type === 'GEOGCS') {\n if (wkt.DATUM && wkt.DATUM.SPHEROID) {\n wkt.to_meter = wkt.UNIT.convert*wkt.DATUM.SPHEROID.a;\n }\n } else {\n wkt.to_meter = wkt.UNIT.convert;\n }\n }\n }\n var geogcs = wkt.GEOGCS;\n if (wkt.type === 'GEOGCS') {\n geogcs = wkt;\n }\n if (geogcs) {\n //if(wkt.GEOGCS.PRIMEM&&wkt.GEOGCS.PRIMEM.convert){\n // wkt.from_greenwich=wkt.GEOGCS.PRIMEM.convert*D2R;\n //}\n if (geogcs.DATUM) {\n wkt.datumCode = geogcs.DATUM.name.toLowerCase();\n } else {\n wkt.datumCode = geogcs.name.toLowerCase();\n }\n if (wkt.datumCode.slice(0, 2) === 'd_') {\n wkt.datumCode = wkt.datumCode.slice(2);\n }\n if (wkt.datumCode === 'new_zealand_geodetic_datum_1949' || wkt.datumCode === 'new_zealand_1949') {\n wkt.datumCode = 'nzgd49';\n }\n if (wkt.datumCode === 'wgs_1984' || wkt.datumCode === 'world_geodetic_system_1984') {\n if (wkt.PROJECTION === 'Mercator_Auxiliary_Sphere') {\n wkt.sphere = true;\n }\n wkt.datumCode = 'wgs84';\n }\n if (wkt.datumCode.slice(-6) === '_ferro') {\n wkt.datumCode = wkt.datumCode.slice(0, - 6);\n }\n if (wkt.datumCode.slice(-8) === '_jakarta') {\n wkt.datumCode = wkt.datumCode.slice(0, - 8);\n }\n if (~wkt.datumCode.indexOf('belge')) {\n wkt.datumCode = 'rnb72';\n }\n if (geogcs.DATUM && geogcs.DATUM.SPHEROID) {\n wkt.ellps = geogcs.DATUM.SPHEROID.name.replace('_19', '').replace(/[Cc]larke\\_18/, 'clrk');\n if (wkt.ellps.toLowerCase().slice(0, 13) === 'international') {\n wkt.ellps = 'intl';\n }\n\n wkt.a = geogcs.DATUM.SPHEROID.a;\n wkt.rf = parseFloat(geogcs.DATUM.SPHEROID.rf, 10);\n }\n\n if (geogcs.DATUM && geogcs.DATUM.TOWGS84) {\n wkt.datum_params = geogcs.DATUM.TOWGS84;\n }\n if (~wkt.datumCode.indexOf('osgb_1936')) {\n wkt.datumCode = 'osgb36';\n }\n if (~wkt.datumCode.indexOf('osni_1952')) {\n wkt.datumCode = 'osni52';\n }\n if (~wkt.datumCode.indexOf('tm65')\n || ~wkt.datumCode.indexOf('geodetic_datum_of_1965')) {\n wkt.datumCode = 'ire65';\n }\n if (wkt.datumCode === 'ch1903+') {\n wkt.datumCode = 'ch1903';\n }\n if (~wkt.datumCode.indexOf('israel')) {\n wkt.datumCode = 'isr93';\n }\n }\n if (wkt.b && !isFinite(wkt.b)) {\n wkt.b = wkt.a;\n }\n\n function toMeter(input) {\n var ratio = wkt.to_meter || 1;\n return input * ratio;\n }\n var renamer = function(a) {\n return rename(wkt, a);\n };\n var list = [\n ['standard_parallel_1', 'Standard_Parallel_1'],\n ['standard_parallel_2', 'Standard_Parallel_2'],\n ['false_easting', 'False_Easting'],\n ['false_northing', 'False_Northing'],\n ['central_meridian', 'Central_Meridian'],\n ['latitude_of_origin', 'Latitude_Of_Origin'],\n ['latitude_of_origin', 'Central_Parallel'],\n ['scale_factor', 'Scale_Factor'],\n ['k0', 'scale_factor'],\n ['latitude_of_center', 'Latitude_Of_Center'],\n ['latitude_of_center', 'Latitude_of_center'],\n ['lat0', 'latitude_of_center', d2r],\n ['longitude_of_center', 'Longitude_Of_Center'],\n ['longitude_of_center', 'Longitude_of_center'],\n ['longc', 'longitude_of_center', d2r],\n ['x0', 'false_easting', toMeter],\n ['y0', 'false_northing', toMeter],\n ['long0', 'central_meridian', d2r],\n ['lat0', 'latitude_of_origin', d2r],\n ['lat0', 'standard_parallel_1', d2r],\n ['lat1', 'standard_parallel_1', d2r],\n ['lat2', 'standard_parallel_2', d2r],\n ['azimuth', 'Azimuth'],\n ['alpha', 'azimuth', d2r],\n ['srsCode', 'name']\n ];\n list.forEach(renamer);\n if (!wkt.long0 && wkt.longc && (wkt.projName === 'Albers_Conic_Equal_Area' || wkt.projName === 'Lambert_Azimuthal_Equal_Area')) {\n wkt.long0 = wkt.longc;\n }\n if (!wkt.lat_ts && wkt.lat1 && (wkt.projName === 'Stereographic_South_Pole' || wkt.projName === 'Polar Stereographic (variant B)')) {\n wkt.lat0 = d2r(wkt.lat1 > 0 ? 90 : -90);\n wkt.lat_ts = wkt.lat1;\n }\n}\nexport default function(wkt) {\n var lisp = parser(wkt);\n var type = lisp.shift();\n var name = lisp.shift();\n lisp.unshift(['name', name]);\n lisp.unshift(['type', type]);\n var obj = {};\n sExpr(lisp, obj);\n cleanWKT(obj);\n return obj;\n}\n","import globals from './global';\nimport parseProj from './projString';\nimport wkt from 'wkt-parser';\n\nfunction defs(name) {\n /*global console*/\n var that = this;\n if (arguments.length === 2) {\n var def = arguments[1];\n if (typeof def === 'string') {\n if (def.charAt(0) === '+') {\n defs[name] = parseProj(arguments[1]);\n }\n else {\n defs[name] = wkt(arguments[1]);\n }\n } else {\n defs[name] = def;\n }\n }\n else if (arguments.length === 1) {\n if (Array.isArray(name)) {\n return name.map(function(v) {\n if (Array.isArray(v)) {\n defs.apply(that, v);\n }\n else {\n defs(v);\n }\n });\n }\n else if (typeof name === 'string') {\n if (name in defs) {\n return defs[name];\n }\n }\n else if ('EPSG' in name) {\n defs['EPSG:' + name.EPSG] = name;\n }\n else if ('ESRI' in name) {\n defs['ESRI:' + name.ESRI] = name;\n }\n else if ('IAU2000' in name) {\n defs['IAU2000:' + name.IAU2000] = name;\n }\n else {\n console.log(name);\n }\n return;\n }\n\n\n}\nglobals(defs);\nexport default defs;\n","import defs from './defs';\nimport wkt from 'wkt-parser';\nimport projStr from './projString';\nimport match from './match';\nfunction testObj(code){\n return typeof code === 'string';\n}\nfunction testDef(code){\n return code in defs;\n}\n var codeWords = ['PROJECTEDCRS', 'PROJCRS', 'GEOGCS','GEOCCS','PROJCS','LOCAL_CS', 'GEODCRS', 'GEODETICCRS', 'GEODETICDATUM', 'ENGCRS', 'ENGINEERINGCRS'];\nfunction testWKT(code){\n return codeWords.some(function (word) {\n return code.indexOf(word) > -1;\n });\n}\nvar codes = ['3857', '900913', '3785', '102113'];\nfunction checkMercator(item) {\n var auth = match(item, 'authority');\n if (!auth) {\n return;\n }\n var code = match(auth, 'epsg');\n return code && codes.indexOf(code) > -1;\n}\nfunction checkProjStr(item) {\n var ext = match(item, 'extension');\n if (!ext) {\n return;\n }\n return match(ext, 'proj4');\n}\nfunction testProj(code){\n return code[0] === '+';\n}\nfunction parse(code){\n if (testObj(code)) {\n //check to see if this is a WKT string\n if (testDef(code)) {\n return defs[code];\n }\n if (testWKT(code)) {\n var out = wkt(code);\n // test of spetial case, due to this being a very common and often malformed\n if (checkMercator(out)) {\n return defs['EPSG:3857'];\n }\n var maybeProjStr = checkProjStr(out);\n if (maybeProjStr) {\n return projStr(maybeProjStr);\n }\n return out;\n }\n if (testProj(code)) {\n return projStr(code);\n }\n }else{\n return code;\n }\n}\n\nexport default parse;\n","export default function(destination, source) {\n destination = destination || {};\n var value, property;\n if (!source) {\n return destination;\n }\n for (property in source) {\n value = source[property];\n if (value !== undefined) {\n destination[property] = value;\n }\n }\n return destination;\n}\n","export default function(eccent, sinphi, cosphi) {\n var con = eccent * sinphi;\n return cosphi / (Math.sqrt(1 - con * con));\n}","export default function(x) {\n return x<0 ? -1 : 1;\n}","\nimport {TWO_PI, SPI} from '../constants/values';\nimport sign from './sign';\n\nexport default function(x) {\n return (Math.abs(x) <= SPI) ? x : (x - (sign(x) * TWO_PI));\n}\n","import {HALF_PI} from '../constants/values';\n\nexport default function(eccent, phi, sinphi) {\n var con = eccent * sinphi;\n var com = 0.5 * eccent;\n con = Math.pow(((1 - con) / (1 + con)), com);\n return (Math.tan(0.5 * (HALF_PI - phi)) / con);\n}\n","import {HALF_PI} from '../constants/values';\n\nexport default function(eccent, ts) {\n var eccnth = 0.5 * eccent;\n var con, dphi;\n var phi = HALF_PI - 2 * Math.atan(ts);\n for (var i = 0; i <= 15; i++) {\n con = eccent * Math.sin(phi);\n dphi = HALF_PI - 2 * Math.atan(ts * (Math.pow(((1 - con) / (1 + con)), eccnth))) - phi;\n phi += dphi;\n if (Math.abs(dphi) <= 0.0000000001) {\n return phi;\n }\n }\n //console.log(\"phi2z has NoConvergence\");\n return -9999;\n}\n","export function init() {\n //no-op for longlat\n}\n\nfunction identity(pt) {\n return pt;\n}\nexport {identity as forward};\nexport {identity as inverse};\nexport var names = [\"longlat\", \"identity\"];\nexport default {\n init: init,\n forward: identity,\n inverse: identity,\n names: names\n};\n","import merc from \"./projections/merc\";\nimport longlat from \"./projections/longlat\";\nvar projs = [merc, longlat];\nvar names = {};\nvar projStore = [];\n\nfunction add(proj, i) {\n var len = projStore.length;\n if (!proj.names) {\n console.log(i);\n return true;\n }\n projStore[len] = proj;\n proj.names.forEach(function(n) {\n names[n.toLowerCase()] = len;\n });\n return this;\n}\n\nexport {add};\n\nexport function get(name) {\n if (!name) {\n return false;\n }\n var n = name.toLowerCase();\n if (typeof names[n] !== 'undefined' && projStore[names[n]]) {\n return projStore[names[n]];\n }\n}\n\nexport function start() {\n projs.forEach(add);\n}\nexport default {\n start: start,\n add: add,\n get: get\n};\n","import msfnz from '../common/msfnz';\n\nimport adjust_lon from '../common/adjust_lon';\nimport tsfnz from '../common/tsfnz';\nimport phi2z from '../common/phi2z';\nimport {FORTPI, R2D, EPSLN, HALF_PI} from '../constants/values';\nexport function init() {\n var con = this.b / this.a;\n this.es = 1 - con * con;\n if(!('x0' in this)){\n this.x0 = 0;\n }\n if(!('y0' in this)){\n this.y0 = 0;\n }\n this.e = Math.sqrt(this.es);\n if (this.lat_ts) {\n if (this.sphere) {\n this.k0 = Math.cos(this.lat_ts);\n }\n else {\n this.k0 = msfnz(this.e, Math.sin(this.lat_ts), Math.cos(this.lat_ts));\n }\n }\n else {\n if (!this.k0) {\n if (this.k) {\n this.k0 = this.k;\n }\n else {\n this.k0 = 1;\n }\n }\n }\n}\n\n/* Mercator forward equations--mapping lat,long to x,y\n --------------------------------------------------*/\n\nexport function forward(p) {\n var lon = p.x;\n var lat = p.y;\n // convert to radians\n if (lat * R2D > 90 && lat * R2D < -90 && lon * R2D > 180 && lon * R2D < -180) {\n return null;\n }\n\n var x, y;\n if (Math.abs(Math.abs(lat) - HALF_PI) <= EPSLN) {\n return null;\n }\n else {\n if (this.sphere) {\n x = this.x0 + this.a * this.k0 * adjust_lon(lon - this.long0);\n y = this.y0 + this.a * this.k0 * Math.log(Math.tan(FORTPI + 0.5 * lat));\n }\n else {\n var sinphi = Math.sin(lat);\n var ts = tsfnz(this.e, lat, sinphi);\n x = this.x0 + this.a * this.k0 * adjust_lon(lon - this.long0);\n y = this.y0 - this.a * this.k0 * Math.log(ts);\n }\n p.x = x;\n p.y = y;\n return p;\n }\n}\n\n/* Mercator inverse equations--mapping x,y to lat/long\n --------------------------------------------------*/\nexport function inverse(p) {\n\n var x = p.x - this.x0;\n var y = p.y - this.y0;\n var lon, lat;\n\n if (this.sphere) {\n lat = HALF_PI - 2 * Math.atan(Math.exp(-y / (this.a * this.k0)));\n }\n else {\n var ts = Math.exp(-y / (this.a * this.k0));\n lat = phi2z(this.e, ts);\n if (lat === -9999) {\n return null;\n }\n }\n lon = adjust_lon(this.long0 + x / (this.a * this.k0));\n\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"Mercator\", \"Popular Visualisation Pseudo Mercator\", \"Mercator_1SP\", \"Mercator_Auxiliary_Sphere\", \"merc\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","var exports = {};\nexport {exports as default};\nexports.MERIT = {\n a: 6378137.0,\n rf: 298.257,\n ellipseName: \"MERIT 1983\"\n};\n\nexports.SGS85 = {\n a: 6378136.0,\n rf: 298.257,\n ellipseName: \"Soviet Geodetic System 85\"\n};\n\nexports.GRS80 = {\n a: 6378137.0,\n rf: 298.257222101,\n ellipseName: \"GRS 1980(IUGG, 1980)\"\n};\n\nexports.IAU76 = {\n a: 6378140.0,\n rf: 298.257,\n ellipseName: \"IAU 1976\"\n};\n\nexports.airy = {\n a: 6377563.396,\n b: 6356256.910,\n ellipseName: \"Airy 1830\"\n};\n\nexports.APL4 = {\n a: 6378137,\n rf: 298.25,\n ellipseName: \"Appl. Physics. 1965\"\n};\n\nexports.NWL9D = {\n a: 6378145.0,\n rf: 298.25,\n ellipseName: \"Naval Weapons Lab., 1965\"\n};\n\nexports.mod_airy = {\n a: 6377340.189,\n b: 6356034.446,\n ellipseName: \"Modified Airy\"\n};\n\nexports.andrae = {\n a: 6377104.43,\n rf: 300.0,\n ellipseName: \"Andrae 1876 (Den., Iclnd.)\"\n};\n\nexports.aust_SA = {\n a: 6378160.0,\n rf: 298.25,\n ellipseName: \"Australian Natl & S. Amer. 1969\"\n};\n\nexports.GRS67 = {\n a: 6378160.0,\n rf: 298.2471674270,\n ellipseName: \"GRS 67(IUGG 1967)\"\n};\n\nexports.bessel = {\n a: 6377397.155,\n rf: 299.1528128,\n ellipseName: \"Bessel 1841\"\n};\n\nexports.bess_nam = {\n a: 6377483.865,\n rf: 299.1528128,\n ellipseName: \"Bessel 1841 (Namibia)\"\n};\n\nexports.clrk66 = {\n a: 6378206.4,\n b: 6356583.8,\n ellipseName: \"Clarke 1866\"\n};\n\nexports.clrk80 = {\n a: 6378249.145,\n rf: 293.4663,\n ellipseName: \"Clarke 1880 mod.\"\n};\n\nexports.clrk58 = {\n a: 6378293.645208759,\n rf: 294.2606763692654,\n ellipseName: \"Clarke 1858\"\n};\n\nexports.CPM = {\n a: 6375738.7,\n rf: 334.29,\n ellipseName: \"Comm. des Poids et Mesures 1799\"\n};\n\nexports.delmbr = {\n a: 6376428.0,\n rf: 311.5,\n ellipseName: \"Delambre 1810 (Belgium)\"\n};\n\nexports.engelis = {\n a: 6378136.05,\n rf: 298.2566,\n ellipseName: \"Engelis 1985\"\n};\n\nexports.evrst30 = {\n a: 6377276.345,\n rf: 300.8017,\n ellipseName: \"Everest 1830\"\n};\n\nexports.evrst48 = {\n a: 6377304.063,\n rf: 300.8017,\n ellipseName: \"Everest 1948\"\n};\n\nexports.evrst56 = {\n a: 6377301.243,\n rf: 300.8017,\n ellipseName: \"Everest 1956\"\n};\n\nexports.evrst69 = {\n a: 6377295.664,\n rf: 300.8017,\n ellipseName: \"Everest 1969\"\n};\n\nexports.evrstSS = {\n a: 6377298.556,\n rf: 300.8017,\n ellipseName: \"Everest (Sabah & Sarawak)\"\n};\n\nexports.fschr60 = {\n a: 6378166.0,\n rf: 298.3,\n ellipseName: \"Fischer (Mercury Datum) 1960\"\n};\n\nexports.fschr60m = {\n a: 6378155.0,\n rf: 298.3,\n ellipseName: \"Fischer 1960\"\n};\n\nexports.fschr68 = {\n a: 6378150.0,\n rf: 298.3,\n ellipseName: \"Fischer 1968\"\n};\n\nexports.helmert = {\n a: 6378200.0,\n rf: 298.3,\n ellipseName: \"Helmert 1906\"\n};\n\nexports.hough = {\n a: 6378270.0,\n rf: 297.0,\n ellipseName: \"Hough\"\n};\n\nexports.intl = {\n a: 6378388.0,\n rf: 297.0,\n ellipseName: \"International 1909 (Hayford)\"\n};\n\nexports.kaula = {\n a: 6378163.0,\n rf: 298.24,\n ellipseName: \"Kaula 1961\"\n};\n\nexports.lerch = {\n a: 6378139.0,\n rf: 298.257,\n ellipseName: \"Lerch 1979\"\n};\n\nexports.mprts = {\n a: 6397300.0,\n rf: 191.0,\n ellipseName: \"Maupertius 1738\"\n};\n\nexports.new_intl = {\n a: 6378157.5,\n b: 6356772.2,\n ellipseName: \"New International 1967\"\n};\n\nexports.plessis = {\n a: 6376523.0,\n rf: 6355863.0,\n ellipseName: \"Plessis 1817 (France)\"\n};\n\nexports.krass = {\n a: 6378245.0,\n rf: 298.3,\n ellipseName: \"Krassovsky, 1942\"\n};\n\nexports.SEasia = {\n a: 6378155.0,\n b: 6356773.3205,\n ellipseName: \"Southeast Asia\"\n};\n\nexports.walbeck = {\n a: 6376896.0,\n b: 6355834.8467,\n ellipseName: \"Walbeck\"\n};\n\nexports.WGS60 = {\n a: 6378165.0,\n rf: 298.3,\n ellipseName: \"WGS 60\"\n};\n\nexports.WGS66 = {\n a: 6378145.0,\n rf: 298.25,\n ellipseName: \"WGS 66\"\n};\n\nexports.WGS7 = {\n a: 6378135.0,\n rf: 298.26,\n ellipseName: \"WGS 72\"\n};\n\nexport var WGS84 = exports.WGS84 = {\n a: 6378137.0,\n rf: 298.257223563,\n ellipseName: \"WGS 84\"\n};\n\nexports.sphere = {\n a: 6370997.0,\n b: 6370997.0,\n ellipseName: \"Normal Sphere (r=6370997)\"\n};\n","var exports = {};\nexport {exports as default};\nexports.wgs84 = {\n towgs84: \"0,0,0\",\n ellipse: \"WGS84\",\n datumName: \"WGS84\"\n};\n\nexports.ch1903 = {\n towgs84: \"674.374,15.056,405.346\",\n ellipse: \"bessel\",\n datumName: \"swiss\"\n};\n\nexports.ggrs87 = {\n towgs84: \"-199.87,74.79,246.62\",\n ellipse: \"GRS80\",\n datumName: \"Greek_Geodetic_Reference_System_1987\"\n};\n\nexports.nad83 = {\n towgs84: \"0,0,0\",\n ellipse: \"GRS80\",\n datumName: \"North_American_Datum_1983\"\n};\n\nexports.nad27 = {\n nadgrids: \"@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat\",\n ellipse: \"clrk66\",\n datumName: \"North_American_Datum_1927\"\n};\n\nexports.potsdam = {\n towgs84: \"606.0,23.0,413.0\",\n ellipse: \"bessel\",\n datumName: \"Potsdam Rauenberg 1950 DHDN\"\n};\n\nexports.carthage = {\n towgs84: \"-263.0,6.0,431.0\",\n ellipse: \"clark80\",\n datumName: \"Carthage 1934 Tunisia\"\n};\n\nexports.hermannskogel = {\n towgs84: \"653.0,-212.0,449.0\",\n ellipse: \"bessel\",\n datumName: \"Hermannskogel\"\n};\n\nexports.osni52 = {\n towgs84: \"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15\",\n ellipse: \"airy\",\n datumName: \"Irish National\"\n};\n\nexports.ire65 = {\n towgs84: \"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15\",\n ellipse: \"mod_airy\",\n datumName: \"Ireland 1965\"\n};\n\nexports.rassadiran = {\n towgs84: \"-133.63,-157.5,-158.62\",\n ellipse: \"intl\",\n datumName: \"Rassadiran\"\n};\n\nexports.nzgd49 = {\n towgs84: \"59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993\",\n ellipse: \"intl\",\n datumName: \"New Zealand Geodetic Datum 1949\"\n};\n\nexports.osgb36 = {\n towgs84: \"446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894\",\n ellipse: \"airy\",\n datumName: \"Airy 1830\"\n};\n\nexports.s_jtsk = {\n towgs84: \"589,76,480\",\n ellipse: 'bessel',\n datumName: 'S-JTSK (Ferro)'\n};\n\nexports.beduaram = {\n towgs84: '-106,-87,188',\n ellipse: 'clrk80',\n datumName: 'Beduaram'\n};\n\nexports.gunung_segara = {\n towgs84: '-403,684,41',\n ellipse: 'bessel',\n datumName: 'Gunung Segara Jakarta'\n};\n\nexports.rnb72 = {\n towgs84: \"106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1\",\n ellipse: \"intl\",\n datumName: \"Reseau National Belge 1972\"\n};\n","import {PJD_3PARAM, PJD_7PARAM, PJD_WGS84, PJD_NODATUM, SEC_TO_RAD} from './constants/values';\n\nfunction datum(datumCode, datum_params, a, b, es, ep2) {\n var out = {};\n\n if (datumCode === undefined || datumCode === 'none') {\n out.datum_type = PJD_NODATUM;\n } else {\n out.datum_type = PJD_WGS84;\n }\n\n if (datum_params) {\n out.datum_params = datum_params.map(parseFloat);\n if (out.datum_params[0] !== 0 || out.datum_params[1] !== 0 || out.datum_params[2] !== 0) {\n out.datum_type = PJD_3PARAM;\n }\n if (out.datum_params.length > 3) {\n if (out.datum_params[3] !== 0 || out.datum_params[4] !== 0 || out.datum_params[5] !== 0 || out.datum_params[6] !== 0) {\n out.datum_type = PJD_7PARAM;\n out.datum_params[3] *= SEC_TO_RAD;\n out.datum_params[4] *= SEC_TO_RAD;\n out.datum_params[5] *= SEC_TO_RAD;\n out.datum_params[6] = (out.datum_params[6] / 1000000.0) + 1.0;\n }\n }\n }\n\n out.a = a; //datum object also uses these values\n out.b = b;\n out.es = es;\n out.ep2 = ep2;\n return out;\n}\n\nexport default datum;\n","import parseCode from './parseCode';\nimport extend from './extend';\nimport projections from './projections';\nimport {sphere as dc_sphere, eccentricity as dc_eccentricity} from './deriveConstants';\nimport Datum from './constants/Datum';\nimport datum from './datum';\nimport match from './match';\n\nfunction Projection(srsCode,callback) {\n if (!(this instanceof Projection)) {\n return new Projection(srsCode);\n }\n callback = callback || function(error){\n if(error){\n throw error;\n }\n };\n var json = parseCode(srsCode);\n if(typeof json !== 'object'){\n callback(srsCode);\n return;\n }\n var ourProj = Projection.projections.get(json.projName);\n if(!ourProj){\n callback(srsCode);\n return;\n }\n if (json.datumCode && json.datumCode !== 'none') {\n var datumDef = match(Datum, json.datumCode);\n if (datumDef) {\n json.datum_params = datumDef.towgs84 ? datumDef.towgs84.split(',') : null;\n json.ellps = datumDef.ellipse;\n json.datumName = datumDef.datumName ? datumDef.datumName : json.datumCode;\n }\n }\n json.k0 = json.k0 || 1.0;\n json.axis = json.axis || 'enu';\n json.ellps = json.ellps || 'wgs84';\n var sphere_ = dc_sphere(json.a, json.b, json.rf, json.ellps, json.sphere);\n var ecc = dc_eccentricity(sphere_.a, sphere_.b, sphere_.rf, json.R_A);\n var datumObj = json.datum || datum(json.datumCode, json.datum_params, sphere_.a, sphere_.b, ecc.es, ecc.ep2);\n\n extend(this, json); // transfer everything over from the projection because we don't know what we'll need\n extend(this, ourProj); // transfer all the methods from the projection\n\n // copy the 4 things over we calulated in deriveConstants.sphere\n this.a = sphere_.a;\n this.b = sphere_.b;\n this.rf = sphere_.rf;\n this.sphere = sphere_.sphere;\n\n // copy the 3 things we calculated in deriveConstants.eccentricity\n this.es = ecc.es;\n this.e = ecc.e;\n this.ep2 = ecc.ep2;\n\n // add in the datum object\n this.datum = datumObj;\n\n // init the projection\n this.init();\n\n // legecy callback from back in the day when it went to spatialreference.org\n callback(null, this);\n\n}\nProjection.projections = projections;\nProjection.projections.start();\nexport default Projection;\n","import {SIXTH, RA4, RA6, EPSLN} from './constants/values';\nimport {default as Ellipsoid, WGS84} from './constants/Ellipsoid';\nimport match from './match';\n\nexport function eccentricity(a, b, rf, R_A) {\n var a2 = a * a; // used in geocentric\n var b2 = b * b; // used in geocentric\n var es = (a2 - b2) / a2; // e ^ 2\n var e = 0;\n if (R_A) {\n a *= 1 - es * (SIXTH + es * (RA4 + es * RA6));\n a2 = a * a;\n es = 0;\n } else {\n e = Math.sqrt(es); // eccentricity\n }\n var ep2 = (a2 - b2) / b2; // used in geocentric\n return {\n es: es,\n e: e,\n ep2: ep2\n };\n}\nexport function sphere(a, b, rf, ellps, sphere) {\n if (!a) { // do we have an ellipsoid?\n var ellipse = match(Ellipsoid, ellps);\n if (!ellipse) {\n ellipse = WGS84;\n }\n a = ellipse.a;\n b = ellipse.b;\n rf = ellipse.rf;\n }\n\n if (rf && !b) {\n b = (1.0 - 1.0 / rf) * a;\n }\n if (rf === 0 || Math.abs(a - b) < EPSLN) {\n sphere = true;\n b = a;\n }\n return {\n a: a,\n b: b,\n rf: rf,\n sphere: sphere\n };\n}\n","'use strict';\nimport {PJD_3PARAM, PJD_7PARAM, HALF_PI} from './constants/values';\nexport function compareDatums(source, dest) {\n if (source.datum_type !== dest.datum_type) {\n return false; // false, datums are not equal\n } else if (source.a !== dest.a || Math.abs(source.es - dest.es) > 0.000000000050) {\n // the tolerance for es is to ensure that GRS80 and WGS84\n // are considered identical\n return false;\n } else if (source.datum_type === PJD_3PARAM) {\n return (source.datum_params[0] === dest.datum_params[0] && source.datum_params[1] === dest.datum_params[1] && source.datum_params[2] === dest.datum_params[2]);\n } else if (source.datum_type === PJD_7PARAM) {\n return (source.datum_params[0] === dest.datum_params[0] && source.datum_params[1] === dest.datum_params[1] && source.datum_params[2] === dest.datum_params[2] && source.datum_params[3] === dest.datum_params[3] && source.datum_params[4] === dest.datum_params[4] && source.datum_params[5] === dest.datum_params[5] && source.datum_params[6] === dest.datum_params[6]);\n } else {\n return true; // datums are equal\n }\n} // cs_compare_datums()\n\n/*\n * The function Convert_Geodetic_To_Geocentric converts geodetic coordinates\n * (latitude, longitude, and height) to geocentric coordinates (X, Y, Z),\n * according to the current ellipsoid parameters.\n *\n * Latitude : Geodetic latitude in radians (input)\n * Longitude : Geodetic longitude in radians (input)\n * Height : Geodetic height, in meters (input)\n * X : Calculated Geocentric X coordinate, in meters (output)\n * Y : Calculated Geocentric Y coordinate, in meters (output)\n * Z : Calculated Geocentric Z coordinate, in meters (output)\n *\n */\nexport function geodeticToGeocentric(p, es, a) {\n var Longitude = p.x;\n var Latitude = p.y;\n var Height = p.z ? p.z : 0; //Z value not always supplied\n\n var Rn; /* Earth radius at location */\n var Sin_Lat; /* Math.sin(Latitude) */\n var Sin2_Lat; /* Square of Math.sin(Latitude) */\n var Cos_Lat; /* Math.cos(Latitude) */\n\n /*\n ** Don't blow up if Latitude is just a little out of the value\n ** range as it may just be a rounding issue. Also removed longitude\n ** test, it should be wrapped by Math.cos() and Math.sin(). NFW for PROJ.4, Sep/2001.\n */\n if (Latitude < -HALF_PI && Latitude > -1.001 * HALF_PI) {\n Latitude = -HALF_PI;\n } else if (Latitude > HALF_PI && Latitude < 1.001 * HALF_PI) {\n Latitude = HALF_PI;\n } else if (Latitude < -HALF_PI) {\n /* Latitude out of range */\n //..reportError('geocent:lat out of range:' + Latitude);\n return { x: -Infinity, y: -Infinity, z: p.z };\n } else if (Latitude > HALF_PI) {\n /* Latitude out of range */\n return { x: Infinity, y: Infinity, z: p.z };\n }\n\n if (Longitude > Math.PI) {\n Longitude -= (2 * Math.PI);\n }\n Sin_Lat = Math.sin(Latitude);\n Cos_Lat = Math.cos(Latitude);\n Sin2_Lat = Sin_Lat * Sin_Lat;\n Rn = a / (Math.sqrt(1.0e0 - es * Sin2_Lat));\n return {\n x: (Rn + Height) * Cos_Lat * Math.cos(Longitude),\n y: (Rn + Height) * Cos_Lat * Math.sin(Longitude),\n z: ((Rn * (1 - es)) + Height) * Sin_Lat\n };\n} // cs_geodetic_to_geocentric()\n\nexport function geocentricToGeodetic(p, es, a, b) {\n /* local defintions and variables */\n /* end-criterium of loop, accuracy of sin(Latitude) */\n var genau = 1e-12;\n var genau2 = (genau * genau);\n var maxiter = 30;\n\n var P; /* distance between semi-minor axis and location */\n var RR; /* distance between center and location */\n var CT; /* sin of geocentric latitude */\n var ST; /* cos of geocentric latitude */\n var RX;\n var RK;\n var RN; /* Earth radius at location */\n var CPHI0; /* cos of start or old geodetic latitude in iterations */\n var SPHI0; /* sin of start or old geodetic latitude in iterations */\n var CPHI; /* cos of searched geodetic latitude */\n var SPHI; /* sin of searched geodetic latitude */\n var SDPHI; /* end-criterium: addition-theorem of sin(Latitude(iter)-Latitude(iter-1)) */\n var iter; /* # of continous iteration, max. 30 is always enough (s.a.) */\n\n var X = p.x;\n var Y = p.y;\n var Z = p.z ? p.z : 0.0; //Z value not always supplied\n var Longitude;\n var Latitude;\n var Height;\n\n P = Math.sqrt(X * X + Y * Y);\n RR = Math.sqrt(X * X + Y * Y + Z * Z);\n\n /* special cases for latitude and longitude */\n if (P / a < genau) {\n\n /* special case, if P=0. (X=0., Y=0.) */\n Longitude = 0.0;\n\n /* if (X,Y,Z)=(0.,0.,0.) then Height becomes semi-minor axis\n * of ellipsoid (=center of mass), Latitude becomes PI/2 */\n if (RR / a < genau) {\n Latitude = HALF_PI;\n Height = -b;\n return {\n x: p.x,\n y: p.y,\n z: p.z\n };\n }\n } else {\n /* ellipsoidal (geodetic) longitude\n * interval: -PI < Longitude <= +PI */\n Longitude = Math.atan2(Y, X);\n }\n\n /* --------------------------------------------------------------\n * Following iterative algorithm was developped by\n * \"Institut for Erdmessung\", University of Hannover, July 1988.\n * Internet: www.ife.uni-hannover.de\n * Iterative computation of CPHI,SPHI and Height.\n * Iteration of CPHI and SPHI to 10**-12 radian resp.\n * 2*10**-7 arcsec.\n * --------------------------------------------------------------\n */\n CT = Z / RR;\n ST = P / RR;\n RX = 1.0 / Math.sqrt(1.0 - es * (2.0 - es) * ST * ST);\n CPHI0 = ST * (1.0 - es) * RX;\n SPHI0 = CT * RX;\n iter = 0;\n\n /* loop to find sin(Latitude) resp. Latitude\n * until |sin(Latitude(iter)-Latitude(iter-1))| < genau */\n do {\n iter++;\n RN = a / Math.sqrt(1.0 - es * SPHI0 * SPHI0);\n\n /* ellipsoidal (geodetic) height */\n Height = P * CPHI0 + Z * SPHI0 - RN * (1.0 - es * SPHI0 * SPHI0);\n\n RK = es * RN / (RN + Height);\n RX = 1.0 / Math.sqrt(1.0 - RK * (2.0 - RK) * ST * ST);\n CPHI = ST * (1.0 - RK) * RX;\n SPHI = CT * RX;\n SDPHI = SPHI * CPHI0 - CPHI * SPHI0;\n CPHI0 = CPHI;\n SPHI0 = SPHI;\n }\n while (SDPHI * SDPHI > genau2 && iter < maxiter);\n\n /* ellipsoidal (geodetic) latitude */\n Latitude = Math.atan(SPHI / Math.abs(CPHI));\n return {\n x: Longitude,\n y: Latitude,\n z: Height\n };\n} // cs_geocentric_to_geodetic()\n\n/****************************************************************/\n// pj_geocentic_to_wgs84( p )\n// p = point to transform in geocentric coordinates (x,y,z)\n\n\n/** point object, nothing fancy, just allows values to be\n passed back and forth by reference rather than by value.\n Other point classes may be used as long as they have\n x and y properties, which will get modified in the transform method.\n*/\nexport function geocentricToWgs84(p, datum_type, datum_params) {\n\n if (datum_type === PJD_3PARAM) {\n // if( x[io] === HUGE_VAL )\n // continue;\n return {\n x: p.x + datum_params[0],\n y: p.y + datum_params[1],\n z: p.z + datum_params[2],\n };\n } else if (datum_type === PJD_7PARAM) {\n var Dx_BF = datum_params[0];\n var Dy_BF = datum_params[1];\n var Dz_BF = datum_params[2];\n var Rx_BF = datum_params[3];\n var Ry_BF = datum_params[4];\n var Rz_BF = datum_params[5];\n var M_BF = datum_params[6];\n // if( x[io] === HUGE_VAL )\n // continue;\n return {\n x: M_BF * (p.x - Rz_BF * p.y + Ry_BF * p.z) + Dx_BF,\n y: M_BF * (Rz_BF * p.x + p.y - Rx_BF * p.z) + Dy_BF,\n z: M_BF * (-Ry_BF * p.x + Rx_BF * p.y + p.z) + Dz_BF\n };\n }\n} // cs_geocentric_to_wgs84\n\n/****************************************************************/\n// pj_geocentic_from_wgs84()\n// coordinate system definition,\n// point to transform in geocentric coordinates (x,y,z)\nexport function geocentricFromWgs84(p, datum_type, datum_params) {\n\n if (datum_type === PJD_3PARAM) {\n //if( x[io] === HUGE_VAL )\n // continue;\n return {\n x: p.x - datum_params[0],\n y: p.y - datum_params[1],\n z: p.z - datum_params[2],\n };\n\n } else if (datum_type === PJD_7PARAM) {\n var Dx_BF = datum_params[0];\n var Dy_BF = datum_params[1];\n var Dz_BF = datum_params[2];\n var Rx_BF = datum_params[3];\n var Ry_BF = datum_params[4];\n var Rz_BF = datum_params[5];\n var M_BF = datum_params[6];\n var x_tmp = (p.x - Dx_BF) / M_BF;\n var y_tmp = (p.y - Dy_BF) / M_BF;\n var z_tmp = (p.z - Dz_BF) / M_BF;\n //if( x[io] === HUGE_VAL )\n // continue;\n\n return {\n x: x_tmp + Rz_BF * y_tmp - Ry_BF * z_tmp,\n y: -Rz_BF * x_tmp + y_tmp + Rx_BF * z_tmp,\n z: Ry_BF * x_tmp - Rx_BF * y_tmp + z_tmp\n };\n } //cs_geocentric_from_wgs84()\n}\n","import {PJD_3PARAM, PJD_7PARAM, PJD_NODATUM} from './constants/values';\n\nimport {geodeticToGeocentric, geocentricToGeodetic, geocentricToWgs84, geocentricFromWgs84, compareDatums} from './datumUtils';\nfunction checkParams(type) {\n return (type === PJD_3PARAM || type === PJD_7PARAM);\n}\n\nexport default function(source, dest, point) {\n // Short cut if the datums are identical.\n if (compareDatums(source, dest)) {\n return point; // in this case, zero is sucess,\n // whereas cs_compare_datums returns 1 to indicate TRUE\n // confusing, should fix this\n }\n\n // Explicitly skip datum transform by setting 'datum=none' as parameter for either source or dest\n if (source.datum_type === PJD_NODATUM || dest.datum_type === PJD_NODATUM) {\n return point;\n }\n\n // If this datum requires grid shifts, then apply it to geodetic coordinates.\n\n // Do we need to go through geocentric coordinates?\n if (source.es === dest.es && source.a === dest.a && !checkParams(source.datum_type) && !checkParams(dest.datum_type)) {\n return point;\n }\n\n // Convert to geocentric coordinates.\n point = geodeticToGeocentric(point, source.es, source.a);\n // Convert between datums\n if (checkParams(source.datum_type)) {\n point = geocentricToWgs84(point, source.datum_type, source.datum_params);\n }\n if (checkParams(dest.datum_type)) {\n point = geocentricFromWgs84(point, dest.datum_type, dest.datum_params);\n }\n return geocentricToGeodetic(point, dest.es, dest.a, dest.b);\n\n}\n","export default function(crs, denorm, point) {\n var xin = point.x,\n yin = point.y,\n zin = point.z || 0.0;\n var v, t, i;\n var out = {};\n for (i = 0; i < 3; i++) {\n if (denorm && i === 2 && point.z === undefined) {\n continue;\n }\n if (i === 0) {\n v = xin;\n if (\"ew\".indexOf(crs.axis[i]) !== -1) {\n t = 'x';\n } else {\n t = 'y';\n }\n\n }\n else if (i === 1) {\n v = yin;\n if (\"ns\".indexOf(crs.axis[i]) !== -1) {\n t = 'y';\n } else {\n t = 'x';\n }\n }\n else {\n v = zin;\n t = 'z';\n }\n switch (crs.axis[i]) {\n case 'e':\n case 'w':\n case 'n':\n case 's':\n out[t] = v;\n break;\n case 'u':\n if (point[t] !== undefined) {\n out.z = v;\n }\n break;\n case 'd':\n if (point[t] !== undefined) {\n out.z = -v;\n }\n break;\n default:\n //console.log(\"ERROR: unknow axis (\"+crs.axis[i]+\") - check definition of \"+crs.projName);\n return null;\n }\n }\n return out;\n}\n","export default function (array){\n var out = {\n x: array[0],\n y: array[1]\n };\n if (array.length>2) {\n out.z = array[2];\n }\n if (array.length>3) {\n out.m = array[3];\n }\n return out;\n}","export default function (point) {\n checkCoord(point.x);\n checkCoord(point.y);\n}\nfunction checkCoord(num) {\n if (typeof Number.isFinite === 'function') {\n if (Number.isFinite(num)) {\n return;\n }\n throw new TypeError('coordinates must be finite numbers');\n }\n if (typeof num !== 'number' || num !== num || !isFinite(num)) {\n throw new TypeError('coordinates must be finite numbers');\n }\n}\n","import {D2R, R2D, PJD_3PARAM, PJD_7PARAM} from './constants/values';\nimport datum_transform from './datum_transform';\nimport adjust_axis from './adjust_axis';\nimport proj from './Proj';\nimport toPoint from './common/toPoint';\nimport checkSanity from './checkSanity';\n\nfunction checkNotWGS(source, dest) {\n return ((source.datum.datum_type === PJD_3PARAM || source.datum.datum_type === PJD_7PARAM) && dest.datumCode !== 'WGS84') || ((dest.datum.datum_type === PJD_3PARAM || dest.datum.datum_type === PJD_7PARAM) && source.datumCode !== 'WGS84');\n}\n\nexport default function transform(source, dest, point) {\n var wgs84;\n if (Array.isArray(point)) {\n point = toPoint(point);\n }\n checkSanity(point);\n // Workaround for datum shifts towgs84, if either source or destination projection is not wgs84\n if (source.datum && dest.datum && checkNotWGS(source, dest)) {\n wgs84 = new proj('WGS84');\n point = transform(source, wgs84, point);\n source = wgs84;\n }\n // DGR, 2010/11/12\n if (source.axis !== 'enu') {\n point = adjust_axis(source, false, point);\n }\n // Transform source points to long/lat, if they aren't already.\n if (source.projName === 'longlat') {\n point = {\n x: point.x * D2R,\n y: point.y * D2R,\n z: point.z || 0\n };\n } else {\n if (source.to_meter) {\n point = {\n x: point.x * source.to_meter,\n y: point.y * source.to_meter,\n z: point.z || 0\n };\n }\n point = source.inverse(point); // Convert Cartesian to longlat\n if (!point) {\n return;\n }\n }\n // Adjust for the prime meridian if necessary\n if (source.from_greenwich) {\n point.x += source.from_greenwich;\n }\n\n // Convert datums if needed, and if possible.\n point = datum_transform(source.datum, dest.datum, point);\n\n // Adjust for the prime meridian if necessary\n if (dest.from_greenwich) {\n point = {\n x: point.x - dest.from_greenwich,\n y: point.y,\n z: point.z || 0\n };\n }\n\n if (dest.projName === 'longlat') {\n // convert radians to decimal degrees\n point = {\n x: point.x * R2D,\n y: point.y * R2D,\n z: point.z || 0\n };\n } else { // else project\n point = dest.forward(point);\n if (dest.to_meter) {\n point = {\n x: point.x / dest.to_meter,\n y: point.y / dest.to_meter,\n z: point.z || 0\n };\n }\n }\n\n // DGR, 2010/11/12\n if (dest.axis !== 'enu') {\n return adjust_axis(dest, true, point);\n }\n\n return point;\n}\n","import proj from './Proj';\nimport transform from './transform';\nvar wgs84 = proj('WGS84');\n\nfunction transformer(from, to, coords) {\n var transformedArray, out, keys;\n if (Array.isArray(coords)) {\n transformedArray = transform(from, to, coords) || {x: NaN, y: NaN};\n if (coords.length > 2) {\n if ((typeof from.name !== 'undefined' && from.name === 'geocent') || (typeof to.name !== 'undefined' && to.name === 'geocent')) {\n if (typeof transformedArray.z === 'number') {\n return [transformedArray.x, transformedArray.y, transformedArray.z].concat(coords.splice(3));\n } else {\n return [transformedArray.x, transformedArray.y, coords[2]].concat(coords.splice(3));\n }\n } else {\n return [transformedArray.x, transformedArray.y].concat(coords.splice(2));\n }\n } else {\n return [transformedArray.x, transformedArray.y];\n }\n } else {\n out = transform(from, to, coords);\n keys = Object.keys(coords);\n if (keys.length === 2) {\n return out;\n }\n keys.forEach(function (key) {\n if ((typeof from.name !== 'undefined' && from.name === 'geocent') || (typeof to.name !== 'undefined' && to.name === 'geocent')) {\n if (key === 'x' || key === 'y' || key === 'z') {\n return;\n }\n } else {\n if (key === 'x' || key === 'y') {\n return;\n }\n }\n out[key] = coords[key];\n });\n return out;\n }\n}\n\nfunction checkProj(item) {\n if (item instanceof proj) {\n return item;\n }\n if (item.oProj) {\n return item.oProj;\n }\n return proj(item);\n}\n\nfunction proj4(fromProj, toProj, coord) {\n fromProj = checkProj(fromProj);\n var single = false;\n var obj;\n if (typeof toProj === 'undefined') {\n toProj = fromProj;\n fromProj = wgs84;\n single = true;\n } else if (typeof toProj.x !== 'undefined' || Array.isArray(toProj)) {\n coord = toProj;\n toProj = fromProj;\n fromProj = wgs84;\n single = true;\n }\n toProj = checkProj(toProj);\n if (coord) {\n return transformer(fromProj, toProj, coord);\n } else {\n obj = {\n forward: function (coords) {\n return transformer(fromProj, toProj, coords);\n },\n inverse: function (coords) {\n return transformer(toProj, fromProj, coords);\n }\n };\n if (single) {\n obj.oProj = toProj;\n }\n return obj;\n }\n}\nexport default proj4;","\n\n\n/**\n * UTM zones are grouped, and assigned to one of a group of 6\n * sets.\n *\n * {int} @private\n */\nvar NUM_100K_SETS = 6;\n\n/**\n * The column letters (for easting) of the lower left value, per\n * set.\n *\n * {string} @private\n */\nvar SET_ORIGIN_COLUMN_LETTERS = 'AJSAJS';\n\n/**\n * The row letters (for northing) of the lower left value, per\n * set.\n *\n * {string} @private\n */\nvar SET_ORIGIN_ROW_LETTERS = 'AFAFAF';\n\nvar A = 65; // A\nvar I = 73; // I\nvar O = 79; // O\nvar V = 86; // V\nvar Z = 90; // Z\nexport default {\n forward: forward,\n inverse: inverse,\n toPoint: toPoint\n};\n/**\n * Conversion of lat/lon to MGRS.\n *\n * @param {object} ll Object literal with lat and lon properties on a\n * WGS84 ellipsoid.\n * @param {int} accuracy Accuracy in digits (5 for 1 m, 4 for 10 m, 3 for\n * 100 m, 2 for 1000 m or 1 for 10000 m). Optional, default is 5.\n * @return {string} the MGRS string for the given location and accuracy.\n */\nexport function forward(ll, accuracy) {\n accuracy = accuracy || 5; // default accuracy 1m\n return encode(LLtoUTM({\n lat: ll[1],\n lon: ll[0]\n }), accuracy);\n};\n\n/**\n * Conversion of MGRS to lat/lon.\n *\n * @param {string} mgrs MGRS string.\n * @return {array} An array with left (longitude), bottom (latitude), right\n * (longitude) and top (latitude) values in WGS84, representing the\n * bounding box for the provided MGRS reference.\n */\nexport function inverse(mgrs) {\n var bbox = UTMtoLL(decode(mgrs.toUpperCase()));\n if (bbox.lat && bbox.lon) {\n return [bbox.lon, bbox.lat, bbox.lon, bbox.lat];\n }\n return [bbox.left, bbox.bottom, bbox.right, bbox.top];\n};\n\nexport function toPoint(mgrs) {\n var bbox = UTMtoLL(decode(mgrs.toUpperCase()));\n if (bbox.lat && bbox.lon) {\n return [bbox.lon, bbox.lat];\n }\n return [(bbox.left + bbox.right) / 2, (bbox.top + bbox.bottom) / 2];\n};\n/**\n * Conversion from degrees to radians.\n *\n * @private\n * @param {number} deg the angle in degrees.\n * @return {number} the angle in radians.\n */\nfunction degToRad(deg) {\n return (deg * (Math.PI / 180.0));\n}\n\n/**\n * Conversion from radians to degrees.\n *\n * @private\n * @param {number} rad the angle in radians.\n * @return {number} the angle in degrees.\n */\nfunction radToDeg(rad) {\n return (180.0 * (rad / Math.PI));\n}\n\n/**\n * Converts a set of Longitude and Latitude co-ordinates to UTM\n * using the WGS84 ellipsoid.\n *\n * @private\n * @param {object} ll Object literal with lat and lon properties\n * representing the WGS84 coordinate to be converted.\n * @return {object} Object literal containing the UTM value with easting,\n * northing, zoneNumber and zoneLetter properties, and an optional\n * accuracy property in digits. Returns null if the conversion failed.\n */\nfunction LLtoUTM(ll) {\n var Lat = ll.lat;\n var Long = ll.lon;\n var a = 6378137.0; //ellip.radius;\n var eccSquared = 0.00669438; //ellip.eccsq;\n var k0 = 0.9996;\n var LongOrigin;\n var eccPrimeSquared;\n var N, T, C, A, M;\n var LatRad = degToRad(Lat);\n var LongRad = degToRad(Long);\n var LongOriginRad;\n var ZoneNumber;\n // (int)\n ZoneNumber = Math.floor((Long + 180) / 6) + 1;\n\n //Make sure the longitude 180.00 is in Zone 60\n if (Long === 180) {\n ZoneNumber = 60;\n }\n\n // Special zone for Norway\n if (Lat >= 56.0 && Lat < 64.0 && Long >= 3.0 && Long < 12.0) {\n ZoneNumber = 32;\n }\n\n // Special zones for Svalbard\n if (Lat >= 72.0 && Lat < 84.0) {\n if (Long >= 0.0 && Long < 9.0) {\n ZoneNumber = 31;\n }\n else if (Long >= 9.0 && Long < 21.0) {\n ZoneNumber = 33;\n }\n else if (Long >= 21.0 && Long < 33.0) {\n ZoneNumber = 35;\n }\n else if (Long >= 33.0 && Long < 42.0) {\n ZoneNumber = 37;\n }\n }\n\n LongOrigin = (ZoneNumber - 1) * 6 - 180 + 3; //+3 puts origin\n // in middle of\n // zone\n LongOriginRad = degToRad(LongOrigin);\n\n eccPrimeSquared = (eccSquared) / (1 - eccSquared);\n\n N = a / Math.sqrt(1 - eccSquared * Math.sin(LatRad) * Math.sin(LatRad));\n T = Math.tan(LatRad) * Math.tan(LatRad);\n C = eccPrimeSquared * Math.cos(LatRad) * Math.cos(LatRad);\n A = Math.cos(LatRad) * (LongRad - LongOriginRad);\n\n M = a * ((1 - eccSquared / 4 - 3 * eccSquared * eccSquared / 64 - 5 * eccSquared * eccSquared * eccSquared / 256) * LatRad - (3 * eccSquared / 8 + 3 * eccSquared * eccSquared / 32 + 45 * eccSquared * eccSquared * eccSquared / 1024) * Math.sin(2 * LatRad) + (15 * eccSquared * eccSquared / 256 + 45 * eccSquared * eccSquared * eccSquared / 1024) * Math.sin(4 * LatRad) - (35 * eccSquared * eccSquared * eccSquared / 3072) * Math.sin(6 * LatRad));\n\n var UTMEasting = (k0 * N * (A + (1 - T + C) * A * A * A / 6.0 + (5 - 18 * T + T * T + 72 * C - 58 * eccPrimeSquared) * A * A * A * A * A / 120.0) + 500000.0);\n\n var UTMNorthing = (k0 * (M + N * Math.tan(LatRad) * (A * A / 2 + (5 - T + 9 * C + 4 * C * C) * A * A * A * A / 24.0 + (61 - 58 * T + T * T + 600 * C - 330 * eccPrimeSquared) * A * A * A * A * A * A / 720.0)));\n if (Lat < 0.0) {\n UTMNorthing += 10000000.0; //10000000 meter offset for\n // southern hemisphere\n }\n\n return {\n northing: Math.round(UTMNorthing),\n easting: Math.round(UTMEasting),\n zoneNumber: ZoneNumber,\n zoneLetter: getLetterDesignator(Lat)\n };\n}\n\n/**\n * Converts UTM coords to lat/long, using the WGS84 ellipsoid. This is a convenience\n * class where the Zone can be specified as a single string eg.\"60N\" which\n * is then broken down into the ZoneNumber and ZoneLetter.\n *\n * @private\n * @param {object} utm An object literal with northing, easting, zoneNumber\n * and zoneLetter properties. If an optional accuracy property is\n * provided (in meters), a bounding box will be returned instead of\n * latitude and longitude.\n * @return {object} An object literal containing either lat and lon values\n * (if no accuracy was provided), or top, right, bottom and left values\n * for the bounding box calculated according to the provided accuracy.\n * Returns null if the conversion failed.\n */\nfunction UTMtoLL(utm) {\n\n var UTMNorthing = utm.northing;\n var UTMEasting = utm.easting;\n var zoneLetter = utm.zoneLetter;\n var zoneNumber = utm.zoneNumber;\n // check the ZoneNummber is valid\n if (zoneNumber < 0 || zoneNumber > 60) {\n return null;\n }\n\n var k0 = 0.9996;\n var a = 6378137.0; //ellip.radius;\n var eccSquared = 0.00669438; //ellip.eccsq;\n var eccPrimeSquared;\n var e1 = (1 - Math.sqrt(1 - eccSquared)) / (1 + Math.sqrt(1 - eccSquared));\n var N1, T1, C1, R1, D, M;\n var LongOrigin;\n var mu, phi1Rad;\n\n // remove 500,000 meter offset for longitude\n var x = UTMEasting - 500000.0;\n var y = UTMNorthing;\n\n // We must know somehow if we are in the Northern or Southern\n // hemisphere, this is the only time we use the letter So even\n // if the Zone letter isn't exactly correct it should indicate\n // the hemisphere correctly\n if (zoneLetter < 'N') {\n y -= 10000000.0; // remove 10,000,000 meter offset used\n // for southern hemisphere\n }\n\n // There are 60 zones with zone 1 being at West -180 to -174\n LongOrigin = (zoneNumber - 1) * 6 - 180 + 3; // +3 puts origin\n // in middle of\n // zone\n\n eccPrimeSquared = (eccSquared) / (1 - eccSquared);\n\n M = y / k0;\n mu = M / (a * (1 - eccSquared / 4 - 3 * eccSquared * eccSquared / 64 - 5 * eccSquared * eccSquared * eccSquared / 256));\n\n phi1Rad = mu + (3 * e1 / 2 - 27 * e1 * e1 * e1 / 32) * Math.sin(2 * mu) + (21 * e1 * e1 / 16 - 55 * e1 * e1 * e1 * e1 / 32) * Math.sin(4 * mu) + (151 * e1 * e1 * e1 / 96) * Math.sin(6 * mu);\n // double phi1 = ProjMath.radToDeg(phi1Rad);\n\n N1 = a / Math.sqrt(1 - eccSquared * Math.sin(phi1Rad) * Math.sin(phi1Rad));\n T1 = Math.tan(phi1Rad) * Math.tan(phi1Rad);\n C1 = eccPrimeSquared * Math.cos(phi1Rad) * Math.cos(phi1Rad);\n R1 = a * (1 - eccSquared) / Math.pow(1 - eccSquared * Math.sin(phi1Rad) * Math.sin(phi1Rad), 1.5);\n D = x / (N1 * k0);\n\n var lat = phi1Rad - (N1 * Math.tan(phi1Rad) / R1) * (D * D / 2 - (5 + 3 * T1 + 10 * C1 - 4 * C1 * C1 - 9 * eccPrimeSquared) * D * D * D * D / 24 + (61 + 90 * T1 + 298 * C1 + 45 * T1 * T1 - 252 * eccPrimeSquared - 3 * C1 * C1) * D * D * D * D * D * D / 720);\n lat = radToDeg(lat);\n\n var lon = (D - (1 + 2 * T1 + C1) * D * D * D / 6 + (5 - 2 * C1 + 28 * T1 - 3 * C1 * C1 + 8 * eccPrimeSquared + 24 * T1 * T1) * D * D * D * D * D / 120) / Math.cos(phi1Rad);\n lon = LongOrigin + radToDeg(lon);\n\n var result;\n if (utm.accuracy) {\n var topRight = UTMtoLL({\n northing: utm.northing + utm.accuracy,\n easting: utm.easting + utm.accuracy,\n zoneLetter: utm.zoneLetter,\n zoneNumber: utm.zoneNumber\n });\n result = {\n top: topRight.lat,\n right: topRight.lon,\n bottom: lat,\n left: lon\n };\n }\n else {\n result = {\n lat: lat,\n lon: lon\n };\n }\n return result;\n}\n\n/**\n * Calculates the MGRS letter designator for the given latitude.\n *\n * @private\n * @param {number} lat The latitude in WGS84 to get the letter designator\n * for.\n * @return {char} The letter designator.\n */\nfunction getLetterDesignator(lat) {\n //This is here as an error flag to show that the Latitude is\n //outside MGRS limits\n var LetterDesignator = 'Z';\n\n if ((84 >= lat) && (lat >= 72)) {\n LetterDesignator = 'X';\n }\n else if ((72 > lat) && (lat >= 64)) {\n LetterDesignator = 'W';\n }\n else if ((64 > lat) && (lat >= 56)) {\n LetterDesignator = 'V';\n }\n else if ((56 > lat) && (lat >= 48)) {\n LetterDesignator = 'U';\n }\n else if ((48 > lat) && (lat >= 40)) {\n LetterDesignator = 'T';\n }\n else if ((40 > lat) && (lat >= 32)) {\n LetterDesignator = 'S';\n }\n else if ((32 > lat) && (lat >= 24)) {\n LetterDesignator = 'R';\n }\n else if ((24 > lat) && (lat >= 16)) {\n LetterDesignator = 'Q';\n }\n else if ((16 > lat) && (lat >= 8)) {\n LetterDesignator = 'P';\n }\n else if ((8 > lat) && (lat >= 0)) {\n LetterDesignator = 'N';\n }\n else if ((0 > lat) && (lat >= -8)) {\n LetterDesignator = 'M';\n }\n else if ((-8 > lat) && (lat >= -16)) {\n LetterDesignator = 'L';\n }\n else if ((-16 > lat) && (lat >= -24)) {\n LetterDesignator = 'K';\n }\n else if ((-24 > lat) && (lat >= -32)) {\n LetterDesignator = 'J';\n }\n else if ((-32 > lat) && (lat >= -40)) {\n LetterDesignator = 'H';\n }\n else if ((-40 > lat) && (lat >= -48)) {\n LetterDesignator = 'G';\n }\n else if ((-48 > lat) && (lat >= -56)) {\n LetterDesignator = 'F';\n }\n else if ((-56 > lat) && (lat >= -64)) {\n LetterDesignator = 'E';\n }\n else if ((-64 > lat) && (lat >= -72)) {\n LetterDesignator = 'D';\n }\n else if ((-72 > lat) && (lat >= -80)) {\n LetterDesignator = 'C';\n }\n return LetterDesignator;\n}\n\n/**\n * Encodes a UTM location as MGRS string.\n *\n * @private\n * @param {object} utm An object literal with easting, northing,\n * zoneLetter, zoneNumber\n * @param {number} accuracy Accuracy in digits (1-5).\n * @return {string} MGRS string for the given UTM location.\n */\nfunction encode(utm, accuracy) {\n // prepend with leading zeroes\n var seasting = \"00000\" + utm.easting,\n snorthing = \"00000\" + utm.northing;\n\n return utm.zoneNumber + utm.zoneLetter + get100kID(utm.easting, utm.northing, utm.zoneNumber) + seasting.substr(seasting.length - 5, accuracy) + snorthing.substr(snorthing.length - 5, accuracy);\n}\n\n/**\n * Get the two letter 100k designator for a given UTM easting,\n * northing and zone number value.\n *\n * @private\n * @param {number} easting\n * @param {number} northing\n * @param {number} zoneNumber\n * @return the two letter 100k designator for the given UTM location.\n */\nfunction get100kID(easting, northing, zoneNumber) {\n var setParm = get100kSetForZone(zoneNumber);\n var setColumn = Math.floor(easting / 100000);\n var setRow = Math.floor(northing / 100000) % 20;\n return getLetter100kID(setColumn, setRow, setParm);\n}\n\n/**\n * Given a UTM zone number, figure out the MGRS 100K set it is in.\n *\n * @private\n * @param {number} i An UTM zone number.\n * @return {number} the 100k set the UTM zone is in.\n */\nfunction get100kSetForZone(i) {\n var setParm = i % NUM_100K_SETS;\n if (setParm === 0) {\n setParm = NUM_100K_SETS;\n }\n\n return setParm;\n}\n\n/**\n * Get the two-letter MGRS 100k designator given information\n * translated from the UTM northing, easting and zone number.\n *\n * @private\n * @param {number} column the column index as it relates to the MGRS\n * 100k set spreadsheet, created from the UTM easting.\n * Values are 1-8.\n * @param {number} row the row index as it relates to the MGRS 100k set\n * spreadsheet, created from the UTM northing value. Values\n * are from 0-19.\n * @param {number} parm the set block, as it relates to the MGRS 100k set\n * spreadsheet, created from the UTM zone. Values are from\n * 1-60.\n * @return two letter MGRS 100k code.\n */\nfunction getLetter100kID(column, row, parm) {\n // colOrigin and rowOrigin are the letters at the origin of the set\n var index = parm - 1;\n var colOrigin = SET_ORIGIN_COLUMN_LETTERS.charCodeAt(index);\n var rowOrigin = SET_ORIGIN_ROW_LETTERS.charCodeAt(index);\n\n // colInt and rowInt are the letters to build to return\n var colInt = colOrigin + column - 1;\n var rowInt = rowOrigin + row;\n var rollover = false;\n\n if (colInt > Z) {\n colInt = colInt - Z + A - 1;\n rollover = true;\n }\n\n if (colInt === I || (colOrigin < I && colInt > I) || ((colInt > I || colOrigin < I) && rollover)) {\n colInt++;\n }\n\n if (colInt === O || (colOrigin < O && colInt > O) || ((colInt > O || colOrigin < O) && rollover)) {\n colInt++;\n\n if (colInt === I) {\n colInt++;\n }\n }\n\n if (colInt > Z) {\n colInt = colInt - Z + A - 1;\n }\n\n if (rowInt > V) {\n rowInt = rowInt - V + A - 1;\n rollover = true;\n }\n else {\n rollover = false;\n }\n\n if (((rowInt === I) || ((rowOrigin < I) && (rowInt > I))) || (((rowInt > I) || (rowOrigin < I)) && rollover)) {\n rowInt++;\n }\n\n if (((rowInt === O) || ((rowOrigin < O) && (rowInt > O))) || (((rowInt > O) || (rowOrigin < O)) && rollover)) {\n rowInt++;\n\n if (rowInt === I) {\n rowInt++;\n }\n }\n\n if (rowInt > V) {\n rowInt = rowInt - V + A - 1;\n }\n\n var twoLetter = String.fromCharCode(colInt) + String.fromCharCode(rowInt);\n return twoLetter;\n}\n\n/**\n * Decode the UTM parameters from a MGRS string.\n *\n * @private\n * @param {string} mgrsString an UPPERCASE coordinate string is expected.\n * @return {object} An object literal with easting, northing, zoneLetter,\n * zoneNumber and accuracy (in meters) properties.\n */\nfunction decode(mgrsString) {\n\n if (mgrsString && mgrsString.length === 0) {\n throw (\"MGRSPoint coverting from nothing\");\n }\n\n var length = mgrsString.length;\n\n var hunK = null;\n var sb = \"\";\n var testChar;\n var i = 0;\n\n // get Zone number\n while (!(/[A-Z]/).test(testChar = mgrsString.charAt(i))) {\n if (i >= 2) {\n throw (\"MGRSPoint bad conversion from: \" + mgrsString);\n }\n sb += testChar;\n i++;\n }\n\n var zoneNumber = parseInt(sb, 10);\n\n if (i === 0 || i + 3 > length) {\n // A good MGRS string has to be 4-5 digits long,\n // ##AAA/#AAA at least.\n throw (\"MGRSPoint bad conversion from: \" + mgrsString);\n }\n\n var zoneLetter = mgrsString.charAt(i++);\n\n // Should we check the zone letter here? Why not.\n if (zoneLetter <= 'A' || zoneLetter === 'B' || zoneLetter === 'Y' || zoneLetter >= 'Z' || zoneLetter === 'I' || zoneLetter === 'O') {\n throw (\"MGRSPoint zone letter \" + zoneLetter + \" not handled: \" + mgrsString);\n }\n\n hunK = mgrsString.substring(i, i += 2);\n\n var set = get100kSetForZone(zoneNumber);\n\n var east100k = getEastingFromChar(hunK.charAt(0), set);\n var north100k = getNorthingFromChar(hunK.charAt(1), set);\n\n // We have a bug where the northing may be 2000000 too low.\n // How\n // do we know when to roll over?\n\n while (north100k < getMinNorthing(zoneLetter)) {\n north100k += 2000000;\n }\n\n // calculate the char index for easting/northing separator\n var remainder = length - i;\n\n if (remainder % 2 !== 0) {\n throw (\"MGRSPoint has to have an even number \\nof digits after the zone letter and two 100km letters - front \\nhalf for easting meters, second half for \\nnorthing meters\" + mgrsString);\n }\n\n var sep = remainder / 2;\n\n var sepEasting = 0.0;\n var sepNorthing = 0.0;\n var accuracyBonus, sepEastingString, sepNorthingString, easting, northing;\n if (sep > 0) {\n accuracyBonus = 100000.0 / Math.pow(10, sep);\n sepEastingString = mgrsString.substring(i, i + sep);\n sepEasting = parseFloat(sepEastingString) * accuracyBonus;\n sepNorthingString = mgrsString.substring(i + sep);\n sepNorthing = parseFloat(sepNorthingString) * accuracyBonus;\n }\n\n easting = sepEasting + east100k;\n northing = sepNorthing + north100k;\n\n return {\n easting: easting,\n northing: northing,\n zoneLetter: zoneLetter,\n zoneNumber: zoneNumber,\n accuracy: accuracyBonus\n };\n}\n\n/**\n * Given the first letter from a two-letter MGRS 100k zone, and given the\n * MGRS table set for the zone number, figure out the easting value that\n * should be added to the other, secondary easting value.\n *\n * @private\n * @param {char} e The first letter from a two-letter MGRS 100´k zone.\n * @param {number} set The MGRS table set for the zone number.\n * @return {number} The easting value for the given letter and set.\n */\nfunction getEastingFromChar(e, set) {\n // colOrigin is the letter at the origin of the set for the\n // column\n var curCol = SET_ORIGIN_COLUMN_LETTERS.charCodeAt(set - 1);\n var eastingValue = 100000.0;\n var rewindMarker = false;\n\n while (curCol !== e.charCodeAt(0)) {\n curCol++;\n if (curCol === I) {\n curCol++;\n }\n if (curCol === O) {\n curCol++;\n }\n if (curCol > Z) {\n if (rewindMarker) {\n throw (\"Bad character: \" + e);\n }\n curCol = A;\n rewindMarker = true;\n }\n eastingValue += 100000.0;\n }\n\n return eastingValue;\n}\n\n/**\n * Given the second letter from a two-letter MGRS 100k zone, and given the\n * MGRS table set for the zone number, figure out the northing value that\n * should be added to the other, secondary northing value. You have to\n * remember that Northings are determined from the equator, and the vertical\n * cycle of letters mean a 2000000 additional northing meters. This happens\n * approx. every 18 degrees of latitude. This method does *NOT* count any\n * additional northings. You have to figure out how many 2000000 meters need\n * to be added for the zone letter of the MGRS coordinate.\n *\n * @private\n * @param {char} n Second letter of the MGRS 100k zone\n * @param {number} set The MGRS table set number, which is dependent on the\n * UTM zone number.\n * @return {number} The northing value for the given letter and set.\n */\nfunction getNorthingFromChar(n, set) {\n\n if (n > 'V') {\n throw (\"MGRSPoint given invalid Northing \" + n);\n }\n\n // rowOrigin is the letter at the origin of the set for the\n // column\n var curRow = SET_ORIGIN_ROW_LETTERS.charCodeAt(set - 1);\n var northingValue = 0.0;\n var rewindMarker = false;\n\n while (curRow !== n.charCodeAt(0)) {\n curRow++;\n if (curRow === I) {\n curRow++;\n }\n if (curRow === O) {\n curRow++;\n }\n // fixing a bug making whole application hang in this loop\n // when 'n' is a wrong character\n if (curRow > V) {\n if (rewindMarker) { // making sure that this loop ends\n throw (\"Bad character: \" + n);\n }\n curRow = A;\n rewindMarker = true;\n }\n northingValue += 100000.0;\n }\n\n return northingValue;\n}\n\n/**\n * The function getMinNorthing returns the minimum northing value of a MGRS\n * zone.\n *\n * Ported from Geotrans' c Lattitude_Band_Value structure table.\n *\n * @private\n * @param {char} zoneLetter The MGRS zone to get the min northing for.\n * @return {number}\n */\nfunction getMinNorthing(zoneLetter) {\n var northing;\n switch (zoneLetter) {\n case 'C':\n northing = 1100000.0;\n break;\n case 'D':\n northing = 2000000.0;\n break;\n case 'E':\n northing = 2800000.0;\n break;\n case 'F':\n northing = 3700000.0;\n break;\n case 'G':\n northing = 4600000.0;\n break;\n case 'H':\n northing = 5500000.0;\n break;\n case 'J':\n northing = 6400000.0;\n break;\n case 'K':\n northing = 7300000.0;\n break;\n case 'L':\n northing = 8200000.0;\n break;\n case 'M':\n northing = 9100000.0;\n break;\n case 'N':\n northing = 0.0;\n break;\n case 'P':\n northing = 800000.0;\n break;\n case 'Q':\n northing = 1700000.0;\n break;\n case 'R':\n northing = 2600000.0;\n break;\n case 'S':\n northing = 3500000.0;\n break;\n case 'T':\n northing = 4400000.0;\n break;\n case 'U':\n northing = 5300000.0;\n break;\n case 'V':\n northing = 6200000.0;\n break;\n case 'W':\n northing = 7000000.0;\n break;\n case 'X':\n northing = 7900000.0;\n break;\n default:\n northing = -1.0;\n }\n if (northing >= 0.0) {\n return northing;\n }\n else {\n throw (\"Invalid zone letter: \" + zoneLetter);\n }\n\n}\n","import {toPoint, forward} from 'mgrs';\n\nfunction Point(x, y, z) {\n if (!(this instanceof Point)) {\n return new Point(x, y, z);\n }\n if (Array.isArray(x)) {\n this.x = x[0];\n this.y = x[1];\n this.z = x[2] || 0.0;\n } else if(typeof x === 'object') {\n this.x = x.x;\n this.y = x.y;\n this.z = x.z || 0.0;\n } else if (typeof x === 'string' && typeof y === 'undefined') {\n var coords = x.split(',');\n this.x = parseFloat(coords[0], 10);\n this.y = parseFloat(coords[1], 10);\n this.z = parseFloat(coords[2], 10) || 0.0;\n } else {\n this.x = x;\n this.y = y;\n this.z = z || 0.0;\n }\n console.warn('proj4.Point will be removed in version 3, use proj4.toPoint');\n}\n\nPoint.fromMGRS = function(mgrsStr) {\n return new Point(toPoint(mgrsStr));\n};\nPoint.prototype.toMGRS = function(accuracy) {\n return forward([this.x, this.y], accuracy);\n};\nexport default Point;\n","var C00 = 1;\nvar C02 = 0.25;\nvar C04 = 0.046875;\nvar C06 = 0.01953125;\nvar C08 = 0.01068115234375;\nvar C22 = 0.75;\nvar C44 = 0.46875;\nvar C46 = 0.01302083333333333333;\nvar C48 = 0.00712076822916666666;\nvar C66 = 0.36458333333333333333;\nvar C68 = 0.00569661458333333333;\nvar C88 = 0.3076171875;\n\nexport default function(es) {\n var en = [];\n en[0] = C00 - es * (C02 + es * (C04 + es * (C06 + es * C08)));\n en[1] = es * (C22 - es * (C04 + es * (C06 + es * C08)));\n var t = es * es;\n en[2] = t * (C44 - es * (C46 + es * C48));\n t *= es;\n en[3] = t * (C66 - es * C68);\n en[4] = t * es * C88;\n return en;\n}","export default function(phi, sphi, cphi, en) {\n cphi *= sphi;\n sphi *= sphi;\n return (en[0] * phi - cphi * (en[1] + sphi * (en[2] + sphi * (en[3] + sphi * en[4]))));\n}","import pj_mlfn from \"./pj_mlfn\";\nimport {EPSLN} from '../constants/values';\n\nvar MAX_ITER = 20;\n\nexport default function(arg, es, en) {\n var k = 1 / (1 - es);\n var phi = arg;\n for (var i = MAX_ITER; i; --i) { /* rarely goes over 2 iterations */\n var s = Math.sin(phi);\n var t = 1 - es * s * s;\n //t = this.pj_mlfn(phi, s, Math.cos(phi), en) - arg;\n //phi -= t * (t * Math.sqrt(t)) * k;\n t = (pj_mlfn(phi, s, Math.cos(phi), en) - arg) * (t * Math.sqrt(t)) * k;\n phi -= t;\n if (Math.abs(t) < EPSLN) {\n return phi;\n }\n }\n //..reportError(\"cass:pj_inv_mlfn: Convergence error\");\n return phi;\n}\n","// Heavily based on this tmerc projection implementation\n// https://github.com/mbloch/mapshaper-proj/blob/master/src/projections/tmerc.js\n\nimport pj_enfn from '../common/pj_enfn';\nimport pj_mlfn from '../common/pj_mlfn';\nimport pj_inv_mlfn from '../common/pj_inv_mlfn';\nimport adjust_lon from '../common/adjust_lon';\n\nimport {EPSLN, HALF_PI} from '../constants/values';\nimport sign from '../common/sign';\n\nexport function init() {\n this.x0 = this.x0 !== undefined ? this.x0 : 0;\n this.y0 = this.y0 !== undefined ? this.y0 : 0;\n this.long0 = this.long0 !== undefined ? this.long0 : 0;\n this.lat0 = this.lat0 !== undefined ? this.lat0 : 0;\n\n if (this.es) {\n this.en = pj_enfn(this.es);\n this.ml0 = pj_mlfn(this.lat0, Math.sin(this.lat0), Math.cos(this.lat0), this.en);\n }\n}\n\n/**\n Transverse Mercator Forward - long/lat to x/y\n long/lat in radians\n */\nexport function forward(p) {\n var lon = p.x;\n var lat = p.y;\n\n var delta_lon = adjust_lon(lon - this.long0);\n var con;\n var x, y;\n var sin_phi = Math.sin(lat);\n var cos_phi = Math.cos(lat);\n\n if (!this.es) {\n var b = cos_phi * Math.sin(delta_lon);\n\n if ((Math.abs(Math.abs(b) - 1)) < EPSLN) {\n return (93);\n }\n else {\n x = 0.5 * this.a * this.k0 * Math.log((1 + b) / (1 - b)) + this.x0;\n y = cos_phi * Math.cos(delta_lon) / Math.sqrt(1 - Math.pow(b, 2));\n b = Math.abs(y);\n\n if (b >= 1) {\n if ((b - 1) > EPSLN) {\n return (93);\n }\n else {\n y = 0;\n }\n }\n else {\n y = Math.acos(y);\n }\n\n if (lat < 0) {\n y = -y;\n }\n\n y = this.a * this.k0 * (y - this.lat0) + this.y0;\n }\n }\n else {\n var al = cos_phi * delta_lon;\n var als = Math.pow(al, 2);\n var c = this.ep2 * Math.pow(cos_phi, 2);\n var cs = Math.pow(c, 2);\n var tq = Math.abs(cos_phi) > EPSLN ? Math.tan(lat) : 0;\n var t = Math.pow(tq, 2);\n var ts = Math.pow(t, 2);\n con = 1 - this.es * Math.pow(sin_phi, 2);\n al = al / Math.sqrt(con);\n var ml = pj_mlfn(lat, sin_phi, cos_phi, this.en);\n\n x = this.a * (this.k0 * al * (1 +\n als / 6 * (1 - t + c +\n als / 20 * (5 - 18 * t + ts + 14 * c - 58 * t * c +\n als / 42 * (61 + 179 * ts - ts * t - 479 * t))))) +\n this.x0;\n\n y = this.a * (this.k0 * (ml - this.ml0 +\n sin_phi * delta_lon * al / 2 * (1 +\n als / 12 * (5 - t + 9 * c + 4 * cs +\n als / 30 * (61 + ts - 58 * t + 270 * c - 330 * t * c +\n als / 56 * (1385 + 543 * ts - ts * t - 3111 * t)))))) +\n this.y0;\n }\n\n p.x = x;\n p.y = y;\n\n return p;\n}\n\n/**\n Transverse Mercator Inverse - x/y to long/lat\n */\nexport function inverse(p) {\n var con, phi;\n var lat, lon;\n var x = (p.x - this.x0) * (1 / this.a);\n var y = (p.y - this.y0) * (1 / this.a);\n\n if (!this.es) {\n var f = Math.exp(x / this.k0);\n var g = 0.5 * (f - 1 / f);\n var temp = this.lat0 + y / this.k0;\n var h = Math.cos(temp);\n con = Math.sqrt((1 - Math.pow(h, 2)) / (1 + Math.pow(g, 2)));\n lat = Math.asin(con);\n\n if (y < 0) {\n lat = -lat;\n }\n\n if ((g === 0) && (h === 0)) {\n lon = 0;\n }\n else {\n lon = adjust_lon(Math.atan2(g, h) + this.long0);\n }\n }\n else { // ellipsoidal form\n con = this.ml0 + y / this.k0;\n phi = pj_inv_mlfn(con, this.es, this.en);\n\n if (Math.abs(phi) < HALF_PI) {\n var sin_phi = Math.sin(phi);\n var cos_phi = Math.cos(phi);\n var tan_phi = Math.abs(cos_phi) > EPSLN ? Math.tan(phi) : 0;\n var c = this.ep2 * Math.pow(cos_phi, 2);\n var cs = Math.pow(c, 2);\n var t = Math.pow(tan_phi, 2);\n var ts = Math.pow(t, 2);\n con = 1 - this.es * Math.pow(sin_phi, 2);\n var d = x * Math.sqrt(con) / this.k0;\n var ds = Math.pow(d, 2);\n con = con * tan_phi;\n\n lat = phi - (con * ds / (1 - this.es)) * 0.5 * (1 -\n ds / 12 * (5 + 3 * t - 9 * c * t + c - 4 * cs -\n ds / 30 * (61 + 90 * t - 252 * c * t + 45 * ts + 46 * c -\n ds / 56 * (1385 + 3633 * t + 4095 * ts + 1574 * ts * t))));\n\n lon = adjust_lon(this.long0 + (d * (1 -\n ds / 6 * (1 + 2 * t + c -\n ds / 20 * (5 + 28 * t + 24 * ts + 8 * c * t + 6 * c -\n ds / 42 * (61 + 662 * t + 1320 * ts + 720 * ts * t)))) / cos_phi));\n }\n else {\n lat = HALF_PI * sign(y);\n lon = 0;\n }\n }\n\n p.x = lon;\n p.y = lat;\n\n return p;\n}\n\nexport var names = [\"Transverse_Mercator\", \"Transverse Mercator\", \"tmerc\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","export default function(x) {\n var r = Math.exp(x);\n r = (r - 1 / r) / 2;\n return r;\n}","export default function(x, y) {\n x = Math.abs(x);\n y = Math.abs(y);\n var a = Math.max(x, y);\n var b = Math.min(x, y) / (a ? a : 1);\n\n return a * Math.sqrt(1 + Math.pow(b, 2));\n}\n","import hypot from './hypot';\nimport log1py from './log1py';\n\nexport default function(x) {\n var y = Math.abs(x);\n y = log1py(y * (1 + y / (hypot(1, y) + 1)));\n\n return x < 0 ? -y : y;\n}\n","export default function(x) {\n var y = 1 + x;\n var z = y - 1;\n\n return z === 0 ? x : x * Math.log(y) / z;\n}\n","export default function(pp, B) {\n var cos_2B = 2 * Math.cos(2 * B);\n var i = pp.length - 1;\n var h1 = pp[i];\n var h2 = 0;\n var h;\n\n while (--i >= 0) {\n h = -h2 + cos_2B * h1 + pp[i];\n h2 = h1;\n h1 = h;\n }\n\n return (B + h * Math.sin(2 * B));\n}\n","import sinh from './sinh';\nimport cosh from './cosh';\n\nexport default function(pp, arg_r, arg_i) {\n var sin_arg_r = Math.sin(arg_r);\n var cos_arg_r = Math.cos(arg_r);\n var sinh_arg_i = sinh(arg_i);\n var cosh_arg_i = cosh(arg_i);\n var r = 2 * cos_arg_r * cosh_arg_i;\n var i = -2 * sin_arg_r * sinh_arg_i;\n var j = pp.length - 1;\n var hr = pp[j];\n var hi1 = 0;\n var hr1 = 0;\n var hi = 0;\n var hr2;\n var hi2;\n\n while (--j >= 0) {\n hr2 = hr1;\n hi2 = hi1;\n hr1 = hr;\n hi1 = hi;\n hr = -hr2 + r * hr1 - i * hi1 + pp[j];\n hi = -hi2 + i * hr1 + r * hi1;\n }\n\n r = sin_arg_r * cosh_arg_i;\n i = cos_arg_r * sinh_arg_i;\n\n return [r * hr - i * hi, r * hi + i * hr];\n}\n","export default function(x) {\n var r = Math.exp(x);\n r = (r + 1 / r) / 2;\n return r;\n}","// Heavily based on this etmerc projection implementation\n// https://github.com/mbloch/mapshaper-proj/blob/master/src/projections/etmerc.js\n\nimport sinh from '../common/sinh';\nimport hypot from '../common/hypot';\nimport asinhy from '../common/asinhy';\nimport gatg from '../common/gatg';\nimport clens from '../common/clens';\nimport clens_cmplx from '../common/clens_cmplx';\nimport adjust_lon from '../common/adjust_lon';\n\nexport function init() {\n if (this.es === undefined || this.es <= 0) {\n throw new Error('incorrect elliptical usage');\n }\n\n this.x0 = this.x0 !== undefined ? this.x0 : 0;\n this.y0 = this.y0 !== undefined ? this.y0 : 0;\n this.long0 = this.long0 !== undefined ? this.long0 : 0;\n this.lat0 = this.lat0 !== undefined ? this.lat0 : 0;\n\n this.cgb = [];\n this.cbg = [];\n this.utg = [];\n this.gtu = [];\n\n var f = this.es / (1 + Math.sqrt(1 - this.es));\n var n = f / (2 - f);\n var np = n;\n\n this.cgb[0] = n * (2 + n * (-2 / 3 + n * (-2 + n * (116 / 45 + n * (26 / 45 + n * (-2854 / 675 ))))));\n this.cbg[0] = n * (-2 + n * ( 2 / 3 + n * ( 4 / 3 + n * (-82 / 45 + n * (32 / 45 + n * (4642 / 4725))))));\n\n np = np * n;\n this.cgb[1] = np * (7 / 3 + n * (-8 / 5 + n * (-227 / 45 + n * (2704 / 315 + n * (2323 / 945)))));\n this.cbg[1] = np * (5 / 3 + n * (-16 / 15 + n * ( -13 / 9 + n * (904 / 315 + n * (-1522 / 945)))));\n\n np = np * n;\n this.cgb[2] = np * (56 / 15 + n * (-136 / 35 + n * (-1262 / 105 + n * (73814 / 2835))));\n this.cbg[2] = np * (-26 / 15 + n * (34 / 21 + n * (8 / 5 + n * (-12686 / 2835))));\n\n np = np * n;\n this.cgb[3] = np * (4279 / 630 + n * (-332 / 35 + n * (-399572 / 14175)));\n this.cbg[3] = np * (1237 / 630 + n * (-12 / 5 + n * ( -24832 / 14175)));\n\n np = np * n;\n this.cgb[4] = np * (4174 / 315 + n * (-144838 / 6237));\n this.cbg[4] = np * (-734 / 315 + n * (109598 / 31185));\n\n np = np * n;\n this.cgb[5] = np * (601676 / 22275);\n this.cbg[5] = np * (444337 / 155925);\n\n np = Math.pow(n, 2);\n this.Qn = this.k0 / (1 + n) * (1 + np * (1 / 4 + np * (1 / 64 + np / 256)));\n\n this.utg[0] = n * (-0.5 + n * ( 2 / 3 + n * (-37 / 96 + n * ( 1 / 360 + n * (81 / 512 + n * (-96199 / 604800))))));\n this.gtu[0] = n * (0.5 + n * (-2 / 3 + n * (5 / 16 + n * (41 / 180 + n * (-127 / 288 + n * (7891 / 37800))))));\n\n this.utg[1] = np * (-1 / 48 + n * (-1 / 15 + n * (437 / 1440 + n * (-46 / 105 + n * (1118711 / 3870720)))));\n this.gtu[1] = np * (13 / 48 + n * (-3 / 5 + n * (557 / 1440 + n * (281 / 630 + n * (-1983433 / 1935360)))));\n\n np = np * n;\n this.utg[2] = np * (-17 / 480 + n * (37 / 840 + n * (209 / 4480 + n * (-5569 / 90720 ))));\n this.gtu[2] = np * (61 / 240 + n * (-103 / 140 + n * (15061 / 26880 + n * (167603 / 181440))));\n\n np = np * n;\n this.utg[3] = np * (-4397 / 161280 + n * (11 / 504 + n * (830251 / 7257600)));\n this.gtu[3] = np * (49561 / 161280 + n * (-179 / 168 + n * (6601661 / 7257600)));\n\n np = np * n;\n this.utg[4] = np * (-4583 / 161280 + n * (108847 / 3991680));\n this.gtu[4] = np * (34729 / 80640 + n * (-3418889 / 1995840));\n\n np = np * n;\n this.utg[5] = np * (-20648693 / 638668800);\n this.gtu[5] = np * (212378941 / 319334400);\n\n var Z = gatg(this.cbg, this.lat0);\n this.Zb = -this.Qn * (Z + clens(this.gtu, 2 * Z));\n}\n\nexport function forward(p) {\n var Ce = adjust_lon(p.x - this.long0);\n var Cn = p.y;\n\n Cn = gatg(this.cbg, Cn);\n var sin_Cn = Math.sin(Cn);\n var cos_Cn = Math.cos(Cn);\n var sin_Ce = Math.sin(Ce);\n var cos_Ce = Math.cos(Ce);\n\n Cn = Math.atan2(sin_Cn, cos_Ce * cos_Cn);\n Ce = Math.atan2(sin_Ce * cos_Cn, hypot(sin_Cn, cos_Cn * cos_Ce));\n Ce = asinhy(Math.tan(Ce));\n\n var tmp = clens_cmplx(this.gtu, 2 * Cn, 2 * Ce);\n\n Cn = Cn + tmp[0];\n Ce = Ce + tmp[1];\n\n var x;\n var y;\n\n if (Math.abs(Ce) <= 2.623395162778) {\n x = this.a * (this.Qn * Ce) + this.x0;\n y = this.a * (this.Qn * Cn + this.Zb) + this.y0;\n }\n else {\n x = Infinity;\n y = Infinity;\n }\n\n p.x = x;\n p.y = y;\n\n return p;\n}\n\nexport function inverse(p) {\n var Ce = (p.x - this.x0) * (1 / this.a);\n var Cn = (p.y - this.y0) * (1 / this.a);\n\n Cn = (Cn - this.Zb) / this.Qn;\n Ce = Ce / this.Qn;\n\n var lon;\n var lat;\n\n if (Math.abs(Ce) <= 2.623395162778) {\n var tmp = clens_cmplx(this.utg, 2 * Cn, 2 * Ce);\n\n Cn = Cn + tmp[0];\n Ce = Ce + tmp[1];\n Ce = Math.atan(sinh(Ce));\n\n var sin_Cn = Math.sin(Cn);\n var cos_Cn = Math.cos(Cn);\n var sin_Ce = Math.sin(Ce);\n var cos_Ce = Math.cos(Ce);\n\n Cn = Math.atan2(sin_Cn * cos_Ce, hypot(sin_Ce, cos_Ce * cos_Cn));\n Ce = Math.atan2(sin_Ce, cos_Ce * cos_Cn);\n\n lon = adjust_lon(Ce + this.long0);\n lat = gatg(this.cgb, Cn);\n }\n else {\n lon = Infinity;\n lat = Infinity;\n }\n\n p.x = lon;\n p.y = lat;\n\n return p;\n}\n\nexport var names = [\"Extended_Transverse_Mercator\", \"Extended Transverse Mercator\", \"etmerc\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","export default function(pp, arg_r) {\n var r = 2 * Math.cos(arg_r);\n var i = pp.length - 1;\n var hr1 = pp[i];\n var hr2 = 0;\n var hr;\n\n while (--i >= 0) {\n hr = -hr2 + r * hr1 + pp[i];\n hr2 = hr1;\n hr1 = hr;\n }\n\n return Math.sin(arg_r) * hr;\n}\n","import adjust_zone from '../common/adjust_zone';\nimport etmerc from './etmerc';\nexport var dependsOn = 'etmerc';\nimport {D2R} from '../constants/values';\n\n\nexport function init() {\n var zone = adjust_zone(this.zone, this.long0);\n if (zone === undefined) {\n throw new Error('unknown utm zone');\n }\n this.lat0 = 0;\n this.long0 = ((6 * Math.abs(zone)) - 183) * D2R;\n this.x0 = 500000;\n this.y0 = this.utmSouth ? 10000000 : 0;\n this.k0 = 0.9996;\n\n etmerc.init.apply(this);\n this.forward = etmerc.forward;\n this.inverse = etmerc.inverse;\n}\n\nexport var names = [\"Universal Transverse Mercator System\", \"utm\"];\nexport default {\n init: init,\n names: names,\n dependsOn: dependsOn\n};\n","import adjust_lon from './adjust_lon';\n\nexport default function(zone, lon) {\n if (zone === undefined) {\n zone = Math.floor((adjust_lon(lon) + Math.PI) * 30 / Math.PI) + 1;\n\n if (zone < 0) {\n return 0;\n } else if (zone > 60) {\n return 60;\n }\n }\n return zone;\n}\n","export default function(esinp, exp) {\n return (Math.pow((1 - esinp) / (1 + esinp), exp));\n}","import srat from '../common/srat';\nvar MAX_ITER = 20;\nimport {HALF_PI, FORTPI} from '../constants/values';\n\nexport function init() {\n var sphi = Math.sin(this.lat0);\n var cphi = Math.cos(this.lat0);\n cphi *= cphi;\n this.rc = Math.sqrt(1 - this.es) / (1 - this.es * sphi * sphi);\n this.C = Math.sqrt(1 + this.es * cphi * cphi / (1 - this.es));\n this.phic0 = Math.asin(sphi / this.C);\n this.ratexp = 0.5 * this.C * this.e;\n this.K = Math.tan(0.5 * this.phic0 + FORTPI) / (Math.pow(Math.tan(0.5 * this.lat0 + FORTPI), this.C) * srat(this.e * sphi, this.ratexp));\n}\n\nexport function forward(p) {\n var lon = p.x;\n var lat = p.y;\n\n p.y = 2 * Math.atan(this.K * Math.pow(Math.tan(0.5 * lat + FORTPI), this.C) * srat(this.e * Math.sin(lat), this.ratexp)) - HALF_PI;\n p.x = this.C * lon;\n return p;\n}\n\nexport function inverse(p) {\n var DEL_TOL = 1e-14;\n var lon = p.x / this.C;\n var lat = p.y;\n var num = Math.pow(Math.tan(0.5 * lat + FORTPI) / this.K, 1 / this.C);\n for (var i = MAX_ITER; i > 0; --i) {\n lat = 2 * Math.atan(num * srat(this.e * Math.sin(p.y), - 0.5 * this.e)) - HALF_PI;\n if (Math.abs(lat - p.y) < DEL_TOL) {\n break;\n }\n p.y = lat;\n }\n /* convergence failed */\n if (!i) {\n return null;\n }\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"gauss\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import gauss from './gauss';\nimport adjust_lon from '../common/adjust_lon';\n\nexport function init() {\n gauss.init.apply(this);\n if (!this.rc) {\n return;\n }\n this.sinc0 = Math.sin(this.phic0);\n this.cosc0 = Math.cos(this.phic0);\n this.R2 = 2 * this.rc;\n if (!this.title) {\n this.title = \"Oblique Stereographic Alternative\";\n }\n}\n\nexport function forward(p) {\n var sinc, cosc, cosl, k;\n p.x = adjust_lon(p.x - this.long0);\n gauss.forward.apply(this, [p]);\n sinc = Math.sin(p.y);\n cosc = Math.cos(p.y);\n cosl = Math.cos(p.x);\n k = this.k0 * this.R2 / (1 + this.sinc0 * sinc + this.cosc0 * cosc * cosl);\n p.x = k * cosc * Math.sin(p.x);\n p.y = k * (this.cosc0 * sinc - this.sinc0 * cosc * cosl);\n p.x = this.a * p.x + this.x0;\n p.y = this.a * p.y + this.y0;\n return p;\n}\n\nexport function inverse(p) {\n var sinc, cosc, lon, lat, rho;\n p.x = (p.x - this.x0) / this.a;\n p.y = (p.y - this.y0) / this.a;\n\n p.x /= this.k0;\n p.y /= this.k0;\n if ((rho = Math.sqrt(p.x * p.x + p.y * p.y))) {\n var c = 2 * Math.atan2(rho, this.R2);\n sinc = Math.sin(c);\n cosc = Math.cos(c);\n lat = Math.asin(cosc * this.sinc0 + p.y * sinc * this.cosc0 / rho);\n lon = Math.atan2(p.x * sinc, rho * this.cosc0 * cosc - p.y * this.sinc0 * sinc);\n }\n else {\n lat = this.phic0;\n lon = 0;\n }\n\n p.x = lon;\n p.y = lat;\n gauss.inverse.apply(this, [p]);\n p.x = adjust_lon(p.x + this.long0);\n return p;\n}\n\nexport var names = [\"Stereographic_North_Pole\", \"Oblique_Stereographic\", \"Polar_Stereographic\", \"sterea\",\"Oblique Stereographic Alternative\",\"Double_Stereographic\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import {EPSLN, HALF_PI} from '../constants/values';\n\nimport sign from '../common/sign';\nimport msfnz from '../common/msfnz';\nimport tsfnz from '../common/tsfnz';\nimport phi2z from '../common/phi2z';\nimport adjust_lon from '../common/adjust_lon';\n\nexport function ssfn_(phit, sinphi, eccen) {\n sinphi *= eccen;\n return (Math.tan(0.5 * (HALF_PI + phit)) * Math.pow((1 - sinphi) / (1 + sinphi), 0.5 * eccen));\n}\n\nexport function init() {\n this.coslat0 = Math.cos(this.lat0);\n this.sinlat0 = Math.sin(this.lat0);\n if (this.sphere) {\n if (this.k0 === 1 && !isNaN(this.lat_ts) && Math.abs(this.coslat0) <= EPSLN) {\n this.k0 = 0.5 * (1 + sign(this.lat0) * Math.sin(this.lat_ts));\n }\n }\n else {\n if (Math.abs(this.coslat0) <= EPSLN) {\n if (this.lat0 > 0) {\n //North pole\n //trace('stere:north pole');\n this.con = 1;\n }\n else {\n //South pole\n //trace('stere:south pole');\n this.con = -1;\n }\n }\n this.cons = Math.sqrt(Math.pow(1 + this.e, 1 + this.e) * Math.pow(1 - this.e, 1 - this.e));\n if (this.k0 === 1 && !isNaN(this.lat_ts) && Math.abs(this.coslat0) <= EPSLN) {\n this.k0 = 0.5 * this.cons * msfnz(this.e, Math.sin(this.lat_ts), Math.cos(this.lat_ts)) / tsfnz(this.e, this.con * this.lat_ts, this.con * Math.sin(this.lat_ts));\n }\n this.ms1 = msfnz(this.e, this.sinlat0, this.coslat0);\n this.X0 = 2 * Math.atan(this.ssfn_(this.lat0, this.sinlat0, this.e)) - HALF_PI;\n this.cosX0 = Math.cos(this.X0);\n this.sinX0 = Math.sin(this.X0);\n }\n}\n\n// Stereographic forward equations--mapping lat,long to x,y\nexport function forward(p) {\n var lon = p.x;\n var lat = p.y;\n var sinlat = Math.sin(lat);\n var coslat = Math.cos(lat);\n var A, X, sinX, cosX, ts, rh;\n var dlon = adjust_lon(lon - this.long0);\n\n if (Math.abs(Math.abs(lon - this.long0) - Math.PI) <= EPSLN && Math.abs(lat + this.lat0) <= EPSLN) {\n //case of the origine point\n //trace('stere:this is the origin point');\n p.x = NaN;\n p.y = NaN;\n return p;\n }\n if (this.sphere) {\n //trace('stere:sphere case');\n A = 2 * this.k0 / (1 + this.sinlat0 * sinlat + this.coslat0 * coslat * Math.cos(dlon));\n p.x = this.a * A * coslat * Math.sin(dlon) + this.x0;\n p.y = this.a * A * (this.coslat0 * sinlat - this.sinlat0 * coslat * Math.cos(dlon)) + this.y0;\n return p;\n }\n else {\n X = 2 * Math.atan(this.ssfn_(lat, sinlat, this.e)) - HALF_PI;\n cosX = Math.cos(X);\n sinX = Math.sin(X);\n if (Math.abs(this.coslat0) <= EPSLN) {\n ts = tsfnz(this.e, lat * this.con, this.con * sinlat);\n rh = 2 * this.a * this.k0 * ts / this.cons;\n p.x = this.x0 + rh * Math.sin(lon - this.long0);\n p.y = this.y0 - this.con * rh * Math.cos(lon - this.long0);\n //trace(p.toString());\n return p;\n }\n else if (Math.abs(this.sinlat0) < EPSLN) {\n //Eq\n //trace('stere:equateur');\n A = 2 * this.a * this.k0 / (1 + cosX * Math.cos(dlon));\n p.y = A * sinX;\n }\n else {\n //other case\n //trace('stere:normal case');\n A = 2 * this.a * this.k0 * this.ms1 / (this.cosX0 * (1 + this.sinX0 * sinX + this.cosX0 * cosX * Math.cos(dlon)));\n p.y = A * (this.cosX0 * sinX - this.sinX0 * cosX * Math.cos(dlon)) + this.y0;\n }\n p.x = A * cosX * Math.sin(dlon) + this.x0;\n }\n //trace(p.toString());\n return p;\n}\n\n//* Stereographic inverse equations--mapping x,y to lat/long\nexport function inverse(p) {\n p.x -= this.x0;\n p.y -= this.y0;\n var lon, lat, ts, ce, Chi;\n var rh = Math.sqrt(p.x * p.x + p.y * p.y);\n if (this.sphere) {\n var c = 2 * Math.atan(rh / (2 * this.a * this.k0));\n lon = this.long0;\n lat = this.lat0;\n if (rh <= EPSLN) {\n p.x = lon;\n p.y = lat;\n return p;\n }\n lat = Math.asin(Math.cos(c) * this.sinlat0 + p.y * Math.sin(c) * this.coslat0 / rh);\n if (Math.abs(this.coslat0) < EPSLN) {\n if (this.lat0 > 0) {\n lon = adjust_lon(this.long0 + Math.atan2(p.x, - 1 * p.y));\n }\n else {\n lon = adjust_lon(this.long0 + Math.atan2(p.x, p.y));\n }\n }\n else {\n lon = adjust_lon(this.long0 + Math.atan2(p.x * Math.sin(c), rh * this.coslat0 * Math.cos(c) - p.y * this.sinlat0 * Math.sin(c)));\n }\n p.x = lon;\n p.y = lat;\n return p;\n }\n else {\n if (Math.abs(this.coslat0) <= EPSLN) {\n if (rh <= EPSLN) {\n lat = this.lat0;\n lon = this.long0;\n p.x = lon;\n p.y = lat;\n //trace(p.toString());\n return p;\n }\n p.x *= this.con;\n p.y *= this.con;\n ts = rh * this.cons / (2 * this.a * this.k0);\n lat = this.con * phi2z(this.e, ts);\n lon = this.con * adjust_lon(this.con * this.long0 + Math.atan2(p.x, - 1 * p.y));\n }\n else {\n ce = 2 * Math.atan(rh * this.cosX0 / (2 * this.a * this.k0 * this.ms1));\n lon = this.long0;\n if (rh <= EPSLN) {\n Chi = this.X0;\n }\n else {\n Chi = Math.asin(Math.cos(ce) * this.sinX0 + p.y * Math.sin(ce) * this.cosX0 / rh);\n lon = adjust_lon(this.long0 + Math.atan2(p.x * Math.sin(ce), rh * this.cosX0 * Math.cos(ce) - p.y * this.sinX0 * Math.sin(ce)));\n }\n lat = -1 * phi2z(this.e, Math.tan(0.5 * (HALF_PI + Chi)));\n }\n }\n p.x = lon;\n p.y = lat;\n\n //trace(p.toString());\n return p;\n\n}\n\nexport var names = [\"stere\", \"Stereographic_South_Pole\", \"Polar Stereographic (variant B)\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names,\n ssfn_: ssfn_\n};\n","/*\n references:\n Formules et constantes pour le Calcul pour la\n projection cylindrique conforme à axe oblique et pour la transformation entre\n des systèmes de référence.\n http://www.swisstopo.admin.ch/internet/swisstopo/fr/home/topics/survey/sys/refsys/switzerland.parsysrelated1.31216.downloadList.77004.DownloadFile.tmp/swissprojectionfr.pdf\n */\n\nexport function init() {\n var phy0 = this.lat0;\n this.lambda0 = this.long0;\n var sinPhy0 = Math.sin(phy0);\n var semiMajorAxis = this.a;\n var invF = this.rf;\n var flattening = 1 / invF;\n var e2 = 2 * flattening - Math.pow(flattening, 2);\n var e = this.e = Math.sqrt(e2);\n this.R = this.k0 * semiMajorAxis * Math.sqrt(1 - e2) / (1 - e2 * Math.pow(sinPhy0, 2));\n this.alpha = Math.sqrt(1 + e2 / (1 - e2) * Math.pow(Math.cos(phy0), 4));\n this.b0 = Math.asin(sinPhy0 / this.alpha);\n var k1 = Math.log(Math.tan(Math.PI / 4 + this.b0 / 2));\n var k2 = Math.log(Math.tan(Math.PI / 4 + phy0 / 2));\n var k3 = Math.log((1 + e * sinPhy0) / (1 - e * sinPhy0));\n this.K = k1 - this.alpha * k2 + this.alpha * e / 2 * k3;\n}\n\nexport function forward(p) {\n var Sa1 = Math.log(Math.tan(Math.PI / 4 - p.y / 2));\n var Sa2 = this.e / 2 * Math.log((1 + this.e * Math.sin(p.y)) / (1 - this.e * Math.sin(p.y)));\n var S = -this.alpha * (Sa1 + Sa2) + this.K;\n\n // spheric latitude\n var b = 2 * (Math.atan(Math.exp(S)) - Math.PI / 4);\n\n // spheric longitude\n var I = this.alpha * (p.x - this.lambda0);\n\n // psoeudo equatorial rotation\n var rotI = Math.atan(Math.sin(I) / (Math.sin(this.b0) * Math.tan(b) + Math.cos(this.b0) * Math.cos(I)));\n\n var rotB = Math.asin(Math.cos(this.b0) * Math.sin(b) - Math.sin(this.b0) * Math.cos(b) * Math.cos(I));\n\n p.y = this.R / 2 * Math.log((1 + Math.sin(rotB)) / (1 - Math.sin(rotB))) + this.y0;\n p.x = this.R * rotI + this.x0;\n return p;\n}\n\nexport function inverse(p) {\n var Y = p.x - this.x0;\n var X = p.y - this.y0;\n\n var rotI = Y / this.R;\n var rotB = 2 * (Math.atan(Math.exp(X / this.R)) - Math.PI / 4);\n\n var b = Math.asin(Math.cos(this.b0) * Math.sin(rotB) + Math.sin(this.b0) * Math.cos(rotB) * Math.cos(rotI));\n var I = Math.atan(Math.sin(rotI) / (Math.cos(this.b0) * Math.cos(rotI) - Math.sin(this.b0) * Math.tan(rotB)));\n\n var lambda = this.lambda0 + I / this.alpha;\n\n var S = 0;\n var phy = b;\n var prevPhy = -1000;\n var iteration = 0;\n while (Math.abs(phy - prevPhy) > 0.0000001) {\n if (++iteration > 20) {\n //...reportError(\"omercFwdInfinity\");\n return;\n }\n //S = Math.log(Math.tan(Math.PI / 4 + phy / 2));\n S = 1 / this.alpha * (Math.log(Math.tan(Math.PI / 4 + b / 2)) - this.K) + this.e * Math.log(Math.tan(Math.PI / 4 + Math.asin(this.e * Math.sin(phy)) / 2));\n prevPhy = phy;\n phy = 2 * Math.atan(Math.exp(S)) - Math.PI / 2;\n }\n\n p.x = lambda;\n p.y = phy;\n return p;\n}\n\nexport var names = [\"somerc\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import tsfnz from '../common/tsfnz';\nimport adjust_lon from '../common/adjust_lon';\nimport phi2z from '../common/phi2z';\nimport {EPSLN, HALF_PI, FORTPI} from '../constants/values';\n\n/* Initialize the Oblique Mercator projection\n ------------------------------------------*/\nexport function init() {\n this.no_off = this.no_off || false;\n this.no_rot = this.no_rot || false;\n\n if (isNaN(this.k0)) {\n this.k0 = 1;\n }\n var sinlat = Math.sin(this.lat0);\n var coslat = Math.cos(this.lat0);\n var con = this.e * sinlat;\n\n this.bl = Math.sqrt(1 + this.es / (1 - this.es) * Math.pow(coslat, 4));\n this.al = this.a * this.bl * this.k0 * Math.sqrt(1 - this.es) / (1 - con * con);\n var t0 = tsfnz(this.e, this.lat0, sinlat);\n var dl = this.bl / coslat * Math.sqrt((1 - this.es) / (1 - con * con));\n if (dl * dl < 1) {\n dl = 1;\n }\n var fl;\n var gl;\n if (!isNaN(this.longc)) {\n //Central point and azimuth method\n\n if (this.lat0 >= 0) {\n fl = dl + Math.sqrt(dl * dl - 1);\n }\n else {\n fl = dl - Math.sqrt(dl * dl - 1);\n }\n this.el = fl * Math.pow(t0, this.bl);\n gl = 0.5 * (fl - 1 / fl);\n this.gamma0 = Math.asin(Math.sin(this.alpha) / dl);\n this.long0 = this.longc - Math.asin(gl * Math.tan(this.gamma0)) / this.bl;\n\n }\n else {\n //2 points method\n var t1 = tsfnz(this.e, this.lat1, Math.sin(this.lat1));\n var t2 = tsfnz(this.e, this.lat2, Math.sin(this.lat2));\n if (this.lat0 >= 0) {\n this.el = (dl + Math.sqrt(dl * dl - 1)) * Math.pow(t0, this.bl);\n }\n else {\n this.el = (dl - Math.sqrt(dl * dl - 1)) * Math.pow(t0, this.bl);\n }\n var hl = Math.pow(t1, this.bl);\n var ll = Math.pow(t2, this.bl);\n fl = this.el / hl;\n gl = 0.5 * (fl - 1 / fl);\n var jl = (this.el * this.el - ll * hl) / (this.el * this.el + ll * hl);\n var pl = (ll - hl) / (ll + hl);\n var dlon12 = adjust_lon(this.long1 - this.long2);\n this.long0 = 0.5 * (this.long1 + this.long2) - Math.atan(jl * Math.tan(0.5 * this.bl * (dlon12)) / pl) / this.bl;\n this.long0 = adjust_lon(this.long0);\n var dlon10 = adjust_lon(this.long1 - this.long0);\n this.gamma0 = Math.atan(Math.sin(this.bl * (dlon10)) / gl);\n this.alpha = Math.asin(dl * Math.sin(this.gamma0));\n }\n\n if (this.no_off) {\n this.uc = 0;\n }\n else {\n if (this.lat0 >= 0) {\n this.uc = this.al / this.bl * Math.atan2(Math.sqrt(dl * dl - 1), Math.cos(this.alpha));\n }\n else {\n this.uc = -1 * this.al / this.bl * Math.atan2(Math.sqrt(dl * dl - 1), Math.cos(this.alpha));\n }\n }\n\n}\n\n/* Oblique Mercator forward equations--mapping lat,long to x,y\n ----------------------------------------------------------*/\nexport function forward(p) {\n var lon = p.x;\n var lat = p.y;\n var dlon = adjust_lon(lon - this.long0);\n var us, vs;\n var con;\n if (Math.abs(Math.abs(lat) - HALF_PI) <= EPSLN) {\n if (lat > 0) {\n con = -1;\n }\n else {\n con = 1;\n }\n vs = this.al / this.bl * Math.log(Math.tan(FORTPI + con * this.gamma0 * 0.5));\n us = -1 * con * HALF_PI * this.al / this.bl;\n }\n else {\n var t = tsfnz(this.e, lat, Math.sin(lat));\n var ql = this.el / Math.pow(t, this.bl);\n var sl = 0.5 * (ql - 1 / ql);\n var tl = 0.5 * (ql + 1 / ql);\n var vl = Math.sin(this.bl * (dlon));\n var ul = (sl * Math.sin(this.gamma0) - vl * Math.cos(this.gamma0)) / tl;\n if (Math.abs(Math.abs(ul) - 1) <= EPSLN) {\n vs = Number.POSITIVE_INFINITY;\n }\n else {\n vs = 0.5 * this.al * Math.log((1 - ul) / (1 + ul)) / this.bl;\n }\n if (Math.abs(Math.cos(this.bl * (dlon))) <= EPSLN) {\n us = this.al * this.bl * (dlon);\n }\n else {\n us = this.al * Math.atan2(sl * Math.cos(this.gamma0) + vl * Math.sin(this.gamma0), Math.cos(this.bl * dlon)) / this.bl;\n }\n }\n\n if (this.no_rot) {\n p.x = this.x0 + us;\n p.y = this.y0 + vs;\n }\n else {\n\n us -= this.uc;\n p.x = this.x0 + vs * Math.cos(this.alpha) + us * Math.sin(this.alpha);\n p.y = this.y0 + us * Math.cos(this.alpha) - vs * Math.sin(this.alpha);\n }\n return p;\n}\n\nexport function inverse(p) {\n var us, vs;\n if (this.no_rot) {\n vs = p.y - this.y0;\n us = p.x - this.x0;\n }\n else {\n vs = (p.x - this.x0) * Math.cos(this.alpha) - (p.y - this.y0) * Math.sin(this.alpha);\n us = (p.y - this.y0) * Math.cos(this.alpha) + (p.x - this.x0) * Math.sin(this.alpha);\n us += this.uc;\n }\n var qp = Math.exp(-1 * this.bl * vs / this.al);\n var sp = 0.5 * (qp - 1 / qp);\n var tp = 0.5 * (qp + 1 / qp);\n var vp = Math.sin(this.bl * us / this.al);\n var up = (vp * Math.cos(this.gamma0) + sp * Math.sin(this.gamma0)) / tp;\n var ts = Math.pow(this.el / Math.sqrt((1 + up) / (1 - up)), 1 / this.bl);\n if (Math.abs(up - 1) < EPSLN) {\n p.x = this.long0;\n p.y = HALF_PI;\n }\n else if (Math.abs(up + 1) < EPSLN) {\n p.x = this.long0;\n p.y = -1 * HALF_PI;\n }\n else {\n p.y = phi2z(this.e, ts);\n p.x = adjust_lon(this.long0 - Math.atan2(sp * Math.cos(this.gamma0) - vp * Math.sin(this.gamma0), Math.cos(this.bl * us / this.al)) / this.bl);\n }\n return p;\n}\n\nexport var names = [\"Hotine_Oblique_Mercator\", \"Hotine Oblique Mercator\", \"Hotine_Oblique_Mercator_Azimuth_Natural_Origin\", \"Hotine_Oblique_Mercator_Azimuth_Center\", \"omerc\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import msfnz from '../common/msfnz';\nimport tsfnz from '../common/tsfnz';\nimport sign from '../common/sign';\nimport adjust_lon from '../common/adjust_lon';\nimport phi2z from '../common/phi2z';\nimport {HALF_PI, EPSLN} from '../constants/values';\nexport function init() {\n\n // array of: r_maj,r_min,lat1,lat2,c_lon,c_lat,false_east,false_north\n //double c_lat; /* center latitude */\n //double c_lon; /* center longitude */\n //double lat1; /* first standard parallel */\n //double lat2; /* second standard parallel */\n //double r_maj; /* major axis */\n //double r_min; /* minor axis */\n //double false_east; /* x offset in meters */\n //double false_north; /* y offset in meters */\n\n if (!this.lat2) {\n this.lat2 = this.lat1;\n } //if lat2 is not defined\n if (!this.k0) {\n this.k0 = 1;\n }\n this.x0 = this.x0 || 0;\n this.y0 = this.y0 || 0;\n // Standard Parallels cannot be equal and on opposite sides of the equator\n if (Math.abs(this.lat1 + this.lat2) < EPSLN) {\n return;\n }\n\n var temp = this.b / this.a;\n this.e = Math.sqrt(1 - temp * temp);\n\n var sin1 = Math.sin(this.lat1);\n var cos1 = Math.cos(this.lat1);\n var ms1 = msfnz(this.e, sin1, cos1);\n var ts1 = tsfnz(this.e, this.lat1, sin1);\n\n var sin2 = Math.sin(this.lat2);\n var cos2 = Math.cos(this.lat2);\n var ms2 = msfnz(this.e, sin2, cos2);\n var ts2 = tsfnz(this.e, this.lat2, sin2);\n\n var ts0 = tsfnz(this.e, this.lat0, Math.sin(this.lat0));\n\n if (Math.abs(this.lat1 - this.lat2) > EPSLN) {\n this.ns = Math.log(ms1 / ms2) / Math.log(ts1 / ts2);\n }\n else {\n this.ns = sin1;\n }\n if (isNaN(this.ns)) {\n this.ns = sin1;\n }\n this.f0 = ms1 / (this.ns * Math.pow(ts1, this.ns));\n this.rh = this.a * this.f0 * Math.pow(ts0, this.ns);\n if (!this.title) {\n this.title = \"Lambert Conformal Conic\";\n }\n}\n\n// Lambert Conformal conic forward equations--mapping lat,long to x,y\n// -----------------------------------------------------------------\nexport function forward(p) {\n\n var lon = p.x;\n var lat = p.y;\n\n // singular cases :\n if (Math.abs(2 * Math.abs(lat) - Math.PI) <= EPSLN) {\n lat = sign(lat) * (HALF_PI - 2 * EPSLN);\n }\n\n var con = Math.abs(Math.abs(lat) - HALF_PI);\n var ts, rh1;\n if (con > EPSLN) {\n ts = tsfnz(this.e, lat, Math.sin(lat));\n rh1 = this.a * this.f0 * Math.pow(ts, this.ns);\n }\n else {\n con = lat * this.ns;\n if (con <= 0) {\n return null;\n }\n rh1 = 0;\n }\n var theta = this.ns * adjust_lon(lon - this.long0);\n p.x = this.k0 * (rh1 * Math.sin(theta)) + this.x0;\n p.y = this.k0 * (this.rh - rh1 * Math.cos(theta)) + this.y0;\n\n return p;\n}\n\n// Lambert Conformal Conic inverse equations--mapping x,y to lat/long\n// -----------------------------------------------------------------\nexport function inverse(p) {\n\n var rh1, con, ts;\n var lat, lon;\n var x = (p.x - this.x0) / this.k0;\n var y = (this.rh - (p.y - this.y0) / this.k0);\n if (this.ns > 0) {\n rh1 = Math.sqrt(x * x + y * y);\n con = 1;\n }\n else {\n rh1 = -Math.sqrt(x * x + y * y);\n con = -1;\n }\n var theta = 0;\n if (rh1 !== 0) {\n theta = Math.atan2((con * x), (con * y));\n }\n if ((rh1 !== 0) || (this.ns > 0)) {\n con = 1 / this.ns;\n ts = Math.pow((rh1 / (this.a * this.f0)), con);\n lat = phi2z(this.e, ts);\n if (lat === -9999) {\n return null;\n }\n }\n else {\n lat = -HALF_PI;\n }\n lon = adjust_lon(theta / this.ns + this.long0);\n\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"Lambert Tangential Conformal Conic Projection\", \"Lambert_Conformal_Conic\", \"Lambert_Conformal_Conic_2SP\", \"lcc\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import adjust_lon from '../common/adjust_lon';\n\nexport function init() {\n this.a = 6377397.155;\n this.es = 0.006674372230614;\n this.e = Math.sqrt(this.es);\n if (!this.lat0) {\n this.lat0 = 0.863937979737193;\n }\n if (!this.long0) {\n this.long0 = 0.7417649320975901 - 0.308341501185665;\n }\n /* if scale not set default to 0.9999 */\n if (!this.k0) {\n this.k0 = 0.9999;\n }\n this.s45 = 0.785398163397448; /* 45 */\n this.s90 = 2 * this.s45;\n this.fi0 = this.lat0;\n this.e2 = this.es;\n this.e = Math.sqrt(this.e2);\n this.alfa = Math.sqrt(1 + (this.e2 * Math.pow(Math.cos(this.fi0), 4)) / (1 - this.e2));\n this.uq = 1.04216856380474;\n this.u0 = Math.asin(Math.sin(this.fi0) / this.alfa);\n this.g = Math.pow((1 + this.e * Math.sin(this.fi0)) / (1 - this.e * Math.sin(this.fi0)), this.alfa * this.e / 2);\n this.k = Math.tan(this.u0 / 2 + this.s45) / Math.pow(Math.tan(this.fi0 / 2 + this.s45), this.alfa) * this.g;\n this.k1 = this.k0;\n this.n0 = this.a * Math.sqrt(1 - this.e2) / (1 - this.e2 * Math.pow(Math.sin(this.fi0), 2));\n this.s0 = 1.37008346281555;\n this.n = Math.sin(this.s0);\n this.ro0 = this.k1 * this.n0 / Math.tan(this.s0);\n this.ad = this.s90 - this.uq;\n}\n\n/* ellipsoid */\n/* calculate xy from lat/lon */\n/* Constants, identical to inverse transform function */\nexport function forward(p) {\n var gfi, u, deltav, s, d, eps, ro;\n var lon = p.x;\n var lat = p.y;\n var delta_lon = adjust_lon(lon - this.long0);\n /* Transformation */\n gfi = Math.pow(((1 + this.e * Math.sin(lat)) / (1 - this.e * Math.sin(lat))), (this.alfa * this.e / 2));\n u = 2 * (Math.atan(this.k * Math.pow(Math.tan(lat / 2 + this.s45), this.alfa) / gfi) - this.s45);\n deltav = -delta_lon * this.alfa;\n s = Math.asin(Math.cos(this.ad) * Math.sin(u) + Math.sin(this.ad) * Math.cos(u) * Math.cos(deltav));\n d = Math.asin(Math.cos(u) * Math.sin(deltav) / Math.cos(s));\n eps = this.n * d;\n ro = this.ro0 * Math.pow(Math.tan(this.s0 / 2 + this.s45), this.n) / Math.pow(Math.tan(s / 2 + this.s45), this.n);\n p.y = ro * Math.cos(eps) / 1;\n p.x = ro * Math.sin(eps) / 1;\n\n if (!this.czech) {\n p.y *= -1;\n p.x *= -1;\n }\n return (p);\n}\n\n/* calculate lat/lon from xy */\nexport function inverse(p) {\n var u, deltav, s, d, eps, ro, fi1;\n var ok;\n\n /* Transformation */\n /* revert y, x*/\n var tmp = p.x;\n p.x = p.y;\n p.y = tmp;\n if (!this.czech) {\n p.y *= -1;\n p.x *= -1;\n }\n ro = Math.sqrt(p.x * p.x + p.y * p.y);\n eps = Math.atan2(p.y, p.x);\n d = eps / Math.sin(this.s0);\n s = 2 * (Math.atan(Math.pow(this.ro0 / ro, 1 / this.n) * Math.tan(this.s0 / 2 + this.s45)) - this.s45);\n u = Math.asin(Math.cos(this.ad) * Math.sin(s) - Math.sin(this.ad) * Math.cos(s) * Math.cos(d));\n deltav = Math.asin(Math.cos(s) * Math.sin(d) / Math.cos(u));\n p.x = this.long0 - deltav / this.alfa;\n fi1 = u;\n ok = 0;\n var iter = 0;\n do {\n p.y = 2 * (Math.atan(Math.pow(this.k, - 1 / this.alfa) * Math.pow(Math.tan(u / 2 + this.s45), 1 / this.alfa) * Math.pow((1 + this.e * Math.sin(fi1)) / (1 - this.e * Math.sin(fi1)), this.e / 2)) - this.s45);\n if (Math.abs(fi1 - p.y) < 0.0000000001) {\n ok = 1;\n }\n fi1 = p.y;\n iter += 1;\n } while (ok === 0 && iter < 15);\n if (iter >= 15) {\n return null;\n }\n\n return (p);\n}\n\nexport var names = [\"Krovak\", \"krovak\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","export default function(e0, e1, e2, e3, phi) {\n return (e0 * phi - e1 * Math.sin(2 * phi) + e2 * Math.sin(4 * phi) - e3 * Math.sin(6 * phi));\n}","export default function(x) {\n return (1 - 0.25 * x * (1 + x / 16 * (3 + 1.25 * x)));\n}","export default function(x) {\n return (0.375 * x * (1 + 0.25 * x * (1 + 0.46875 * x)));\n}","export default function(x) {\n return (0.05859375 * x * x * (1 + 0.75 * x));\n}","export default function(x) {\n return (x * x * x * (35 / 3072));\n}","export default function(a, e, sinphi) {\n var temp = e * sinphi;\n return a / Math.sqrt(1 - temp * temp);\n}","import {HALF_PI} from '../constants/values';\nimport sign from './sign';\n\nexport default function(x) {\n return (Math.abs(x) < HALF_PI) ? x : (x - (sign(x) * Math.PI));\n}\n","export default function(ml, e0, e1, e2, e3) {\n var phi;\n var dphi;\n\n phi = ml / e0;\n for (var i = 0; i < 15; i++) {\n dphi = (ml - (e0 * phi - e1 * Math.sin(2 * phi) + e2 * Math.sin(4 * phi) - e3 * Math.sin(6 * phi))) / (e0 - 2 * e1 * Math.cos(2 * phi) + 4 * e2 * Math.cos(4 * phi) - 6 * e3 * Math.cos(6 * phi));\n phi += dphi;\n if (Math.abs(dphi) <= 0.0000000001) {\n return phi;\n }\n }\n\n //..reportError(\"IMLFN-CONV:Latitude failed to converge after 15 iterations\");\n return NaN;\n}","import mlfn from '../common/mlfn';\nimport e0fn from '../common/e0fn';\nimport e1fn from '../common/e1fn';\nimport e2fn from '../common/e2fn';\nimport e3fn from '../common/e3fn';\nimport gN from '../common/gN';\nimport adjust_lon from '../common/adjust_lon';\nimport adjust_lat from '../common/adjust_lat';\nimport imlfn from '../common/imlfn';\nimport {HALF_PI, EPSLN} from '../constants/values';\n\nexport function init() {\n if (!this.sphere) {\n this.e0 = e0fn(this.es);\n this.e1 = e1fn(this.es);\n this.e2 = e2fn(this.es);\n this.e3 = e3fn(this.es);\n this.ml0 = this.a * mlfn(this.e0, this.e1, this.e2, this.e3, this.lat0);\n }\n}\n\n/* Cassini forward equations--mapping lat,long to x,y\n -----------------------------------------------------------------------*/\nexport function forward(p) {\n\n /* Forward equations\n -----------------*/\n var x, y;\n var lam = p.x;\n var phi = p.y;\n lam = adjust_lon(lam - this.long0);\n\n if (this.sphere) {\n x = this.a * Math.asin(Math.cos(phi) * Math.sin(lam));\n y = this.a * (Math.atan2(Math.tan(phi), Math.cos(lam)) - this.lat0);\n }\n else {\n //ellipsoid\n var sinphi = Math.sin(phi);\n var cosphi = Math.cos(phi);\n var nl = gN(this.a, this.e, sinphi);\n var tl = Math.tan(phi) * Math.tan(phi);\n var al = lam * Math.cos(phi);\n var asq = al * al;\n var cl = this.es * cosphi * cosphi / (1 - this.es);\n var ml = this.a * mlfn(this.e0, this.e1, this.e2, this.e3, phi);\n\n x = nl * al * (1 - asq * tl * (1 / 6 - (8 - tl + 8 * cl) * asq / 120));\n y = ml - this.ml0 + nl * sinphi / cosphi * asq * (0.5 + (5 - tl + 6 * cl) * asq / 24);\n\n\n }\n\n p.x = x + this.x0;\n p.y = y + this.y0;\n return p;\n}\n\n/* Inverse equations\n -----------------*/\nexport function inverse(p) {\n p.x -= this.x0;\n p.y -= this.y0;\n var x = p.x / this.a;\n var y = p.y / this.a;\n var phi, lam;\n\n if (this.sphere) {\n var dd = y + this.lat0;\n phi = Math.asin(Math.sin(dd) * Math.cos(x));\n lam = Math.atan2(Math.tan(x), Math.cos(dd));\n }\n else {\n /* ellipsoid */\n var ml1 = this.ml0 / this.a + y;\n var phi1 = imlfn(ml1, this.e0, this.e1, this.e2, this.e3);\n if (Math.abs(Math.abs(phi1) - HALF_PI) <= EPSLN) {\n p.x = this.long0;\n p.y = HALF_PI;\n if (y < 0) {\n p.y *= -1;\n }\n return p;\n }\n var nl1 = gN(this.a, this.e, Math.sin(phi1));\n\n var rl1 = nl1 * nl1 * nl1 / this.a / this.a * (1 - this.es);\n var tl1 = Math.pow(Math.tan(phi1), 2);\n var dl = x * this.a / nl1;\n var dsq = dl * dl;\n phi = phi1 - nl1 * Math.tan(phi1) / rl1 * dl * dl * (0.5 - (1 + 3 * tl1) * dl * dl / 24);\n lam = dl * (1 - dsq * (tl1 / 3 + (1 + 3 * tl1) * tl1 * dsq / 15)) / Math.cos(phi1);\n\n }\n\n p.x = adjust_lon(lam + this.long0);\n p.y = adjust_lat(phi);\n return p;\n\n}\n\nexport var names = [\"Cassini\", \"Cassini_Soldner\", \"cass\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","export default function(eccent, sinphi) {\n var con;\n if (eccent > 1.0e-7) {\n con = eccent * sinphi;\n return ((1 - eccent * eccent) * (sinphi / (1 - con * con) - (0.5 / eccent) * Math.log((1 - con) / (1 + con))));\n }\n else {\n return (2 * sinphi);\n }\n}","\nimport {HALF_PI, EPSLN, FORTPI} from '../constants/values';\n\nimport qsfnz from '../common/qsfnz';\nimport adjust_lon from '../common/adjust_lon';\n\n/*\n reference\n \"New Equal-Area Map Projections for Noncircular Regions\", John P. Snyder,\n The American Cartographer, Vol 15, No. 4, October 1988, pp. 341-355.\n */\n\nexport var S_POLE = 1;\n\nexport var N_POLE = 2;\nexport var EQUIT = 3;\nexport var OBLIQ = 4;\n\n/* Initialize the Lambert Azimuthal Equal Area projection\n ------------------------------------------------------*/\nexport function init() {\n var t = Math.abs(this.lat0);\n if (Math.abs(t - HALF_PI) < EPSLN) {\n this.mode = this.lat0 < 0 ? this.S_POLE : this.N_POLE;\n }\n else if (Math.abs(t) < EPSLN) {\n this.mode = this.EQUIT;\n }\n else {\n this.mode = this.OBLIQ;\n }\n if (this.es > 0) {\n var sinphi;\n\n this.qp = qsfnz(this.e, 1);\n this.mmf = 0.5 / (1 - this.es);\n this.apa = authset(this.es);\n switch (this.mode) {\n case this.N_POLE:\n this.dd = 1;\n break;\n case this.S_POLE:\n this.dd = 1;\n break;\n case this.EQUIT:\n this.rq = Math.sqrt(0.5 * this.qp);\n this.dd = 1 / this.rq;\n this.xmf = 1;\n this.ymf = 0.5 * this.qp;\n break;\n case this.OBLIQ:\n this.rq = Math.sqrt(0.5 * this.qp);\n sinphi = Math.sin(this.lat0);\n this.sinb1 = qsfnz(this.e, sinphi) / this.qp;\n this.cosb1 = Math.sqrt(1 - this.sinb1 * this.sinb1);\n this.dd = Math.cos(this.lat0) / (Math.sqrt(1 - this.es * sinphi * sinphi) * this.rq * this.cosb1);\n this.ymf = (this.xmf = this.rq) / this.dd;\n this.xmf *= this.dd;\n break;\n }\n }\n else {\n if (this.mode === this.OBLIQ) {\n this.sinph0 = Math.sin(this.lat0);\n this.cosph0 = Math.cos(this.lat0);\n }\n }\n}\n\n/* Lambert Azimuthal Equal Area forward equations--mapping lat,long to x,y\n -----------------------------------------------------------------------*/\nexport function forward(p) {\n\n /* Forward equations\n -----------------*/\n var x, y, coslam, sinlam, sinphi, q, sinb, cosb, b, cosphi;\n var lam = p.x;\n var phi = p.y;\n\n lam = adjust_lon(lam - this.long0);\n if (this.sphere) {\n sinphi = Math.sin(phi);\n cosphi = Math.cos(phi);\n coslam = Math.cos(lam);\n if (this.mode === this.OBLIQ || this.mode === this.EQUIT) {\n y = (this.mode === this.EQUIT) ? 1 + cosphi * coslam : 1 + this.sinph0 * sinphi + this.cosph0 * cosphi * coslam;\n if (y <= EPSLN) {\n return null;\n }\n y = Math.sqrt(2 / y);\n x = y * cosphi * Math.sin(lam);\n y *= (this.mode === this.EQUIT) ? sinphi : this.cosph0 * sinphi - this.sinph0 * cosphi * coslam;\n }\n else if (this.mode === this.N_POLE || this.mode === this.S_POLE) {\n if (this.mode === this.N_POLE) {\n coslam = -coslam;\n }\n if (Math.abs(phi + this.lat0) < EPSLN) {\n return null;\n }\n y = FORTPI - phi * 0.5;\n y = 2 * ((this.mode === this.S_POLE) ? Math.cos(y) : Math.sin(y));\n x = y * Math.sin(lam);\n y *= coslam;\n }\n }\n else {\n sinb = 0;\n cosb = 0;\n b = 0;\n coslam = Math.cos(lam);\n sinlam = Math.sin(lam);\n sinphi = Math.sin(phi);\n q = qsfnz(this.e, sinphi);\n if (this.mode === this.OBLIQ || this.mode === this.EQUIT) {\n sinb = q / this.qp;\n cosb = Math.sqrt(1 - sinb * sinb);\n }\n switch (this.mode) {\n case this.OBLIQ:\n b = 1 + this.sinb1 * sinb + this.cosb1 * cosb * coslam;\n break;\n case this.EQUIT:\n b = 1 + cosb * coslam;\n break;\n case this.N_POLE:\n b = HALF_PI + phi;\n q = this.qp - q;\n break;\n case this.S_POLE:\n b = phi - HALF_PI;\n q = this.qp + q;\n break;\n }\n if (Math.abs(b) < EPSLN) {\n return null;\n }\n switch (this.mode) {\n case this.OBLIQ:\n case this.EQUIT:\n b = Math.sqrt(2 / b);\n if (this.mode === this.OBLIQ) {\n y = this.ymf * b * (this.cosb1 * sinb - this.sinb1 * cosb * coslam);\n }\n else {\n y = (b = Math.sqrt(2 / (1 + cosb * coslam))) * sinb * this.ymf;\n }\n x = this.xmf * b * cosb * sinlam;\n break;\n case this.N_POLE:\n case this.S_POLE:\n if (q >= 0) {\n x = (b = Math.sqrt(q)) * sinlam;\n y = coslam * ((this.mode === this.S_POLE) ? b : -b);\n }\n else {\n x = y = 0;\n }\n break;\n }\n }\n\n p.x = this.a * x + this.x0;\n p.y = this.a * y + this.y0;\n return p;\n}\n\n/* Inverse equations\n -----------------*/\nexport function inverse(p) {\n p.x -= this.x0;\n p.y -= this.y0;\n var x = p.x / this.a;\n var y = p.y / this.a;\n var lam, phi, cCe, sCe, q, rho, ab;\n if (this.sphere) {\n var cosz = 0,\n rh, sinz = 0;\n\n rh = Math.sqrt(x * x + y * y);\n phi = rh * 0.5;\n if (phi > 1) {\n return null;\n }\n phi = 2 * Math.asin(phi);\n if (this.mode === this.OBLIQ || this.mode === this.EQUIT) {\n sinz = Math.sin(phi);\n cosz = Math.cos(phi);\n }\n switch (this.mode) {\n case this.EQUIT:\n phi = (Math.abs(rh) <= EPSLN) ? 0 : Math.asin(y * sinz / rh);\n x *= sinz;\n y = cosz * rh;\n break;\n case this.OBLIQ:\n phi = (Math.abs(rh) <= EPSLN) ? this.lat0 : Math.asin(cosz * this.sinph0 + y * sinz * this.cosph0 / rh);\n x *= sinz * this.cosph0;\n y = (cosz - Math.sin(phi) * this.sinph0) * rh;\n break;\n case this.N_POLE:\n y = -y;\n phi = HALF_PI - phi;\n break;\n case this.S_POLE:\n phi -= HALF_PI;\n break;\n }\n lam = (y === 0 && (this.mode === this.EQUIT || this.mode === this.OBLIQ)) ? 0 : Math.atan2(x, y);\n }\n else {\n ab = 0;\n if (this.mode === this.OBLIQ || this.mode === this.EQUIT) {\n x /= this.dd;\n y *= this.dd;\n rho = Math.sqrt(x * x + y * y);\n if (rho < EPSLN) {\n p.x = this.long0;\n p.y = this.lat0;\n return p;\n }\n sCe = 2 * Math.asin(0.5 * rho / this.rq);\n cCe = Math.cos(sCe);\n x *= (sCe = Math.sin(sCe));\n if (this.mode === this.OBLIQ) {\n ab = cCe * this.sinb1 + y * sCe * this.cosb1 / rho;\n q = this.qp * ab;\n y = rho * this.cosb1 * cCe - y * this.sinb1 * sCe;\n }\n else {\n ab = y * sCe / rho;\n q = this.qp * ab;\n y = rho * cCe;\n }\n }\n else if (this.mode === this.N_POLE || this.mode === this.S_POLE) {\n if (this.mode === this.N_POLE) {\n y = -y;\n }\n q = (x * x + y * y);\n if (!q) {\n p.x = this.long0;\n p.y = this.lat0;\n return p;\n }\n ab = 1 - q / this.qp;\n if (this.mode === this.S_POLE) {\n ab = -ab;\n }\n }\n lam = Math.atan2(x, y);\n phi = authlat(Math.asin(ab), this.apa);\n }\n\n p.x = adjust_lon(this.long0 + lam);\n p.y = phi;\n return p;\n}\n\n/* determine latitude from authalic latitude */\nvar P00 = 0.33333333333333333333;\n\nvar P01 = 0.17222222222222222222;\nvar P02 = 0.10257936507936507936;\nvar P10 = 0.06388888888888888888;\nvar P11 = 0.06640211640211640211;\nvar P20 = 0.01641501294219154443;\n\nfunction authset(es) {\n var t;\n var APA = [];\n APA[0] = es * P00;\n t = es * es;\n APA[0] += t * P01;\n APA[1] = t * P10;\n t *= es;\n APA[0] += t * P02;\n APA[1] += t * P11;\n APA[2] = t * P20;\n return APA;\n}\n\nfunction authlat(beta, APA) {\n var t = beta + beta;\n return (beta + APA[0] * Math.sin(t) + APA[1] * Math.sin(t + t) + APA[2] * Math.sin(t + t + t));\n}\n\nexport var names = [\"Lambert Azimuthal Equal Area\", \"Lambert_Azimuthal_Equal_Area\", \"laea\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names,\n S_POLE: S_POLE,\n N_POLE: N_POLE,\n EQUIT: EQUIT,\n OBLIQ: OBLIQ\n};\n","export default function(x) {\n if (Math.abs(x) > 1) {\n x = (x > 1) ? 1 : -1;\n }\n return Math.asin(x);\n}","import msfnz from '../common/msfnz';\nimport qsfnz from '../common/qsfnz';\nimport adjust_lon from '../common/adjust_lon';\nimport asinz from '../common/asinz';\nimport {EPSLN} from '../constants/values';\n\nexport function init() {\n\n if (Math.abs(this.lat1 + this.lat2) < EPSLN) {\n return;\n }\n this.temp = this.b / this.a;\n this.es = 1 - Math.pow(this.temp, 2);\n this.e3 = Math.sqrt(this.es);\n\n this.sin_po = Math.sin(this.lat1);\n this.cos_po = Math.cos(this.lat1);\n this.t1 = this.sin_po;\n this.con = this.sin_po;\n this.ms1 = msfnz(this.e3, this.sin_po, this.cos_po);\n this.qs1 = qsfnz(this.e3, this.sin_po, this.cos_po);\n\n this.sin_po = Math.sin(this.lat2);\n this.cos_po = Math.cos(this.lat2);\n this.t2 = this.sin_po;\n this.ms2 = msfnz(this.e3, this.sin_po, this.cos_po);\n this.qs2 = qsfnz(this.e3, this.sin_po, this.cos_po);\n\n this.sin_po = Math.sin(this.lat0);\n this.cos_po = Math.cos(this.lat0);\n this.t3 = this.sin_po;\n this.qs0 = qsfnz(this.e3, this.sin_po, this.cos_po);\n\n if (Math.abs(this.lat1 - this.lat2) > EPSLN) {\n this.ns0 = (this.ms1 * this.ms1 - this.ms2 * this.ms2) / (this.qs2 - this.qs1);\n }\n else {\n this.ns0 = this.con;\n }\n this.c = this.ms1 * this.ms1 + this.ns0 * this.qs1;\n this.rh = this.a * Math.sqrt(this.c - this.ns0 * this.qs0) / this.ns0;\n}\n\n/* Albers Conical Equal Area forward equations--mapping lat,long to x,y\n -------------------------------------------------------------------*/\nexport function forward(p) {\n\n var lon = p.x;\n var lat = p.y;\n\n this.sin_phi = Math.sin(lat);\n this.cos_phi = Math.cos(lat);\n\n var qs = qsfnz(this.e3, this.sin_phi, this.cos_phi);\n var rh1 = this.a * Math.sqrt(this.c - this.ns0 * qs) / this.ns0;\n var theta = this.ns0 * adjust_lon(lon - this.long0);\n var x = rh1 * Math.sin(theta) + this.x0;\n var y = this.rh - rh1 * Math.cos(theta) + this.y0;\n\n p.x = x;\n p.y = y;\n return p;\n}\n\nexport function inverse(p) {\n var rh1, qs, con, theta, lon, lat;\n\n p.x -= this.x0;\n p.y = this.rh - p.y + this.y0;\n if (this.ns0 >= 0) {\n rh1 = Math.sqrt(p.x * p.x + p.y * p.y);\n con = 1;\n }\n else {\n rh1 = -Math.sqrt(p.x * p.x + p.y * p.y);\n con = -1;\n }\n theta = 0;\n if (rh1 !== 0) {\n theta = Math.atan2(con * p.x, con * p.y);\n }\n con = rh1 * this.ns0 / this.a;\n if (this.sphere) {\n lat = Math.asin((this.c - con * con) / (2 * this.ns0));\n }\n else {\n qs = (this.c - con * con) / this.ns0;\n lat = this.phi1z(this.e3, qs);\n }\n\n lon = adjust_lon(theta / this.ns0 + this.long0);\n p.x = lon;\n p.y = lat;\n return p;\n}\n\n/* Function to compute phi1, the latitude for the inverse of the\n Albers Conical Equal-Area projection.\n-------------------------------------------*/\nexport function phi1z(eccent, qs) {\n var sinphi, cosphi, con, com, dphi;\n var phi = asinz(0.5 * qs);\n if (eccent < EPSLN) {\n return phi;\n }\n\n var eccnts = eccent * eccent;\n for (var i = 1; i <= 25; i++) {\n sinphi = Math.sin(phi);\n cosphi = Math.cos(phi);\n con = eccent * sinphi;\n com = 1 - con * con;\n dphi = 0.5 * com * com / cosphi * (qs / (1 - eccnts) - sinphi / com + 0.5 / eccent * Math.log((1 - con) / (1 + con)));\n phi = phi + dphi;\n if (Math.abs(dphi) <= 1e-7) {\n return phi;\n }\n }\n return null;\n}\n\nexport var names = [\"Albers_Conic_Equal_Area\", \"Albers\", \"aea\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names,\n phi1z: phi1z\n};\n","import adjust_lon from '../common/adjust_lon';\nimport asinz from '../common/asinz';\nimport {EPSLN} from '../constants/values';\n\n/*\n reference:\n Wolfram Mathworld \"Gnomonic Projection\"\n http://mathworld.wolfram.com/GnomonicProjection.html\n Accessed: 12th November 2009\n */\nexport function init() {\n\n /* Place parameters in static storage for common use\n -------------------------------------------------*/\n this.sin_p14 = Math.sin(this.lat0);\n this.cos_p14 = Math.cos(this.lat0);\n // Approximation for projecting points to the horizon (infinity)\n this.infinity_dist = 1000 * this.a;\n this.rc = 1;\n}\n\n/* Gnomonic forward equations--mapping lat,long to x,y\n ---------------------------------------------------*/\nexport function forward(p) {\n var sinphi, cosphi; /* sin and cos value */\n var dlon; /* delta longitude value */\n var coslon; /* cos of longitude */\n var ksp; /* scale factor */\n var g;\n var x, y;\n var lon = p.x;\n var lat = p.y;\n /* Forward equations\n -----------------*/\n dlon = adjust_lon(lon - this.long0);\n\n sinphi = Math.sin(lat);\n cosphi = Math.cos(lat);\n\n coslon = Math.cos(dlon);\n g = this.sin_p14 * sinphi + this.cos_p14 * cosphi * coslon;\n ksp = 1;\n if ((g > 0) || (Math.abs(g) <= EPSLN)) {\n x = this.x0 + this.a * ksp * cosphi * Math.sin(dlon) / g;\n y = this.y0 + this.a * ksp * (this.cos_p14 * sinphi - this.sin_p14 * cosphi * coslon) / g;\n }\n else {\n\n // Point is in the opposing hemisphere and is unprojectable\n // We still need to return a reasonable point, so we project\n // to infinity, on a bearing\n // equivalent to the northern hemisphere equivalent\n // This is a reasonable approximation for short shapes and lines that\n // straddle the horizon.\n\n x = this.x0 + this.infinity_dist * cosphi * Math.sin(dlon);\n y = this.y0 + this.infinity_dist * (this.cos_p14 * sinphi - this.sin_p14 * cosphi * coslon);\n\n }\n p.x = x;\n p.y = y;\n return p;\n}\n\nexport function inverse(p) {\n var rh; /* Rho */\n var sinc, cosc;\n var c;\n var lon, lat;\n\n /* Inverse equations\n -----------------*/\n p.x = (p.x - this.x0) / this.a;\n p.y = (p.y - this.y0) / this.a;\n\n p.x /= this.k0;\n p.y /= this.k0;\n\n if ((rh = Math.sqrt(p.x * p.x + p.y * p.y))) {\n c = Math.atan2(rh, this.rc);\n sinc = Math.sin(c);\n cosc = Math.cos(c);\n\n lat = asinz(cosc * this.sin_p14 + (p.y * sinc * this.cos_p14) / rh);\n lon = Math.atan2(p.x * sinc, rh * this.cos_p14 * cosc - p.y * this.sin_p14 * sinc);\n lon = adjust_lon(this.long0 + lon);\n }\n else {\n lat = this.phic0;\n lon = 0;\n }\n\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"gnom\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import adjust_lon from '../common/adjust_lon';\nimport qsfnz from '../common/qsfnz';\nimport msfnz from '../common/msfnz';\nimport iqsfnz from '../common/iqsfnz';\n\n/*\n reference:\n \"Cartographic Projection Procedures for the UNIX Environment-\n A User's Manual\" by Gerald I. Evenden,\n USGS Open File Report 90-284and Release 4 Interim Reports (2003)\n*/\nexport function init() {\n //no-op\n if (!this.sphere) {\n this.k0 = msfnz(this.e, Math.sin(this.lat_ts), Math.cos(this.lat_ts));\n }\n}\n\n/* Cylindrical Equal Area forward equations--mapping lat,long to x,y\n ------------------------------------------------------------*/\nexport function forward(p) {\n var lon = p.x;\n var lat = p.y;\n var x, y;\n /* Forward equations\n -----------------*/\n var dlon = adjust_lon(lon - this.long0);\n if (this.sphere) {\n x = this.x0 + this.a * dlon * Math.cos(this.lat_ts);\n y = this.y0 + this.a * Math.sin(lat) / Math.cos(this.lat_ts);\n }\n else {\n var qs = qsfnz(this.e, Math.sin(lat));\n x = this.x0 + this.a * this.k0 * dlon;\n y = this.y0 + this.a * qs * 0.5 / this.k0;\n }\n\n p.x = x;\n p.y = y;\n return p;\n}\n\n/* Cylindrical Equal Area inverse equations--mapping x,y to lat/long\n ------------------------------------------------------------*/\nexport function inverse(p) {\n p.x -= this.x0;\n p.y -= this.y0;\n var lon, lat;\n\n if (this.sphere) {\n lon = adjust_lon(this.long0 + (p.x / this.a) / Math.cos(this.lat_ts));\n lat = Math.asin((p.y / this.a) * Math.cos(this.lat_ts));\n }\n else {\n lat = iqsfnz(this.e, 2 * p.y * this.k0 / this.a);\n lon = adjust_lon(this.long0 + p.x / (this.a * this.k0));\n }\n\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"cea\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import {HALF_PI} from '../constants/values';\n\nexport default function(eccent, q) {\n var temp = 1 - (1 - eccent * eccent) / (2 * eccent) * Math.log((1 - eccent) / (1 + eccent));\n if (Math.abs(Math.abs(q) - temp) < 1.0E-6) {\n if (q < 0) {\n return (-1 * HALF_PI);\n }\n else {\n return HALF_PI;\n }\n }\n //var phi = 0.5* q/(1-eccent*eccent);\n var phi = Math.asin(0.5 * q);\n var dphi;\n var sin_phi;\n var cos_phi;\n var con;\n for (var i = 0; i < 30; i++) {\n sin_phi = Math.sin(phi);\n cos_phi = Math.cos(phi);\n con = eccent * sin_phi;\n dphi = Math.pow(1 - con * con, 2) / (2 * cos_phi) * (q / (1 - eccent * eccent) - sin_phi / (1 - con * con) + 0.5 / eccent * Math.log((1 - con) / (1 + con)));\n phi += dphi;\n if (Math.abs(dphi) <= 0.0000000001) {\n return phi;\n }\n }\n\n //console.log(\"IQSFN-CONV:Latitude failed to converge after 30 iterations\");\n return NaN;\n}\n","import adjust_lon from '../common/adjust_lon';\nimport adjust_lat from '../common/adjust_lat';\n\nexport function init() {\n\n this.x0 = this.x0 || 0;\n this.y0 = this.y0 || 0;\n this.lat0 = this.lat0 || 0;\n this.long0 = this.long0 || 0;\n this.lat_ts = this.lat_ts || 0;\n this.title = this.title || \"Equidistant Cylindrical (Plate Carre)\";\n\n this.rc = Math.cos(this.lat_ts);\n}\n\n// forward equations--mapping lat,long to x,y\n// -----------------------------------------------------------------\nexport function forward(p) {\n\n var lon = p.x;\n var lat = p.y;\n\n var dlon = adjust_lon(lon - this.long0);\n var dlat = adjust_lat(lat - this.lat0);\n p.x = this.x0 + (this.a * dlon * this.rc);\n p.y = this.y0 + (this.a * dlat);\n return p;\n}\n\n// inverse equations--mapping x,y to lat/long\n// -----------------------------------------------------------------\nexport function inverse(p) {\n\n var x = p.x;\n var y = p.y;\n\n p.x = adjust_lon(this.long0 + ((x - this.x0) / (this.a * this.rc)));\n p.y = adjust_lat(this.lat0 + ((y - this.y0) / (this.a)));\n return p;\n}\n\nexport var names = [\"Equirectangular\", \"Equidistant_Cylindrical\", \"eqc\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import e0fn from '../common/e0fn';\nimport e1fn from '../common/e1fn';\nimport e2fn from '../common/e2fn';\nimport e3fn from '../common/e3fn';\nimport adjust_lon from '../common/adjust_lon';\nimport adjust_lat from '../common/adjust_lat';\nimport mlfn from '../common/mlfn';\nimport {EPSLN} from '../constants/values';\n\nimport gN from '../common/gN';\nvar MAX_ITER = 20;\n\nexport function init() {\n /* Place parameters in static storage for common use\n -------------------------------------------------*/\n this.temp = this.b / this.a;\n this.es = 1 - Math.pow(this.temp, 2); // devait etre dans tmerc.js mais n y est pas donc je commente sinon retour de valeurs nulles\n this.e = Math.sqrt(this.es);\n this.e0 = e0fn(this.es);\n this.e1 = e1fn(this.es);\n this.e2 = e2fn(this.es);\n this.e3 = e3fn(this.es);\n this.ml0 = this.a * mlfn(this.e0, this.e1, this.e2, this.e3, this.lat0); //si que des zeros le calcul ne se fait pas\n}\n\n/* Polyconic forward equations--mapping lat,long to x,y\n ---------------------------------------------------*/\nexport function forward(p) {\n var lon = p.x;\n var lat = p.y;\n var x, y, el;\n var dlon = adjust_lon(lon - this.long0);\n el = dlon * Math.sin(lat);\n if (this.sphere) {\n if (Math.abs(lat) <= EPSLN) {\n x = this.a * dlon;\n y = -1 * this.a * this.lat0;\n }\n else {\n x = this.a * Math.sin(el) / Math.tan(lat);\n y = this.a * (adjust_lat(lat - this.lat0) + (1 - Math.cos(el)) / Math.tan(lat));\n }\n }\n else {\n if (Math.abs(lat) <= EPSLN) {\n x = this.a * dlon;\n y = -1 * this.ml0;\n }\n else {\n var nl = gN(this.a, this.e, Math.sin(lat)) / Math.tan(lat);\n x = nl * Math.sin(el);\n y = this.a * mlfn(this.e0, this.e1, this.e2, this.e3, lat) - this.ml0 + nl * (1 - Math.cos(el));\n }\n\n }\n p.x = x + this.x0;\n p.y = y + this.y0;\n return p;\n}\n\n/* Inverse equations\n -----------------*/\nexport function inverse(p) {\n var lon, lat, x, y, i;\n var al, bl;\n var phi, dphi;\n x = p.x - this.x0;\n y = p.y - this.y0;\n\n if (this.sphere) {\n if (Math.abs(y + this.a * this.lat0) <= EPSLN) {\n lon = adjust_lon(x / this.a + this.long0);\n lat = 0;\n }\n else {\n al = this.lat0 + y / this.a;\n bl = x * x / this.a / this.a + al * al;\n phi = al;\n var tanphi;\n for (i = MAX_ITER; i; --i) {\n tanphi = Math.tan(phi);\n dphi = -1 * (al * (phi * tanphi + 1) - phi - 0.5 * (phi * phi + bl) * tanphi) / ((phi - al) / tanphi - 1);\n phi += dphi;\n if (Math.abs(dphi) <= EPSLN) {\n lat = phi;\n break;\n }\n }\n lon = adjust_lon(this.long0 + (Math.asin(x * Math.tan(phi) / this.a)) / Math.sin(lat));\n }\n }\n else {\n if (Math.abs(y + this.ml0) <= EPSLN) {\n lat = 0;\n lon = adjust_lon(this.long0 + x / this.a);\n }\n else {\n\n al = (this.ml0 + y) / this.a;\n bl = x * x / this.a / this.a + al * al;\n phi = al;\n var cl, mln, mlnp, ma;\n var con;\n for (i = MAX_ITER; i; --i) {\n con = this.e * Math.sin(phi);\n cl = Math.sqrt(1 - con * con) * Math.tan(phi);\n mln = this.a * mlfn(this.e0, this.e1, this.e2, this.e3, phi);\n mlnp = this.e0 - 2 * this.e1 * Math.cos(2 * phi) + 4 * this.e2 * Math.cos(4 * phi) - 6 * this.e3 * Math.cos(6 * phi);\n ma = mln / this.a;\n dphi = (al * (cl * ma + 1) - ma - 0.5 * cl * (ma * ma + bl)) / (this.es * Math.sin(2 * phi) * (ma * ma + bl - 2 * al * ma) / (4 * cl) + (al - ma) * (cl * mlnp - 2 / Math.sin(2 * phi)) - mlnp);\n phi -= dphi;\n if (Math.abs(dphi) <= EPSLN) {\n lat = phi;\n break;\n }\n }\n\n //lat=phi4z(this.e,this.e0,this.e1,this.e2,this.e3,al,bl,0,0);\n cl = Math.sqrt(1 - this.es * Math.pow(Math.sin(lat), 2)) * Math.tan(lat);\n lon = adjust_lon(this.long0 + Math.asin(x * cl / this.a) / Math.sin(lat));\n }\n }\n\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"Polyconic\", \"poly\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import {SEC_TO_RAD} from '../constants/values';\n\n/*\n reference\n Department of Land and Survey Technical Circular 1973/32\n http://www.linz.govt.nz/docs/miscellaneous/nz-map-definition.pdf\n OSG Technical Report 4.1\n http://www.linz.govt.nz/docs/miscellaneous/nzmg.pdf\n */\n\n/**\n * iterations: Number of iterations to refine inverse transform.\n * 0 -> km accuracy\n * 1 -> m accuracy -- suitable for most mapping applications\n * 2 -> mm accuracy\n */\nexport var iterations = 1;\n\nexport function init() {\n this.A = [];\n this.A[1] = 0.6399175073;\n this.A[2] = -0.1358797613;\n this.A[3] = 0.063294409;\n this.A[4] = -0.02526853;\n this.A[5] = 0.0117879;\n this.A[6] = -0.0055161;\n this.A[7] = 0.0026906;\n this.A[8] = -0.001333;\n this.A[9] = 0.00067;\n this.A[10] = -0.00034;\n\n this.B_re = [];\n this.B_im = [];\n this.B_re[1] = 0.7557853228;\n this.B_im[1] = 0;\n this.B_re[2] = 0.249204646;\n this.B_im[2] = 0.003371507;\n this.B_re[3] = -0.001541739;\n this.B_im[3] = 0.041058560;\n this.B_re[4] = -0.10162907;\n this.B_im[4] = 0.01727609;\n this.B_re[5] = -0.26623489;\n this.B_im[5] = -0.36249218;\n this.B_re[6] = -0.6870983;\n this.B_im[6] = -1.1651967;\n\n this.C_re = [];\n this.C_im = [];\n this.C_re[1] = 1.3231270439;\n this.C_im[1] = 0;\n this.C_re[2] = -0.577245789;\n this.C_im[2] = -0.007809598;\n this.C_re[3] = 0.508307513;\n this.C_im[3] = -0.112208952;\n this.C_re[4] = -0.15094762;\n this.C_im[4] = 0.18200602;\n this.C_re[5] = 1.01418179;\n this.C_im[5] = 1.64497696;\n this.C_re[6] = 1.9660549;\n this.C_im[6] = 2.5127645;\n\n this.D = [];\n this.D[1] = 1.5627014243;\n this.D[2] = 0.5185406398;\n this.D[3] = -0.03333098;\n this.D[4] = -0.1052906;\n this.D[5] = -0.0368594;\n this.D[6] = 0.007317;\n this.D[7] = 0.01220;\n this.D[8] = 0.00394;\n this.D[9] = -0.0013;\n}\n\n/**\n New Zealand Map Grid Forward - long/lat to x/y\n long/lat in radians\n */\nexport function forward(p) {\n var n;\n var lon = p.x;\n var lat = p.y;\n\n var delta_lat = lat - this.lat0;\n var delta_lon = lon - this.long0;\n\n // 1. Calculate d_phi and d_psi ... // and d_lambda\n // For this algorithm, delta_latitude is in seconds of arc x 10-5, so we need to scale to those units. Longitude is radians.\n var d_phi = delta_lat / SEC_TO_RAD * 1E-5;\n var d_lambda = delta_lon;\n var d_phi_n = 1; // d_phi^0\n\n var d_psi = 0;\n for (n = 1; n <= 10; n++) {\n d_phi_n = d_phi_n * d_phi;\n d_psi = d_psi + this.A[n] * d_phi_n;\n }\n\n // 2. Calculate theta\n var th_re = d_psi;\n var th_im = d_lambda;\n\n // 3. Calculate z\n var th_n_re = 1;\n var th_n_im = 0; // theta^0\n var th_n_re1;\n var th_n_im1;\n\n var z_re = 0;\n var z_im = 0;\n for (n = 1; n <= 6; n++) {\n th_n_re1 = th_n_re * th_re - th_n_im * th_im;\n th_n_im1 = th_n_im * th_re + th_n_re * th_im;\n th_n_re = th_n_re1;\n th_n_im = th_n_im1;\n z_re = z_re + this.B_re[n] * th_n_re - this.B_im[n] * th_n_im;\n z_im = z_im + this.B_im[n] * th_n_re + this.B_re[n] * th_n_im;\n }\n\n // 4. Calculate easting and northing\n p.x = (z_im * this.a) + this.x0;\n p.y = (z_re * this.a) + this.y0;\n\n return p;\n}\n\n/**\n New Zealand Map Grid Inverse - x/y to long/lat\n */\nexport function inverse(p) {\n var n;\n var x = p.x;\n var y = p.y;\n\n var delta_x = x - this.x0;\n var delta_y = y - this.y0;\n\n // 1. Calculate z\n var z_re = delta_y / this.a;\n var z_im = delta_x / this.a;\n\n // 2a. Calculate theta - first approximation gives km accuracy\n var z_n_re = 1;\n var z_n_im = 0; // z^0\n var z_n_re1;\n var z_n_im1;\n\n var th_re = 0;\n var th_im = 0;\n for (n = 1; n <= 6; n++) {\n z_n_re1 = z_n_re * z_re - z_n_im * z_im;\n z_n_im1 = z_n_im * z_re + z_n_re * z_im;\n z_n_re = z_n_re1;\n z_n_im = z_n_im1;\n th_re = th_re + this.C_re[n] * z_n_re - this.C_im[n] * z_n_im;\n th_im = th_im + this.C_im[n] * z_n_re + this.C_re[n] * z_n_im;\n }\n\n // 2b. Iterate to refine the accuracy of the calculation\n // 0 iterations gives km accuracy\n // 1 iteration gives m accuracy -- good enough for most mapping applications\n // 2 iterations bives mm accuracy\n for (var i = 0; i < this.iterations; i++) {\n var th_n_re = th_re;\n var th_n_im = th_im;\n var th_n_re1;\n var th_n_im1;\n\n var num_re = z_re;\n var num_im = z_im;\n for (n = 2; n <= 6; n++) {\n th_n_re1 = th_n_re * th_re - th_n_im * th_im;\n th_n_im1 = th_n_im * th_re + th_n_re * th_im;\n th_n_re = th_n_re1;\n th_n_im = th_n_im1;\n num_re = num_re + (n - 1) * (this.B_re[n] * th_n_re - this.B_im[n] * th_n_im);\n num_im = num_im + (n - 1) * (this.B_im[n] * th_n_re + this.B_re[n] * th_n_im);\n }\n\n th_n_re = 1;\n th_n_im = 0;\n var den_re = this.B_re[1];\n var den_im = this.B_im[1];\n for (n = 2; n <= 6; n++) {\n th_n_re1 = th_n_re * th_re - th_n_im * th_im;\n th_n_im1 = th_n_im * th_re + th_n_re * th_im;\n th_n_re = th_n_re1;\n th_n_im = th_n_im1;\n den_re = den_re + n * (this.B_re[n] * th_n_re - this.B_im[n] * th_n_im);\n den_im = den_im + n * (this.B_im[n] * th_n_re + this.B_re[n] * th_n_im);\n }\n\n // Complex division\n var den2 = den_re * den_re + den_im * den_im;\n th_re = (num_re * den_re + num_im * den_im) / den2;\n th_im = (num_im * den_re - num_re * den_im) / den2;\n }\n\n // 3. Calculate d_phi ... // and d_lambda\n var d_psi = th_re;\n var d_lambda = th_im;\n var d_psi_n = 1; // d_psi^0\n\n var d_phi = 0;\n for (n = 1; n <= 9; n++) {\n d_psi_n = d_psi_n * d_psi;\n d_phi = d_phi + this.D[n] * d_psi_n;\n }\n\n // 4. Calculate latitude and longitude\n // d_phi is calcuated in second of arc * 10^-5, so we need to scale back to radians. d_lambda is in radians.\n var lat = this.lat0 + (d_phi * SEC_TO_RAD * 1E5);\n var lon = this.long0 + d_lambda;\n\n p.x = lon;\n p.y = lat;\n\n return p;\n}\n\nexport var names = [\"New_Zealand_Map_Grid\", \"nzmg\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import adjust_lon from '../common/adjust_lon';\n\n/*\n reference\n \"New Equal-Area Map Projections for Noncircular Regions\", John P. Snyder,\n The American Cartographer, Vol 15, No. 4, October 1988, pp. 341-355.\n */\n\n\n/* Initialize the Miller Cylindrical projection\n -------------------------------------------*/\nexport function init() {\n //no-op\n}\n\n/* Miller Cylindrical forward equations--mapping lat,long to x,y\n ------------------------------------------------------------*/\nexport function forward(p) {\n var lon = p.x;\n var lat = p.y;\n /* Forward equations\n -----------------*/\n var dlon = adjust_lon(lon - this.long0);\n var x = this.x0 + this.a * dlon;\n var y = this.y0 + this.a * Math.log(Math.tan((Math.PI / 4) + (lat / 2.5))) * 1.25;\n\n p.x = x;\n p.y = y;\n return p;\n}\n\n/* Miller Cylindrical inverse equations--mapping x,y to lat/long\n ------------------------------------------------------------*/\nexport function inverse(p) {\n p.x -= this.x0;\n p.y -= this.y0;\n\n var lon = adjust_lon(this.long0 + p.x / this.a);\n var lat = 2.5 * (Math.atan(Math.exp(0.8 * p.y / this.a)) - Math.PI / 4);\n\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"Miller_Cylindrical\", \"mill\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import adjust_lon from '../common/adjust_lon';\nimport adjust_lat from '../common/adjust_lat';\nimport pj_enfn from '../common/pj_enfn';\nvar MAX_ITER = 20;\nimport pj_mlfn from '../common/pj_mlfn';\nimport pj_inv_mlfn from '../common/pj_inv_mlfn';\nimport {EPSLN, HALF_PI} from '../constants/values';\n\nimport asinz from '../common/asinz';\n\n\nexport function init() {\n /* Place parameters in static storage for common use\n -------------------------------------------------*/\n\n\n if (!this.sphere) {\n this.en = pj_enfn(this.es);\n }\n else {\n this.n = 1;\n this.m = 0;\n this.es = 0;\n this.C_y = Math.sqrt((this.m + 1) / this.n);\n this.C_x = this.C_y / (this.m + 1);\n }\n\n}\n\n/* Sinusoidal forward equations--mapping lat,long to x,y\n -----------------------------------------------------*/\nexport function forward(p) {\n var x, y;\n var lon = p.x;\n var lat = p.y;\n /* Forward equations\n -----------------*/\n lon = adjust_lon(lon - this.long0);\n\n if (this.sphere) {\n if (!this.m) {\n lat = this.n !== 1 ? Math.asin(this.n * Math.sin(lat)) : lat;\n }\n else {\n var k = this.n * Math.sin(lat);\n for (var i = MAX_ITER; i; --i) {\n var V = (this.m * lat + Math.sin(lat) - k) / (this.m + Math.cos(lat));\n lat -= V;\n if (Math.abs(V) < EPSLN) {\n break;\n }\n }\n }\n x = this.a * this.C_x * lon * (this.m + Math.cos(lat));\n y = this.a * this.C_y * lat;\n\n }\n else {\n\n var s = Math.sin(lat);\n var c = Math.cos(lat);\n y = this.a * pj_mlfn(lat, s, c, this.en);\n x = this.a * lon * c / Math.sqrt(1 - this.es * s * s);\n }\n\n p.x = x;\n p.y = y;\n return p;\n}\n\nexport function inverse(p) {\n var lat, temp, lon, s;\n\n p.x -= this.x0;\n lon = p.x / this.a;\n p.y -= this.y0;\n lat = p.y / this.a;\n\n if (this.sphere) {\n lat /= this.C_y;\n lon = lon / (this.C_x * (this.m + Math.cos(lat)));\n if (this.m) {\n lat = asinz((this.m * lat + Math.sin(lat)) / this.n);\n }\n else if (this.n !== 1) {\n lat = asinz(Math.sin(lat) / this.n);\n }\n lon = adjust_lon(lon + this.long0);\n lat = adjust_lat(lat);\n }\n else {\n lat = pj_inv_mlfn(p.y / this.a, this.es, this.en);\n s = Math.abs(lat);\n if (s < HALF_PI) {\n s = Math.sin(lat);\n temp = this.long0 + p.x * Math.sqrt(1 - this.es * s * s) / (this.a * Math.cos(lat));\n //temp = this.long0 + p.x / (this.a * Math.cos(lat));\n lon = adjust_lon(temp);\n }\n else if ((s - EPSLN) < HALF_PI) {\n lon = this.long0;\n }\n }\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"Sinusoidal\", \"sinu\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import adjust_lon from '../common/adjust_lon';\nexport function init() {}\nimport {EPSLN} from '../constants/values';\n/* Mollweide forward equations--mapping lat,long to x,y\n ----------------------------------------------------*/\nexport function forward(p) {\n\n /* Forward equations\n -----------------*/\n var lon = p.x;\n var lat = p.y;\n\n var delta_lon = adjust_lon(lon - this.long0);\n var theta = lat;\n var con = Math.PI * Math.sin(lat);\n\n /* Iterate using the Newton-Raphson method to find theta\n -----------------------------------------------------*/\n while (true) {\n var delta_theta = -(theta + Math.sin(theta) - con) / (1 + Math.cos(theta));\n theta += delta_theta;\n if (Math.abs(delta_theta) < EPSLN) {\n break;\n }\n }\n theta /= 2;\n\n /* If the latitude is 90 deg, force the x coordinate to be \"0 + false easting\"\n this is done here because of precision problems with \"cos(theta)\"\n --------------------------------------------------------------------------*/\n if (Math.PI / 2 - Math.abs(lat) < EPSLN) {\n delta_lon = 0;\n }\n var x = 0.900316316158 * this.a * delta_lon * Math.cos(theta) + this.x0;\n var y = 1.4142135623731 * this.a * Math.sin(theta) + this.y0;\n\n p.x = x;\n p.y = y;\n return p;\n}\n\nexport function inverse(p) {\n var theta;\n var arg;\n\n /* Inverse equations\n -----------------*/\n p.x -= this.x0;\n p.y -= this.y0;\n arg = p.y / (1.4142135623731 * this.a);\n\n /* Because of division by zero problems, 'arg' can not be 1. Therefore\n a number very close to one is used instead.\n -------------------------------------------------------------------*/\n if (Math.abs(arg) > 0.999999999999) {\n arg = 0.999999999999;\n }\n theta = Math.asin(arg);\n var lon = adjust_lon(this.long0 + (p.x / (0.900316316158 * this.a * Math.cos(theta))));\n if (lon < (-Math.PI)) {\n lon = -Math.PI;\n }\n if (lon > Math.PI) {\n lon = Math.PI;\n }\n arg = (2 * theta + Math.sin(2 * theta)) / Math.PI;\n if (Math.abs(arg) > 1) {\n arg = 1;\n }\n var lat = Math.asin(arg);\n\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"Mollweide\", \"moll\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import e0fn from '../common/e0fn';\nimport e1fn from '../common/e1fn';\nimport e2fn from '../common/e2fn';\nimport e3fn from '../common/e3fn';\nimport msfnz from '../common/msfnz';\nimport mlfn from '../common/mlfn';\nimport adjust_lon from '../common/adjust_lon';\nimport adjust_lat from '../common/adjust_lat';\nimport imlfn from '../common/imlfn';\nimport {EPSLN} from '../constants/values';\n\nexport function init() {\n\n /* Place parameters in static storage for common use\n -------------------------------------------------*/\n // Standard Parallels cannot be equal and on opposite sides of the equator\n if (Math.abs(this.lat1 + this.lat2) < EPSLN) {\n return;\n }\n this.lat2 = this.lat2 || this.lat1;\n this.temp = this.b / this.a;\n this.es = 1 - Math.pow(this.temp, 2);\n this.e = Math.sqrt(this.es);\n this.e0 = e0fn(this.es);\n this.e1 = e1fn(this.es);\n this.e2 = e2fn(this.es);\n this.e3 = e3fn(this.es);\n\n this.sinphi = Math.sin(this.lat1);\n this.cosphi = Math.cos(this.lat1);\n\n this.ms1 = msfnz(this.e, this.sinphi, this.cosphi);\n this.ml1 = mlfn(this.e0, this.e1, this.e2, this.e3, this.lat1);\n\n if (Math.abs(this.lat1 - this.lat2) < EPSLN) {\n this.ns = this.sinphi;\n }\n else {\n this.sinphi = Math.sin(this.lat2);\n this.cosphi = Math.cos(this.lat2);\n this.ms2 = msfnz(this.e, this.sinphi, this.cosphi);\n this.ml2 = mlfn(this.e0, this.e1, this.e2, this.e3, this.lat2);\n this.ns = (this.ms1 - this.ms2) / (this.ml2 - this.ml1);\n }\n this.g = this.ml1 + this.ms1 / this.ns;\n this.ml0 = mlfn(this.e0, this.e1, this.e2, this.e3, this.lat0);\n this.rh = this.a * (this.g - this.ml0);\n}\n\n/* Equidistant Conic forward equations--mapping lat,long to x,y\n -----------------------------------------------------------*/\nexport function forward(p) {\n var lon = p.x;\n var lat = p.y;\n var rh1;\n\n /* Forward equations\n -----------------*/\n if (this.sphere) {\n rh1 = this.a * (this.g - lat);\n }\n else {\n var ml = mlfn(this.e0, this.e1, this.e2, this.e3, lat);\n rh1 = this.a * (this.g - ml);\n }\n var theta = this.ns * adjust_lon(lon - this.long0);\n var x = this.x0 + rh1 * Math.sin(theta);\n var y = this.y0 + this.rh - rh1 * Math.cos(theta);\n p.x = x;\n p.y = y;\n return p;\n}\n\n/* Inverse equations\n -----------------*/\nexport function inverse(p) {\n p.x -= this.x0;\n p.y = this.rh - p.y + this.y0;\n var con, rh1, lat, lon;\n if (this.ns >= 0) {\n rh1 = Math.sqrt(p.x * p.x + p.y * p.y);\n con = 1;\n }\n else {\n rh1 = -Math.sqrt(p.x * p.x + p.y * p.y);\n con = -1;\n }\n var theta = 0;\n if (rh1 !== 0) {\n theta = Math.atan2(con * p.x, con * p.y);\n }\n\n if (this.sphere) {\n lon = adjust_lon(this.long0 + theta / this.ns);\n lat = adjust_lat(this.g - rh1 / this.a);\n p.x = lon;\n p.y = lat;\n return p;\n }\n else {\n var ml = this.g - rh1 / this.a;\n lat = imlfn(ml, this.e0, this.e1, this.e2, this.e3);\n lon = adjust_lon(this.long0 + theta / this.ns);\n p.x = lon;\n p.y = lat;\n return p;\n }\n\n}\n\nexport var names = [\"Equidistant_Conic\", \"eqdc\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import adjust_lon from '../common/adjust_lon';\n\nimport {HALF_PI, EPSLN} from '../constants/values';\n\nimport asinz from '../common/asinz';\n\n/* Initialize the Van Der Grinten projection\n ----------------------------------------*/\nexport function init() {\n //this.R = 6370997; //Radius of earth\n this.R = this.a;\n}\n\nexport function forward(p) {\n\n var lon = p.x;\n var lat = p.y;\n\n /* Forward equations\n -----------------*/\n var dlon = adjust_lon(lon - this.long0);\n var x, y;\n\n if (Math.abs(lat) <= EPSLN) {\n x = this.x0 + this.R * dlon;\n y = this.y0;\n }\n var theta = asinz(2 * Math.abs(lat / Math.PI));\n if ((Math.abs(dlon) <= EPSLN) || (Math.abs(Math.abs(lat) - HALF_PI) <= EPSLN)) {\n x = this.x0;\n if (lat >= 0) {\n y = this.y0 + Math.PI * this.R * Math.tan(0.5 * theta);\n }\n else {\n y = this.y0 + Math.PI * this.R * -Math.tan(0.5 * theta);\n }\n // return(OK);\n }\n var al = 0.5 * Math.abs((Math.PI / dlon) - (dlon / Math.PI));\n var asq = al * al;\n var sinth = Math.sin(theta);\n var costh = Math.cos(theta);\n\n var g = costh / (sinth + costh - 1);\n var gsq = g * g;\n var m = g * (2 / sinth - 1);\n var msq = m * m;\n var con = Math.PI * this.R * (al * (g - msq) + Math.sqrt(asq * (g - msq) * (g - msq) - (msq + asq) * (gsq - msq))) / (msq + asq);\n if (dlon < 0) {\n con = -con;\n }\n x = this.x0 + con;\n //con = Math.abs(con / (Math.PI * this.R));\n var q = asq + g;\n con = Math.PI * this.R * (m * q - al * Math.sqrt((msq + asq) * (asq + 1) - q * q)) / (msq + asq);\n if (lat >= 0) {\n //y = this.y0 + Math.PI * this.R * Math.sqrt(1 - con * con - 2 * al * con);\n y = this.y0 + con;\n }\n else {\n //y = this.y0 - Math.PI * this.R * Math.sqrt(1 - con * con - 2 * al * con);\n y = this.y0 - con;\n }\n p.x = x;\n p.y = y;\n return p;\n}\n\n/* Van Der Grinten inverse equations--mapping x,y to lat/long\n ---------------------------------------------------------*/\nexport function inverse(p) {\n var lon, lat;\n var xx, yy, xys, c1, c2, c3;\n var a1;\n var m1;\n var con;\n var th1;\n var d;\n\n /* inverse equations\n -----------------*/\n p.x -= this.x0;\n p.y -= this.y0;\n con = Math.PI * this.R;\n xx = p.x / con;\n yy = p.y / con;\n xys = xx * xx + yy * yy;\n c1 = -Math.abs(yy) * (1 + xys);\n c2 = c1 - 2 * yy * yy + xx * xx;\n c3 = -2 * c1 + 1 + 2 * yy * yy + xys * xys;\n d = yy * yy / c3 + (2 * c2 * c2 * c2 / c3 / c3 / c3 - 9 * c1 * c2 / c3 / c3) / 27;\n a1 = (c1 - c2 * c2 / 3 / c3) / c3;\n m1 = 2 * Math.sqrt(-a1 / 3);\n con = ((3 * d) / a1) / m1;\n if (Math.abs(con) > 1) {\n if (con >= 0) {\n con = 1;\n }\n else {\n con = -1;\n }\n }\n th1 = Math.acos(con) / 3;\n if (p.y >= 0) {\n lat = (-m1 * Math.cos(th1 + Math.PI / 3) - c2 / 3 / c3) * Math.PI;\n }\n else {\n lat = -(-m1 * Math.cos(th1 + Math.PI / 3) - c2 / 3 / c3) * Math.PI;\n }\n\n if (Math.abs(xx) < EPSLN) {\n lon = this.long0;\n }\n else {\n lon = adjust_lon(this.long0 + Math.PI * (xys - 1 + Math.sqrt(1 + 2 * (xx * xx - yy * yy) + xys * xys)) / 2 / xx);\n }\n\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"Van_der_Grinten_I\", \"VanDerGrinten\", \"vandg\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import adjust_lon from '../common/adjust_lon';\nimport {HALF_PI, EPSLN} from '../constants/values';\n\nimport mlfn from '../common/mlfn';\nimport e0fn from '../common/e0fn';\nimport e1fn from '../common/e1fn';\nimport e2fn from '../common/e2fn';\nimport e3fn from '../common/e3fn';\nimport gN from '../common/gN';\nimport asinz from '../common/asinz';\nimport imlfn from '../common/imlfn';\n\n\n\nexport function init() {\n this.sin_p12 = Math.sin(this.lat0);\n this.cos_p12 = Math.cos(this.lat0);\n}\n\nexport function forward(p) {\n var lon = p.x;\n var lat = p.y;\n var sinphi = Math.sin(p.y);\n var cosphi = Math.cos(p.y);\n var dlon = adjust_lon(lon - this.long0);\n var e0, e1, e2, e3, Mlp, Ml, tanphi, Nl1, Nl, psi, Az, G, H, GH, Hs, c, kp, cos_c, s, s2, s3, s4, s5;\n if (this.sphere) {\n if (Math.abs(this.sin_p12 - 1) <= EPSLN) {\n //North Pole case\n p.x = this.x0 + this.a * (HALF_PI - lat) * Math.sin(dlon);\n p.y = this.y0 - this.a * (HALF_PI - lat) * Math.cos(dlon);\n return p;\n }\n else if (Math.abs(this.sin_p12 + 1) <= EPSLN) {\n //South Pole case\n p.x = this.x0 + this.a * (HALF_PI + lat) * Math.sin(dlon);\n p.y = this.y0 + this.a * (HALF_PI + lat) * Math.cos(dlon);\n return p;\n }\n else {\n //default case\n cos_c = this.sin_p12 * sinphi + this.cos_p12 * cosphi * Math.cos(dlon);\n c = Math.acos(cos_c);\n kp = c ? c / Math.sin(c) : 1;\n p.x = this.x0 + this.a * kp * cosphi * Math.sin(dlon);\n p.y = this.y0 + this.a * kp * (this.cos_p12 * sinphi - this.sin_p12 * cosphi * Math.cos(dlon));\n return p;\n }\n }\n else {\n e0 = e0fn(this.es);\n e1 = e1fn(this.es);\n e2 = e2fn(this.es);\n e3 = e3fn(this.es);\n if (Math.abs(this.sin_p12 - 1) <= EPSLN) {\n //North Pole case\n Mlp = this.a * mlfn(e0, e1, e2, e3, HALF_PI);\n Ml = this.a * mlfn(e0, e1, e2, e3, lat);\n p.x = this.x0 + (Mlp - Ml) * Math.sin(dlon);\n p.y = this.y0 - (Mlp - Ml) * Math.cos(dlon);\n return p;\n }\n else if (Math.abs(this.sin_p12 + 1) <= EPSLN) {\n //South Pole case\n Mlp = this.a * mlfn(e0, e1, e2, e3, HALF_PI);\n Ml = this.a * mlfn(e0, e1, e2, e3, lat);\n p.x = this.x0 + (Mlp + Ml) * Math.sin(dlon);\n p.y = this.y0 + (Mlp + Ml) * Math.cos(dlon);\n return p;\n }\n else {\n //Default case\n tanphi = sinphi / cosphi;\n Nl1 = gN(this.a, this.e, this.sin_p12);\n Nl = gN(this.a, this.e, sinphi);\n psi = Math.atan((1 - this.es) * tanphi + this.es * Nl1 * this.sin_p12 / (Nl * cosphi));\n Az = Math.atan2(Math.sin(dlon), this.cos_p12 * Math.tan(psi) - this.sin_p12 * Math.cos(dlon));\n if (Az === 0) {\n s = Math.asin(this.cos_p12 * Math.sin(psi) - this.sin_p12 * Math.cos(psi));\n }\n else if (Math.abs(Math.abs(Az) - Math.PI) <= EPSLN) {\n s = -Math.asin(this.cos_p12 * Math.sin(psi) - this.sin_p12 * Math.cos(psi));\n }\n else {\n s = Math.asin(Math.sin(dlon) * Math.cos(psi) / Math.sin(Az));\n }\n G = this.e * this.sin_p12 / Math.sqrt(1 - this.es);\n H = this.e * this.cos_p12 * Math.cos(Az) / Math.sqrt(1 - this.es);\n GH = G * H;\n Hs = H * H;\n s2 = s * s;\n s3 = s2 * s;\n s4 = s3 * s;\n s5 = s4 * s;\n c = Nl1 * s * (1 - s2 * Hs * (1 - Hs) / 6 + s3 / 8 * GH * (1 - 2 * Hs) + s4 / 120 * (Hs * (4 - 7 * Hs) - 3 * G * G * (1 - 7 * Hs)) - s5 / 48 * GH);\n p.x = this.x0 + c * Math.sin(Az);\n p.y = this.y0 + c * Math.cos(Az);\n return p;\n }\n }\n\n\n}\n\nexport function inverse(p) {\n p.x -= this.x0;\n p.y -= this.y0;\n var rh, z, sinz, cosz, lon, lat, con, e0, e1, e2, e3, Mlp, M, N1, psi, Az, cosAz, tmp, A, B, D, Ee, F, sinpsi;\n if (this.sphere) {\n rh = Math.sqrt(p.x * p.x + p.y * p.y);\n if (rh > (2 * HALF_PI * this.a)) {\n return;\n }\n z = rh / this.a;\n\n sinz = Math.sin(z);\n cosz = Math.cos(z);\n\n lon = this.long0;\n if (Math.abs(rh) <= EPSLN) {\n lat = this.lat0;\n }\n else {\n lat = asinz(cosz * this.sin_p12 + (p.y * sinz * this.cos_p12) / rh);\n con = Math.abs(this.lat0) - HALF_PI;\n if (Math.abs(con) <= EPSLN) {\n if (this.lat0 >= 0) {\n lon = adjust_lon(this.long0 + Math.atan2(p.x, - p.y));\n }\n else {\n lon = adjust_lon(this.long0 - Math.atan2(-p.x, p.y));\n }\n }\n else {\n /*con = cosz - this.sin_p12 * Math.sin(lat);\n if ((Math.abs(con) < EPSLN) && (Math.abs(p.x) < EPSLN)) {\n //no-op, just keep the lon value as is\n } else {\n var temp = Math.atan2((p.x * sinz * this.cos_p12), (con * rh));\n lon = adjust_lon(this.long0 + Math.atan2((p.x * sinz * this.cos_p12), (con * rh)));\n }*/\n lon = adjust_lon(this.long0 + Math.atan2(p.x * sinz, rh * this.cos_p12 * cosz - p.y * this.sin_p12 * sinz));\n }\n }\n\n p.x = lon;\n p.y = lat;\n return p;\n }\n else {\n e0 = e0fn(this.es);\n e1 = e1fn(this.es);\n e2 = e2fn(this.es);\n e3 = e3fn(this.es);\n if (Math.abs(this.sin_p12 - 1) <= EPSLN) {\n //North pole case\n Mlp = this.a * mlfn(e0, e1, e2, e3, HALF_PI);\n rh = Math.sqrt(p.x * p.x + p.y * p.y);\n M = Mlp - rh;\n lat = imlfn(M / this.a, e0, e1, e2, e3);\n lon = adjust_lon(this.long0 + Math.atan2(p.x, - 1 * p.y));\n p.x = lon;\n p.y = lat;\n return p;\n }\n else if (Math.abs(this.sin_p12 + 1) <= EPSLN) {\n //South pole case\n Mlp = this.a * mlfn(e0, e1, e2, e3, HALF_PI);\n rh = Math.sqrt(p.x * p.x + p.y * p.y);\n M = rh - Mlp;\n\n lat = imlfn(M / this.a, e0, e1, e2, e3);\n lon = adjust_lon(this.long0 + Math.atan2(p.x, p.y));\n p.x = lon;\n p.y = lat;\n return p;\n }\n else {\n //default case\n rh = Math.sqrt(p.x * p.x + p.y * p.y);\n Az = Math.atan2(p.x, p.y);\n N1 = gN(this.a, this.e, this.sin_p12);\n cosAz = Math.cos(Az);\n tmp = this.e * this.cos_p12 * cosAz;\n A = -tmp * tmp / (1 - this.es);\n B = 3 * this.es * (1 - A) * this.sin_p12 * this.cos_p12 * cosAz / (1 - this.es);\n D = rh / N1;\n Ee = D - A * (1 + A) * Math.pow(D, 3) / 6 - B * (1 + 3 * A) * Math.pow(D, 4) / 24;\n F = 1 - A * Ee * Ee / 2 - D * Ee * Ee * Ee / 6;\n psi = Math.asin(this.sin_p12 * Math.cos(Ee) + this.cos_p12 * Math.sin(Ee) * cosAz);\n lon = adjust_lon(this.long0 + Math.asin(Math.sin(Az) * Math.sin(Ee) / Math.cos(psi)));\n sinpsi = Math.sin(psi);\n lat = Math.atan2((sinpsi - this.es * F * this.sin_p12) * Math.tan(psi), sinpsi * (1 - this.es));\n p.x = lon;\n p.y = lat;\n return p;\n }\n }\n\n}\n\nexport var names = [\"Azimuthal_Equidistant\", \"aeqd\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import adjust_lon from '../common/adjust_lon';\nimport asinz from '../common/asinz';\nimport {EPSLN, HALF_PI} from '../constants/values';\n\nexport function init() {\n //double temp; /* temporary variable */\n\n /* Place parameters in static storage for common use\n -------------------------------------------------*/\n this.sin_p14 = Math.sin(this.lat0);\n this.cos_p14 = Math.cos(this.lat0);\n}\n\n/* Orthographic forward equations--mapping lat,long to x,y\n ---------------------------------------------------*/\nexport function forward(p) {\n var sinphi, cosphi; /* sin and cos value */\n var dlon; /* delta longitude value */\n var coslon; /* cos of longitude */\n var ksp; /* scale factor */\n var g, x, y;\n var lon = p.x;\n var lat = p.y;\n /* Forward equations\n -----------------*/\n dlon = adjust_lon(lon - this.long0);\n\n sinphi = Math.sin(lat);\n cosphi = Math.cos(lat);\n\n coslon = Math.cos(dlon);\n g = this.sin_p14 * sinphi + this.cos_p14 * cosphi * coslon;\n ksp = 1;\n if ((g > 0) || (Math.abs(g) <= EPSLN)) {\n x = this.a * ksp * cosphi * Math.sin(dlon);\n y = this.y0 + this.a * ksp * (this.cos_p14 * sinphi - this.sin_p14 * cosphi * coslon);\n }\n p.x = x;\n p.y = y;\n return p;\n}\n\nexport function inverse(p) {\n var rh; /* height above ellipsoid */\n var z; /* angle */\n var sinz, cosz; /* sin of z and cos of z */\n var con;\n var lon, lat;\n /* Inverse equations\n -----------------*/\n p.x -= this.x0;\n p.y -= this.y0;\n rh = Math.sqrt(p.x * p.x + p.y * p.y);\n z = asinz(rh / this.a);\n\n sinz = Math.sin(z);\n cosz = Math.cos(z);\n\n lon = this.long0;\n if (Math.abs(rh) <= EPSLN) {\n lat = this.lat0;\n p.x = lon;\n p.y = lat;\n return p;\n }\n lat = asinz(cosz * this.sin_p14 + (p.y * sinz * this.cos_p14) / rh);\n con = Math.abs(this.lat0) - HALF_PI;\n if (Math.abs(con) <= EPSLN) {\n if (this.lat0 >= 0) {\n lon = adjust_lon(this.long0 + Math.atan2(p.x, - p.y));\n }\n else {\n lon = adjust_lon(this.long0 - Math.atan2(-p.x, p.y));\n }\n p.x = lon;\n p.y = lat;\n return p;\n }\n lon = adjust_lon(this.long0 + Math.atan2((p.x * sinz), rh * this.cos_p14 * cosz - p.y * this.sin_p14 * sinz));\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"ortho\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","// QSC projection rewritten from the original PROJ4\n// https://github.com/OSGeo/proj.4/blob/master/src/PJ_qsc.c\n\nimport {EPSLN, TWO_PI, SPI, HALF_PI, FORTPI} from '../constants/values';\n\n/* constants */\nvar FACE_ENUM = {\n FRONT: 1,\n RIGHT: 2,\n BACK: 3,\n LEFT: 4,\n TOP: 5,\n BOTTOM: 6\n};\n\nvar AREA_ENUM = {\n AREA_0: 1,\n AREA_1: 2,\n AREA_2: 3,\n AREA_3: 4\n};\n\nexport function init() {\n\n this.x0 = this.x0 || 0;\n this.y0 = this.y0 || 0;\n this.lat0 = this.lat0 || 0;\n this.long0 = this.long0 || 0;\n this.lat_ts = this.lat_ts || 0;\n this.title = this.title || \"Quadrilateralized Spherical Cube\";\n\n /* Determine the cube face from the center of projection. */\n if (this.lat0 >= HALF_PI - FORTPI / 2.0) {\n this.face = FACE_ENUM.TOP;\n } else if (this.lat0 <= -(HALF_PI - FORTPI / 2.0)) {\n this.face = FACE_ENUM.BOTTOM;\n } else if (Math.abs(this.long0) <= FORTPI) {\n this.face = FACE_ENUM.FRONT;\n } else if (Math.abs(this.long0) <= HALF_PI + FORTPI) {\n this.face = this.long0 > 0.0 ? FACE_ENUM.RIGHT : FACE_ENUM.LEFT;\n } else {\n this.face = FACE_ENUM.BACK;\n }\n\n /* Fill in useful values for the ellipsoid <-> sphere shift\n * described in [LK12]. */\n if (this.es !== 0) {\n this.one_minus_f = 1 - (this.a - this.b) / this.a;\n this.one_minus_f_squared = this.one_minus_f * this.one_minus_f;\n }\n}\n\n// QSC forward equations--mapping lat,long to x,y\n// -----------------------------------------------------------------\nexport function forward(p) {\n var xy = {x: 0, y: 0};\n var lat, lon;\n var theta, phi;\n var t, mu;\n /* nu; */\n var area = {value: 0};\n\n // move lon according to projection's lon\n p.x -= this.long0;\n\n /* Convert the geodetic latitude to a geocentric latitude.\n * This corresponds to the shift from the ellipsoid to the sphere\n * described in [LK12]. */\n if (this.es !== 0) {//if (P->es != 0) {\n lat = Math.atan(this.one_minus_f_squared * Math.tan(p.y));\n } else {\n lat = p.y;\n }\n\n /* Convert the input lat, lon into theta, phi as used by QSC.\n * This depends on the cube face and the area on it.\n * For the top and bottom face, we can compute theta and phi\n * directly from phi, lam. For the other faces, we must use\n * unit sphere cartesian coordinates as an intermediate step. */\n lon = p.x; //lon = lp.lam;\n if (this.face === FACE_ENUM.TOP) {\n phi = HALF_PI - lat;\n if (lon >= FORTPI && lon <= HALF_PI + FORTPI) {\n area.value = AREA_ENUM.AREA_0;\n theta = lon - HALF_PI;\n } else if (lon > HALF_PI + FORTPI || lon <= -(HALF_PI + FORTPI)) {\n area.value = AREA_ENUM.AREA_1;\n theta = (lon > 0.0 ? lon - SPI : lon + SPI);\n } else if (lon > -(HALF_PI + FORTPI) && lon <= -FORTPI) {\n area.value = AREA_ENUM.AREA_2;\n theta = lon + HALF_PI;\n } else {\n area.value = AREA_ENUM.AREA_3;\n theta = lon;\n }\n } else if (this.face === FACE_ENUM.BOTTOM) {\n phi = HALF_PI + lat;\n if (lon >= FORTPI && lon <= HALF_PI + FORTPI) {\n area.value = AREA_ENUM.AREA_0;\n theta = -lon + HALF_PI;\n } else if (lon < FORTPI && lon >= -FORTPI) {\n area.value = AREA_ENUM.AREA_1;\n theta = -lon;\n } else if (lon < -FORTPI && lon >= -(HALF_PI + FORTPI)) {\n area.value = AREA_ENUM.AREA_2;\n theta = -lon - HALF_PI;\n } else {\n area.value = AREA_ENUM.AREA_3;\n theta = (lon > 0.0 ? -lon + SPI : -lon - SPI);\n }\n } else {\n var q, r, s;\n var sinlat, coslat;\n var sinlon, coslon;\n\n if (this.face === FACE_ENUM.RIGHT) {\n lon = qsc_shift_lon_origin(lon, +HALF_PI);\n } else if (this.face === FACE_ENUM.BACK) {\n lon = qsc_shift_lon_origin(lon, +SPI);\n } else if (this.face === FACE_ENUM.LEFT) {\n lon = qsc_shift_lon_origin(lon, -HALF_PI);\n }\n sinlat = Math.sin(lat);\n coslat = Math.cos(lat);\n sinlon = Math.sin(lon);\n coslon = Math.cos(lon);\n q = coslat * coslon;\n r = coslat * sinlon;\n s = sinlat;\n\n if (this.face === FACE_ENUM.FRONT) {\n phi = Math.acos(q);\n theta = qsc_fwd_equat_face_theta(phi, s, r, area);\n } else if (this.face === FACE_ENUM.RIGHT) {\n phi = Math.acos(r);\n theta = qsc_fwd_equat_face_theta(phi, s, -q, area);\n } else if (this.face === FACE_ENUM.BACK) {\n phi = Math.acos(-q);\n theta = qsc_fwd_equat_face_theta(phi, s, -r, area);\n } else if (this.face === FACE_ENUM.LEFT) {\n phi = Math.acos(-r);\n theta = qsc_fwd_equat_face_theta(phi, s, q, area);\n } else {\n /* Impossible */\n phi = theta = 0;\n area.value = AREA_ENUM.AREA_0;\n }\n }\n\n /* Compute mu and nu for the area of definition.\n * For mu, see Eq. (3-21) in [OL76], but note the typos:\n * compare with Eq. (3-14). For nu, see Eq. (3-38). */\n mu = Math.atan((12 / SPI) * (theta + Math.acos(Math.sin(theta) * Math.cos(FORTPI)) - HALF_PI));\n t = Math.sqrt((1 - Math.cos(phi)) / (Math.cos(mu) * Math.cos(mu)) / (1 - Math.cos(Math.atan(1 / Math.cos(theta)))));\n\n /* Apply the result to the real area. */\n if (area.value === AREA_ENUM.AREA_1) {\n mu += HALF_PI;\n } else if (area.value === AREA_ENUM.AREA_2) {\n mu += SPI;\n } else if (area.value === AREA_ENUM.AREA_3) {\n mu += 1.5 * SPI;\n }\n\n /* Now compute x, y from mu and nu */\n xy.x = t * Math.cos(mu);\n xy.y = t * Math.sin(mu);\n xy.x = xy.x * this.a + this.x0;\n xy.y = xy.y * this.a + this.y0;\n\n p.x = xy.x;\n p.y = xy.y;\n return p;\n}\n\n// QSC inverse equations--mapping x,y to lat/long\n// -----------------------------------------------------------------\nexport function inverse(p) {\n var lp = {lam: 0, phi: 0};\n var mu, nu, cosmu, tannu;\n var tantheta, theta, cosphi, phi;\n var t;\n var area = {value: 0};\n\n /* de-offset */\n p.x = (p.x - this.x0) / this.a;\n p.y = (p.y - this.y0) / this.a;\n\n /* Convert the input x, y to the mu and nu angles as used by QSC.\n * This depends on the area of the cube face. */\n nu = Math.atan(Math.sqrt(p.x * p.x + p.y * p.y));\n mu = Math.atan2(p.y, p.x);\n if (p.x >= 0.0 && p.x >= Math.abs(p.y)) {\n area.value = AREA_ENUM.AREA_0;\n } else if (p.y >= 0.0 && p.y >= Math.abs(p.x)) {\n area.value = AREA_ENUM.AREA_1;\n mu -= HALF_PI;\n } else if (p.x < 0.0 && -p.x >= Math.abs(p.y)) {\n area.value = AREA_ENUM.AREA_2;\n mu = (mu < 0.0 ? mu + SPI : mu - SPI);\n } else {\n area.value = AREA_ENUM.AREA_3;\n mu += HALF_PI;\n }\n\n /* Compute phi and theta for the area of definition.\n * The inverse projection is not described in the original paper, but some\n * good hints can be found here (as of 2011-12-14):\n * http://fits.gsfc.nasa.gov/fitsbits/saf.93/saf.9302\n * (search for \"Message-Id: <9302181759.AA25477 at fits.cv.nrao.edu>\") */\n t = (SPI / 12) * Math.tan(mu);\n tantheta = Math.sin(t) / (Math.cos(t) - (1 / Math.sqrt(2)));\n theta = Math.atan(tantheta);\n cosmu = Math.cos(mu);\n tannu = Math.tan(nu);\n cosphi = 1 - cosmu * cosmu * tannu * tannu * (1 - Math.cos(Math.atan(1 / Math.cos(theta))));\n if (cosphi < -1) {\n cosphi = -1;\n } else if (cosphi > +1) {\n cosphi = +1;\n }\n\n /* Apply the result to the real area on the cube face.\n * For the top and bottom face, we can compute phi and lam directly.\n * For the other faces, we must use unit sphere cartesian coordinates\n * as an intermediate step. */\n if (this.face === FACE_ENUM.TOP) {\n phi = Math.acos(cosphi);\n lp.phi = HALF_PI - phi;\n if (area.value === AREA_ENUM.AREA_0) {\n lp.lam = theta + HALF_PI;\n } else if (area.value === AREA_ENUM.AREA_1) {\n lp.lam = (theta < 0.0 ? theta + SPI : theta - SPI);\n } else if (area.value === AREA_ENUM.AREA_2) {\n lp.lam = theta - HALF_PI;\n } else /* area.value == AREA_ENUM.AREA_3 */ {\n lp.lam = theta;\n }\n } else if (this.face === FACE_ENUM.BOTTOM) {\n phi = Math.acos(cosphi);\n lp.phi = phi - HALF_PI;\n if (area.value === AREA_ENUM.AREA_0) {\n lp.lam = -theta + HALF_PI;\n } else if (area.value === AREA_ENUM.AREA_1) {\n lp.lam = -theta;\n } else if (area.value === AREA_ENUM.AREA_2) {\n lp.lam = -theta - HALF_PI;\n } else /* area.value == AREA_ENUM.AREA_3 */ {\n lp.lam = (theta < 0.0 ? -theta - SPI : -theta + SPI);\n }\n } else {\n /* Compute phi and lam via cartesian unit sphere coordinates. */\n var q, r, s;\n q = cosphi;\n t = q * q;\n if (t >= 1) {\n s = 0;\n } else {\n s = Math.sqrt(1 - t) * Math.sin(theta);\n }\n t += s * s;\n if (t >= 1) {\n r = 0;\n } else {\n r = Math.sqrt(1 - t);\n }\n /* Rotate q,r,s into the correct area. */\n if (area.value === AREA_ENUM.AREA_1) {\n t = r;\n r = -s;\n s = t;\n } else if (area.value === AREA_ENUM.AREA_2) {\n r = -r;\n s = -s;\n } else if (area.value === AREA_ENUM.AREA_3) {\n t = r;\n r = s;\n s = -t;\n }\n /* Rotate q,r,s into the correct cube face. */\n if (this.face === FACE_ENUM.RIGHT) {\n t = q;\n q = -r;\n r = t;\n } else if (this.face === FACE_ENUM.BACK) {\n q = -q;\n r = -r;\n } else if (this.face === FACE_ENUM.LEFT) {\n t = q;\n q = r;\n r = -t;\n }\n /* Now compute phi and lam from the unit sphere coordinates. */\n lp.phi = Math.acos(-s) - HALF_PI;\n lp.lam = Math.atan2(r, q);\n if (this.face === FACE_ENUM.RIGHT) {\n lp.lam = qsc_shift_lon_origin(lp.lam, -HALF_PI);\n } else if (this.face === FACE_ENUM.BACK) {\n lp.lam = qsc_shift_lon_origin(lp.lam, -SPI);\n } else if (this.face === FACE_ENUM.LEFT) {\n lp.lam = qsc_shift_lon_origin(lp.lam, +HALF_PI);\n }\n }\n\n /* Apply the shift from the sphere to the ellipsoid as described\n * in [LK12]. */\n if (this.es !== 0) {\n var invert_sign;\n var tanphi, xa;\n invert_sign = (lp.phi < 0 ? 1 : 0);\n tanphi = Math.tan(lp.phi);\n xa = this.b / Math.sqrt(tanphi * tanphi + this.one_minus_f_squared);\n lp.phi = Math.atan(Math.sqrt(this.a * this.a - xa * xa) / (this.one_minus_f * xa));\n if (invert_sign) {\n lp.phi = -lp.phi;\n }\n }\n\n lp.lam += this.long0;\n p.x = lp.lam;\n p.y = lp.phi;\n return p;\n}\n\n/* Helper function for forward projection: compute the theta angle\n * and determine the area number. */\nfunction qsc_fwd_equat_face_theta(phi, y, x, area) {\n var theta;\n if (phi < EPSLN) {\n area.value = AREA_ENUM.AREA_0;\n theta = 0.0;\n } else {\n theta = Math.atan2(y, x);\n if (Math.abs(theta) <= FORTPI) {\n area.value = AREA_ENUM.AREA_0;\n } else if (theta > FORTPI && theta <= HALF_PI + FORTPI) {\n area.value = AREA_ENUM.AREA_1;\n theta -= HALF_PI;\n } else if (theta > HALF_PI + FORTPI || theta <= -(HALF_PI + FORTPI)) {\n area.value = AREA_ENUM.AREA_2;\n theta = (theta >= 0.0 ? theta - SPI : theta + SPI);\n } else {\n area.value = AREA_ENUM.AREA_3;\n theta += HALF_PI;\n }\n }\n return theta;\n}\n\n/* Helper function: shift the longitude. */\nfunction qsc_shift_lon_origin(lon, offset) {\n var slon = lon + offset;\n if (slon < -SPI) {\n slon += TWO_PI;\n } else if (slon > +SPI) {\n slon -= TWO_PI;\n }\n return slon;\n}\n\nexport var names = [\"Quadrilateralized Spherical Cube\", \"Quadrilateralized_Spherical_Cube\", \"qsc\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n\n","// Robinson projection\n// Based on https://github.com/OSGeo/proj.4/blob/master/src/PJ_robin.c\n// Polynomial coeficients from http://article.gmane.org/gmane.comp.gis.proj-4.devel/6039\n\nimport {HALF_PI, D2R, R2D, EPSLN} from '../constants/values';\nimport adjust_lon from '../common/adjust_lon';\n\nvar COEFS_X = [\n [1.0000, 2.2199e-17, -7.15515e-05, 3.1103e-06],\n [0.9986, -0.000482243, -2.4897e-05, -1.3309e-06],\n [0.9954, -0.00083103, -4.48605e-05, -9.86701e-07],\n [0.9900, -0.00135364, -5.9661e-05, 3.6777e-06],\n [0.9822, -0.00167442, -4.49547e-06, -5.72411e-06],\n [0.9730, -0.00214868, -9.03571e-05, 1.8736e-08],\n [0.9600, -0.00305085, -9.00761e-05, 1.64917e-06],\n [0.9427, -0.00382792, -6.53386e-05, -2.6154e-06],\n [0.9216, -0.00467746, -0.00010457, 4.81243e-06],\n [0.8962, -0.00536223, -3.23831e-05, -5.43432e-06],\n [0.8679, -0.00609363, -0.000113898, 3.32484e-06],\n [0.8350, -0.00698325, -6.40253e-05, 9.34959e-07],\n [0.7986, -0.00755338, -5.00009e-05, 9.35324e-07],\n [0.7597, -0.00798324, -3.5971e-05, -2.27626e-06],\n [0.7186, -0.00851367, -7.01149e-05, -8.6303e-06],\n [0.6732, -0.00986209, -0.000199569, 1.91974e-05],\n [0.6213, -0.010418, 8.83923e-05, 6.24051e-06],\n [0.5722, -0.00906601, 0.000182, 6.24051e-06],\n [0.5322, -0.00677797, 0.000275608, 6.24051e-06]\n];\n\nvar COEFS_Y = [\n [-5.20417e-18, 0.0124, 1.21431e-18, -8.45284e-11],\n [0.0620, 0.0124, -1.26793e-09, 4.22642e-10],\n [0.1240, 0.0124, 5.07171e-09, -1.60604e-09],\n [0.1860, 0.0123999, -1.90189e-08, 6.00152e-09],\n [0.2480, 0.0124002, 7.10039e-08, -2.24e-08],\n [0.3100, 0.0123992, -2.64997e-07, 8.35986e-08],\n [0.3720, 0.0124029, 9.88983e-07, -3.11994e-07],\n [0.4340, 0.0123893, -3.69093e-06, -4.35621e-07],\n [0.4958, 0.0123198, -1.02252e-05, -3.45523e-07],\n [0.5571, 0.0121916, -1.54081e-05, -5.82288e-07],\n [0.6176, 0.0119938, -2.41424e-05, -5.25327e-07],\n [0.6769, 0.011713, -3.20223e-05, -5.16405e-07],\n [0.7346, 0.0113541, -3.97684e-05, -6.09052e-07],\n [0.7903, 0.0109107, -4.89042e-05, -1.04739e-06],\n [0.8435, 0.0103431, -6.4615e-05, -1.40374e-09],\n [0.8936, 0.00969686, -6.4636e-05, -8.547e-06],\n [0.9394, 0.00840947, -0.000192841, -4.2106e-06],\n [0.9761, 0.00616527, -0.000256, -4.2106e-06],\n [1.0000, 0.00328947, -0.000319159, -4.2106e-06]\n];\n\nvar FXC = 0.8487;\nvar FYC = 1.3523;\nvar C1 = R2D/5; // rad to 5-degree interval\nvar RC1 = 1/C1;\nvar NODES = 18;\n\nvar poly3_val = function(coefs, x) {\n return coefs[0] + x * (coefs[1] + x * (coefs[2] + x * coefs[3]));\n};\n\nvar poly3_der = function(coefs, x) {\n return coefs[1] + x * (2 * coefs[2] + x * 3 * coefs[3]);\n};\n\nfunction newton_rapshon(f_df, start, max_err, iters) {\n var x = start;\n for (; iters; --iters) {\n var upd = f_df(x);\n x -= upd;\n if (Math.abs(upd) < max_err) {\n break;\n }\n }\n return x;\n}\n\nexport function init() {\n this.x0 = this.x0 || 0;\n this.y0 = this.y0 || 0;\n this.long0 = this.long0 || 0;\n this.es = 0;\n this.title = this.title || \"Robinson\";\n}\n\nexport function forward(ll) {\n var lon = adjust_lon(ll.x - this.long0);\n\n var dphi = Math.abs(ll.y);\n var i = Math.floor(dphi * C1);\n if (i < 0) {\n i = 0;\n } else if (i >= NODES) {\n i = NODES - 1;\n }\n dphi = R2D * (dphi - RC1 * i);\n var xy = {\n x: poly3_val(COEFS_X[i], dphi) * lon,\n y: poly3_val(COEFS_Y[i], dphi)\n };\n if (ll.y < 0) {\n xy.y = -xy.y;\n }\n\n xy.x = xy.x * this.a * FXC + this.x0;\n xy.y = xy.y * this.a * FYC + this.y0;\n return xy;\n}\n\nexport function inverse(xy) {\n var ll = {\n x: (xy.x - this.x0) / (this.a * FXC),\n y: Math.abs(xy.y - this.y0) / (this.a * FYC)\n };\n\n if (ll.y >= 1) { // pathologic case\n ll.x /= COEFS_X[NODES][0];\n ll.y = xy.y < 0 ? -HALF_PI : HALF_PI;\n } else {\n // find table interval\n var i = Math.floor(ll.y * NODES);\n if (i < 0) {\n i = 0;\n } else if (i >= NODES) {\n i = NODES - 1;\n }\n for (;;) {\n if (COEFS_Y[i][0] > ll.y) {\n --i;\n } else if (COEFS_Y[i+1][0] <= ll.y) {\n ++i;\n } else {\n break;\n }\n }\n // linear interpolation in 5 degree interval\n var coefs = COEFS_Y[i];\n var t = 5 * (ll.y - coefs[0]) / (COEFS_Y[i+1][0] - coefs[0]);\n // find t so that poly3_val(coefs, t) = ll.y\n t = newton_rapshon(function(x) {\n return (poly3_val(coefs, x) - ll.y) / poly3_der(coefs, x);\n }, t, EPSLN, 100);\n\n ll.x /= poly3_val(COEFS_X[i], t);\n ll.y = (5 * i + t) * D2R;\n if (xy.y < 0) {\n ll.y = -ll.y;\n }\n }\n\n ll.x = adjust_lon(ll.x + this.long0);\n return ll;\n}\n\nexport var names = [\"Robinson\", \"robin\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import {\n geodeticToGeocentric,\n geocentricToGeodetic\n} from '../datumUtils';\n\nexport function init() {\n this.name = 'geocent';\n\n}\n\nexport function forward(p) {\n var point = geodeticToGeocentric(p, this.es, this.a);\n return point;\n}\n\nexport function inverse(p) {\n var point = geocentricToGeodetic(p, this.es, this.a, this.b);\n return point;\n}\n\nexport var names = [\"Geocentric\", 'geocentric', \"geocent\", \"Geocent\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};","import tmerc from './lib/projections/tmerc';\nimport etmerc from './lib/projections/etmerc';\nimport utm from './lib/projections/utm';\nimport sterea from './lib/projections/sterea';\nimport stere from './lib/projections/stere';\nimport somerc from './lib/projections/somerc';\nimport omerc from './lib/projections/omerc';\nimport lcc from './lib/projections/lcc';\nimport krovak from './lib/projections/krovak';\nimport cass from './lib/projections/cass';\nimport laea from './lib/projections/laea';\nimport aea from './lib/projections/aea';\nimport gnom from './lib/projections/gnom';\nimport cea from './lib/projections/cea';\nimport eqc from './lib/projections/eqc';\nimport poly from './lib/projections/poly';\nimport nzmg from './lib/projections/nzmg';\nimport mill from './lib/projections/mill';\nimport sinu from './lib/projections/sinu';\nimport moll from './lib/projections/moll';\nimport eqdc from './lib/projections/eqdc';\nimport vandg from './lib/projections/vandg';\nimport aeqd from './lib/projections/aeqd';\nimport ortho from './lib/projections/ortho';\nimport qsc from './lib/projections/qsc';\nimport robin from './lib/projections/robin';\nimport geocent from './lib/projections/geocent';\nexport default function(proj4){\n proj4.Proj.projections.add(tmerc);\n proj4.Proj.projections.add(etmerc);\n proj4.Proj.projections.add(utm);\n proj4.Proj.projections.add(sterea);\n proj4.Proj.projections.add(stere);\n proj4.Proj.projections.add(somerc);\n proj4.Proj.projections.add(omerc);\n proj4.Proj.projections.add(lcc);\n proj4.Proj.projections.add(krovak);\n proj4.Proj.projections.add(cass);\n proj4.Proj.projections.add(laea);\n proj4.Proj.projections.add(aea);\n proj4.Proj.projections.add(gnom);\n proj4.Proj.projections.add(cea);\n proj4.Proj.projections.add(eqc);\n proj4.Proj.projections.add(poly);\n proj4.Proj.projections.add(nzmg);\n proj4.Proj.projections.add(mill);\n proj4.Proj.projections.add(sinu);\n proj4.Proj.projections.add(moll);\n proj4.Proj.projections.add(eqdc);\n proj4.Proj.projections.add(vandg);\n proj4.Proj.projections.add(aeqd);\n proj4.Proj.projections.add(ortho);\n proj4.Proj.projections.add(qsc);\n proj4.Proj.projections.add(robin);\n proj4.Proj.projections.add(geocent);\n}","import proj4 from './core';\nimport Proj from \"./Proj\";\nimport Point from \"./Point\";\nimport common from \"./common/toPoint\";\nimport defs from \"./defs\";\nimport transform from \"./transform\";\nimport mgrs from \"mgrs\";\nimport includedProjections from \"../projs\";\n\nproj4.defaultDatum = 'WGS84'; //default datum\nproj4.Proj = Proj;\nproj4.WGS84 = new proj4.Proj('WGS84');\nproj4.Point = Point;\nproj4.toPoint = common;\nproj4.defs = defs;\nproj4.transform = transform;\nproj4.mgrs = mgrs;\nproj4.version = '__VERSION__';\nincludedProjections(proj4);\nexport default proj4;\n","import defineProperty from \"./defineProperty\";\nexport default function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? Object(arguments[i]) : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\n\nvar consoleLogger = {\n type: 'logger',\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n var _console;\n\n /* eslint no-console: 0 */\n if (console && console[type]) (_console = console)[type].apply(_console, _toConsumableArray(args));\n }\n};\n\nvar Logger =\n/*#__PURE__*/\nfunction () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Logger);\n\n this.init(concreteLogger, options);\n }\n\n _createClass(Logger, [{\n key: \"init\",\n value: function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n }, {\n key: \"setDebug\",\n value: function setDebug(bool) {\n this.debug = bool;\n }\n }, {\n key: \"log\",\n value: function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return this.forward(args, 'log', '', true);\n }\n }, {\n key: \"warn\",\n value: function warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return this.forward(args, 'warn', '', true);\n }\n }, {\n key: \"error\",\n value: function error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return this.forward(args, 'error', '');\n }\n }, {\n key: \"deprecate\",\n value: function deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n }, {\n key: \"forward\",\n value: function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n return this.logger[lvl](args);\n }\n }, {\n key: \"create\",\n value: function create(moduleName) {\n return new Logger(this.logger, _objectSpread({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }, this.options));\n }\n }]);\n\n return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter =\n/*#__PURE__*/\nfunction () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n\n this.observers = {};\n }\n\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this = this;\n\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n\n _this.observers[event].push(listener);\n });\n return this;\n }\n }, {\n key: \"off\",\n value: function off(event, listener) {\n if (!this.observers[event]) return;\n\n if (!listener) {\n delete this.observers[event];\n return;\n }\n\n this.observers[event] = this.observers[event].filter(function (l) {\n return l !== listener;\n });\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(void 0, args);\n });\n }\n\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n }\n }]);\n\n return EventEmitter;\n}();\n\n// http://lea.verou.me/2016/12/resolve-promises-externally-with-this-one-weird-trick/\nfunction defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n /* eslint prefer-template: 0 */\n\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n object = object[key];\n }\n\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\n\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n\n if (value !== undefined) {\n return value;\n } // Fallback to default values\n\n\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n /* eslint no-restricted-syntax: 0 */\n for (var prop in source) {\n if (prop in target) {\n // If we reached a leaf string in target or source then replace with source or skip depending on the 'overwrite' switch\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n\n return target;\n}\nfunction regexEscape(str) {\n /* eslint no-useless-escape: 0 */\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\n/* eslint-disable */\n\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\n/* eslint-enable */\n\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n\n return data;\n}\n\nvar ResourceStore =\n/*#__PURE__*/\nfunction (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n\n function ResourceStore(data) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n\n _classCallCheck(this, ResourceStore);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ResourceStore).call(this));\n EventEmitter.call(_assertThisInitialized(_this)); // <=IE10 fix (unable to call parent constructor)\n\n _this.data = data || {};\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n return _this;\n }\n\n _createClass(ResourceStore, [{\n key: \"addNamespaces\",\n value: function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n }, {\n key: \"removeNamespaces\",\n value: function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n }, {\n key: \"getResource\",\n value: function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n\n return getPath(this.data, path);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = this.options.keySeparator;\n if (keySeparator === undefined) keySeparator = '.';\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n }, {\n key: \"addResources\",\n value: function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n\n /* eslint no-restricted-syntax: 0 */\n for (var m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"addResourceBundle\",\n value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n var path = [lng, ns];\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread({}, pack, resources);\n }\n\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"removeResourceBundle\",\n value: function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n }, {\n key: \"hasResourceBundle\",\n value: function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n }, {\n key: \"getResourceBundle\",\n value: function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS; // COMPATIBILITY: remove extend in v2.1.0\n\n if (this.options.compatibilityAPI === 'v1') return _objectSpread({}, {}, this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n\n return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n processors: {},\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this = this;\n\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nvar Translator =\n/*#__PURE__*/\nfunction (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n\n function Translator(services) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Translator);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Translator).call(this));\n EventEmitter.call(_assertThisInitialized(_this)); // <=IE10 fix (unable to call parent constructor)\n\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n _this.logger = baseLogger.create('translator');\n return _this;\n }\n\n _createClass(Translator, [{\n key: \"changeLanguage\",\n value: function changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n }, {\n key: \"exists\",\n value: function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n }, {\n key: \"extractFromKey\",\n value: function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var namespaces = options.ns || this.options.defaultNS;\n\n if (nsSeparator && key.indexOf(nsSeparator) > -1) {\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key: key,\n namespaces: namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options) {\n var _this2 = this;\n\n if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n /* eslint prefer-rest-params: 0 */\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n\n if (!options) options = {}; // non valid keys handling\n\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)]; // separators\n\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator; // get namespace(s)\n\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n\n var namespace = namespaces[namespaces.length - 1]; // return key on CIMode\n\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n return namespace + nsSeparator + key;\n }\n\n return key;\n } // resolve from store\n\n\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays; // object\n\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n return this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, options) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n } // if we got a separator we loop over children - else we just return object as is\n // as having it set to false means no hierarchy so no lookup for nested values\n\n\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy$$1 = resTypeIsArray ? [] : {}; // apply child translation on a copy\n\n /* eslint no-restricted-syntax: 0 */\n\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n\n for (var m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n copy$$1[m] = this.translate(deepKey, _objectSpread({}, options, {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy$$1[m] === deepKey) copy$$1[m] = res[m]; // if nothing found use orginal value as fallback\n }\n }\n\n res = copy$$1;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n // array special treatment\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options);\n } else {\n // string, empty or null\n var usedDefault = false;\n var usedKey = false; // fallback value\n\n if (!this.isValidLookup(res) && options.defaultValue !== undefined) {\n usedDefault = true;\n\n if (options.count !== undefined) {\n var suffix = this.pluralResolver.getSuffix(lng, options.count);\n res = options[\"defaultValue\".concat(suffix)];\n }\n\n if (!res) res = options.defaultValue;\n }\n\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n } // save missing\n\n\n var updateMissing = options.defaultValue && options.defaultValue !== res && this.options.updateMissing;\n\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? options.defaultValue : res);\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n\n var send = function send(l, k) {\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, updateMissing ? options.defaultValue : res, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, updateMissing ? options.defaultValue : res, updateMissing, options);\n }\n\n _this2.emit('missingKey', l, namespace, k, res);\n };\n\n if (this.options.saveMissing) {\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (l) {\n var plurals = _this2.pluralResolver.getPluralFormsOfKey(l, key);\n\n plurals.forEach(function (p) {\n return send([l], p);\n });\n });\n } else {\n send(lngs, key);\n }\n }\n } // extend\n\n\n res = this.extendTranslation(res, keys, options, resolved); // append namespace if still key\n\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key); // parseMissingKeyHandler\n\n if (usedKey && this.options.parseMissingKeyHandler) res = this.options.parseMissingKeyHandler(res);\n } // return\n\n\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved) {\n var _this3 = this;\n\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, options, resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n // i18next.parsing\n if (options.interpolation) this.interpolator.init(_objectSpread({}, options, {\n interpolation: _objectSpread({}, this.options.interpolation, options.interpolation)\n })); // interpolate\n\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread({}, this.options.interpolation.defaultVariables, data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options); // nesting\n\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n return _this3.translate.apply(_this3, arguments);\n }, options);\n if (options.interpolation) this.interpolator.reset();\n } // post process\n\n\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread({\n i18nResolved: resolved\n }, options) : options, this);\n }\n\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var found;\n var usedKey; // plain key\n\n var exactUsedKey; // key with context / plural\n\n var usedLng;\n var usedNS;\n if (typeof keys === 'string') keys = [keys]; // forEach possible key\n\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n\n var extracted = _this4.extractFromKey(k, options);\n\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var needsContextHandling = options.context !== undefined && typeof options.context === 'string' && options.context !== '';\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n\n if (_this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n _this4.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for namespace \\\"\").concat(usedNS, \"\\\" won't get resolved as namespace was not yet loaded\"), 'This means something IS WRONG in your application setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKey = key;\n var finalKeys = [finalKey];\n\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count); // fallback for plural if context not found\n\n if (needsPluralHandling && needsContextHandling) finalKeys.push(finalKey + pluralSuffix); // get key for context if needed\n\n if (needsContextHandling) finalKeys.push(finalKey += \"\".concat(_this4.options.contextSeparator).concat(options.context)); // get key for plural if needed\n\n if (needsPluralHandling) finalKeys.push(finalKey += pluralSuffix);\n } // iterate over finalKeys starting with most specific pluralkey (-> contextkey only) -> singularkey only\n\n\n var possibleKey;\n /* eslint no-cond-assign: 0 */\n\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this4.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey: usedKey,\n exactUsedKey: exactUsedKey,\n usedLng: usedLng,\n usedNS: usedNS\n };\n }\n }, {\n key: \"isValidLookup\",\n value: function isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n }, {\n key: \"getResource\",\n value: function getResource(code, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n }]);\n\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil =\n/*#__PURE__*/\nfunction () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n\n this.options = options;\n this.whitelist = this.options.whitelist || false;\n this.logger = baseLogger.create('languageUtils');\n }\n\n _createClass(LanguageUtil, [{\n key: \"getScriptPartFromCode\",\n value: function getScriptPartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return null;\n var p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n return this.formatLanguageCode(p.join('-'));\n }\n }, {\n key: \"getLanguagePartFromCode\",\n value: function getLanguagePartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return code;\n var p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n }, {\n key: \"formatLanguageCode\",\n value: function formatLanguageCode(code) {\n // http://www.iana.org/assignments/language-tags/language-tags.xhtml\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n\n if (this.options.lowerCaseLng) {\n p = p.map(function (part) {\n return part.toLowerCase();\n });\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase(); // if lenght 2 guess it's a country\n\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n\n return p.join('-');\n }\n\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isWhitelisted\",\n value: function isWhitelisted(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitWhitelist) {\n code = this.getLanguagePartFromCode(code);\n }\n\n return !this.whitelist || !this.whitelist.length || this.whitelist.indexOf(code) > -1;\n }\n }, {\n key: \"getFallbackCodes\",\n value: function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks[\"default\"] || []; // asume we have an object defining fallbacks\n\n var found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[\"default\"];\n return found || [];\n }\n }, {\n key: \"toResolveHierarchy\",\n value: function toResolveHierarchy(code, fallbackCode) {\n var _this = this;\n\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n\n var addCode = function addCode(c) {\n if (!c) return;\n\n if (_this.isWhitelisted(c)) {\n codes.push(c);\n } else {\n _this.logger.warn(\"rejecting non-whitelisted language code: \".concat(c));\n }\n };\n\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n\n return LanguageUtil;\n}();\n\n/* eslint-disable */\n\nvar sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'id', 'ja', 'jbo', 'ka', 'kk', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n === 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n === 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n === 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n === 1 ? 0 : n === 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\n/* eslint-enable */\n\nfunction createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\n\nvar PluralResolver =\n/*#__PURE__*/\nfunction () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, PluralResolver);\n\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n this.rules = createRules();\n }\n\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var rule = this.getRule(code);\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n var _this = this;\n\n var ret = [];\n var rule = this.getRule(code);\n if (!rule) return ret;\n rule.numbers.forEach(function (n) {\n var suffix = _this.getSuffix(code, n);\n\n ret.push(\"\".concat(key).concat(suffix));\n });\n return ret;\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var _this2 = this;\n\n var rule = this.getRule(code);\n\n if (rule) {\n // if (rule.numbers.length === 1) return ''; // only singular\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx]; // special treatment for lngs only having singular and plural\n\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n\n var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n }; // COMPATIBILITY JSON\n // v1\n\n\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n return returnSuffix();\n } else if (\n /* v2 */\n this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (\n /* v3 - gettext index */\n this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }]);\n\n return PluralResolver;\n}();\n\nvar Interpolator =\n/*#__PURE__*/\nfunction () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Interpolator);\n\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n\n this.init(options);\n }\n /* eslint no-param-reassign: 0 */\n\n\n _createClass(Interpolator, [{\n key: \"init\",\n value: function init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n var iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000; // the regexp\n\n this.resetRegExp();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.options) this.init(this.options);\n }\n }, {\n key: \"resetRegExp\",\n value: function resetRegExp() {\n // the regexp\n var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n this.regexp = new RegExp(regexpStr, 'g');\n var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(str, data, lng, options) {\n var _this = this;\n\n var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) {\n return getPathWithDefaults(data, defaultData, key);\n }\n\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n return _this.format(getPathWithDefaults(data, defaultData, k), f, lng);\n };\n\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n replaces = 0; // unescape if has unescapePrefix/Suffix\n\n /* eslint no-cond-assign: 0 */\n\n while (match = this.regexpUnescape.exec(str)) {\n value = handleFormat(match[1].trim());\n\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else {\n this.logger.warn(\"missed to pass in variable \".concat(match[1], \" for interpolating \").concat(str));\n value = '';\n }\n } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n\n str = str.replace(match[0], regexSafe(value));\n this.regexpUnescape.lastIndex = 0;\n replaces++;\n\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n\n replaces = 0; // regular escape on demand\n\n while (match = this.regexp.exec(str)) {\n value = handleFormat(match[1].trim());\n\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var _temp = missingInterpolationHandler(str, match, options);\n\n value = typeof _temp === 'string' ? _temp : '';\n } else {\n this.logger.warn(\"missed to pass in variable \".concat(match[1], \" for interpolating \").concat(str));\n value = '';\n }\n } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n\n value = this.escapeValue ? regexSafe(this.escape(value)) : regexSafe(value);\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n replaces++;\n\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n\n var clonedOptions = _objectSpread({}, options);\n\n clonedOptions.applyPostProcessor = false; // avoid post processing on nested lookup\n\n delete clonedOptions.defaultValue; // assert we do not get a endless loop on interpolating defaultValue again and again\n // if value is something like \"myKey\": \"lorem $(anotherKey, { \"count\": {{aValueInOptions}} })\"\n\n function handleHasOptions(key, inheritedOptions) {\n if (key.indexOf(',') < 0) return key;\n var p = key.split(',');\n key = p.shift();\n var optionsString = p.join(',');\n optionsString = this.interpolate(optionsString, clonedOptions);\n optionsString = optionsString.replace(/'/g, '\"');\n\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread({}, inheritedOptions, clonedOptions);\n } catch (e) {\n this.logger.error(\"failed parsing options string in nesting for key \".concat(key), e);\n } // assert we do not get a endless loop on interpolating defaultValue again and again\n\n\n delete clonedOptions.defaultValue;\n return key;\n } // regular escape on demand\n\n\n while (match = this.nestingRegexp.exec(str)) {\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions); // is only the nesting key (key1 = '$(key2)') return the value without stringify\n\n if (value && match[0] === str && typeof value !== 'string') return value; // no string to include or empty\n\n if (typeof value !== 'string') value = makeString(value);\n\n if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n } // Nested keys should not be escaped by default #854\n // value = this.escapeValue ? regexSafe(utils.escape(value)) : regexSafe(value);\n\n\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n\n return str;\n }\n }]);\n\n return Interpolator;\n}();\n\nfunction remove(arr, what) {\n var found = arr.indexOf(what);\n\n while (found !== -1) {\n arr.splice(found, 1);\n found = arr.indexOf(what);\n }\n}\n\nvar Connector =\n/*#__PURE__*/\nfunction (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n\n function Connector(backend, store, services) {\n var _this;\n\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n _classCallCheck(this, Connector);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Connector).call(this));\n EventEmitter.call(_assertThisInitialized(_this)); // <=IE10 fix (unable to call parent constructor)\n\n _this.backend = backend;\n _this.store = store;\n _this.services = services;\n _this.languageUtils = services.languageUtils;\n _this.options = options;\n _this.logger = baseLogger.create('backendConnector');\n _this.state = {};\n _this.queue = [];\n\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n\n return _this;\n }\n\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n\n // find what needs to be loaded\n var toLoad = [];\n var pending = [];\n var toLoadLanguages = [];\n var toLoadNamespaces = [];\n languages.forEach(function (lng) {\n var hasAllNamespaces = true;\n namespaces.forEach(function (ns) {\n var name = \"\".concat(lng, \"|\").concat(ns);\n\n if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2; // loaded\n } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {\n if (pending.indexOf(name) < 0) pending.push(name);\n } else {\n _this2.state[name] = 1; // pending\n\n hasAllNamespaces = false;\n if (pending.indexOf(name) < 0) pending.push(name);\n if (toLoad.indexOf(name) < 0) toLoad.push(name);\n if (toLoadNamespaces.indexOf(ns) < 0) toLoadNamespaces.push(ns);\n }\n });\n if (!hasAllNamespaces) toLoadLanguages.push(lng);\n });\n\n if (toLoad.length || pending.length) {\n this.queue.push({\n pending: pending,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: toLoad,\n pending: pending,\n toLoadLanguages: toLoadLanguages,\n toLoadNamespaces: toLoadNamespaces\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var _name$split = name.split('|'),\n _name$split2 = _slicedToArray(_name$split, 2),\n lng = _name$split2[0],\n ns = _name$split2[1];\n\n if (err) this.emit('failedLoading', lng, ns, err);\n\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n } // set loaded\n\n\n this.state[name] = err ? -1 : 2; // consolidated loading done in this run - only emit once for a loaded namespace\n\n var loaded = {}; // callback if ready\n\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n remove(q.pending, name);\n if (err) q.errors.push(err);\n\n if (q.pending.length === 0 && !q.done) {\n // only do once per loaded -> this.emit('loaded', q.loaded);\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = [];\n\n if (q.loaded[l].length) {\n q.loaded[l].forEach(function (ns) {\n if (loaded[l].indexOf(ns) < 0) loaded[l].push(ns);\n });\n }\n });\n /* eslint no-param-reassign: 0 */\n\n q.done = true;\n\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n }); // emit consolidated loaded event\n\n this.emit('loaded', loaded); // remove done load requests\n\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n }\n }, {\n key: \"read\",\n value: function read(lng, ns, fcName) {\n var _this3 = this;\n\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 250;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {}); // noting to load\n\n return this.backend[fcName](lng, ns, function (err, data) {\n if (err && data\n /* = retryFlag */\n && tried < 5) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n\n callback(err, data);\n });\n }\n /* eslint consistent-return: 0 */\n\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback(); // nothing to load and no pendings...callback now\n\n return null; // pendings will trigger callback\n }\n\n toLoad.toLoad.forEach(function (name) {\n _this4.loadOne(name);\n });\n }\n }, {\n key: \"load\",\n value: function load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n }, {\n key: \"reload\",\n value: function reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n }, {\n key: \"loadOne\",\n value: function loadOne(name) {\n var _this5 = this;\n\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n var _name$split3 = name.split('|'),\n _name$split4 = _slicedToArray(_name$split3, 2),\n lng = _name$split4[0],\n ns = _name$split4[1];\n\n this.read(lng, ns, 'read', null, null, function (err, data) {\n if (err) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n\n _this5.loaded(name, err, data);\n });\n }\n }, {\n key: \"saveMissing\",\n value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" for namespace \\\"\").concat(namespace, \"\\\" as the namespace was not yet loaded\"), 'This means something IS WRONG in your application setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n\n if (this.backend && this.backend.create) {\n this.backend.create(languages, namespace, key, fallbackValue, null\n /* unused callback */\n , _objectSpread({}, options, {\n isUpdate: isUpdate\n }));\n } // write to store to avoid resending\n\n\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n }]);\n\n return Connector;\n}(EventEmitter);\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n // string or array of namespaces\n whitelist: false,\n // array with whitelisted languages\n nonExplicitWhitelist: false,\n load: 'all',\n // | currentOnly | languageOnly\n preload: false,\n // array with preload languages\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n // allow bundling certain languages that are not remotely fetched\n saveMissing: false,\n // enable to send missing values\n updateMissing: false,\n // enable to update default values if different from translated value (only useful on initial development, or when keeping code as source of truth)\n saveMissingTo: 'fallback',\n // 'current' || 'all'\n saveMissingPlurals: true,\n // will save all forms not only singular key\n missingKeyHandler: false,\n // function(lng, ns, key, fallbackValue) -> override if prefer on handling\n missingInterpolationHandler: false,\n // function(str, match)\n postProcess: false,\n // string or array of postProcessor names\n postProcessPassResolved: false,\n // pass resolved object into 'options.i18nResolved' for postprocessor\n returnNull: true,\n // allows null value as valid translation\n returnEmptyString: true,\n // allows empty string value as valid translation\n returnObjects: false,\n joinArrays: false,\n // or string to join array\n returnedObjectHandler: false,\n // function(key, value, options) triggered if key returns object but returnObjects is set to false\n parseMissingKeyHandler: false,\n // function(key) parsed a key that was not found in t() before returning\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (_typeof(args[1]) === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n\n if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {\n var options = args[3] || args[2];\n Object.keys(options).forEach(function (key) {\n ret[key] = options[key];\n });\n }\n\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format, lng) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n // prefixEscaped: '{{',\n // suffixEscaped: '}}',\n // unescapeSuffix: '',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n // nestingPrefixEscaped: '$t(',\n // nestingSuffixEscaped: ')',\n // defaultVariables: undefined // object that can have values to interpolate on - extends passed in interpolation data\n maxReplaces: 1000 // max replaces to prevent endless loop\n\n }\n };\n}\n/* eslint no-param-reassign: 0 */\n\nfunction transformOptions(options) {\n // create namespace object if namespace is passed in as string\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS]; // extend whitelist with cimode\n\n if (options.whitelist && options.whitelist.indexOf('cimode') < 0) {\n options.whitelist = options.whitelist.concat(['cimode']);\n }\n\n return options;\n}\n\nfunction noop() {}\n\nvar I18n =\n/*#__PURE__*/\nfunction (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n\n function I18n() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n _classCallCheck(this, I18n);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(I18n).call(this));\n EventEmitter.call(_assertThisInitialized(_this)); // <=IE10 fix (unable to call parent constructor)\n\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n\n if (callback && !_this.isInitialized && !options.isClone) {\n // https://github.com/i18next/i18next/issues/879\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n\n return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n }\n\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n\n return _this;\n }\n\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n this.options = _objectSpread({}, get(), this.options, transformOptions(options));\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n } // init services\n\n\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n\n var lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options); // pipe events from backendConnector\n\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n s.languageDetector.init(s, this.options.detection, this.options);\n }\n\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n\n this.translator = new Translator(this.services, this.options); // pipe events from translator\n\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n } // append api\n\n\n var storeApi = ['getResource', 'addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store;\n\n return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n };\n });\n var deferred = defer();\n\n var load = function load() {\n _this2.changeLanguage(_this2.options.lng, function (err, t) {\n _this2.isInitialized = true;\n\n _this2.logger.log('initialized', _this2.options);\n\n _this2.emit('initialized', _this2.options);\n\n deferred.resolve(t); // not rejecting on err (as err is only a loading translation failed warning)\n\n callback(err, t);\n });\n };\n\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n\n return deferred;\n }\n /* eslint consistent-return: 0 */\n\n }, {\n key: \"loadResources\",\n value: function loadResources() {\n var _this3 = this;\n\n var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : noop;\n\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (this.language && this.language.toLowerCase() === 'cimode') return callback(); // avoid loading resources for cimode\n\n var toLoad = [];\n\n var append = function append(lng) {\n if (!lng) return;\n\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n\n if (!this.language) {\n // at least load fallbacks in this case\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(this.language);\n }\n\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n\n this.services.backendConnector.load(toLoad, this.options.ns, callback);\n } else {\n callback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, function (err) {\n deferred.resolve(); // not rejecting on err (as err is only a loading translation failed warning)\n\n callback(err);\n });\n return deferred;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n\n var deferred = defer();\n this.emit('languageChanging', lng);\n\n var done = function done(err, l) {\n _this4.translator.changeLanguage(l);\n\n if (l) {\n _this4.emit('languageChanged', l);\n\n _this4.logger.log('languageChanged', l);\n }\n\n deferred.resolve(function () {\n return _this4.t.apply(_this4, arguments);\n });\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n\n var setLng = function setLng(l) {\n if (l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n\n _this4.loadResources(function (err) {\n done(err, l);\n });\n };\n\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n this.services.languageDetector.detect(setLng);\n } else {\n setLng(lng);\n }\n\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns) {\n var _this5 = this;\n\n var fixedT = function fixedT(key, opts) {\n var options;\n\n if (_typeof(opts) !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread({}, opts);\n }\n\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n return _this5.t(key, options);\n };\n\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n\n fixedT.ns = ns;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n\n return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n }\n }, {\n key: \"exists\",\n value: function exists() {\n var _this$translator2;\n\n return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n }\n }, {\n key: \"setDefaultNamespace\",\n value: function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n }, {\n key: \"hasLoadedNamespace\",\n value: function hasLoadedNamespace(ns) {\n var _this6 = this;\n\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n\n var lng = this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1]; // we're in cimode so this shall pass\n\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n\n return loadState === -1 || loadState === 2;\n }; // loaded -> SUCCESS\n\n\n if (this.hasResourceBundle(lng, ns)) return true; // were not loading at all -> SEMI SUCCESS\n\n if (!this.services.backendConnector.backend) return true; // failed loading ns - but at least fallback is not pending -> SEMI SUCCESS\n\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n }, {\n key: \"loadNamespaces\",\n value: function loadNamespaces(ns, callback) {\n var _this7 = this;\n\n var deferred = defer();\n\n if (!this.options.ns) {\n callback && callback();\n return Promise.resolve();\n }\n\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);\n });\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"loadLanguages\",\n value: function loadLanguages(lngs, callback) {\n var deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n }); // Exit early if all given languages are already preloaded\n\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"dir\",\n value: function dir(lng) {\n if (!lng) lng = this.languages && this.languages.length > 0 ? this.languages[0] : this.language;\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam'];\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) >= 0 ? 'rtl' : 'ltr';\n }\n /* eslint class-methods-use-this: 0 */\n\n }, {\n key: \"createInstance\",\n value: function createInstance() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n var mergedOptions = _objectSpread({}, this.options, options, {\n isClone: true\n });\n\n var clone = new I18n(mergedOptions);\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.translator = new Translator(clone.services, clone.options);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = clone.options; // sync options\n\n return clone;\n }\n }]);\n\n return I18n;\n}(EventEmitter);\n\nvar i18next = new I18n();\n\nexport default i18next;\n","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/**\n * @module ol/events/EventType\n */\n/**\n * @enum {string}\n * @const\n */\nexport default {\n /**\n * Generic change event. Triggered when the revision counter is increased.\n * @event module:ol/events/Event~BaseEvent#change\n * @api\n */\n CHANGE: 'change',\n /**\n * Generic error event. Triggered when an error occurs.\n * @event module:ol/events/Event~BaseEvent#error\n * @api\n */\n ERROR: 'error',\n BLUR: 'blur',\n CLEAR: 'clear',\n CONTEXTMENU: 'contextmenu',\n CLICK: 'click',\n DBLCLICK: 'dblclick',\n DRAGENTER: 'dragenter',\n DRAGOVER: 'dragover',\n DROP: 'drop',\n FOCUS: 'focus',\n KEYDOWN: 'keydown',\n KEYPRESS: 'keypress',\n LOAD: 'load',\n RESIZE: 'resize',\n TOUCHMOVE: 'touchmove',\n WHEEL: 'wheel',\n};\n//# sourceMappingURL=EventType.js.map","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","/**\n * @module ol/geom/flat/intersectsextent\n */\nimport { containsExtent, createEmpty, extendFlatCoordinates, intersects, intersectsSegment, } from '../../extent.js';\nimport { forEach as forEachSegment } from './segments.js';\nimport { linearRingContainsExtent, linearRingContainsXY } from './contains.js';\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} True if the geometry and the extent intersect.\n */\nexport function intersectsLineString(flatCoordinates, offset, end, stride, extent) {\n var coordinatesExtent = extendFlatCoordinates(createEmpty(), flatCoordinates, offset, end, stride);\n if (!intersects(extent, coordinatesExtent)) {\n return false;\n }\n if (containsExtent(extent, coordinatesExtent)) {\n return true;\n }\n if (coordinatesExtent[0] >= extent[0] && coordinatesExtent[2] <= extent[2]) {\n return true;\n }\n if (coordinatesExtent[1] >= extent[1] && coordinatesExtent[3] <= extent[3]) {\n return true;\n }\n return forEachSegment(flatCoordinates, offset, end, stride, \n /**\n * @param {import(\"../../coordinate.js\").Coordinate} point1 Start point.\n * @param {import(\"../../coordinate.js\").Coordinate} point2 End point.\n * @return {boolean} `true` if the segment and the extent intersect,\n * `false` otherwise.\n */\n function (point1, point2) {\n return intersectsSegment(extent, point1, point2);\n });\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} True if the geometry and the extent intersect.\n */\nexport function intersectsLineStringArray(flatCoordinates, offset, ends, stride, extent) {\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n if (intersectsLineString(flatCoordinates, offset, ends[i], stride, extent)) {\n return true;\n }\n offset = ends[i];\n }\n return false;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} True if the geometry and the extent intersect.\n */\nexport function intersectsLinearRing(flatCoordinates, offset, end, stride, extent) {\n if (intersectsLineString(flatCoordinates, offset, end, stride, extent)) {\n return true;\n }\n if (linearRingContainsXY(flatCoordinates, offset, end, stride, extent[0], extent[1])) {\n return true;\n }\n if (linearRingContainsXY(flatCoordinates, offset, end, stride, extent[0], extent[3])) {\n return true;\n }\n if (linearRingContainsXY(flatCoordinates, offset, end, stride, extent[2], extent[1])) {\n return true;\n }\n if (linearRingContainsXY(flatCoordinates, offset, end, stride, extent[2], extent[3])) {\n return true;\n }\n return false;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} True if the geometry and the extent intersect.\n */\nexport function intersectsLinearRingArray(flatCoordinates, offset, ends, stride, extent) {\n if (!intersectsLinearRing(flatCoordinates, offset, ends[0], stride, extent)) {\n return false;\n }\n if (ends.length === 1) {\n return true;\n }\n for (var i = 1, ii = ends.length; i < ii; ++i) {\n if (linearRingContainsExtent(flatCoordinates, ends[i - 1], ends[i], stride, extent)) {\n if (!intersectsLineString(flatCoordinates, ends[i - 1], ends[i], stride, extent)) {\n return false;\n }\n }\n }\n return true;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} True if the geometry and the extent intersect.\n */\nexport function intersectsLinearRingMultiArray(flatCoordinates, offset, endss, stride, extent) {\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n if (intersectsLinearRingArray(flatCoordinates, offset, ends, stride, extent)) {\n return true;\n }\n offset = ends[ends.length - 1];\n }\n return false;\n}\n//# sourceMappingURL=intersectsextent.js.map","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(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}","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/geom/Point\n */\nimport GeometryType from './GeometryType.js';\nimport SimpleGeometry from './SimpleGeometry.js';\nimport { containsXY, createOrUpdateFromCoordinate } from '../extent.js';\nimport { deflateCoordinate } from './flat/deflate.js';\nimport { squaredDistance as squaredDx } from '../math.js';\n/**\n * @classdesc\n * Point geometry.\n *\n * @api\n */\nvar Point = /** @class */ (function (_super) {\n __extends(Point, _super);\n /**\n * @param {import(\"../coordinate.js\").Coordinate} coordinates Coordinates.\n * @param {import(\"./GeometryLayout.js\").default=} opt_layout Layout.\n */\n function Point(coordinates, opt_layout) {\n var _this = _super.call(this) || this;\n _this.setCoordinates(coordinates, opt_layout);\n return _this;\n }\n /**\n * Make a complete copy of the geometry.\n * @return {!Point} Clone.\n * @api\n */\n Point.prototype.clone = function () {\n var point = new Point(this.flatCoordinates.slice(), this.layout);\n point.applyProperties(this);\n return point;\n };\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n */\n Point.prototype.closestPointXY = function (x, y, closestPoint, minSquaredDistance) {\n var flatCoordinates = this.flatCoordinates;\n var squaredDistance = squaredDx(x, y, flatCoordinates[0], flatCoordinates[1]);\n if (squaredDistance < minSquaredDistance) {\n var stride = this.stride;\n for (var i = 0; i < stride; ++i) {\n closestPoint[i] = flatCoordinates[i];\n }\n closestPoint.length = stride;\n return squaredDistance;\n }\n else {\n return minSquaredDistance;\n }\n };\n /**\n * Return the coordinate of the point.\n * @return {import(\"../coordinate.js\").Coordinate} Coordinates.\n * @api\n */\n Point.prototype.getCoordinates = function () {\n return !this.flatCoordinates ? [] : this.flatCoordinates.slice();\n };\n /**\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @protected\n * @return {import(\"../extent.js\").Extent} extent Extent.\n */\n Point.prototype.computeExtent = function (extent) {\n return createOrUpdateFromCoordinate(this.flatCoordinates, extent);\n };\n /**\n * Get the type of this geometry.\n * @return {import(\"./GeometryType.js\").default} Geometry type.\n * @api\n */\n Point.prototype.getType = function () {\n return GeometryType.POINT;\n };\n /**\n * Test if the geometry and the passed extent intersect.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n * @api\n */\n Point.prototype.intersectsExtent = function (extent) {\n return containsXY(extent, this.flatCoordinates[0], this.flatCoordinates[1]);\n };\n /**\n * @param {!Array<*>} coordinates Coordinates.\n * @param {import(\"./GeometryLayout.js\").default=} opt_layout Layout.\n * @api\n */\n Point.prototype.setCoordinates = function (coordinates, opt_layout) {\n this.setLayout(opt_layout, coordinates, 0);\n if (!this.flatCoordinates) {\n this.flatCoordinates = [];\n }\n this.flatCoordinates.length = deflateCoordinate(this.flatCoordinates, 0, coordinates, this.stride);\n this.changed();\n };\n return Point;\n}(SimpleGeometry));\nexport default Point;\n//# sourceMappingURL=Point.js.map","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","/**\n * @module ol/geom/flat/interiorpoint\n */\nimport { linearRingsContainsXY } from './contains.js';\nimport { numberSafeCompareFunction } from '../../array.js';\n/**\n * Calculates a point that is likely to lie in the interior of the linear rings.\n * Inspired by JTS's com.vividsolutions.jts.geom.Geometry#getInteriorPoint.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {Array} flatCenters Flat centers.\n * @param {number} flatCentersOffset Flat center offset.\n * @param {Array=} opt_dest Destination.\n * @return {Array} Destination point as XYM coordinate, where M is the\n * length of the horizontal intersection that the point belongs to.\n */\nexport function getInteriorPointOfArray(flatCoordinates, offset, ends, stride, flatCenters, flatCentersOffset, opt_dest) {\n var i, ii, x, x1, x2, y1, y2;\n var y = flatCenters[flatCentersOffset + 1];\n /** @type {Array} */\n var intersections = [];\n // Calculate intersections with the horizontal line\n for (var r = 0, rr = ends.length; r < rr; ++r) {\n var end = ends[r];\n x1 = flatCoordinates[end - stride];\n y1 = flatCoordinates[end - stride + 1];\n for (i = offset; i < end; i += stride) {\n x2 = flatCoordinates[i];\n y2 = flatCoordinates[i + 1];\n if ((y <= y1 && y2 <= y) || (y1 <= y && y <= y2)) {\n x = ((y - y1) / (y2 - y1)) * (x2 - x1) + x1;\n intersections.push(x);\n }\n x1 = x2;\n y1 = y2;\n }\n }\n // Find the longest segment of the horizontal line that has its center point\n // inside the linear ring.\n var pointX = NaN;\n var maxSegmentLength = -Infinity;\n intersections.sort(numberSafeCompareFunction);\n x1 = intersections[0];\n for (i = 1, ii = intersections.length; i < ii; ++i) {\n x2 = intersections[i];\n var segmentLength = Math.abs(x2 - x1);\n if (segmentLength > maxSegmentLength) {\n x = (x1 + x2) / 2;\n if (linearRingsContainsXY(flatCoordinates, offset, ends, stride, x, y)) {\n pointX = x;\n maxSegmentLength = segmentLength;\n }\n }\n x1 = x2;\n }\n if (isNaN(pointX)) {\n // There is no horizontal line that has its center point inside the linear\n // ring. Use the center of the the linear ring's extent.\n pointX = flatCenters[flatCentersOffset];\n }\n if (opt_dest) {\n opt_dest.push(pointX, y, maxSegmentLength);\n return opt_dest;\n }\n else {\n return [pointX, y, maxSegmentLength];\n }\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {Array} flatCenters Flat centers.\n * @return {Array} Interior points as XYM coordinates, where M is the\n * length of the horizontal intersection that the point belongs to.\n */\nexport function getInteriorPointsOfMultiArray(flatCoordinates, offset, endss, stride, flatCenters) {\n var interiorPoints = [];\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n interiorPoints = getInteriorPointOfArray(flatCoordinates, offset, ends, stride, flatCenters, 2 * i, interiorPoints);\n offset = ends[ends.length - 1];\n }\n return interiorPoints;\n}\n//# sourceMappingURL=interiorpoint.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/geom/Geometry\n */\nimport BaseObject from '../Object.js';\nimport Units from '../proj/Units.js';\nimport { abstract } from '../util.js';\nimport { compose as composeTransform, create as createTransform, } from '../transform.js';\nimport { createEmpty, createOrUpdateEmpty, getHeight, returnOrUpdate, } from '../extent.js';\nimport { get as getProjection, getTransform } from '../proj.js';\nimport { memoizeOne } from '../functions.js';\nimport { transform2D } from './flat/transform.js';\n/**\n * @type {import(\"../transform.js\").Transform}\n */\nvar tmpTransform = createTransform();\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * Base class for vector geometries.\n *\n * To get notified of changes to the geometry, register a listener for the\n * generic `change` event on your geometry instance.\n *\n * @abstract\n * @api\n */\nvar Geometry = /** @class */ (function (_super) {\n __extends(Geometry, _super);\n function Geometry() {\n var _this = _super.call(this) || this;\n /**\n * @private\n * @type {import(\"../extent.js\").Extent}\n */\n _this.extent_ = createEmpty();\n /**\n * @private\n * @type {number}\n */\n _this.extentRevision_ = -1;\n /**\n * @protected\n * @type {number}\n */\n _this.simplifiedGeometryMaxMinSquaredTolerance = 0;\n /**\n * @protected\n * @type {number}\n */\n _this.simplifiedGeometryRevision = 0;\n /**\n * Get a transformed and simplified version of the geometry.\n * @abstract\n * @param {number} revision The geometry revision.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {import(\"../proj.js\").TransformFunction} [opt_transform] Optional transform function.\n * @return {Geometry} Simplified geometry.\n */\n _this.simplifyTransformedInternal = memoizeOne(function (revision, squaredTolerance, opt_transform) {\n if (!opt_transform) {\n return this.getSimplifiedGeometry(squaredTolerance);\n }\n var clone = this.clone();\n clone.applyTransform(opt_transform);\n return clone.getSimplifiedGeometry(squaredTolerance);\n });\n return _this;\n }\n /**\n * Get a transformed and simplified version of the geometry.\n * @abstract\n * @param {number} squaredTolerance Squared tolerance.\n * @param {import(\"../proj.js\").TransformFunction} [opt_transform] Optional transform function.\n * @return {Geometry} Simplified geometry.\n */\n Geometry.prototype.simplifyTransformed = function (squaredTolerance, opt_transform) {\n return this.simplifyTransformedInternal(this.getRevision(), squaredTolerance, opt_transform);\n };\n /**\n * Make a complete copy of the geometry.\n * @abstract\n * @return {!Geometry} Clone.\n */\n Geometry.prototype.clone = function () {\n return abstract();\n };\n /**\n * @abstract\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n */\n Geometry.prototype.closestPointXY = function (x, y, closestPoint, minSquaredDistance) {\n return abstract();\n };\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\n Geometry.prototype.containsXY = function (x, y) {\n var coord = this.getClosestPoint([x, y]);\n return coord[0] === x && coord[1] === y;\n };\n /**\n * Return the closest point of the geometry to the passed point as\n * {@link module:ol/coordinate~Coordinate coordinate}.\n * @param {import(\"../coordinate.js\").Coordinate} point Point.\n * @param {import(\"../coordinate.js\").Coordinate=} opt_closestPoint Closest point.\n * @return {import(\"../coordinate.js\").Coordinate} Closest point.\n * @api\n */\n Geometry.prototype.getClosestPoint = function (point, opt_closestPoint) {\n var closestPoint = opt_closestPoint ? opt_closestPoint : [NaN, NaN];\n this.closestPointXY(point[0], point[1], closestPoint, Infinity);\n return closestPoint;\n };\n /**\n * Returns true if this geometry includes the specified coordinate. If the\n * coordinate is on the boundary of the geometry, returns false.\n * @param {import(\"../coordinate.js\").Coordinate} coordinate Coordinate.\n * @return {boolean} Contains coordinate.\n * @api\n */\n Geometry.prototype.intersectsCoordinate = function (coordinate) {\n return this.containsXY(coordinate[0], coordinate[1]);\n };\n /**\n * @abstract\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @protected\n * @return {import(\"../extent.js\").Extent} extent Extent.\n */\n Geometry.prototype.computeExtent = function (extent) {\n return abstract();\n };\n /**\n * Get the extent of the geometry.\n * @param {import(\"../extent.js\").Extent=} opt_extent Extent.\n * @return {import(\"../extent.js\").Extent} extent Extent.\n * @api\n */\n Geometry.prototype.getExtent = function (opt_extent) {\n if (this.extentRevision_ != this.getRevision()) {\n var extent = this.computeExtent(this.extent_);\n if (isNaN(extent[0]) || isNaN(extent[1])) {\n createOrUpdateEmpty(extent);\n }\n this.extentRevision_ = this.getRevision();\n }\n return returnOrUpdate(this.extent_, opt_extent);\n };\n /**\n * Rotate the geometry around a given coordinate. This modifies the geometry\n * coordinates in place.\n * @abstract\n * @param {number} angle Rotation angle in radians.\n * @param {import(\"../coordinate.js\").Coordinate} anchor The rotation center.\n * @api\n */\n Geometry.prototype.rotate = function (angle, anchor) {\n abstract();\n };\n /**\n * Scale the geometry (with an optional origin). This modifies the geometry\n * coordinates in place.\n * @abstract\n * @param {number} sx The scaling factor in the x-direction.\n * @param {number=} opt_sy The scaling factor in the y-direction (defaults to sx).\n * @param {import(\"../coordinate.js\").Coordinate=} opt_anchor The scale origin (defaults to the center\n * of the geometry extent).\n * @api\n */\n Geometry.prototype.scale = function (sx, opt_sy, opt_anchor) {\n abstract();\n };\n /**\n * Create a simplified version of this geometry. For linestrings, this uses\n * the [Douglas Peucker](https://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm)\n * algorithm. For polygons, a quantization-based\n * simplification is used to preserve topology.\n * @param {number} tolerance The tolerance distance for simplification.\n * @return {Geometry} A new, simplified version of the original geometry.\n * @api\n */\n Geometry.prototype.simplify = function (tolerance) {\n return this.getSimplifiedGeometry(tolerance * tolerance);\n };\n /**\n * Create a simplified version of this geometry using the Douglas Peucker\n * algorithm.\n * See https://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm.\n * @abstract\n * @param {number} squaredTolerance Squared tolerance.\n * @return {Geometry} Simplified geometry.\n */\n Geometry.prototype.getSimplifiedGeometry = function (squaredTolerance) {\n return abstract();\n };\n /**\n * Get the type of this geometry.\n * @abstract\n * @return {import(\"./GeometryType.js\").default} Geometry type.\n */\n Geometry.prototype.getType = function () {\n return abstract();\n };\n /**\n * Apply a transform function to the coordinates of the geometry.\n * The geometry is modified in place.\n * If you do not want the geometry modified in place, first `clone()` it and\n * then use this function on the clone.\n * @abstract\n * @param {import(\"../proj.js\").TransformFunction} transformFn Transform function.\n * Called with a flat array of geometry coordinates.\n */\n Geometry.prototype.applyTransform = function (transformFn) {\n abstract();\n };\n /**\n * Test if the geometry and the passed extent intersect.\n * @abstract\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n */\n Geometry.prototype.intersectsExtent = function (extent) {\n return abstract();\n };\n /**\n * Translate the geometry. This modifies the geometry coordinates in place. If\n * instead you want a new geometry, first `clone()` this geometry.\n * @abstract\n * @param {number} deltaX Delta X.\n * @param {number} deltaY Delta Y.\n * @api\n */\n Geometry.prototype.translate = function (deltaX, deltaY) {\n abstract();\n };\n /**\n * Transform each coordinate of the geometry from one coordinate reference\n * system to another. The geometry is modified in place.\n * For example, a line will be transformed to a line and a circle to a circle.\n * If you do not want the geometry modified in place, first `clone()` it and\n * then use this function on the clone.\n *\n * @param {import(\"../proj.js\").ProjectionLike} source The current projection. Can be a\n * string identifier or a {@link module:ol/proj/Projection~Projection} object.\n * @param {import(\"../proj.js\").ProjectionLike} destination The desired projection. Can be a\n * string identifier or a {@link module:ol/proj/Projection~Projection} object.\n * @return {Geometry} This geometry. Note that original geometry is\n * modified in place.\n * @api\n */\n Geometry.prototype.transform = function (source, destination) {\n /** @type {import(\"../proj/Projection.js\").default} */\n var sourceProj = getProjection(source);\n var transformFn = sourceProj.getUnits() == Units.TILE_PIXELS\n ? function (inCoordinates, outCoordinates, stride) {\n var pixelExtent = sourceProj.getExtent();\n var projectedExtent = sourceProj.getWorldExtent();\n var scale = getHeight(projectedExtent) / getHeight(pixelExtent);\n composeTransform(tmpTransform, projectedExtent[0], projectedExtent[3], scale, -scale, 0, 0, 0);\n transform2D(inCoordinates, 0, inCoordinates.length, stride, tmpTransform, outCoordinates);\n return getTransform(sourceProj, destination)(inCoordinates, outCoordinates, stride);\n }\n : getTransform(sourceProj, destination);\n this.applyTransform(transformFn);\n return this;\n };\n return Geometry;\n}(BaseObject));\nexport default Geometry;\n//# sourceMappingURL=Geometry.js.map","/**\n * @module ol/geom/flat/segments\n */\n/**\n * This function calls `callback` for each segment of the flat coordinates\n * array. If the callback returns a truthy value the function returns that\n * value immediately. Otherwise the function returns `false`.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {function(import(\"../../coordinate.js\").Coordinate, import(\"../../coordinate.js\").Coordinate): T} callback Function\n * called for each segment.\n * @return {T|boolean} Value.\n * @template T\n */\nexport function forEach(flatCoordinates, offset, end, stride, callback) {\n var point1 = [flatCoordinates[offset], flatCoordinates[offset + 1]];\n var point2 = [];\n var ret;\n for (; offset + stride < end; offset += stride) {\n point2[0] = flatCoordinates[offset + stride];\n point2[1] = flatCoordinates[offset + stride + 1];\n ret = callback(point1, point2);\n if (ret) {\n return ret;\n }\n point1[0] = point2[0];\n point1[1] = point2[1];\n }\n return false;\n}\n//# sourceMappingURL=segments.js.map","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/events/Target\n */\nimport Disposable from '../Disposable.js';\nimport Event from './Event.js';\nimport { VOID } from '../functions.js';\nimport { clear } from '../obj.js';\n/**\n * @typedef {EventTarget|Target} EventTargetLike\n */\n/**\n * @classdesc\n * A simplified implementation of the W3C DOM Level 2 EventTarget interface.\n * See https://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/events.html#Events-EventTarget.\n *\n * There are two important simplifications compared to the specification:\n *\n * 1. The handling of `useCapture` in `addEventListener` and\n * `removeEventListener`. There is no real capture model.\n * 2. The handling of `stopPropagation` and `preventDefault` on `dispatchEvent`.\n * There is no event target hierarchy. When a listener calls\n * `stopPropagation` or `preventDefault` on an event object, it means that no\n * more listeners after this one will be called. Same as when the listener\n * returns false.\n */\nvar Target = /** @class */ (function (_super) {\n __extends(Target, _super);\n /**\n * @param {*=} opt_target Default event target for dispatched events.\n */\n function Target(opt_target) {\n var _this = _super.call(this) || this;\n /**\n * @private\n * @type {*}\n */\n _this.eventTarget_ = opt_target;\n /**\n * @private\n * @type {Object}\n */\n _this.pendingRemovals_ = null;\n /**\n * @private\n * @type {Object}\n */\n _this.dispatching_ = null;\n /**\n * @private\n * @type {Object>}\n */\n _this.listeners_ = null;\n return _this;\n }\n /**\n * @param {string} type Type.\n * @param {import(\"../events.js\").Listener} listener Listener.\n */\n Target.prototype.addEventListener = function (type, listener) {\n if (!type || !listener) {\n return;\n }\n var listeners = this.listeners_ || (this.listeners_ = {});\n var listenersForType = listeners[type] || (listeners[type] = []);\n if (listenersForType.indexOf(listener) === -1) {\n listenersForType.push(listener);\n }\n };\n /**\n * Dispatches an event and calls all listeners listening for events\n * of this type. The event parameter can either be a string or an\n * Object with a `type` property.\n *\n * @param {import(\"./Event.js\").default|string} event Event object.\n * @return {boolean|undefined} `false` if anyone called preventDefault on the\n * event object or if any of the listeners returned false.\n * @api\n */\n Target.prototype.dispatchEvent = function (event) {\n /** @type {import(\"./Event.js\").default|Event} */\n var evt = typeof event === 'string' ? new Event(event) : event;\n var type = evt.type;\n if (!evt.target) {\n evt.target = this.eventTarget_ || this;\n }\n var listeners = this.listeners_ && this.listeners_[type];\n var propagate;\n if (listeners) {\n var dispatching = this.dispatching_ || (this.dispatching_ = {});\n var pendingRemovals = this.pendingRemovals_ || (this.pendingRemovals_ = {});\n if (!(type in dispatching)) {\n dispatching[type] = 0;\n pendingRemovals[type] = 0;\n }\n ++dispatching[type];\n for (var i = 0, ii = listeners.length; i < ii; ++i) {\n if ('handleEvent' in listeners[i]) {\n propagate = /** @type {import(\"../events.js\").ListenerObject} */ (listeners[i]).handleEvent(evt);\n }\n else {\n propagate = /** @type {import(\"../events.js\").ListenerFunction} */ (listeners[i]).call(this, evt);\n }\n if (propagate === false || evt.propagationStopped) {\n propagate = false;\n break;\n }\n }\n --dispatching[type];\n if (dispatching[type] === 0) {\n var pr = pendingRemovals[type];\n delete pendingRemovals[type];\n while (pr--) {\n this.removeEventListener(type, VOID);\n }\n delete dispatching[type];\n }\n return propagate;\n }\n };\n /**\n * Clean up.\n */\n Target.prototype.disposeInternal = function () {\n this.listeners_ && clear(this.listeners_);\n };\n /**\n * Get the listeners for a specified event type. Listeners are returned in the\n * order that they will be called in.\n *\n * @param {string} type Type.\n * @return {Array|undefined} Listeners.\n */\n Target.prototype.getListeners = function (type) {\n return (this.listeners_ && this.listeners_[type]) || undefined;\n };\n /**\n * @param {string=} opt_type Type. If not provided,\n * `true` will be returned if this event target has any listeners.\n * @return {boolean} Has listeners.\n */\n Target.prototype.hasListener = function (opt_type) {\n if (!this.listeners_) {\n return false;\n }\n return opt_type\n ? opt_type in this.listeners_\n : Object.keys(this.listeners_).length > 0;\n };\n /**\n * @param {string} type Type.\n * @param {import(\"../events.js\").Listener} listener Listener.\n */\n Target.prototype.removeEventListener = function (type, listener) {\n var listeners = this.listeners_ && this.listeners_[type];\n if (listeners) {\n var index = listeners.indexOf(listener);\n if (index !== -1) {\n if (this.pendingRemovals_ && type in this.pendingRemovals_) {\n // make listener a no-op, and remove later in #dispatchEvent()\n listeners[index] = VOID;\n ++this.pendingRemovals_[type];\n }\n else {\n listeners.splice(index, 1);\n if (listeners.length === 0) {\n delete this.listeners_[type];\n }\n }\n }\n }\n };\n return Target;\n}(Disposable));\nexport default Target;\n//# sourceMappingURL=Target.js.map","/**\n * @module ol/ObjectEventType\n */\n/**\n * @enum {string}\n */\nexport default {\n /**\n * Triggered when a property is changed.\n * @event module:ol/Object.ObjectEvent#propertychange\n * @api\n */\n PROPERTYCHANGE: 'propertychange',\n};\n//# sourceMappingURL=ObjectEventType.js.map","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * @module ol/Disposable\n */\n/**\n * @classdesc\n * Objects that need to clean up after themselves.\n */\nvar Disposable = /** @class */ (function () {\n function Disposable() {\n /**\n * The object has already been disposed.\n * @type {boolean}\n * @protected\n */\n this.disposed = false;\n }\n /**\n * Clean up.\n */\n Disposable.prototype.dispose = function () {\n if (!this.disposed) {\n this.disposed = true;\n this.disposeInternal();\n }\n };\n /**\n * Extension point for disposable objects.\n * @protected\n */\n Disposable.prototype.disposeInternal = function () { };\n return Disposable;\n}());\nexport default Disposable;\n//# sourceMappingURL=Disposable.js.map","/**\n * @module ol/tilegrid/common\n */\n/**\n * Default maximum zoom for default tile grids.\n * @type {number}\n */\nexport var DEFAULT_MAX_ZOOM = 42;\n/**\n * Default tile size.\n * @type {number}\n */\nexport var DEFAULT_TILE_SIZE = 256;\n//# sourceMappingURL=common.js.map","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/AssertionError\n */\nimport { VERSION } from './util.js';\n/**\n * Error object thrown when an assertion failed. This is an ECMA-262 Error,\n * extended with a `code` property.\n * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error.\n */\nvar AssertionError = /** @class */ (function (_super) {\n __extends(AssertionError, _super);\n /**\n * @param {number} code Error code.\n */\n function AssertionError(code) {\n var _this = this;\n var path = VERSION === 'latest' ? VERSION : 'v' + VERSION.split('-')[0];\n var message = 'Assertion failed. See https://openlayers.org/en/' +\n path +\n '/doc/errors/#' +\n code +\n ' for details.';\n _this = _super.call(this, message) || this;\n /**\n * Error code. The meaning of the code can be found on\n * https://openlayers.org/en/latest/doc/errors/ (replace `latest` with\n * the version found in the OpenLayers script's header comment if a version\n * other than the latest is used).\n * @type {number}\n * @api\n */\n _this.code = code;\n /**\n * @type {string}\n */\n _this.name = 'AssertionError';\n // Re-assign message, see https://github.com/Rich-Harris/buble/issues/40\n _this.message = message;\n return _this;\n }\n return AssertionError;\n}(Error));\nexport default AssertionError;\n//# sourceMappingURL=AssertionError.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/Observable\n */\nimport EventTarget from './events/Target.js';\nimport EventType from './events/EventType.js';\nimport { listen, listenOnce, unlistenByKey } from './events.js';\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * An event target providing convenient methods for listener registration\n * and unregistration. A generic `change` event is always available through\n * {@link module:ol/Observable~Observable#changed}.\n *\n * @fires import(\"./events/Event.js\").default\n * @api\n */\nvar Observable = /** @class */ (function (_super) {\n __extends(Observable, _super);\n function Observable() {\n var _this = _super.call(this) || this;\n /**\n * @private\n * @type {number}\n */\n _this.revision_ = 0;\n return _this;\n }\n /**\n * Increases the revision counter and dispatches a 'change' event.\n * @api\n */\n Observable.prototype.changed = function () {\n ++this.revision_;\n this.dispatchEvent(EventType.CHANGE);\n };\n /**\n * Get the version number for this object. Each time the object is modified,\n * its version number will be incremented.\n * @return {number} Revision.\n * @api\n */\n Observable.prototype.getRevision = function () {\n return this.revision_;\n };\n /**\n * Listen for a certain type of event.\n * @param {string|Array} type The event type or array of event types.\n * @param {function(?): ?} listener The listener function.\n * @return {import(\"./events.js\").EventsKey|Array} Unique key for the listener. If\n * called with an array of event types as the first argument, the return\n * will be an array of keys.\n * @api\n */\n Observable.prototype.on = function (type, listener) {\n if (Array.isArray(type)) {\n var len = type.length;\n var keys = new Array(len);\n for (var i = 0; i < len; ++i) {\n keys[i] = listen(this, type[i], listener);\n }\n return keys;\n }\n else {\n return listen(this, /** @type {string} */ (type), listener);\n }\n };\n /**\n * Listen once for a certain type of event.\n * @param {string|Array} type The event type or array of event types.\n * @param {function(?): ?} listener The listener function.\n * @return {import(\"./events.js\").EventsKey|Array} Unique key for the listener. If\n * called with an array of event types as the first argument, the return\n * will be an array of keys.\n * @api\n */\n Observable.prototype.once = function (type, listener) {\n var key;\n if (Array.isArray(type)) {\n var len = type.length;\n key = new Array(len);\n for (var i = 0; i < len; ++i) {\n key[i] = listenOnce(this, type[i], listener);\n }\n }\n else {\n key = listenOnce(this, /** @type {string} */ (type), listener);\n }\n /** @type {Object} */ (listener).ol_key = key;\n return key;\n };\n /**\n * Unlisten for a certain type of event.\n * @param {string|Array} type The event type or array of event types.\n * @param {function(?): ?} listener The listener function.\n * @api\n */\n Observable.prototype.un = function (type, listener) {\n var key = /** @type {Object} */ (listener).ol_key;\n if (key) {\n unByKey(key);\n }\n else if (Array.isArray(type)) {\n for (var i = 0, ii = type.length; i < ii; ++i) {\n this.removeEventListener(type[i], listener);\n }\n }\n else {\n this.removeEventListener(type, listener);\n }\n };\n return Observable;\n}(EventTarget));\n/**\n * Removes an event listener using the key returned by `on()` or `once()`.\n * @param {import(\"./events.js\").EventsKey|Array} key The key returned by `on()`\n * or `once()` (or an array of keys).\n * @api\n */\nexport function unByKey(key) {\n if (Array.isArray(key)) {\n for (var i = 0, ii = key.length; i < ii; ++i) {\n unlistenByKey(key[i]);\n }\n }\n else {\n unlistenByKey(/** @type {import(\"./events.js\").EventsKey} */ (key));\n }\n}\nexport default Observable;\n//# sourceMappingURL=Observable.js.map","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","export default function symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n","module.exports = {\n parse: require('./lib/parse'),\n stringify: require('./lib/stringify')\n};\n","import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _typeof from '@babel/runtime/helpers/esm/typeof';\n\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nfunction defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\n\nfunction addQueryString(url, params) {\n if (params && _typeof(params) === 'object') {\n var queryString = '',\n e = encodeURIComponent; // Must encode data\n\n for (var paramName in params) {\n queryString += '&' + e(paramName) + '=' + e(params[paramName]);\n }\n\n if (!queryString) {\n return url;\n }\n\n url = url + (url.indexOf('?') !== -1 ? '&' : '?') + queryString.slice(1);\n }\n\n return url;\n} // https://gist.github.com/Xeoncross/7663273\n\n\nfunction ajax(url, options, callback, data, cache) {\n if (data && _typeof(data) === 'object') {\n if (!cache) {\n data['_t'] = new Date();\n } // URL encoded form data must be in querystring format\n\n\n data = addQueryString('', data).slice(1);\n }\n\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n\n try {\n var x;\n\n if (XMLHttpRequest) {\n x = new XMLHttpRequest();\n } else {\n x = new ActiveXObject('MSXML2.XMLHTTP.3.0');\n }\n\n x.open(data ? 'POST' : 'GET', url, 1);\n\n if (!options.crossDomain) {\n x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n\n x.withCredentials = !!options.withCredentials;\n\n if (data) {\n x.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\n }\n\n if (x.overrideMimeType) {\n x.overrideMimeType(\"application/json\");\n }\n\n var h = options.customHeaders;\n h = typeof h === 'function' ? h() : h;\n\n if (h) {\n for (var i in h) {\n x.setRequestHeader(i, h[i]);\n }\n }\n\n x.onreadystatechange = function () {\n x.readyState > 3 && callback && callback(x.responseText, x);\n };\n\n x.send(data);\n } catch (e) {\n console && console.log(e);\n }\n}\n\nfunction getDefaults() {\n return {\n loadPath: '/locales/{{lng}}/{{ns}}.json',\n addPath: '/locales/add/{{lng}}/{{ns}}',\n allowMultiLoading: false,\n parse: JSON.parse,\n parsePayload: function parsePayload(namespace, key, fallbackValue) {\n return _defineProperty({}, key, fallbackValue || '');\n },\n crossDomain: false,\n ajax: ajax\n };\n}\n\nvar Backend =\n/*#__PURE__*/\nfunction () {\n function Backend(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Backend);\n\n this.init(services, options);\n this.type = 'backend';\n }\n\n _createClass(Backend, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults());\n }\n }, {\n key: \"readMulti\",\n value: function readMulti(languages, namespaces, callback) {\n var loadPath = this.options.loadPath;\n\n if (typeof this.options.loadPath === 'function') {\n loadPath = this.options.loadPath(languages, namespaces);\n }\n\n var url = this.services.interpolator.interpolate(loadPath, {\n lng: languages.join('+'),\n ns: namespaces.join('+')\n });\n this.loadUrl(url, callback);\n }\n }, {\n key: \"read\",\n value: function read(language, namespace, callback) {\n var loadPath = this.options.loadPath;\n\n if (typeof this.options.loadPath === 'function') {\n loadPath = this.options.loadPath([language], [namespace]);\n }\n\n var url = this.services.interpolator.interpolate(loadPath, {\n lng: language,\n ns: namespace\n });\n this.loadUrl(url, callback);\n }\n }, {\n key: \"loadUrl\",\n value: function loadUrl(url, callback) {\n var _this = this;\n\n this.options.ajax(url, this.options, function (data, xhr) {\n if (xhr.status >= 500 && xhr.status < 600) return callback('failed loading ' + url, true\n /* retry */\n );\n if (xhr.status >= 400 && xhr.status < 500) return callback('failed loading ' + url, false\n /* no retry */\n );\n var ret, err;\n\n try {\n ret = _this.options.parse(data, url);\n } catch (e) {\n err = 'failed parsing ' + url + ' to json';\n }\n\n if (err) return callback(err, false);\n callback(null, ret);\n });\n }\n }, {\n key: \"create\",\n value: function create(languages, namespace, key, fallbackValue) {\n var _this2 = this;\n\n if (typeof languages === 'string') languages = [languages];\n var payload = this.options.parsePayload(namespace, key, fallbackValue);\n languages.forEach(function (lng) {\n var url = _this2.services.interpolator.interpolate(_this2.options.addPath, {\n lng: lng,\n ns: namespace\n });\n\n _this2.options.ajax(url, _this2.options, function (data, xhr) {//const statusCode = xhr.status.toString();\n // TODO: if statusCode === 4xx do log\n }, payload);\n });\n }\n }]);\n\n return Backend;\n}();\n\nBackend.type = 'backend';\n\nexport default Backend;\n","/* eslint no-var: 0 */\nvar main = require('./dist/commonjs/index.js').default;\n\nmodule.exports = main;\nmodule.exports.default = main;\n","/**\n * @module ol/proj/proj4\n */\nimport Projection from './Projection.js';\nimport Units from './Units.js';\nimport { addCoordinateTransforms, addEquivalentProjections, addProjection, createSafeCoordinateTransform, get, } from '../proj.js';\nimport { assign } from '../obj.js';\nimport { get as getTransform } from './transforms.js';\n/**\n * Make projections defined in proj4 (with `proj4.defs()`) available in\n * OpenLayers.\n *\n * This function should be called whenever changes are made to the proj4\n * registry, e.g. after calling `proj4.defs()`. Existing transforms will not be\n * modified by this function.\n *\n * @param {?} proj4 Proj4.\n * @api\n */\nexport function register(proj4) {\n var projCodes = Object.keys(proj4.defs);\n var len = projCodes.length;\n var i, j;\n for (i = 0; i < len; ++i) {\n var code = projCodes[i];\n if (!get(code)) {\n var def = proj4.defs(code);\n var units = def.units;\n if (!units && def.projName === 'longlat') {\n units = Units.DEGREES;\n }\n addProjection(new Projection({\n code: code,\n axisOrientation: def.axis,\n metersPerUnit: def.to_meter,\n units: units,\n }));\n }\n }\n for (i = 0; i < len; ++i) {\n var code1 = projCodes[i];\n var proj1 = get(code1);\n for (j = 0; j < len; ++j) {\n var code2 = projCodes[j];\n var proj2 = get(code2);\n if (!getTransform(code1, code2)) {\n var def1 = proj4.defs(code1);\n var def2 = proj4.defs(code2);\n if (def1 === def2) {\n addEquivalentProjections([proj1, proj2]);\n }\n else {\n // Reset axis because OpenLayers always uses x, y axis order\n var transform = proj4(assign({}, def1, { axis: undefined }), assign({}, def2, { axis: undefined }));\n addCoordinateTransforms(proj1, proj2, createSafeCoordinateTransform(proj1, proj2, transform.forward), createSafeCoordinateTransform(proj2, proj1, transform.inverse));\n }\n }\n }\n }\n}\n//# sourceMappingURL=proj4.js.map","import React from 'react';\nexport var ReactReduxContext =\n/*#__PURE__*/\nReact.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nvar nullListeners = {\n notify: function notify() {}\n};\n\nfunction createListenerCollection() {\n var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\n\nvar Subscription =\n/*#__PURE__*/\nfunction () {\n function Subscription(store, parentSub) {\n this.store = store;\n this.parentSub = parentSub;\n this.unsubscribe = null;\n this.listeners = nullListeners;\n this.handleChangeWrapper = this.handleChangeWrapper.bind(this);\n }\n\n var _proto = Subscription.prototype;\n\n _proto.addNestedSub = function addNestedSub(listener) {\n this.trySubscribe();\n return this.listeners.subscribe(listener);\n };\n\n _proto.notifyNestedSubs = function notifyNestedSubs() {\n this.listeners.notify();\n };\n\n _proto.handleChangeWrapper = function handleChangeWrapper() {\n if (this.onStateChange) {\n this.onStateChange();\n }\n };\n\n _proto.isSubscribed = function isSubscribed() {\n return Boolean(this.unsubscribe);\n };\n\n _proto.trySubscribe = function trySubscribe() {\n if (!this.unsubscribe) {\n this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.handleChangeWrapper) : this.store.subscribe(this.handleChangeWrapper);\n this.listeners = createListenerCollection();\n }\n };\n\n _proto.tryUnsubscribe = function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n this.listeners.clear();\n this.listeners = nullListeners;\n }\n };\n\n return Subscription;\n}();\n\nexport { Subscription as default };","import React, { useMemo, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport Subscription from '../utils/Subscription';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = new Subscription(store);\n subscription.onStateChange = subscription.notifyNestedSubs;\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useEffect(function () {\n var subscription = contextValue.subscription;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n };\n}\n\nexport default Provider;","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","import { useReducer, useRef, useMemo, useContext } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport Subscription from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return new Subscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestSelectedState = useRef();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || latestSubscriptionCallbackError.current) {\n selectedState = selector(store.getState());\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newSelectedState = latestSelector.current(store.getState());\n\n if (equalityFn(newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = newSelectedState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender({});\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production' && !selector) {\n throw new Error(\"You must pass a selector to useSelectors\");\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n return useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return
{counter}
\r\n * }\r\n */\n\nexport var useSelector =\n/*#__PURE__*/\ncreateSelectorHook();","import Provider from './components/Provider';\nimport connectAdvanced from './components/connectAdvanced';\nimport { ReactReduxContext } from './components/Context';\nimport connect from './connect/connect';\nimport { useDispatch, createDispatchHook } from './hooks/useDispatch';\nimport { useSelector, createSelectorHook } from './hooks/useSelector';\nimport { useStore, createStoreHook } from './hooks/useStore';\nimport { setBatch } from './utils/batch';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport shallowEqual from './utils/shallowEqual';\nsetBatch(batch);\nexport { Provider, connectAdvanced, ReactReduxContext, connect, batch, useDispatch, createDispatchHook, useSelector, createSelectorHook, useStore, createStoreHook, shallowEqual };","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;","/** @license React v16.13.1\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cQ.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;kb}return!1}function v(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new v(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new v(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new v(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new v(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){C[a]=new v(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new v(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){C[a]=new v(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new v(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new v(a,5,!1,a.toLowerCase(),null,!1)});var Ua=/[\\-:]([a-z])/g;function Va(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(Ua,\nVa);C[b]=new v(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!1)});\nC.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!0)});var Wa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Wa.hasOwnProperty(\"ReactCurrentDispatcher\")||(Wa.ReactCurrentDispatcher={current:null});Wa.hasOwnProperty(\"ReactCurrentBatchConfig\")||(Wa.ReactCurrentBatchConfig={suspense:null});\nfunction Xa(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nya&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ec(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return fc(e),a;if(f===d)return fc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function hc(a){a=gc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;dpc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=td(a.document)}return b}\nfunction yd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}var zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=ya&&\"CompositionEvent\"in window,ke=null;ya&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=ya&&\"TextEvent\"in window&&!ke,me=ya&&(!je||ke&&8=ke),ne=String.fromCharCode(32),oe={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=document.documentMode,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=wa.onSelect;for(var g=0;gzf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,pb(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(gl&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;by?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;yy?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ab&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Za:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ab){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ab?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case $a:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=\nd.sibling}d=Vg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(nb(f))return D(a,d,f,h);l&&Qg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===Bd||c.data===Cd))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function ih(a,b){return{responder:a,props:b}}\nvar jh=Wa.ReactCurrentDispatcher,kh=Wa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;cf))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.expirationTime;if(lN.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;hd.tailExpiration&&1b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTimea?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bj(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=$f()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10 component higher in the tree to provide a loading indicator or placeholder to display.\"+qb(g))}S!==\njj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=h;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}\nfunction Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}function Ag(a,b){awi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Ij(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===T&&(X=T=null,U=0);1h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;ob(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime=b&&a<=b}function xi(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction yi(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};\nexports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=Z;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};\nexports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","/*jshint -W030 */\nvar tagRE = /(?:|<(?:\"[^\"]*\"['\"]*|'[^']*'['\"]*|[^'\">])+>)/g;\nvar parseTag = require('./parse-tag');\n// re-used obj for quick lookups of components\nvar empty = Object.create ? Object.create(null) : {};\n// common logic for pushing a child node onto a list\nfunction pushTextNode(list, html, level, start, ignoreWhitespace) {\n // calculate correct end of the content slice in case there's\n // no tag after the text node.\n var end = html.indexOf('<', start);\n var content = html.slice(start, end === -1 ? undefined : end);\n // if a node is nothing but whitespace, collapse it as the spec states:\n // https://www.w3.org/TR/html4/struct/text.html#h-9.1\n if (/^\\s*$/.test(content)) {\n content = ' ';\n }\n // don't add whitespace-only text nodes if they would be trailing text nodes\n // or if they would be leading whitespace-only text nodes:\n // * end > -1 indicates this is not a trailing text node\n // * leading node is when level is -1 and list has length 0\n if ((!ignoreWhitespace && end > -1 && level + list.length >= 0) || content !== ' ') {\n list.push({\n type: 'text',\n content: content\n });\n }\n}\n\nmodule.exports = function parse(html, options) {\n options || (options = {});\n options.components || (options.components = empty);\n var result = [];\n var current;\n var level = -1;\n var arr = [];\n var byTag = {};\n var inComponent = false;\n\n html.replace(tagRE, function (tag, index) {\n if (inComponent) {\n if (tag !== ('')) {\n return;\n } else {\n inComponent = false;\n }\n }\n\n var isOpen = tag.charAt(1) !== '/';\n var isComment = tag.indexOf('