{"version":3,"file":"zemesnoma-map.js","mappings":"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GAASP,GAAQM,GAASH,GAAQK,GAASP,EACzE,GACJ,gKCvCa,EAAAvO,sBAAwD,CACjE,IAAQ,GACR,IAAQ,GACR,IAAQ,GACR,IAAQ,GACR,IAAQ,GACR,IAAQ,GACR,IAAQ,GACR,IAAS,CACL,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,KAAS,CACL,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,KAAS,CACL,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,KAAS,CAAC,QAAS,SACnB,KAAS,CACL,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,KAAS,CACL,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,KAAS,CACL,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,KAAS,CACL,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,KAAS,CACL,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,KAAS,CACL,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,IAAS,CACL,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,KAAS,CACL,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,KAAS,CACL,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,KAAS,CACL,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,KAAS,CAAC,QAAS,QAAS,QAAS,QAAS,SAC9C,KAAS,CACL,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,KAAS,CAAC,QAAS,QAAS,QAAS,QAAS,QAAS,SACvD,KAAS,CACL,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,KAAS,CACL,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,KAAS,CAAC,QAAS,QAAS,SAC5B,IAAS,CACL,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,KAAS,CAAC,QAAS,SACnB,KAAS,CACL,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,KAAS,CACL,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,KAAS,CAAC,QAAS,QAAS,QAAS,SACrC,KAAS,CAAC,QAAS,SACnB,KAAS,CACL,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,KAAS,CAAC,QAAS,QAAS,SAC5B,KAAS,CAAC,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,SACzE,KAAS,CACL,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,KAAS,CACL,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,KAAS,CACL,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,KAAS,CAAC,QAAS,QAAS,QAAS,QAAS,QAAS,SACvD,KAAS,CACL,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,KAAS,CAAC,QAAS,QAAS,SAC5B,KAAS,CACL,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,UAIK,EAAAY,2BAAkE,CAC3E,EAAK,CACD,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,EAAK,CACD,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,EAAK,CACD,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,EAAK,CACD,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,EAAK,CACD,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,EAAK,CACD,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,EAAK,CACD,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,EAAK,CACD,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,UAIK,EAAAC,oBAA2D,CACpE,EAAK,CAAC,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,SACrE,EAAK,CAAC,QAAS,QAAS,QAAS,QAAS,OAAQ,QAAS,QAAS,SACpE,EAAK,CAAC,OAAQ,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,SACtF,EAAK,CACD,OACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJ,EAAK,CAAC,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,SACvF,EAAK,CACD,OACA,QACA,QACA,OACA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X,IACA,EACA,IACA,GAEJ,eAAkB,CACd,GACA,IACA,GACA,GAEJ,WAAc,CACV,IACA,IACA,EACA,GAEJ,WAAc,CACV,IACA,GACA,IACA,GAEJ,QAAW,CACP,IACA,EACA,EACA,GAEJ,WAAc,CACV,IACA,IACA,IACA,GAEJ,aAAgB,CACZ,IACA,IACA,IACA,GAEJ,cAAiB,CACb,GACA,GACA,IACA,GAEJ,cAAiB,CACb,GACA,GACA,GACA,GAEJ,cAAiB,CACb,GACA,GACA,GACA,GAEJ,cAAiB,CACb,EACA,IACA,IACA,GAEJ,WAAc,CACV,IACA,EACA,IACA,GAEJ,SAAY,CACR,IACA,GACA,IACA,GAEJ,YAAe,CACX,EACA,IACA,IACA,GAEJ,QAAW,CACP,IACA,IACA,IACA,GAEJ,QAAW,CACP,IACA,IACA,IACA,GAEJ,WAAc,CACV,GACA,IACA,IACA,GAEJ,UAAa,CACT,IACA,GACA,GACA,GAEJ,YAAe,CACX,IACA,IACA,IACA,GAEJ,YAAe,CACX,GACA,IACA,GACA,GAEJ,QAAW,CACP,IACA,EACA,IACA,GAEJ,UAAa,CACT,IACA,IACA,IACA,GAEJ,WAAc,CACV,IACA,IACA,IACA,GAEJ,KAAQ,CACJ,IACA,IACA,EACA,GAEJ,UAAa,CACT,IACA,IACA,GACA,GAEJ,KAAQ,CACJ,IACA,IACA,IACA,GAEJ,MAAS,CACL,EACA,IACA,EACA,GAEJ,YAAe,CACX,IACA,IACA,GACA,GAEJ,KAAQ,CACJ,IACA,IACA,IACA,GAEJ,SAAY,CACR,IACA,IACA,IACA,GAEJ,QAAW,CACP,IACA,IACA,IACA,GAEJ,UAAa,CACT,IACA,GACA,GACA,GAEJ,OAAU,CACN,GACA,EACA,IACA,GAEJ,MAAS,CACL,IACA,IACA,IACA,GAEJ,MAAS,CACL,IACA,IACA,IACA,GAEJ,SAAY,CACR,IACA,IACA,IACA,GAEJ,cAAiB,CACb,IACA,IACA,IACA,GAEJ,UAAa,CACT,IACA,IACA,EACA,GAEJ,aAAgB,CACZ,IACA,IACA,IACA,GAEJ,UAAa,CACT,IACA,IACA,IACA,GAEJ,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","sources":["webpack://ZemesnomaMap/webpack/universalModuleDefinition","webpack://ZemesnomaMap/webpack/runtime/load script","webpack://ZemesnomaMap/./node_modules/@geo/js/dist/geo-js.min.js","webpack://ZemesnomaMap/./node_modules/@turf/bbox-clip/dist/js/index.js","webpack://ZemesnomaMap/./node_modules/@turf/bbox-clip/dist/js/lib/lineclip.js","webpack://ZemesnomaMap/./node_modules/@turf/helpers/dist/js/index.js","webpack://ZemesnomaMap/./node_modules/@turf/invariant/dist/js/index.js","webpack://ZemesnomaMap/./node_modules/axios/index.js","webpack://ZemesnomaMap/./node_modules/axios/lib/adapters/xhr.js","webpack://ZemesnomaMap/./node_modules/axios/lib/axios.js","webpack://ZemesnomaMap/./node_modules/axios/lib/cancel/Cancel.js","webpack://ZemesnomaMap/./node_modules/axios/lib/cancel/CancelToken.js","webpack://ZemesnomaMap/./node_modules/axios/lib/cancel/isCancel.js","webpack://ZemesnomaMap/./node_modules/axios/lib/core/Axios.js","webpack://ZemesnomaMap/./node_modules/axios/lib/core/InterceptorManager.js","webpack://ZemesnomaMap/./node_modules/axios/lib/core/buildFullPath.js","webpack://ZemesnomaMap/./node_modules/axios/lib/core/createError.js","webpack://ZemesnomaMap/./node_modules/axios/lib/core/dispatchRequest.js","webpack://ZemesnomaMap/./node_modules/axios/lib/core/enhanceError.js","webpack://ZemesnomaMap/./node_modules/axios/lib/core/mergeConfig.js","webpack://ZemesnomaMap/./node_modules/axios/lib/core/settle.js","webpack://ZemesnomaMap/./node_modules/axios/lib/core/transformData.js","webpack://ZemesnomaMap/./node_modules/axios/lib/defaults.js","webpack://ZemesnomaMap/./node_modules/axios/lib/helpers/bind.js","webpack://ZemesnomaMap/./node_modules/axios/lib/helpers/buildURL.js","webpack://ZemesnomaMap/./node_modules/axios/lib/helpers/combineURLs.js","webpack://ZemesnomaMap/./node_modules/axios/lib/helpers/cookies.js","webpack://ZemesnomaMap/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://ZemesnomaMap/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://ZemesnomaMap/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://ZemesnomaMap/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://ZemesnomaMap/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://ZemesnomaMap/./node_modules/axios/lib/helpers/spread.js","webpack://ZemesnomaMap/./node_modules/axios/lib/helpers/validator.js","webpack://ZemesnomaMap/./node_modules/axios/lib/utils.js","webpack://ZemesnomaMap/./node_modules/classnames/index.js","webpack://ZemesnomaMap/./node_modules/clsx/dist/clsx.m.js","webpack://ZemesnomaMap/./node_modules/elm-pep/dist/elm-pep.js","webpack://ZemesnomaMap/./src/img/LVM_GEO_logo_128.jpg","webpack://ZemesnomaMap/./src/img/basemaps/mamma.png","webpack://ZemesnomaMap/./src/img/basemaps/orto2.png","webpack://ZemesnomaMap/./src/img/error-img-dark.svg","webpack://ZemesnomaMap/./src/img/error-img.svg","webpack://ZemesnomaMap/./node_modules/geotiff/node_modules/lru-cache/index.js","webpack://ZemesnomaMap/./node_modules/geotiff/node_modules/yallist/iterator.js","webpack://ZemesnomaMap/./node_modules/geotiff/node_modules/yallist/yallist.js","webpack://ZemesnomaMap/./node_modules/ieee754/index.js","webpack://ZemesnomaMap/./node_modules/object-assign/index.js","webpack://ZemesnomaMap/./node_modules/pbf/index.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/constants/values.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/constants/PrimeMeridian.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/constants/units.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/match.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projString.js","webpack://ZemesnomaMap/./node_modules/wkt-parser/parser.js","webpack://ZemesnomaMap/./node_modules/wkt-parser/process.js","webpack://ZemesnomaMap/./node_modules/wkt-parser/index.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/defs.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/global.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/parseCode.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/extend.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/msfnz.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/sign.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/adjust_lon.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/tsfnz.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/phi2z.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/longlat.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/merc.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/constants/Ellipsoid.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/constants/Datum.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/nadgrid.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/Proj.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/deriveConstants.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/datum.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/datumUtils.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/datum_transform.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/adjust_axis.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/toPoint.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/checkSanity.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/transform.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/core.js","webpack://ZemesnomaMap/./node_modules/mgrs/mgrs.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/Point.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/pj_enfn.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/pj_mlfn.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/pj_inv_mlfn.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/tmerc.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/sinh.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/hypot.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/gatg.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/clens_cmplx.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/cosh.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/etmerc.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/clens.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/asinhy.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/log1py.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/utm.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/adjust_zone.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/srat.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/gauss.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/sterea.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/stere.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/somerc.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/omerc.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/lcc.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/krovak.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/mlfn.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/e0fn.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/e1fn.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/e2fn.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/e3fn.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/gN.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/adjust_lat.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/imlfn.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/cass.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/qsfnz.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/laea.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/asinz.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/aea.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/gnom.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/cea.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/common/iqsfnz.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/eqc.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/poly.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/nzmg.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/mill.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/sinu.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/moll.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/eqdc.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/vandg.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/aeqd.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/ortho.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/qsc.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/robin.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/geocent.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/tpers.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/projections/geos.js","webpack://ZemesnomaMap/./node_modules/proj4/projs.js","webpack://ZemesnomaMap/./node_modules/proj4/lib/index.js","webpack://ZemesnomaMap/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://ZemesnomaMap/./node_modules/prop-types/index.js","webpack://ZemesnomaMap/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://ZemesnomaMap/./node_modules/rbush/rbush.min.js","webpack://ZemesnomaMap/./node_modules/react-dom/cjs/react-dom.production.min.js","webpack://ZemesnomaMap/./node_modules/react-dom/index.js","webpack://ZemesnomaMap/./node_modules/react-draggable/build/cjs/Draggable.js","webpack://ZemesnomaMap/./node_modules/react-draggable/build/cjs/DraggableCore.js","webpack://ZemesnomaMap/./node_modules/react-draggable/build/cjs/cjs.js","webpack://ZemesnomaMap/./node_modules/react-draggable/build/cjs/utils/domFns.js","webpack://ZemesnomaMap/./node_modules/react-draggable/build/cjs/utils/getPrefix.js","webpack://ZemesnomaMap/./node_modules/react-draggable/build/cjs/utils/log.js","webpack://ZemesnomaMap/./node_modules/react-draggable/build/cjs/utils/positionFns.js","webpack://ZemesnomaMap/./node_modules/react-draggable/build/cjs/utils/shims.js","webpack://ZemesnomaMap/./node_modules/react-image-gallery/build/image-gallery.js","webpack://ZemesnomaMap/./node_modules/react/cjs/react.production.min.js","webpack://ZemesnomaMap/./node_modules/react/index.js","webpack://ZemesnomaMap/./node_modules/scheduler/cjs/scheduler.production.min.js","webpack://ZemesnomaMap/./node_modules/scheduler/index.js","webpack://ZemesnomaMap/./src/Contexts/CustomViewContext.tsx","webpack://ZemesnomaMap/./src/Contexts/FiltersContext.tsx","webpack://ZemesnomaMap/./src/Contexts/MapContext.tsx","webpack://ZemesnomaMap/./src/Contexts/RegistrationContext.tsx","webpack://ZemesnomaMap/./src/Contexts/SideViewContext.tsx","webpack://ZemesnomaMap/./src/Elements/Checkbox.tsx","webpack://ZemesnomaMap/./src/Elements/CloseButton.tsx","webpack://ZemesnomaMap/./src/Elements/PopupButton.tsx","webpack://ZemesnomaMap/./src/Forms/Form.tsx","webpack://ZemesnomaMap/./src/Forms/FormSection.tsx","webpack://ZemesnomaMap/./src/Forms/Input.tsx","webpack://ZemesnomaMap/./src/Forms/Upload.tsx","webpack://ZemesnomaMap/./src/Forms/UploadList.tsx","webpack://ZemesnomaMap/./src/Forms/formFields.ts","webpack://ZemesnomaMap/./src/Gallery/Gallery.tsx","webpack://ZemesnomaMap/./src/Map/Buttons/Attribution.tsx","webpack://ZemesnomaMap/./src/Map/Buttons/Download.tsx","webpack://ZemesnomaMap/./src/Map/Buttons/GeoLocation.tsx","webpack://ZemesnomaMap/./src/Map/Buttons/Home.tsx","webpack://ZemesnomaMap/./src/Map/Buttons/Layers.tsx","webpack://ZemesnomaMap/./src/Map/Buttons/basemapButton.tsx","webpack://ZemesnomaMap/./src/Map/config.ts","webpack://ZemesnomaMap/./src/Map/enums.ts","webpack://ZemesnomaMap/./src/Map/filters.ts","webpack://ZemesnomaMap/./src/Map/relations.ts","webpack://ZemesnomaMap/./src/Map/rest.ts","webpack://ZemesnomaMap/./src/Map/search.ts","webpack://ZemesnomaMap/./src/Map/snapshot.ts","webpack://ZemesnomaMap/./src/Map/symbols.ts","webpack://ZemesnomaMap/./src/Map/useMap.ts","webpack://ZemesnomaMap/./src/Popups/Apply.tsx","webpack://ZemesnomaMap/./src/Popups/DocsSection.tsx","webpack://ZemesnomaMap/./src/Popups/Downloads.tsx","webpack://ZemesnomaMap/./src/Popups/Identify.tsx","webpack://ZemesnomaMap/./src/Popups/LayersMenu.tsx","webpack://ZemesnomaMap/./src/Popups/Popup.tsx","webpack://ZemesnomaMap/./src/Popups/PopupRow.tsx","webpack://ZemesnomaMap/./src/Popups/Portal.tsx","webpack://ZemesnomaMap/./src/Popups/Preview.tsx","webpack://ZemesnomaMap/./src/Popups/Registration/ObjectSection.tsx","webpack://ZemesnomaMap/./src/Popups/Registration/PrivacySection.tsx","webpack://ZemesnomaMap/./src/Popups/Registration/Registration.tsx","webpack://ZemesnomaMap/./src/Popups/Registration/SubmitSection.tsx","webpack://ZemesnomaMap/./src/Popups/Registration/SummarySection.tsx","webpack://ZemesnomaMap/./src/Popups/Registration/UserConsent.tsx","webpack://ZemesnomaMap/./src/Providers/docsProvider.ts","webpack://ZemesnomaMap/./src/Providers/imageProvider.ts","webpack://ZemesnomaMap/./src/Providers/mapProvider.tsx","webpack://ZemesnomaMap/./src/Views/CustomView.tsx","webpack://ZemesnomaMap/./src/Views/SideView.tsx","webpack://ZemesnomaMap/./src/renderMap.tsx","webpack://ZemesnomaMap/./src/zemesnoma-map.ts","webpack://ZemesnomaMap/./node_modules/xml-utils/count-substring.js","webpack://ZemesnomaMap/./node_modules/xml-utils/find-tag-by-name.js","webpack://ZemesnomaMap/./node_modules/xml-utils/find-tags-by-name.js","webpack://ZemesnomaMap/./node_modules/xml-utils/get-attribute.js","webpack://ZemesnomaMap/./node_modules/xml-utils/index-of-match-end.js","webpack://ZemesnomaMap/./node_modules/xml-utils/index-of-match.js","webpack://ZemesnomaMap/./node_modules/geotiff/dist-module/globals.js","webpack://ZemesnomaMap/./node_modules/ol/AssertionError.js","webpack://ZemesnomaMap/./node_modules/ol/Collection.js","webpack://ZemesnomaMap/./node_modules/ol/CollectionEventType.js","webpack://ZemesnomaMap/./node_modules/ol/DataTile.js","webpack://ZemesnomaMap/./node_modules/ol/Disposable.js","webpack://ZemesnomaMap/./node_modules/ol/Feature.js","webpack://ZemesnomaMap/./node_modules/ol/Image.js","webpack://ZemesnomaMap/./node_modules/ol/ImageBase.js","webpack://ZemesnomaMap/./node_modules/ol/ImageCanvas.js","webpack://ZemesnomaMap/./node_modules/ol/ImageState.js","webpack://ZemesnomaMap/./node_modules/ol/ImageTile.js","webpack://ZemesnomaMap/./node_modules/ol/MapBrowserEvent.js","webpack://ZemesnomaMap/./node_modules/ol/MapBrowserEventHandler.js","webpack://ZemesnomaMap/./node_modules/ol/MapBrowserEventType.js","webpack://ZemesnomaMap/./node_modules/ol/MapEvent.js","webpack://ZemesnomaMap/./node_modules/ol/MapEventType.js","webpack://ZemesnomaMap/./node_modules/ol/MapProperty.js","webpack://ZemesnomaMap/./node_modules/ol/Object.js","webpack://ZemesnomaMap/./node_modules/ol/ObjectEventType.js","webpack://ZemesnomaMap/./node_modules/ol/Observable.js","webpack://ZemesnomaMap/./node_modules/ol/Overlay.js","webpack://ZemesnomaMap/./node_modules/ol/PluggableMap.js","webpack://ZemesnomaMap/./node_modules/ol/Tile.js","webpack://ZemesnomaMap/./node_modules/ol/TileCache.js","webpack://ZemesnomaMap/./node_modules/ol/structs/PriorityQueue.js","webpack://ZemesnomaMap/./node_modules/ol/TileQueue.js","webpack://ZemesnomaMap/./node_modules/ol/TileRange.js","webpack://ZemesnomaMap/./node_modules/ol/TileState.js","webpack://ZemesnomaMap/./node_modules/ol/VectorRenderTile.js","webpack://ZemesnomaMap/./node_modules/ol/VectorTile.js","webpack://ZemesnomaMap/./node_modules/ol/centerconstraint.js","webpack://ZemesnomaMap/./node_modules/ol/resolutionconstraint.js","webpack://ZemesnomaMap/./node_modules/ol/View.js","webpack://ZemesnomaMap/./node_modules/ol/ViewHint.js","webpack://ZemesnomaMap/./node_modules/ol/ViewProperty.js","webpack://ZemesnomaMap/./node_modules/ol/array.js","webpack://ZemesnomaMap/./node_modules/ol/asserts.js","webpack://ZemesnomaMap/./node_modules/ol/color.js","webpack://ZemesnomaMap/./node_modules/ol/colorlike.js","webpack://ZemesnomaMap/./node_modules/ol/control/Control.js","webpack://ZemesnomaMap/./node_modules/ol/control/Attribution.js","webpack://ZemesnomaMap/./node_modules/ol/control/Rotate.js","webpack://ZemesnomaMap/./node_modules/ol/control/Zoom.js","webpack://ZemesnomaMap/./node_modules/ol/control/FullScreen.js","webpack://ZemesnomaMap/./node_modules/ol/control/MousePosition.js","webpack://ZemesnomaMap/./node_modules/ol/control/OverviewMap.js","webpack://ZemesnomaMap/./node_modules/ol/control/ScaleLine.js","webpack://ZemesnomaMap/./node_modules/ol/control/ZoomSlider.js","webpack://ZemesnomaMap/./node_modules/ol/control/ZoomToExtent.js","webpack://ZemesnomaMap/./node_modules/ol/control.js","webpack://ZemesnomaMap/./node_modules/ol/coordinate.js","webpack://ZemesnomaMap/./node_modules/ol/css.js","webpack://ZemesnomaMap/./node_modules/ol/dom.js","webpack://ZemesnomaMap/./node_modules/ol/easing.js","webpack://ZemesnomaMap/./node_modules/ol/events.js","webpack://ZemesnomaMap/./node_modules/ol/events/Event.js","webpack://ZemesnomaMap/./node_modules/ol/events/EventType.js","webpack://ZemesnomaMap/./node_modules/ol/events/Target.js","webpack://ZemesnomaMap/./node_modules/ol/extent.js","webpack://ZemesnomaMap/./node_modules/ol/extent/Relationship.js","webpack://ZemesnomaMap/./node_modules/ol/featureloader.js","webpack://ZemesnomaMap/./node_modules/ol/format/EsriJSON.js","webpack://ZemesnomaMap/./node_modules/ol/xml.js","webpack://ZemesnomaMap/./node_modules/ol/format/XMLFeature.js","webpack://ZemesnomaMap/./node_modules/ol/format/GMLBase.js","webpack://ZemesnomaMap/./node_modules/ol/format/xsd.js","webpack://ZemesnomaMap/./node_modules/ol/format/GML2.js","webpack://ZemesnomaMap/./node_modules/ol/format/GML3.js","webpack://ZemesnomaMap/./node_modules/ol/format/GML.js","webpack://ZemesnomaMap/./node_modules/ol/format/GPX.js","webpack://ZemesnomaMap/./node_modules/ol/format/TextFeature.js","webpack://ZemesnomaMap/./node_modules/ol/format/IGC.js","webpack://ZemesnomaMap/./node_modules/ol/format/KML.js","webpack://ZemesnomaMap/./node_modules/ol/format/XML.js","webpack://ZemesnomaMap/./node_modules/ol/format/xlink.js","webpack://ZemesnomaMap/./node_modules/ol/format/OWS.js","webpack://ZemesnomaMap/./node_modules/ol/geom/flat/flip.js","webpack://ZemesnomaMap/./node_modules/ol/format/Polyline.js","webpack://ZemesnomaMap/./node_modules/ol/format/TopoJSON.js","webpack://ZemesnomaMap/./node_modules/ol/format/GML32.js","webpack://ZemesnomaMap/./node_modules/ol/format/filter/Filter.js","webpack://ZemesnomaMap/./node_modules/ol/format/filter/LogicalNary.js","webpack://ZemesnomaMap/./node_modules/ol/format/filter/And.js","webpack://ZemesnomaMap/./node_modules/ol/format/filter/Bbox.js","webpack://ZemesnomaMap/./node_modules/ol/format/WFS.js","webpack://ZemesnomaMap/./node_modules/ol/format/filter.js","webpack://ZemesnomaMap/./node_modules/ol/format/WKB.js","webpack://ZemesnomaMap/./node_modules/ol/format/WKT.js","webpack://ZemesnomaMap/./node_modules/ol/format/WMSCapabilities.js","webpack://ZemesnomaMap/./node_modules/ol/format/WMSGetFeatureInfo.js","webpack://ZemesnomaMap/./node_modules/ol/format/WMTSCapabilities.js","webpack://ZemesnomaMap/./node_modules/ol/format/Feature.js","webpack://ZemesnomaMap/./node_modules/ol/format/GeoJSON.js","webpack://ZemesnomaMap/./node_modules/ol/format/IIIFInfo.js","webpack://ZemesnomaMap/./node_modules/ol/format/JSONFeature.js","webpack://ZemesnomaMap/./node_modules/ol/format/MVT.js","webpack://ZemesnomaMap/./node_modules/ol/functions.js","webpack://ZemesnomaMap/./node_modules/ol/geom/Circle.js","webpack://ZemesnomaMap/./node_modules/ol/geom/Geometry.js","webpack://ZemesnomaMap/./node_modules/ol/geom/GeometryCollection.js","webpack://ZemesnomaMap/./node_modules/ol/geom/GeometryLayout.js","webpack://ZemesnomaMap/./node_modules/ol/geom/LineString.js","webpack://ZemesnomaMap/./node_modules/ol/geom/LinearRing.js","webpack://ZemesnomaMap/./node_modules/ol/geom/MultiLineString.js","webpack://ZemesnomaMap/./node_modules/ol/geom/MultiPoint.js","webpack://ZemesnomaMap/./node_modules/ol/geom/MultiPolygon.js","webpack://ZemesnomaMap/./node_modules/ol/geom/Point.js","webpack://ZemesnomaMap/./node_modules/ol/geom/Polygon.js","webpack://ZemesnomaMap/./node_modules/ol/geom/SimpleGeometry.js","webpack://ZemesnomaMap/./node_modules/ol/geom/flat/area.js","webpack://ZemesnomaMap/./node_modules/ol/geom/flat/center.js","webpack://ZemesnomaMap/./node_modules/ol/geom/flat/closest.js","webpack://ZemesnomaMap/./node_modules/ol/geom/flat/contains.js","webpack://ZemesnomaMap/./node_modules/ol/geom/flat/deflate.js","webpack://ZemesnomaMap/./node_modules/ol/geom/flat/inflate.js","webpack://ZemesnomaMap/./node_modules/ol/geom/flat/interiorpoint.js","webpack://ZemesnomaMap/./node_modules/ol/geom/flat/interpolate.js","webpack://ZemesnomaMap/./node_modules/ol/geom/flat/intersectsextent.js","webpack://ZemesnomaMap/./node_modules/ol/geom/flat/length.js","webpack://ZemesnomaMap/./node_modules/ol/geom/flat/reverse.js","webpack://ZemesnomaMap/./node_modules/ol/geom/flat/orient.js","webpack://ZemesnomaMap/./node_modules/ol/geom/flat/segments.js","webpack://ZemesnomaMap/./node_modules/ol/geom/flat/simplify.js","webpack://ZemesnomaMap/./node_modules/ol/geom/flat/transform.js","webpack://ZemesnomaMap/./node_modules/ol/has.js","webpack://ZemesnomaMap/./node_modules/ol/Geolocation.js","webpack://ZemesnomaMap/./node_modules/ol/Kinetic.js","webpack://ZemesnomaMap/./node_modules/ol/interaction/Property.js","webpack://ZemesnomaMap/./node_modules/ol/interaction/Interaction.js","webpack://ZemesnomaMap/./node_modules/ol/interaction/DoubleClickZoom.js","webpack://ZemesnomaMap/./node_modules/ol/interaction/Pointer.js","webpack://ZemesnomaMap/./node_modules/ol/events/condition.js","webpack://ZemesnomaMap/./node_modules/ol/interaction/DragPan.js","webpack://ZemesnomaMap/./node_modules/ol/interaction/DragRotate.js","webpack://ZemesnomaMap/./node_modules/ol/render/Box.js","webpack://ZemesnomaMap/./node_modules/ol/interaction/DragBox.js","webpack://ZemesnomaMap/./node_modules/ol/interaction/DragZoom.js","webpack://ZemesnomaMap/./node_modules/ol/interaction/KeyboardPan.js","webpack://ZemesnomaMap/./node_modules/ol/events/KeyCode.js","webpack://ZemesnomaMap/./node_modules/ol/interaction/KeyboardZoom.js","webpack://ZemesnomaMap/./node_modules/ol/interaction/MouseWheelZoom.js","webpack://ZemesnomaMap/./node_modules/ol/interaction/PinchRotate.js","webpack://ZemesnomaMap/./node_modules/ol/interaction/PinchZoom.js","webpack://ZemesnomaMap/./node_modules/ol/Map.js","webpack://ZemesnomaMap/./node_modules/ol/interaction.js","webpack://ZemesnomaMap/./node_modules/ol/webgl.js","webpack://ZemesnomaMap/./node_modules/ol/webgl/Buffer.js","webpack://ZemesnomaMap/./node_modules/ol/webgl/ContextEventType.js","webpack://ZemesnomaMap/./node_modules/ol/webgl/PostProcessingPass.js","webpack://ZemesnomaMap/./node_modules/ol/vec/mat4.js","webpack://ZemesnomaMap/./node_modules/ol/webgl/Helper.js","webpack://ZemesnomaMap/./node_modules/ol/renderer/webgl/Layer.js","webpack://ZemesnomaMap/./node_modules/ol/webgl/RenderTarget.js","webpack://ZemesnomaMap/./node_modules/ol/renderer/webgl/PointsLayer.js","webpack://ZemesnomaMap/./node_modules/ol/worker/webgl.js","webpack://ZemesnomaMap/./node_modules/ol/layer/Heatmap.js","webpack://ZemesnomaMap/./node_modules/ol/layer/VectorTileRenderType.js","webpack://ZemesnomaMap/./node_modules/ol/renderer/canvas/VectorTileLayer.js","webpack://ZemesnomaMap/./node_modules/ol/layer/VectorTile.js","webpack://ZemesnomaMap/./node_modules/ol-mapbox-style/dist/index.js","webpack://ZemesnomaMap/./node_modules/ol/layer/MapboxVector.js","webpack://ZemesnomaMap/./node_modules/ol/renderer/canvas/VectorImageLayer.js","webpack://ZemesnomaMap/./node_modules/ol/layer/VectorImage.js","webpack://ZemesnomaMap/./node_modules/ol/webgl/PaletteTexture.js","webpack://ZemesnomaMap/./node_modules/ol/webgl/TileTexture.js","webpack://ZemesnomaMap/./node_modules/ol/renderer/webgl/TileLayer.js","webpack://ZemesnomaMap/./node_modules/ol/style/expressions.js","webpack://ZemesnomaMap/./node_modules/ol/webgl/ShaderBuilder.js","webpack://ZemesnomaMap/./node_modules/ol/layer/WebGLPoints.js","webpack://ZemesnomaMap/./node_modules/ol/layer/WebGLTile.js","webpack://ZemesnomaMap/./node_modules/ol/layer/Base.js","webpack://ZemesnomaMap/./node_modules/ol/layer/BaseTile.js","webpack://ZemesnomaMap/./node_modules/ol/layer/BaseVector.js","webpack://ZemesnomaMap/./node_modules/ol/geom/flat/geodesic.js","webpack://ZemesnomaMap/./node_modules/ol/layer/Graticule.js","webpack://ZemesnomaMap/./node_modules/ol/render.js","webpack://ZemesnomaMap/./node_modules/ol/layer/Group.js","webpack://ZemesnomaMap/./node_modules/ol/layer/BaseImage.js","webpack://ZemesnomaMap/./node_modules/ol/layer/Image.js","webpack://ZemesnomaMap/./node_modules/ol/layer/Layer.js","webpack://ZemesnomaMap/./node_modules/ol/layer/Property.js","webpack://ZemesnomaMap/./node_modules/ol/layer/Tile.js","webpack://ZemesnomaMap/./node_modules/ol/layer/TileProperty.js","webpack://ZemesnomaMap/./node_modules/ol/layer/Vector.js","webpack://ZemesnomaMap/./node_modules/ol/math.js","webpack://ZemesnomaMap/./node_modules/ol/net.js","webpack://ZemesnomaMap/./node_modules/ol/obj.js","webpack://ZemesnomaMap/./node_modules/ol/pointer/EventType.js","webpack://ZemesnomaMap/./node_modules/ol/proj/epsg3857.js","webpack://ZemesnomaMap/./node_modules/ol/proj/epsg4326.js","webpack://ZemesnomaMap/./node_modules/ol/proj/projections.js","webpack://ZemesnomaMap/./node_modules/ol/proj.js","webpack://ZemesnomaMap/./node_modules/ol/proj/Projection.js","webpack://ZemesnomaMap/./node_modules/ol/proj/Units.js","webpack://ZemesnomaMap/./node_modules/ol/proj/proj4.js","webpack://ZemesnomaMap/./node_modules/ol/proj/transforms.js","webpack://ZemesnomaMap/./node_modules/ol/render/Event.js","webpack://ZemesnomaMap/./node_modules/ol/render/EventType.js","webpack://ZemesnomaMap/./node_modules/ol/render/Feature.js","webpack://ZemesnomaMap/./node_modules/ol/render/VectorContext.js","webpack://ZemesnomaMap/./node_modules/ol/render/canvas.js","webpack://ZemesnomaMap/./node_modules/ol/render/canvas/Builder.js","webpack://ZemesnomaMap/./node_modules/ol/render/canvas/ImageBuilder.js","webpack://ZemesnomaMap/./node_modules/ol/render/canvas/LineStringBuilder.js","webpack://ZemesnomaMap/./node_modules/ol/render/canvas/PolygonBuilder.js","webpack://ZemesnomaMap/./node_modules/ol/render/canvas/BuilderGroup.js","webpack://ZemesnomaMap/./node_modules/ol/geom/flat/textpath.js","webpack://ZemesnomaMap/./node_modules/ol/render/canvas/Executor.js","webpack://ZemesnomaMap/./node_modules/ol/render/canvas/ExecutorGroup.js","webpack://ZemesnomaMap/./node_modules/ol/render/canvas/Immediate.js","webpack://ZemesnomaMap/./node_modules/ol/render/canvas/Instruction.js","webpack://ZemesnomaMap/./node_modules/ol/geom/flat/straightchunk.js","webpack://ZemesnomaMap/./node_modules/ol/render/canvas/TextBuilder.js","webpack://ZemesnomaMap/./node_modules/ol/render/canvas/hitdetect.js","webpack://ZemesnomaMap/./node_modules/ol/renderer/Map.js","webpack://ZemesnomaMap/./node_modules/ol/renderer/Composite.js","webpack://ZemesnomaMap/./node_modules/ol/renderer/Layer.js","webpack://ZemesnomaMap/./node_modules/ol/renderer/canvas/ImageLayer.js","webpack://ZemesnomaMap/./node_modules/ol/renderer/canvas/Layer.js","webpack://ZemesnomaMap/./node_modules/ol/renderer/canvas/TileLayer.js","webpack://ZemesnomaMap/./node_modules/ol/renderer/canvas/VectorLayer.js","webpack://ZemesnomaMap/./node_modules/ol/renderer/canvas/common.js","webpack://ZemesnomaMap/./node_modules/ol/renderer/vector.js","webpack://ZemesnomaMap/./node_modules/ol/reproj.js","webpack://ZemesnomaMap/./node_modules/ol/reproj/Tile.js","webpack://ZemesnomaMap/./node_modules/ol/reproj/Triangulation.js","webpack://ZemesnomaMap/./node_modules/ol/reproj/common.js","webpack://ZemesnomaMap/./node_modules/ol/rotationconstraint.js","webpack://ZemesnomaMap/./node_modules/ol/size.js","webpack://ZemesnomaMap/./node_modules/ol/source/BingMaps.js","webpack://ZemesnomaMap/./node_modules/ol/source/XYZ.js","webpack://ZemesnomaMap/./node_modules/ol/source/CartoDB.js","webpack://ZemesnomaMap/./node_modules/ol/source/Cluster.js","webpack://ZemesnomaMap/./node_modules/ol/source/DataTile.js","webpack://ZemesnomaMap/./node_modules/geotiff/dist-module/compression/index.js","webpack://ZemesnomaMap/./node_modules/geotiff/dist-module/pool.js","webpack://ZemesnomaMap/./node_modules/@petamoriken/float16/src/_util/primordials.mjs","webpack://ZemesnomaMap/./node_modules/@petamoriken/float16/src/_util/arrayIterator.mjs","webpack://ZemesnomaMap/./node_modules/@petamoriken/float16/src/_util/converter.mjs","webpack://ZemesnomaMap/./node_modules/@petamoriken/float16/src/DataView.mjs","webpack://ZemesnomaMap/./node_modules/geotiff/dist-module/resample.js","webpack://ZemesnomaMap/./node_modules/geotiff/dist-module/geotiffimage.js","webpack://ZemesnomaMap/./node_modules/geotiff/dist-module/rgb.js","webpack://ZemesnomaMap/./node_modules/geotiff/dist-module/dataview64.js","webpack://ZemesnomaMap/./node_modules/geotiff/dist-module/dataslice.js","webpack://ZemesnomaMap/./node_modules/geotiff/dist-module/source/httputils.js","webpack://ZemesnomaMap/./node_modules/geotiff/dist-module/source/basesource.js","webpack://ZemesnomaMap/./node_modules/geotiff/dist-module/utils.js","webpack://ZemesnomaMap/./node_modules/geotiff/dist-module/source/blockedsource.js","webpack://ZemesnomaMap/./node_modules/geotiff/dist-module/source/client/base.js","webpack://ZemesnomaMap/./node_modules/geotiff/dist-module/source/client/fetch.js","webpack://ZemesnomaMap/./node_modules/geotiff/dist-module/source/client/xhr.js","webpack://ZemesnomaMap/./node_modules/geotiff/dist-module/source/client/http.js","webpack://ZemesnomaMap/./node_modules/geotiff/dist-module/source/remote.js","webpack://ZemesnomaMap/./node_modules/geotiff/dist-module/source/filereader.js","webpack://ZemesnomaMap/./node_modules/geotiff/dist-module/geotiff.js","webpack://ZemesnomaMap/./node_modules/ol/source/GeoTIFF.js","webpack://ZemesnomaMap/./node_modules/ol/source/Zoomify.js","webpack://ZemesnomaMap/./node_modules/ol/source/IIIF.js","webpack://ZemesnomaMap/./node_modules/ol/reproj/Image.js","webpack://ZemesnomaMap/./node_modules/ol/source/Image.js","webpack://ZemesnomaMap/./node_modules/ol/uri.js","webpack://ZemesnomaMap/./node_modules/ol/source/ImageArcGISRest.js","webpack://ZemesnomaMap/./node_modules/ol/source/ImageCanvas.js","webpack://ZemesnomaMap/./node_modules/ol/source/ImageMapGuide.js","webpack://ZemesnomaMap/./node_modules/ol/source/ImageStatic.js","webpack://ZemesnomaMap/./node_modules/ol/source/wms.js","webpack://ZemesnomaMap/./node_modules/ol/source/ImageWMS.js","webpack://ZemesnomaMap/./node_modules/ol/source/OSM.js","webpack://ZemesnomaMap/./node_modules/ol/source/Raster.js","webpack://ZemesnomaMap/./node_modules/ol/source/Stamen.js","webpack://ZemesnomaMap/./node_modules/ol/source/TileArcGISRest.js","webpack://ZemesnomaMap/./node_modules/ol/source/TileDebug.js","webpack://ZemesnomaMap/./node_modules/ol/source/TileWMS.js","webpack://ZemesnomaMap/./node_modules/ol/source/UTFGrid.js","webpack://ZemesnomaMap/./node_modules/ol/source/WMTS.js","webpack://ZemesnomaMap/./node_modules/ol/source.js","webpack://ZemesnomaMap/./node_modules/ol/source/Source.js","webpack://ZemesnomaMap/./node_modules/ol/source/Tile.js","webpack://ZemesnomaMap/./node_modules/ol/source/TileEventType.js","webpack://ZemesnomaMap/./node_modules/ol/source/TileImage.js","webpack://ZemesnomaMap/./node_modules/ol/source/TileJSON.js","webpack://ZemesnomaMap/./node_modules/ol/source/UrlTile.js","webpack://ZemesnomaMap/./node_modules/ol/structs/RBush.js","webpack://ZemesnomaMap/./node_modules/ol/loadingstrategy.js","webpack://ZemesnomaMap/./node_modules/ol/source/Vector.js","webpack://ZemesnomaMap/./node_modules/ol/source/VectorEventType.js","webpack://ZemesnomaMap/./node_modules/ol/source/VectorTile.js","webpack://ZemesnomaMap/./node_modules/ol/sphere.js","webpack://ZemesnomaMap/./node_modules/ol/string.js","webpack://ZemesnomaMap/./node_modules/ol/structs/LRUCache.js","webpack://ZemesnomaMap/./node_modules/ol/style/Circle.js","webpack://ZemesnomaMap/./node_modules/ol/style/Fill.js","webpack://ZemesnomaMap/./node_modules/ol/style/Icon.js","webpack://ZemesnomaMap/./node_modules/ol/style/IconAnchorUnits.js","webpack://ZemesnomaMap/./node_modules/ol/style/IconImage.js","webpack://ZemesnomaMap/./node_modules/ol/style/IconImageCache.js","webpack://ZemesnomaMap/./node_modules/ol/style/IconOrigin.js","webpack://ZemesnomaMap/./node_modules/ol/style/Image.js","webpack://ZemesnomaMap/./node_modules/ol/style/RegularShape.js","webpack://ZemesnomaMap/./node_modules/ol/style/Stroke.js","webpack://ZemesnomaMap/./node_modules/ol/style/Style.js","webpack://ZemesnomaMap/./node_modules/ol/style/Text.js","webpack://ZemesnomaMap/./node_modules/ol/style/TextPlacement.js","webpack://ZemesnomaMap/./node_modules/ol/tilecoord.js","webpack://ZemesnomaMap/./node_modules/ol/tilegrid.js","webpack://ZemesnomaMap/./node_modules/ol/tilegrid/TileGrid.js","webpack://ZemesnomaMap/./node_modules/ol/tilegrid/common.js","webpack://ZemesnomaMap/./node_modules/ol/tileurlfunction.js","webpack://ZemesnomaMap/./node_modules/ol/transform.js","webpack://ZemesnomaMap/./node_modules/ol/util.js","webpack://ZemesnomaMap/webpack/bootstrap","webpack://ZemesnomaMap/webpack/runtime/define property getters","webpack://ZemesnomaMap/webpack/runtime/ensure chunk","webpack://ZemesnomaMap/webpack/runtime/get javascript chunk filename","webpack://ZemesnomaMap/webpack/runtime/get mini-css chunk filename","webpack://ZemesnomaMap/webpack/runtime/global","webpack://ZemesnomaMap/webpack/runtime/hasOwnProperty shorthand","webpack://ZemesnomaMap/webpack/runtime/make namespace object","webpack://ZemesnomaMap/webpack/runtime/publicPath","webpack://ZemesnomaMap/webpack/runtime/jsonp chunk loading","webpack://ZemesnomaMap/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ZemesnomaMap\"] = factory();\n\telse\n\t\troot[\"ZemesnomaMap\"] = factory();\n})(self, () => {\nreturn ","var inProgress = {};\nvar dataWebpackPrefix = \"ZemesnomaMap:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"proj4\")):\"function\"==typeof define&&define.amd?define(\"geo-js\",[\"proj4\"],t):\"object\"==typeof exports?exports[\"geo-js\"]=t(require(\"proj4\")):e[\"geo-js\"]=t(e.proj4)}(window,(function(e){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=1)}([function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.EpsgCode=t.CoordinateSystem=void 0,function(e){e.WGS84=\"dd\",e.LKS92=\"lks\",e.LKS92Math=\"lksrev\",e.DM=\"ddm\",e.DMS=\"dms\",e.MGRS=\"mgrs\"}(t.CoordinateSystem||(t.CoordinateSystem={})),function(e){e.Lks92=\"EPSG:3059\",e.Wgs84=\"EPSG:4326\",e.WebMercator=\"EPSG:3857\"}(t.EpsgCode||(t.EpsgCode={}))},function(e,t,r){\"use strict\";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,\"default\",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)\"default\"!==r&&Object.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,\"__esModule\",{value:!0}),t.LayerInfo=void 0;var a=o(r(2));t.LayerInfo=a;var s=r(3);Object.defineProperty(t,\"coordinatesConverter\",{enumerable:!0,get:function(){return s.coordinatesConverter}});var u=r(6);Object.defineProperty(t,\"GeoJsonGeometryType\",{enumerable:!0,get:function(){return u.GeoJsonGeometryType}});var l=r(7);Object.defineProperty(t,\"Config\",{enumerable:!0,get:function(){return l.Config}});var c=r(8);Object.defineProperty(t,\"Query\",{enumerable:!0,get:function(){return c.Query}});var f=r(9);Object.defineProperty(t,\"Layer\",{enumerable:!0,get:function(){return f.Layer}});var d=r(10);Object.defineProperty(t,\"Feature\",{enumerable:!0,get:function(){return d.Feature}});var h=r(0);Object.defineProperty(t,\"CoordinateSystem\",{enumerable:!0,get:function(){return h.CoordinateSystem}}),Object.defineProperty(t,\"EpsgCode\",{enumerable:!0,get:function(){return h.EpsgCode}});var g=r(12);Object.defineProperty(t,\"replaceDiacritics\",{enumerable:!0,get:function(){return g.replaceDiacritics}});var p=r(13);Object.defineProperty(t,\"blobToFile\",{enumerable:!0,get:function(){return p.blobToFile}});var y=r(14);Object.defineProperty(t,\"polygonArea\",{enumerable:!0,get:function(){return y.polygonArea}}),Object.defineProperty(t,\"length\",{enumerable:!0,get:function(){return y.length}});var v=r(15);Object.defineProperty(t,\"FormattedDate\",{enumerable:!0,get:function(){return v.FormattedDate}});var m=r(16);Object.defineProperty(t,\"History\",{enumerable:!0,get:function(){return m.History}})},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})},function(e,t,r){\"use strict\";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,\"default\",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)\"default\"!==r&&Object.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,\"__esModule\",{value:!0}),t.coordinatesConverter=void 0;var a=o(r(4)),s=r(0),u=r(5),l=a.default;l.defs(s.EpsgCode.Lks92,\"+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_0=-6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs\");var c={EPSG4326:l.Proj(s.EpsgCode.Wgs84),EPSG3857:l.Proj(s.EpsgCode.WebMercator),EPSG3059:l.Proj(s.EpsgCode.Lks92)},f=new Map;f.set(s.EpsgCode.Lks92,c.EPSG3059).set(s.EpsgCode.Wgs84,c.EPSG4326).set(s.EpsgCode.WebMercator,c.EPSG3857),t.coordinatesConverter={convertLKS92ToWGS84:function(e){var t=l.transform(c.EPSG3059,c.EPSG4326,[e.lng,e.lat]);return{lat:t.y,lng:t.x}},convert:function(e,t,r){var n=f.get(t),i=f.get(r);if(n&&i){var o=l.transform(n,i,e);return t===s.EpsgCode.Wgs84?[o.y,o.x]:[o.x,o.y]}return e},convertLineString:function(e,t,r){for(var n=[],i=0,o=e;i180&&(a.lng=360-a.lng,a.lng_neg=!a.lng_neg),r===s.CoordinateSystem.DM)o=(n=parseInt(a.lng))+\"º \"+this._format(\"00.000\",60*(a.lng-n))+\"'\",i=(n=parseInt(a.lat))+\"º \"+this._format(\"00.000\",60*(a.lat-n))+\"'\";else if(r===s.CoordinateSystem.DMS){n=parseInt(a.lng);var f=Math.trunc(60*(a.lng-n)),d=3600*(a.lng-n-f/60);o=n+\"º \"+this._format(\"00\",f)+\"' \"+this._format(\"00.0\",d)+\"''\",n=parseInt(a.lat);var h=Math.trunc(60*(a.lat-n)),g=3600*(a.lat-n-h/60);i=n+\"º \"+this._format(\"00\",h)+\"' \"+this._format(\"00.0\",g)+\"''\"}else if(r===s.CoordinateSystem.WGS84)o=this._format(\"#0.00000\",a.lng)+\"º\",i=this._format(\"##0.00000\",a.lat)+\"º\";else if(r===s.CoordinateSystem.LKS92){var p=l.transform(c.EPSG4326,c.EPSG3059,[a.lng,a.lat]);i=Math.round(p.y)+\" m\",o=Math.round(p.x)+\" m\"}else if(r===s.CoordinateSystem.MGRS){var y=u.forward([a.lng,a.lat]);return y.substring(0,3)+\" \"+y.substring(3,5)+\" \"+y.substring(5,10)+\" \"+y.substring(10)}return{x:(!t.latlngDesignators&&a.lng_neg?\"-\":\"\")+o+(t.latlngDesignators?a.lng_neg?\" W\":\" E\":\"\"),y:(!t.latlngDesignators&&a.lat_neg?\"-\":\"\")+i+(t.latlngDesignators?a.lat_neg?\" S\":\" N\":\"\")}},_format:function(e,t){if(!e||isNaN(+t))return t;var r=(t=\"-\"==e.charAt(0)?-t:+t)<0?t=-t:0,n=e.match(/[^\\d\\-\\+#]/g),i=n&&n[n.length-1]||\".\",o=n&&n[1]&&n[0]||\",\",a=(e=e.split(i),t.toFixed(e[1]&&e[1].length));a=+a+\"\";var s=e[1]&&e[1].lastIndexOf(\"0\"),u=a.split(\".\");(!u[1]||u[1]&&u[1].length<=s)&&(a=(+a).toFixed(s+1));var l=e[0].split(o);e[0]=l.join(\"\");var c=e[0]&&e[0].indexOf(\"0\");if(c>-1)for(;u[0].length90&&(g=g-90+n-1,y=!0),(g===i||fi||(g>i||fo||(g>o||f90&&(g=g-90+n-1),p>86?(p=p-86+n-1,y=!0):y=!1,(p===i||di||(p>i||do||(p>o||d86&&(p=p-86+n-1),String.fromCharCode(g)+String.fromCharCode(p))+r.substr(r.length-5,t)+a.substr(a.length-5,t);var s,u,l,c,f,d,g,p,y;var v,m,b,S,M,P}(function(e){var t,r,n,i,o,a,s,u=e.lat,c=e.lon,f=6378137,h=l(u),g=l(c);s=Math.floor((c+180)/6)+1,180===c&&(s=60);u>=56&&u<64&&c>=3&&c<12&&(s=32);u>=72&&u<84&&(c>=0&&c<9?s=31:c>=9&&c<21?s=33:c>=21&&c<33?s=35:c>=33&&c<42&&(s=37));a=l(6*(s-1)-180+3),.006739496752268451,t=f/Math.sqrt(1-.00669438*Math.sin(h)*Math.sin(h)),r=Math.tan(h)*Math.tan(h),n=.006739496752268451*Math.cos(h)*Math.cos(h),i=Math.cos(h)*(g-a),o=f*(.9983242984503243*h-.002514607064228144*Math.sin(2*h)+2639046602129982e-21*Math.sin(4*h)-3.418046101696858e-9*Math.sin(6*h));var p=.9996*t*(i+(1-r+n)*i*i*i/6+(5-18*r+r*r+72*n-.39089081163157013)*i*i*i*i*i/120)+5e5,y=.9996*(o+t*Math.tan(h)*(i*i/2+(5-r+9*n+4*n*n)*i*i*i*i/24+(61-58*r+r*r+600*n-2.2240339282485886)*i*i*i*i*i*i/720));u<0&&(y+=1e7);return{northing:Math.round(y),easting:Math.round(p),zoneNumber:s,zoneLetter:d(u)}}({lat:e[1],lon:e[0]}),t)}function s(e){var t=f(g(e.toUpperCase()));return t.lat&&t.lon?[t.lon,t.lat,t.lon,t.lat]:[t.left,t.bottom,t.right,t.top]}function u(e){var t=f(g(e.toUpperCase()));return t.lat&&t.lon?[t.lon,t.lat]:[(t.left+t.right)/2,(t.top+t.bottom)/2]}function l(e){return e*(Math.PI/180)}function c(e){return e/Math.PI*180}function f(e){var t=e.northing,r=e.easting,n=e.zoneLetter,i=e.zoneNumber;if(i<0||i>60)return null;var o,a,s,u,l,d,h,g,p=6378137,y=(1-Math.sqrt(.99330562))/(1+Math.sqrt(.99330562)),v=r-5e5,m=t;n<\"N\"&&(m-=1e7),d=6*(i-1)-180+3,g=(h=m/.9996/6367449.145945056)+(3*y/2-27*y*y*y/32)*Math.sin(2*h)+(21*y*y/16-55*y*y*y*y/32)*Math.sin(4*h)+151*y*y*y/96*Math.sin(6*h),o=p/Math.sqrt(1-.00669438*Math.sin(g)*Math.sin(g)),a=Math.tan(g)*Math.tan(g),s=.006739496752268451*Math.cos(g)*Math.cos(g),u=.99330562*p/Math.pow(1-.00669438*Math.sin(g)*Math.sin(g),1.5),l=v/(.9996*o);var b=g-o*Math.tan(g)/u*(l*l/2-(5+3*a+10*s-4*s*s-.06065547077041606)*l*l*l*l/24+(61+90*a+298*s+45*a*a-1.6983531815716497-3*s*s)*l*l*l*l*l*l/720);b=c(b);var S,M=(l-(1+2*a+s)*l*l*l/6+(5-2*s+28*a-3*s*s+.05391597401814761+24*a*a)*l*l*l*l*l/120)/Math.cos(g);if(M=d+c(M),e.accuracy){var P=f({northing:e.northing+e.accuracy,easting:e.easting+e.accuracy,zoneLetter:e.zoneLetter,zoneNumber:e.zoneNumber});S={top:P.lat,right:P.lon,bottom:b,left:M}}else S={lat:b,lon:M};return S}function d(e){var t=\"Z\";return 84>=e&&e>=72?t=\"X\":72>e&&e>=64?t=\"W\":64>e&&e>=56?t=\"V\":56>e&&e>=48?t=\"U\":48>e&&e>=40?t=\"T\":40>e&&e>=32?t=\"S\":32>e&&e>=24?t=\"R\":24>e&&e>=16?t=\"Q\":16>e&&e>=8?t=\"P\":8>e&&e>=0?t=\"N\":0>e&&e>=-8?t=\"M\":-8>e&&e>=-16?t=\"L\":-16>e&&e>=-24?t=\"K\":-24>e&&e>=-32?t=\"J\":-32>e&&e>=-40?t=\"H\":-40>e&&e>=-48?t=\"G\":-48>e&&e>=-56?t=\"F\":-56>e&&e>=-64?t=\"E\":-64>e&&e>=-72?t=\"D\":-72>e&&e>=-80&&(t=\"C\"),t}function h(e){var t=e%6;return 0===t&&(t=6),t}function g(e){if(e&&0===e.length)throw\"MGRSPoint coverting from nothing\";for(var t,r=e.length,a=null,s=\"\",u=0;!/[A-Z]/.test(t=e.charAt(u));){if(u>=2)throw\"MGRSPoint bad conversion from: \"+e;s+=t,u++}var l=parseInt(s,10);if(0===u||u+3>r)throw\"MGRSPoint bad conversion from: \"+e;var c=e.charAt(u++);if(c<=\"A\"||\"B\"===c||\"Y\"===c||c>=\"Z\"||\"I\"===c||\"O\"===c)throw\"MGRSPoint zone letter \"+c+\" not handled: \"+e;a=e.substring(u,u+=2);for(var f=h(l),d=function(e,t){var r=\"AJSAJS\".charCodeAt(t-1),a=1e5,s=!1;for(;r!==e.charCodeAt(0);){if(++r===i&&r++,r===o&&r++,r>90){if(s)throw\"Bad character: \"+e;r=n,s=!0}a+=1e5}return a}(a.charAt(0),f),g=function(e,t){if(e>\"V\")throw\"MGRSPoint given invalid Northing \"+e;var r=\"AFAFAF\".charCodeAt(t-1),a=0,s=!1;for(;r!==e.charCodeAt(0);){if(++r===i&&r++,r===o&&r++,r>86){if(s)throw\"Bad character: \"+e;r=n,s=!0}a+=1e5}return a}(a.charAt(1),f);g0&&(v=1e5/Math.pow(10,S),m=e.substring(u,u+S),M=parseFloat(m)*v,b=e.substring(u+S),P=parseFloat(b)*v),{easting:M+d,northing:P+g,zoneLetter:c,zoneNumber:l,accuracy:v}}function p(e){var t;switch(e){case\"C\":t=11e5;break;case\"D\":t=2e6;break;case\"E\":t=28e5;break;case\"F\":t=37e5;break;case\"G\":t=46e5;break;case\"H\":t=55e5;break;case\"J\":t=64e5;break;case\"K\":t=73e5;break;case\"L\":t=82e5;break;case\"M\":t=91e5;break;case\"N\":t=0;break;case\"P\":t=8e5;break;case\"Q\":t=17e5;break;case\"R\":t=26e5;break;case\"S\":t=35e5;break;case\"T\":t=44e5;break;case\"U\":t=53e5;break;case\"V\":t=62e5;break;case\"W\":t=7e6;break;case\"X\":t=79e5;break;default:t=-1}if(t>=0)return t;throw\"Invalid zone letter: \"+e}t.default={forward:a,inverse:s,toPoint:u}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.GeoJsonGeometryType=void 0,function(e){e.Polygon=\"Polygon\",e.LineString=\"LineString\",e.Point=\"Point\"}(t.GeoJsonGeometryType||(t.GeoJsonGeometryType={}))},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.Config=void 0;var n=function(){function e(e){this.config=e}return e.prototype.getConfig=function(){return this.config},e.prototype.getLayerConfig=function(e,t){if(null!=e&&null!=t){var r=this.getServiceConfig(e);if(r&&r.layers&&r.layers.length)return r.layers.find((function(e){return e.id+\"\"==t+\"\"}))}},e.prototype.getServiceConfig=function(e){return this.config.services.find((function(t){return t.id===e}))},e.prototype.getSearchGroupLayerConfigs=function(e){for(var t=[],r=0,n=this.getSearchGroupConfig(e).services;r0&&r.push({layerConfigs:a,serviceId:o.serviceId})}return r},e.prototype.getServiceHiddenFieldNames=function(e){return this.getServiceConfig(e).defaultHiddenFields||void 0},e.prototype.getServiceReadOnlyFieldNames=function(e){return this.getServiceConfig(e).defaultReadOnlyFields||void 0},e.prototype.hasEditableLayers=function(){return this.getEditableLayers().length>0},e.prototype.getEditableLayers=function(){var e=this,t=[];return this.config.serviceGroups.forEach((function(r){r.isBasemapGroup||r.services.forEach((function(r){var n=e.getServiceConfig(r);n&&n.layers&&n.layers.length&&n.layers.forEach((function(n){e.isLayerEditable(n)&&t.push({serviceId:r,config:n})}))}))})),t},e.prototype.isServiceEditable=function(e){var t=this;return!(!e.layers||!e.layers.length)&&e.layers.some((function(e){return t.isLayerEditable(e)}))},e.prototype.isLayerEditable=function(e){return e.edit||e.editGeometry||e.editAttributes},e.prototype.getGroupedServices=function(){for(var e=[],t=0,r=this.config.serviceGroups;t=2&&(s=(\"0\"+f[1]).slice(-2)+\".\"+(\"0\"+f[0]).slice(-2)+\".\"+f[2])}}else s=this.resolveFieldValue(s,a,r);var d=this.resolveFieldAlias(a,r.fields);d?t[d]=s:t[a]=s}}return t},e.prototype.getFeatureId=function(e,t){if(!e)return null;var r=e.fields.find((function(e){return e.type===n.EsriFieldType.OID}));if(r)for(var i in t)if(i===r.name)return t[i];return null},e.prototype.parseDisplayExpression=function(e,t,r){for(var n=t,i=n.split(\"[\"),o=1;o0?r[0].alias:null},e.prototype.isString=function(e){return\"string\"==typeof e||e instanceof String},e}();t.Feature=i},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.IdentifyAttributeName=t.EsriFieldType=void 0,function(e){e.Date=\"esriFieldTypeDate\",e.Double=\"esriFieldTypeDouble\",e.Single=\"esriFieldTypeSingle\",e.OID=\"esriFieldTypeOID\"}(t.EsriFieldType||(t.EsriFieldType={})),function(e){e.ActualisationDate=\"GEOM_ACTUAL_DATE\"}(t.IdentifyAttributeName||(t.IdentifyAttributeName={}))},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.replaceDiacritics=void 0,t.replaceDiacritics=function(e){return e.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g,\"\")}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.blobToFile=void 0,t.blobToFile=function(e,t){var r=e;return r.lastModifiedDate=new Date,r.name=t,e}},function(e,t,r){\"use strict\";function n(e){if(e.length<3)return 0;for(var t=0,r=e[0][0],n=1;n0&&(t.currentPosition--,t.isForwardEnabled=!0,0===t.currentPosition&&(t.isBackEnabled=!1),t.onChange(t.history[t.currentPosition]))},this.forward=function(){t.currentPositionthis.limit&&(this.history=this.history.splice(-5),this.currentPosition=this.limit-1),this.currentPosition>0&&(this.isBackEnabled=!0)},e.prototype.clear=function(){this.history=[],this.currentPosition=-1,this.isBackEnabled=!1,this.isForwardEnabled=!1},e}();t.History=n}])}));","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar helpers_1 = require(\"@turf/helpers\");\nvar invariant_1 = require(\"@turf/invariant\");\nvar lineclip_1 = require(\"./lib/lineclip\");\n/**\n * Takes a {@link Feature} and a bbox and clips the feature to the bbox using\n * [lineclip](https://github.com/mapbox/lineclip).\n * May result in degenerate edges when clipping Polygons.\n *\n * @name bboxClip\n * @param {Feature} feature feature to clip to the bbox\n * @param {BBox} bbox extent in [minX, minY, maxX, maxY] order\n * @returns {Feature} clipped Feature\n * @example\n * var bbox = [0, 0, 10, 10];\n * var poly = turf.polygon([[[2, 2], [8, 4], [12, 8], [3, 7], [2, 2]]]);\n *\n * var clipped = turf.bboxClip(poly, bbox);\n *\n * //addToMap\n * var addToMap = [bbox, poly, clipped]\n */\nfunction bboxClip(feature, bbox) {\n var geom = invariant_1.getGeom(feature);\n var type = geom.type;\n var properties = feature.type === \"Feature\" ? feature.properties : {};\n var coords = geom.coordinates;\n switch (type) {\n case \"LineString\":\n case \"MultiLineString\": {\n var lines_1 = [];\n if (type === \"LineString\") {\n coords = [coords];\n }\n coords.forEach(function (line) {\n lineclip_1.lineclip(line, bbox, lines_1);\n });\n if (lines_1.length === 1) {\n return helpers_1.lineString(lines_1[0], properties);\n }\n return helpers_1.multiLineString(lines_1, properties);\n }\n case \"Polygon\":\n return helpers_1.polygon(clipPolygon(coords, bbox), properties);\n case \"MultiPolygon\":\n return helpers_1.multiPolygon(coords.map(function (poly) {\n return clipPolygon(poly, bbox);\n }), properties);\n default:\n throw new Error(\"geometry \" + type + \" not supported\");\n }\n}\nexports.default = bboxClip;\nfunction clipPolygon(rings, bbox) {\n var outRings = [];\n for (var _i = 0, rings_1 = rings; _i < rings_1.length; _i++) {\n var ring = rings_1[_i];\n var clipped = lineclip_1.polygonclip(ring, bbox);\n if (clipped.length > 0) {\n if (clipped[0][0] !== clipped[clipped.length - 1][0] ||\n clipped[0][1] !== clipped[clipped.length - 1][1]) {\n clipped.push(clipped[0]);\n }\n if (clipped.length >= 4) {\n outRings.push(clipped);\n }\n }\n }\n return outRings;\n}\n","\"use strict\";\n// Cohen-Sutherland line clipping algorithm, adapted to efficiently\n// handle polylines rather than just segments\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction lineclip(points, bbox, result) {\n var len = points.length, codeA = bitCode(points[0], bbox), part = [], i, codeB, lastCode;\n var a;\n var b;\n if (!result)\n result = [];\n for (i = 1; i < len; i++) {\n a = points[i - 1];\n b = points[i];\n codeB = lastCode = bitCode(b, bbox);\n while (true) {\n if (!(codeA | codeB)) {\n // accept\n part.push(a);\n if (codeB !== lastCode) {\n // segment went outside\n part.push(b);\n if (i < len - 1) {\n // start a new line\n result.push(part);\n part = [];\n }\n }\n else if (i === len - 1) {\n part.push(b);\n }\n break;\n }\n else if (codeA & codeB) {\n // trivial reject\n break;\n }\n else if (codeA) {\n // a outside, intersect with clip edge\n a = intersect(a, b, codeA, bbox);\n codeA = bitCode(a, bbox);\n }\n else {\n // b outside\n b = intersect(a, b, codeB, bbox);\n codeB = bitCode(b, bbox);\n }\n }\n codeA = lastCode;\n }\n if (part.length)\n result.push(part);\n return result;\n}\nexports.lineclip = lineclip;\n// Sutherland-Hodgeman polygon clipping algorithm\nfunction polygonclip(points, bbox) {\n var result, edge, prev, prevInside, i, p, inside;\n // clip against each side of the clip rectangle\n for (edge = 1; edge <= 8; edge *= 2) {\n result = [];\n prev = points[points.length - 1];\n prevInside = !(bitCode(prev, bbox) & edge);\n for (i = 0; i < points.length; i++) {\n p = points[i];\n inside = !(bitCode(p, bbox) & edge);\n // if segment goes through the clip window, add an intersection\n if (inside !== prevInside)\n result.push(intersect(prev, p, edge, bbox));\n if (inside)\n result.push(p); // add a point if it's inside\n prev = p;\n prevInside = inside;\n }\n points = result;\n if (!points.length)\n break;\n }\n return result;\n}\nexports.polygonclip = polygonclip;\n// intersect a segment against one of the 4 lines that make up the bbox\nfunction intersect(a, b, edge, bbox) {\n return edge & 8\n ? [a[0] + ((b[0] - a[0]) * (bbox[3] - a[1])) / (b[1] - a[1]), bbox[3]] // top\n : edge & 4\n ? [a[0] + ((b[0] - a[0]) * (bbox[1] - a[1])) / (b[1] - a[1]), bbox[1]] // bottom\n : edge & 2\n ? [bbox[2], a[1] + ((b[1] - a[1]) * (bbox[2] - a[0])) / (b[0] - a[0])] // right\n : edge & 1\n ? [bbox[0], a[1] + ((b[1] - a[1]) * (bbox[0] - a[0])) / (b[0] - a[0])] // left\n : null;\n}\n// bit code reflects the point position relative to the bbox:\n// left mid right\n// top 1001 1000 1010\n// mid 0001 0000 0010\n// bottom 0101 0100 0110\nfunction bitCode(p, bbox) {\n var code = 0;\n if (p[0] < bbox[0])\n code |= 1;\n // left\n else if (p[0] > bbox[2])\n code |= 2; // right\n if (p[1] < bbox[1])\n code |= 4;\n // bottom\n else if (p[1] > bbox[3])\n code |= 8; // top\n return code;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * @module helpers\n */\n/**\n * Earth Radius used with the Harvesine formula and approximates using a spherical (non-ellipsoid) Earth.\n *\n * @memberof helpers\n * @type {number}\n */\nexports.earthRadius = 6371008.8;\n/**\n * Unit of measurement factors using a spherical (non-ellipsoid) earth radius.\n *\n * @memberof helpers\n * @type {Object}\n */\nexports.factors = {\n centimeters: exports.earthRadius * 100,\n centimetres: exports.earthRadius * 100,\n degrees: exports.earthRadius / 111325,\n feet: exports.earthRadius * 3.28084,\n inches: exports.earthRadius * 39.37,\n kilometers: exports.earthRadius / 1000,\n kilometres: exports.earthRadius / 1000,\n meters: exports.earthRadius,\n metres: exports.earthRadius,\n miles: exports.earthRadius / 1609.344,\n millimeters: exports.earthRadius * 1000,\n millimetres: exports.earthRadius * 1000,\n nauticalmiles: exports.earthRadius / 1852,\n radians: 1,\n yards: exports.earthRadius * 1.0936,\n};\n/**\n * Units of measurement factors based on 1 meter.\n *\n * @memberof helpers\n * @type {Object}\n */\nexports.unitsFactors = {\n centimeters: 100,\n centimetres: 100,\n degrees: 1 / 111325,\n feet: 3.28084,\n inches: 39.37,\n kilometers: 1 / 1000,\n kilometres: 1 / 1000,\n meters: 1,\n metres: 1,\n miles: 1 / 1609.344,\n millimeters: 1000,\n millimetres: 1000,\n nauticalmiles: 1 / 1852,\n radians: 1 / exports.earthRadius,\n yards: 1.0936133,\n};\n/**\n * Area of measurement factors based on 1 square meter.\n *\n * @memberof helpers\n * @type {Object}\n */\nexports.areaFactors = {\n acres: 0.000247105,\n centimeters: 10000,\n centimetres: 10000,\n feet: 10.763910417,\n hectares: 0.0001,\n inches: 1550.003100006,\n kilometers: 0.000001,\n kilometres: 0.000001,\n meters: 1,\n metres: 1,\n miles: 3.86e-7,\n millimeters: 1000000,\n millimetres: 1000000,\n yards: 1.195990046,\n};\n/**\n * Wraps a GeoJSON {@link Geometry} in a GeoJSON {@link Feature}.\n *\n * @name feature\n * @param {Geometry} geometry input geometry\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a GeoJSON Feature\n * @example\n * var geometry = {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 50]\n * };\n *\n * var feature = turf.feature(geometry);\n *\n * //=feature\n */\nfunction feature(geom, properties, options) {\n if (options === void 0) { options = {}; }\n var feat = { type: \"Feature\" };\n if (options.id === 0 || options.id) {\n feat.id = options.id;\n }\n if (options.bbox) {\n feat.bbox = options.bbox;\n }\n feat.properties = properties || {};\n feat.geometry = geom;\n return feat;\n}\nexports.feature = feature;\n/**\n * Creates a GeoJSON {@link Geometry} from a Geometry string type & coordinates.\n * For GeometryCollection type use `helpers.geometryCollection`\n *\n * @name geometry\n * @param {string} type Geometry Type\n * @param {Array} coordinates Coordinates\n * @param {Object} [options={}] Optional Parameters\n * @returns {Geometry} a GeoJSON Geometry\n * @example\n * var type = \"Point\";\n * var coordinates = [110, 50];\n * var geometry = turf.geometry(type, coordinates);\n * // => geometry\n */\nfunction geometry(type, coordinates, _options) {\n if (_options === void 0) { _options = {}; }\n switch (type) {\n case \"Point\":\n return point(coordinates).geometry;\n case \"LineString\":\n return lineString(coordinates).geometry;\n case \"Polygon\":\n return polygon(coordinates).geometry;\n case \"MultiPoint\":\n return multiPoint(coordinates).geometry;\n case \"MultiLineString\":\n return multiLineString(coordinates).geometry;\n case \"MultiPolygon\":\n return multiPolygon(coordinates).geometry;\n default:\n throw new Error(type + \" is invalid\");\n }\n}\nexports.geometry = geometry;\n/**\n * Creates a {@link Point} {@link Feature} from a Position.\n *\n * @name point\n * @param {Array} coordinates longitude, latitude position (each in decimal degrees)\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a Point feature\n * @example\n * var point = turf.point([-75.343, 39.984]);\n *\n * //=point\n */\nfunction point(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n if (!coordinates) {\n throw new Error(\"coordinates is required\");\n }\n if (!Array.isArray(coordinates)) {\n throw new Error(\"coordinates must be an Array\");\n }\n if (coordinates.length < 2) {\n throw new Error(\"coordinates must be at least 2 numbers long\");\n }\n if (!isNumber(coordinates[0]) || !isNumber(coordinates[1])) {\n throw new Error(\"coordinates must contain numbers\");\n }\n var geom = {\n type: \"Point\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\nexports.point = point;\n/**\n * Creates a {@link Point} {@link FeatureCollection} from an Array of Point coordinates.\n *\n * @name points\n * @param {Array>} coordinates an array of Points\n * @param {Object} [properties={}] Translate these properties to each Feature\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north]\n * associated with the FeatureCollection\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection} Point Feature\n * @example\n * var points = turf.points([\n * [-75, 39],\n * [-80, 45],\n * [-78, 50]\n * ]);\n *\n * //=points\n */\nfunction points(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n return featureCollection(coordinates.map(function (coords) {\n return point(coords, properties);\n }), options);\n}\nexports.points = points;\n/**\n * Creates a {@link Polygon} {@link Feature} from an Array of LinearRings.\n *\n * @name polygon\n * @param {Array>>} coordinates an array of LinearRings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} Polygon Feature\n * @example\n * var polygon = turf.polygon([[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]], { name: 'poly1' });\n *\n * //=polygon\n */\nfunction polygon(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n for (var _i = 0, coordinates_1 = coordinates; _i < coordinates_1.length; _i++) {\n var ring = coordinates_1[_i];\n if (ring.length < 4) {\n throw new Error(\"Each LinearRing of a Polygon must have 4 or more Positions.\");\n }\n for (var j = 0; j < ring[ring.length - 1].length; j++) {\n // Check if first point of Polygon contains two numbers\n if (ring[ring.length - 1][j] !== ring[0][j]) {\n throw new Error(\"First and last Position are not equivalent.\");\n }\n }\n }\n var geom = {\n type: \"Polygon\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\nexports.polygon = polygon;\n/**\n * Creates a {@link Polygon} {@link FeatureCollection} from an Array of Polygon coordinates.\n *\n * @name polygons\n * @param {Array>>>} coordinates an array of Polygon coordinates\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection} Polygon FeatureCollection\n * @example\n * var polygons = turf.polygons([\n * [[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]],\n * [[[-15, 42], [-14, 46], [-12, 41], [-17, 44], [-15, 42]]],\n * ]);\n *\n * //=polygons\n */\nfunction polygons(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n return featureCollection(coordinates.map(function (coords) {\n return polygon(coords, properties);\n }), options);\n}\nexports.polygons = polygons;\n/**\n * Creates a {@link LineString} {@link Feature} from an Array of Positions.\n *\n * @name lineString\n * @param {Array>} coordinates an array of Positions\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} LineString Feature\n * @example\n * var linestring1 = turf.lineString([[-24, 63], [-23, 60], [-25, 65], [-20, 69]], {name: 'line 1'});\n * var linestring2 = turf.lineString([[-14, 43], [-13, 40], [-15, 45], [-10, 49]], {name: 'line 2'});\n *\n * //=linestring1\n * //=linestring2\n */\nfunction lineString(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n if (coordinates.length < 2) {\n throw new Error(\"coordinates must be an array of two or more positions\");\n }\n var geom = {\n type: \"LineString\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\nexports.lineString = lineString;\n/**\n * Creates a {@link LineString} {@link FeatureCollection} from an Array of LineString coordinates.\n *\n * @name lineStrings\n * @param {Array>>} coordinates an array of LinearRings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north]\n * associated with the FeatureCollection\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection} LineString FeatureCollection\n * @example\n * var linestrings = turf.lineStrings([\n * [[-24, 63], [-23, 60], [-25, 65], [-20, 69]],\n * [[-14, 43], [-13, 40], [-15, 45], [-10, 49]]\n * ]);\n *\n * //=linestrings\n */\nfunction lineStrings(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n return featureCollection(coordinates.map(function (coords) {\n return lineString(coords, properties);\n }), options);\n}\nexports.lineStrings = lineStrings;\n/**\n * Takes one or more {@link Feature|Features} and creates a {@link FeatureCollection}.\n *\n * @name featureCollection\n * @param {Feature[]} features input features\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {FeatureCollection} FeatureCollection of Features\n * @example\n * var locationA = turf.point([-75.343, 39.984], {name: 'Location A'});\n * var locationB = turf.point([-75.833, 39.284], {name: 'Location B'});\n * var locationC = turf.point([-75.534, 39.123], {name: 'Location C'});\n *\n * var collection = turf.featureCollection([\n * locationA,\n * locationB,\n * locationC\n * ]);\n *\n * //=collection\n */\nfunction featureCollection(features, options) {\n if (options === void 0) { options = {}; }\n var fc = { type: \"FeatureCollection\" };\n if (options.id) {\n fc.id = options.id;\n }\n if (options.bbox) {\n fc.bbox = options.bbox;\n }\n fc.features = features;\n return fc;\n}\nexports.featureCollection = featureCollection;\n/**\n * Creates a {@link Feature} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiLineString\n * @param {Array>>} coordinates an array of LineStrings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a MultiLineString feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiLine = turf.multiLineString([[[0,0],[10,10]]]);\n *\n * //=multiLine\n */\nfunction multiLineString(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"MultiLineString\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\nexports.multiLineString = multiLineString;\n/**\n * Creates a {@link Feature} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiPoint\n * @param {Array>} coordinates an array of Positions\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a MultiPoint feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiPt = turf.multiPoint([[0,0],[10,10]]);\n *\n * //=multiPt\n */\nfunction multiPoint(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"MultiPoint\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\nexports.multiPoint = multiPoint;\n/**\n * Creates a {@link Feature} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiPolygon\n * @param {Array>>>} coordinates an array of Polygons\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a multipolygon feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiPoly = turf.multiPolygon([[[[0,0],[0,10],[10,10],[10,0],[0,0]]]]);\n *\n * //=multiPoly\n *\n */\nfunction multiPolygon(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"MultiPolygon\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\nexports.multiPolygon = multiPolygon;\n/**\n * Creates a {@link Feature} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name geometryCollection\n * @param {Array} geometries an array of GeoJSON Geometries\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a GeoJSON GeometryCollection Feature\n * @example\n * var pt = turf.geometry(\"Point\", [100, 0]);\n * var line = turf.geometry(\"LineString\", [[101, 0], [102, 1]]);\n * var collection = turf.geometryCollection([pt, line]);\n *\n * // => collection\n */\nfunction geometryCollection(geometries, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"GeometryCollection\",\n geometries: geometries,\n };\n return feature(geom, properties, options);\n}\nexports.geometryCollection = geometryCollection;\n/**\n * Round number to precision\n *\n * @param {number} num Number\n * @param {number} [precision=0] Precision\n * @returns {number} rounded number\n * @example\n * turf.round(120.4321)\n * //=120\n *\n * turf.round(120.4321, 2)\n * //=120.43\n */\nfunction round(num, precision) {\n if (precision === void 0) { precision = 0; }\n if (precision && !(precision >= 0)) {\n throw new Error(\"precision must be a positive number\");\n }\n var multiplier = Math.pow(10, precision || 0);\n return Math.round(num * multiplier) / multiplier;\n}\nexports.round = round;\n/**\n * Convert a distance measurement (assuming a spherical Earth) from radians to a more friendly unit.\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @name radiansToLength\n * @param {number} radians in radians across the sphere\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} distance\n */\nfunction radiansToLength(radians, units) {\n if (units === void 0) { units = \"kilometers\"; }\n var factor = exports.factors[units];\n if (!factor) {\n throw new Error(units + \" units is invalid\");\n }\n return radians * factor;\n}\nexports.radiansToLength = radiansToLength;\n/**\n * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into radians\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @name lengthToRadians\n * @param {number} distance in real units\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} radians\n */\nfunction lengthToRadians(distance, units) {\n if (units === void 0) { units = \"kilometers\"; }\n var factor = exports.factors[units];\n if (!factor) {\n throw new Error(units + \" units is invalid\");\n }\n return distance / factor;\n}\nexports.lengthToRadians = lengthToRadians;\n/**\n * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into degrees\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, centimeters, kilometres, feet\n *\n * @name lengthToDegrees\n * @param {number} distance in real units\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} degrees\n */\nfunction lengthToDegrees(distance, units) {\n return radiansToDegrees(lengthToRadians(distance, units));\n}\nexports.lengthToDegrees = lengthToDegrees;\n/**\n * Converts any bearing angle from the north line direction (positive clockwise)\n * and returns an angle between 0-360 degrees (positive clockwise), 0 being the north line\n *\n * @name bearingToAzimuth\n * @param {number} bearing angle, between -180 and +180 degrees\n * @returns {number} angle between 0 and 360 degrees\n */\nfunction bearingToAzimuth(bearing) {\n var angle = bearing % 360;\n if (angle < 0) {\n angle += 360;\n }\n return angle;\n}\nexports.bearingToAzimuth = bearingToAzimuth;\n/**\n * Converts an angle in radians to degrees\n *\n * @name radiansToDegrees\n * @param {number} radians angle in radians\n * @returns {number} degrees between 0 and 360 degrees\n */\nfunction radiansToDegrees(radians) {\n var degrees = radians % (2 * Math.PI);\n return (degrees * 180) / Math.PI;\n}\nexports.radiansToDegrees = radiansToDegrees;\n/**\n * Converts an angle in degrees to radians\n *\n * @name degreesToRadians\n * @param {number} degrees angle between 0 and 360 degrees\n * @returns {number} angle in radians\n */\nfunction degreesToRadians(degrees) {\n var radians = degrees % 360;\n return (radians * Math.PI) / 180;\n}\nexports.degreesToRadians = degreesToRadians;\n/**\n * Converts a length to the requested unit.\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @param {number} length to be converted\n * @param {Units} [originalUnit=\"kilometers\"] of the length\n * @param {Units} [finalUnit=\"kilometers\"] returned unit\n * @returns {number} the converted length\n */\nfunction convertLength(length, originalUnit, finalUnit) {\n if (originalUnit === void 0) { originalUnit = \"kilometers\"; }\n if (finalUnit === void 0) { finalUnit = \"kilometers\"; }\n if (!(length >= 0)) {\n throw new Error(\"length must be a positive number\");\n }\n return radiansToLength(lengthToRadians(length, originalUnit), finalUnit);\n}\nexports.convertLength = convertLength;\n/**\n * Converts a area to the requested unit.\n * Valid units: kilometers, kilometres, meters, metres, centimetres, millimeters, acres, miles, yards, feet, inches, hectares\n * @param {number} area to be converted\n * @param {Units} [originalUnit=\"meters\"] of the distance\n * @param {Units} [finalUnit=\"kilometers\"] returned unit\n * @returns {number} the converted area\n */\nfunction convertArea(area, originalUnit, finalUnit) {\n if (originalUnit === void 0) { originalUnit = \"meters\"; }\n if (finalUnit === void 0) { finalUnit = \"kilometers\"; }\n if (!(area >= 0)) {\n throw new Error(\"area must be a positive number\");\n }\n var startFactor = exports.areaFactors[originalUnit];\n if (!startFactor) {\n throw new Error(\"invalid original units\");\n }\n var finalFactor = exports.areaFactors[finalUnit];\n if (!finalFactor) {\n throw new Error(\"invalid final units\");\n }\n return (area / startFactor) * finalFactor;\n}\nexports.convertArea = convertArea;\n/**\n * isNumber\n *\n * @param {*} num Number to validate\n * @returns {boolean} true/false\n * @example\n * turf.isNumber(123)\n * //=true\n * turf.isNumber('foo')\n * //=false\n */\nfunction isNumber(num) {\n return !isNaN(num) && num !== null && !Array.isArray(num);\n}\nexports.isNumber = isNumber;\n/**\n * isObject\n *\n * @param {*} input variable to validate\n * @returns {boolean} true/false\n * @example\n * turf.isObject({elevation: 10})\n * //=true\n * turf.isObject('foo')\n * //=false\n */\nfunction isObject(input) {\n return !!input && input.constructor === Object;\n}\nexports.isObject = isObject;\n/**\n * Validate BBox\n *\n * @private\n * @param {Array} bbox BBox to validate\n * @returns {void}\n * @throws Error if BBox is not valid\n * @example\n * validateBBox([-180, -40, 110, 50])\n * //=OK\n * validateBBox([-180, -40])\n * //=Error\n * validateBBox('Foo')\n * //=Error\n * validateBBox(5)\n * //=Error\n * validateBBox(null)\n * //=Error\n * validateBBox(undefined)\n * //=Error\n */\nfunction validateBBox(bbox) {\n if (!bbox) {\n throw new Error(\"bbox is required\");\n }\n if (!Array.isArray(bbox)) {\n throw new Error(\"bbox must be an Array\");\n }\n if (bbox.length !== 4 && bbox.length !== 6) {\n throw new Error(\"bbox must be an Array of 4 or 6 numbers\");\n }\n bbox.forEach(function (num) {\n if (!isNumber(num)) {\n throw new Error(\"bbox must only contain numbers\");\n }\n });\n}\nexports.validateBBox = validateBBox;\n/**\n * Validate Id\n *\n * @private\n * @param {string|number} id Id to validate\n * @returns {void}\n * @throws Error if Id is not valid\n * @example\n * validateId([-180, -40, 110, 50])\n * //=Error\n * validateId([-180, -40])\n * //=Error\n * validateId('Foo')\n * //=OK\n * validateId(5)\n * //=OK\n * validateId(null)\n * //=Error\n * validateId(undefined)\n * //=Error\n */\nfunction validateId(id) {\n if (!id) {\n throw new Error(\"id is required\");\n }\n if ([\"string\", \"number\"].indexOf(typeof id) === -1) {\n throw new Error(\"id must be a number or a string\");\n }\n}\nexports.validateId = validateId;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar helpers_1 = require(\"@turf/helpers\");\n/**\n * Unwrap a coordinate from a Point Feature, Geometry or a single coordinate.\n *\n * @name getCoord\n * @param {Array|Geometry|Feature} coord GeoJSON Point or an Array of numbers\n * @returns {Array} coordinates\n * @example\n * var pt = turf.point([10, 10]);\n *\n * var coord = turf.getCoord(pt);\n * //= [10, 10]\n */\nfunction getCoord(coord) {\n if (!coord) {\n throw new Error(\"coord is required\");\n }\n if (!Array.isArray(coord)) {\n if (coord.type === \"Feature\" &&\n coord.geometry !== null &&\n coord.geometry.type === \"Point\") {\n return coord.geometry.coordinates;\n }\n if (coord.type === \"Point\") {\n return coord.coordinates;\n }\n }\n if (Array.isArray(coord) &&\n coord.length >= 2 &&\n !Array.isArray(coord[0]) &&\n !Array.isArray(coord[1])) {\n return coord;\n }\n throw new Error(\"coord must be GeoJSON Point or an Array of numbers\");\n}\nexports.getCoord = getCoord;\n/**\n * Unwrap coordinates from a Feature, Geometry Object or an Array\n *\n * @name getCoords\n * @param {Array|Geometry|Feature} coords Feature, Geometry Object or an Array\n * @returns {Array} coordinates\n * @example\n * var poly = turf.polygon([[[119.32, -8.7], [119.55, -8.69], [119.51, -8.54], [119.32, -8.7]]]);\n *\n * var coords = turf.getCoords(poly);\n * //= [[[119.32, -8.7], [119.55, -8.69], [119.51, -8.54], [119.32, -8.7]]]\n */\nfunction getCoords(coords) {\n if (Array.isArray(coords)) {\n return coords;\n }\n // Feature\n if (coords.type === \"Feature\") {\n if (coords.geometry !== null) {\n return coords.geometry.coordinates;\n }\n }\n else {\n // Geometry\n if (coords.coordinates) {\n return coords.coordinates;\n }\n }\n throw new Error(\"coords must be GeoJSON Feature, Geometry Object or an Array\");\n}\nexports.getCoords = getCoords;\n/**\n * Checks if coordinates contains a number\n *\n * @name containsNumber\n * @param {Array} coordinates GeoJSON Coordinates\n * @returns {boolean} true if Array contains a number\n */\nfunction containsNumber(coordinates) {\n if (coordinates.length > 1 &&\n helpers_1.isNumber(coordinates[0]) &&\n helpers_1.isNumber(coordinates[1])) {\n return true;\n }\n if (Array.isArray(coordinates[0]) && coordinates[0].length) {\n return containsNumber(coordinates[0]);\n }\n throw new Error(\"coordinates must only contain numbers\");\n}\nexports.containsNumber = containsNumber;\n/**\n * Enforce expectations about types of GeoJSON objects for Turf.\n *\n * @name geojsonType\n * @param {GeoJSON} value any GeoJSON object\n * @param {string} type expected GeoJSON type\n * @param {string} name name of calling function\n * @throws {Error} if value is not the expected type.\n */\nfunction geojsonType(value, type, name) {\n if (!type || !name) {\n throw new Error(\"type and name required\");\n }\n if (!value || value.type !== type) {\n throw new Error(\"Invalid input to \" +\n name +\n \": must be a \" +\n type +\n \", given \" +\n value.type);\n }\n}\nexports.geojsonType = geojsonType;\n/**\n * Enforce expectations about types of {@link Feature} inputs for Turf.\n * Internally this uses {@link geojsonType} to judge geometry types.\n *\n * @name featureOf\n * @param {Feature} feature a feature with an expected geometry type\n * @param {string} type expected GeoJSON type\n * @param {string} name name of calling function\n * @throws {Error} error if value is not the expected type.\n */\nfunction featureOf(feature, type, name) {\n if (!feature) {\n throw new Error(\"No feature passed\");\n }\n if (!name) {\n throw new Error(\".featureOf() requires a name\");\n }\n if (!feature || feature.type !== \"Feature\" || !feature.geometry) {\n throw new Error(\"Invalid input to \" + name + \", Feature with geometry required\");\n }\n if (!feature.geometry || feature.geometry.type !== type) {\n throw new Error(\"Invalid input to \" +\n name +\n \": must be a \" +\n type +\n \", given \" +\n feature.geometry.type);\n }\n}\nexports.featureOf = featureOf;\n/**\n * Enforce expectations about types of {@link FeatureCollection} inputs for Turf.\n * Internally this uses {@link geojsonType} to judge geometry types.\n *\n * @name collectionOf\n * @param {FeatureCollection} featureCollection a FeatureCollection for which features will be judged\n * @param {string} type expected GeoJSON type\n * @param {string} name name of calling function\n * @throws {Error} if value is not the expected type.\n */\nfunction collectionOf(featureCollection, type, name) {\n if (!featureCollection) {\n throw new Error(\"No featureCollection passed\");\n }\n if (!name) {\n throw new Error(\".collectionOf() requires a name\");\n }\n if (!featureCollection || featureCollection.type !== \"FeatureCollection\") {\n throw new Error(\"Invalid input to \" + name + \", FeatureCollection required\");\n }\n for (var _i = 0, _a = featureCollection.features; _i < _a.length; _i++) {\n var feature = _a[_i];\n if (!feature || feature.type !== \"Feature\" || !feature.geometry) {\n throw new Error(\"Invalid input to \" + name + \", Feature with geometry required\");\n }\n if (!feature.geometry || feature.geometry.type !== type) {\n throw new Error(\"Invalid input to \" +\n name +\n \": must be a \" +\n type +\n \", given \" +\n feature.geometry.type);\n }\n }\n}\nexports.collectionOf = collectionOf;\n/**\n * Get Geometry from Feature or Geometry Object\n *\n * @param {Feature|Geometry} geojson GeoJSON Feature or Geometry Object\n * @returns {Geometry|null} GeoJSON Geometry Object\n * @throws {Error} if geojson is not a Feature or Geometry Object\n * @example\n * var point = {\n * \"type\": \"Feature\",\n * \"properties\": {},\n * \"geometry\": {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 40]\n * }\n * }\n * var geom = turf.getGeom(point)\n * //={\"type\": \"Point\", \"coordinates\": [110, 40]}\n */\nfunction getGeom(geojson) {\n if (geojson.type === \"Feature\") {\n return geojson.geometry;\n }\n return geojson;\n}\nexports.getGeom = getGeom;\n/**\n * Get GeoJSON object's type, Geometry type is prioritize.\n *\n * @param {GeoJSON} geojson GeoJSON object\n * @param {string} [name=\"geojson\"] name of the variable to display in error message (unused)\n * @returns {string} GeoJSON type\n * @example\n * var point = {\n * \"type\": \"Feature\",\n * \"properties\": {},\n * \"geometry\": {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 40]\n * }\n * }\n * var geom = turf.getType(point)\n * //=\"Point\"\n */\nfunction getType(geojson, _name) {\n if (geojson.type === \"FeatureCollection\") {\n return \"FeatureCollection\";\n }\n if (geojson.type === \"GeometryCollection\") {\n return \"GeometryCollection\";\n }\n if (geojson.type === \"Feature\" && geojson.geometry !== null) {\n return geojson.geometry.type;\n }\n return geojson.type;\n}\nexports.getType = getType;\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n","'use strict'\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n}\n","'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n\n return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 0; i < nodes.length; i++) {\n walker = insert(this, walker, nodes[i])\n }\n return ret;\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist)\n} catch (er) {}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/*\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","'use strict';\n\nmodule.exports = Pbf;\n\nvar ieee754 = require('ieee754');\n\nfunction Pbf(buf) {\n this.buf = ArrayBuffer.isView && ArrayBuffer.isView(buf) ? buf : new Uint8Array(buf || 0);\n this.pos = 0;\n this.type = 0;\n this.length = this.buf.length;\n}\n\nPbf.Varint = 0; // varint: int32, int64, uint32, uint64, sint32, sint64, bool, enum\nPbf.Fixed64 = 1; // 64-bit: double, fixed64, sfixed64\nPbf.Bytes = 2; // length-delimited: string, bytes, embedded messages, packed repeated fields\nPbf.Fixed32 = 5; // 32-bit: float, fixed32, sfixed32\n\nvar SHIFT_LEFT_32 = (1 << 16) * (1 << 16),\n SHIFT_RIGHT_32 = 1 / SHIFT_LEFT_32;\n\n// Threshold chosen based on both benchmarking and knowledge about browser string\n// data structures (which currently switch structure types at 12 bytes or more)\nvar TEXT_DECODER_MIN_LENGTH = 12;\nvar utf8TextDecoder = typeof TextDecoder === 'undefined' ? null : new TextDecoder('utf8');\n\nPbf.prototype = {\n\n destroy: function() {\n this.buf = null;\n },\n\n // === READING =================================================================\n\n readFields: function(readField, result, end) {\n end = end || this.length;\n\n while (this.pos < end) {\n var val = this.readVarint(),\n tag = val >> 3,\n startPos = this.pos;\n\n this.type = val & 0x7;\n readField(tag, result, this);\n\n if (this.pos === startPos) this.skip(val);\n }\n return result;\n },\n\n readMessage: function(readField, result) {\n return this.readFields(readField, result, this.readVarint() + this.pos);\n },\n\n readFixed32: function() {\n var val = readUInt32(this.buf, this.pos);\n this.pos += 4;\n return val;\n },\n\n readSFixed32: function() {\n var val = readInt32(this.buf, this.pos);\n this.pos += 4;\n return val;\n },\n\n // 64-bit int handling is based on github.com/dpw/node-buffer-more-ints (MIT-licensed)\n\n readFixed64: function() {\n var val = readUInt32(this.buf, this.pos) + readUInt32(this.buf, this.pos + 4) * SHIFT_LEFT_32;\n this.pos += 8;\n return val;\n },\n\n readSFixed64: function() {\n var val = readUInt32(this.buf, this.pos) + readInt32(this.buf, this.pos + 4) * SHIFT_LEFT_32;\n this.pos += 8;\n return val;\n },\n\n readFloat: function() {\n var val = ieee754.read(this.buf, this.pos, true, 23, 4);\n this.pos += 4;\n return val;\n },\n\n readDouble: function() {\n var val = ieee754.read(this.buf, this.pos, true, 52, 8);\n this.pos += 8;\n return val;\n },\n\n readVarint: function(isSigned) {\n var buf = this.buf,\n val, b;\n\n b = buf[this.pos++]; val = b & 0x7f; if (b < 0x80) return val;\n b = buf[this.pos++]; val |= (b & 0x7f) << 7; if (b < 0x80) return val;\n b = buf[this.pos++]; val |= (b & 0x7f) << 14; if (b < 0x80) return val;\n b = buf[this.pos++]; val |= (b & 0x7f) << 21; if (b < 0x80) return val;\n b = buf[this.pos]; val |= (b & 0x0f) << 28;\n\n return readVarintRemainder(val, isSigned, this);\n },\n\n readVarint64: function() { // for compatibility with v2.0.1\n return this.readVarint(true);\n },\n\n readSVarint: function() {\n var num = this.readVarint();\n return num % 2 === 1 ? (num + 1) / -2 : num / 2; // zigzag encoding\n },\n\n readBoolean: function() {\n return Boolean(this.readVarint());\n },\n\n readString: function() {\n var end = this.readVarint() + this.pos;\n var pos = this.pos;\n this.pos = end;\n\n if (end - pos >= TEXT_DECODER_MIN_LENGTH && utf8TextDecoder) {\n // longer strings are fast with the built-in browser TextDecoder API\n return readUtf8TextDecoder(this.buf, pos, end);\n }\n // short strings are fast with our custom implementation\n return readUtf8(this.buf, pos, end);\n },\n\n readBytes: function() {\n var end = this.readVarint() + this.pos,\n buffer = this.buf.subarray(this.pos, end);\n this.pos = end;\n return buffer;\n },\n\n // verbose for performance reasons; doesn't affect gzipped size\n\n readPackedVarint: function(arr, isSigned) {\n if (this.type !== Pbf.Bytes) return arr.push(this.readVarint(isSigned));\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readVarint(isSigned));\n return arr;\n },\n readPackedSVarint: function(arr) {\n if (this.type !== Pbf.Bytes) return arr.push(this.readSVarint());\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readSVarint());\n return arr;\n },\n readPackedBoolean: function(arr) {\n if (this.type !== Pbf.Bytes) return arr.push(this.readBoolean());\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readBoolean());\n return arr;\n },\n readPackedFloat: function(arr) {\n if (this.type !== Pbf.Bytes) return arr.push(this.readFloat());\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readFloat());\n return arr;\n },\n readPackedDouble: function(arr) {\n if (this.type !== Pbf.Bytes) return arr.push(this.readDouble());\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readDouble());\n return arr;\n },\n readPackedFixed32: function(arr) {\n if (this.type !== Pbf.Bytes) return arr.push(this.readFixed32());\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readFixed32());\n return arr;\n },\n readPackedSFixed32: function(arr) {\n if (this.type !== Pbf.Bytes) return arr.push(this.readSFixed32());\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readSFixed32());\n return arr;\n },\n readPackedFixed64: function(arr) {\n if (this.type !== Pbf.Bytes) return arr.push(this.readFixed64());\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readFixed64());\n return arr;\n },\n readPackedSFixed64: function(arr) {\n if (this.type !== Pbf.Bytes) return arr.push(this.readSFixed64());\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readSFixed64());\n return arr;\n },\n\n skip: function(val) {\n var type = val & 0x7;\n if (type === Pbf.Varint) while (this.buf[this.pos++] > 0x7f) {}\n else if (type === Pbf.Bytes) this.pos = this.readVarint() + this.pos;\n else if (type === Pbf.Fixed32) this.pos += 4;\n else if (type === Pbf.Fixed64) this.pos += 8;\n else throw new Error('Unimplemented type: ' + type);\n },\n\n // === WRITING =================================================================\n\n writeTag: function(tag, type) {\n this.writeVarint((tag << 3) | type);\n },\n\n realloc: function(min) {\n var length = this.length || 16;\n\n while (length < this.pos + min) length *= 2;\n\n if (length !== this.length) {\n var buf = new Uint8Array(length);\n buf.set(this.buf);\n this.buf = buf;\n this.length = length;\n }\n },\n\n finish: function() {\n this.length = this.pos;\n this.pos = 0;\n return this.buf.subarray(0, this.length);\n },\n\n writeFixed32: function(val) {\n this.realloc(4);\n writeInt32(this.buf, val, this.pos);\n this.pos += 4;\n },\n\n writeSFixed32: function(val) {\n this.realloc(4);\n writeInt32(this.buf, val, this.pos);\n this.pos += 4;\n },\n\n writeFixed64: function(val) {\n this.realloc(8);\n writeInt32(this.buf, val & -1, this.pos);\n writeInt32(this.buf, Math.floor(val * SHIFT_RIGHT_32), this.pos + 4);\n this.pos += 8;\n },\n\n writeSFixed64: function(val) {\n this.realloc(8);\n writeInt32(this.buf, val & -1, this.pos);\n writeInt32(this.buf, Math.floor(val * SHIFT_RIGHT_32), this.pos + 4);\n this.pos += 8;\n },\n\n writeVarint: function(val) {\n val = +val || 0;\n\n if (val > 0xfffffff || val < 0) {\n writeBigVarint(val, this);\n return;\n }\n\n this.realloc(4);\n\n this.buf[this.pos++] = val & 0x7f | (val > 0x7f ? 0x80 : 0); if (val <= 0x7f) return;\n this.buf[this.pos++] = ((val >>>= 7) & 0x7f) | (val > 0x7f ? 0x80 : 0); if (val <= 0x7f) return;\n this.buf[this.pos++] = ((val >>>= 7) & 0x7f) | (val > 0x7f ? 0x80 : 0); if (val <= 0x7f) return;\n this.buf[this.pos++] = (val >>> 7) & 0x7f;\n },\n\n writeSVarint: function(val) {\n this.writeVarint(val < 0 ? -val * 2 - 1 : val * 2);\n },\n\n writeBoolean: function(val) {\n this.writeVarint(Boolean(val));\n },\n\n writeString: function(str) {\n str = String(str);\n this.realloc(str.length * 4);\n\n this.pos++; // reserve 1 byte for short string length\n\n var startPos = this.pos;\n // write the string directly to the buffer and see how much was written\n this.pos = writeUtf8(this.buf, str, this.pos);\n var len = this.pos - startPos;\n\n if (len >= 0x80) makeRoomForExtraLength(startPos, len, this);\n\n // finally, write the message length in the reserved place and restore the position\n this.pos = startPos - 1;\n this.writeVarint(len);\n this.pos += len;\n },\n\n writeFloat: function(val) {\n this.realloc(4);\n ieee754.write(this.buf, val, this.pos, true, 23, 4);\n this.pos += 4;\n },\n\n writeDouble: function(val) {\n this.realloc(8);\n ieee754.write(this.buf, val, this.pos, true, 52, 8);\n this.pos += 8;\n },\n\n writeBytes: function(buffer) {\n var len = buffer.length;\n this.writeVarint(len);\n this.realloc(len);\n for (var i = 0; i < len; i++) this.buf[this.pos++] = buffer[i];\n },\n\n writeRawMessage: function(fn, obj) {\n this.pos++; // reserve 1 byte for short message length\n\n // write the message directly to the buffer and see how much was written\n var startPos = this.pos;\n fn(obj, this);\n var len = this.pos - startPos;\n\n if (len >= 0x80) makeRoomForExtraLength(startPos, len, this);\n\n // finally, write the message length in the reserved place and restore the position\n this.pos = startPos - 1;\n this.writeVarint(len);\n this.pos += len;\n },\n\n writeMessage: function(tag, fn, obj) {\n this.writeTag(tag, Pbf.Bytes);\n this.writeRawMessage(fn, obj);\n },\n\n writePackedVarint: function(tag, arr) { if (arr.length) this.writeMessage(tag, writePackedVarint, arr); },\n writePackedSVarint: function(tag, arr) { if (arr.length) this.writeMessage(tag, writePackedSVarint, arr); },\n writePackedBoolean: function(tag, arr) { if (arr.length) this.writeMessage(tag, writePackedBoolean, arr); },\n writePackedFloat: function(tag, arr) { if (arr.length) this.writeMessage(tag, writePackedFloat, arr); },\n writePackedDouble: function(tag, arr) { if (arr.length) this.writeMessage(tag, writePackedDouble, arr); },\n writePackedFixed32: function(tag, arr) { if (arr.length) this.writeMessage(tag, writePackedFixed32, arr); },\n writePackedSFixed32: function(tag, arr) { if (arr.length) this.writeMessage(tag, writePackedSFixed32, arr); },\n writePackedFixed64: function(tag, arr) { if (arr.length) this.writeMessage(tag, writePackedFixed64, arr); },\n writePackedSFixed64: function(tag, arr) { if (arr.length) this.writeMessage(tag, writePackedSFixed64, arr); },\n\n writeBytesField: function(tag, buffer) {\n this.writeTag(tag, Pbf.Bytes);\n this.writeBytes(buffer);\n },\n writeFixed32Field: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed32);\n this.writeFixed32(val);\n },\n writeSFixed32Field: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed32);\n this.writeSFixed32(val);\n },\n writeFixed64Field: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed64);\n this.writeFixed64(val);\n },\n writeSFixed64Field: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed64);\n this.writeSFixed64(val);\n },\n writeVarintField: function(tag, val) {\n this.writeTag(tag, Pbf.Varint);\n this.writeVarint(val);\n },\n writeSVarintField: function(tag, val) {\n this.writeTag(tag, Pbf.Varint);\n this.writeSVarint(val);\n },\n writeStringField: function(tag, str) {\n this.writeTag(tag, Pbf.Bytes);\n this.writeString(str);\n },\n writeFloatField: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed32);\n this.writeFloat(val);\n },\n writeDoubleField: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed64);\n this.writeDouble(val);\n },\n writeBooleanField: function(tag, val) {\n this.writeVarintField(tag, Boolean(val));\n }\n};\n\nfunction readVarintRemainder(l, s, p) {\n var buf = p.buf,\n h, b;\n\n b = buf[p.pos++]; h = (b & 0x70) >> 4; if (b < 0x80) return toNum(l, h, s);\n b = buf[p.pos++]; h |= (b & 0x7f) << 3; if (b < 0x80) return toNum(l, h, s);\n b = buf[p.pos++]; h |= (b & 0x7f) << 10; if (b < 0x80) return toNum(l, h, s);\n b = buf[p.pos++]; h |= (b & 0x7f) << 17; if (b < 0x80) return toNum(l, h, s);\n b = buf[p.pos++]; h |= (b & 0x7f) << 24; if (b < 0x80) return toNum(l, h, s);\n b = buf[p.pos++]; h |= (b & 0x01) << 31; if (b < 0x80) return toNum(l, h, s);\n\n throw new Error('Expected varint not more than 10 bytes');\n}\n\nfunction readPackedEnd(pbf) {\n return pbf.type === Pbf.Bytes ?\n pbf.readVarint() + pbf.pos : pbf.pos + 1;\n}\n\nfunction toNum(low, high, isSigned) {\n if (isSigned) {\n return high * 0x100000000 + (low >>> 0);\n }\n\n return ((high >>> 0) * 0x100000000) + (low >>> 0);\n}\n\nfunction writeBigVarint(val, pbf) {\n var low, high;\n\n if (val >= 0) {\n low = (val % 0x100000000) | 0;\n high = (val / 0x100000000) | 0;\n } else {\n low = ~(-val % 0x100000000);\n high = ~(-val / 0x100000000);\n\n if (low ^ 0xffffffff) {\n low = (low + 1) | 0;\n } else {\n low = 0;\n high = (high + 1) | 0;\n }\n }\n\n if (val >= 0x10000000000000000 || val < -0x10000000000000000) {\n throw new Error('Given varint doesn\\'t fit into 10 bytes');\n }\n\n pbf.realloc(10);\n\n writeBigVarintLow(low, high, pbf);\n writeBigVarintHigh(high, pbf);\n}\n\nfunction writeBigVarintLow(low, high, pbf) {\n pbf.buf[pbf.pos++] = low & 0x7f | 0x80; low >>>= 7;\n pbf.buf[pbf.pos++] = low & 0x7f | 0x80; low >>>= 7;\n pbf.buf[pbf.pos++] = low & 0x7f | 0x80; low >>>= 7;\n pbf.buf[pbf.pos++] = low & 0x7f | 0x80; low >>>= 7;\n pbf.buf[pbf.pos] = low & 0x7f;\n}\n\nfunction writeBigVarintHigh(high, pbf) {\n var lsb = (high & 0x07) << 4;\n\n pbf.buf[pbf.pos++] |= lsb | ((high >>>= 3) ? 0x80 : 0); if (!high) return;\n pbf.buf[pbf.pos++] = high & 0x7f | ((high >>>= 7) ? 0x80 : 0); if (!high) return;\n pbf.buf[pbf.pos++] = high & 0x7f | ((high >>>= 7) ? 0x80 : 0); if (!high) return;\n pbf.buf[pbf.pos++] = high & 0x7f | ((high >>>= 7) ? 0x80 : 0); if (!high) return;\n pbf.buf[pbf.pos++] = high & 0x7f | ((high >>>= 7) ? 0x80 : 0); if (!high) return;\n pbf.buf[pbf.pos++] = high & 0x7f;\n}\n\nfunction makeRoomForExtraLength(startPos, len, pbf) {\n var extraLen =\n len <= 0x3fff ? 1 :\n len <= 0x1fffff ? 2 :\n len <= 0xfffffff ? 3 : Math.floor(Math.log(len) / (Math.LN2 * 7));\n\n // if 1 byte isn't enough for encoding message length, shift the data to the right\n pbf.realloc(extraLen);\n for (var i = pbf.pos - 1; i >= startPos; i--) pbf.buf[i + extraLen] = pbf.buf[i];\n}\n\nfunction writePackedVarint(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeVarint(arr[i]); }\nfunction writePackedSVarint(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeSVarint(arr[i]); }\nfunction writePackedFloat(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeFloat(arr[i]); }\nfunction writePackedDouble(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeDouble(arr[i]); }\nfunction writePackedBoolean(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeBoolean(arr[i]); }\nfunction writePackedFixed32(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeFixed32(arr[i]); }\nfunction writePackedSFixed32(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeSFixed32(arr[i]); }\nfunction writePackedFixed64(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeFixed64(arr[i]); }\nfunction writePackedSFixed64(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeSFixed64(arr[i]); }\n\n// Buffer code below from https://github.com/feross/buffer, MIT-licensed\n\nfunction readUInt32(buf, pos) {\n return ((buf[pos]) |\n (buf[pos + 1] << 8) |\n (buf[pos + 2] << 16)) +\n (buf[pos + 3] * 0x1000000);\n}\n\nfunction writeInt32(buf, val, pos) {\n buf[pos] = val;\n buf[pos + 1] = (val >>> 8);\n buf[pos + 2] = (val >>> 16);\n buf[pos + 3] = (val >>> 24);\n}\n\nfunction readInt32(buf, pos) {\n return ((buf[pos]) |\n (buf[pos + 1] << 8) |\n (buf[pos + 2] << 16)) +\n (buf[pos + 3] << 24);\n}\n\nfunction readUtf8(buf, pos, end) {\n var str = '';\n var i = pos;\n\n while (i < end) {\n var b0 = buf[i];\n var c = null; // codepoint\n var bytesPerSequence =\n b0 > 0xEF ? 4 :\n b0 > 0xDF ? 3 :\n b0 > 0xBF ? 2 : 1;\n\n if (i + bytesPerSequence > end) break;\n\n var b1, b2, b3;\n\n if (bytesPerSequence === 1) {\n if (b0 < 0x80) {\n c = b0;\n }\n } else if (bytesPerSequence === 2) {\n b1 = buf[i + 1];\n if ((b1 & 0xC0) === 0x80) {\n c = (b0 & 0x1F) << 0x6 | (b1 & 0x3F);\n if (c <= 0x7F) {\n c = null;\n }\n }\n } else if (bytesPerSequence === 3) {\n b1 = buf[i + 1];\n b2 = buf[i + 2];\n if ((b1 & 0xC0) === 0x80 && (b2 & 0xC0) === 0x80) {\n c = (b0 & 0xF) << 0xC | (b1 & 0x3F) << 0x6 | (b2 & 0x3F);\n if (c <= 0x7FF || (c >= 0xD800 && c <= 0xDFFF)) {\n c = null;\n }\n }\n } else if (bytesPerSequence === 4) {\n b1 = buf[i + 1];\n b2 = buf[i + 2];\n b3 = buf[i + 3];\n if ((b1 & 0xC0) === 0x80 && (b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80) {\n c = (b0 & 0xF) << 0x12 | (b1 & 0x3F) << 0xC | (b2 & 0x3F) << 0x6 | (b3 & 0x3F);\n if (c <= 0xFFFF || c >= 0x110000) {\n c = null;\n }\n }\n }\n\n if (c === null) {\n c = 0xFFFD;\n bytesPerSequence = 1;\n\n } else if (c > 0xFFFF) {\n c -= 0x10000;\n str += String.fromCharCode(c >>> 10 & 0x3FF | 0xD800);\n c = 0xDC00 | c & 0x3FF;\n }\n\n str += String.fromCharCode(c);\n i += bytesPerSequence;\n }\n\n return str;\n}\n\nfunction readUtf8TextDecoder(buf, pos, end) {\n return utf8TextDecoder.decode(buf.subarray(pos, end));\n}\n\nfunction writeUtf8(buf, str, pos) {\n for (var i = 0, c, lead; i < str.length; i++) {\n c = str.charCodeAt(i); // code point\n\n if (c > 0xD7FF && c < 0xE000) {\n if (lead) {\n if (c < 0xDC00) {\n buf[pos++] = 0xEF;\n buf[pos++] = 0xBF;\n buf[pos++] = 0xBD;\n lead = c;\n continue;\n } else {\n c = lead - 0xD800 << 10 | c - 0xDC00 | 0x10000;\n lead = null;\n }\n } else {\n if (c > 0xDBFF || (i + 1 === str.length)) {\n buf[pos++] = 0xEF;\n buf[pos++] = 0xBF;\n buf[pos++] = 0xBD;\n } else {\n lead = c;\n }\n continue;\n }\n } else if (lead) {\n buf[pos++] = 0xEF;\n buf[pos++] = 0xBF;\n buf[pos++] = 0xBD;\n lead = null;\n }\n\n if (c < 0x80) {\n buf[pos++] = c;\n } else {\n if (c < 0x800) {\n buf[pos++] = c >> 0x6 | 0xC0;\n } else {\n if (c < 0x10000) {\n buf[pos++] = c >> 0xC | 0xE0;\n } else {\n buf[pos++] = c >> 0x12 | 0xF0;\n buf[pos++] = c >> 0xC & 0x3F | 0x80;\n }\n buf[pos++] = c >> 0x6 & 0x3F | 0x80;\n }\n buf[pos++] = c & 0x3F | 0x80;\n }\n }\n return pos;\n}\n","export var PJD_3PARAM = 1;\nexport var PJD_7PARAM = 2;\nexport var PJD_GRIDSHIFT = 3;\nexport var PJD_WGS84 = 4; // WGS84 or equivalent\nexport var PJD_NODATUM = 5; // WGS84 or equivalent\nexport var SRS_WGS84_SEMIMAJOR = 6378137.0; // only used in grid shift transforms\nexport var SRS_WGS84_SEMIMINOR = 6356752.314; // only used in grid shift transforms\nexport var SRS_WGS84_ESQUARED = 0.0066943799901413165; // only used in grid shift transforms\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 gamma: function(v) {\n self.rectified_grid_angle = parseFloat(v);\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 approx: function() {\n self.approx = true;\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][0].toLowerCase(), wkt.AXIS[i][1].toLowerCase()];\n if (axis[0].indexOf('north') !== -1 || ((axis[0] === 'y' || axis[0] === 'lat') && axis[1] === 'north')) {\n axisOrder += 'n';\n } else if (axis[0].indexOf('south') !== -1 || ((axis[0] === 'y' || axis[0] === 'lat') && axis[1] === 'south')) {\n axisOrder += 's';\n } else if (axis[0].indexOf('east') !== -1 || ((axis[0] === 'x' || axis[0] === 'lon') && axis[1] === 'east')) {\n axisOrder += 'e';\n } else if (axis[0].indexOf('west') !== -1 || ((axis[0] === 'x' || axis[0] === 'lon') && axis[1] === 'west')) {\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_1', 'Latitude of 1st standard parallel'],\n ['standard_parallel_2', 'Standard_Parallel_2'],\n ['standard_parallel_2', 'Latitude of 2nd standard parallel'],\n ['false_easting', 'False_Easting'],\n ['false_easting', 'False easting'],\n ['false-easting', 'Easting at false origin'],\n ['false_northing', 'False_Northing'],\n ['false_northing', 'False northing'],\n ['false_northing', 'Northing at false origin'],\n ['central_meridian', 'Central_Meridian'],\n ['central_meridian', 'Longitude of natural origin'],\n ['central_meridian', 'Longitude of false origin'],\n ['latitude_of_origin', 'Latitude_Of_Origin'],\n ['latitude_of_origin', 'Central_Parallel'],\n ['latitude_of_origin', 'Latitude of natural origin'],\n ['latitude_of_origin', 'Latitude of false origin'],\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 } else if (!wkt.lat_ts && wkt.lat0 && wkt.projName === 'Polar_Stereographic') {\n wkt.lat_ts = wkt.lat0;\n wkt.lat0 = d2r(wkt.lat0 > 0 ? 90 : -90);\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","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","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}\nvar 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.clrk80ign = {\n a: 6378249.2,\n b: 6356515,\n rf: 293.4660213,\n ellipseName: \"Clarke 1880 (IGN)\"\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: \"598.1,73.7,418.2,0.202,0.045,-2.455,6.7\",\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: \"577.326,90.129,463.919,5.137,1.474,5.297,2.4232\",\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","/**\n * Resources for details of NTv2 file formats:\n * - https://web.archive.org/web/20140127204822if_/http://www.mgs.gov.on.ca:80/stdprodconsume/groups/content/@mgs/@iandit/documents/resourcelist/stel02_047447.pdf\n * - http://mimaka.com/help/gs/html/004_NTV2%20Data%20Format.htm\n */\n\nvar loadedNadgrids = {};\n\n/**\n * Load a binary NTv2 file (.gsb) to a key that can be used in a proj string like +nadgrids=. Pass the NTv2 file\n * as an ArrayBuffer.\n */\nexport default function nadgrid(key, data) {\n var view = new DataView(data);\n var isLittleEndian = detectLittleEndian(view);\n var header = readHeader(view, isLittleEndian);\n if (header.nSubgrids > 1) {\n console.log('Only single NTv2 subgrids are currently supported, subsequent sub grids are ignored');\n }\n var subgrids = readSubgrids(view, header, isLittleEndian);\n var nadgrid = {header: header, subgrids: subgrids};\n loadedNadgrids[key] = nadgrid;\n return nadgrid;\n}\n\n/**\n * Given a proj4 value for nadgrids, return an array of loaded grids\n */\nexport function getNadgrids(nadgrids) {\n // Format details: http://proj.maptools.org/gen_parms.html\n if (nadgrids === undefined) { return null; }\n var grids = nadgrids.split(',');\n return grids.map(parseNadgridString);\n}\n\nfunction parseNadgridString(value) {\n if (value.length === 0) {\n return null;\n }\n var optional = value[0] === '@';\n if (optional) {\n value = value.slice(1);\n }\n if (value === 'null') {\n return {name: 'null', mandatory: !optional, grid: null, isNull: true};\n }\n return {\n name: value,\n mandatory: !optional,\n grid: loadedNadgrids[value] || null,\n isNull: false\n };\n}\n\nfunction secondsToRadians(seconds) {\n return (seconds / 3600) * Math.PI / 180;\n}\n\nfunction detectLittleEndian(view) {\n var nFields = view.getInt32(8, false);\n if (nFields === 11) {\n return false;\n }\n nFields = view.getInt32(8, true);\n if (nFields !== 11) {\n console.warn('Failed to detect nadgrid endian-ness, defaulting to little-endian');\n }\n return true;\n}\n\nfunction readHeader(view, isLittleEndian) {\n return {\n nFields: view.getInt32(8, isLittleEndian),\n nSubgridFields: view.getInt32(24, isLittleEndian),\n nSubgrids: view.getInt32(40, isLittleEndian),\n shiftType: decodeString(view, 56, 56 + 8).trim(),\n fromSemiMajorAxis: view.getFloat64(120, isLittleEndian),\n fromSemiMinorAxis: view.getFloat64(136, isLittleEndian),\n toSemiMajorAxis: view.getFloat64(152, isLittleEndian),\n toSemiMinorAxis: view.getFloat64(168, isLittleEndian),\n };\n}\n\nfunction decodeString(view, start, end) {\n return String.fromCharCode.apply(null, new Uint8Array(view.buffer.slice(start, end)));\n}\n\nfunction readSubgrids(view, header, isLittleEndian) {\n var gridOffset = 176;\n var grids = [];\n for (var i = 0; i < header.nSubgrids; i++) {\n var subHeader = readGridHeader(view, gridOffset, isLittleEndian);\n var nodes = readGridNodes(view, gridOffset, subHeader, isLittleEndian);\n var lngColumnCount = Math.round(\n 1 + (subHeader.upperLongitude - subHeader.lowerLongitude) / subHeader.longitudeInterval);\n var latColumnCount = Math.round(\n 1 + (subHeader.upperLatitude - subHeader.lowerLatitude) / subHeader.latitudeInterval);\n // Proj4 operates on radians whereas the coordinates are in seconds in the grid\n grids.push({\n ll: [secondsToRadians(subHeader.lowerLongitude), secondsToRadians(subHeader.lowerLatitude)],\n del: [secondsToRadians(subHeader.longitudeInterval), secondsToRadians(subHeader.latitudeInterval)],\n lim: [lngColumnCount, latColumnCount],\n count: subHeader.gridNodeCount,\n cvs: mapNodes(nodes)\n });\n }\n return grids;\n}\n\nfunction mapNodes(nodes) {\n return nodes.map(function (r) {return [secondsToRadians(r.longitudeShift), secondsToRadians(r.latitudeShift)];});\n}\n\nfunction readGridHeader(view, offset, isLittleEndian) {\n return {\n name: decodeString(view, offset + 8, offset + 16).trim(),\n parent: decodeString(view, offset + 24, offset + 24 + 8).trim(),\n lowerLatitude: view.getFloat64(offset + 72, isLittleEndian),\n upperLatitude: view.getFloat64(offset + 88, isLittleEndian),\n lowerLongitude: view.getFloat64(offset + 104, isLittleEndian),\n upperLongitude: view.getFloat64(offset + 120, isLittleEndian),\n latitudeInterval: view.getFloat64(offset + 136, isLittleEndian),\n longitudeInterval: view.getFloat64(offset + 152, isLittleEndian),\n gridNodeCount: view.getInt32(offset + 168, isLittleEndian)\n };\n}\n\nfunction readGridNodes(view, offset, gridHeader, isLittleEndian) {\n var nodesOffset = offset + 176;\n var gridRecordLength = 16;\n var gridShiftRecords = [];\n for (var i = 0; i < gridHeader.gridNodeCount; i++) {\n var record = {\n latitudeShift: view.getFloat32(nodesOffset + i * gridRecordLength, isLittleEndian),\n longitudeShift: view.getFloat32(nodesOffset + i * gridRecordLength + 4, isLittleEndian),\n latitudeAccuracy: view.getFloat32(nodesOffset + i * gridRecordLength + 8, isLittleEndian),\n longitudeAccuracy: view.getFloat32(nodesOffset + i * gridRecordLength + 12, isLittleEndian),\n };\n gridShiftRecords.push(record);\n }\n return gridShiftRecords;\n}\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';\nimport {getNadgrids} from \"./nadgrid\";\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 = 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 json.lat1 = json.lat1 || json.lat0; // Lambert_Conformal_Conic_1SP, for example, needs this\n\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 nadgrids = getNadgrids(json.nadgrids);\n var datumObj = json.datum || datum(json.datumCode, json.datum_params, sphere_.a, sphere_.b, ecc.es, ecc.ep2,\n nadgrids);\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 calculated 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","import {PJD_3PARAM, PJD_7PARAM, PJD_GRIDSHIFT, PJD_WGS84, PJD_NODATUM, SEC_TO_RAD} from './constants/values';\n\nfunction datum(datumCode, datum_params, a, b, es, ep2, nadgrids) {\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 if (nadgrids) {\n out.datum_type = PJD_GRIDSHIFT;\n out.grids = nadgrids;\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","'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 {\n PJD_3PARAM,\n PJD_7PARAM,\n PJD_GRIDSHIFT,\n PJD_NODATUM,\n R2D,\n SRS_WGS84_ESQUARED,\n SRS_WGS84_SEMIMAJOR, SRS_WGS84_SEMIMINOR\n} from './constants/values';\n\nimport {geodeticToGeocentric, geocentricToGeodetic, geocentricToWgs84, geocentricFromWgs84, compareDatums} from './datumUtils';\nimport adjust_lon from \"./common/adjust_lon\";\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 var source_a = source.a;\n var source_es = source.es;\n if (source.datum_type === PJD_GRIDSHIFT) {\n var gridShiftCode = applyGridShift(source, false, point);\n if (gridShiftCode !== 0) {\n return undefined;\n }\n source_a = SRS_WGS84_SEMIMAJOR;\n source_es = SRS_WGS84_ESQUARED;\n }\n\n var dest_a = dest.a;\n var dest_b = dest.b;\n var dest_es = dest.es;\n if (dest.datum_type === PJD_GRIDSHIFT) {\n dest_a = SRS_WGS84_SEMIMAJOR;\n dest_b = SRS_WGS84_SEMIMINOR;\n dest_es = SRS_WGS84_ESQUARED;\n }\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 point = geocentricToGeodetic(point, dest_es, dest_a, dest_b);\n\n if (dest.datum_type === PJD_GRIDSHIFT) {\n var destGridShiftResult = applyGridShift(dest, true, point);\n if (destGridShiftResult !== 0) {\n return undefined;\n }\n }\n\n return point;\n}\n\nexport function applyGridShift(source, inverse, point) {\n if (source.grids === null || source.grids.length === 0) {\n console.log('Grid shift grids not found');\n return -1;\n }\n var input = {x: -point.x, y: point.y};\n var output = {x: Number.NaN, y: Number.NaN};\n var onlyMandatoryGrids = false;\n var attemptedGrids = [];\n for (var i = 0; i < source.grids.length; i++) {\n var grid = source.grids[i];\n attemptedGrids.push(grid.name);\n if (grid.isNull) {\n output = input;\n break;\n }\n onlyMandatoryGrids = grid.mandatory;\n if (grid.grid === null) {\n if (grid.mandatory) {\n console.log(\"Unable to find mandatory grid '\" + grid.name + \"'\");\n return -1;\n }\n continue;\n }\n var subgrid = grid.grid.subgrids[0];\n // skip tables that don't match our point at all\n var epsilon = (Math.abs(subgrid.del[1]) + Math.abs(subgrid.del[0])) / 10000.0;\n var minX = subgrid.ll[0] - epsilon;\n var minY = subgrid.ll[1] - epsilon;\n var maxX = subgrid.ll[0] + (subgrid.lim[0] - 1) * subgrid.del[0] + epsilon;\n var maxY = subgrid.ll[1] + (subgrid.lim[1] - 1) * subgrid.del[1] + epsilon;\n if (minY > input.y || minX > input.x || maxY < input.y || maxX < input.x ) {\n continue;\n }\n output = applySubgridShift(input, inverse, subgrid);\n if (!isNaN(output.x)) {\n break;\n }\n }\n if (isNaN(output.x)) {\n console.log(\"Failed to find a grid shift table for location '\"+\n -input.x * R2D + \" \" + input.y * R2D + \" tried: '\" + attemptedGrids + \"'\");\n return -1;\n }\n point.x = -output.x;\n point.y = output.y;\n return 0;\n}\n\nfunction applySubgridShift(pin, inverse, ct) {\n var val = {x: Number.NaN, y: Number.NaN};\n if (isNaN(pin.x)) { return val; }\n var tb = {x: pin.x, y: pin.y};\n tb.x -= ct.ll[0];\n tb.y -= ct.ll[1];\n tb.x = adjust_lon(tb.x - Math.PI) + Math.PI;\n var t = nadInterpolate(tb, ct);\n if (inverse) {\n if (isNaN(t.x)) {\n return val;\n }\n t.x = tb.x - t.x;\n t.y = tb.y - t.y;\n var i = 9, tol = 1e-12;\n var dif, del;\n do {\n del = nadInterpolate(t, ct);\n if (isNaN(del.x)) {\n console.log(\"Inverse grid shift iteration failed, presumably at grid edge. Using first approximation.\");\n break;\n }\n dif = {x: tb.x - (del.x + t.x), y: tb.y - (del.y + t.y)};\n t.x += dif.x;\n t.y += dif.y;\n } while (i-- && Math.abs(dif.x) > tol && Math.abs(dif.y) > tol);\n if (i < 0) {\n console.log(\"Inverse grid shift iterator failed to converge.\");\n return val;\n }\n val.x = adjust_lon(t.x + ct.ll[0]);\n val.y = t.y + ct.ll[1];\n } else {\n if (!isNaN(t.x)) {\n val.x = pin.x + t.x;\n val.y = pin.y + t.y;\n }\n }\n return val;\n}\n\nfunction nadInterpolate(pin, ct) {\n var t = {x: pin.x / ct.del[0], y: pin.y / ct.del[1]};\n var indx = {x: Math.floor(t.x), y: Math.floor(t.y)};\n var frct = {x: t.x - 1.0 * indx.x, y: t.y - 1.0 * indx.y};\n var val= {x: Number.NaN, y: Number.NaN};\n var inx;\n if (indx.x < 0 || indx.x >= ct.lim[0]) {\n return val;\n }\n if (indx.y < 0 || indx.y >= ct.lim[1]) {\n return val;\n }\n inx = (indx.y * ct.lim[0]) + indx.x;\n var f00 = {x: ct.cvs[inx][0], y: ct.cvs[inx][1]};\n inx++;\n var f10= {x: ct.cvs[inx][0], y: ct.cvs[inx][1]};\n inx += ct.lim[0];\n var f11 = {x: ct.cvs[inx][0], y: ct.cvs[inx][1]};\n inx--;\n var f01 = {x: ct.cvs[inx][0], y: ct.cvs[inx][1]};\n var m11 = frct.x * frct.y, m10 = frct.x * (1.0 - frct.y),\n m00 = (1.0 - frct.x) * (1.0 - frct.y), m01 = (1.0 - frct.x) * frct.y;\n val.x = (m00 * f00.x + m10 * f10.x + m01 * f01.x + m11 * f11.x);\n val.y = (m00 * f00.y + m10 * f10.y + m01 * f01.y + m11 * f11.y);\n return val;\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 out[t] = v;\n break;\n case 'w':\n out[t] = -v;\n break;\n case 'n':\n out[t] = v;\n break;\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, PJD_GRIDSHIFT} 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 (\n (source.datum.datum_type === PJD_3PARAM || source.datum.datum_type === PJD_7PARAM || source.datum.datum_type === PJD_GRIDSHIFT) && dest.datumCode !== 'WGS84') ||\n ((dest.datum.datum_type === PJD_3PARAM || dest.datum.datum_type === PJD_7PARAM || dest.datum.datum_type === PJD_GRIDSHIFT) && source.datumCode !== 'WGS84');\n}\n\nexport default function transform(source, dest, point, enforceAxis) {\n var wgs84;\n if (Array.isArray(point)) {\n point = toPoint(point);\n } else {\n // Clone the point object so inputs don't get modified\n point = {\n x: point.x,\n y: point.y,\n z: point.z,\n m: point.m\n };\n }\n var hasZ = point.z !== undefined;\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, enforceAxis);\n source = wgs84;\n }\n // DGR, 2010/11/12\n if (enforceAxis && 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 if (!point) {\n return;\n }\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 (enforceAxis && dest.axis !== 'enu') {\n return adjust_axis(dest, true, point);\n }\n\n if (!hasZ) {\n delete point.z;\n }\n return point;\n}\n","import proj from './Proj';\nimport transform from './transform';\nvar wgs84 = proj('WGS84');\n\nfunction transformer(from, to, coords, enforceAxis) {\n var transformedArray, out, keys;\n if (Array.isArray(coords)) {\n transformedArray = transform(from, to, coords, enforceAxis) || {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, enforceAxis);\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, enforceAxis) {\n return transformer(fromProj, toProj, coords, enforceAxis);\n },\n inverse: function (coords, enforceAxis) {\n return transformer(toProj, fromProj, coords, enforceAxis);\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 = [\"Fast_Transverse_Mercator\", \"Fast Transverse Mercator\"];\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","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 tmerc from '../projections/tmerc';\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.approx && (isNaN(this.es) || this.es <= 0)) {\n throw new Error('Incorrect elliptical usage. Try using the +approx option in the proj string, or PROJECTION[\"Fast_Transverse_Mercator\"] in the WKT.');\n }\n if (this.approx) {\n // When '+approx' is set, use tmerc instead\n tmerc.init.apply(this);\n this.forward = tmerc.forward;\n this.inverse = tmerc.inverse;\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\", \"Transverse_Mercator\", \"Transverse Mercator\", \"tmerc\"];\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 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","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 { D2R, EPSLN, HALF_PI, TWO_PI, FORTPI } from '../constants/values';\n\nvar TOL = 1e-7;\n\nfunction isTypeA(P) {\n var typeAProjections = ['Hotine_Oblique_Mercator','Hotine_Oblique_Mercator_Azimuth_Natural_Origin'];\n var projectionName = typeof P.PROJECTION === \"object\" ? Object.keys(P.PROJECTION)[0] : P.PROJECTION;\n \n return 'no_uoff' in P || 'no_off' in P || typeAProjections.indexOf(projectionName) !== -1;\n}\n\n\n/* Initialize the Oblique Mercator projection\n ------------------------------------------*/\nexport function init() { \n var con, com, cosph0, D, F, H, L, sinph0, p, J, gamma = 0,\n gamma0, lamc = 0, lam1 = 0, lam2 = 0, phi1 = 0, phi2 = 0, alpha_c = 0, AB;\n \n // only Type A uses the no_off or no_uoff property\n // https://github.com/OSGeo/proj.4/issues/104\n this.no_off = isTypeA(this);\n this.no_rot = 'no_rot' in this;\n \n var alp = false;\n if (\"alpha\" in this) {\n alp = true;\n }\n\n var gam = false;\n if (\"rectified_grid_angle\" in this) {\n gam = true;\n }\n\n if (alp) {\n alpha_c = this.alpha;\n }\n \n if (gam) {\n gamma = (this.rectified_grid_angle * D2R);\n }\n \n if (alp || gam) {\n lamc = this.longc;\n } else {\n lam1 = this.long1;\n phi1 = this.lat1;\n lam2 = this.long2;\n phi2 = this.lat2;\n \n if (Math.abs(phi1 - phi2) <= TOL || (con = Math.abs(phi1)) <= TOL ||\n Math.abs(con - HALF_PI) <= TOL || Math.abs(Math.abs(this.lat0) - HALF_PI) <= TOL ||\n Math.abs(Math.abs(phi2) - HALF_PI) <= TOL) {\n throw new Error();\n }\n }\n \n var one_es = 1.0 - this.es;\n com = Math.sqrt(one_es);\n \n if (Math.abs(this.lat0) > EPSLN) {\n sinph0 = Math.sin(this.lat0);\n cosph0 = Math.cos(this.lat0);\n con = 1 - this.es * sinph0 * sinph0;\n this.B = cosph0 * cosph0;\n this.B = Math.sqrt(1 + this.es * this.B * this.B / one_es);\n this.A = this.B * this.k0 * com / con;\n D = this.B * com / (cosph0 * Math.sqrt(con));\n F = D * D -1;\n \n if (F <= 0) {\n F = 0;\n } else {\n F = Math.sqrt(F);\n if (this.lat0 < 0) {\n F = -F;\n }\n }\n \n this.E = F += D;\n this.E *= Math.pow(tsfnz(this.e, this.lat0, sinph0), this.B);\n } else {\n this.B = 1 / com;\n this.A = this.k0;\n this.E = D = F = 1;\n }\n \n if (alp || gam) {\n if (alp) {\n gamma0 = Math.asin(Math.sin(alpha_c) / D);\n if (!gam) {\n gamma = alpha_c;\n }\n } else {\n gamma0 = gamma;\n alpha_c = Math.asin(D * Math.sin(gamma0));\n }\n this.lam0 = lamc - Math.asin(0.5 * (F - 1 / F) * Math.tan(gamma0)) / this.B;\n } else {\n H = Math.pow(tsfnz(this.e, phi1, Math.sin(phi1)), this.B);\n L = Math.pow(tsfnz(this.e, phi2, Math.sin(phi2)), this.B);\n F = this.E / H;\n p = (L - H) / (L + H);\n J = this.E * this.E;\n J = (J - L * H) / (J + L * H);\n con = lam1 - lam2;\n \n if (con < -Math.pi) {\n lam2 -=TWO_PI;\n } else if (con > Math.pi) {\n lam2 += TWO_PI;\n }\n \n this.lam0 = adjust_lon(0.5 * (lam1 + lam2) - Math.atan(J * Math.tan(0.5 * this.B * (lam1 - lam2)) / p) / this.B);\n gamma0 = Math.atan(2 * Math.sin(this.B * adjust_lon(lam1 - this.lam0)) / (F - 1 / F));\n gamma = alpha_c = Math.asin(D * Math.sin(gamma0));\n }\n \n this.singam = Math.sin(gamma0);\n this.cosgam = Math.cos(gamma0);\n this.sinrot = Math.sin(gamma);\n this.cosrot = Math.cos(gamma);\n \n this.rB = 1 / this.B;\n this.ArB = this.A * this.rB;\n this.BrA = 1 / this.ArB;\n AB = this.A * this.B;\n \n if (this.no_off) {\n this.u_0 = 0;\n } else {\n this.u_0 = Math.abs(this.ArB * Math.atan(Math.sqrt(D * D - 1) / Math.cos(alpha_c)));\n \n if (this.lat0 < 0) {\n this.u_0 = - this.u_0;\n } \n }\n \n F = 0.5 * gamma0;\n this.v_pole_n = this.ArB * Math.log(Math.tan(FORTPI - F));\n this.v_pole_s = this.ArB * Math.log(Math.tan(FORTPI + F));\n}\n\n\n/* Oblique Mercator forward equations--mapping lat,long to x,y\n ----------------------------------------------------------*/\nexport function forward(p) {\n var coords = {};\n var S, T, U, V, W, temp, u, v;\n p.x = p.x - this.lam0;\n \n if (Math.abs(Math.abs(p.y) - HALF_PI) > EPSLN) {\n W = this.E / Math.pow(tsfnz(this.e, p.y, Math.sin(p.y)), this.B);\n \n temp = 1 / W;\n S = 0.5 * (W - temp);\n T = 0.5 * (W + temp);\n V = Math.sin(this.B * p.x);\n U = (S * this.singam - V * this.cosgam) / T;\n \n if (Math.abs(Math.abs(U) - 1.0) < EPSLN) {\n throw new Error();\n }\n \n v = 0.5 * this.ArB * Math.log((1 - U)/(1 + U));\n temp = Math.cos(this.B * p.x);\n \n if (Math.abs(temp) < TOL) {\n u = this.A * p.x;\n } else {\n u = this.ArB * Math.atan2((S * this.cosgam + V * this.singam), temp);\n } \n } else {\n v = p.y > 0 ? this.v_pole_n : this.v_pole_s;\n u = this.ArB * p.y;\n }\n \n if (this.no_rot) {\n coords.x = u;\n coords.y = v;\n } else {\n u -= this.u_0;\n coords.x = v * this.cosrot + u * this.sinrot;\n coords.y = u * this.cosrot - v * this.sinrot;\n }\n \n coords.x = (this.a * coords.x + this.x0);\n coords.y = (this.a * coords.y + this.y0);\n \n return coords;\n}\n\nexport function inverse(p) {\n var u, v, Qp, Sp, Tp, Vp, Up;\n var coords = {};\n \n p.x = (p.x - this.x0) * (1.0 / this.a);\n p.y = (p.y - this.y0) * (1.0 / this.a);\n\n if (this.no_rot) {\n v = p.y;\n u = p.x;\n } else {\n v = p.x * this.cosrot - p.y * this.sinrot;\n u = p.y * this.cosrot + p.x * this.sinrot + this.u_0;\n }\n \n Qp = Math.exp(-this.BrA * v);\n Sp = 0.5 * (Qp - 1 / Qp);\n Tp = 0.5 * (Qp + 1 / Qp);\n Vp = Math.sin(this.BrA * u);\n Up = (Vp * this.cosgam + Sp * this.singam) / Tp;\n \n if (Math.abs(Math.abs(Up) - 1) < EPSLN) {\n coords.x = 0;\n coords.y = Up < 0 ? -HALF_PI : HALF_PI;\n } else {\n coords.y = this.E / Math.sqrt((1 + Up) / (1 - Up));\n coords.y = phi2z(this.e, Math.pow(coords.y, 1 / this.B));\n \n if (coords.y === Infinity) {\n throw new Error();\n }\n \n coords.x = -this.rB * Math.atan2((Sp * this.cosgam - Vp * this.singam), Math.cos(this.BrA * u));\n }\n \n coords.x += this.lam0;\n \n return coords;\n}\n\nexport var names = [\"Hotine_Oblique_Mercator\", \"Hotine Oblique Mercator\", \"Hotine_Oblique_Mercator_Azimuth_Natural_Origin\", \"Hotine_Oblique_Mercator_Two_Point_Natural_Origin\", \"Hotine_Oblique_Mercator_Azimuth_Center\", \"Oblique_Mercator\", \"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 //double lat0; /* the reference latitude */\n //double long0; /* the reference 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 //the above value can be set with proj4.defs\n //example: proj4.defs(\"EPSG:2154\",\"+proj=lcc +lat_1=49 +lat_2=44 +lat_0=46.5 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs\");\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 = [\n \"Lambert Tangential Conformal Conic Projection\",\n \"Lambert_Conformal_Conic\",\n \"Lambert_Conformal_Conic_1SP\",\n \"Lambert_Conformal_Conic_2SP\",\n \"lcc\",\n \"Lambert Conic Conformal (1SP)\",\n \"Lambert Conic Conformal (2SP)\"\n];\n\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);\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);\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);\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);\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};","\nvar mode = {\n N_POLE: 0,\n S_POLE: 1,\n EQUIT: 2,\n OBLIQ: 3\n};\n\nimport { D2R, HALF_PI, EPSLN } from \"../constants/values\";\nimport hypot from \"../common/hypot\";\n\nvar params = {\n h: { def: 100000, num: true }, // default is Karman line, no default in PROJ.7\n azi: { def: 0, num: true, degrees: true }, // default is North\n tilt: { def: 0, num: true, degrees: true }, // default is Nadir\n long0: { def: 0, num: true }, // default is Greenwich, conversion to rad is automatic\n lat0: { def: 0, num: true } // default is Equator, conversion to rad is automatic\n};\n\nexport function init() {\n Object.keys(params).forEach(function (p) {\n if (typeof this[p] === \"undefined\") {\n this[p] = params[p].def;\n } else if (params[p].num && isNaN(this[p])) {\n throw new Error(\"Invalid parameter value, must be numeric \" + p + \" = \" + this[p]);\n } else if (params[p].num) {\n this[p] = parseFloat(this[p]);\n }\n if (params[p].degrees) {\n this[p] = this[p] * D2R;\n }\n }.bind(this));\n\n if (Math.abs((Math.abs(this.lat0) - HALF_PI)) < EPSLN) {\n this.mode = this.lat0 < 0 ? mode.S_POLE : mode.N_POLE;\n } else if (Math.abs(this.lat0) < EPSLN) {\n this.mode = mode.EQUIT;\n } else {\n this.mode = mode.OBLIQ;\n this.sinph0 = Math.sin(this.lat0);\n this.cosph0 = Math.cos(this.lat0);\n }\n\n this.pn1 = this.h / this.a; // Normalize relative to the Earth's radius\n\n if (this.pn1 <= 0 || this.pn1 > 1e10) {\n throw new Error(\"Invalid height\");\n }\n \n this.p = 1 + this.pn1;\n this.rp = 1 / this.p;\n this.h1 = 1 / this.pn1;\n this.pfact = (this.p + 1) * this.h1;\n this.es = 0;\n\n var omega = this.tilt;\n var gamma = this.azi;\n this.cg = Math.cos(gamma);\n this.sg = Math.sin(gamma);\n this.cw = Math.cos(omega);\n this.sw = Math.sin(omega);\n}\n\nexport function forward(p) {\n p.x -= this.long0;\n var sinphi = Math.sin(p.y);\n var cosphi = Math.cos(p.y);\n var coslam = Math.cos(p.x);\n var x, y;\n switch (this.mode) {\n case mode.OBLIQ:\n y = this.sinph0 * sinphi + this.cosph0 * cosphi * coslam;\n break;\n case mode.EQUIT:\n y = cosphi * coslam;\n break;\n case mode.S_POLE:\n y = -sinphi;\n break;\n case mode.N_POLE:\n y = sinphi;\n break;\n }\n y = this.pn1 / (this.p - y);\n x = y * cosphi * Math.sin(p.x);\n\n switch (this.mode) {\n case mode.OBLIQ:\n y *= this.cosph0 * sinphi - this.sinph0 * cosphi * coslam;\n break;\n case mode.EQUIT:\n y *= sinphi;\n break;\n case mode.N_POLE:\n y *= -(cosphi * coslam);\n break;\n case mode.S_POLE:\n y *= cosphi * coslam;\n break;\n }\n\n // Tilt \n var yt, ba;\n yt = y * this.cg + x * this.sg;\n ba = 1 / (yt * this.sw * this.h1 + this.cw);\n x = (x * this.cg - y * this.sg) * this.cw * ba;\n y = yt * ba;\n\n p.x = x * this.a;\n p.y = y * this.a;\n return p;\n}\n\nexport function inverse(p) {\n p.x /= this.a;\n p.y /= this.a;\n var r = { x: p.x, y: p.y };\n\n // Un-Tilt\n var bm, bq, yt;\n yt = 1 / (this.pn1 - p.y * this.sw);\n bm = this.pn1 * p.x * yt;\n bq = this.pn1 * p.y * this.cw * yt;\n p.x = bm * this.cg + bq * this.sg;\n p.y = bq * this.cg - bm * this.sg;\n\n var rh = hypot(p.x, p.y);\n if (Math.abs(rh) < EPSLN) {\n r.x = 0;\n r.y = p.y;\n } else {\n var cosz, sinz;\n sinz = 1 - rh * rh * this.pfact;\n sinz = (this.p - Math.sqrt(sinz)) / (this.pn1 / rh + rh / this.pn1);\n cosz = Math.sqrt(1 - sinz * sinz);\n switch (this.mode) {\n case mode.OBLIQ:\n r.y = Math.asin(cosz * this.sinph0 + p.y * sinz * this.cosph0 / rh);\n p.y = (cosz - this.sinph0 * Math.sin(r.y)) * rh;\n p.x *= sinz * this.cosph0;\n break;\n case mode.EQUIT:\n r.y = Math.asin(p.y * sinz / rh);\n p.y = cosz * rh;\n p.x *= sinz;\n break;\n case mode.N_POLE:\n r.y = Math.asin(cosz);\n p.y = -p.y;\n break;\n case mode.S_POLE:\n r.y = -Math.asin(cosz);\n break;\n }\n r.x = Math.atan2(p.x, p.y);\n }\n\n p.x = r.x + this.long0;\n p.y = r.y;\n return p;\n}\n\nexport var names = [\"Tilted_Perspective\", \"tpers\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import hypot from '../common/hypot';\n\nexport function init() {\n this.flip_axis = (this.sweep === 'x' ? 1 : 0);\n this.h = Number(this.h);\n this.radius_g_1 = this.h / this.a;\n\n if (this.radius_g_1 <= 0 || this.radius_g_1 > 1e10) {\n throw new Error();\n }\n\n this.radius_g = 1.0 + this.radius_g_1;\n this.C = this.radius_g * this.radius_g - 1.0;\n\n if (this.es !== 0.0) {\n var one_es = 1.0 - this.es;\n var rone_es = 1 / one_es;\n\n this.radius_p = Math.sqrt(one_es);\n this.radius_p2 = one_es;\n this.radius_p_inv2 = rone_es;\n\n this.shape = 'ellipse'; // Use as a condition in the forward and inverse functions.\n } else {\n this.radius_p = 1.0;\n this.radius_p2 = 1.0;\n this.radius_p_inv2 = 1.0;\n\n this.shape = 'sphere'; // Use as a condition in the forward and inverse functions.\n }\n\n if (!this.title) {\n this.title = \"Geostationary Satellite View\";\n }\n}\n\nfunction forward(p) {\n var lon = p.x;\n var lat = p.y;\n var tmp, v_x, v_y, v_z;\n lon = lon - this.long0;\n\n if (this.shape === 'ellipse') {\n lat = Math.atan(this.radius_p2 * Math.tan(lat));\n var r = this.radius_p / hypot(this.radius_p * Math.cos(lat), Math.sin(lat));\n\n v_x = r * Math.cos(lon) * Math.cos(lat);\n v_y = r * Math.sin(lon) * Math.cos(lat);\n v_z = r * Math.sin(lat);\n\n if (((this.radius_g - v_x) * v_x - v_y * v_y - v_z * v_z * this.radius_p_inv2) < 0.0) {\n p.x = Number.NaN;\n p.y = Number.NaN;\n return p;\n }\n\n tmp = this.radius_g - v_x;\n if (this.flip_axis) {\n p.x = this.radius_g_1 * Math.atan(v_y / hypot(v_z, tmp));\n p.y = this.radius_g_1 * Math.atan(v_z / tmp);\n } else {\n p.x = this.radius_g_1 * Math.atan(v_y / tmp);\n p.y = this.radius_g_1 * Math.atan(v_z / hypot(v_y, tmp));\n }\n } else if (this.shape === 'sphere') {\n tmp = Math.cos(lat);\n v_x = Math.cos(lon) * tmp;\n v_y = Math.sin(lon) * tmp;\n v_z = Math.sin(lat);\n tmp = this.radius_g - v_x;\n\n if (this.flip_axis) {\n p.x = this.radius_g_1 * Math.atan(v_y / hypot(v_z, tmp));\n p.y = this.radius_g_1 * Math.atan(v_z / tmp);\n } else {\n p.x = this.radius_g_1 * Math.atan(v_y / tmp);\n p.y = this.radius_g_1 * Math.atan(v_z / hypot(v_y, tmp));\n }\n }\n p.x = p.x * this.a;\n p.y = p.y * this.a;\n return p;\n}\n\nfunction inverse(p) {\n var v_x = -1.0;\n var v_y = 0.0;\n var v_z = 0.0;\n var a, b, det, k;\n\n p.x = p.x / this.a;\n p.y = p.y / this.a;\n\n if (this.shape === 'ellipse') {\n if (this.flip_axis) {\n v_z = Math.tan(p.y / this.radius_g_1);\n v_y = Math.tan(p.x / this.radius_g_1) * hypot(1.0, v_z);\n } else {\n v_y = Math.tan(p.x / this.radius_g_1);\n v_z = Math.tan(p.y / this.radius_g_1) * hypot(1.0, v_y);\n }\n\n var v_zp = v_z / this.radius_p;\n a = v_y * v_y + v_zp * v_zp + v_x * v_x;\n b = 2 * this.radius_g * v_x;\n det = (b * b) - 4 * a * this.C;\n\n if (det < 0.0) {\n p.x = Number.NaN;\n p.y = Number.NaN;\n return p;\n }\n\n k = (-b - Math.sqrt(det)) / (2.0 * a);\n v_x = this.radius_g + k * v_x;\n v_y *= k;\n v_z *= k;\n\n p.x = Math.atan2(v_y, v_x);\n p.y = Math.atan(v_z * Math.cos(p.x) / v_x);\n p.y = Math.atan(this.radius_p_inv2 * Math.tan(p.y));\n } else if (this.shape === 'sphere') {\n if (this.flip_axis) {\n v_z = Math.tan(p.y / this.radius_g_1);\n v_y = Math.tan(p.x / this.radius_g_1) * Math.sqrt(1.0 + v_z * v_z);\n } else {\n v_y = Math.tan(p.x / this.radius_g_1);\n v_z = Math.tan(p.y / this.radius_g_1) * Math.sqrt(1.0 + v_y * v_y);\n }\n\n a = v_y * v_y + v_z * v_z + v_x * v_x;\n b = 2 * this.radius_g * v_x;\n det = (b * b) - 4 * a * this.C;\n if (det < 0.0) {\n p.x = Number.NaN;\n p.y = Number.NaN;\n return p;\n }\n\n k = (-b - Math.sqrt(det)) / (2.0 * a);\n v_x = this.radius_g + k * v_x;\n v_y *= k;\n v_z *= k;\n\n p.x = Math.atan2(v_y, v_x);\n p.y = Math.atan(v_z * Math.cos(p.x) / v_x);\n }\n p.x = p.x + this.long0;\n return p;\n}\n\nexport var names = [\"Geostationary Satellite View\", \"Geostationary_Satellite\", \"geos\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names,\n};\n\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';\nimport tpers from './lib/projections/tpers';\nimport geos from './lib/projections/geos';\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 proj4.Proj.projections.add(tpers);\n proj4.Proj.projections.add(geos);\n}","import proj4 from './core';\nimport Proj from \"./Proj\";\nimport Point from \"./Point\";\nimport common from \"./common/toPoint\";\nimport defs from \"./defs\";\nimport nadgrid from \"./nadgrid\";\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.nadgrid = nadgrid;\nproj4.transform = transform;\nproj4.mgrs = mgrs;\nproj4.version = '__VERSION__';\nincludedProjections(proj4);\nexport default proj4;\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\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=t||self).RBush=i()}(this,function(){\"use strict\";function t(t,r,e,a,h){!function t(n,r,e,a,h){for(;a>e;){if(a-e>600){var o=a-e+1,s=r-e+1,l=Math.log(o),f=.5*Math.exp(2*l/3),u=.5*Math.sqrt(l*f*(o-f)/o)*(s-o/2<0?-1:1),m=Math.max(e,Math.floor(r-s*f/o+u)),c=Math.min(a,Math.floor(r+(o-s)*f/o+u));t(n,r,m,c,h)}var p=n[r],d=e,x=a;for(i(n,e,r),h(n[a],p)>0&&i(n,e,a);d0;)x--}0===h(n[e],p)?i(n,e,x):i(n,++x,a),x<=r&&(e=x+1),r<=x&&(a=x-1)}}(t,r,e||0,a||t.length-1,h||n)}function i(t,i,n){var r=t[i];t[i]=t[n],t[n]=r}function n(t,i){return ti?1:0}var r=function(t){void 0===t&&(t=9),this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function e(t,i,n){if(!n)return i.indexOf(t);for(var r=0;r=t.minX&&i.maxY>=t.minY}function p(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function d(i,n,r,e,a){for(var h=[n,r];h.length;)if(!((r=h.pop())-(n=h.pop())<=e)){var o=n+Math.ceil((r-n)/e/2)*e;t(i,o,n,r,a),h.push(n,o,o,r)}}return r.prototype.all=function(){return this._all(this.data,[])},r.prototype.search=function(t){var i=this.data,n=[];if(!c(t,i))return n;for(var r=this.toBBox,e=[];i;){for(var a=0;a=0&&e[i].children.length>this._maxEntries;)this._split(e,i),i--;this._adjustParentBBoxes(r,e,i)},r.prototype._split=function(t,i){var n=t[i],r=n.children.length,e=this._minEntries;this._chooseSplitAxis(n,e,r);var h=this._chooseSplitIndex(n,e,r),o=p(n.children.splice(h,n.children.length-h));o.height=n.height,o.leaf=n.leaf,a(n,this.toBBox),a(o,this.toBBox),i?t[i-1].children.push(o):this._splitRoot(n,o)},r.prototype._splitRoot=function(t,i){this.data=p([t,i]),this.data.height=t.height+1,this.data.leaf=!1,a(this.data,this.toBBox)},r.prototype._chooseSplitIndex=function(t,i,n){for(var r,e,a,o,s,l,u,m=1/0,c=1/0,p=i;p<=n-i;p++){var d=h(t,0,p,this.toBBox),x=h(t,p,n,this.toBBox),v=(e=d,a=x,o=void 0,s=void 0,l=void 0,u=void 0,o=Math.max(e.minX,a.minX),s=Math.max(e.minY,a.minY),l=Math.min(e.maxX,a.maxX),u=Math.min(e.maxY,a.maxY),Math.max(0,l-o)*Math.max(0,u-s)),M=f(d)+f(x);v=i;c--){var p=t.children[c];o(s,t.leaf?e(p):p),l+=u(s)}return l},r.prototype._adjustParentBBoxes=function(t,i,n){for(var r=n;r>=0;r--)o(i[r],t)},r.prototype._condense=function(t){for(var i=t.length-1,n=void 0;i>=0;i--)0===t[i].children.length?i>0?(n=t[i-1].children).splice(n.indexOf(t[i]),1):this.clear():a(t[i],this.toBBox)},r});\n","/** @license React v17.0.2\n * react-dom.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 Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){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;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(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(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(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 jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(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 mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=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!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!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=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=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();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=Xa(a.document)}return b}function Oe(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)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;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 Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(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(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){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,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta: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=d.sibling}d=\nWg(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=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(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||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&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}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,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.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(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);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e= 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); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { 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\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 _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\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); 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 } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); 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; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } 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 { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], 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\n//\n// Define \n//\nvar Draggable = /*#__PURE__*/function (_React$Component) {\n _inherits(Draggable, _React$Component);\n\n var _super = _createSuper(Draggable);\n\n function Draggable(props\n /*: DraggableProps*/\n ) {\n var _this;\n\n _classCallCheck(this, Draggable);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStart\", function (e, coreData) {\n (0, _log.default)('Draggable: onDragStart: %j', coreData); // Short-circuit if user's callback killed it.\n\n var shouldStart = _this.props.onStart(e, (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData)); // Kills start event on core as well, so move handlers are never bound.\n\n\n if (shouldStart === false) return false;\n\n _this.setState({\n dragging: true,\n dragged: true\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDrag\", function (e, coreData) {\n if (!_this.state.dragging) return false;\n (0, _log.default)('Draggable: onDrag: %j', coreData);\n var uiData = (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData);\n var newState\n /*: $Shape*/\n = {\n x: uiData.x,\n y: uiData.y\n }; // Keep within bounds.\n\n if (_this.props.bounds) {\n // Save original x and y.\n var x = newState.x,\n y = newState.y; // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n\n newState.x += _this.state.slackX;\n newState.y += _this.state.slackY; // Get bound position. This will ceil/floor the x and y within the boundaries.\n\n var _getBoundPosition = (0, _positionFns.getBoundPosition)(_assertThisInitialized(_this), newState.x, newState.y),\n _getBoundPosition2 = _slicedToArray(_getBoundPosition, 2),\n newStateX = _getBoundPosition2[0],\n newStateY = _getBoundPosition2[1];\n\n newState.x = newStateX;\n newState.y = newStateY; // Recalculate slack by noting how much was shaved by the boundPosition handler.\n\n newState.slackX = _this.state.slackX + (x - newState.x);\n newState.slackY = _this.state.slackY + (y - newState.y); // Update the event we fire to reflect what really happened after bounds took effect.\n\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - _this.state.x;\n uiData.deltaY = newState.y - _this.state.y;\n } // Short-circuit if user's callback killed it.\n\n\n var shouldUpdate = _this.props.onDrag(e, uiData);\n\n if (shouldUpdate === false) return false;\n\n _this.setState(newState);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStop\", function (e, coreData) {\n if (!_this.state.dragging) return false; // Short-circuit if user's callback killed it.\n\n var shouldContinue = _this.props.onStop(e, (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData));\n\n if (shouldContinue === false) return false;\n (0, _log.default)('Draggable: onDragStop: %j', coreData);\n var newState\n /*: $Shape*/\n = {\n dragging: false,\n slackX: 0,\n slackY: 0\n }; // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n\n var controlled = Boolean(_this.props.position);\n\n if (controlled) {\n var _this$props$position = _this.props.position,\n x = _this$props$position.x,\n y = _this$props$position.y;\n newState.x = x;\n newState.y = y;\n }\n\n _this.setState(newState);\n });\n\n _this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n // Whether or not we have been dragged before.\n dragged: false,\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n prevPropsPosition: _objectSpread({}, props.position),\n // Used for compensating for out-of-bounds drags\n slackX: 0,\n slackY: 0,\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n\n if (props.position && !(props.onDrag || props.onStop)) {\n // eslint-disable-next-line no-console\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' + 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' + '`position` of this element.');\n }\n\n return _this;\n }\n\n _createClass(Draggable, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if (typeof window.SVGElement !== 'undefined' && this.findDOMNode() instanceof window.SVGElement) {\n this.setState({\n isElementSVG: true\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.setState({\n dragging: false\n }); // prevents invariant if unmounted while dragging\n } // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find\n // the underlying DOM node ourselves. See the README for more information.\n\n }, {\n key: \"findDOMNode\",\n value: function findDOMNode()\n /*: ?HTMLElement*/\n {\n var _this$props$nodeRef$c, _this$props, _this$props$nodeRef;\n\n return (_this$props$nodeRef$c = (_this$props = this.props) === null || _this$props === void 0 ? void 0 : (_this$props$nodeRef = _this$props.nodeRef) === null || _this$props$nodeRef === void 0 ? void 0 : _this$props$nodeRef.current) !== null && _this$props$nodeRef$c !== void 0 ? _this$props$nodeRef$c : _reactDom.default.findDOMNode(this);\n }\n }, {\n key: \"render\",\n value: function render()\n /*: ReactElement*/\n {\n var _clsx;\n\n var _this$props2 = this.props,\n axis = _this$props2.axis,\n bounds = _this$props2.bounds,\n children = _this$props2.children,\n defaultPosition = _this$props2.defaultPosition,\n defaultClassName = _this$props2.defaultClassName,\n defaultClassNameDragging = _this$props2.defaultClassNameDragging,\n defaultClassNameDragged = _this$props2.defaultClassNameDragged,\n position = _this$props2.position,\n positionOffset = _this$props2.positionOffset,\n scale = _this$props2.scale,\n draggableCoreProps = _objectWithoutProperties(_this$props2, _excluded);\n\n var style = {};\n var svgTransform = null; // If this is controlled, we don't want to move it - unless it's dragging.\n\n var controlled = Boolean(position);\n var draggable = !controlled || this.state.dragging;\n var validPosition = position || defaultPosition;\n var transformOpts = {\n // Set left if horizontal drag is enabled\n x: (0, _positionFns.canDragX)(this) && draggable ? this.state.x : validPosition.x,\n // Set top if vertical drag is enabled\n y: (0, _positionFns.canDragY)(this) && draggable ? this.state.y : validPosition.y\n }; // If this element was SVG, we use the `transform` attribute.\n\n if (this.state.isElementSVG) {\n svgTransform = (0, _domFns.createSVGTransform)(transformOpts, positionOffset);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = (0, _domFns.createCSSTransform)(transformOpts, positionOffset);\n } // Mark with class while dragging\n\n\n var className = (0, _clsx2.default)(children.props.className || '', defaultClassName, (_clsx = {}, _defineProperty(_clsx, defaultClassNameDragging, this.state.dragging), _defineProperty(_clsx, defaultClassNameDragged, this.state.dragged), _clsx)); // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n\n return /*#__PURE__*/React.createElement(_DraggableCore.default, _extends({}, draggableCoreProps, {\n onStart: this.onDragStart,\n onDrag: this.onDrag,\n onStop: this.onDragStop\n }), /*#__PURE__*/React.cloneElement(React.Children.only(children), {\n className: className,\n style: _objectSpread(_objectSpread({}, children.props.style), style),\n transform: svgTransform\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: // React 16.3+\n // Arity (props, state)\n function getDerivedStateFromProps(_ref, _ref2)\n /*: ?$Shape*/\n {\n var position = _ref.position;\n var prevPropsPosition = _ref2.prevPropsPosition;\n\n // Set x/y if a new position is provided in props that is different than the previous.\n if (position && (!prevPropsPosition || position.x !== prevPropsPosition.x || position.y !== prevPropsPosition.y)) {\n (0, _log.default)('Draggable: getDerivedStateFromProps %j', {\n position: position,\n prevPropsPosition: prevPropsPosition\n });\n return {\n x: position.x,\n y: position.y,\n prevPropsPosition: _objectSpread({}, position)\n };\n }\n\n return null;\n }\n }]);\n\n return Draggable;\n}(React.Component);\n\nexports.default = Draggable;\n\n_defineProperty(Draggable, \"displayName\", 'Draggable');\n\n_defineProperty(Draggable, \"propTypes\", _objectSpread(_objectSpread({}, _DraggableCore.default.propTypes), {}, {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: _propTypes.default.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: _propTypes.default.oneOfType([_propTypes.default.shape({\n left: _propTypes.default.number,\n right: _propTypes.default.number,\n top: _propTypes.default.number,\n bottom: _propTypes.default.number\n }), _propTypes.default.string, _propTypes.default.oneOf([false])]),\n defaultClassName: _propTypes.default.string,\n defaultClassNameDragging: _propTypes.default.string,\n defaultClassNameDragged: _propTypes.default.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: _propTypes.default.shape({\n x: _propTypes.default.number,\n y: _propTypes.default.number\n }),\n positionOffset: _propTypes.default.shape({\n x: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),\n y: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: _propTypes.default.shape({\n x: _propTypes.default.number,\n y: _propTypes.default.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: _shims.dontSetMe,\n style: _shims.dontSetMe,\n transform: _shims.dontSetMe\n}));\n\n_defineProperty(Draggable, \"defaultProps\", _objectSpread(_objectSpread({}, _DraggableCore.default.defaultProps), {}, {\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {\n x: 0,\n y: 0\n },\n scale: 1\n}));","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _domFns = require(\"./utils/domFns\");\n\nvar _positionFns = require(\"./utils/positionFns\");\n\nvar _shims = require(\"./utils/shims\");\n\nvar _log = _interopRequireDefault(require(\"./utils/log\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { 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\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 _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\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); 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 } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); 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; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } 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 { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], 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\n// Simple abstraction for dragging events names.\nvar eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n}; // Default to mouse events.\n\nvar dragEventFor = eventsFor.mouse;\n/*:: type DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};*/\n\n/*:: export type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};*/\n\n/*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false;*/\n\n/*:: export type ControlPosition = {x: number, y: number};*/\n\n/*:: export type PositionOffsetControlPosition = {x: number|string, y: number|string};*/\n\n/*:: export type DraggableCoreDefaultProps = {\n allowAnyClick: boolean,\n disabled: boolean,\n enableUserSelectHack: boolean,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n scale: number,\n};*/\n\n/*:: export type DraggableCoreProps = {\n ...DraggableCoreDefaultProps,\n cancel: string,\n children: ReactElement,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n nodeRef?: ?React.ElementRef,\n};*/\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\nvar DraggableCore = /*#__PURE__*/function (_React$Component) {\n _inherits(DraggableCore, _React$Component);\n\n var _super = _createSuper(DraggableCore);\n\n function DraggableCore() {\n var _this;\n\n _classCallCheck(this, DraggableCore);\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), \"state\", {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN,\n lastY: NaN,\n touchIdentifier: null\n });\n\n _defineProperty(_assertThisInitialized(_this), \"mounted\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"handleDragStart\", function (e) {\n // Make it possible to attach event handlers on top of this one.\n _this.props.onMouseDown(e); // Only accept left-clicks.\n\n\n if (!_this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false; // Get nodes. Be sure to grab relative document (could be iframed)\n\n var thisNode = _this.findDOMNode();\n\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n\n var ownerDocument = thisNode.ownerDocument; // Short circuit if handle or cancel prop was provided and selector doesn't match.\n\n if (_this.props.disabled || !(e.target instanceof ownerDocument.defaultView.Node) || _this.props.handle && !(0, _domFns.matchesSelectorAndParentsTo)(e.target, _this.props.handle, thisNode) || _this.props.cancel && (0, _domFns.matchesSelectorAndParentsTo)(e.target, _this.props.cancel, thisNode)) {\n return;\n } // Prevent scrolling on mobile devices, like ipad/iphone.\n // Important that this is after handle/cancel.\n\n\n if (e.type === 'touchstart') e.preventDefault(); // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n\n var touchIdentifier = (0, _domFns.getTouchIdentifier)(e);\n\n _this.setState({\n touchIdentifier: touchIdentifier\n }); // Get the current drag point from the event. This is used as the offset.\n\n\n var position = (0, _positionFns.getControlPosition)(e, touchIdentifier, _assertThisInitialized(_this));\n if (position == null) return; // not possible but satisfies flow\n\n var x = position.x,\n y = position.y; // Create an event object with all the data parents need to make a decision here.\n\n var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y);\n (0, _log.default)('DraggableCore: handleDragStart: %j', coreEvent); // Call event handler. If it returns explicit false, cancel.\n\n (0, _log.default)('calling', _this.props.onStart);\n\n var shouldUpdate = _this.props.onStart(e, coreEvent);\n\n if (shouldUpdate === false || _this.mounted === false) return; // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n\n if (_this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument); // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n\n _this.setState({\n dragging: true,\n lastX: x,\n lastY: y\n }); // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n\n\n (0, _domFns.addEvent)(ownerDocument, dragEventFor.move, _this.handleDrag);\n (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, _this.handleDragStop);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleDrag\", function (e) {\n // Get the current drag point from the event. This is used as the offset.\n var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _assertThisInitialized(_this));\n if (position == null) return;\n var x = position.x,\n y = position.y; // Snap to grid if prop has been provided\n\n if (Array.isArray(_this.props.grid)) {\n var deltaX = x - _this.state.lastX,\n deltaY = y - _this.state.lastY;\n\n var _snapToGrid = (0, _positionFns.snapToGrid)(_this.props.grid, deltaX, deltaY);\n\n var _snapToGrid2 = _slicedToArray(_snapToGrid, 2);\n\n deltaX = _snapToGrid2[0];\n deltaY = _snapToGrid2[1];\n if (!deltaX && !deltaY) return; // skip useless drag\n\n x = _this.state.lastX + deltaX, y = _this.state.lastY + deltaY;\n }\n\n var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y);\n (0, _log.default)('DraggableCore: handleDrag: %j', coreEvent); // Call event handler. If it returns explicit false, trigger end.\n\n var shouldUpdate = _this.props.onDrag(e, coreEvent);\n\n if (shouldUpdate === false || _this.mounted === false) {\n try {\n // $FlowIgnore\n _this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n var event = ((document.createEvent('MouseEvents')\n /*: any*/\n )\n /*: MouseTouchEvent*/\n ); // I see why this insanity was deprecated\n // $FlowIgnore\n\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n\n _this.handleDragStop(event);\n }\n\n return;\n }\n\n _this.setState({\n lastX: x,\n lastY: y\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleDragStop\", function (e) {\n if (!_this.state.dragging) return;\n var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _assertThisInitialized(_this));\n if (position == null) return;\n var x = position.x,\n y = position.y; // Snap to grid if prop has been provided\n\n if (Array.isArray(_this.props.grid)) {\n var deltaX = x - _this.state.lastX || 0;\n var deltaY = y - _this.state.lastY || 0;\n\n var _snapToGrid3 = (0, _positionFns.snapToGrid)(_this.props.grid, deltaX, deltaY);\n\n var _snapToGrid4 = _slicedToArray(_snapToGrid3, 2);\n\n deltaX = _snapToGrid4[0];\n deltaY = _snapToGrid4[1];\n x = _this.state.lastX + deltaX, y = _this.state.lastY + deltaY;\n }\n\n var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y); // Call event handler\n\n var shouldContinue = _this.props.onStop(e, coreEvent);\n\n if (shouldContinue === false || _this.mounted === false) return false;\n\n var thisNode = _this.findDOMNode();\n\n if (thisNode) {\n // Remove user-select hack\n if (_this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(thisNode.ownerDocument);\n }\n\n (0, _log.default)('DraggableCore: handleDragStop: %j', coreEvent); // Reset the el.\n\n _this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n if (thisNode) {\n // Remove event handlers\n (0, _log.default)('DraggableCore: Removing handlers');\n (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.move, _this.handleDrag);\n (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.stop, _this.handleDragStop);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseDown\", function (e) {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return _this.handleDragStart(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseUp\", function (e) {\n dragEventFor = eventsFor.mouse;\n return _this.handleDragStop(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTouchStart\", function (e) {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n return _this.handleDragStart(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTouchEnd\", function (e) {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n return _this.handleDragStop(e);\n });\n\n return _this;\n }\n\n _createClass(DraggableCore, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.mounted = true; // Touch handlers must be added with {passive: false} to be cancelable.\n // https://developers.google.com/web/updates/2017/01/scrolling-intervention\n\n var thisNode = this.findDOMNode();\n\n if (thisNode) {\n (0, _domFns.addEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {\n passive: false\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false; // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n\n var thisNode = this.findDOMNode();\n\n if (thisNode) {\n var ownerDocument = thisNode.ownerDocument;\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n (0, _domFns.removeEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {\n passive: false\n });\n if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument);\n }\n } // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find\n // the underlying DOM node ourselves. See the README for more information.\n\n }, {\n key: \"findDOMNode\",\n value: function findDOMNode()\n /*: ?HTMLElement*/\n {\n var _this$props, _this$props2, _this$props2$nodeRef;\n\n return (_this$props = this.props) !== null && _this$props !== void 0 && _this$props.nodeRef ? (_this$props2 = this.props) === null || _this$props2 === void 0 ? void 0 : (_this$props2$nodeRef = _this$props2.nodeRef) === null || _this$props2$nodeRef === void 0 ? void 0 : _this$props2$nodeRef.current : _reactDom.default.findDOMNode(this);\n }\n }, {\n key: \"render\",\n value: function render()\n /*: React.Element*/\n {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return /*#__PURE__*/React.cloneElement(React.Children.only(this.props.children), {\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onMouseUp: this.onMouseUp,\n // onTouchStart is added on `componentDidMount` so they can be added with\n // {passive: false}, which allows it to cancel. See\n // https://developers.google.com/web/updates/2017/01/scrolling-intervention\n onTouchEnd: this.onTouchEnd\n });\n }\n }]);\n\n return DraggableCore;\n}(React.Component);\n\nexports.default = DraggableCore;\n\n_defineProperty(DraggableCore, \"displayName\", 'DraggableCore');\n\n_defineProperty(DraggableCore, \"propTypes\", {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: _propTypes.default.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: _propTypes.default.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: _propTypes.default.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function offsetParent(props\n /*: DraggableCoreProps*/\n , propName\n /*: $Keys*/\n ) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: _propTypes.default.arrayOf(_propTypes.default.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: _propTypes.default.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: _propTypes.default.string,\n\n /* If running in React Strict mode, ReactDOM.findDOMNode() is deprecated.\n * Unfortunately, in order for to work properly, we need raw access\n * to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef`\n * as in this example:\n *\n * function MyComponent() {\n * const nodeRef = React.useRef(null);\n * return (\n * \n *
Example Target
\n *
\n * );\n * }\n *\n * This can be used for arbitrarily nested components, so long as the ref ends up\n * pointing to the actual child DOM node and not a custom component.\n */\n nodeRef: _propTypes.default.object,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: _propTypes.default.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: _propTypes.default.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: _propTypes.default.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: _propTypes.default.func,\n\n /**\n * `scale`, if set, applies scaling while dragging an element\n */\n scale: _propTypes.default.number,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: _shims.dontSetMe,\n style: _shims.dontSetMe,\n transform: _shims.dontSetMe\n});\n\n_defineProperty(DraggableCore, \"defaultProps\", {\n allowAnyClick: false,\n // by default only accept left click\n disabled: false,\n enableUserSelectHack: true,\n onStart: function onStart() {},\n onDrag: function onDrag() {},\n onStop: function onStop() {},\n onMouseDown: function onMouseDown() {},\n scale: 1\n});","\"use strict\";\n\nvar _require = require('./Draggable'),\n Draggable = _require.default,\n DraggableCore = _require.DraggableCore; // Previous versions of this lib exported as the root export. As to no-// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\n\n\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = DraggableCore;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addClassName = addClassName;\nexports.addEvent = addEvent;\nexports.addUserSelectStyles = addUserSelectStyles;\nexports.createCSSTransform = createCSSTransform;\nexports.createSVGTransform = createSVGTransform;\nexports.getTouch = getTouch;\nexports.getTouchIdentifier = getTouchIdentifier;\nexports.getTranslation = getTranslation;\nexports.innerHeight = innerHeight;\nexports.innerWidth = innerWidth;\nexports.matchesSelector = matchesSelector;\nexports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo;\nexports.offsetXYFromParent = offsetXYFromParent;\nexports.outerHeight = outerHeight;\nexports.outerWidth = outerWidth;\nexports.removeClassName = removeClassName;\nexports.removeEvent = removeEvent;\nexports.removeUserSelectStyles = removeUserSelectStyles;\n\nvar _shims = require(\"./shims\");\n\nvar _getPrefix = _interopRequireWildcard(require(\"./getPrefix\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : 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\nvar matchesSelectorFunc = '';\n\nfunction matchesSelector(el\n/*: Node*/\n, selector\n/*: string*/\n)\n/*: boolean*/\n{\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) {\n // $FlowIgnore: Doesn't think elements are indexable\n return (0, _shims.isFunction)(el[method]);\n });\n } // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n\n\n if (!(0, _shims.isFunction)(el[matchesSelectorFunc])) return false; // $FlowIgnore: Doesn't think elements are indexable\n\n return el[matchesSelectorFunc](selector);\n} // Works up the tree to the draggable itself attempting to match selector.\n\n\nfunction matchesSelectorAndParentsTo(el\n/*: Node*/\n, selector\n/*: string*/\n, baseNode\n/*: Node*/\n)\n/*: boolean*/\n{\n var node = el;\n\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nfunction addEvent(el\n/*: ?Node*/\n, event\n/*: string*/\n, handler\n/*: Function*/\n, inputOptions\n/*: Object*/\n)\n/*: void*/\n{\n if (!el) return;\n\n var options = _objectSpread({\n capture: true\n }, inputOptions); // $FlowIgnore[method-unbinding]\n\n\n if (el.addEventListener) {\n el.addEventListener(event, handler, options);\n } else if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el\n/*: ?Node*/\n, event\n/*: string*/\n, handler\n/*: Function*/\n, inputOptions\n/*: Object*/\n)\n/*: void*/\n{\n if (!el) return;\n\n var options = _objectSpread({\n capture: true\n }, inputOptions); // $FlowIgnore[method-unbinding]\n\n\n if (el.removeEventListener) {\n el.removeEventListener(event, handler, options);\n } else if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += (0, _shims.int)(computedStyle.borderTopWidth);\n height += (0, _shims.int)(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += (0, _shims.int)(computedStyle.borderLeftWidth);\n width += (0, _shims.int)(computedStyle.borderRightWidth);\n return width;\n}\n\nfunction innerHeight(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n var height = node.clientHeight;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= (0, _shims.int)(computedStyle.paddingTop);\n height -= (0, _shims.int)(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n var width = node.clientWidth;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= (0, _shims.int)(computedStyle.paddingLeft);\n width -= (0, _shims.int)(computedStyle.paddingRight);\n return width;\n}\n/*:: interface EventWithOffset {\n clientX: number, clientY: number\n}*/\n\n\n// Get from offsetParent\nfunction offsetXYFromParent(evt\n/*: EventWithOffset*/\n, offsetParent\n/*: HTMLElement*/\n, scale\n/*: number*/\n)\n/*: ControlPosition*/\n{\n var isBody = offsetParent === offsetParent.ownerDocument.body;\n var offsetParentRect = isBody ? {\n left: 0,\n top: 0\n } : offsetParent.getBoundingClientRect();\n var x = (evt.clientX + offsetParent.scrollLeft - offsetParentRect.left) / scale;\n var y = (evt.clientY + offsetParent.scrollTop - offsetParentRect.top) / scale;\n return {\n x: x,\n y: y\n };\n}\n\nfunction createCSSTransform(controlPos\n/*: ControlPosition*/\n, positionOffset\n/*: PositionOffsetControlPosition*/\n)\n/*: Object*/\n{\n var translation = getTranslation(controlPos, positionOffset, 'px');\n return _defineProperty({}, (0, _getPrefix.browserPrefixToKey)('transform', _getPrefix.default), translation);\n}\n\nfunction createSVGTransform(controlPos\n/*: ControlPosition*/\n, positionOffset\n/*: PositionOffsetControlPosition*/\n)\n/*: string*/\n{\n var translation = getTranslation(controlPos, positionOffset, '');\n return translation;\n}\n\nfunction getTranslation(_ref2, positionOffset\n/*: PositionOffsetControlPosition*/\n, unitSuffix\n/*: string*/\n)\n/*: string*/\n{\n var x = _ref2.x,\n y = _ref2.y;\n var translation = \"translate(\".concat(x).concat(unitSuffix, \",\").concat(y).concat(unitSuffix, \")\");\n\n if (positionOffset) {\n var defaultX = \"\".concat(typeof positionOffset.x === 'string' ? positionOffset.x : positionOffset.x + unitSuffix);\n var defaultY = \"\".concat(typeof positionOffset.y === 'string' ? positionOffset.y : positionOffset.y + unitSuffix);\n translation = \"translate(\".concat(defaultX, \", \").concat(defaultY, \")\") + translation;\n }\n\n return translation;\n}\n\nfunction getTouch(e\n/*: MouseTouchEvent*/\n, identifier\n/*: number*/\n)\n/*: ?{clientX: number, clientY: number}*/\n{\n return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, function (t) {\n return identifier === t.identifier;\n }) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, function (t) {\n return identifier === t.identifier;\n });\n}\n\nfunction getTouchIdentifier(e\n/*: MouseTouchEvent*/\n)\n/*: ?number*/\n{\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n} // User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n// Note we're passing `document` b/c we could be iframed\n\n\nfunction addUserSelectStyles(doc\n/*: ?Document*/\n) {\n if (!doc) return;\n var styleEl = doc.getElementById('react-draggable-style-el');\n\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nfunction removeUserSelectStyles(doc\n/*: ?Document*/\n) {\n if (!doc) return;\n\n try {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); // $FlowIgnore: IE\n\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n // Remove selection caused by scroll, unless it's a focused input\n // (we use doc.defaultView in case we're in an iframe)\n var selection = (doc.defaultView || window).getSelection();\n\n if (selection && selection.type !== 'Caret') {\n selection.removeAllRanges();\n }\n }\n } catch (e) {// probably IE\n }\n}\n\nfunction addClassName(el\n/*: HTMLElement*/\n, className\n/*: string*/\n) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(\"(?:^|\\\\s)\".concat(className, \"(?!\\\\S)\")))) {\n el.className += \" \".concat(className);\n }\n }\n}\n\nfunction removeClassName(el\n/*: HTMLElement*/\n, className\n/*: string*/\n) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(\"(?:^|\\\\s)\".concat(className, \"(?!\\\\S)\"), 'g'), '');\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.browserPrefixToKey = browserPrefixToKey;\nexports.browserPrefixToStyle = browserPrefixToStyle;\nexports.default = void 0;\nexports.getPrefix = getPrefix;\nvar prefixes = ['Moz', 'Webkit', 'O', 'ms'];\n\nfunction getPrefix()\n/*: string*/\n{\n var _window$document, _window$document$docu;\n\n var prop\n /*: string*/\n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';\n // Ensure we're running in an environment where there is actually a global\n // `window` obj\n if (typeof window === 'undefined') return ''; // If we're in a pseudo-browser server-side environment, this access\n // path may not exist, so bail out if it doesn't.\n\n var style = (_window$document = window.document) === null || _window$document === void 0 ? void 0 : (_window$document$docu = _window$document.documentElement) === null || _window$document$docu === void 0 ? void 0 : _window$document$docu.style;\n if (!style) return '';\n if (prop in style) return '';\n\n for (var i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nfunction browserPrefixToKey(prop\n/*: string*/\n, prefix\n/*: string*/\n)\n/*: string*/\n{\n return prefix ? \"\".concat(prefix).concat(kebabToTitleCase(prop)) : prop;\n}\n\nfunction browserPrefixToStyle(prop\n/*: string*/\n, prefix\n/*: string*/\n)\n/*: string*/\n{\n return prefix ? \"-\".concat(prefix.toLowerCase(), \"-\").concat(prop) : prop;\n}\n\nfunction kebabToTitleCase(str\n/*: string*/\n)\n/*: string*/\n{\n var out = '';\n var shouldCapitalize = true;\n\n for (var i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n\n return out;\n} // Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\n\n\nvar _default = (getPrefix()\n/*: string*/\n);\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = log;\n\n/*eslint no-console:0*/\nfunction log() {\n var _console;\n\n if (undefined) (_console = console).log.apply(_console, arguments);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canDragX = canDragX;\nexports.canDragY = canDragY;\nexports.createCoreData = createCoreData;\nexports.createDraggableData = createDraggableData;\nexports.getBoundPosition = getBoundPosition;\nexports.getControlPosition = getControlPosition;\nexports.snapToGrid = snapToGrid;\n\nvar _shims = require(\"./shims\");\n\nvar _domFns = require(\"./domFns\");\n\nfunction getBoundPosition(draggable\n/*: Draggable*/\n, x\n/*: number*/\n, y\n/*: number*/\n)\n/*: [number, number]*/\n{\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y]; // Clone new bounds\n\n var bounds = draggable.props.bounds;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n var node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n var ownerDocument = node.ownerDocument;\n var ownerWindow = ownerDocument.defaultView;\n var boundNode;\n\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n\n var boundNodeEl\n /*: HTMLElement*/\n = boundNode; // for Flow, can't seem to refine correctly\n\n var nodeStyle = ownerWindow.getComputedStyle(node);\n var boundNodeStyle = ownerWindow.getComputedStyle(boundNodeEl); // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n\n bounds = {\n left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.marginLeft),\n top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.marginTop),\n right: (0, _domFns.innerWidth)(boundNodeEl) - (0, _domFns.outerWidth)(node) - node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingRight) - (0, _shims.int)(nodeStyle.marginRight),\n bottom: (0, _domFns.innerHeight)(boundNodeEl) - (0, _domFns.outerHeight)(node) - node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingBottom) - (0, _shims.int)(nodeStyle.marginBottom)\n };\n } // Keep x and y below right and bottom limits...\n\n\n if ((0, _shims.isNum)(bounds.right)) x = Math.min(x, bounds.right);\n if ((0, _shims.isNum)(bounds.bottom)) y = Math.min(y, bounds.bottom); // But above left and top limits.\n\n if ((0, _shims.isNum)(bounds.left)) x = Math.max(x, bounds.left);\n if ((0, _shims.isNum)(bounds.top)) y = Math.max(y, bounds.top);\n return [x, y];\n}\n\nfunction snapToGrid(grid\n/*: [number, number]*/\n, pendingX\n/*: number*/\n, pendingY\n/*: number*/\n)\n/*: [number, number]*/\n{\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nfunction canDragX(draggable\n/*: Draggable*/\n)\n/*: boolean*/\n{\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nfunction canDragY(draggable\n/*: Draggable*/\n)\n/*: boolean*/\n{\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n} // Get {x, y} positions from event.\n\n\nfunction getControlPosition(e\n/*: MouseTouchEvent*/\n, touchIdentifier\n/*: ?number*/\n, draggableCore\n/*: DraggableCore*/\n)\n/*: ?ControlPosition*/\n{\n var touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n\n var node = findDOMNode(draggableCore); // User can provide an offsetParent if desired.\n\n var offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return (0, _domFns.offsetXYFromParent)(touchObj || e, offsetParent, draggableCore.props.scale);\n} // Create an data object exposed by 's events\n\n\nfunction createCoreData(draggable\n/*: DraggableCore*/\n, x\n/*: number*/\n, y\n/*: number*/\n)\n/*: DraggableData*/\n{\n var state = draggable.state;\n var isStart = !(0, _shims.isNum)(state.lastX);\n var node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: node,\n deltaX: 0,\n deltaY: 0,\n lastX: x,\n lastY: y,\n x: x,\n y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: node,\n deltaX: x - state.lastX,\n deltaY: y - state.lastY,\n lastX: state.lastX,\n lastY: state.lastY,\n x: x,\n y: y\n };\n }\n} // Create an data exposed by 's events\n\n\nfunction createDraggableData(draggable\n/*: Draggable*/\n, coreData\n/*: DraggableData*/\n)\n/*: DraggableData*/\n{\n var scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX / scale,\n y: draggable.state.y + coreData.deltaY / scale,\n deltaX: coreData.deltaX / scale,\n deltaY: coreData.deltaY / scale,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n} // A lot faster than stringify/parse\n\n\nfunction cloneBounds(bounds\n/*: Bounds*/\n)\n/*: Bounds*/\n{\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable\n/*: Draggable | DraggableCore*/\n)\n/*: HTMLElement*/\n{\n var node = draggable.findDOMNode();\n\n if (!node) {\n throw new Error(': Unmounted during event!');\n } // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n\n\n return node;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.dontSetMe = dontSetMe;\nexports.findInArray = findInArray;\nexports.int = int;\nexports.isFunction = isFunction;\nexports.isNum = isNum;\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array\n/*: Array | TouchList*/\n, callback\n/*: Function*/\n)\n/*: any*/\n{\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction isFunction(func\n/*: any*/\n)\n/*: boolean %checks*/\n{\n // $FlowIgnore[method-unbinding]\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nfunction isNum(num\n/*: any*/\n)\n/*: boolean %checks*/\n{\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a\n/*: string*/\n)\n/*: number*/\n{\n return parseInt(a, 10);\n}\n\nfunction dontSetMe(props\n/*: Object*/\n, propName\n/*: string*/\n, componentName\n/*: string*/\n)\n/*: ?Error*/\n{\n if (props[propName]) {\n return new Error(\"Invalid prop \".concat(propName, \" passed to \").concat(componentName, \" - do not set this, set it on the child.\"));\n }\n}","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"react\")):\"function\"==typeof define&&define.amd?define([\"react\"],t):\"object\"==typeof exports?exports.ImageGallery=t(require(\"react\")):e.ImageGallery=t(e.React)}(this,(function(e){return(()=>{var t={703:(e,t,n)=>{\"use strict\";var i=n(414);function r(){}function a(){}a.resetWarningCache=r,e.exports=function(){function e(e,t,n,r,a,s){if(s!==i){var o=new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\");throw o.name=\"Invariant Violation\",o}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:r};return n.PropTypes=n,n}},697:(e,t,n)=>{e.exports=n(703)()},414:e=>{\"use strict\";e.exports=\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\"},590:e=>{var t=\"undefined\"!=typeof Element,n=\"function\"==typeof Map,i=\"function\"==typeof Set,r=\"function\"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function a(e,s){if(e===s)return!0;if(e&&s&&\"object\"==typeof e&&\"object\"==typeof s){if(e.constructor!==s.constructor)return!1;var o,l,u,c;if(Array.isArray(e)){if((o=e.length)!=s.length)return!1;for(l=o;0!=l--;)if(!a(e[l],s[l]))return!1;return!0}if(n&&e instanceof Map&&s instanceof Map){if(e.size!==s.size)return!1;for(c=e.entries();!(l=c.next()).done;)if(!s.has(l.value[0]))return!1;for(c=e.entries();!(l=c.next()).done;)if(!a(l.value[1],s.get(l.value[0])))return!1;return!0}if(i&&e instanceof Set&&s instanceof Set){if(e.size!==s.size)return!1;for(c=e.entries();!(l=c.next()).done;)if(!s.has(l.value[0]))return!1;return!0}if(r&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(s)){if((o=e.length)!=s.length)return!1;for(l=o;0!=l--;)if(e[l]!==s[l])return!1;return!0}if(e.constructor===RegExp)return e.source===s.source&&e.flags===s.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===s.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===s.toString();if((o=(u=Object.keys(e)).length)!==Object.keys(s).length)return!1;for(l=o;0!=l--;)if(!Object.prototype.hasOwnProperty.call(s,u[l]))return!1;if(t&&e instanceof Element)return!1;for(l=o;0!=l--;)if((\"_owner\"!==u[l]&&\"__v\"!==u[l]&&\"__o\"!==u[l]||!e.$$typeof)&&!a(e[u[l]],s[u[l]]))return!1;return!0}return e!=e&&s!=s}e.exports=function(e,t){try{return a(e,t)}catch(e){if((e.message||\"\").match(/stack|recursion/i))return console.warn(\"react-fast-compare cannot handle circular refs\"),!1;throw e}}},37:function(e,t,n){!function(e,t){function n(){return n=Object.assign||function(e){for(var t=1;t1||e((function(e,i){i.trackMouse&&(document.addEventListener(l,h),document.addEventListener(u,f));var r=\"touches\"in t?t.touches[0]:t,a=c([r.clientX,r.clientY],i.rotationAngle);return n({},e,o,{initial:[].concat(a),xy:a,start:t.timeStamp||0})}))},h=function(t){e((function(e,s){if(\"touches\"in t&&t.touches.length>1)return e;var o=\"touches\"in t?t.touches[0]:t,l=c([o.clientX,o.clientY],s.rotationAngle),u=l[0],h=l[1],d=u-e.xy[0],f=h-e.xy[1],p=Math.abs(d),m=Math.abs(f),g=(t.timeStamp||0)-e.start,v=Math.sqrt(p*p+m*m)/(g||1),b=[d/(g||1),f/(g||1)];if(pt?n>0?r:i:s>0?a:\"Up\"}(p,m,d,f),w={absX:p,absY:m,deltaX:d,deltaY:f,dir:y,event:t,first:e.first,initial:e.initial,velocity:v,vxvy:b};s.onSwiping&&s.onSwiping(w);var T=!1;return(s.onSwiping||s.onSwiped||\"onSwiped\"+y in s)&&(T=!0),T&&s.preventDefaultTouchmoveEvent&&s.trackTouch&&t.cancelable&&t.preventDefault(),n({},e,{first:!1,eventData:w,swiping:!0})}))},d=function(t){e((function(e,i){var r;if(e.swiping&&e.eventData){r=n({},e.eventData,{event:t}),i.onSwiped&&i.onSwiped(r);var a=\"onSwiped\"+r.dir;a in i&&i[a](r)}else i.onTap&&i.onTap({event:t});return n({},e,o,{eventData:r})}))},f=function(e){document.removeEventListener(l,h),document.removeEventListener(u,f),d(e)},p=function(e,t){var n=function(){};if(e&&e.addEventListener){var i=[[\"touchstart\",s],[\"touchmove\",h],[\"touchend\",d]];i.forEach((function(n){var i=n[0],r=n[1];return e.addEventListener(i,r,{passive:t})})),n=function(){return i.forEach((function(t){var n=t[0],i=t[1];return e.removeEventListener(n,i)}))}}return n},m={ref:function(t){null!==t&&e((function(e,i){if(e.el===t)return e;var r={};return e.el&&e.el!==t&&e.cleanUpTouch&&(e.cleanUpTouch(),r.cleanUpTouch=void 0),i.trackTouch&&t&&(r.cleanUpTouch=p(t,!i.preventDefaultTouchmoveEvent)),n({},e,{el:t},r)}))}};return t.trackMouse&&(m.onMouseDown=s),[m,p]}e.DOWN=a,e.LEFT=i,e.RIGHT=r,e.UP=\"Up\",e.useSwipeable=function(e){var i=e.trackMouse,r=t.useRef(n({},o)),a=t.useRef(n({},s));a.current=n({},s,e);var l=t.useMemo((function(){return h((function(e){return r.current=e(r.current,a.current)}),{trackMouse:i})}),[i]),u=l[0],c=l[1];return r.current=function(e,t,i){var r={};return!t.trackTouch&&e.cleanUpTouch?(e.cleanUpTouch(),r.cleanUpTouch=void 0):t.trackTouch&&!e.cleanUpTouch&&e.el&&(r.cleanUpTouch=i(e.el,!t.preventDefaultTouchmoveEvent)),n({},e,r)}(r.current,a.current,c),u}}(t,n(888))},888:t=>{\"use strict\";t.exports=e}},n={};function i(e){var r=n[e];if(void 0!==r)return r.exports;var a=n[e]={exports:{}};return t[e].call(a.exports,a,a.exports,i),a.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.g=function(){if(\"object\"==typeof globalThis)return globalThis;try{return this||new Function(\"return this\")()}catch(e){if(\"object\"==typeof window)return window}}(),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})};var r={};return(()=>{\"use strict\";function e(t){var n,i,r=\"\";if(\"string\"==typeof t||\"number\"==typeof t)r+=t;else if(\"object\"==typeof t)if(Array.isArray(t))for(n=0;nPe});var n=i(888),a=i.n(n);const s=function(e){var t=typeof e;return null!=e&&(\"object\"==t||\"function\"==t)},o=\"object\"==typeof global&&global&&global.Object===Object&&global;var l=\"object\"==typeof self&&self&&self.Object===Object&&self;const u=o||l||Function(\"return this\")(),c=function(){return u.Date.now()};var h=/\\s/;var d=/^\\s+/;const f=function(e){return e?e.slice(0,function(e){for(var t=e.length;t--&&h.test(e.charAt(t)););return t}(e)+1).replace(d,\"\"):e},p=u.Symbol;var m=Object.prototype,g=m.hasOwnProperty,v=m.toString,b=p?p.toStringTag:void 0;var y=Object.prototype.toString;var w=p?p.toStringTag:void 0;const T=function(e){return null==e?void 0===e?\"[object Undefined]\":\"[object Null]\":w&&w in Object(e)?function(e){var t=g.call(e,b),n=e[b];try{e[b]=void 0;var i=!0}catch(e){}var r=v.call(e);return i&&(t?e[b]=n:delete e[b]),r}(e):function(e){return y.call(e)}(e)};var S=/^[-+]0x[0-9a-f]+$/i,O=/^0b[01]+$/i,E=/^0o[0-7]+$/i,k=parseInt;const I=function(e){if(\"number\"==typeof e)return e;if(function(e){return\"symbol\"==typeof e||function(e){return null!=e&&\"object\"==typeof e}(e)&&\"[object Symbol]\"==T(e)}(e))return NaN;if(s(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=s(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=f(e);var n=O.test(e);return n||E.test(e)?k(e.slice(2),n?2:8):S.test(e)?NaN:+e};var x=Math.max,_=Math.min;const R=function(e,t,n){var i,r,a,o,l,u,h=0,d=!1,f=!1,p=!0;if(\"function\"!=typeof e)throw new TypeError(\"Expected a function\");function m(t){var n=i,a=r;return i=r=void 0,h=t,o=e.apply(a,n)}function g(e){return h=e,l=setTimeout(b,t),d?m(e):o}function v(e){var n=e-u;return void 0===u||n>=t||n<0||f&&e-h>=a}function b(){var e=c();if(v(e))return y(e);l=setTimeout(b,function(e){var n=t-(e-u);return f?_(n,a-(e-h)):n}(e))}function y(e){return l=void 0,p&&i?m(e):(i=r=void 0,o)}function w(){var e=c(),n=v(e);if(i=arguments,r=this,u=e,n){if(void 0===l)return g(u);if(f)return clearTimeout(l),l=setTimeout(b,t),m(u)}return void 0===l&&(l=setTimeout(b,t)),o}return t=I(t)||0,s(n)&&(d=!!n.leading,a=(f=\"maxWait\"in n)?x(I(n.maxWait)||0,t):a,p=\"trailing\"in n?!!n.trailing:p),w.cancel=function(){void 0!==l&&clearTimeout(l),h=0,i=u=r=l=void 0},w.flush=function(){return void 0===l?o:y(c())},w},L=function(e,t,n){var i=!0,r=!0;if(\"function\"!=typeof e)throw new TypeError(\"Expected a function\");return s(n)&&(i=\"leading\"in n?!!n.leading:i,r=\"trailing\"in n?!!n.trailing:r),R(e,t,{leading:i,maxWait:t,trailing:r})};var P=i(590),M=i.n(P),W=function(){if(\"undefined\"!=typeof Map)return Map;function e(e,t){var n=-1;return e.some((function(e,i){return e[0]===t&&(n=i,!0)})),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,\"size\",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),i=this.__entries__[n];return i&&i[1]},t.prototype.set=function(t,n){var i=e(this.__entries__,t);~i?this.__entries__[i][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,i=e(n,t);~i&&n.splice(i,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,i=this.__entries__;n0},e.prototype.connect_=function(){D&&!this.connected_&&(document.addEventListener(\"transitionend\",this.onTransitionEnd_),window.addEventListener(\"resize\",this.refresh),z?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener(\"DOMSubtreeModified\",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){D&&this.connected_&&(document.removeEventListener(\"transitionend\",this.onTransitionEnd_),window.removeEventListener(\"resize\",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener(\"DOMSubtreeModified\",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?\"\":t;N.some((function(e){return!!~n.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),B=function(e,t){for(var n=0,i=Object.keys(t);n0},e}(),J=\"undefined\"!=typeof WeakMap?new WeakMap:new W,Q=function e(t){if(!(this instanceof e))throw new TypeError(\"Cannot call a class as a function.\");if(!arguments.length)throw new TypeError(\"1 argument required, but only 0 present.\");var n=j.getInstance(),i=new $(t,n,this);J.set(this,i)};[\"observe\",\"unobserve\",\"disconnect\"].forEach((function(e){Q.prototype[e]=function(){var t;return(t=J.get(this))[e].apply(t,arguments)}}));const Z=void 0!==F.ResizeObserver?F.ResizeObserver:Q;var ee=i(37),te=i(697),ne=a().memo((function(e){var t=e.description,n=e.fullscreen,i=e.handleImageLoaded,r=e.isFullscreen,s=e.onImageError,o=e.original,l=e.originalAlt,u=e.originalHeight,c=e.originalWidth,h=e.originalTitle,d=e.sizes,f=e.srcSet,p=e.loading,m=r&&n||o;return a().createElement(a().Fragment,null,a().createElement(\"img\",{className:\"image-gallery-image\",src:m,alt:l,srcSet:f,height:u,width:c,sizes:d,title:h,onLoad:function(e){return i(e,o)},onError:s,loading:p}),t&&a().createElement(\"span\",{className:\"image-gallery-description\"},t))}));ne.displayName=\"Item\",ne.propTypes={description:te.string,fullscreen:te.string,handleImageLoaded:te.func.isRequired,isFullscreen:te.bool,onImageError:te.func.isRequired,original:te.string.isRequired,originalAlt:te.string,originalHeight:te.string,originalWidth:te.string,originalTitle:te.string,sizes:te.string,srcSet:te.string,loading:te.string},ne.defaultProps={description:\"\",fullscreen:\"\",isFullscreen:!1,originalAlt:\"\",originalHeight:\"\",originalWidth:\"\",originalTitle:\"\",sizes:\"\",srcSet:\"\",loading:\"eager\"};const ie=ne;var re={left:a().createElement(\"polyline\",{points:\"15 18 9 12 15 6\"}),right:a().createElement(\"polyline\",{points:\"9 18 15 12 9 6\"}),maximize:a().createElement(\"path\",{d:\"M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3\"}),minimize:a().createElement(\"path\",{d:\"M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3\"}),play:a().createElement(\"polygon\",{points:\"5 3 19 12 5 21 5 3\"}),pause:a().createElement(a().Fragment,null,a().createElement(\"rect\",{x:\"6\",y:\"4\",width:\"4\",height:\"16\"}),a().createElement(\"rect\",{x:\"14\",y:\"4\",width:\"4\",height:\"16\"}))},ae=function(e){var t=e.strokeWidth,n=e.viewBox,i=e.icon;return a().createElement(\"svg\",{className:\"image-gallery-svg\",xmlns:\"http://www.w3.org/2000/svg\",viewBox:n,fill:\"none\",stroke:\"currentColor\",strokeWidth:t,strokeLinecap:\"round\",strokeLinejoin:\"round\"},re[i])};ae.propTypes={strokeWidth:te.number,viewBox:te.string,icon:(0,te.oneOf)([\"left\",\"right\",\"maximize\",\"minimize\",\"play\",\"pause\"]).isRequired},ae.defaultProps={strokeWidth:1,viewBox:\"0 0 24 24\"};const se=ae;var oe=a().memo((function(e){var t=e.isFullscreen,n=e.onClick;return a().createElement(\"button\",{type:\"button\",className:\"image-gallery-icon image-gallery-fullscreen-button\",onClick:n,\"aria-label\":\"Open Fullscreen\"},a().createElement(se,{strokeWidth:2,icon:t?\"minimize\":\"maximize\"}))}));oe.displayName=\"Fullscreen\",oe.propTypes={isFullscreen:te.bool.isRequired,onClick:te.func.isRequired};const le=oe;var ue=a().memo((function(e){var t=e.disabled,n=e.onClick;return a().createElement(\"button\",{type:\"button\",className:\"image-gallery-icon image-gallery-left-nav\",disabled:t,onClick:n,\"aria-label\":\"Previous Slide\"},a().createElement(se,{icon:\"left\",viewBox:\"6 0 12 24\"}))}));ue.displayName=\"LeftNav\",ue.propTypes={disabled:te.bool.isRequired,onClick:te.func.isRequired};const ce=ue;var he=a().memo((function(e){var t=e.disabled,n=e.onClick;return a().createElement(\"button\",{type:\"button\",className:\"image-gallery-icon image-gallery-right-nav\",disabled:t,onClick:n,\"aria-label\":\"Next Slide\"},a().createElement(se,{icon:\"right\",viewBox:\"6 0 12 24\"}))}));he.displayName=\"RightNav\",he.propTypes={disabled:te.bool.isRequired,onClick:te.func.isRequired};const de=he;var fe=a().memo((function(e){var t=e.isPlaying,n=e.onClick;return a().createElement(\"button\",{type:\"button\",className:\"image-gallery-icon image-gallery-play-button\",onClick:n,\"aria-label\":\"Play or Pause Slideshow\"},a().createElement(se,{strokeWidth:2,icon:t?\"pause\":\"play\"}))}));fe.displayName=\"PlayPause\",fe.propTypes={isPlaying:te.bool.isRequired,onClick:te.func.isRequired};const pe=fe;function me(){return me=Object.assign||function(e){for(var t=1;t=3&&i&&(0===e&&t===r.length-1?a=\" \".concat(o):e===r.length-1&&0===t&&(a=\" \".concat(s))),a}},{key:\"getTranslateXForTwoSlide\",value:function(e){var t=this.state,n=t.currentIndex,i=t.currentSlideOffset,r=t.previousIndex,a=n!==r,s=0===e&&0===r,o=1===e&&1===r,l=0===e&&1===n,u=1===e&&0===n,c=0===i,h=-100*n+100*e+i;return i>0?this.direction=\"left\":i<0&&(this.direction=\"right\"),u&&i>0&&(h=-100+i),l&&i<0&&(h=100+i),a?s&&c&&\"left\"===this.direction?h=100:o&&c&&\"right\"===this.direction&&(h=-100):(u&&c&&\"left\"===this.direction&&(h=-100),l&&c&&\"right\"===this.direction&&(h=100)),h}},{key:\"getThumbnailBarHeight\",value:function(){return this.isThumbnailVertical()?{height:this.state.gallerySlideWrapperHeight}:{}}},{key:\"getSlideStyle\",value:function(e){var t=this.state,n=t.currentIndex,i=t.currentSlideOffset,r=t.slideStyle,a=this.props,s=a.infinite,o=a.items,l=a.useTranslate3D,u=a.isRTL,c=-100*n,h=o.length-1,d=(c+100*e)*(u?-1:1)+i;s&&o.length>2&&(0===n&&e===h?d=-100*(u?-1:1)+i:n===h&&0===e&&(d=100*(u?-1:1)+i)),s&&2===o.length&&(d=this.getTranslateXForTwoSlide(e));var f=\"translate(\".concat(d,\"%, 0)\");return l&&(f=\"translate3d(\".concat(d,\"%, 0, 0)\")),we({display:this.isSlideVisible(e)?\"inherit\":\"none\",WebkitTransform:f,MozTransform:f,msTransform:f,OTransform:f,transform:f},r)}},{key:\"getCurrentIndex\",value:function(){return this.state.currentIndex}},{key:\"getThumbnailStyle\",value:function(){var e,t=this.props,n=t.useTranslate3D,i=t.isRTL,r=this.state,a=r.thumbsTranslate,s=r.thumbsStyle,o=i?-1*a:a;return this.isThumbnailVertical()?(e=\"translate(0, \".concat(a,\"px)\"),n&&(e=\"translate3d(0, \".concat(a,\"px, 0)\"))):(e=\"translate(\".concat(o,\"px, 0)\"),n&&(e=\"translate3d(\".concat(o,\"px, 0, 0)\"))),we({WebkitTransform:e,MozTransform:e,msTransform:e,OTransform:e,transform:e},s)}},{key:\"getSlideItems\",value:function(){var e=this,n=this.state.currentIndex,i=this.props,r=i.items,s=i.slideOnThumbnailOver,o=i.onClick,l=i.lazyLoad,u=i.onTouchMove,c=i.onTouchEnd,h=i.onTouchStart,d=i.onMouseOver,f=i.onMouseLeave,p=i.renderItem,m=i.renderThumbInner,g=i.showThumbnails,v=i.showBullets,b=[],y=[],w=[];return r.forEach((function(i,r){var T=e.getAlignmentClassName(r),S=i.originalClass?\" \".concat(i.originalClass):\"\",O=i.thumbnailClass?\" \".concat(i.thumbnailClass):\"\",E=i.renderItem||p||e.renderItem,k=i.renderThumbInner||m||e.renderThumbInner,I=!l||T||e.lazyLoaded[r];I&&l&&!e.lazyLoaded[r]&&(e.lazyLoaded[r]=!0);var x=e.getSlideStyle(r),_=a().createElement(\"div\",{\"aria-label\":\"Go to Slide \".concat(r+1),key:\"slide-\".concat(r),tabIndex:\"-1\",className:\"image-gallery-slide \".concat(T,\" \").concat(S),style:x,onClick:o,onKeyUp:e.handleSlideKeyUp,onTouchMove:u,onTouchEnd:c,onTouchStart:h,onMouseOver:d,onFocus:d,onMouseLeave:f,role:\"button\"},I?E(i):a().createElement(\"div\",{style:{height:\"100%\"}}));if(b.push(_),g&&i.thumbnail){var R=t(\"image-gallery-thumbnail\",O,{active:n===r});y.push(a().createElement(\"button\",{key:\"thumbnail-\".concat(r),type:\"button\",tabIndex:\"0\",\"aria-pressed\":n===r?\"true\":\"false\",\"aria-label\":\"Go to Slide \".concat(r+1),className:R,onMouseLeave:s?e.onThumbnailMouseLeave:null,onMouseOver:function(t){return e.handleThumbnailMouseOver(t,r)},onFocus:function(t){return e.handleThumbnailMouseOver(t,r)},onKeyUp:function(t){return e.handleThumbnailKeyUp(t,r)},onClick:function(t){return e.onThumbnailClick(t,r)}},k(i)))}if(v){var L=t(\"image-gallery-bullet\",i.bulletClass,{active:n===r});w.push(a().createElement(\"button\",{type:\"button\",key:\"bullet-\".concat(r),className:L,onClick:function(t){return i.bulletOnClick&&i.bulletOnClick({item:i,itemIndex:r,currentIndex:n}),t.target.blur(),e.slideToIndex.call(e,r,t)},\"aria-pressed\":n===r?\"true\":\"false\",\"aria-label\":\"Go to Slide \".concat(r+1)}))}})),{slides:b,thumbnails:y,bullets:w}}},{key:\"ignoreIsTransitioning\",value:function(){var e=this.props.items,t=this.state,n=t.previousIndex,i=t.currentIndex,r=e.length-1;return Math.abs(n-i)>1&&!(0===n&&i===r)&&!(n===r&&0===i)}},{key:\"isFirstOrLastSlide\",value:function(e){return e===this.props.items.length-1||0===e}},{key:\"slideIsTransitioning\",value:function(e){var t=this.state,n=t.isTransitioning,i=t.previousIndex,r=t.currentIndex;return n&&!(e===i||e===r)}},{key:\"isSlideVisible\",value:function(e){return!this.slideIsTransitioning(e)||this.ignoreIsTransitioning()&&!this.isFirstOrLastSlide(e)}},{key:\"slideThumbnailBar\",value:function(){var e=this.state,t=e.currentIndex,n=e.isSwipingThumbnail,i=-this.getThumbsTranslate(t);n||(0===t?this.setState({thumbsTranslate:0,thumbsSwipedTranslate:0}):this.setState({thumbsTranslate:i,thumbsSwipedTranslate:i}))}},{key:\"canSlide\",value:function(){return this.props.items.length>=2}},{key:\"canSlideLeft\",value:function(){var e=this.props,t=e.infinite,n=e.isRTL;return t||(n?this.canSlideNext():this.canSlidePrevious())}},{key:\"canSlideRight\",value:function(){var e=this.props,t=e.infinite,n=e.isRTL;return t||(n?this.canSlidePrevious():this.canSlideNext())}},{key:\"canSlidePrevious\",value:function(){return this.state.currentIndex>0}},{key:\"canSlideNext\",value:function(){return this.state.currentIndex=100&&(p=100);var m={transition:\"transform \".concat(d,\"ms ease-out\")};this.setState({currentSlideOffset:f*p,slideStyle:m})}}}else c||this.setState({swipingUpDown:!0})}},{key:\"handleThumbnailSwiping\",value:function(e){var t=e.event,n=e.absX,i=e.absY,r=e.dir,a=this.props,s=a.stopPropagation,o=a.swipingThumbnailTransitionDuration,l=this.state,u=l.thumbsSwipedTranslate,c=l.thumbnailsWrapperHeight,h=l.thumbnailsWrapperWidth,d=l.swipingUpDown,f=l.swipingLeftRight;if(this.isThumbnailVertical()){if((r===ee.LEFT||r===ee.RIGHT||f)&&!d)return void(f||this.setState({swipingLeftRight:!0}));r!==ee.UP&&r!==ee.DOWN||d||this.setState({swipingUpDown:!0})}else{if((r===ee.UP||r===ee.DOWN||d)&&!f)return void(d||this.setState({swipingUpDown:!0}));r!==ee.LEFT&&r!==ee.RIGHT||f||this.setState({swipingLeftRight:!0})}var p,m,g,v,b,y=this.thumbnails&&this.thumbnails.current;if(this.isThumbnailVertical()?(p=u+(r===ee.DOWN?i:-i),m=y.scrollHeight-c+20,g=Math.abs(p)>m,v=p>20,b=y.scrollHeight<=c):(p=u+(r===ee.RIGHT?n:-n),m=y.scrollWidth-h+20,g=Math.abs(p)>m,v=p>20,b=y.scrollWidth<=h),!b&&(r!==ee.LEFT&&r!==ee.UP||!g)&&(r!==ee.RIGHT&&r!==ee.DOWN||!v)){s&&t.stopPropagation();var w={transition:\"transform \".concat(o,\"ms ease-out\")};this.setState({thumbsTranslate:p,thumbsStyle:w})}}},{key:\"handleOnThumbnailSwiped\",value:function(){var e=this.state.thumbsTranslate,t=this.props.slideDuration;this.resetSwipingDirection(),this.setState({isSwipingThumbnail:!0,thumbsSwipedTranslate:e,thumbsStyle:{transition:\"all \".concat(t,\"ms ease-out\")}})}},{key:\"sufficientSwipe\",value:function(){var e=this.state.currentSlideOffset,t=this.props.swipeThreshold;return Math.abs(e)>t}},{key:\"resetSwipingDirection\",value:function(){var e=this.state,t=e.swipingUpDown,n=e.swipingLeftRight;t&&this.setState({swipingUpDown:!1}),n&&this.setState({swipingLeftRight:!1})}},{key:\"handleOnSwiped\",value:function(e){var t=e.event,n=e.dir,i=e.velocity,r=this.props,a=r.disableSwipe,s=r.stopPropagation,o=r.flickThreshold;if(!a){var l=this.props.isRTL;s&&t.stopPropagation(),this.resetSwipingDirection();var u=(n===ee.LEFT?1:-1)*(l?-1:1),c=n===ee.UP||n===ee.DOWN,h=i>o&&!c;this.handleOnSwipedTo(u,h)}}},{key:\"handleOnSwipedTo\",value:function(e,t){var n=this.state,i=n.currentIndex,r=n.isTransitioning,a=i;!this.sufficientSwipe()&&!t||r||(a+=e),(-1===e&&!this.canSlideLeft()||1===e&&!this.canSlideRight())&&(a=i),this.unthrottledSlideToIndex(a)}},{key:\"handleTouchMove\",value:function(e){this.state.swipingLeftRight&&e.preventDefault()}},{key:\"handleMouseDown\",value:function(){this.imageGallery.current.classList.add(\"image-gallery-using-mouse\")}},{key:\"handleKeyDown\",value:function(e){var t=this.props,n=t.disableKeyDown,i=t.useBrowserFullscreen,r=this.state.isFullscreen;if(this.imageGallery.current.classList.remove(\"image-gallery-using-mouse\"),!n)switch(parseInt(e.keyCode||e.which||0,10)){case 37:this.canSlideLeft()&&!this.playPauseIntervalId&&this.slideLeft(e);break;case 39:this.canSlideRight()&&!this.playPauseIntervalId&&this.slideRight(e);break;case 27:r&&!i&&this.exitFullScreen()}}},{key:\"handleImageError\",value:function(e){var t=this.props.onErrorImageURL;t&&-1===e.target.src.indexOf(t)&&(e.target.src=t)}},{key:\"removeThumbnailsResizeObserver\",value:function(){this.resizeThumbnailWrapperObserver&&this.thumbnailsWrapper&&this.thumbnailsWrapper.current&&(this.resizeThumbnailWrapperObserver.unobserve(this.thumbnailsWrapper.current),this.resizeThumbnailWrapperObserver=null)}},{key:\"removeResizeObserver\",value:function(){this.resizeSlideWrapperObserver&&this.imageGallerySlideWrapper&&this.imageGallerySlideWrapper.current&&(this.resizeSlideWrapperObserver.unobserve(this.imageGallerySlideWrapper.current),this.resizeSlideWrapperObserver=null),this.removeThumbnailsResizeObserver()}},{key:\"handleResize\",value:function(){var e=this.state.currentIndex;this.imageGallery&&(this.imageGallery&&this.imageGallery.current&&this.setState({galleryWidth:this.imageGallery.current.offsetWidth}),this.imageGallerySlideWrapper&&this.imageGallerySlideWrapper.current&&this.setState({gallerySlideWrapperHeight:this.imageGallerySlideWrapper.current.offsetHeight}),this.setThumbsTranslate(-this.getThumbsTranslate(e)))}},{key:\"initSlideWrapperResizeObserver\",value:function(e){var t=this;e&&!e.current||(this.resizeSlideWrapperObserver=new Z(R((function(e){e&&e.forEach((function(e){t.setState({thumbnailsWrapperWidth:e.contentRect.width},t.handleResize)}))}),50)),this.resizeSlideWrapperObserver.observe(e.current))}},{key:\"initThumbnailWrapperResizeObserver\",value:function(e){var t=this;e&&!e.current||(this.resizeThumbnailWrapperObserver=new Z(R((function(e){e&&e.forEach((function(e){t.setState({thumbnailsWrapperHeight:e.contentRect.height},t.handleResize)}))}),50)),this.resizeThumbnailWrapperObserver.observe(e.current))}},{key:\"toggleFullScreen\",value:function(){this.state.isFullscreen?this.exitFullScreen():this.fullScreen()}},{key:\"togglePlay\",value:function(){this.playPauseIntervalId?this.pause():this.play()}},{key:\"handleScreenChange\",value:function(){var e=this.props,t=e.onScreenChange,n=e.useBrowserFullscreen,i=document.fullscreenElement||document.msFullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement,r=this.imageGallery.current===i;t&&t(r),n&&this.setState({isFullscreen:r})}},{key:\"slideToIndex\",value:function(e,t){var n=this.state,i=n.currentIndex,r=n.isTransitioning,a=this.props,s=a.items,o=a.slideDuration,l=a.onBeforeSlide;if(!r){t&&this.playPauseIntervalId&&(this.pause(!1),this.play(!1));var u=s.length-1,c=e;e<0?c=u:e>u&&(c=0),l&&c!==i&&l(c),this.setState({previousIndex:i,currentIndex:c,isTransitioning:c!==i,currentSlideOffset:0,slideStyle:{transition:\"all \".concat(o,\"ms ease-out\")}},this.onSliding)}}},{key:\"slideLeft\",value:function(e){var t=this.props.isRTL;this.slideTo(e,t?\"right\":\"left\")}},{key:\"slideRight\",value:function(e){var t=this.props.isRTL;this.slideTo(e,t?\"left\":\"right\")}},{key:\"slideTo\",value:function(e,t){var n=this,i=this.state,r=i.currentIndex,a=i.currentSlideOffset,s=i.isTransitioning,o=this.props.items,l=r+(\"left\"===t?-1:1);s||(2===o.length?this.setState({currentSlideOffset:a+(\"left\"===t?.001:-.001),slideStyle:{transition:\"none\"}},(function(){window.setTimeout((function(){return n.slideToIndex(l,e)}),25)})):this.slideToIndex(l,e))}},{key:\"handleThumbnailMouseOver\",value:function(e,t){this.props.slideOnThumbnailOver&&this.onThumbnailMouseOver(e,t)}},{key:\"handleThumbnailKeyUp\",value:function(e,t){Re(e)&&this.onThumbnailClick(e,t)}},{key:\"handleSlideKeyUp\",value:function(e){Re(e)&&(0,this.props.onClick)(e)}},{key:\"isThumbnailVertical\",value:function(){var e=this.props.thumbnailPosition;return\"left\"===e||\"right\"===e}},{key:\"addScreenChangeEvent\",value:function(){var e=this;xe.forEach((function(t){document.addEventListener(t,e.handleScreenChange)}))}},{key:\"removeScreenChangeEvent\",value:function(){var e=this;xe.forEach((function(t){document.removeEventListener(t,e.handleScreenChange)}))}},{key:\"fullScreen\",value:function(){var e=this.props.useBrowserFullscreen,t=this.imageGallery.current;e?t.requestFullscreen?t.requestFullscreen():t.msRequestFullscreen?t.msRequestFullscreen():t.mozRequestFullScreen?t.mozRequestFullScreen():t.webkitRequestFullscreen?t.webkitRequestFullscreen():this.setModalFullscreen(!0):this.setModalFullscreen(!0),this.setState({isFullscreen:!0})}},{key:\"exitFullScreen\",value:function(){var e=this.state.isFullscreen,t=this.props.useBrowserFullscreen;e&&(t?document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.msExitFullscreen?document.msExitFullscreen():this.setModalFullscreen(!1):this.setModalFullscreen(!1),this.setState({isFullscreen:!1}))}},{key:\"pauseOrPlay\",value:function(){var e=this.props.infinite,t=this.state.currentIndex;e||this.canSlideRight()?this.slideToIndex(t+1):this.pause()}},{key:\"play\",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=this.props,n=t.onPlay,i=t.slideInterval,r=t.slideDuration,a=this.state.currentIndex;this.playPauseIntervalId||(this.setState({isPlaying:!0}),this.playPauseIntervalId=window.setInterval(this.pauseOrPlay,Math.max(i,r)),n&&e&&n(a))}},{key:\"pause\",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=this.props.onPause,n=this.state.currentIndex;this.playPauseIntervalId&&(window.clearInterval(this.playPauseIntervalId),this.playPauseIntervalId=null,this.setState({isPlaying:!1}),t&&e&&t(n))}},{key:\"isImageLoaded\",value:function(e){return!!this.loadedImages[e.original]||(this.loadedImages[e.original]=!0,!1)}},{key:\"handleImageLoaded\",value:function(e,t){var n=this.props.onImageLoad;!this.loadedImages[t]&&n&&(this.loadedImages[t]=!0,n(e))}},{key:\"renderItem\",value:function(e){var t=this.state.isFullscreen,n=this.props.onImageError||this.handleImageError;return a().createElement(ie,{description:e.description,fullscreen:e.fullscreen,handleImageLoaded:this.handleImageLoaded,isFullscreen:t,onImageError:n,original:e.original,originalAlt:e.originalAlt,originalHeight:e.originalHeight,originalWidth:e.originalWidth,originalTitle:e.originalTitle,sizes:e.sizes,loading:e.loading,srcSet:e.srcSet})}},{key:\"renderThumbInner\",value:function(e){var t=this.props.onThumbnailError||this.handleImageError;return a().createElement(\"span\",{className:\"image-gallery-thumbnail-inner\"},a().createElement(\"img\",{className:\"image-gallery-thumbnail-image\",src:e.thumbnail,height:e.thumbnailHeight,width:e.thumbnailWidth,alt:e.thumbnailAlt,title:e.thumbnailTitle,loading:e.thumbnailLoading,onError:t}),e.thumbnailLabel&&a().createElement(\"div\",{className:\"image-gallery-thumbnail-label\"},e.thumbnailLabel))}},{key:\"render\",value:function(){var e=this.state,n=e.currentIndex,i=e.isFullscreen,r=e.modalFullscreen,s=e.isPlaying,o=this.props,l=o.additionalClass,u=o.disableThumbnailSwipe,c=o.indexSeparator,h=o.isRTL,d=o.items,f=o.thumbnailPosition,p=o.renderFullscreenButton,m=o.renderCustomControls,g=o.renderLeftNav,v=o.renderRightNav,b=o.showBullets,y=o.showFullscreenButton,w=o.showIndex,T=o.showThumbnails,S=o.showNav,O=o.showPlayButton,E=o.renderPlayPauseButton,k=this.getThumbnailStyle(),I=this.getSlideItems(),x=I.slides,_=I.thumbnails,R=I.bullets,L=t(\"image-gallery-slide-wrapper\",this.getThumbnailPositionClassName(f),{\"image-gallery-rtl\":h}),P=a().createElement(\"div\",{ref:this.imageGallerySlideWrapper,className:L},m&&m(),this.canSlide()?a().createElement(a().Fragment,null,S&&a().createElement(a().Fragment,null,g(this.slideLeft,!this.canSlideLeft()),v(this.slideRight,!this.canSlideRight())),a().createElement(ve,{className:\"image-gallery-swipe\",delta:0,onSwiping:this.handleSwiping,onSwiped:this.handleOnSwiped},a().createElement(\"div\",{className:\"image-gallery-slides\"},x))):a().createElement(\"div\",{className:\"image-gallery-slides\"},x),O&&E(this.togglePlay,s),b&&a().createElement(\"div\",{className:\"image-gallery-bullets\"},a().createElement(\"div\",{className:\"image-gallery-bullets-container\",role:\"navigation\",\"aria-label\":\"Bullet Navigation\"},R)),y&&p(this.toggleFullScreen,i),w&&a().createElement(\"div\",{className:\"image-gallery-index\"},a().createElement(\"span\",{className:\"image-gallery-index-current\"},n+1),a().createElement(\"span\",{className:\"image-gallery-index-separator\"},c),a().createElement(\"span\",{className:\"image-gallery-index-total\"},d.length))),M=t(\"image-gallery\",l,{\"fullscreen-modal\":r}),W=t(\"image-gallery-content\",this.getThumbnailPositionClassName(f),{fullscreen:i}),D=t(\"image-gallery-thumbnails-wrapper\",this.getThumbnailPositionClassName(f),{\"thumbnails-wrapper-rtl\":!this.isThumbnailVertical()&&h},{\"thumbnails-swipe-horizontal\":!this.isThumbnailVertical()&&!u},{\"thumbnails-swipe-vertical\":this.isThumbnailVertical()&&!u});return a().createElement(\"div\",{ref:this.imageGallery,className:M,\"aria-live\":\"polite\"},a().createElement(\"div\",{className:W},(\"bottom\"===f||\"right\"===f)&&P,T&&_.length>0?a().createElement(ve,{className:D,delta:0,onSwiping:!u&&this.handleThumbnailSwiping,onSwiped:!u&&this.handleOnThumbnailSwiped},a().createElement(\"div\",{className:\"image-gallery-thumbnails\",ref:this.thumbnailsWrapper,style:this.getThumbnailBarHeight()},a().createElement(\"nav\",{ref:this.thumbnails,className:\"image-gallery-thumbnails-container\",style:k,\"aria-label\":\"Thumbnail Navigation\"},_))):null,(\"top\"===f||\"left\"===f)&&P))}}],i&&Se(n.prototype,i),l}(a().Component);Le.propTypes={flickThreshold:te.number,items:(0,te.arrayOf)((0,te.shape)({bulletClass:te.string,bulletOnClick:te.func,description:te.string,original:te.string,originalHeight:te.number,originalWidth:te.number,loading:te.string,thumbnailHeight:te.number,thumbnailWidth:te.number,thumbnailLoading:te.string,fullscreen:te.string,originalAlt:te.string,originalTitle:te.string,thumbnail:te.string,thumbnailAlt:te.string,thumbnailLabel:te.string,thumbnailTitle:te.string,originalClass:te.string,thumbnailClass:te.string,renderItem:te.func,renderThumbInner:te.func,imageSet:_e,srcSet:te.string,sizes:te.string})).isRequired,showNav:te.bool,autoPlay:te.bool,lazyLoad:te.bool,infinite:te.bool,showIndex:te.bool,showBullets:te.bool,showThumbnails:te.bool,showPlayButton:te.bool,showFullscreenButton:te.bool,disableThumbnailScroll:te.bool,disableKeyDown:te.bool,disableSwipe:te.bool,disableThumbnailSwipe:te.bool,useBrowserFullscreen:te.bool,onErrorImageURL:te.string,indexSeparator:te.string,thumbnailPosition:(0,te.oneOf)([\"top\",\"bottom\",\"left\",\"right\"]),startIndex:te.number,slideDuration:te.number,slideInterval:te.number,slideOnThumbnailOver:te.bool,swipeThreshold:te.number,swipingTransitionDuration:te.number,swipingThumbnailTransitionDuration:te.number,onSlide:te.func,onBeforeSlide:te.func,onScreenChange:te.func,onPause:te.func,onPlay:te.func,onClick:te.func,onImageLoad:te.func,onImageError:te.func,onTouchMove:te.func,onTouchEnd:te.func,onTouchStart:te.func,onMouseOver:te.func,onMouseLeave:te.func,onThumbnailError:te.func,onThumbnailClick:te.func,renderCustomControls:te.func,renderLeftNav:te.func,renderRightNav:te.func,renderPlayPauseButton:te.func,renderFullscreenButton:te.func,renderItem:te.func,renderThumbInner:te.func,stopPropagation:te.bool,additionalClass:te.string,useTranslate3D:te.bool,isRTL:te.bool,useWindowKeyDown:te.bool},Le.defaultProps={onErrorImageURL:\"\",additionalClass:\"\",showNav:!0,autoPlay:!1,lazyLoad:!1,infinite:!0,showIndex:!1,showBullets:!1,showThumbnails:!0,showPlayButton:!0,showFullscreenButton:!0,disableThumbnailScroll:!1,disableKeyDown:!1,disableSwipe:!1,disableThumbnailSwipe:!1,useTranslate3D:!0,isRTL:!1,useBrowserFullscreen:!0,flickThreshold:.4,stopPropagation:!1,indexSeparator:\" / \",thumbnailPosition:\"bottom\",startIndex:0,slideDuration:450,swipingTransitionDuration:0,swipingThumbnailTransitionDuration:0,onSlide:null,onBeforeSlide:null,onScreenChange:null,onPause:null,onPlay:null,onClick:null,onImageLoad:null,onImageError:null,onTouchMove:null,onTouchEnd:null,onTouchStart:null,onMouseOver:null,onMouseLeave:null,onThumbnailError:null,onThumbnailClick:null,renderCustomControls:null,renderThumbInner:null,renderItem:null,slideInterval:3e3,slideOnThumbnailOver:!1,swipeThreshold:30,renderLeftNav:function(e,t){return a().createElement(ce,{onClick:e,disabled:t})},renderRightNav:function(e,t){return a().createElement(de,{onClick:e,disabled:t})},renderPlayPauseButton:function(e,t){return a().createElement(pe,{onClick:e,isPlaying:t})},renderFullscreenButton:function(e,t){return a().createElement(le,{onClick:e,isFullscreen:t})},useWindowKeyDown:!0};const Pe=Le})(),r})()}));","/** @license React v17.0.2\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'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.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(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","import * as React from \"react\";\r\nimport { createContext, Dispatch, FC, SetStateAction, useCallback, useContext, useState } from \"react\";\r\nimport { Feature } from \"ol\";\r\nimport { IEsriDomain } from \"../Map/rest\";\r\nimport { IDocument, IRelatedDocs } from \"../interfaces\";\r\nimport { useNomaContext } from \"./MapContext\";\r\nimport { config, IDataTab } from \"../Map/config\";\r\nimport { getThumbnailUrl } from \"../Providers/imageProvider\";\r\nimport { getRelatedDocsUrls } from \"../Providers/docsProvider\";\r\nimport { useFiltersContext } from \"./FiltersContext\";\r\n\r\ninterface ITabName {\r\n name: string;\r\n code: number;\r\n}\r\n\r\ninterface IImageUrl {\r\n objectId: number;\r\n url: string;\r\n}\r\n\r\ninterface IField {\r\n name: string;\r\n alias: string;\r\n type: string;\r\n domain: IEsriDomain;\r\n}\r\n\r\nexport interface ICustomViewContext {\r\n hidden: boolean;\r\n setHidden: Dispatch>;\r\n tabNames: ITabName[];\r\n setTabs: () => void;\r\n fieldNames: string[];\r\n setFieldNames: () => void;\r\n tabData: Feature[];\r\n setTabData: Dispatch>;\r\n tabConfig: IDataTab;\r\n relatedDocs: IRelatedDocs[];\r\n setRelatedDocs: (features: Feature[]) => void;\r\n moveEndTime: number;\r\n setMoveEndTime: Dispatch>;\r\n images: IImageUrl[];\r\n setImages: (features: Feature[]) => void;\r\n changeTab: React.Dispatch>;\r\n}\r\n\r\nconst CustomViewContext = createContext(null);\r\n\r\nexport const useCustomViewContext = (): ICustomViewContext => useContext(CustomViewContext);\r\n\r\nexport const CustomViewContextProvider: FC = (props: React.PropsWithChildren) => {\r\n const { isIFrame, activeTab, fieldInfos } = useNomaContext();\r\n const { setTabFilter } = useFiltersContext();\r\n\r\n const [hidden, setHidden] = useState(isIFrame);\r\n const [tabNames, setTabs] = useState([]);\r\n const [fieldNames, setFieldNames] = useState([]);\r\n const [tabData, setTabData] = useState([]);\r\n const [tabConfig, setTabConfig] = useState();\r\n const [relatedDocs, setRelatedDocs] = useState([]);\r\n const [moveEndTime, setMoveEndTime] = useState(0);\r\n const [images, setImages] = useState([]);\r\n\r\n const setTabNames = useCallback(() => {\r\n const fieldDomain =\r\n fieldInfos && fieldInfos[\"0\"].find((field: IField) => field.name === config.dataView.tabField);\r\n const codedValues = fieldDomain && fieldDomain.domain.type === \"codedValue\";\r\n if (!codedValues) {\r\n setTabs([]);\r\n return;\r\n }\r\n fieldDomain.domain.codedValues.sort((a, b) => Number(a.code) - Number(b.code));\r\n setTabs(fieldDomain.domain.codedValues as ITabName[]);\r\n }, [fieldInfos]);\r\n\r\n const setCurrentFieldNames = useCallback(() => {\r\n const tabConfig = config.dataView.tabs.find((tab) => tab.tabValue === activeTab);\r\n if (!tabConfig || !tabConfig.fields) {\r\n return;\r\n }\r\n\r\n const newFieldNames: string[] = tabConfig.fields.reduce((newFieldNames, tabField) => {\r\n const field = fieldInfos && fieldInfos[\"0\"].find((f) => f.name === tabField);\r\n field && newFieldNames.push(tabField);\r\n\r\n return newFieldNames;\r\n }, []);\r\n setFieldNames(newFieldNames);\r\n setTabConfig(tabConfig);\r\n }, [activeTab, fieldInfos]);\r\n\r\n const fetchImageUrls = useCallback(\r\n (features: Feature[]) => {\r\n if (!features?.length) {\r\n return;\r\n }\r\n\r\n fetchRelatedImages(features);\r\n },\r\n [images]\r\n );\r\n\r\n const fetchRelatedImages = async (features: Feature[]) => {\r\n for (const feature of features) {\r\n const url = await getThumbnailUrl(feature.get(\"OBJECTID\"));\r\n if (url && !images.find((img: IImageUrl) => img.objectId === feature.get(\"OBJECTID\"))) {\r\n const newState = images;\r\n newState.push({ objectId: feature.get(\"OBJECTID\"), url });\r\n setImages(newState);\r\n setMoveEndTime(Date.now());\r\n }\r\n }\r\n };\r\n\r\n const fetchRelatedDocs = async (features: Feature[]) => {\r\n if (!tabConfig?.showDocs || !features) {\r\n return;\r\n }\r\n for (const feature of features) {\r\n const objectId = feature.get(\"OBJECTID\");\r\n const docs = await getRelatedDocsUrls(objectId);\r\n if (docs && docs.length && relatedDocs && !relatedDocs.find((item) => item.objectId === objectId)) {\r\n const newState = relatedDocs;\r\n newState.push({ objectId, docs });\r\n setRelatedDocs(newState);\r\n setMoveEndTime(Date.now());\r\n }\r\n }\r\n };\r\n\r\n const values = {\r\n hidden,\r\n setHidden,\r\n tabNames,\r\n setTabs: setTabNames,\r\n fieldNames,\r\n setFieldNames: setCurrentFieldNames,\r\n tabData,\r\n setTabData,\r\n tabConfig,\r\n relatedDocs,\r\n setRelatedDocs: fetchRelatedDocs,\r\n moveEndTime,\r\n setMoveEndTime,\r\n images,\r\n setImages: fetchImageUrls,\r\n changeTab: setTabFilter\r\n };\r\n return {props.children};\r\n};\r\n","import * as React from \"react\";\r\nimport { createContext, Dispatch, FC, SetStateAction, useCallback, useContext, useMemo, useState } from \"react\";\r\nimport { IFilters } from \"../Map/filters\";\r\nimport { getMap } from \"../Providers/mapProvider\";\r\nimport { useNomaContext } from \"./MapContext\";\r\n\r\nexport interface IFiltersContext {\r\n filters: IFilters;\r\n setFilters: (newFilters: IFilters) => void;\r\n extent: number[];\r\n setExtent: () => void;\r\n resultsCount: number;\r\n setResultsCount: Dispatch>;\r\n setTabFilter: Dispatch>;\r\n}\r\n\r\nconst FiltersContext = createContext(null);\r\n\r\nexport const useFiltersContext = (): IFiltersContext => useContext(FiltersContext);\r\n\r\nexport const FiltersContextProvider: FC = (props: React.PropsWithChildren) => {\r\n const { setActiveTab, filterDefaultValues } = useNomaContext();\r\n const [filters, setFilters] = useState(filterDefaultValues);\r\n const [extent, setExtent] = useState([]);\r\n const [resultsCount, setResultsCount] = useState(0);\r\n\r\n const updateExtent = useCallback(() => {\r\n const map = getMap();\r\n if (!map) {\r\n return;\r\n }\r\n const mapExtent = map.getView().calculateExtent(map.getSize());\r\n const isEqual = mapExtent.length === extent.length && mapExtent.every((val, i) => val === extent[i]);\r\n !isEqual && setExtent(mapExtent);\r\n }, [extent]);\r\n\r\n const values = useMemo(\r\n () => ({\r\n filters,\r\n setFilters,\r\n extent,\r\n setExtent: updateExtent,\r\n resultsCount,\r\n setResultsCount,\r\n setTabFilter: setActiveTab\r\n }),\r\n [filters, extent, resultsCount]\r\n );\r\n\r\n return {props.children};\r\n};\r\n","import * as React from \"react\";\r\nimport {\r\n createContext,\r\n Dispatch,\r\n FC,\r\n SetStateAction,\r\n useCallback,\r\n useContext,\r\n useEffect,\r\n useRef,\r\n useState\r\n} from \"react\";\r\nimport { Feature } from \"ol\";\r\nimport { IFieldInfos } from \"../Map/rest\";\r\nimport { IRelatedDocs, IUrlParams } from \"../interfaces\";\r\nimport { Basemaps } from \"../Map/enums\";\r\nimport { generateSnapshots } from \"../Map/snapshot\";\r\nimport { IFilters } from \"../Map/filters\";\r\nimport { defaultFilterValues, defaultWindFarmFilterValues, objectIdGap } from \"../Map/config\";\r\n\r\nexport interface INomaContext {\r\n basemap: Basemaps;\r\n setBasemap: Dispatch>;\r\n activeTab: number;\r\n setActiveTab: Dispatch>;\r\n fieldInfos: IFieldInfos;\r\n setFieldInfos: Dispatch>;\r\n isMobile: boolean;\r\n isIFrame: boolean;\r\n identifiedFeature: Feature;\r\n setIdentifiedFeature: Dispatch>;\r\n previewFeature: Feature;\r\n setPreviewFeature: Dispatch>;\r\n locateFeature: ILocatedFeature;\r\n setLocateFeature: Dispatch>;\r\n applyFeature: IApplyFeature;\r\n setApplyFeature: Dispatch>;\r\n getFieldAlias: (fieldName: string, layerId?: string) => string;\r\n getFieldValue: (feature: Feature, fieldName: string, layerId?: string) => any;\r\n getDateFormated: (time: number) => string;\r\n downloadsPopupDocs: IRelatedDocs;\r\n setDownloadsPopupDocs: Dispatch>;\r\n zoomToSourceFeatures: number;\r\n setZoomToSourceFeatures: Dispatch>;\r\n layersMenuVisible: boolean;\r\n setLayersMenuVisible: Dispatch>;\r\n toggleLayersMenuVisible: () => void;\r\n enabledLayers: string[];\r\n setEnabledLayers: Dispatch>;\r\n registerFeature: Feature;\r\n setRegisterFeature: Dispatch>;\r\n snapshotBig: string;\r\n setSnapshotBig: Dispatch>;\r\n snapshotSmall: string;\r\n setSnapshotSmall: Dispatch>;\r\n urlParams: IUrlParams;\r\n setUrlParams: Dispatch>;\r\n filterDefaultValues: IFilters;\r\n setFilterDefaultValues: Dispatch>;\r\n sideViewVisible: boolean;\r\n setSideViewVisible: Dispatch>;\r\n}\r\n\r\nexport interface IApplyFeature {\r\n feature: Feature;\r\n isRight?: boolean;\r\n}\r\nexport interface ILocatedFeature {\r\n feature: Feature;\r\n timestamp: number;\r\n}\r\n\r\nconst getUrlParameters = () => {\r\n const url = new URL(window.location.href);\r\n const params = new URLSearchParams(url.search.slice(1));\r\n\r\n let objectId;\r\n let layerId = \"0\";\r\n params.forEach((value, key) => {\r\n if (key.toLowerCase() === \"objectid\" && value) {\r\n objectId = value;\r\n }\r\n if (key.toLowerCase() === \"layerid\" && value) {\r\n layerId = value;\r\n }\r\n });\r\n\r\n return (\r\n objectId && {\r\n objectId: (Number(objectId) + Number(layerId) * objectIdGap).toString(),\r\n layerId\r\n }\r\n );\r\n};\r\n\r\nconst urlParameters: IUrlParams = getUrlParameters();\r\n\r\nconst getFilterDefaultValues = () =>\r\n urlParameters && urlParameters.layerId && urlParameters.layerId === \"1\"\r\n ? defaultWindFarmFilterValues\r\n : defaultFilterValues;\r\n\r\nconst iniFrame = () => {\r\n try {\r\n return window.self !== window.top;\r\n } catch (e) {\r\n return true;\r\n }\r\n};\r\n\r\nconst isMobile =\r\n navigator.maxTouchPoints > 0 || navigator.platform === \"iPhone\" || navigator.platform === \"iPad\" || iniFrame();\r\n\r\nconst isIFrame = iniFrame();\r\n\r\nconst NomaContext = createContext(null);\r\n\r\nexport const useNomaContext = (): INomaContext => useContext(NomaContext);\r\n\r\nexport const NomaContextProvider: FC = (props: React.PropsWithChildren) => {\r\n const [basemap, setBasemap] = useState(Basemaps.Mamma);\r\n const [activeTab, setActiveTab] = useState(1);\r\n const [fieldInfos, setFieldInfos] = useState();\r\n const [identifiedFeature, setIdentifiedFeature] = useState(null);\r\n const [previewFeature, setPreviewFeature] = useState(null);\r\n const [locateFeature, setLocateFeature] = useState(null);\r\n const [applyFeature, setApplyFeature] = useState(null);\r\n const [downloadsPopupDocs, setDownloadsPopupDocs] = useState(null);\r\n const [zoomToSourceFeatures, setZoomToSourceFeatures] = useState(null);\r\n const [layersMenuVisible, setLayersMenuVisible] = useState(false);\r\n const [enabledLayers, setEnabledLayers] = useState([]);\r\n const [registerFeature, setRegisterFeature] = useState();\r\n const [snapshotBig, setSnapshotBig] = useState();\r\n const [snapshotSmall, setSnapshotSmall] = useState();\r\n const [urlParams, setUrlParams] = useState(urlParameters);\r\n const [filterDefaultValues, setFilterDefaultValues] = useState(getFilterDefaultValues());\r\n const [sideViewVisible, setSideViewVisible] = useState(!isMobile || !isIFrame);\r\n\r\n const layersMenuVisibleRef = useRef(false);\r\n const getFieldAlias = (fieldName: string, layerId?: string) =>\r\n fieldInfos && fieldInfos[layerId || \"0\"].find((f) => f.name === fieldName).alias;\r\n\r\n const getFieldValue = (feature: Feature, fieldName: string, layerId: string) => {\r\n const field = fieldInfos && fieldInfos[layerId || \"0\"].find((f) => f.name === fieldName);\r\n if (!field) {\r\n return undefined;\r\n }\r\n const value = feature.get(field.name);\r\n if (fieldName === \"EVENTDATE\" && value) {\r\n return getDateFormated(value) + \" \" + getTimeFormated(value);\r\n }\r\n if (field.type === \"esriFieldTypeDate\" && value) {\r\n return getDateFormated(value);\r\n }\r\n if (field.domain && field.domain.type === \"codedValue\" && value) {\r\n const codedValue = field.domain.codedValues.find((codedValue) => codedValue.code === value);\r\n return codedValue && codedValue.name ? codedValue.name : null;\r\n }\r\n return value;\r\n };\r\n\r\n const getDateFormated = (value: number) => {\r\n const date = new Date(value);\r\n return (\r\n date.getUTCDate().toString().padStart(2, \"0\") +\r\n \".\" +\r\n (date.getUTCMonth() + 1).toString().padStart(2, \"0\") +\r\n \".\" +\r\n date.getUTCFullYear()\r\n );\r\n };\r\n\r\n const toggleLayersMenuVisible = () => {\r\n layersMenuVisibleRef.current = !layersMenuVisibleRef.current;\r\n setLayersMenuVisible(layersMenuVisibleRef.current);\r\n };\r\n\r\n const changeActiveTab = (tab: number) => {\r\n setIdentifiedFeature(null);\r\n setPreviewFeature(null);\r\n setApplyFeature(null);\r\n setDownloadsPopupDocs(null);\r\n\r\n setActiveTab(tab);\r\n };\r\n\r\n const changeIdentifiedFeature = (feature: Feature) => {\r\n if (feature) {\r\n const objectId = feature && feature.get(\"OBJECTID\");\r\n previewFeature && previewFeature.get(\"OBJECTID\") !== objectId && setPreviewFeature(null);\r\n applyFeature && applyFeature.feature.get(\"OBJECTID\") !== objectId && setApplyFeature(null);\r\n downloadsPopupDocs && downloadsPopupDocs.objectId !== objectId && setDownloadsPopupDocs(null);\r\n }\r\n setIdentifiedFeature(feature);\r\n };\r\n\r\n const changePreviewFeature = (feature: Feature) => {\r\n if (feature) {\r\n const objectId = feature && feature.get(\"OBJECTID\");\r\n identifiedFeature && identifiedFeature.get(\"OBJECTID\") !== objectId && setIdentifiedFeature(null);\r\n applyFeature && applyFeature.feature.get(\"OBJECTID\") !== objectId && setApplyFeature(null);\r\n downloadsPopupDocs && downloadsPopupDocs.objectId !== objectId && setDownloadsPopupDocs(null);\r\n generateSnapshots(feature, basemap, setSnapshotBig, setSnapshotSmall);\r\n }\r\n setPreviewFeature(feature);\r\n };\r\n\r\n const changeApplyPopupFeature = (applyFeature: IApplyFeature) => {\r\n if (applyFeature && applyFeature.feature) {\r\n const objectId = applyFeature.feature && applyFeature.feature.get(\"OBJECTID\");\r\n identifiedFeature && identifiedFeature.get(\"OBJECTID\") !== objectId && setIdentifiedFeature(null);\r\n previewFeature && previewFeature.get(\"OBJECTID\") !== objectId && setPreviewFeature(null);\r\n downloadsPopupDocs && downloadsPopupDocs.objectId !== objectId && setDownloadsPopupDocs(null);\r\n setApplyFeature({ feature: applyFeature.feature, isRight: applyFeature.isRight });\r\n } else {\r\n setApplyFeature(null);\r\n }\r\n };\r\n\r\n const changeDownloadsPopupDocs = (docs: IRelatedDocs) => {\r\n if (docs) {\r\n const objectId = docs.objectId;\r\n identifiedFeature && identifiedFeature.get(\"OBJECTID\") !== objectId && setIdentifiedFeature(null);\r\n previewFeature && previewFeature.get(\"OBJECTID\") !== objectId && setPreviewFeature(null);\r\n applyFeature && applyFeature.feature.get(\"OBJECTID\") !== objectId && setApplyFeature(null);\r\n }\r\n setDownloadsPopupDocs(docs);\r\n };\r\n\r\n const changeRegisterFeature = (feature: Feature) => {\r\n if (feature) {\r\n setIdentifiedFeature(null);\r\n setPreviewFeature(null);\r\n setDownloadsPopupDocs(null);\r\n setApplyFeature(null);\r\n generateSnapshots(feature, basemap, setSnapshotBig, setSnapshotSmall);\r\n }\r\n setRegisterFeature(feature);\r\n };\r\n\r\n const prepareLocateFeature = useCallback((feature) => {\r\n setLocateFeature({ feature, timestamp: Date.now() });\r\n }, []);\r\n\r\n const values = {\r\n basemap,\r\n setBasemap,\r\n activeTab,\r\n setActiveTab: changeActiveTab,\r\n fieldInfos,\r\n setFieldInfos,\r\n identifiedFeature,\r\n setIdentifiedFeature: changeIdentifiedFeature,\r\n previewFeature,\r\n setPreviewFeature: changePreviewFeature,\r\n locateFeature,\r\n setLocateFeature: prepareLocateFeature,\r\n applyFeature,\r\n setApplyFeature: changeApplyPopupFeature,\r\n isMobile,\r\n isIFrame,\r\n getFieldAlias,\r\n getFieldValue,\r\n getDateFormated,\r\n downloadsPopupDocs,\r\n setDownloadsPopupDocs: changeDownloadsPopupDocs,\r\n zoomToSourceFeatures,\r\n setZoomToSourceFeatures,\r\n layersMenuVisible,\r\n setLayersMenuVisible,\r\n toggleLayersMenuVisible,\r\n enabledLayers,\r\n setEnabledLayers,\r\n registerFeature,\r\n setRegisterFeature: changeRegisterFeature,\r\n snapshotBig,\r\n setSnapshotBig,\r\n snapshotSmall,\r\n setSnapshotSmall,\r\n urlParams,\r\n setUrlParams,\r\n filterDefaultValues,\r\n setFilterDefaultValues,\r\n sideViewVisible,\r\n setSideViewVisible\r\n };\r\n\r\n return {props.children};\r\n};\r\n\r\nconst getTimeFormated = (value: number) => {\r\n const date = new Date(value);\r\n return date.getUTCHours().toString().padStart(2, \"0\") + \":\" + date.getUTCMinutes().toString().padStart(2, \"0\");\r\n};\r\n","import * as React from \"react\";\r\nimport { createContext, Dispatch, FC, SetStateAction, useContext, useState } from \"react\";\r\nimport { FormInput, IFormData } from \"../Forms/formFields\";\r\nimport { Feature } from \"ol\";\r\nimport { ApplicantType } from \"../Map/enums\";\r\nimport { IObjectSection, ISummaryParams } from \"../Popups/Registration/SummarySection\";\r\nimport { useNomaContext } from \"./MapContext\";\r\n\r\nexport interface IRegistrationContext {\r\n userConsent: boolean;\r\n setUserConsent: Dispatch>;\r\n formData: IFormData;\r\n setFormData: Dispatch>;\r\n validateForm: number;\r\n setValidateForm: (timeStamp: number) => void;\r\n isFormValid: number;\r\n setIsFormValid: Dispatch>;\r\n resetForm: number;\r\n setResetForm: Dispatch>;\r\n rawData: IFormData;\r\n setRawData: Dispatch>;\r\n formFeature: Feature;\r\n setFormFeature: Dispatch>;\r\n applicantType: ApplicantType;\r\n setApplicantType: Dispatch>;\r\n formDefaultData: IFormData;\r\n setFormDefaultData: Dispatch>;\r\n attachments: FileList;\r\n setAttachments: Dispatch>;\r\n summaryData: ISummaryParams;\r\n setSummaryData: Dispatch>;\r\n getObjectSectionJson: () => IObjectSection;\r\n getSummaryJson: () => ISummaryParams;\r\n}\r\n\r\nconst RegistrationContext = createContext(null);\r\n\r\nexport const useRegistrationContext = (): IRegistrationContext => useContext(RegistrationContext);\r\n\r\nexport const RegistrationContextProvider: FC = (props: React.PropsWithChildren) => {\r\n const { registerFeature, getFieldValue, getFieldAlias, getDateFormated, snapshotBig, snapshotSmall } =\r\n useNomaContext();\r\n\r\n const [userConsent, setUserConsent] = useState(false);\r\n const [formData, setFormData] = useState({});\r\n const [validateForm, setValidateForm] = useState(0);\r\n const [isFormValid, setIsFormValid] = useState(null);\r\n const [resetForm, setResetForm1] = useState(0);\r\n const [rawData, setRawData] = useState({});\r\n const [formFeature, setFormFeature] = useState(null);\r\n const [applicantType, setApplicantType] = useState(\r\n registerFeature.get(\"LAYERID\") === \"1\" ? ApplicantType.Company : ApplicantType.Individual\r\n );\r\n const [formDefaultData, setFormDefaultData] = useState({});\r\n const [attachments, setAttachments] = useState(null);\r\n const [summaryData, setSummaryData] = useState();\r\n\r\n const prepareToResetForm = () => {\r\n setRawData({});\r\n setFormFeature(null);\r\n setFormData({});\r\n setFormDefaultData({});\r\n setIsFormValid(null);\r\n setValidateForm(0);\r\n setAttachments(null);\r\n setResetForm1(Date.now());\r\n };\r\n\r\n const getObjectSectionJson = (): IObjectSection => {\r\n return {\r\n header: {\r\n headerRows:\r\n registerFeature.get(\"LAYERID\") === \"1\"\r\n ? [\r\n {\r\n alias: \"\",\r\n value: getFieldValue(registerFeature, \"PROPERTYTITLE\", \"1\")\r\n },\r\n {\r\n alias: getFieldAlias(\"MW\", \"1\") + \": \",\r\n value: getFieldValue(registerFeature, \"MW\", \"1\")\r\n }\r\n ]\r\n : [\r\n {\r\n alias: \"LVM reģions: \",\r\n value: getFieldValue(registerFeature, \"LVMFORESTRYCODE\")\r\n },\r\n {\r\n alias: \"\",\r\n value:\r\n getFieldValue(registerFeature, \"REGIONATVK\") +\r\n \", \" +\r\n getFieldValue(registerFeature, \"MUNICIPALITYATVK\") +\r\n \", \" +\r\n getFieldValue(registerFeature, \"PROPERTYTITLE\")\r\n },\r\n {\r\n alias: getFieldAlias(\"PROPERTYCADASTRALNUMBER\") + \": \",\r\n value: getFieldValue(registerFeature, \"PROPERTYCADASTRALNUMBER\")\r\n },\r\n {\r\n alias: getFieldAlias(\"CADASTER\") + \": \",\r\n value: getFieldValue(registerFeature, \"CADASTER\")\r\n }\r\n ],\r\n snapshotBig: snapshotBig,\r\n snapshotSmall: snapshotSmall\r\n },\r\n objectInfoRows: [\r\n {\r\n alias: getFieldAlias(\"LANDAREA\") + \": \",\r\n value: getFieldValue(registerFeature, \"LANDAREA\")\r\n },\r\n {\r\n alias: getFieldAlias(\"RENTPURPOSE\") + \": \",\r\n value: getFieldValue(registerFeature, \"RENTPURPOSE\")\r\n },\r\n !registerFeature || registerFeature.get(\"TYPEOFLEASEGRANTING\") !== 5\r\n ? {\r\n alias: getFieldAlias(\"STARTRENT\") + \": \",\r\n value: getFieldValue(registerFeature, \"STARTRENT\")\r\n }\r\n : undefined,\r\n {\r\n alias: getFieldAlias(\"AGREEMENTTERM\") + \": \",\r\n value: getFieldValue(registerFeature, \"AGREEMENTTERM\")\r\n }\r\n ]\r\n };\r\n };\r\n\r\n const getSummaryJson = () => {\r\n const typeOfLease = registerFeature.get(\"TYPEOFLEASEGRANTING\");\r\n const note =\r\n typeOfLease === 1\r\n ? \"Nomas pieteikumu LVM apstrādās un izvērtēs atbilstoši normatīvo aktu prasībām par publiskas personas zemes nomu. Pieteikums negarantē nomas tiesību ieguvi\"\r\n : typeOfLease === 5\r\n ? \"Nomas pieteikumu LVM apstrādās un izvērtēs atbilstoši normatīvo aktu prasībām par publiskas personas zemes nomu. Pēc pieteikuma apstrādes LVM precizēs nomas maksu un citus iznomāšanas nosacījumus. Par procesa tālāku virzību ar Jums sazināsies attiecīgā reģiona Nekustamo īpašumu pārvaldes Zemes lietojuma speciālists\"\r\n : null;\r\n\r\n const attachedFiles = attachments\r\n ? {\r\n title: \"Pievienotie dokumenti:\",\r\n rows: Array.from(attachments, (attachment) => attachment.name)\r\n }\r\n : undefined;\r\n\r\n return {\r\n ...getObjectSectionJson(),\r\n globalId: \"Id: \" + getFieldValue(formFeature, \"GLOBALID\"),\r\n customer: {\r\n title: \"Pieteicēja dati:\",\r\n rows: [\r\n applicantType === ApplicantType.Individual\r\n ? formData[FormInput.Name] + \" \" + formData[FormInput.Surname]\r\n : formData[FormInput.Company],\r\n applicantType === ApplicantType.Individual\r\n ? formData[FormInput.PersonalCode].toString()\r\n : formData[FormInput.RegistrationNumber].toString(),\r\n formData[FormInput.Address].toString(),\r\n formData[FormInput.Phone].toString(),\r\n formData[FormInput.Email].toString(),\r\n formData[FormInput.Notes]\r\n ]\r\n },\r\n attachments: attachedFiles,\r\n date: \"Datums: \" + getDateFormated(Date.now()),\r\n visiting: {\r\n alias: \"Par objekta apskati vienoties ar kontaktpersonu: \",\r\n value:\r\n getFieldValue(registerFeature, \"EMPLOYEENAME\") +\r\n \" (\" +\r\n getFieldValue(registerFeature, \"EMPLOYEEEMAIL\") +\r\n \"; \" +\r\n getFieldValue(registerFeature, \"EMPLOYEEPHONE\") +\r\n \")\"\r\n },\r\n footerNote: note\r\n };\r\n };\r\n\r\n const values = {\r\n userConsent,\r\n setUserConsent,\r\n formData,\r\n setFormData,\r\n validateForm,\r\n setValidateForm,\r\n isFormValid,\r\n setIsFormValid,\r\n resetForm,\r\n setResetForm: prepareToResetForm,\r\n rawData,\r\n setRawData,\r\n formFeature,\r\n setFormFeature,\r\n applicantType,\r\n setApplicantType,\r\n formDefaultData,\r\n setFormDefaultData,\r\n attachments,\r\n setAttachments,\r\n summaryData,\r\n setSummaryData,\r\n getObjectSectionJson,\r\n getSummaryJson\r\n };\r\n\r\n return {props.children};\r\n};\r\n","import * as React from \"react\";\r\nimport { createContext, Dispatch, FC, SetStateAction, useCallback, useContext, useState, useEffect } from \"react\";\r\nimport { useNomaContext } from \"./MapContext\";\r\nimport { IFilters } from \"../Map/filters\";\r\nimport { useFiltersContext } from \"./FiltersContext\";\r\nimport { config, all, defaultOption, filterAllValues } from \"../Map/config\";\r\nimport { IEsriCodedValue } from \"../Map/rest\";\r\nimport { lvmForestry_Municipalities, lvmForestry_Regions, region_Municipalities } from \"../Map/relations\";\r\n\r\nexport interface ISideViewContext {\r\n filters: IFilters;\r\n setFilter: (name: string, value: string | number | (string | number)[]) => void;\r\n setRangeFilter: (fieldName: string, from?: number, to?: number) => void;\r\n onClear: () => void;\r\n onFilter: () => void;\r\n options: IFilterOptions;\r\n setOptions: Dispatch>;\r\n error: IError;\r\n}\r\ninterface IError {\r\n fieldName: string;\r\n message: string;\r\n}\r\ninterface IFilterOptions {\r\n [fieldName: string]: IEsriCodedValue[];\r\n}\r\n\r\nconst SideViewContext = createContext(null);\r\n\r\nexport const useSideViewContext = (): ISideViewContext => useContext(SideViewContext);\r\n\r\nexport const SideViewContextProvider: FC = (props: React.PropsWithChildren) => {\r\n const { fieldInfos, setZoomToSourceFeatures, filterDefaultValues } = useNomaContext();\r\n const { setFilters } = useFiltersContext();\r\n\r\n const [sideViewFilters, setSideViewFilters] = useState(filterDefaultValues);\r\n const [options, setOptions] = useState({});\r\n const [error, setError] = useState();\r\n\r\n useEffect(() => {\r\n if (fieldInfos) {\r\n const updatedOptions = {};\r\n config.sideView.filters.map((filter) => {\r\n const domain = fieldInfos[\"0\"].find((info) => info.name === filter.field).domain;\r\n if (domain && domain.codedValues) {\r\n updatedOptions[filter.field] =\r\n filter.field === \"RENTPURPOSE\"\r\n ? domain.codedValues.filter((codedValue) => codedValue.code !== 8)\r\n : domain.codedValues;\r\n }\r\n });\r\n setOptions(updatedOptions);\r\n }\r\n }, [fieldInfos]);\r\n\r\n const changeOption = useCallback(\r\n (name: string, value: string) => {\r\n const updatedOptions = { ...options };\r\n let regionFilter = { name: \"REGIONATVK\", value: sideViewFilters[\"REGIONATVK\"] };\r\n let municipalityFilter = { name: \"MUNICIPALITYATVK\", value: sideViewFilters[\"MUNICIPALITYATVK\"] };\r\n\r\n if (name === \"REGIONATVK\") {\r\n const codedValues = getDefaultCodedValues(\"MUNICIPALITYATVK\");\r\n\r\n if (value !== all) {\r\n updatedOptions[\"MUNICIPALITYATVK\"] = [defaultOption].concat(\r\n region_Municipalities[value].map((municipalityCode) =>\r\n codedValues.find((municipality) => municipality.code === municipalityCode)\r\n )\r\n );\r\n regionFilter = { name, value };\r\n } else {\r\n updatedOptions[\"MUNICIPALITYATVK\"] = codedValues;\r\n updatedOptions[\"REGIONATVK\"] = getDefaultCodedValues(\"REGIONATVK\");\r\n regionFilter = { name: \"REGIONATVK\", value: all };\r\n }\r\n municipalityFilter = { name: \"MUNICIPALITYATVK\", value: all };\r\n }\r\n if (name === \"MUNICIPALITYATVK\") {\r\n if (value !== all) {\r\n const regionCodedValue = getDefaultCodedValues(\"REGIONATVK\").find(\r\n (region) => region.code === getRegionByMunicipality(value)\r\n );\r\n // TODO sakārtot datus, lai nav tā ka pagasts nav nevienā reģionā\r\n if (!regionCodedValue || !regionCodedValue.code) {\r\n console.log(\"MUNICIPALITYATVK\", value, \" nav nevienā reģionā\");\r\n updatedOptions[\"REGIONATVK\"] = getDefaultCodedValues(\"REGIONATVK\");\r\n regionFilter = { name: \"REGIONATVK\", value: all };\r\n } else {\r\n updatedOptions[\"REGIONATVK\"] = [regionCodedValue, defaultOption];\r\n regionFilter = { name: \"REGIONATVK\", value: regionCodedValue.code as string };\r\n }\r\n }\r\n\r\n const allMunicipalities = getDefaultCodedValues(\"MUNICIPALITYATVK\");\r\n\r\n const filteredMunicipalities =\r\n typeof regionFilter.value === \"string\" && regionFilter.value !== all\r\n ? getRegionMunicipalities(regionFilter.value, allMunicipalities)\r\n : allMunicipalities;\r\n\r\n regionFilter.value !== all && filteredMunicipalities.unshift(defaultOption);\r\n\r\n updatedOptions[\"MUNICIPALITYATVK\"] = filteredMunicipalities;\r\n municipalityFilter = { name, value };\r\n }\r\n\r\n setOptions(updatedOptions);\r\n\r\n const updatedFilters = { ...sideViewFilters };\r\n name !== \"REGIONATVK\" && name !== \"MUNICIPALITYATVK\" ? (updatedFilters[name] = value) : false;\r\n setSideViewFilters({\r\n ...updatedFilters,\r\n [\"REGIONATVK\"]: regionFilter.value,\r\n [\"MUNICIPALITYATVK\"]: municipalityFilter.value\r\n });\r\n\r\n validateForestry(name, value, municipalityFilter.value as string, regionFilter.value as string)\r\n ? setError(undefined)\r\n : setError({ fieldName: \"LVMFORESTRYCODE\", message: \"Neatbilstošs kritērijs!\" });\r\n },\r\n [options, fieldInfos, sideViewFilters]\r\n );\r\n\r\n const getDefaultCodedValues = (fieldName: string) =>\r\n fieldInfos[\"0\"].find((i) => i.name === fieldName).domain.codedValues;\r\n\r\n const getRegionByMunicipality = (municipality: string) =>\r\n Object.keys(region_Municipalities).find((r) => region_Municipalities[r].includes(municipality as string));\r\n\r\n const getRegionMunicipalities = (region: string, allMunicipalities: IEsriCodedValue[]) =>\r\n region_Municipalities[region].map((municipality) => allMunicipalities.find((m) => m.code === municipality));\r\n\r\n const validateForestry = (name: string, value: string, municipality: string, region: string) => {\r\n const validate = (forestry: string) =>\r\n municipality !== all\r\n ? lvmForestry_Municipalities[forestry].includes(municipality)\r\n : region !== all\r\n ? lvmForestry_Regions[forestry].includes(region)\r\n : true;\r\n\r\n return name === \"LVMFORESTRYCODE\"\r\n ? value !== all\r\n ? validate(value)\r\n : true\r\n : sideViewFilters[\"LVMFORESTRYCODE\"] !== all\r\n ? validate(sideViewFilters[\"LVMFORESTRYCODE\"] as string)\r\n : true;\r\n };\r\n\r\n const setRangeFilter = useCallback(\r\n (fieldName, from?: number, to?: number) => {\r\n const filter = sideViewFilters[fieldName];\r\n const fromVal = from || from === 0 ? from : (filter && filter[0]) || 0;\r\n const toVal = to || to === 0 ? to : (filter && filter[1]) || 0;\r\n\r\n setSideViewFilters({ ...sideViewFilters, [fieldName]: [Number(fromVal), Number(toVal)] });\r\n },\r\n [sideViewFilters]\r\n );\r\n\r\n const onClear = useCallback(() => {\r\n setOptions({\r\n ...options,\r\n [\"MUNICIPALITYATVK\"]: getDefaultCodedValues(\"MUNICIPALITYATVK\"),\r\n [\"REGIONATVK\"]: getDefaultCodedValues(\"REGIONATVK\")\r\n });\r\n setError(undefined);\r\n setSideViewFilters(filterAllValues);\r\n setFilters(filterAllValues);\r\n setZoomToSourceFeatures(1);\r\n }, [sideViewFilters, options]);\r\n\r\n const onFilter = useCallback(() => {\r\n setFilters(sideViewFilters);\r\n setZoomToSourceFeatures(Date.now());\r\n }, [sideViewFilters]);\r\n\r\n const values = {\r\n filters: sideViewFilters,\r\n setFilter: changeOption,\r\n setRangeFilter,\r\n onClear,\r\n onFilter,\r\n options,\r\n setOptions,\r\n error\r\n };\r\n return {props.children};\r\n};\r\n","import * as React from \"react\";\r\nimport { FC } from \"react\";\r\nimport \"./Checkbox.scss\";\r\n\r\nexport interface ICheckbox {\r\n label: string;\r\n subTitle?: string;\r\n checked: boolean;\r\n onChange: (checked: boolean) => void;\r\n}\r\nexport const Checkbox: FC = (props) => (\r\n
\r\n \r\n {props.subTitle ?
{props.subTitle}
: null}\r\n
\r\n);\r\n","import * as React from \"react\";\r\nimport { FC } from \"react\";\r\nimport \"./CloseButton.scss\";\r\n\r\nexport interface ICloseButton {\r\n onClose: () => void;\r\n}\r\nexport const CloseButton: FC = (props) => (\r\n props.onClose()}>\r\n \r\n \r\n);\r\n","import * as React from \"react\";\r\nimport { FC } from \"react\";\r\nimport \"./PopupButton.scss\";\r\n\r\nexport interface IPopupButton {\r\n title: string;\r\n icon?: string;\r\n classname?: string;\r\n disabled?: boolean;\r\n onClick: () => void;\r\n}\r\nexport const PopupButton: FC = (props) => {\r\n const classname = [\r\n \"popup-button\",\r\n \"unselectable\",\r\n props.classname ? props.classname : \"default\",\r\n props.disabled ? \"disabled\" : \"\"\r\n ].join(\" \");\r\n\r\n const onClick = () => {\r\n !props.disabled && props.onClick();\r\n };\r\n\r\n return (\r\n \r\n {props.icon ? : null}\r\n {props.title}\r\n \r\n );\r\n};\r\n","import * as React from \"react\";\r\nimport { ChangeEvent, useEffect, useRef, useState } from \"react\";\r\nimport { IFormData, IInputType } from \"./formFields\";\r\nimport { Input } from \"./Input\";\r\n\r\nexport interface IFormProps {\r\n fieldNames: IInputType[];\r\n onChange?: (data: IFormData) => void;\r\n validateForm: number;\r\n onFormValidated: (isValid: boolean) => void;\r\n resetForm: number;\r\n defaultValues?: IFormData;\r\n}\r\n\r\nexport const Form = ({\r\n fieldNames,\r\n onChange,\r\n validateForm,\r\n onFormValidated,\r\n resetForm,\r\n defaultValues\r\n}: IFormProps): JSX.Element => {\r\n const [formData, setFormData] = useState({});\r\n const [validate, setValidate] = useState(0);\r\n const [reset, setReset] = useState(0);\r\n const formValidations = useRef({});\r\n\r\n const onChanged = (e: ChangeEvent) => {\r\n const data = { ...formData };\r\n data[e.target.name] = e.target.value;\r\n setFormData(data);\r\n onChange(data);\r\n };\r\n\r\n const onFieldValidated = (name: string, isValid: boolean, i: number) => {\r\n if (!formValidations || !formValidations.current) {\r\n return;\r\n }\r\n const validations = { ...formValidations.current };\r\n validations[name] = isValid;\r\n formValidations.current = validations;\r\n i + 1 === fieldNames.length && onFormValidated(!Object.values(formValidations.current).includes(false));\r\n };\r\n\r\n useEffect(() => {\r\n setValidate(validateForm);\r\n }, [validateForm]);\r\n\r\n useEffect(() => {\r\n setReset(resetForm);\r\n }, [resetForm]);\r\n\r\n useEffect(() => {\r\n if (defaultValues) {\r\n setFormData(defaultValues);\r\n onChange(defaultValues);\r\n }\r\n }, [defaultValues]);\r\n\r\n return (\r\n
\r\n {fieldNames.map((field, i) => (\r\n onFieldValidated(field.name, isValid, i)}\r\n reset={reset}\r\n defaultValue={(defaultValues && defaultValues[field.name]) || \"\"}\r\n key={field.label + i}\r\n >\r\n ))}\r\n \r\n );\r\n};\r\n","import classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { useRegistrationContext } from \"../Contexts/RegistrationContext\";\r\nimport { ApplicantType } from \"../Map/enums\";\r\nimport { Form } from \"./Form\";\r\nimport { formField } from \"./formFields\";\r\nimport { Upload } from \"./Upload\";\r\n\r\nexport const FormSection = ({ error }: { error: boolean }): JSX.Element => {\r\n const {\r\n validateForm,\r\n setIsFormValid,\r\n setFormData,\r\n resetForm,\r\n setResetForm,\r\n rawData,\r\n setRawData,\r\n applicantType,\r\n setApplicantType,\r\n formDefaultData\r\n } = useRegistrationContext();\r\n\r\n const onFormValidated = (isValid: boolean) => {\r\n isValid && setFormData(rawData);\r\n setIsFormValid(isValid ? Date.now() : null);\r\n };\r\n\r\n const changeForm = (formType: ApplicantType) => {\r\n formType !== applicantType && setResetForm(Date.now());\r\n setApplicantType(formType);\r\n };\r\n\r\n return (\r\n <>\r\n {error ?
Kļūda servera savienojumā!
: null}\r\n
\r\n changeForm(ApplicantType.Individual)}\r\n >\r\n Fiziska persona\r\n {applicantType === ApplicantType.Individual &&
}\r\n
\r\n changeForm(ApplicantType.Company)}\r\n >\r\n Juridiska persona\r\n {applicantType === ApplicantType.Company &&
}\r\n \r\n \r\n {applicantType === ApplicantType.Individual ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n
Pielikumi:
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n","import * as React from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { IInputType } from \"./formFields\";\r\n\r\nexport interface IInput {\r\n config: IInputType;\r\n onChange: CallableFunction;\r\n validate: number;\r\n onValidate: (isValid: boolean) => void;\r\n reset: number;\r\n defaultValue?: any;\r\n}\r\n\r\nexport const Input = ({ config, reset, onChange, validate, onValidate, defaultValue }: IInput): JSX.Element => {\r\n const [value, setValue] = useState(\"\");\r\n const [valid, setValid] = useState(true);\r\n\r\n const changeValue = (e: React.ChangeEvent) => {\r\n setValue(e.target.value);\r\n setValid(true);\r\n onChange(e);\r\n };\r\n\r\n useEffect(() => {\r\n if (validate === 0) {\r\n setValid(true);\r\n } else {\r\n const isValid =\r\n !config.required && !value\r\n ? true\r\n : config.required && !value\r\n ? false\r\n : config.validationFn\r\n ? config.validationFn(value)\r\n : true;\r\n setValid(isValid);\r\n onValidate(isValid);\r\n }\r\n }, [validate]);\r\n\r\n useEffect(() => {\r\n setValue(\"\");\r\n }, [reset]);\r\n\r\n useEffect(() => {\r\n defaultValue && !value && setValue(defaultValue);\r\n }, [defaultValue]);\r\n\r\n return (\r\n
\r\n
\r\n \r\n ) => changeValue(e)}\r\n />\r\n
\r\n {!valid ? {config.validationErrorMessage || \"Kļūda!\"} : null}\r\n
\r\n );\r\n};\r\n","import * as React from \"react\";\r\nimport { useRef, useState } from \"react\";\r\nimport { useRegistrationContext } from \"../Contexts/RegistrationContext\";\r\nimport { UploadList } from \"./UploadList\";\r\nimport \"./Upload.scss\";\r\n\r\nconst acceptTypes = [\r\n \"application/msword\",\r\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\r\n \"application/vnd.ms-excel\",\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\r\n \"application/pdf\",\r\n \"application/gpx+xml\",\r\n \"application/zip\",\r\n \"application/vnd.etsi.asic-e+zip\",\r\n \"application/vnd\",\r\n \"application/edoc\",\r\n \"image/png\",\r\n \"image/jpg\",\r\n \"image/jpeg\",\r\n \".gpx\",\r\n \".kml\",\r\n \".kmz\",\r\n \".edoc\",\r\n \"\"\r\n];\r\nconst allowedTypes = new Set(acceptTypes);\r\n\r\nexport const Upload = (): JSX.Element => {\r\n const { attachments, setAttachments } = useRegistrationContext();\r\n const [uploadList, setUploadList] = useState(attachments);\r\n\r\n const inputRef = useRef();\r\n\r\n const onAdd = (e) => {\r\n const selectedFiles: FileList = e.target.files;\r\n if (!selectedFiles.length || !inputRef.current) {\r\n return;\r\n }\r\n\r\n const dt = new DataTransfer();\r\n\r\n const addFile = (file) => {\r\n if (!allowedTypes.has(file.type)) {\r\n e.preventDefault();\r\n return;\r\n }\r\n dt.items.add(file);\r\n };\r\n\r\n if (uploadList && uploadList.length) {\r\n Array.from(uploadList).map((file) => {\r\n addFile(file);\r\n });\r\n }\r\n\r\n Array.from(selectedFiles).map((file) => {\r\n !uploadList || !uploadList.length\r\n ? addFile(file)\r\n : !Array.from(uploadList).find((f) => f.name === file.name) && addFile(file);\r\n });\r\n\r\n onChangeList(dt.files);\r\n };\r\n\r\n const onChangeList = (list: FileList) => {\r\n (inputRef.current as HTMLInputElement).files = list;\r\n setUploadList(list);\r\n setAttachments(list);\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n );\r\n};\r\n","import * as React from \"react\";\r\nimport \"./Upload.scss\";\r\n\r\nexport interface IUploadList {\r\n onChange: (fileList: FileList) => void;\r\n fileList: FileList;\r\n}\r\n\r\nexport const UploadList = ({ onChange, fileList }: IUploadList): JSX.Element => {\r\n const onRemove = (name: string) => {\r\n if (!fileList.length) {\r\n return;\r\n }\r\n\r\n const dt = new DataTransfer();\r\n Array.from(fileList).map((file) => file.name !== name && dt.items.add(file));\r\n onChange(dt.files);\r\n };\r\n\r\n return (\r\n
\r\n {fileList && fileList.length\r\n ? Array.from(fileList).map((file) => (\r\n \r\n onRemove(file.name)}>\r\n \r\n \r\n \r\n {file.name}\r\n \r\n \r\n ))\r\n : null}\r\n
\r\n );\r\n};\r\n","export interface IFormData {\r\n [name: string]: IInputType;\r\n}\r\n\r\nexport enum FormInput {\r\n Name = \"Name\",\r\n Surname = \"Surname\",\r\n PersonalCode = \"PersonalCode\",\r\n Address = \"Address\",\r\n Phone = \"Phone\",\r\n Email = \"Email\",\r\n Notes = \"Notes\",\r\n Company = \"Company\",\r\n RegistrationNumber = \"RegistrationNumber\",\r\n ContactPerson = \"ContactPerson\"\r\n}\r\n\r\nexport interface IInputType {\r\n label: string;\r\n name: string;\r\n type: string;\r\n autocomplete?: string;\r\n required?: boolean;\r\n validationFn?: (value) => boolean;\r\n validationErrorMessage?: string;\r\n}\r\n\r\nexport const formField: IFormData = {\r\n Name: {\r\n label: \"Vārds\",\r\n name: FormInput.Name,\r\n type: \"text\",\r\n autocomplete: \"name\",\r\n required: true\r\n },\r\n Surname: {\r\n label: \"Uzvārds\",\r\n name: FormInput.Surname,\r\n type: \"text\",\r\n autocomplete: \"family-name\",\r\n required: true\r\n },\r\n PersonalCode: {\r\n label: \"Personas kods\",\r\n name: FormInput.PersonalCode,\r\n type: \"text\",\r\n required: true,\r\n validationFn: (value): boolean => {\r\n //@ts-ignore\r\n const result = window.PersonCodeValidator(value.replace(/[^0-9]/g, \"\"));\r\n result.error && console.log(\"pk validation\", result.error);\r\n return result.isSuccess;\r\n },\r\n validationErrorMessage: \"Kļūdains personas kods\"\r\n },\r\n Address: {\r\n label: \"Adrese\",\r\n name: FormInput.Address,\r\n type: \"text\",\r\n autocomplete: \"street-address\",\r\n required: true,\r\n validationFn: (value): boolean => value.length <= 250,\r\n validationErrorMessage: \"Pārsniedz 250 zīmes\"\r\n },\r\n Phone: {\r\n label: \"Telefona numurs\",\r\n name: FormInput.Phone,\r\n type: \"tel\",\r\n autocomplete: \"tel\",\r\n required: true,\r\n validationFn: (value): boolean => (value.match(/^\\d{8,11}$/) ? true : false), // only digits, 8-11 symbols\r\n validationErrorMessage: \"Kļūdains telefona numurs\"\r\n },\r\n Email: {\r\n label: \"E-pasts\",\r\n name: FormInput.Email,\r\n type: \"text\",\r\n autocomplete: \"email\",\r\n required: true,\r\n validationFn: (value): boolean => (value.match(/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/) ? true : false),\r\n validationErrorMessage: \"Kļūdains epasts\"\r\n },\r\n Notes: {\r\n label: \"Piezīmes\",\r\n name: FormInput.Notes,\r\n type: \"text\"\r\n },\r\n Company: {\r\n label: \"Nosaukums\",\r\n name: FormInput.Company,\r\n type: \"text\",\r\n autocomplete: \"organization\",\r\n required: true\r\n },\r\n RegistrationNumber: {\r\n label: \"Reģistrācijas numurs\",\r\n name: FormInput.RegistrationNumber,\r\n type: \"text\",\r\n required: true,\r\n validationFn: (value): boolean => {\r\n return value.length === 9 || value.length === 11;\r\n },\r\n validationErrorMessage: \"Kļūdains reģistrācijas numurs\"\r\n },\r\n ContactPerson: {\r\n label: \"Kontaktpersona\",\r\n name: FormInput.ContactPerson,\r\n type: \"text\",\r\n required: true\r\n }\r\n};\r\n","import React, { FC, SyntheticEvent, useState } from \"react\";\r\nimport ImageGallery, { ReactImageGalleryItem } from \"react-image-gallery\";\r\nimport ErrorImage from \"../img/error-img.svg\";\r\nimport \"./Gallery.scss\";\r\n\r\nexport interface GalleryImage {\r\n original: string;\r\n thumbnail: string;\r\n fullscreen?: string; // defaults to Original\r\n}\r\n\r\ninterface GalleryProps {\r\n images: GalleryImage[];\r\n}\r\n\r\nexport const Gallery: FC = (props) => {\r\n const [isFullscreen, setIsFullscreen] = useState(false);\r\n\r\n // workaround, to make fullscreen via css on iPhone, because fulscreenAPI is not working on iPhone\r\n const isIphone = navigator.userAgent.toLowerCase().indexOf(\"iphone\") > -1;\r\n\r\n const setFullscreen = (fullscreen: boolean) => {\r\n if (isIphone) {\r\n const galleryNode = document.getElementsByClassName(\"image-gallery\")[0];\r\n fullscreen ? galleryNode.classList.add(\"fullscreen-mode\") : galleryNode.classList.remove(\"fullscreen-mode\");\r\n }\r\n setIsFullscreen(fullscreen);\r\n };\r\n\r\n const handleImageError = (event: SyntheticEvent) => {\r\n event.currentTarget.src = ErrorImage;\r\n };\r\n\r\n const renderItem = (item: ReactImageGalleryItem) => {\r\n return (\r\n <>\r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n setFullscreen(!!fullscreen)}\r\n useBrowserFullscreen={!isIphone}\r\n />\r\n );\r\n};\r\n","import { Attribution, Control } from \"ol/control\";\r\n\r\nexport class AttributionButton extends Control {\r\n constructor() {\r\n super({ element: undefined });\r\n return new Attribution({\r\n collapsible: false\r\n });\r\n }\r\n}\r\n","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { FC } from \"react\";\r\nimport { Control } from \"ol/control\";\r\nimport { config } from \"../config\";\r\n\r\nexport const Download: FC<{ this: Control }> = (props) => {\r\n const onClick = () => window.open(config.default.dataDownloadUrl, \"_blank\").focus();\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport class DownloadButton extends Control {\r\n constructor() {\r\n const element = document.createElement(\"div\");\r\n element.className = \"zemesnoma-map-button download-container ol-unselectable ol-control\";\r\n super({\r\n element\r\n });\r\n ReactDOM.render(, element);\r\n }\r\n}\r\n","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { FC, useEffect, useRef, useState } from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { Point } from \"ol/geom\";\r\nimport { Control } from \"ol/control\";\r\nimport { Vector as VectorSource } from \"ol/source\";\r\nimport { Vector as VectorLayer } from \"ol/layer\";\r\nimport { Feature } from \"ol\";\r\nimport { Circle as CircleStyle, Fill, Stroke, Style } from \"ol/style\";\r\nimport { config } from \"../config\";\r\nimport { coordinatesConverter, EpsgCode } from \"@geo/js\";\r\nimport { unByKey } from \"ol/Observable\";\r\nimport { EventsKey } from \"ol/events\";\r\n\r\nenum LocationState {\r\n Inactive = 0,\r\n Waiting = 1,\r\n Watching = 2,\r\n Tracking = 3\r\n}\r\n\r\nexport interface IPosition {\r\n coords: {\r\n latitude: number;\r\n longitude: number;\r\n };\r\n}\r\n\r\nconst centerGraphicStyle = new Style({\r\n image: new CircleStyle({\r\n radius: 6,\r\n fill: new Fill({\r\n color: \"#fff\"\r\n }),\r\n stroke: new Stroke({\r\n color: \"#00aeea\",\r\n width: 4\r\n })\r\n })\r\n});\r\n\r\nconst outlineGraphicStyle = new Style({\r\n image: new CircleStyle({\r\n radius: 10,\r\n stroke: new Stroke({\r\n color: \"#00aeea4d\",\r\n width: 4\r\n })\r\n })\r\n});\r\nexport const GeoLocation: FC<{ this: Control }> = (props) => {\r\n const [locationState, setLocationState] = useState(LocationState.Inactive);\r\n const [position, setPosition] = useState({ latitude: 0, longitude: 0 });\r\n const [isMapMoving, setIsMapMoving] = useState(false);\r\n const gpsWatcher = useRef();\r\n const interactingWatcher = useRef();\r\n const stationaryWatcher = useRef();\r\n const centerGraphic = useRef();\r\n const outlineGraphic = useRef();\r\n const pointLayer = useRef>();\r\n\r\n const map = props.this.getMap();\r\n\r\n const geolocationOptions = config\r\n ? config.geoLocation.geolocationOptions\r\n : {\r\n maximumAge: 0,\r\n timeout: 15000,\r\n enableHighAccuracy: true\r\n };\r\n\r\n useEffect(() => {\r\n if (locationState === LocationState.Waiting) {\r\n startLocate();\r\n } else if (locationState === LocationState.Tracking) {\r\n startTracking();\r\n } else if (locationState === LocationState.Inactive) {\r\n stopLocate();\r\n }\r\n }, [locationState]);\r\n\r\n useEffect(() => {\r\n if (position.latitude === 0 && position.longitude === 0) {\r\n return;\r\n }\r\n\r\n placeMarker();\r\n if (locationState === LocationState.Waiting && !isMapMoving) {\r\n moveToPoint();\r\n setLocationState(LocationState.Tracking);\r\n } else if (locationState === LocationState.Tracking && !isMapMoving) {\r\n //@ts-ignore\r\n moveToPoint(map.getView().getZoom());\r\n }\r\n }, [position]);\r\n\r\n const moveToPoint = async (zoom?) => {\r\n setIsMapMoving(true);\r\n await mapGoTo(zoom);\r\n setIsMapMoving(false);\r\n };\r\n\r\n const onSuccess = (position: IPosition) => {\r\n const point = coordinatesConverter.convert(\r\n [position.coords.longitude, position.coords.latitude],\r\n EpsgCode.Wgs84,\r\n EpsgCode.Lks92\r\n );\r\n setPosition({ latitude: point[1], longitude: point[0] });\r\n };\r\n\r\n const onError = () => {\r\n setLocationState(LocationState.Inactive);\r\n };\r\n\r\n const startLocate = () => {\r\n gpsWatcher.current = navigator.geolocation.watchPosition(onSuccess, onError, geolocationOptions);\r\n };\r\n\r\n const stopLocate = () => {\r\n gpsWatcher.current && navigator.geolocation.clearWatch(gpsWatcher.current);\r\n\r\n stopTracking();\r\n\r\n if (pointLayer.current) {\r\n pointLayer.current.getSource().clear();\r\n //@ts-ignore\r\n map.removeLayer(pointLayer.current);\r\n pointLayer.current = null;\r\n centerGraphic.current = null;\r\n outlineGraphic.current = null;\r\n }\r\n };\r\n\r\n const startTracking = () => {\r\n //@ts-ignore\r\n const view = map.getView();\r\n\r\n if (!interactingWatcher.current) {\r\n interactingWatcher.current = setInterval(() => {\r\n if (view.getInteracting() && locationState != LocationState.Watching) {\r\n setLocationState(LocationState.Watching);\r\n }\r\n }, 150);\r\n }\r\n if (!stationaryWatcher.current) {\r\n //@ts-ignore\r\n stationaryWatcher.current = map.on(\"moveend\", refreshPosition);\r\n }\r\n\r\n if (!view.getInteracting() && !view.getAnimating()) {\r\n refreshPosition();\r\n }\r\n\r\n document.addEventListener(\"stopTracking\", () => {\r\n stopTracking();\r\n setLocationState(LocationState.Watching);\r\n });\r\n };\r\n\r\n const stopTracking = () => {\r\n if (stationaryWatcher.current) {\r\n unByKey(stationaryWatcher.current);\r\n stationaryWatcher.current = null;\r\n }\r\n if (interactingWatcher.current) {\r\n clearInterval(interactingWatcher.current);\r\n interactingWatcher.current = null;\r\n }\r\n document.removeEventListener(\"stopTracking\", stopTracking);\r\n };\r\n\r\n const refreshPosition = () => {\r\n if (locationState === LocationState.Tracking) {\r\n setPosition({\r\n latitude: position.latitude,\r\n longitude: position.longitude\r\n });\r\n }\r\n };\r\n\r\n const placeMarker = () => {\r\n const centerPoint = new Point([position.latitude, position.longitude]);\r\n\r\n centerGraphic.current = new Feature();\r\n centerGraphic.current.setStyle(centerGraphicStyle);\r\n centerGraphic.current.setGeometry(centerPoint);\r\n\r\n outlineGraphic.current = new Feature();\r\n outlineGraphic.current.setStyle(outlineGraphicStyle);\r\n outlineGraphic.current.setGeometry(centerPoint);\r\n\r\n if (!pointLayer.current) {\r\n pointLayer.current = new VectorLayer({\r\n //@ts-ignore\r\n map: map,\r\n source: new VectorSource({\r\n features: [centerGraphic.current, outlineGraphic.current]\r\n })\r\n });\r\n }\r\n };\r\n\r\n const mapGoTo = async (zoom) => {\r\n //@ts-ignore\r\n await map.getView().fit(centerGraphic.current.getGeometry(), { duration: 1000, maxZoom: zoom || 15 });\r\n };\r\n\r\n const onClick = () => {\r\n let nextState = locationState;\r\n switch (locationState) {\r\n case LocationState.Inactive:\r\n nextState = LocationState.Waiting;\r\n break;\r\n case LocationState.Watching:\r\n nextState = LocationState.Tracking;\r\n break;\r\n default:\r\n nextState = LocationState.Inactive;\r\n break;\r\n }\r\n setLocationState(nextState);\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport class LocationButton extends Control {\r\n constructor() {\r\n const element = document.createElement(\"div\");\r\n element.className = \"zemesnoma-map-button location-container ol-unselectable ol-control\";\r\n super({\r\n element\r\n });\r\n ReactDOM.render(, element);\r\n }\r\n}\r\n","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { FC } from \"react\";\r\nimport { Control } from \"ol/control\";\r\nimport { Point } from \"ol/geom\";\r\nimport { config } from \"../config\";\r\n\r\nexport const Home: FC<{ this: Control }> = (props) => {\r\n const onClick = () => {\r\n const view = props.this.getMap().getView();\r\n //@ts-ignore\r\n if (!view || !view.viewportSize_) {\r\n return;\r\n }\r\n //@ts-ignore\r\n const resolutionX = config.default.extentSize[0] / view.viewportSize_[0];\r\n //@ts-ignore\r\n const resolutionY = config.default.extentSize[1] / view.viewportSize_[1];\r\n const zoom = view.getZoomForResolution(resolutionX > resolutionY ? resolutionX : resolutionY);\r\n\r\n view.fit(new Point(config.default.center), {\r\n maxZoom: zoom,\r\n duration: 1000\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport class HomeButton extends Control {\r\n constructor() {\r\n const element = document.createElement(\"div\");\r\n element.className = \"zemesnoma-map-button home-container ol-unselectable ol-control\";\r\n super({\r\n element\r\n });\r\n ReactDOM.render(, element);\r\n }\r\n}\r\n","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { FC } from \"react\";\r\nimport { Control } from \"ol/control\";\r\n\r\nexport const Layers: FC<{ this: Control; onToggle: CallableFunction }> = (props) => (\r\n <>\r\n
props.onToggle()} title={\"Papildus slāņi\"}>\r\n \r\n
\r\n \r\n);\r\nexport class LayersButton extends Control {\r\n constructor(toggleLayersMenu: CallableFunction) {\r\n const element = document.createElement(\"div\");\r\n element.className = \"zemesnoma-map-button layers-container ol-unselectable ol-control\";\r\n super({\r\n element\r\n });\r\n ReactDOM.render(, element);\r\n }\r\n}\r\n","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { FC, useState } from \"react\";\r\nimport { Control } from \"ol/control\";\r\nimport { Basemaps } from \"../enums\";\r\nimport mammaImage from \"../../img/basemaps/mamma.png\";\r\nimport ortoImage from \"../../img/basemaps/orto2.png\";\r\n\r\nexport const Basemap: FC<{ this: Control; onToggle: CallableFunction }> = (props) => {\r\n const [mapId, setMapId] = useState(Basemaps.Orto);\r\n\r\n const onClick = () => {\r\n const newMap = mapId === Basemaps.Mamma ? Basemaps.Orto : Basemaps.Mamma;\r\n setMapId(newMap);\r\n props.onToggle(newMap);\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport class BasemapButton extends Control {\r\n constructor(toggleBasemap: CallableFunction) {\r\n const element = document.createElement(\"div\");\r\n element.id = \"basemap-toggle\";\r\n element.className = \"zemesnoma-map-button ol-unselectable ol-control\";\r\n super({\r\n element\r\n });\r\n ReactDOM.render(, element);\r\n }\r\n}\r\n","import { Condition } from \"./enums\";\r\nimport { IFilters } from \"./filters\";\r\n\r\nexport interface IConfig {\r\n default: IDefault;\r\n basemapLVM: IBasemapLVM;\r\n basemapOrto: IBasemapOrto;\r\n layers: ILayerConfig[];\r\n geoLocation?: ILocation;\r\n sideView: ISideView;\r\n dataView: IDataView;\r\n search: ISearch;\r\n reCaptchaSiteKey: string;\r\n upload: IUploadConfig;\r\n print: IPrintConfig;\r\n email: IEmailConfig;\r\n}\r\nexport interface IDefault {\r\n center: number[];\r\n extentSize: number[];\r\n zoom: number;\r\n minZoom: number;\r\n projection: string;\r\n zoomToLevel: number;\r\n clusterLayerId: string;\r\n polygonLayerId: string;\r\n clusterDistance: number;\r\n polygonZoomThreshold: number;\r\n dataDownloadUrl: string;\r\n}\r\n\r\nexport interface IBasemapLVM {\r\n tileGrid: {\r\n extent: number[];\r\n origin: number[];\r\n tileSize: number[];\r\n resolutions: number[];\r\n };\r\n source: {\r\n url: string;\r\n maxZoom: number;\r\n projection: string;\r\n crossOrigin: string;\r\n };\r\n}\r\nexport interface IBasemapOrto {\r\n source: {\r\n url: string;\r\n params: {\r\n LAYERS: string;\r\n FORMAT: string;\r\n transparent: boolean;\r\n };\r\n projection: string;\r\n serverType: string;\r\n crossOrigin: string;\r\n };\r\n}\r\nexport interface ILayerConfig {\r\n id: string;\r\n title: string;\r\n copyright: string;\r\n url: string;\r\n crossOrigin: string;\r\n}\r\nexport interface ILocation {\r\n geolocationOptions?: {\r\n maximumAge: number;\r\n timeout: number;\r\n enableHighAccuracy: boolean;\r\n };\r\n}\r\n\r\nexport interface IIdentify {\r\n fields: string[];\r\n conditionalFields: IIdentifyCondition[];\r\n}\r\n\r\nexport interface IIdentifyCondition {\r\n field: string;\r\n value: string | number | boolean;\r\n condition: Condition;\r\n showFields: string[];\r\n}\r\nexport interface IDataView {\r\n defaultHeightPx?: number;\r\n openButtonFieldName?: string;\r\n docsButtonFieldName?: string;\r\n applyButtonFieldName?: string;\r\n imageFieldName?: string;\r\n fallbackImageUrl?: string;\r\n thumbnailHeight?: number;\r\n tabLayerId: string;\r\n tabField: string;\r\n imageApi: string;\r\n docsApi: string;\r\n currencyFields: string[];\r\n tabs: IDataTab[];\r\n}\r\nexport interface IDataTab {\r\n tabValue: string | number | boolean;\r\n showDocs?: boolean;\r\n showApply?: boolean;\r\n fields: string[];\r\n mobileUIFields: string[];\r\n preview: IPreview;\r\n identify: IIdentify;\r\n}\r\n\r\nexport interface ISideView {\r\n textFilter: IFilterConfig;\r\n filters: IFilterConfig[];\r\n}\r\n\r\nexport interface IPreview {\r\n fields: string[];\r\n hardcodedFields: IHardcodedField[];\r\n footerText: string;\r\n}\r\n\r\nexport interface IHardcodedField {\r\n field: string;\r\n alias: string;\r\n values: string[];\r\n}\r\nexport interface IFilterConfig {\r\n field: string;\r\n title: string;\r\n multipleSelection?: boolean;\r\n}\r\n\r\nexport interface ISearch {\r\n fields: string[];\r\n}\r\n\r\nexport interface IUploadConfig {\r\n url: string;\r\n}\r\n\r\nexport interface IPrintConfig {\r\n endpoint: string;\r\n url: string;\r\n}\r\n\r\nexport interface IEmailConfig {\r\n subject: string;\r\n body: string;\r\n url: string;\r\n}\r\n\r\nexport const proxyUrl = process.env.NODE_ENV === \"development\" ? \"https://lvmkartes.lvm.lv/noma/beta/\" : \"\";\r\nexport const all = \"visi\";\r\nexport const defaultOption = { name: all, code: undefined };\r\nexport const objectIdGap = 10000000;\r\n\r\nexport const config: IConfig = {\r\n default: {\r\n center: [530000, 310000],\r\n extentSize: [530000, 310000],\r\n zoom: 4.5,\r\n minZoom: 3.5,\r\n projection: \"EPSG:3059\",\r\n zoomToLevel: 13,\r\n clusterLayerId: \"clusterLayer\",\r\n polygonLayerId: \"polygonLayer\",\r\n clusterDistance: 80,\r\n polygonZoomThreshold: 9.116829398696783,\r\n dataDownloadUrl: \"https://www.lvmgeo.lv/dati\"\r\n },\r\n basemapLVM: {\r\n tileGrid: {\r\n extent: [-1349424.723447654, -595003.4846995564, 2424864.0751299444, 1206812.6189326514],\r\n origin: [-5120900, 3998100],\r\n tileSize: [512, 512],\r\n resolutions: [\r\n 1058.3354500042335, 529.1677250021168, 264.5838625010584, 132.2919312505292, 52.91677250021167,\r\n 26.458386250105836, 13.229193125052918, 10.583354500042335, 7.9375158750317505, 5.291677250021167,\r\n 3.9687579375158752, 2.6458386250105836, 1.3229193125052918, 0.5291677250021167\r\n ]\r\n },\r\n source: {\r\n url: proxyUrl + \"proxy/D341478CE74F4F02B68607991448D499/CloudMap_mammadaba/MapServer/tile/{z}/{y}/{x}\",\r\n maxZoom: 14,\r\n projection: \"EPSG:3059\",\r\n crossOrigin: \"anonymous\"\r\n }\r\n },\r\n basemapOrto: {\r\n source: {\r\n url: \"https://lvmgeoserver.lvm.lv/geoserver/ows\",\r\n params: {\r\n LAYERS: \"public:Orto_LKS\",\r\n FORMAT: \"image/vnd.jpeg-png8\",\r\n transparent: false\r\n },\r\n projection: \"EPSG:3857\",\r\n serverType: \"geoserver\",\r\n crossOrigin: \"anonymous\"\r\n }\r\n },\r\n layers: [\r\n {\r\n id: \"cadaster\",\r\n title: \"Kadastra karte\",\r\n copyright: \"Valsts Zemes dienests\",\r\n url: proxyUrl + \"proxy/7cb29dcbb61442b7a22c289b22d671b8/MapServer\",\r\n crossOrigin: \"anonymous\"\r\n },\r\n {\r\n id: \"LAD\",\r\n title: \"Lauku atbalsta dienesta dati\",\r\n copyright: \"LAD\",\r\n url: proxyUrl + \"proxy/D341478CE74F4F02B68607991448D499/LAD/vLAD/MapServer\",\r\n crossOrigin: \"anonymous\"\r\n },\r\n {\r\n id: \"DAP\",\r\n title: \"Dabas aizsardzības pārvaldes dati\",\r\n copyright: \"DAP\",\r\n url: proxyUrl + \"proxy/D341478CE74F4F02B68607991448D499/DAP/vDAP_public/MapServer\",\r\n crossOrigin: \"anonymous\"\r\n },\r\n {\r\n id: \"melioracija\",\r\n title: \"ZMNĪ meliorācijas sistēmas\",\r\n copyright: \"ZMNĪ\",\r\n url: proxyUrl + \"proxy/D341478CE74F4F02B68607991448D499/CacheDinamic/ZMNI/MapServer\",\r\n crossOrigin: \"anonymous\"\r\n }\r\n ],\r\n geoLocation: {\r\n geolocationOptions: {\r\n maximumAge: 0,\r\n timeout: 15000,\r\n enableHighAccuracy: true\r\n }\r\n },\r\n sideView: {\r\n textFilter: {\r\n field: \"TEXT-FILTER\",\r\n title: \"Teksta meklēšana\"\r\n },\r\n filters: [\r\n { field: \"REGIONATVK\", title: \"Novads\" },\r\n { field: \"MUNICIPALITYATVK\", title: \"Pagasts\" },\r\n { field: \"LVMFORESTRYCODE\", title: \"LVM reģions\" },\r\n { field: \"RENTPURPOSE\", title: \"Iznomāšanas mērķis\", multipleSelection: true },\r\n { field: \"LANDAREA\", title: \"Platība, ha (diapazons)\" },\r\n { field: \"TYPEOFLEASEGRANTING\", title: \"Nomas tiesību piešķiršanas veids\" }\r\n ]\r\n },\r\n dataView: {\r\n defaultHeightPx: 300,\r\n openButtonFieldName: \"Atvērt sludinājumu\",\r\n docsButtonFieldName: \"Pievienotie dokumenti\",\r\n applyButtonFieldName: \"Pieteikties\",\r\n imageFieldName: \"Attēls\",\r\n fallbackImageUrl: \"https://www.lvmgeo.lv/themes/25-lvmgeo/images/header-logo.svg\",\r\n thumbnailHeight: 200,\r\n tabLayerId: \"landplotTest\",\r\n tabField: \"STATE\",\r\n imageApi: proxyUrl + \"proxy/fp_photo_01246833d064492b96b37d4a25d4049d\",\r\n docsApi: proxyUrl + \"proxy/fp_docs_c14406ff035c450ba1ac5025c614289d\",\r\n currencyFields: [\"STARTRENT\", \"TAX\", \"REGISTRATIONFEE\", \"RECOGNIZANCE\", \"AUCTIONEDRENT\"],\r\n tabs: [\r\n {\r\n tabValue: 1,\r\n showDocs: true,\r\n showApply: true,\r\n fields: [\r\n \"OBJECTNAME\",\r\n \"RENTPURPOSE\",\r\n \"LANDAREA\",\r\n \"AGREEMENTTERM\",\r\n \"STARTRENT\",\r\n \"FIRSTPUBLISHDATE\",\r\n \"APPLICATIONENDDATE\",\r\n \"TYPEOFLEASEGRANTING\"\r\n ],\r\n mobileUIFields: [\"OBJECTNAME\", \"STARTRENT\", \"LANDAREA\", \"RENTPURPOSE\"],\r\n preview: {\r\n fields: [\r\n \"LANDAREA\",\r\n \"RENTPURPOSE\",\r\n \"STARTRENT\",\r\n \"TAX\",\r\n \"AGREEMENTTERM\",\r\n \"OBJECTDESCRIPTION\",\r\n \"SPECIALCONDITIONS\",\r\n \"hardcoded-OBJECTVISITING\",\r\n \"hardcoded-CONTACTS\",\r\n \"TYPEOFLEASEGRANTING\",\r\n \"REGISTRATIONFEE\",\r\n \"RECOGNIZANCE\",\r\n \"APPLICATIONENDDATE\",\r\n \"AUCTIONPLACES\",\r\n \"EVENTDATE\"\r\n ],\r\n hardcodedFields: [\r\n {\r\n field: \"hardcoded-OBJECTVISITING\",\r\n alias: \"Objekta apskates vieta un laiks\",\r\n values: [\"Iepriekš vienojoties ar zemāk norādīto kontaktpersonu\"]\r\n },\r\n {\r\n field: \"hardcoded-CONTACTS\",\r\n alias: \"Kontakti\",\r\n values: ['AS \"Latvijas valsts meži\"', \"EMPLOYEENAME\", \"EMPLOYEEEMAIL\", \"EMPLOYEEPHONE\"]\r\n }\r\n ],\r\n footerText:\r\n \"*Cenā nav iekļauts Nekustamā īpašuma nodoklis un Pievienotās vērtības nodoklis. Tie ir jāmaksā atbilstoši spēkā esošām nodokļu likmēm.\"\r\n },\r\n identify: {\r\n fields: [\"OBJECTNAME\", \"RENTPURPOSE\", \"LANDAREA\", \"AGREEMENTTERM\", \"TYPEOFLEASEGRANTING\"],\r\n conditionalFields: [\r\n {\r\n field: \"TYPEOFLEASEGRANTING\",\r\n value: \"2\",\r\n condition: Condition.Is,\r\n showFields: []\r\n },\r\n {\r\n field: \"TYPEOFLEASEGRANTING\",\r\n value: \"3\",\r\n condition: Condition.Is,\r\n showFields: []\r\n },\r\n {\r\n field: \"TYPEOFLEASEGRANTING\",\r\n value: \"4\",\r\n condition: Condition.Is,\r\n showFields: []\r\n },\r\n {\r\n field: \"AUCTIONPLACES\",\r\n value: \"ONLIN\",\r\n condition: Condition.Not,\r\n showFields: []\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n tabValue: 2,\r\n fields: [\r\n \"OBJECTNAME\",\r\n \"RENTPURPOSE\",\r\n \"LANDAREA\",\r\n \"AGREEMENTTERM\",\r\n \"FIRSTPUBLISHDATE\",\r\n \"TYPEOFLEASEGRANTING\"\r\n ],\r\n mobileUIFields: [\"OBJECTNAME\", \"LANDAREA\", \"RENTPURPOSE\"],\r\n preview: {\r\n fields: [\r\n \"LANDAREA\",\r\n \"RENTPURPOSE\",\r\n \"STARTRENT\",\r\n \"TAX\",\r\n \"AGREEMENTTERM\",\r\n \"OBJECTDESCRIPTION\",\r\n \"SPECIALCONDITIONS\",\r\n \"hardcoded-OBJECTVISITING\",\r\n \"hardcoded-CONTACTS\",\r\n \"REGISTRATIONFEE\",\r\n \"RECOGNIZANCE\",\r\n \"APPLICATIONENDDATE\",\r\n \"AUCTIONPLACES\",\r\n \"EVENTDATE\"\r\n ],\r\n hardcodedFields: [\r\n {\r\n field: \"hardcoded-OBJECTVISITING\",\r\n alias: \"Objekta apskates vieta un laiks\",\r\n values: [\"Iepriekš vienojoties ar zemāk norādīto kontaktpersonu\"]\r\n },\r\n {\r\n field: \"hardcoded-CONTACTS\",\r\n alias: \"Kontakti\",\r\n values: ['AS \"Latvijas valsts meži\"', \"EMPLOYEENAME\", \"EMPLOYEEEMAIL\", \"EMPLOYEEPHONE\"]\r\n }\r\n ],\r\n footerText:\r\n \"*Cenā nav iekļauts Nekaustāmā īpašuma nodoklis un Pievienotās vērtības nodoklis. Tie ir jāmaksā atbilstoši spēkā esošām nodokļu likmēm.\"\r\n },\r\n identify: {\r\n fields: [\"OBJECTNAME\", \"RENTPURPOSE\", \"LANDAREA\", \"AGREEMENTTERM\", \"TYPEOFLEASEGRANTING\"],\r\n conditionalFields: [\r\n {\r\n field: \"TYPEOFLEASEGRANTING\",\r\n value: \"2\",\r\n condition: Condition.Is,\r\n showFields: []\r\n },\r\n {\r\n field: \"TYPEOFLEASEGRANTING\",\r\n value: \"3\",\r\n condition: Condition.Is,\r\n showFields: []\r\n },\r\n {\r\n field: \"TYPEOFLEASEGRANTING\",\r\n value: \"4\",\r\n condition: Condition.Is,\r\n showFields: []\r\n },\r\n {\r\n field: \"AUCTIONPLACES\",\r\n value: \"ONLIN\",\r\n condition: Condition.Not,\r\n showFields: []\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n tabValue: 3,\r\n fields: [\"OBJECTNAME\", \"RENTPURPOSE\", \"LANDAREA\", \"STARTRENT\", \"AUCTIONEDRENT\", \"LEASEE\"],\r\n mobileUIFields: [\"OBJECTNAME\", \"AUCTIONEDRENT\", \"LANDAREA\", \"RENTPURPOSE\"],\r\n preview: {\r\n fields: [\r\n \"LEASEE\",\r\n \"AUCTIONEDRENT\",\r\n \"LANDAREA\",\r\n \"RENTPURPOSE\",\r\n \"STARTRENT\",\r\n \"TAX\",\r\n \"AGREEMENTTERM\",\r\n \"OBJECTDESCRIPTION\",\r\n \"SPECIALCONDITIONS\",\r\n \"hardcoded-OBJECTVISITING\",\r\n \"hardcoded-CONTACTS\",\r\n \"REGISTRATIONFEE\",\r\n \"RECOGNIZANCE\",\r\n \"APPLICATIONENDDATE\",\r\n \"AUCTIONPLACES\",\r\n \"EVENTDATE\"\r\n ],\r\n hardcodedFields: [\r\n {\r\n field: \"hardcoded-OBJECTVISITING\",\r\n alias: \"Objekta apskates vieta un laiks\",\r\n values: [\"Iepriekš vienojoties ar zemāk norādīto kontaktpersonu\"]\r\n },\r\n {\r\n field: \"hardcoded-CONTACTS\",\r\n alias: \"Kontakti\",\r\n values: ['AS \"Latvijas valsts meži\"', \"EMPLOYEENAME\", \"EMPLOYEEEMAIL\", \"EMPLOYEEPHONE\"]\r\n }\r\n ],\r\n footerText:\r\n \"*Cenā nav iekļauts Nekaustāmā īpašuma nodoklis un Pievienotās vērtības nodoklis. Tie ir jāmaksā atbilstoši spēkā esošām nodokļu likmēm.\"\r\n },\r\n identify: {\r\n fields: [\"OBJECTNAME\", \"RENTPURPOSE\", \"LANDAREA\", \"STARTRENT\", \"AUCTIONEDRENT\"],\r\n conditionalFields: [\r\n {\r\n field: \"TYPEOFLEASEGRANTING\",\r\n value: \"2\",\r\n condition: Condition.Is,\r\n showFields: []\r\n },\r\n {\r\n field: \"TYPEOFLEASEGRANTING\",\r\n value: \"3\",\r\n condition: Condition.Is,\r\n showFields: []\r\n },\r\n {\r\n field: \"TYPEOFLEASEGRANTING\",\r\n value: \"4\",\r\n condition: Condition.Is,\r\n showFields: []\r\n },\r\n {\r\n field: \"AUCTIONPLACES\",\r\n value: \"ONLIN\",\r\n condition: Condition.Not,\r\n showFields: []\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n tabValue: 4,\r\n fields: [\r\n \"OBJECTNAME\",\r\n \"RENTPURPOSE\",\r\n \"LANDAREA\",\r\n \"AUCTIONEDRENT\",\r\n \"LEASEE\",\r\n \"CONTRACTDATE\",\r\n \"CONTRACTENDDATE\"\r\n ],\r\n mobileUIFields: [\"OBJECTNAME\", \"AUCTIONEDRENT\", \"LANDAREA\", \"RENTPURPOSE\"],\r\n preview: {\r\n fields: [\r\n \"LEASEE\",\r\n \"AUCTIONEDRENT\",\r\n \"CONTRACTDATE\",\r\n \"CONTRACTENDDATE\",\r\n \"LANDAREA\",\r\n \"RENTPURPOSE\",\r\n \"STARTRENT\",\r\n \"TAX\",\r\n \"AGREEMENTTERM\",\r\n \"OBJECTDESCRIPTION\",\r\n \"SPECIALCONDITIONS\",\r\n \"hardcoded-OBJECTVISITING\",\r\n \"hardcoded-CONTACTS\",\r\n \"REGISTRATIONFEE\",\r\n \"RECOGNIZANCE\",\r\n \"APPLICATIONENDDATE\",\r\n \"AUCTIONPLACES\",\r\n \"EVENTDATE\"\r\n ],\r\n hardcodedFields: [\r\n {\r\n field: \"hardcoded-OBJECTVISITING\",\r\n alias: \"Objekta apskates vieta un laiks\",\r\n values: [\"Iepriekš vienojoties ar zemāk norādīto kontaktpersonu\"]\r\n },\r\n {\r\n field: \"hardcoded-CONTACTS\",\r\n alias: \"Kontakti\",\r\n values: ['AS \"Latvijas valsts meži\"', \"EMPLOYEENAME\", \"EMPLOYEEEMAIL\", \"EMPLOYEEPHONE\"]\r\n }\r\n ],\r\n footerText:\r\n \"*Cenā nav iekļauts Nekaustāmā īpašuma nodoklis un Pievienotās vērtības nodoklis. Tie ir jāmaksā atbilstoši spēkā esošām nodokļu likmēm.\"\r\n },\r\n identify: {\r\n fields: [\r\n \"OBJECTNAME\",\r\n \"RENTPURPOSE\",\r\n \"LANDAREA\",\r\n \"AUCTIONEDRENT\",\r\n \"LEASEE\",\r\n \"CONTRACTDATE\",\r\n \"CONTRACTENDDATE\"\r\n ],\r\n conditionalFields: [\r\n {\r\n field: \"TYPEOFLEASEGRANTING\",\r\n value: \"2\",\r\n condition: Condition.Is,\r\n showFields: []\r\n },\r\n {\r\n field: \"TYPEOFLEASEGRANTING\",\r\n value: \"3\",\r\n condition: Condition.Is,\r\n showFields: []\r\n },\r\n {\r\n field: \"TYPEOFLEASEGRANTING\",\r\n value: \"4\",\r\n condition: Condition.Is,\r\n showFields: []\r\n },\r\n {\r\n field: \"AUCTIONPLACES\",\r\n value: \"ONLIN\",\r\n condition: Condition.Not,\r\n showFields: []\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n },\r\n search: {\r\n fields: [\"PROPERTYTITLE\", \"CADASTER\", \"OBJECTNAME\", \"SPECIALCONDITIONS\"]\r\n },\r\n reCaptchaSiteKey: \"6LffWbodAAAAAN9yurCV4D7GKyz82OxSyrZ5gEhw\",\r\n upload: {\r\n url: proxyUrl + \"proxy/fp_save_67312ef2b5244f28a6183e2397755e88/api/Save\"\r\n },\r\n print: {\r\n endpoint: \"/dipa/pdf\",\r\n url: proxyUrl + \"proxy/print_846d8f58c3da4f91bc914f7fca62d0ec\"\r\n },\r\n email: {\r\n subject: \"Nomas pieteikuma apstiprinājums\",\r\n body: \"AS “Latvijas valsts meži” Jūsu iesniegtais nomas pieteikums ir saņemts, par procesa tālāku virzību ar Jums sazināsies attiecīgā reģiona Nekustamo īpašumu pārvaldes zemes lietojuma speciālists.\",\r\n url: proxyUrl + \"proxy/email_4f7ad5fa1c62484cab58d7d64013f4aa/api/send\"\r\n }\r\n};\r\n\r\nexport const filterAllValues: IFilters = Object.assign(\r\n {},\r\n ...config.sideView.filters.map((filter) => ({\r\n [filter.field]: filter.field === \"LANDAREA\" ? [0, 0] : all\r\n }))\r\n);\r\nexport const defaultFilterValues: IFilters = Object.assign(\r\n {},\r\n ...config.sideView.filters.map((filter) => ({\r\n [filter.field]: filter.field === \"LANDAREA\" ? [0, 0] : all\r\n }))\r\n);\r\nexport const defaultWindFarmFilterValues: IFilters = Object.assign(\r\n {},\r\n ...config.sideView.filters.map((filter) => ({\r\n [filter.field]: filter.field === \"LANDAREA\" ? [0, 0] : filter.field === \"RENTPURPOSE\" ? [8] : all\r\n }))\r\n);\r\n","export enum SelectedStatus {\r\n Default = 0,\r\n Selected = 1\r\n}\r\n\r\nexport enum Basemaps {\r\n Mamma = \"mammaBasemap\",\r\n Orto = \"ortoBasemap\"\r\n}\r\n\r\nexport enum Condition {\r\n Is = \"is\",\r\n Not = \"not\"\r\n}\r\n\r\nexport enum ApplicantType {\r\n Individual = 0,\r\n Company = 1\r\n}\r\n\r\nexport enum AttachmentType {\r\n Path = \"Download\",\r\n File = \"FileProvider\"\r\n}\r\n\r\nexport enum PrintType {\r\n Path = 1,\r\n File = 2\r\n}\r\n\r\nexport enum Result {\r\n Success = \"Success\",\r\n Error = \"Error\"\r\n}\r\n\r\nexport enum UploadState {\r\n SubmitForm = \"SubmitForm\",\r\n CreatePdf = \"CreatePdf\",\r\n UploadPdf = \"UploadPdf\",\r\n SendEmail = \"SendEmail\"\r\n}\r\n\r\nexport enum ImageLoadingState {\r\n Loading = \"Loading\",\r\n NoImages = \"NoImages\"\r\n}\r\n","import { Feature } from \"ol\";\r\nimport { all, config } from \"./config\";\r\nimport { filterByText } from \"./search\";\r\n\r\nexport interface IFilters {\r\n [name: string]: string | (number | string)[];\r\n}\r\n\r\nexport const filterFeatures = (allFeatures: Feature[], filterOptions: IFilters): Feature[] => {\r\n let filteredFeatures = allFeatures;\r\n filterOptions &&\r\n Object.keys(filterOptions).map((name: string) => {\r\n const value = filterOptions[name];\r\n if (value === all) {\r\n return;\r\n }\r\n const isMultipleSelection = config.sideView.filters.find(\r\n (conf) => conf.field === name && conf.multipleSelection\r\n );\r\n\r\n if (name === config.sideView.textFilter.field) {\r\n filteredFeatures = filterByText(filteredFeatures, value.toString());\r\n } else if (typeof value === \"string\") {\r\n filteredFeatures = filteredFeatures.filter(\r\n (f) => (f.get(name) !== null || f.get(name) !== undefined) && f.get(name)?.toString() === value\r\n );\r\n } else if (typeof value === \"number\") {\r\n filteredFeatures = filteredFeatures.filter(\r\n (f) => (f.get(name) !== null || f.get(name) !== undefined) && f.get(name) === value\r\n );\r\n } else if (isMultipleSelection) {\r\n filteredFeatures = filteredFeatures.filter((f) => {\r\n const hasKey = f.getKeys().includes(name);\r\n const featureValue = hasKey && f.get(name);\r\n return featureValue && value.includes(featureValue);\r\n });\r\n } else {\r\n filteredFeatures = filteredFeatures.filter((f) => {\r\n const featureValue = f.get(name);\r\n return featureValue >= value[0] && (value[1] === 0 ? true : featureValue <= value[1]);\r\n });\r\n }\r\n });\r\n\r\n return filteredFeatures;\r\n};\r\n\r\nexport const filterByExtent = (features: Feature[], extent: number[]): Feature[] => {\r\n if (!features) {\r\n return [];\r\n }\r\n const [xmin, ymin, xmax, ymax] = extent;\r\n return (features = features.filter((feature) => {\r\n const [fxmin, fymin, fxmax, fymax] = feature.getGeometry().getExtent();\r\n return !(fxmin >= xmax || fxmax <= xmin || fymin >= ymax || fymax <= ymin);\r\n }));\r\n};\r\n","// export const getRegions = () => {\r\n// const regions = [];\r\n// REG_MUN.map((item) => !regions.includes(item.REG_ATVK) && regions.push(item.REG_ATVK));\r\n\r\n// const target = {};\r\n// regions.forEach((key) => (target[key] = getRegionMunicipalities(key)));\r\n// console.log(\"target\", JSON.stringify(target));\r\n// };\r\n\r\n// const getRegionMunicipalities = (region: string) => {\r\n// const muns = [];\r\n// REG_MUN.map((item) => {\r\n// item.REG_ATVK === region && muns.push(item.MUN_ATVK);\r\n// });\r\n// return muns;\r\n// };\r\n\r\nexport const region_Municipalities: { [region: string]: string[] } = {\r\n \"1000\": [],\r\n \"2000\": [],\r\n \"3000\": [],\r\n \"4000\": [],\r\n \"5000\": [],\r\n \"6000\": [],\r\n \"7000\": [],\r\n \"20000\": [\r\n \"20200\",\r\n \"20210\",\r\n \"20420\",\r\n \"20440\",\r\n \"20230\",\r\n \"20550\",\r\n \"20460\",\r\n \"20490\",\r\n \"20500\",\r\n \"20430\",\r\n \"20510\",\r\n \"20220\",\r\n \"20410\",\r\n \"20520\",\r\n \"20450\",\r\n \"20400\",\r\n \"20540\",\r\n \"20570\",\r\n \"20470\",\r\n \"20480\",\r\n \"20530\",\r\n \"20560\"\r\n ],\r\n \"21000\": [\r\n \"21200\",\r\n \"21460\",\r\n \"21490\",\r\n \"21530\",\r\n \"21420\",\r\n \"21500\",\r\n \"21510\",\r\n \"21450\",\r\n \"21540\",\r\n \"21430\",\r\n \"21470\",\r\n \"21520\",\r\n \"21440\",\r\n \"21480\",\r\n \"21400\",\r\n \"21410\"\r\n ],\r\n \"22000\": [\r\n \"22200\",\r\n \"22400\",\r\n \"22210\",\r\n \"22620\",\r\n \"22440\",\r\n \"22640\",\r\n \"22530\",\r\n \"22550\",\r\n \"22430\",\r\n \"22540\",\r\n \"22600\",\r\n \"22410\",\r\n \"22590\",\r\n \"22420\",\r\n \"22580\",\r\n \"22560\",\r\n \"22570\",\r\n \"22630\",\r\n \"22490\",\r\n \"22510\",\r\n \"22460\",\r\n \"22470\",\r\n \"22500\",\r\n \"22450\",\r\n \"22520\",\r\n \"22610\",\r\n \"22480\"\r\n ],\r\n \"23000\": [\"23410\", \"23400\"],\r\n \"24000\": [\r\n \"24210\",\r\n \"24530\",\r\n \"24570\",\r\n \"24400\",\r\n \"24560\",\r\n \"24510\",\r\n \"24520\",\r\n \"24200\",\r\n \"24420\",\r\n \"24450\",\r\n \"24470\",\r\n \"24460\",\r\n \"24580\",\r\n \"24500\",\r\n \"24440\",\r\n \"24430\",\r\n \"24490\",\r\n \"24410\",\r\n \"24540\",\r\n \"24550\",\r\n \"24480\"\r\n ],\r\n \"25000\": [\r\n \"25510\",\r\n \"25200\",\r\n \"25450\",\r\n \"25540\",\r\n \"25570\",\r\n \"25500\",\r\n \"25560\",\r\n \"25490\",\r\n \"25210\",\r\n \"25410\",\r\n \"25480\",\r\n \"25440\",\r\n \"25430\",\r\n \"25530\",\r\n \"25520\",\r\n \"25550\",\r\n \"25400\",\r\n \"25470\",\r\n \"25460\",\r\n \"25420\"\r\n ],\r\n \"26000\": [\r\n \"26210\",\r\n \"26600\",\r\n \"26420\",\r\n \"26200\",\r\n \"26550\",\r\n \"26450\",\r\n \"26540\",\r\n \"26570\",\r\n \"26490\",\r\n \"26460\",\r\n \"26440\",\r\n \"26520\",\r\n \"26470\",\r\n \"26510\",\r\n \"26500\",\r\n \"26580\",\r\n \"26590\",\r\n \"26430\",\r\n \"26530\",\r\n \"26560\",\r\n \"26400\",\r\n \"26480\",\r\n \"26410\"\r\n ],\r\n \"27000\": [\r\n \"27470\",\r\n \"27200\",\r\n \"27220\",\r\n \"27540\",\r\n \"27240\",\r\n \"27530\",\r\n \"27640\",\r\n \"27460\",\r\n \"27430\",\r\n \"27570\",\r\n \"27620\",\r\n \"27210\",\r\n \"27400\",\r\n \"27510\",\r\n \"27410\",\r\n \"27230\",\r\n \"27580\",\r\n \"27550\",\r\n \"27490\",\r\n \"27420\",\r\n \"27560\",\r\n \"27630\",\r\n \"27520\",\r\n \"27610\",\r\n \"27480\",\r\n \"27600\",\r\n \"27500\",\r\n \"27650\",\r\n \"27590\",\r\n \"27440\",\r\n \"27450\"\r\n ],\r\n \"28000\": [\r\n \"28210\",\r\n \"28580\",\r\n \"28460\",\r\n \"28420\",\r\n \"28200\",\r\n \"28470\",\r\n \"28550\",\r\n \"28570\",\r\n \"28540\",\r\n \"28440\",\r\n \"28430\",\r\n \"28450\",\r\n \"28480\",\r\n \"28530\",\r\n \"28500\",\r\n \"28490\",\r\n \"28510\",\r\n \"28400\",\r\n \"28520\",\r\n \"28560\",\r\n \"28410\"\r\n ],\r\n \"29000\": [\r\n \"29410\",\r\n \"29420\",\r\n \"29500\",\r\n \"29200\",\r\n \"29520\",\r\n \"29430\",\r\n \"29440\",\r\n \"29490\",\r\n \"29400\",\r\n \"29480\",\r\n \"29470\",\r\n \"29460\",\r\n \"29510\",\r\n \"29450\"\r\n ],\r\n \"30000\": [\r\n \"30520\",\r\n \"30480\",\r\n \"30540\",\r\n \"30550\",\r\n \"30450\",\r\n \"30510\",\r\n \"30460\",\r\n \"30500\",\r\n \"30430\",\r\n \"30420\",\r\n \"30490\",\r\n \"30530\",\r\n \"30400\",\r\n \"30440\",\r\n \"30470\",\r\n \"30410\"\r\n ],\r\n \"31000\": [\r\n \"31420\",\r\n \"31550\",\r\n \"31200\",\r\n \"31510\",\r\n \"31500\",\r\n \"31570\",\r\n \"31430\",\r\n \"31590\",\r\n \"31600\",\r\n \"31470\",\r\n \"31520\",\r\n \"31450\",\r\n \"31210\",\r\n \"31560\",\r\n \"31400\",\r\n \"31530\",\r\n \"31460\",\r\n \"31610\",\r\n \"31490\",\r\n \"31410\",\r\n \"31540\",\r\n \"31580\",\r\n \"31480\",\r\n \"31440\",\r\n \"31010\"\r\n ],\r\n \"32000\": [\r\n \"32620\",\r\n \"32450\",\r\n \"32210\",\r\n \"32630\",\r\n \"32480\",\r\n \"32430\",\r\n \"32570\",\r\n \"32410\",\r\n \"32580\",\r\n \"32200\",\r\n \"32590\",\r\n \"32510\",\r\n \"32560\",\r\n \"32500\",\r\n \"32400\",\r\n \"32600\",\r\n \"32530\",\r\n \"32470\",\r\n \"32550\",\r\n \"32520\",\r\n \"32540\",\r\n \"32440\",\r\n \"32490\",\r\n \"32460\",\r\n \"32420\",\r\n \"32610\"\r\n ],\r\n \"33000\": [\r\n \"33210\",\r\n \"33540\",\r\n \"33430\",\r\n \"33200\",\r\n \"33480\",\r\n \"33500\",\r\n \"33550\",\r\n \"33420\",\r\n \"33560\",\r\n \"33470\",\r\n \"33570\",\r\n \"33530\",\r\n \"33460\",\r\n \"33410\",\r\n \"33510\",\r\n \"33520\",\r\n \"33450\",\r\n \"33440\",\r\n \"33400\",\r\n \"33490\"\r\n ],\r\n \"34000\": [\"34410\", \"34210\", \"34400\", \"34200\", \"34420\"],\r\n \"35000\": [\r\n \"35240\",\r\n \"35530\",\r\n \"35230\",\r\n \"35220\",\r\n \"35200\",\r\n \"35210\",\r\n \"35510\",\r\n \"35410\",\r\n \"35430\",\r\n \"35400\",\r\n \"35440\",\r\n \"35490\",\r\n \"35460\",\r\n \"35480\",\r\n \"35520\",\r\n \"35500\",\r\n \"35470\",\r\n \"35450\",\r\n \"35420\"\r\n ],\r\n \"36000\": [\"36420\", \"36200\", \"36400\", \"36440\", \"36430\", \"36410\"],\r\n \"37000\": [\r\n \"37490\",\r\n \"37210\",\r\n \"37570\",\r\n \"37200\",\r\n \"37220\",\r\n \"37600\",\r\n \"37420\",\r\n \"37610\",\r\n \"37430\",\r\n \"37550\",\r\n \"37590\",\r\n \"37520\",\r\n \"37440\",\r\n \"37400\",\r\n \"37510\",\r\n \"37470\",\r\n \"37560\",\r\n \"37410\",\r\n \"37530\",\r\n \"37480\",\r\n \"37580\",\r\n \"37450\",\r\n \"37500\",\r\n \"37540\",\r\n \"37460\"\r\n ],\r\n \"38000\": [\r\n \"38210\",\r\n \"38220\",\r\n \"38530\",\r\n \"38200\",\r\n \"38490\",\r\n \"38570\",\r\n \"38510\",\r\n \"38450\",\r\n \"38430\",\r\n \"38500\",\r\n \"38480\",\r\n \"38460\",\r\n \"38520\",\r\n \"38440\",\r\n \"38560\",\r\n \"38550\",\r\n \"38420\",\r\n \"38580\",\r\n \"38400\",\r\n \"38470\",\r\n \"38540\",\r\n \"38410\"\r\n ],\r\n \"39000\": [\"39400\", \"39410\", \"39420\"],\r\n \"40000\": [\r\n \"40010\",\r\n \"40520\",\r\n \"40220\",\r\n \"40210\",\r\n \"40200\",\r\n \"40450\",\r\n \"40470\",\r\n \"40480\",\r\n \"40490\",\r\n \"40440\",\r\n \"40550\",\r\n \"40410\",\r\n \"40420\",\r\n \"40430\",\r\n \"40540\",\r\n \"40460\",\r\n \"40510\",\r\n \"40400\",\r\n \"40530\",\r\n \"40500\"\r\n ],\r\n \"41000\": [\"41400\", \"41200\"],\r\n \"42000\": [\r\n \"42460\",\r\n \"42410\",\r\n \"42430\",\r\n \"42400\",\r\n \"42520\",\r\n \"42490\",\r\n \"42200\",\r\n \"42530\",\r\n \"42450\",\r\n \"42470\",\r\n \"42500\",\r\n \"42480\",\r\n \"42420\",\r\n \"42510\",\r\n \"42440\"\r\n ],\r\n \"43000\": [\r\n \"43500\",\r\n \"43600\",\r\n \"43660\",\r\n \"43400\",\r\n \"43650\",\r\n \"43440\",\r\n \"43480\",\r\n \"43520\",\r\n \"43200\",\r\n \"43470\",\r\n \"43420\",\r\n \"43640\",\r\n \"43510\",\r\n \"43670\",\r\n \"43530\",\r\n \"43490\",\r\n \"43610\",\r\n \"43430\",\r\n \"43410\",\r\n \"43630\",\r\n \"43450\",\r\n \"43620\",\r\n \"43560\",\r\n \"43460\",\r\n \"43540\",\r\n \"43570\",\r\n \"43550\",\r\n \"43580\",\r\n \"43590\"\r\n ],\r\n \"44000\": [\"44200\", \"44420\", \"44410\", \"44400\"],\r\n \"45000\": [\"45200\", \"45400\"],\r\n \"46000\": [\r\n \"46510\",\r\n \"46210\",\r\n \"46400\",\r\n \"46570\",\r\n \"46420\",\r\n \"46490\",\r\n \"46460\",\r\n \"46550\",\r\n \"46530\",\r\n \"46520\",\r\n \"46200\",\r\n \"46410\",\r\n \"46580\",\r\n \"46480\",\r\n \"46540\",\r\n \"46450\",\r\n \"46560\",\r\n \"46430\",\r\n \"46470\",\r\n \"46440\",\r\n \"46500\"\r\n ],\r\n \"47000\": [\"47200\", \"47400\", \"47410\"],\r\n \"48000\": [\"48430\", \"48200\", \"48460\", \"48400\", \"48450\", \"48420\", \"48440\", \"48410\"],\r\n \"49000\": [\r\n \"49430\",\r\n \"49400\",\r\n \"49210\",\r\n \"49200\",\r\n \"49470\",\r\n \"49480\",\r\n \"49450\",\r\n \"49520\",\r\n \"49490\",\r\n \"49460\",\r\n \"49500\",\r\n \"49410\",\r\n \"49530\",\r\n \"49510\",\r\n \"49440\",\r\n \"49420\"\r\n ],\r\n \"51000\": [\r\n \"51210\",\r\n \"51490\",\r\n \"51220\",\r\n \"51200\",\r\n \"51230\",\r\n \"51500\",\r\n \"51570\",\r\n \"51450\",\r\n \"51530\",\r\n \"51540\",\r\n \"51510\",\r\n \"51550\",\r\n \"51440\",\r\n \"51420\",\r\n \"51470\",\r\n \"51430\",\r\n \"51480\",\r\n \"51400\",\r\n \"51410\",\r\n \"51460\",\r\n \"51560\",\r\n \"51520\"\r\n ],\r\n \"52000\": [\r\n \"52420\",\r\n \"52200\",\r\n \"52570\",\r\n \"52530\",\r\n \"52510\",\r\n \"52550\",\r\n \"52560\",\r\n \"52600\",\r\n \"52540\",\r\n \"52400\",\r\n \"52520\",\r\n \"52460\",\r\n \"52500\",\r\n \"52490\",\r\n \"52590\",\r\n \"52430\",\r\n \"52440\",\r\n \"52450\",\r\n \"52480\",\r\n \"52410\",\r\n \"52580\",\r\n \"52210\",\r\n \"52470\"\r\n ],\r\n \"53000\": [\"53200\", \"53420\", \"53440\", \"53410\", \"53400\", \"53430\"],\r\n \"54000\": [\r\n \"54600\",\r\n \"54550\",\r\n \"54200\",\r\n \"54430\",\r\n \"54230\",\r\n \"54210\",\r\n \"54220\",\r\n \"54530\",\r\n \"54570\",\r\n \"54640\",\r\n \"54500\",\r\n \"54520\",\r\n \"54590\",\r\n \"54420\",\r\n \"54650\",\r\n \"54510\",\r\n \"54610\",\r\n \"54400\",\r\n \"54470\",\r\n \"54480\",\r\n \"54490\",\r\n \"54580\",\r\n \"54620\",\r\n \"54540\",\r\n \"54010\",\r\n \"54450\",\r\n \"54460\",\r\n \"54440\",\r\n \"54410\",\r\n \"54630\",\r\n \"54560\"\r\n ],\r\n \"55000\": [\"55200\", \"55410\", \"55400\"],\r\n \"56000\": [\r\n \"56440\",\r\n \"56480\",\r\n \"56200\",\r\n \"56450\",\r\n \"56410\",\r\n \"56400\",\r\n \"56470\",\r\n \"56500\",\r\n \"56490\",\r\n \"56420\",\r\n \"56430\",\r\n \"56510\",\r\n \"56460\"\r\n ]\r\n};\r\n\r\nexport const lvmForestry_Municipalities: { [lvmForestry: string]: string[] } = {\r\n \"1\": [\r\n \"21200\",\r\n \"21400\",\r\n \"21410\",\r\n \"21420\",\r\n \"21430\",\r\n \"21440\",\r\n \"21450\",\r\n \"21460\",\r\n \"21470\",\r\n \"21480\",\r\n \"21490\",\r\n \"21500\",\r\n \"21510\",\r\n \"21520\",\r\n \"21530\",\r\n \"21540\",\r\n \"24460\",\r\n \"26440\",\r\n \"29200\",\r\n \"29400\",\r\n \"29410\",\r\n \"29420\",\r\n \"29430\",\r\n \"29440\",\r\n \"29450\",\r\n \"29460\",\r\n \"29470\",\r\n \"29480\",\r\n \"29490\",\r\n \"29500\",\r\n \"29510\",\r\n \"29520\",\r\n \"38430\",\r\n \"38440\",\r\n \"49200\",\r\n \"49210\",\r\n \"49400\",\r\n \"49410\",\r\n \"49420\",\r\n \"49430\",\r\n \"49440\",\r\n \"49450\",\r\n \"49460\",\r\n \"49470\",\r\n \"49480\",\r\n \"49490\",\r\n \"49500\",\r\n \"49510\",\r\n \"49520\",\r\n \"49530\",\r\n \"53200\",\r\n \"53400\",\r\n \"53410\",\r\n \"53420\",\r\n \"53430\",\r\n \"53440\",\r\n \"54220\",\r\n \"54230\",\r\n \"54410\",\r\n \"54440\",\r\n \"54470\",\r\n \"54540\",\r\n \"54550\",\r\n \"54570\",\r\n \"54600\"\r\n ],\r\n \"2\": [\r\n \"27200\",\r\n \"27210\",\r\n \"27220\",\r\n \"27230\",\r\n \"27240\",\r\n \"27400\",\r\n \"27410\",\r\n \"27420\",\r\n \"27430\",\r\n \"27440\",\r\n \"27450\",\r\n \"27460\",\r\n \"27470\",\r\n \"27480\",\r\n \"27490\",\r\n \"27500\",\r\n \"27510\",\r\n \"27520\",\r\n \"27530\",\r\n \"27540\",\r\n \"27550\",\r\n \"27560\",\r\n \"27570\",\r\n \"27580\",\r\n \"27590\",\r\n \"27600\",\r\n \"27610\",\r\n \"27620\",\r\n \"27630\",\r\n \"27640\",\r\n \"27650\",\r\n \"28450\",\r\n \"28580\",\r\n \"33200\",\r\n \"33210\",\r\n \"33400\",\r\n \"33410\",\r\n \"33420\",\r\n \"33430\",\r\n \"33440\",\r\n \"33450\",\r\n \"33460\",\r\n \"33470\",\r\n \"33480\",\r\n \"33490\",\r\n \"33500\",\r\n \"33510\",\r\n \"33520\",\r\n \"33530\",\r\n \"33540\",\r\n \"33550\",\r\n \"33560\",\r\n \"33570\",\r\n \"46200\",\r\n \"46210\",\r\n \"46400\",\r\n \"46410\",\r\n \"46420\",\r\n \"46430\",\r\n \"46440\",\r\n \"46450\",\r\n \"46460\",\r\n \"46470\",\r\n \"46480\",\r\n \"46490\",\r\n \"46500\",\r\n \"46510\",\r\n \"46520\",\r\n \"46530\",\r\n \"46540\",\r\n \"46560\",\r\n \"46570\",\r\n \"46580\",\r\n \"51400\",\r\n \"52560\",\r\n \"52570\",\r\n \"52580\",\r\n \"56410\",\r\n \"56470\",\r\n \"56500\"\r\n ],\r\n \"3\": [\r\n \"20550\",\r\n \"20570\",\r\n \"22200\",\r\n \"22210\",\r\n \"22400\",\r\n \"22410\",\r\n \"22420\",\r\n \"22430\",\r\n \"22440\",\r\n \"22450\",\r\n \"22460\",\r\n \"22470\",\r\n \"22480\",\r\n \"22490\",\r\n \"22500\",\r\n \"22510\",\r\n \"22520\",\r\n \"22530\",\r\n \"22540\",\r\n \"22550\",\r\n \"22560\",\r\n \"22570\",\r\n \"22580\",\r\n \"22590\",\r\n \"22600\",\r\n \"22610\",\r\n \"22620\",\r\n \"22630\",\r\n \"22640\",\r\n \"31010\",\r\n \"31200\",\r\n \"31210\",\r\n \"31400\",\r\n \"31410\",\r\n \"31420\",\r\n \"31430\",\r\n \"31440\",\r\n \"31450\",\r\n \"31460\",\r\n \"31470\",\r\n \"31480\",\r\n \"31490\",\r\n \"31500\",\r\n \"31510\",\r\n \"31520\",\r\n \"31530\",\r\n \"31540\",\r\n \"31550\",\r\n \"31560\",\r\n \"31570\",\r\n \"31580\",\r\n \"31590\",\r\n \"31600\",\r\n \"31610\",\r\n \"32200\",\r\n \"32210\",\r\n \"32400\",\r\n \"32410\",\r\n \"32420\",\r\n \"32430\",\r\n \"32440\",\r\n \"32450\",\r\n \"32460\",\r\n \"32470\",\r\n \"32480\",\r\n \"32490\",\r\n \"32500\",\r\n \"32510\",\r\n \"32520\",\r\n \"32530\",\r\n \"32540\",\r\n \"32550\",\r\n \"32560\",\r\n \"32570\",\r\n \"32580\",\r\n \"32590\",\r\n \"32600\",\r\n \"32620\",\r\n \"32630\",\r\n \"36200\",\r\n \"36400\",\r\n \"36410\",\r\n \"36420\",\r\n \"36430\",\r\n \"36440\",\r\n \"37580\",\r\n \"38510\",\r\n \"42200\",\r\n \"42400\",\r\n \"42410\",\r\n \"42420\",\r\n \"42430\",\r\n \"42440\",\r\n \"42450\",\r\n \"42460\",\r\n \"42470\",\r\n \"42480\",\r\n \"42490\",\r\n \"42500\",\r\n \"42510\",\r\n \"42520\",\r\n \"42530\",\r\n \"43450\",\r\n \"43620\",\r\n \"43670\"\r\n ],\r\n \"4\": [\r\n \"23400\",\r\n \"23410\",\r\n \"26200\",\r\n \"26210\",\r\n \"26400\",\r\n \"26410\",\r\n \"26420\",\r\n \"26430\",\r\n \"26440\",\r\n \"26450\",\r\n \"26460\",\r\n \"26470\",\r\n \"26480\",\r\n \"26490\",\r\n \"26500\",\r\n \"26510\",\r\n \"26520\",\r\n \"26530\",\r\n \"26540\",\r\n \"26550\",\r\n \"26560\",\r\n \"26570\",\r\n \"26580\",\r\n \"26590\",\r\n \"26600\",\r\n \"29420\",\r\n \"29490\",\r\n \"35200\",\r\n \"35210\",\r\n \"35220\",\r\n \"35230\",\r\n \"35240\",\r\n \"35400\",\r\n \"35410\",\r\n \"35420\",\r\n \"35430\",\r\n \"35440\",\r\n \"35450\",\r\n \"35460\",\r\n \"35470\",\r\n \"35480\",\r\n \"35490\",\r\n \"35500\",\r\n \"35510\",\r\n \"35520\",\r\n \"35530\",\r\n \"38470\",\r\n \"38500\",\r\n \"40430\",\r\n \"40480\",\r\n \"40520\",\r\n \"40530\",\r\n \"40540\",\r\n \"44200\",\r\n \"44400\",\r\n \"44410\",\r\n \"44420\",\r\n \"45200\",\r\n \"45400\",\r\n \"47200\",\r\n \"47400\",\r\n \"47410\",\r\n \"48200\",\r\n \"48400\",\r\n \"48410\",\r\n \"48420\",\r\n \"48430\",\r\n \"48440\",\r\n \"48450\",\r\n \"48460\",\r\n \"49430\",\r\n \"49440\",\r\n \"49470\",\r\n \"49490\",\r\n \"53410\",\r\n \"54010\",\r\n \"54200\",\r\n \"54210\",\r\n \"54400\",\r\n \"54410\",\r\n \"54420\",\r\n \"54430\",\r\n \"54450\",\r\n \"54460\",\r\n \"54470\",\r\n \"54480\",\r\n \"54490\",\r\n \"54500\",\r\n \"54510\",\r\n \"54520\",\r\n \"54530\",\r\n \"54540\",\r\n \"54560\",\r\n \"54570\",\r\n \"54580\",\r\n \"54590\",\r\n \"54600\",\r\n \"54610\",\r\n \"54620\",\r\n \"54630\",\r\n \"54640\",\r\n \"54650\"\r\n ],\r\n \"5\": [\r\n \"20200\",\r\n \"20210\",\r\n \"20220\",\r\n \"20230\",\r\n \"20400\",\r\n \"20410\",\r\n \"20420\",\r\n \"20430\",\r\n \"20440\",\r\n \"20450\",\r\n \"20460\",\r\n \"20470\",\r\n \"20480\",\r\n \"20490\",\r\n \"20500\",\r\n \"20510\",\r\n \"20520\",\r\n \"20530\",\r\n \"20540\",\r\n \"20550\",\r\n \"20560\",\r\n \"20570\",\r\n \"25200\",\r\n \"25210\",\r\n \"25400\",\r\n \"25410\",\r\n \"25420\",\r\n \"25430\",\r\n \"25440\",\r\n \"25450\",\r\n \"25460\",\r\n \"25470\",\r\n \"25480\",\r\n \"25490\",\r\n \"25500\",\r\n \"25510\",\r\n \"25520\",\r\n \"25530\",\r\n \"25540\",\r\n \"25550\",\r\n \"25560\",\r\n \"25570\",\r\n \"26450\",\r\n \"26520\",\r\n \"26590\",\r\n \"30490\",\r\n \"31560\",\r\n \"31570\",\r\n \"31590\",\r\n \"34200\",\r\n \"34400\",\r\n \"38450\",\r\n \"38470\",\r\n \"38570\",\r\n \"38580\",\r\n \"40010\",\r\n \"40200\",\r\n \"40210\",\r\n \"40220\",\r\n \"40400\",\r\n \"40410\",\r\n \"40420\",\r\n \"40430\",\r\n \"40440\",\r\n \"40450\",\r\n \"40460\",\r\n \"40470\",\r\n \"40480\",\r\n \"40490\",\r\n \"40500\",\r\n \"40510\",\r\n \"40520\",\r\n \"40530\",\r\n \"40540\",\r\n \"40550\",\r\n \"41400\",\r\n \"48440\"\r\n ],\r\n \"6\": [\r\n \"25460\",\r\n \"25570\",\r\n \"28200\",\r\n \"28210\",\r\n \"28400\",\r\n \"28410\",\r\n \"28420\",\r\n \"28430\",\r\n \"28440\",\r\n \"28450\",\r\n \"28460\",\r\n \"28470\",\r\n \"28480\",\r\n \"28490\",\r\n \"28500\",\r\n \"28510\",\r\n \"28520\",\r\n \"28530\",\r\n \"28540\",\r\n \"28550\",\r\n \"28560\",\r\n \"28570\",\r\n \"28580\",\r\n \"30400\",\r\n \"30410\",\r\n \"30420\",\r\n \"30430\",\r\n \"30440\",\r\n \"30450\",\r\n \"30460\",\r\n \"30470\",\r\n \"30480\",\r\n \"30490\",\r\n \"30500\",\r\n \"30510\",\r\n \"30520\",\r\n \"30530\",\r\n \"30540\",\r\n \"30550\",\r\n \"33440\",\r\n \"34200\",\r\n \"34210\",\r\n \"34400\",\r\n \"34410\",\r\n \"34420\",\r\n \"39400\",\r\n \"39410\",\r\n \"39420\",\r\n \"40550\",\r\n \"41200\",\r\n \"41400\",\r\n \"45400\",\r\n \"46400\",\r\n \"46430\",\r\n \"46440\",\r\n \"46520\",\r\n \"46540\",\r\n \"46550\",\r\n \"51400\",\r\n \"51420\",\r\n \"51470\",\r\n \"51490\",\r\n \"52200\",\r\n \"52210\",\r\n \"52400\",\r\n \"52410\",\r\n \"52420\",\r\n \"52430\",\r\n \"52440\",\r\n \"52450\",\r\n \"52460\",\r\n \"52470\",\r\n \"52480\",\r\n \"52490\",\r\n \"52500\",\r\n \"52510\",\r\n \"52520\",\r\n \"52530\",\r\n \"52540\",\r\n \"52550\",\r\n \"52560\",\r\n \"52570\",\r\n \"52580\",\r\n \"52590\",\r\n \"52600\"\r\n ],\r\n \"7\": [\r\n \"33400\",\r\n \"33410\",\r\n \"33510\",\r\n \"51200\",\r\n \"51210\",\r\n \"51220\",\r\n \"51230\",\r\n \"51400\",\r\n \"51410\",\r\n \"51420\",\r\n \"51430\",\r\n \"51440\",\r\n \"51450\",\r\n \"51460\",\r\n \"51470\",\r\n \"51480\",\r\n \"51490\",\r\n \"51500\",\r\n \"51510\",\r\n \"51520\",\r\n \"51530\",\r\n \"51540\",\r\n \"51550\",\r\n \"51560\",\r\n \"51570\",\r\n \"52400\",\r\n \"56200\",\r\n \"56400\",\r\n \"56410\",\r\n \"56420\",\r\n \"56430\",\r\n \"56440\",\r\n \"56450\",\r\n \"56460\",\r\n \"56470\",\r\n \"56480\",\r\n \"56490\",\r\n \"56500\",\r\n \"56510\"\r\n ],\r\n \"8\": [\r\n \"20400\",\r\n \"21470\",\r\n \"24200\",\r\n \"24210\",\r\n \"24400\",\r\n \"24410\",\r\n \"24420\",\r\n \"24430\",\r\n \"24440\",\r\n \"24450\",\r\n \"24460\",\r\n \"24470\",\r\n \"24480\",\r\n \"24490\",\r\n \"24500\",\r\n \"24510\",\r\n \"24520\",\r\n \"24530\",\r\n \"24540\",\r\n \"24550\",\r\n \"24560\",\r\n \"24570\",\r\n \"24580\",\r\n \"26430\",\r\n \"26440\",\r\n \"29420\",\r\n \"29480\",\r\n \"31420\",\r\n \"32410\",\r\n \"32460\",\r\n \"32520\",\r\n \"32600\",\r\n \"32610\",\r\n \"37200\",\r\n \"37210\",\r\n \"37220\",\r\n \"37400\",\r\n \"37410\",\r\n \"37420\",\r\n \"37430\",\r\n \"37440\",\r\n \"37450\",\r\n \"37460\",\r\n \"37470\",\r\n \"37480\",\r\n \"37490\",\r\n \"37500\",\r\n \"37510\",\r\n \"37520\",\r\n \"37530\",\r\n \"37540\",\r\n \"37550\",\r\n \"37560\",\r\n \"37570\",\r\n \"37580\",\r\n \"37590\",\r\n \"37600\",\r\n \"37610\",\r\n \"38200\",\r\n \"38210\",\r\n \"38220\",\r\n \"38400\",\r\n \"38410\",\r\n \"38420\",\r\n \"38430\",\r\n \"38440\",\r\n \"38460\",\r\n \"38470\",\r\n \"38480\",\r\n \"38490\",\r\n \"38500\",\r\n \"38510\",\r\n \"38520\",\r\n \"38530\",\r\n \"38540\",\r\n \"38550\",\r\n \"38560\",\r\n \"38580\",\r\n \"42420\",\r\n \"42490\",\r\n \"42500\",\r\n \"43200\",\r\n \"43400\",\r\n \"43410\",\r\n \"43420\",\r\n \"43430\",\r\n \"43440\",\r\n \"43450\",\r\n \"43460\",\r\n \"43470\",\r\n \"43480\",\r\n \"43490\",\r\n \"43500\",\r\n \"43510\",\r\n \"43520\",\r\n \"43530\",\r\n \"43540\",\r\n \"43550\",\r\n \"43560\",\r\n \"43570\",\r\n \"43580\",\r\n \"43590\",\r\n \"43600\",\r\n \"43610\",\r\n \"43620\",\r\n \"43630\",\r\n \"43640\",\r\n \"43650\",\r\n \"43660\",\r\n \"43670\",\r\n \"55200\",\r\n \"55400\",\r\n \"55410\"\r\n ]\r\n};\r\n\r\nexport const lvmForestry_Regions: { [lvmForestry: string]: string[] } = {\r\n \"1\": [\"21000\", \"24000\", \"26000\", \"29000\", \"38000\", \"49000\", \"53000\", \"54000\"],\r\n \"2\": [\"27000\", \"28000\", \"33000\", \"46000\", \"5000\", \"51000\", \"52000\", \"56000\"],\r\n \"3\": [\"2000\", \"20000\", \"22000\", \"31000\", \"32000\", \"36000\", \"37000\", \"38000\", \"42000\", \"43000\"],\r\n \"4\": [\r\n \"1000\",\r\n \"23000\",\r\n \"26000\",\r\n \"29000\",\r\n \"35000\",\r\n \"38000\",\r\n \"40000\",\r\n \"44000\",\r\n \"45000\",\r\n \"47000\",\r\n \"48000\",\r\n \"49000\",\r\n \"53000\",\r\n \"54000\"\r\n ],\r\n \"5\": [\"20000\", \"25000\", \"26000\", \"30000\", \"31000\", \"34000\", \"38000\", \"40000\", \"41000\", \"48000\"],\r\n \"6\": [\r\n \"1000\",\r\n \"25000\",\r\n \"28000\",\r\n \"3000\",\r\n \"30000\",\r\n \"33000\",\r\n \"34000\",\r\n \"39000\",\r\n \"4000\",\r\n \"40000\",\r\n \"41000\",\r\n \"45000\",\r\n \"46000\",\r\n \"51000\",\r\n \"52000\"\r\n ],\r\n \"7\": [\"33000\", \"51000\", \"52000\", \"56000\", \"7000\"],\r\n \"8\": [\r\n \"20000\",\r\n \"21000\",\r\n \"24000\",\r\n \"26000\",\r\n \"29000\",\r\n \"31000\",\r\n \"32000\",\r\n \"37000\",\r\n \"38000\",\r\n \"42000\",\r\n \"43000\",\r\n \"55000\",\r\n \"6000\"\r\n ]\r\n};\r\n","import axios, { AxiosResponse } from \"axios\";\r\nimport { Feature } from \"ol\";\r\nimport { EsriJSON } from \"ol/format\";\r\nimport { Geometry } from \"ol/geom\";\r\nimport { ISummaryParams } from \"../Popups/Registration/SummarySection\";\r\nimport { config, defaultOption, objectIdGap, proxyUrl } from \"./config\";\r\nimport { AttachmentType, PrintType } from \"./enums\";\r\n\r\nexport interface IFieldInfos {\r\n [layerId: string]: IEsriFieldInfo[];\r\n}\r\nexport interface IEsriFieldInfo {\r\n alias: string;\r\n domain: IEsriDomain;\r\n editable: boolean;\r\n name: string;\r\n nullable: boolean;\r\n type: string;\r\n}\r\n\r\nexport interface IEsriDomain {\r\n type: string;\r\n name: string;\r\n description: string;\r\n codedValues: IEsriCodedValue[];\r\n mergePolicy: string;\r\n}\r\n\r\nexport interface IEsriCodedValue {\r\n code: string | number;\r\n name: string;\r\n}\r\n\r\nexport interface IObjectIDs {\r\n objectId: number;\r\n globalId: string;\r\n}\r\n\r\nexport interface IAttachmentPath {\r\n type: AttachmentType;\r\n url: string;\r\n}\r\nexport interface IAttachmentFile {\r\n type: AttachmentType;\r\n endpoint: string;\r\n resourceId: string;\r\n}\r\n\r\nconst esrijsonFormat = new EsriJSON();\r\n\r\nconst fieldInfoCache: Record = {};\r\nconst featuresCache: Record[]> = {};\r\n\r\nexport const fetchAllFeatures = async (tab: number): Promise[]> => {\r\n if (tab in featuresCache) {\r\n return Promise.resolve(featuresCache[tab]);\r\n }\r\n await fetchFieldInfos();\r\n\r\n featuresCache[tab] = [].concat(...(await Promise.all([fetchFeatures(tab, \"0\")])));\r\n return featuresCache[tab];\r\n};\r\n\r\nconst fetchFeatures = (tab: number, layer: string) => {\r\n const params = {\r\n f: \"json\",\r\n returnGeometry: true,\r\n where: \"STATE=\" + tab,\r\n outFields: \"*\",\r\n outSR: \"3059\"\r\n };\r\n return axios\r\n .get(proxyUrl + \"proxy/A05F8B5E0EB84CAEB9499496474E3093/FeatureServer/\" + layer + \"/query\", {\r\n params\r\n })\r\n .then((response) => {\r\n if (response.data.error) {\r\n throw new Error(response.data.error.message + \"\\n\" + response.data.error.details.join(\"\\n\"));\r\n }\r\n const features = esrijsonFormat.readFeatures(response.data);\r\n fixData(features, layer);\r\n\r\n return features;\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n return [];\r\n });\r\n};\r\n\r\nconst fetchFieldInfos = async () => await Promise.all([fetchFieldInfo(\"0\"), fetchFieldInfo(\"1\")]);\r\n\r\nconst fetchFieldInfo = (layerId: string): Promise => {\r\n const params = {\r\n f: \"json\",\r\n returnGeometry: true,\r\n where: \"1=1\",\r\n outFields: \"*\",\r\n outSR: \"3059\"\r\n };\r\n return axios\r\n .get(proxyUrl + \"proxy/A05F8B5E0EB84CAEB9499496474E3093/FeatureServer/\" + layerId, {\r\n params\r\n })\r\n .then((response) => {\r\n if (response.data.error) {\r\n throw new Error(response.data.error.message + \"\\n\" + response.data.error.details.join(\"\\n\"));\r\n }\r\n const info = response.data.fields;\r\n addDefaultCodedValuesOption(info);\r\n fieldInfoCache[layerId] = info;\r\n return info;\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n return [];\r\n });\r\n};\r\n\r\nexport const getFieldInfos = (): IFieldInfos => ({ \"0\": fieldInfoCache[\"0\"], \"1\": fieldInfoCache[\"1\"] });\r\n\r\nconst addDefaultCodedValuesOption = (info: IEsriFieldInfo[]) => {\r\n config.sideView.filters.map((filter) => {\r\n const currentFieldInfo = info.find((item) => item.name === filter.field);\r\n if (currentFieldInfo && currentFieldInfo.domain && currentFieldInfo.domain.codedValues) {\r\n currentFieldInfo.domain.codedValues.unshift(defaultOption);\r\n }\r\n });\r\n};\r\n\r\nconst fixData = (features: Feature[], layer: string) => {\r\n const decimalFields = getDecimalFields(layer);\r\n const currencyFields = config.dataView.currencyFields;\r\n\r\n for (const feature of features) {\r\n const properties = {\r\n VISIBLE: true,\r\n LAYERID: layer\r\n };\r\n if (Number(layer) > 0) {\r\n properties[\"OBJECTID\"] = feature.get(\"OBJECTID\") + Number(layer) * objectIdGap;\r\n properties[\"LAYERID\"] = layer;\r\n }\r\n\r\n for (const fieldName of decimalFields) {\r\n const value = feature.get(fieldName);\r\n if (value !== null) {\r\n properties[fieldName] = parseFloat((value as number).toFixed(8));\r\n }\r\n }\r\n for (const fieldName of currencyFields) {\r\n const value = feature.get(fieldName);\r\n if (value !== null) {\r\n properties[fieldName] = parseFloat(value).toFixed(2) + \" \" + String.fromCharCode(8364);\r\n }\r\n }\r\n feature.setProperties(properties);\r\n }\r\n};\r\n\r\nconst getDecimalFields = (layerId: string): string[] => {\r\n return fieldInfoCache[layerId]\r\n .filter((f) => f.type === \"esriFieldTypeDouble\" || f.type === \"esriFieldTypeSingle\")\r\n .map((f) => f.name);\r\n};\r\n\r\nexport const updateFeatures = async (features: Feature[], layerId?: string) => {\r\n const recaptchaToken = await getCaptchaToken();\r\n if (!recaptchaToken) {\r\n return undefined;\r\n }\r\n\r\n const queryString = new URLSearchParams();\r\n queryString.append(\"f\", \"json\");\r\n queryString.append(\"g-recaptcha-response\", recaptchaToken);\r\n queryString.append(\r\n \"features\",\r\n \"[\" + features.map((feature) => esrijsonFormat.writeFeature(feature)).toString() + \"]\"\r\n );\r\n\r\n return axios\r\n .post(\r\n proxyUrl +\r\n \"proxy/recaptcha-a413703ce9074cb4be4597d6ca0d2f12/FeatureServer/\" +\r\n (layerId || 0) +\r\n \"/updateFeatures\",\r\n queryString\r\n )\r\n .then((response) => {\r\n return response;\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n return { status: 0 } as AxiosResponse;\r\n });\r\n};\r\n\r\nexport const requestObjectIds = async (features: Feature[], layerId?: string): Promise => {\r\n const recaptchaToken = await getCaptchaToken();\r\n if (!recaptchaToken) {\r\n return undefined;\r\n }\r\n\r\n const queryString = new URLSearchParams();\r\n queryString.append(\"f\", \"json\");\r\n queryString.append(\"g-recaptcha-response\", recaptchaToken);\r\n queryString.append(\r\n \"features\",\r\n \"[\" + features.map((feature) => esrijsonFormat.writeFeature(feature)).toString() + \"]\"\r\n );\r\n\r\n return axios\r\n .post(\r\n proxyUrl +\r\n \"proxy/recaptcha-a413703ce9074cb4be4597d6ca0d2f12/FeatureServer/\" +\r\n (layerId || 0) +\r\n \"/addFeatures\",\r\n queryString\r\n )\r\n .then((response) => {\r\n if (response.data.error) {\r\n throw new Error(response.data.error.message + \"\\n\" + response.data.error.details.join(\"\\n\"));\r\n }\r\n const ids: IObjectIDs[] = response.data.addResults.map((res) => ({\r\n objectId: res.objectId,\r\n globalId: res.globalId\r\n }));\r\n return ids;\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n return undefined;\r\n });\r\n};\r\n\r\nexport const uploadFile = async (file: File, id: string): Promise => {\r\n const recaptchaToken = await getCaptchaToken();\r\n if (!recaptchaToken) {\r\n return undefined;\r\n }\r\n\r\n const formData = new FormData();\r\n formData.append(\"file\", file);\r\n formData.append(\"RelatedObjectId\", id);\r\n formData.append(\"FieldName\", \"FILEID\");\r\n formData.append(\"LayerName\", \"PUBSDE.LVMFormNILandPlotFiles\");\r\n formData.append(\"g-recaptcha-response\", recaptchaToken);\r\n\r\n return axios\r\n .post(config.upload.url, formData, {\r\n headers: { \"Content-Type\": \"multipart/form-data\" }\r\n })\r\n .then((response) => {\r\n return response;\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n return { status: 0 } as AxiosResponse;\r\n });\r\n};\r\n\r\nexport const printPdf = async (data: ISummaryParams, printType: PrintType): Promise => {\r\n const recaptchaToken = await getCaptchaToken();\r\n if (!recaptchaToken) {\r\n return undefined;\r\n }\r\n\r\n const formData = new FormData();\r\n formData.append(\"g-recaptcha-response\", recaptchaToken);\r\n formData.append(\"data\", JSON.stringify(data));\r\n printType === PrintType.Path && formData.append(\"f\", \"json\");\r\n\r\n return axios\r\n .post(\r\n config.print.url + config.print.endpoint,\r\n formData,\r\n printType === PrintType.File && {\r\n responseType: \"blob\",\r\n headers: {\r\n Accept: \"application/pdf\"\r\n }\r\n }\r\n )\r\n .then((response) => {\r\n return response;\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n return { status: 0 } as AxiosResponse;\r\n });\r\n};\r\n\r\nexport const sendEmail = async (\r\n to: string,\r\n attachments: IAttachmentPath[] | IAttachmentFile[]\r\n): Promise => {\r\n const recaptchaToken = await getCaptchaToken();\r\n if (!recaptchaToken) {\r\n return undefined;\r\n }\r\n\r\n const formData = new FormData();\r\n formData.append(\"To\", to);\r\n formData.append(\"Subject\", config.email.subject);\r\n formData.append(\"Body\", config.email.body);\r\n formData.append(\"g-recaptcha-response\", recaptchaToken);\r\n\r\n if (attachments && attachments.length) {\r\n attachments.map((a, i) => {\r\n a.type && formData.append(\"ExternalAttachments[\" + i + \"].type\", a.type);\r\n a.url && formData.append(\"ExternalAttachments[\" + i + \"].url\", a.url);\r\n a.endpoint && formData.append(\"ExternalAttachments[\" + i + \"].endpoint\", a.endpoint);\r\n a.resourceId && formData.append(\"ExternalAttachments[\" + i + \"].resourceId\", a.resourceId);\r\n });\r\n }\r\n\r\n return axios\r\n .post(config.email.url, formData, {\r\n headers: { \"Content-Type\": \"multipart/form-data\" }\r\n })\r\n .then((response) => {\r\n return response;\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n return { status: 0 } as AxiosResponse;\r\n });\r\n};\r\n\r\nconst getCaptchaToken = (): Promise => {\r\n return new Promise((resolve) => {\r\n //@ts-ignore\r\n window.grecaptcha.ready(() => {\r\n //@ts-ignore\r\n window.grecaptcha\r\n .execute(config.reCaptchaSiteKey, { action: \"submit\" })\r\n .then((token) => resolve(token))\r\n .catch(() => resolve(null));\r\n });\r\n });\r\n};\r\n","import { Feature } from \"ol\";\r\nimport { config } from \"./config\";\r\n\r\nconst fields = config.search.fields;\r\n\r\nexport const filterByText = (features: Feature[], searchText: string): Feature[] => {\r\n if (!features || !features.length || !fields || !fields.length) {\r\n return [];\r\n }\r\n\r\n const result = features.filter((feature) => {\r\n let includes = false;\r\n for (let i = 0; i < fields.length; i++) {\r\n const value = feature.get(fields[i]);\r\n if (value && value.toLowerCase().includes(searchText.toLowerCase())) {\r\n includes = true;\r\n break;\r\n }\r\n }\r\n return includes;\r\n });\r\n return result;\r\n};\r\n","import { config } from \"./config\";\r\nimport { Feature, View, Map } from \"ol\";\r\nimport { Vector as VectorSource, Cluster as ClusterSource, TileWMS, XYZ } from \"ol/source\";\r\nimport { Tile as TileLayer, Vector as VectorLayer } from \"ol/layer\";\r\nimport TileGrid from \"ol/tilegrid/TileGrid\";\r\nimport { defaults as defaultControls } from \"ol/control\";\r\nimport { getPolygonSymbol, getSimpleSymbol } from \"./symbols\";\r\nimport { Basemaps } from \"./enums\";\r\nimport \"./snapshots.scss\";\r\nimport { ServerType } from \"ol/source/wms\";\r\nimport { MultiPolygon, Point, Polygon } from \"ol/geom\";\r\n\r\nconst shadowMapId = \"shadow-map\";\r\n\r\nexport const generateSnapshots = (\r\n feature: Feature,\r\n basemap: Basemaps,\r\n setSnapshotBig: CallableFunction,\r\n setSnapshotSmall: CallableFunction\r\n): void => {\r\n const source = new VectorSource({ features: [feature] });\r\n const shadowMap = createShadowMap(basemap, source);\r\n\r\n shadowMap.once(\"rendercomplete\", () => {\r\n setSnapshotBig(getSnapshot(shadowMap));\r\n shadowMap.getView().fit(source.getExtent(), {\r\n padding: [50, 50, 50, 50],\r\n callback: () =>\r\n shadowMap.once(\"rendercomplete\", () => {\r\n setSnapshotSmall(getSnapshot(shadowMap));\r\n document.getElementById(shadowMapId).remove();\r\n })\r\n });\r\n });\r\n};\r\n\r\nconst createShadowMap = (basemapId: Basemaps, source: VectorSource) => {\r\n const target = document.createElement(\"div\");\r\n target.id = shadowMapId;\r\n document.body.append(target);\r\n\r\n return new Map({\r\n layers: [createBasemapLayer(basemapId), createPolygonLayer(source), createPointLayer(source)],\r\n target,\r\n view: new View({\r\n projection: config.default.projection,\r\n center: config.default.center,\r\n zoom: 3.55\r\n }),\r\n controls: defaultControls({ zoom: false, rotate: false })\r\n });\r\n};\r\n\r\nconst createBasemapLayer = (basemapId: Basemaps) =>\r\n basemapId === Basemaps.Orto\r\n ? new TileLayer({\r\n source: new TileWMS({\r\n url: config.basemapOrto.source.url,\r\n params: config.basemapOrto.source.params,\r\n projection: config.basemapOrto.source.projection,\r\n serverType: config.basemapOrto.source.serverType as ServerType,\r\n crossOrigin: config.basemapOrto.source.crossOrigin\r\n })\r\n })\r\n : new TileLayer({\r\n source: new XYZ({\r\n url: config.basemapLVM.source.url,\r\n maxZoom: config.basemapLVM.source.maxZoom,\r\n projection: config.basemapLVM.source.projection,\r\n tileGrid: new TileGrid(config.basemapLVM.tileGrid),\r\n crossOrigin: config.basemapLVM.source.crossOrigin\r\n })\r\n });\r\n\r\nconst createPolygonLayer = (source: VectorSource) =>\r\n new VectorLayer({\r\n properties: { id: \"shadow-polygon\" },\r\n source,\r\n minZoom: 6,\r\n style: (f: Feature) => getPolygonSymbol(f, 6)\r\n });\r\n\r\nconst createPointLayer = (source: VectorSource) =>\r\n new VectorLayer({\r\n properties: { id: \"shadow-point\" },\r\n source: new ClusterSource({\r\n source,\r\n geometryFunction: (feature: Feature) => {\r\n const geometry = feature.getGeometry();\r\n const type = geometry.getType();\r\n return type === \"Polygon\"\r\n ? (geometry as Polygon).getInteriorPoint()\r\n : type === \"MultiPolygon\"\r\n ? (geometry as MultiPolygon).getInteriorPoints().getPoint(1)\r\n : (geometry as Point);\r\n }\r\n }),\r\n maxZoom: 6,\r\n style: getSimpleSymbol(true, 10)\r\n });\r\n\r\nconst getSnapshot = (shadowMap: Map) => {\r\n const mapCanvas = document.createElement(\"canvas\");\r\n const size = shadowMap.getSize();\r\n mapCanvas.width = size[0];\r\n mapCanvas.height = size[1];\r\n const mapContext = mapCanvas.getContext(\"2d\");\r\n Array.prototype.forEach.call(document.querySelectorAll(\".ol-layer canvas\"), (canvas) => {\r\n if (canvas.width > 0) {\r\n const opacity = canvas.parentNode.style.opacity;\r\n mapContext.globalAlpha = opacity === \"\" ? 1 : Number(opacity);\r\n const transform = canvas.style.transform;\r\n // Get the transform parameters from the style's transform matrix\r\n const matrix = transform\r\n .match(/^matrix\\(([^\\(]*)\\)$/)[1]\r\n .split(\",\")\r\n .map(Number);\r\n // Apply the transform to the export map context\r\n CanvasRenderingContext2D.prototype.setTransform.apply(mapContext, matrix);\r\n mapContext.drawImage(canvas, 0, 0);\r\n }\r\n });\r\n\r\n return mapCanvas.toDataURL();\r\n};\r\n","import { Circle as CircleStyle, Fill, Icon, Stroke, Style, Text } from \"ol/style\";\r\nimport { Feature } from \"ol\";\r\n// import { Polygon as OLPolygon } from \"ol/geom\";\r\nimport { fromExtent } from \"ol/geom/Polygon\";\r\nimport { getMap } from \"../Providers/mapProvider\";\r\nimport GeoJSON from \"ol/format/GeoJSON\";\r\nimport bboxClip from \"@turf/bbox-clip\";\r\nimport { BBox, polygon } from \"@turf/helpers\";\r\nimport difference from \"@turf/difference\";\r\nimport clone from \"@turf/clone\";\r\nimport intersect from \"@turf/intersect\";\r\n\r\nconst fill = new Fill({\r\n color: \"#dd5e47\"\r\n});\r\nconst stroke = new Stroke({\r\n color: \"white\",\r\n width: 1.5\r\n});\r\n\r\nconst clusterCache = new Map();\r\n\r\nconst ensureClusterSymbol = (count: number): void => {\r\n if (!clusterCache.has(count)) {\r\n clusterCache.set(\r\n count,\r\n new Style({\r\n image: new Icon({\r\n src: createImage(18, count, \"#84BD01\"),\r\n imgSize: [36, 36]\r\n })\r\n })\r\n );\r\n }\r\n};\r\n\r\nconst createImage = function (radius, count, textColor) {\r\n const canvas = document.createElement(\"canvas\");\r\n const ctx = canvas.getContext(\"2d\");\r\n canvas.width = radius * 2;\r\n canvas.height = radius * 2;\r\n\r\n // border\r\n ctx.beginPath();\r\n ctx.arc(radius, radius, 18, 0, 2 * Math.PI);\r\n ctx.fillStyle = \"rgba(255, 255, 255, 0.5)\";\r\n ctx.fill();\r\n\r\n // circle\r\n ctx.beginPath();\r\n ctx.arc(radius, radius, 18 - 3, 0, 2 * Math.PI);\r\n ctx.fillStyle = \"#dd5e47\";\r\n ctx.fill();\r\n\r\n // text\r\n ctx.beginPath();\r\n ctx.font = \"bold 14px sans-serif\";\r\n ctx.fillStyle = \"#ffffff\";\r\n ctx.textAlign = \"center\";\r\n ctx.textBaseline = \"middle\";\r\n ctx.fillText(count, radius, radius);\r\n\r\n return canvas.toDataURL();\r\n};\r\n\r\nexport const getClusterSymbol = (count: number): Style => {\r\n ensureClusterSymbol(count);\r\n return clusterCache.get(count);\r\n};\r\n\r\nexport const getSimpleSymbol = (isVisible: boolean, radius?: number): Style => {\r\n return isVisible\r\n ? new Style({\r\n image: new CircleStyle({\r\n fill: fill,\r\n stroke: stroke,\r\n radius: radius || 7\r\n }),\r\n fill: fill,\r\n stroke: stroke\r\n })\r\n : new Style({});\r\n};\r\n\r\nconst windFarmLabel = new Style({\r\n text: new Text({\r\n font: \"bold 12px Helvetica, sans-serif\",\r\n fill: new Fill({\r\n color: [203, 99, 255, 1]\r\n }),\r\n stroke: new Stroke({\r\n color: \"#fff\",\r\n width: 4\r\n })\r\n // overflow: true\r\n })\r\n});\r\n\r\nconst windFarmStyle = new Style({\r\n fill: new Fill({\r\n color: [203, 99, 255, 0.6]\r\n })\r\n});\r\n\r\nconst format = new GeoJSON();\r\n\r\nexport const getPolygonSymbol = (feature: Feature, strokeWidth?: number): Style => {\r\n let style;\r\n if (feature.get(\"LAYERID\") === \"1\") {\r\n //************************************************* */\r\n //******* another implementation ************** */\r\n //************************************************* */\r\n const bbox = getMap().getView().calculateExtent();\r\n const turfFeature = format.writeFeatureObject(feature);\r\n const clipped = bboxClip(turfFeature, bbox as BBox);\r\n const coordinates = clipped.geometry.coordinates;\r\n for (let i = coordinates.length - 1; i >= 0; i--) {\r\n if (coordinates[i].length === 0) {\r\n coordinates.splice(i, 1);\r\n }\r\n }\r\n const geometry = format.readFeature(clipped).getGeometry();\r\n windFarmLabel.setGeometry(geometry);\r\n windFarmLabel.getText().setText(feature.get(\"NAME\"));\r\n\r\n //*************************************************************** */\r\n //******* my implementation, not working anymore, ************** */\r\n //******* because of curved lines in polygons ************** */\r\n //*************************************************************** */\r\n // const map = getMap();\r\n // const mapSize = map.getSize();\r\n // const mapExtent = map.getView().calculateExtent([mapSize[0], mapSize[1]]);\r\n\r\n // const geometry = feature.getGeometry() as Polygon;\r\n // const extGeometry = fromExtent(mapExtent);\r\n\r\n // const featurePolygon = polygon(geometry.getCoordinates());\r\n // const extentPolygon = polygon(extGeometry.getCoordinates());\r\n\r\n // const differenceGeom = difference(clone(extentPolygon), clone(featurePolygon));\r\n\r\n // if (differenceGeom) {\r\n // const intersection = intersect(featurePolygon, extentPolygon);\r\n // const newGeom = intersection && format.readGeometry(intersection.geometry);\r\n // newGeom && windFarmLabel.setGeometry(newGeom);\r\n // } else {\r\n // windFarmLabel.setGeometry(geometry);\r\n // }\r\n // windFarmLabel.getText().setText(feature.get(\"NAME\"));\r\n\r\n style = [windFarmStyle, windFarmLabel];\r\n } else {\r\n style = new Style({\r\n stroke: new Stroke({\r\n color: [221, 92, 70, 1],\r\n width: strokeWidth || 3\r\n }),\r\n fill: new Fill({\r\n color: [221, 92, 70, 0.5]\r\n })\r\n });\r\n }\r\n return style;\r\n};\r\n","import { MutableRefObject, useEffect, useRef, useState } from \"react\";\r\nimport { extend, Extent, buffer, createEmpty, getCenter } from \"ol/extent\";\r\nimport { Vector as VectorSource, Cluster as ClusterSource, TileWMS, XYZ } from \"ol/source\";\r\nimport TileGrid from \"ol/tilegrid/TileGrid\";\r\nimport { Tile as TileLayer, Vector as VectorLayer } from \"ol/layer\";\r\nimport { Feature, View, Map } from \"ol\";\r\nimport { MultiPolygon, Point, Polygon, SimpleGeometry } from \"ol/geom\";\r\nimport { defaults as defaultControls } from \"ol/control\";\r\nimport { getClusterSymbol, getPolygonSymbol, getSimpleSymbol } from \"./symbols\";\r\nimport { IZemesnomaMapProps } from \"../Providers/mapProvider\";\r\nimport { BasemapButton } from \"./Buttons/basemapButton\";\r\nimport { LocationButton } from \"./Buttons/GeoLocation\";\r\nimport { HomeButton } from \"./Buttons/Home\";\r\nimport { AttributionButton } from \"./Buttons/Attribution\";\r\nimport { config } from \"./config\";\r\nimport { useNomaContext } from \"../Contexts/MapContext\";\r\nimport { Basemaps } from \"./enums\";\r\nimport { LayersButton } from \"./Buttons/Layers\";\r\nimport { ServerType } from \"ol/source/wms\";\r\nimport { DownloadButton } from \"./Buttons/Download\";\r\n\r\nconst clusterLayerId = config.default.clusterLayerId;\r\nconst polygonLayerId = config.default.polygonLayerId;\r\nconst getBuffer = (feature: Feature) => buffer(feature.getGeometry().getExtent(), 200);\r\n\r\nlet _map: MutableRefObject;\r\nlet sourceRef: MutableRefObject;\r\nlet polygonSourceRef: MutableRefObject;\r\n\r\nexport const useMap = (target: MutableRefObject, props: IZemesnomaMapProps): Map => {\r\n _map = useRef();\r\n sourceRef = useRef(new VectorSource());\r\n polygonSourceRef = useRef(new VectorSource());\r\n\r\n const {\r\n setBasemap,\r\n locateFeature,\r\n zoomToSourceFeatures,\r\n setZoomToSourceFeatures,\r\n setIdentifiedFeature,\r\n toggleLayersMenuVisible\r\n } = useNomaContext();\r\n\r\n useEffect(() => {\r\n if (target.current) {\r\n const tileGrid = new TileGrid(config.basemapLVM.tileGrid);\r\n const mammaLayer = new TileLayer({\r\n source: new XYZ({\r\n url: config.basemapLVM.source.url,\r\n maxZoom: config.basemapLVM.source.maxZoom,\r\n projection: config.basemapLVM.source.projection,\r\n tileGrid,\r\n crossOrigin: config.basemapLVM.source.crossOrigin\r\n }),\r\n visible: true,\r\n properties: { id: Basemaps.Mamma }\r\n });\r\n const ortoLayer = new TileLayer({\r\n source: new TileWMS({\r\n url: config.basemapOrto.source.url,\r\n params: config.basemapOrto.source.params,\r\n projection: config.basemapOrto.source.projection,\r\n serverType: config.basemapOrto.source.serverType as ServerType,\r\n crossOrigin: config.basemapOrto.source.crossOrigin\r\n }),\r\n visible: false,\r\n properties: { id: Basemaps.Orto }\r\n });\r\n const polygonLayer = new VectorLayer({\r\n properties: { id: polygonLayerId },\r\n source: polygonSourceRef.current,\r\n minZoom: config.default.polygonZoomThreshold,\r\n style: (f: Feature) => getPolygonSymbol(f)\r\n });\r\n const clusterSource = new ClusterSource({\r\n distance: config.default.clusterDistance,\r\n source: sourceRef.current,\r\n geometryFunction: (feature: Feature) => {\r\n const geometry = feature.getGeometry();\r\n const type = geometry.getType();\r\n return type === \"Polygon\"\r\n ? (geometry as Polygon).getInteriorPoint()\r\n : type === \"MultiPolygon\"\r\n ? (geometry as MultiPolygon).getInteriorPoints().getPoint(1)\r\n : (geometry as Point);\r\n }\r\n });\r\n const clusterLayer = new VectorLayer({\r\n properties: { id: clusterLayerId },\r\n source: clusterSource,\r\n maxZoom: config.default.polygonZoomThreshold,\r\n style: (clusterFeature) => {\r\n const clusterFeatures = clusterFeature.get(\"features\");\r\n return clusterFeatures.length > 1\r\n ? getClusterSymbol(clusterFeatures.length)\r\n : getSimpleSymbol(clusterFeatures[0].get(\"VISIBLE\"));\r\n }\r\n });\r\n\r\n _map.current = new Map({\r\n layers: [mammaLayer, ortoLayer, polygonLayer, clusterLayer],\r\n target: target.current,\r\n view: new View({\r\n projection: config.default.projection,\r\n center: config.default.center,\r\n zoom: config.default.zoom,\r\n enableRotation: false,\r\n minZoom: config.default.minZoom\r\n }),\r\n controls: defaultControls({ zoom: false, rotate: false, attribution: false }).extend([\r\n new BasemapButton(toggleBasemap),\r\n new LocationButton(),\r\n new HomeButton(),\r\n new LayersButton(toggleLayersMenuVisible),\r\n new DownloadButton(),\r\n new AttributionButton()\r\n ])\r\n });\r\n\r\n _map.current.on(\"moveend\", () => document.dispatchEvent(new Event(\"moveend\")));\r\n\r\n _map.current.on(\"pointermove\", (evt) => {\r\n if (evt.dragging) {\r\n return;\r\n }\r\n\r\n const hasFeatureAtPixel = _map.current.hasFeatureAtPixel(evt.pixel);\r\n\r\n target.current.style.cursor = hasFeatureAtPixel ? \"pointer\" : null;\r\n });\r\n\r\n _map.current.on(\"click\", (evt) => {\r\n if (evt.dragging) {\r\n return;\r\n }\r\n const hasFeatureAtPixel = _map.current.hasFeatureAtPixel(evt.pixel);\r\n if (!hasFeatureAtPixel) {\r\n return;\r\n }\r\n\r\n _map.current.forEachFeatureAtPixel(evt.pixel, handlePointClick, {\r\n layerFilter: (layer) => layer.get(\"id\") === clusterLayerId\r\n });\r\n _map.current.forEachFeatureAtPixel(evt.pixel, handlePolygonClick, {\r\n layerFilter: (layer) => layer.get(\"id\") === polygonLayerId\r\n });\r\n });\r\n\r\n //@ts-ignore\r\n _map.current.once(\"postcompose\", zoomHome);\r\n\r\n const handlePointClick = (feature: Feature) => {\r\n const clusteredFeatures: Feature[] = feature.get(\"features\");\r\n if (clusteredFeatures.length) {\r\n if (clusteredFeatures.length === 1) {\r\n setIdentifiedFeature(clusteredFeatures[0]);\r\n } else {\r\n const extent = clusteredFeatures.reduce((result, feature) => {\r\n return result === null ? getBuffer(feature) : extend(result, getBuffer(feature));\r\n }, null);\r\n const view = _map.current.getView();\r\n view.fit(extent, { padding: [60, 60, 60, 60], duration: 500 });\r\n }\r\n }\r\n };\r\n const handlePolygonClick = (feature: Feature) => {\r\n setIdentifiedFeature(feature);\r\n };\r\n }\r\n }, []);\r\n\r\n const toggleBasemap = (mapId: Basemaps) => {\r\n _map.current\r\n .getLayers()\r\n .getArray()\r\n .map((layer) => {\r\n const id = layer.get(\"id\");\r\n id === Basemaps.Orto\r\n ? layer.set(\"visible\", mapId === Basemaps.Mamma)\r\n : id === Basemaps.Orto\r\n ? layer.set(\"visible\", mapId === Basemaps.Orto)\r\n : null;\r\n });\r\n setBasemap(mapId === Basemaps.Orto ? Basemaps.Mamma : Basemaps.Orto);\r\n };\r\n\r\n useEffect(() => {\r\n locateFeature && zoomToFeature(locateFeature.feature);\r\n }, [locateFeature]);\r\n\r\n useEffect(() => {\r\n if (props.features && props.features.length) {\r\n sourceRef.current.clear();\r\n sourceRef.current.addFeatures(props.features);\r\n polygonSourceRef.current.clear();\r\n polygonSourceRef.current.addFeatures(props.features);\r\n } else {\r\n sourceRef.current.clear();\r\n polygonSourceRef.current.clear();\r\n }\r\n }, [props.forceUpdate, props.features]);\r\n\r\n useEffect(() => {\r\n _map.current.once(\"postcompose\", () => {\r\n zoomToSourceFeatures === 1 && zoomHome(() => setZoomToSourceFeatures(null));\r\n zoomToSourceFeatures > 1 &&\r\n zoomToExtent(sourceRef.current.getExtent(), () => setZoomToSourceFeatures(null));\r\n });\r\n }, [zoomToSourceFeatures]);\r\n //@ts-ignore\r\n window.map = _map.current;\r\n return _map.current;\r\n};\r\n\r\nconst zoomHome = (callback?: () => void) => {\r\n const view = _map.current.getView();\r\n //@ts-ignore\r\n const resolutionX = config.default.extentSize[0] / view.viewportSize_[0];\r\n //@ts-ignore\r\n const resolutionY = config.default.extentSize[1] / view.viewportSize_[1];\r\n const zoom = view.getZoomForResolution(resolutionX > resolutionY ? resolutionX : resolutionY);\r\n\r\n view.fit(new Point(config.default.center), {\r\n maxZoom: zoom,\r\n duration: 1000,\r\n callback\r\n });\r\n};\r\n\r\nconst zoomToExtent = (extent: Extent, callback?: () => void) => {\r\n if (!extent || extent.includes(Infinity)) {\r\n return;\r\n }\r\n document.dispatchEvent(new Event(\"stopTracking\"));\r\n const view = _map.current.getView();\r\n view.fit(extent, { duration: 500, padding: [60, 60, 60, 60], callback });\r\n};\r\n\r\nconst zoomToFeature = (feature: Feature): void => {\r\n const view = _map.current.getView();\r\n const geometry = feature.getGeometry() as SimpleGeometry;\r\n const currentZoom = view.getZoom();\r\n const maxZoom = currentZoom > config.default.zoomToLevel ? currentZoom : config.default.zoomToLevel;\r\n document.dispatchEvent(new Event(\"stopTracking\"));\r\n view.fit(geometry, { duration: 500, maxZoom });\r\n};\r\n","import * as React from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport { useNomaContext } from \"../Contexts/MapContext\";\r\nimport { useCustomViewContext } from \"../Contexts/CustomViewContext\";\r\nimport { IRelatedDocs } from \"../interfaces\";\r\nimport { CloseButton } from \"../Elements/CloseButton\";\r\nimport { DocumentList } from \"./DocsSection\";\r\nimport { Popup, PopupBody, PopupFooter, PopupHeader } from \"./Popup\";\r\n\r\nexport const Apply = (): JSX.Element => {\r\n const { isMobile, applyFeature, setApplyFeature } = useNomaContext();\r\n const { relatedDocs } = useCustomViewContext();\r\n\r\n const objectId = applyFeature.feature.get(\"OBJECTID\");\r\n\r\n let objectDocs = relatedDocs.find((item: IRelatedDocs) => (item.objectId === objectId ? item.docs : undefined));\r\n\r\n useEffect(() => {\r\n objectDocs = relatedDocs.find((item: IRelatedDocs) => (item.objectId === objectId ? item.docs : undefined));\r\n }, [relatedDocs]);\r\n\r\n const popupText = \"Pieteikties izsolei var nolikumā norādītajā kārtībā\";\r\n\r\n return (\r\n \r\n \r\n {!isMobile &&
Pieteikties izsolei
}\r\n setApplyFeature(null)}>\r\n
\r\n \r\n
{popupText}
\r\n {objectDocs && objectDocs.docs && }\r\n
\r\n \r\n \r\n );\r\n};\r\n","import * as React from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport { Feature } from \"ol\";\r\nimport { IDocument, IRelatedDocs } from \"../interfaces\";\r\nimport { useCustomViewContext } from \"../Contexts/CustomViewContext\";\r\nimport \"./DocsSection.scss\";\r\n\r\nexport const DocsSection = ({ feature, title }: { feature: Feature; title: string }): JSX.Element => {\r\n const { relatedDocs } = useCustomViewContext();\r\n\r\n const objectId = feature.get(\"OBJECTID\");\r\n let objectDocs = relatedDocs.find((item: IRelatedDocs) => (item.objectId === objectId ? item.docs : undefined));\r\n\r\n useEffect(() => {\r\n objectDocs = relatedDocs.find((item: IRelatedDocs) => (item.objectId === objectId ? item.docs : undefined));\r\n }, [relatedDocs]);\r\n\r\n return objectDocs ? (\r\n <>\r\n
{title}
\r\n
\r\n \r\n
\r\n \r\n ) : null;\r\n};\r\n\r\nexport const DocumentList = ({ docs }: { docs: IDocument[] }): JSX.Element => {\r\n return (\r\n <>\r\n {docs.map((doc, i) => (\r\n
\r\n
{doc.title}
\r\n \r\n {doc.fileName}\r\n \r\n
\r\n ))}\r\n \r\n );\r\n};\r\n","import * as React from \"react\";\r\nimport { FC } from \"react\";\r\nimport { CloseButton } from \"../Elements/CloseButton\";\r\nimport { PopupBody, PopupFooter, PopupHeader, Popup } from \"./Popup\";\r\nimport { useNomaContext } from \"../Contexts/MapContext\";\r\nimport { DocumentList } from \"./DocsSection\";\r\nimport { PopupButton } from \"../Elements/PopupButton\";\r\nimport { config } from \"../Map/config\";\r\n\r\nexport const Downloads: FC = () => {\r\n const { downloadsPopupDocs, setDownloadsPopupDocs } = useNomaContext();\r\n\r\n const x = document.body.clientWidth / 2 - 225;\r\n\r\n const onClick = () =>\r\n (window.location.href =\r\n config.dataView.docsApi + \"/files/related/PUBSDE.LandPlotCatalog/\" + downloadsPopupDocs.objectId);\r\n return (\r\n \r\n \r\n
Lejuplādējamie pielikumi
\r\n setDownloadsPopupDocs(null)}>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n","import * as React from \"react\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { PopupBody, PopupFooter, PopupHeader, Popup } from \"./Popup\";\r\nimport { config, IIdentifyCondition } from \"../Map/config\";\r\nimport { Gallery, GalleryImage } from \"../Gallery/Gallery\";\r\nimport { getRelatedImagesUrls } from \"../Providers/imageProvider\";\r\nimport { useNomaContext } from \"../Contexts/MapContext\";\r\nimport { CloseButton } from \"../Elements/CloseButton\";\r\nimport { PopupButton } from \"../Elements/PopupButton\";\r\nimport { Condition } from \"../Map/enums\";\r\nimport { useCustomViewContext } from \"../Contexts/CustomViewContext\";\r\nimport { PopupRow } from \"./PopupRow\";\r\n\r\nexport const Identify = (): JSX.Element => {\r\n const {\r\n isMobile,\r\n identifiedFeature,\r\n setIdentifiedFeature,\r\n setPreviewFeature,\r\n setLocateFeature,\r\n setZoomToSourceFeatures\r\n } = useNomaContext();\r\n\r\n const { setHidden } = useCustomViewContext();\r\n\r\n const onZoomTo = () => {\r\n setHidden(true);\r\n setLocateFeature(identifiedFeature);\r\n setIdentifiedFeature(null);\r\n };\r\n\r\n const x = document.body.clientWidth / 2 - 225; // 225 is identify popup maxWidth/2\r\n\r\n return (\r\n \r\n \r\n {!isMobile &&
Nomas objekts
}\r\n setIdentifiedFeature(null)}>\r\n
\r\n \r\n \r\n \r\n \r\n setPreviewFeature(identifiedFeature)}\r\n >\r\n {!isMobile && (\r\n setZoomToSourceFeatures(1)}\r\n >\r\n )}\r\n {isMobile ? (\r\n \r\n ) : (\r\n setLocateFeature(identifiedFeature)}\r\n >\r\n )}\r\n \r\n
\r\n );\r\n};\r\n\r\nconst IdentifyContent = () => {\r\n const [images, setImages] = useState([]);\r\n const [showGallery, setShowGallery] = useState(false);\r\n\r\n const { activeTab, identifiedFeature } = useNomaContext();\r\n const identifyConfig = config.dataView.tabs.find((tabConfig) => tabConfig.tabValue === activeTab).identify;\r\n\r\n useEffect(() => {\r\n if (identifiedFeature) {\r\n setShowGallery(false);\r\n getRelatedImagesUrls(identifiedFeature.get(\"OBJECTID\")).then(\r\n (urls: GalleryImage[]) => urls && urls.length && setImages(urls),\r\n () => {\r\n console.log(\"Objektam nav attēlu\");\r\n }\r\n );\r\n }\r\n }, [identifiedFeature]);\r\n\r\n useEffect(() => {\r\n images.length && setShowGallery(true);\r\n }, [images]);\r\n\r\n const getConditionalField = (condition: IIdentifyCondition) => {\r\n const value = identifiedFeature.get(condition.field);\r\n if (value === null || value === undefined) {\r\n return;\r\n }\r\n\r\n const conditionIsMet =\r\n condition.condition === Condition.Is\r\n ? value.toString() === condition.value\r\n : value.toString() !== condition.value;\r\n\r\n return conditionIsMet\r\n ? condition.showFields.map((field) => (\r\n \r\n ))\r\n : null;\r\n };\r\n\r\n return (\r\n <>\r\n {showGallery ? : null}\r\n {identifyConfig.fields.map((fieldName) => (\r\n \r\n ))}\r\n {identifyConfig.conditionalFields.map((condition) => getConditionalField(condition))}\r\n \r\n );\r\n};\r\n","import * as React from \"react\";\r\nimport { FC, useCallback, useEffect } from \"react\";\r\nimport { ImageArcGISRest } from \"ol/source\";\r\nimport { Image as ImageLayer } from \"ol/layer\";\r\nimport { PopupBody, PopupHeader, Popup } from \"./Popup\";\r\nimport { useNomaContext } from \"../Contexts/MapContext\";\r\nimport { Checkbox } from \"../Elements/Checkbox\";\r\nimport { config } from \"../Map/config\";\r\nimport { getMap } from \"../Providers/mapProvider\";\r\nimport { CloseButton } from \"../Elements/CloseButton\";\r\nimport \"./LayersMenu.scss\";\r\n\r\nexport const LayersMenu: FC = () => {\r\n const { isMobile, enabledLayers, setEnabledLayers, toggleLayersMenuVisible } = useNomaContext();\r\n\r\n const toggleLayer = useCallback(\r\n (visible: boolean, layerId: string): void => {\r\n const map = getMap();\r\n const layerConfig = config.layers.find((config) => config.id === layerId);\r\n\r\n if (!visible) {\r\n map.removeLayer(\r\n map\r\n .getLayers()\r\n .getArray()\r\n .find((layer) => layer.get(\"id\") === layerConfig.id)\r\n );\r\n const cleanBeforeAdd = enabledLayers.filter((id) => id !== layerId);\r\n setEnabledLayers([...cleanBeforeAdd]);\r\n return;\r\n }\r\n\r\n const alreadyAdded = map\r\n .getLayers()\r\n .getArray()\r\n .find((layer) => layer.get(\"id\") === layerId);\r\n\r\n !alreadyAdded &&\r\n map.addLayer(\r\n new ImageLayer({\r\n properties: { id: layerConfig.id },\r\n source: new ImageArcGISRest({\r\n url: layerConfig.url,\r\n crossOrigin: layerConfig.crossOrigin,\r\n attributions: layerConfig.copyright\r\n })\r\n })\r\n );\r\n const cleanBeforeAdd = enabledLayers.filter((id) => id !== layerId);\r\n setEnabledLayers([...cleanBeforeAdd, layerId]);\r\n },\r\n [enabledLayers]\r\n );\r\n\r\n useEffect(() => {\r\n enabledLayers.map((layerId) => toggleLayer(true, layerId));\r\n }, []);\r\n\r\n return (\r\n \r\n {isMobile ? (\r\n \r\n \r\n \r\n ) : (\r\n
\r\n )}\r\n \r\n {config.layers.map((layer) => {\r\n return (\r\n
\r\n toggleLayer(e, layer.id)}\r\n >\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n );\r\n};\r\n","import * as React from \"react\";\r\nimport { FC } from \"react\";\r\nimport classNames from \"classnames\";\r\nimport Draggable from \"react-draggable\";\r\nimport Portal from \"./Portal\";\r\nimport \"./Popup.scss\";\r\n\r\nexport interface IPopupProps {\r\n id: string;\r\n isMobile: boolean;\r\n hasBackdrop?: boolean;\r\n className?: string;\r\n defaultPosition?: { x: number; y: number };\r\n notDraggable?: boolean;\r\n}\r\n\r\nexport const Popup: FC = (props) => {\r\n return props.isMobile ? (\r\n
\r\n
{props.children}
\r\n
\r\n ) : (\r\n \r\n {props.hasBackdrop &&
}\r\n
\r\n {props.notDraggable ? (\r\n
{props.children}
\r\n ) : (\r\n \r\n
{props.children}
\r\n \r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport const PopupHeader: FC<{ isMobile: boolean; children?: React.ReactNode }> = (props) => {\r\n return props.isMobile ? (\r\n
{props.children}
\r\n ) : (\r\n
\r\n
{props.children}
\r\n
\r\n );\r\n};\r\n\r\nexport const PopupBody: FC<{ isMobile: boolean; children?: React.ReactNode }> = (props) => {\r\n return props.isMobile ? (\r\n
{props.children}
\r\n ) : (\r\n
\r\n
{props.children}
\r\n
\r\n );\r\n};\r\n\r\nexport const PopupFooter: FC<{ isMobile: boolean; children?: React.ReactNode; hasSingleButton?: boolean }> = (\r\n props\r\n) => {\r\n return props.isMobile ? (\r\n
{props.children}
\r\n ) : (\r\n
\r\n \r\n {props.children}\r\n
\r\n \r\n );\r\n};\r\n","import * as React from \"react\";\r\nimport { Feature } from \"ol\";\r\nimport { useNomaContext } from \"../Contexts/MapContext\";\r\n\r\nexport interface IPopupRow {\r\n fieldName: string;\r\n feature: Feature;\r\n classname?: string;\r\n}\r\n\r\nexport const PopupRow = ({ fieldName, feature, classname }: IPopupRow): JSX.Element => {\r\n const { getFieldAlias, getFieldValue } = useNomaContext();\r\n\r\n const alias = getFieldAlias(fieldName);\r\n const value = getFieldValue(feature, fieldName);\r\n const rowClassName = classname || \"popup-row\";\r\n\r\n return alias && value ? (\r\n
\r\n {alias + \": \"}\r\n {value}\r\n
\r\n ) : null;\r\n};\r\n","import { memo, useEffect, useRef, useState } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\n\r\ninterface IPortalProps {\r\n id?: string;\r\n children?: React.ReactNode;\r\n}\r\n\r\nconst Portal = ({ id, children }: IPortalProps) => {\r\n const el = useRef(document.getElementById(id) || document.createElement(\"div\"));\r\n const [dynamic] = useState(!el.current.parentElement);\r\n useEffect(() => {\r\n if (dynamic) {\r\n el.current.id = id;\r\n document.body.appendChild(el.current);\r\n }\r\n return () => {\r\n if (dynamic && el.current.parentElement) {\r\n el.current.parentElement.removeChild(el.current);\r\n }\r\n };\r\n }, [dynamic, id]);\r\n return createPortal(children, el.current);\r\n};\r\nexport default memo(Portal);\r\n","import * as React from \"react\";\r\nimport { FC } from \"react\";\r\nimport { PopupBody, PopupFooter, PopupHeader, Popup } from \"./Popup\";\r\nimport { PopupRow } from \"./PopupRow\";\r\nimport { config, IPreview } from \"../Map/config\";\r\nimport { useNomaContext } from \"../Contexts/MapContext\";\r\nimport { CloseButton } from \"../Elements/CloseButton\";\r\nimport { DocsSection } from \"./DocsSection\";\r\nimport { PopupButton } from \"../Elements/PopupButton\";\r\nimport { Feature } from \"ol\";\r\nimport { useCustomViewContext } from \"../Contexts/CustomViewContext\";\r\nimport { IRelatedDocs } from \"../interfaces\";\r\nimport \"./Preview.scss\";\r\nimport \"./Print.scss\";\r\n\r\nexport const Preview: FC = () => {\r\n const {\r\n isMobile,\r\n activeTab,\r\n previewFeature,\r\n setPreviewFeature,\r\n setApplyFeature,\r\n setRegisterFeature,\r\n setSideViewVisible,\r\n setLayersMenuVisible\r\n } = useNomaContext();\r\n\r\n const { relatedDocs } = useCustomViewContext();\r\n\r\n const x = 80; // popup to the left\r\n\r\n const previewConfig = config.dataView.tabs.find((tabConfig) => tabConfig.tabValue === activeTab).preview;\r\n\r\n const isAuction =\r\n previewFeature.get(\"TYPEOFLEASEGRANTING\") !== 1 && previewFeature.get(\"TYPEOFLEASEGRANTING\") !== 5;\r\n\r\n const objectId = previewFeature.get(\"OBJECTID\");\r\n const objectDocs = relatedDocs.find((item: IRelatedDocs) => (item.objectId === objectId ? item.docs : undefined));\r\n\r\n const onClickApply = () => {\r\n isAuction ? setApplyFeature({ feature: previewFeature, isRight: false }) : setRegisterFeature(previewFeature);\r\n setSideViewVisible(false);\r\n setLayersMenuVisible(false);\r\n };\r\n\r\n const onClickZip = () =>\r\n (window.location.href = config.dataView.docsApi + \"/files/related/PUBSDE.LandPlotCatalog/\" + objectId);\r\n\r\n const deadlineNotReached = isBeforeDeadline(previewFeature);\r\n return (\r\n \r\n \r\n setPreviewFeature(null)}>\r\n \r\n \r\n \r\n \r\n \r\n {activeTab === 1 && (\r\n <>\r\n {deadlineNotReached && (\r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nconst PreviewContent = ({ previewConfig }: { previewConfig: IPreview }) => {\r\n const { previewFeature, setLocateFeature, getFieldAlias, getFieldValue, snapshotBig, snapshotSmall } =\r\n useNomaContext();\r\n\r\n const print = () => {\r\n const originalPopup = document.getElementById(\"preview-popup\");\r\n const content = originalPopup.getElementsByClassName(\"popup-body\")[0].cloneNode(true);\r\n content.firstChild.parentElement.id = \"print-popup\";\r\n\r\n const iframe = document.createElement(\"iframe\");\r\n iframe.id = \"printPreview\";\r\n iframe.name = \"printPreview\";\r\n iframe.srcdoc = '';\r\n\r\n iframe.onload = () => {\r\n iframe.contentWindow.document.body.appendChild(content);\r\n iframe.contentWindow.onafterprint = () => {\r\n document.body.removeChild(iframe);\r\n };\r\n window.frames[\"printPreview\"].focus();\r\n window.frames[\"printPreview\"].print();\r\n };\r\n document.body.appendChild(iframe);\r\n };\r\n\r\n return (\r\n <>\r\n
Nomas objekts
\r\n
\r\n {previewFeature.get(\"LAYERID\") === \"1\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n
{getFieldValue(previewFeature, \"STARTRENT\")}
\r\n
gadā
\r\n
(bez NĪN un PVN)
\r\n
\r\n
\r\n
\r\n \r\n setLocateFeature(previewFeature)}\r\n >\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {previewConfig.fields.map((fieldName, i) => (\r\n \r\n ))}\r\n
\r\n
{previewConfig.footerText}
\r\n \r\n \r\n );\r\n};\r\n\r\nconst PreviewRow = ({ fieldName, previewConfig }: { fieldName: string; previewConfig: IPreview }) => {\r\n const { previewFeature, getFieldValue } = useNomaContext();\r\n\r\n if (fieldName.startsWith(\"hardcoded-\")) {\r\n const fieldConfig = previewConfig.hardcodedFields.find((hcField) => hcField.field === fieldName);\r\n\r\n return (\r\n
\r\n
{fieldConfig.alias + \": \"}
\r\n
\r\n {fieldConfig.values.map((value) => {\r\n const fieldvalue = getFieldValue(previewFeature, value);\r\n return
{fieldvalue || value}
;\r\n })}\r\n
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst LandPlotHeader = ({ feature, getFieldAlias, getFieldValue }) => {\r\n return (\r\n
\r\n
\r\n {getFieldValue(feature, \"REGIONATVK\", \"0\") ? (\r\n {getFieldValue(feature, \"REGIONATVK\", \"0\") + \", \"}\r\n ) : null}\r\n {getFieldValue(feature, \"MUNICIPALITYATVK\", \"0\") ? (\r\n {getFieldValue(feature, \"MUNICIPALITYATVK\", \"0\") + \", \"}\r\n ) : null}\r\n {getFieldValue(feature, \"PROPERTYTITLE\", \"0\") ? (\r\n {getFieldValue(feature, \"PROPERTYTITLE\", \"0\")}\r\n ) : null}\r\n
\r\n
\r\n {getFieldAlias(\"PROPERTYCADASTRALNUMBER\", \"0\") + \": \"}\r\n {getFieldValue(feature, \"PROPERTYCADASTRALNUMBER\", \"0\")}\r\n
\r\n
\r\n {getFieldAlias(\"CADASTER\", \"0\") + \": \"}\r\n {getFieldValue(feature, \"CADASTER\", \"0\")}\r\n
\r\n
\r\n );\r\n};\r\nconst WindFarmHeader = ({ feature, getFieldAlias, getFieldValue }) => (\r\n
\r\n
{getFieldValue(feature, \"PROPERTYTITLE\", \"1\") || null}
\r\n
\r\n {getFieldAlias(\"MW\", \"1\") + \": \"}\r\n {getFieldValue(feature, \"MW\", \"1\")}\r\n
\r\n
\r\n);\r\n\r\nexport const isBeforeDeadline = (feature: Feature): boolean => {\r\n const end = feature.get(\"APPLICATIONENDDATE\");\r\n if (!end) {\r\n return true;\r\n }\r\n const endDate = new Date(end);\r\n const endDateLastHour = endDate && endDate.setHours(24, 0, 0, 0);\r\n return endDateLastHour && Date.now() < endDateLastHour;\r\n};\r\n","import * as React from \"react\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { useNomaContext } from \"../../Contexts/MapContext\";\r\nimport { useRegistrationContext } from \"../../Contexts/RegistrationContext\";\r\nimport { IObjectSection, ISummaryParams } from \"./SummarySection\";\r\n\r\nexport const ObjectSection = ({ data }: { data?: ISummaryParams }): JSX.Element => {\r\n const [dataJson, setDataJson] = useState();\r\n\r\n const { getObjectSectionJson } = useRegistrationContext();\r\n const { snapshotBig, snapshotSmall } = useNomaContext();\r\n\r\n useEffect(() => {\r\n setDataJson(data ? data : getObjectSectionJson());\r\n }, []);\r\n\r\n return dataJson ? (\r\n
\r\n
\r\n
\r\n {dataJson.header.headerRows.map((row) => (\r\n
\r\n {row.alias}\r\n {row.value}\r\n
\r\n ))}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {dataJson.objectInfoRows.map((row) =>\r\n row ? (\r\n
\r\n {row.alias ? {row.alias} : null}\r\n {row.value ? {row.value} : null}\r\n
\r\n ) : null\r\n )}\r\n
\r\n ) : null;\r\n};\r\n","import * as React from \"react\";\r\nimport { useEffect, useRef } from \"react\";\r\nimport { useNomaContext } from \"../../Contexts/MapContext\";\r\n\r\nconst privacyUrl = \"https://www.lvm.lv/privatuma-politika\";\r\n\r\nexport const PrivacySection = () => {\r\n const { registerFeature } = useNomaContext();\r\n const containerRef = useRef();\r\n\r\n const actionWord = registerFeature.get(\"LAYERID\") === \"1\" ? \"apbūves\" : \"nomas\";\r\n\r\n useEffect(() => {\r\n const captcha = document.getElementsByClassName(\"grecaptcha-badge\")[0].cloneNode(true);\r\n containerRef.current && containerRef.current.append(captcha);\r\n }, []);\r\n\r\n return (\r\n
\r\n

Nosūtot pieteikumu, Jūs iesniedzat savus personas datus.

\r\n

Pārzinis: AS “Latvijas valsts meži”.

\r\n

Kontaktinformācija: Vaiņodes iela 1, Rīga, LV-1004, e-pasts: lvm@lvm.lv, tālrunis 67610015.

\r\n

\r\n {`Datu apstrādes mērķis: reģistrēt un apstrādāt pretendenta pieteikumu ${actionWord} tiesību piešķiršanai.`}\r\n

\r\n

\r\n Papildus informācija par datu apstrādi pieejama  \r\n \r\n Privātuma politikā.\r\n \r\n

\r\n
\r\n
\r\n );\r\n};\r\n","import * as React from \"react\";\r\nimport { FC, useCallback, useEffect, useState } from \"react\";\r\nimport { CloseButton } from \"../../Elements/CloseButton\";\r\nimport { PopupBody, PopupFooter, PopupHeader, Popup } from \"../Popup\";\r\nimport { useNomaContext } from \"../../Contexts/MapContext\";\r\nimport { PopupButton } from \"../../Elements/PopupButton\";\r\nimport { FormSection } from \"../../Forms/FormSection\";\r\nimport { useRegistrationContext } from \"../../Contexts/RegistrationContext\";\r\nimport { FormInput } from \"../../Forms/formFields\";\r\nimport { Feature } from \"ol\";\r\nimport {\r\n IAttachmentFile,\r\n IAttachmentPath,\r\n IObjectIDs,\r\n printPdf,\r\n requestObjectIds,\r\n sendEmail,\r\n updateFeatures,\r\n uploadFile\r\n} from \"../../Map/rest\";\r\nimport { ObjectSection } from \"./ObjectSection\";\r\nimport { PrivacySection } from \"./PrivacySection\";\r\nimport { UserConsentCheck } from \"./UserConsent\";\r\nimport { SummarySection } from \"./SummarySection\";\r\nimport { ISubmitStatus, SubmitSection } from \"./SubmitSection\";\r\nimport { ApplicantType, AttachmentType, PrintType, Result, UploadState } from \"../../Map/enums\";\r\nimport { AxiosResponse } from \"axios\";\r\nimport { objectIdGap } from \"../../Map/config\";\r\nimport \"./Registration.scss\";\r\n\r\nenum PageId {\r\n PrivacyNotice = 0,\r\n ObjectInfo = 1,\r\n ApplicationForm = 2,\r\n Summary = 3,\r\n Submit = 4\r\n}\r\n\r\nexport const Registration: FC = () => {\r\n const [page, setPage] = useState(PageId.PrivacyNotice);\r\n const [idRequested, setIdRequested] = useState(false);\r\n const [submitStatus, setSubmitStatus] = useState();\r\n const [registrationCompleted, setRegistrationCompleted] = useState(undefined);\r\n const [error, setError] = useState(false);\r\n\r\n const {\r\n userConsent,\r\n setUserConsent,\r\n setValidateForm,\r\n isFormValid,\r\n formData,\r\n rawData,\r\n formFeature,\r\n setFormFeature,\r\n applicantType,\r\n setResetForm,\r\n setFormDefaultData,\r\n attachments,\r\n summaryData\r\n } = useRegistrationContext();\r\n\r\n const { isMobile, registerFeature, setRegisterFeature } = useNomaContext();\r\n const x = document.body.clientWidth / 2 - 300;\r\n\r\n const OnApplyForm = () => {\r\n setValidateForm(Date.now());\r\n };\r\n\r\n const onObjectInfoBack = () => {\r\n setUserConsent(false);\r\n setPage(PageId.PrivacyNotice);\r\n };\r\n const onFormBack = () => {\r\n setUserConsent(false);\r\n setError(false);\r\n setIdRequested(false);\r\n setResetForm(Date.now());\r\n setPage(PageId.ObjectInfo);\r\n };\r\n const onSummaryBack = () => {\r\n setValidateForm(0);\r\n setPage(PageId.ApplicationForm);\r\n formData && setFormDefaultData(formData);\r\n };\r\n\r\n const createNewFeature = () => {\r\n const newFeature = new Feature(registerFeature.getGeometry());\r\n\r\n const properties = {\r\n FORMINPUTSTATE: 1,\r\n APPLICATIONDATE: Date.now(),\r\n APPLICANTTYPE: applicantType,\r\n LVMFORESTRYCODE: registerFeature.get(\"LVMFORESTRYCODE\"),\r\n REGIONATVK: registerFeature.get(\"REGIONATVK\"),\r\n MUNICIPALITYATVK: registerFeature.get(\"MUNICIPALITYATVK\"),\r\n PROPERTYCADASTRALNUMBER: registerFeature.get(\"PROPERTYCADASTRALNUMBER\"),\r\n PROPERTYTITLE: registerFeature.get(\"PROPERTYTITLE\"),\r\n CADASTER: registerFeature.get(\"CADASTER\"),\r\n TYPEOFLEASEGRANTING: registerFeature.get(\"TYPEOFLEASEGRANTING\")\r\n };\r\n registerFeature.get(\"LAYERID\") === \"1\"\r\n ? (properties[\"WINDPLOTID\"] = Number(registerFeature.get(\"OBJECTID\")) - objectIdGap)\r\n : (properties[\"LANDPLOTID\"] = registerFeature.get(\"OBJECTID\"));\r\n newFeature.setProperties(properties);\r\n\r\n return newFeature;\r\n };\r\n\r\n const appendFormData = useCallback(() => {\r\n formFeature.setProperties({\r\n FORMINPUTSTATE: 100,\r\n APPLICANTNAME:\r\n applicantType === ApplicantType.Individual\r\n ? formData[FormInput.Name].toString() + \" \" + formData[FormInput.Surname]\r\n : formData[FormInput.Company],\r\n APPLICANTCODE:\r\n applicantType === ApplicantType.Individual\r\n ? formData[FormInput.PersonalCode]\r\n : formData[FormInput.RegistrationNumber],\r\n APPLICANTADDRESS: formData[FormInput.Address],\r\n APPLICANTPHONE: formData[FormInput.Phone],\r\n APPLICANTEMAIL: formData[FormInput.Email],\r\n DESCRIPTION: formData[FormInput.Notes],\r\n CONTACTPERSON: formData[FormInput.ContactPerson]\r\n });\r\n return formFeature;\r\n }, [formData, applicantType]);\r\n\r\n // STEP 1 - request ObjectId on first input change\r\n useEffect(() => {\r\n if (!Object.keys(rawData).length || formFeature || idRequested) {\r\n return;\r\n }\r\n setIdRequested(true);\r\n const newFeature = createNewFeature();\r\n requestObjectIds([newFeature]).then((ids: IObjectIDs[]) => {\r\n if (!ids || !ids[0]) {\r\n console.log(\"Connection error while requesting OBJECTID\");\r\n setError(true);\r\n return;\r\n }\r\n newFeature.setId(ids[0].objectId);\r\n newFeature.setProperties({\r\n OBJECTID: ids[0].objectId,\r\n GLOBALID: ids[0].globalId\r\n });\r\n setFormFeature(newFeature);\r\n setIdRequested(false);\r\n console.log(\"piešķirts OBJECTID\", ids[0].objectId);\r\n });\r\n }, [rawData, applicantType, idRequested]);\r\n\r\n // STEP 2 - append form data to feature - GATAVS IESNIEGŠANAI\r\n useEffect(() => {\r\n if (isFormValid && !formFeature) {\r\n console.log(\"Can not update feature without OBJECTID\");\r\n setError(true);\r\n return;\r\n }\r\n isFormValid &&\r\n updateFeatures([appendFormData()]).then((results: AxiosResponse) => {\r\n if (!results || results.status !== 200 || !results.data.updateResults[0].success) {\r\n console.log(\"error with updateFeatures\");\r\n return;\r\n }\r\n setPage(PageId.Summary);\r\n });\r\n }, [isFormValid]);\r\n\r\n // STEP 3 - iesniegts - IESNIEGTS\r\n const onSubmit = async () => {\r\n setPage(PageId.Submit);\r\n /*** Upload attachments */\r\n attachments && attachments.length ? await uploadAttachments() : await Promise.resolve();\r\n\r\n /*** Create PDF */\r\n const pdfResult = await printPdf(summaryData, PrintType.File);\r\n if (pdfResult && pdfResult.status === 0) {\r\n setSubmitStatus({ name: UploadState.CreatePdf, result: Result.Error });\r\n setRegistrationCompleted(Result.Error);\r\n return;\r\n }\r\n setSubmitStatus({ name: UploadState.CreatePdf, result: Result.Success });\r\n const file = new File([pdfResult.data], \"pieteikums.pdf\", { type: \"application/pdf\" });\r\n console.log(\"pdf print result\", pdfResult);\r\n\r\n /*** Upload PDF */\r\n const uploadedPdfFileName = await uploadPdf(file);\r\n if (!uploadedPdfFileName) {\r\n setSubmitStatus({ name: UploadState.UploadPdf, result: Result.Error });\r\n setRegistrationCompleted(Result.Error);\r\n return;\r\n }\r\n setSubmitStatus({ name: UploadState.UploadPdf, result: Result.Success });\r\n\r\n /*** Submit Form */\r\n formFeature.set(\"FORMINPUTSTATE\", 110, true);\r\n const featureUpdate = await updateFeatures([formFeature]);\r\n if (!featureUpdate || featureUpdate.status !== 200 || !featureUpdate.data.updateResults[0].success) {\r\n setSubmitStatus({ name: UploadState.SubmitForm, result: Result.Error });\r\n setRegistrationCompleted(Result.Error);\r\n return;\r\n }\r\n setSubmitStatus({ name: UploadState.SubmitForm, result: Result.Success });\r\n console.log(\"Form feature submitted\", featureUpdate);\r\n\r\n /*** Send Email with attached PDF */\r\n const emailAttachment: IAttachmentFile = {\r\n type: AttachmentType.File,\r\n endpoint: \"FileProvider\", // endpoint name, taken from Mailer appsettings.config\r\n resourceId: uploadedPdfFileName\r\n };\r\n\r\n /*** Send Email with PDF as path */\r\n // const emailAttachment: IAttachmentPath = {\r\n // type: AttachmentType.Path,\r\n // // url: pdfResult.data.path\r\n // url: uploadedPdfFileName\r\n // };\r\n\r\n const emailResult = await sendEmail(formFeature.get(\"APPLICANTEMAIL\"), [emailAttachment]);\r\n console.log(\"send email result\", emailResult);\r\n if (emailResult && emailResult.status === 0) {\r\n setSubmitStatus({ name: UploadState.SendEmail, result: Result.Error });\r\n setRegistrationCompleted(Result.Error);\r\n return;\r\n }\r\n setSubmitStatus({ name: UploadState.SendEmail, result: Result.Success });\r\n setRegistrationCompleted(Result.Success);\r\n };\r\n\r\n const uploadPdf = async (file: File): Promise => {\r\n const fileFeature: Feature = new Feature();\r\n fileFeature.set(\"FILEDESCRIPTION\", file.name);\r\n\r\n const fileFeatureOIDs = await requestObjectIds([fileFeature], \"1\");\r\n const oid = fileFeatureOIDs[0];\r\n\r\n const uploadResult = await uploadFile(file, oid.objectId.toString());\r\n if (!uploadResult || uploadResult.status !== 200 || !uploadResult.data.fileName) {\r\n return;\r\n }\r\n\r\n fileFeature.setProperties({\r\n OBJECTID: oid.objectId,\r\n FILEID: uploadResult.data.fileName,\r\n FORMGLOBALID: formFeature.get(\"GLOBALID\")\r\n });\r\n const featureUpdate = await updateFeatures([fileFeature], \"1\");\r\n\r\n return !featureUpdate || featureUpdate.status !== 200 || !featureUpdate.data.updateResults[0].success\r\n ? null\r\n : uploadResult.data.fileName;\r\n };\r\n\r\n const uploadAttachments = async () => {\r\n const fileFeatures: Feature[] = Array.from(attachments, (file) => {\r\n const fileFeature = new Feature();\r\n fileFeature.set(\"FILEDESCRIPTION\", file.name);\r\n return fileFeature;\r\n });\r\n\r\n const fileFeatureOIDs = await requestObjectIds(fileFeatures, \"1\");\r\n return Promise.all(\r\n fileFeatureOIDs.map(async (oid, i) =>\r\n uploadFile(attachments[i], oid.objectId.toString()).then((uploadResult) => {\r\n if (uploadResult && uploadResult.status === 200 && uploadResult.data.fileName) {\r\n fileFeatures[i].setProperties({\r\n OBJECTID: oid.objectId,\r\n FILEID: uploadResult.data.fileName,\r\n FORMGLOBALID: formFeature.get(\"GLOBALID\")\r\n });\r\n setSubmitStatus({ name: attachments[i].name, result: Result.Success });\r\n } else {\r\n setSubmitStatus({ name: attachments[i].name, result: Result.Error });\r\n }\r\n })\r\n )\r\n )\r\n .then(() => updateFeatures(fileFeatures, \"1\"))\r\n .then((updated) => updated);\r\n };\r\n\r\n const isUsualCase = !registerFeature || registerFeature.get(\"TYPEOFLEASEGRANTING\") !== 5;\r\n\r\n return (\r\n \r\n \r\n {page === PageId.PrivacyNotice &&
PERSONAS DATU APSTRĀDE
}\r\n {page === PageId.ObjectInfo &&
NOMAS OBJEKTA DATI
}\r\n {page === PageId.ApplicationForm &&
DATI PAR IESNIEDZĒJU
}\r\n {page === PageId.Summary &&
PIETEIKUMS
}\r\n {page === PageId.Submit &&
PIETEIKUMA IESNIEGŠANA
}\r\n setRegisterFeature(null)}>\r\n
\r\n \r\n {page === PageId.PrivacyNotice && }\r\n {page === PageId.ObjectInfo && (\r\n <>\r\n \r\n {isUsualCase ? (\r\n <>\r\n
\r\n
\r\n \r\n
\r\n \r\n ) : null}\r\n \r\n )}\r\n {page === PageId.ApplicationForm && }\r\n {page === PageId.Summary && }\r\n {page === PageId.Submit && (\r\n \r\n )}\r\n
\r\n \r\n {page === PageId.PrivacyNotice && (\r\n setPage(PageId.ObjectInfo)}\r\n >\r\n )}\r\n {page === PageId.ObjectInfo && (\r\n <>\r\n \r\n setPage(PageId.ApplicationForm)}\r\n >\r\n \r\n )}\r\n {page === PageId.ApplicationForm && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n {page === PageId.Summary && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n );\r\n};\r\n","import * as React from \"react\";\r\nimport classNames from \"classnames\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { useRegistrationContext } from \"../../Contexts/RegistrationContext\";\r\nimport { Result, UploadState } from \"../../Map/enums\";\r\nimport \"./SubmitSection.scss\";\r\n\r\nexport interface ISubmitStatus {\r\n name: UploadState | string;\r\n result: Result;\r\n}\r\ninterface IUploadStates {\r\n [fileName: string]: Result;\r\n}\r\n\r\nexport const SubmitSection = ({\r\n submitStatus,\r\n completed\r\n}: {\r\n submitStatus: ISubmitStatus;\r\n completed: Result | undefined;\r\n}): JSX.Element => {\r\n const [uploadStates, setUploadStates] = useState({});\r\n\r\n const { attachments } = useRegistrationContext();\r\n\r\n useEffect(() => {\r\n const newState = { ...uploadStates };\r\n if (submitStatus && submitStatus.name) {\r\n newState[submitStatus.name] = submitStatus.result;\r\n\r\n // if uploadPDF fails, set Error for all next steps\r\n if (submitStatus.name === UploadState.UploadPdf && submitStatus.result === Result.Error) {\r\n newState[UploadState.SubmitForm] = Result.Error;\r\n newState[UploadState.SendEmail] = Result.Error;\r\n }\r\n }\r\n setUploadStates(newState);\r\n }, [submitStatus]);\r\n\r\n return (\r\n <>\r\n
\r\n {attachments && (\r\n <>\r\n {Array.from(attachments, (attachment) => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
\r\n {completed === undefined\r\n ? \"Datu pievienošana...\"\r\n : completed === Result.Success\r\n ? \"Pieteikums iesniegts!\"\r\n : \"Pieteikums nav iesniegts.\"}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\ninterface IStatusItem {\r\n states: IUploadStates;\r\n itemStatusName: UploadState | string;\r\n titles: { default: string; success: string; error: string };\r\n}\r\n\r\nconst StatusItem = ({ states, itemStatusName, titles }: IStatusItem) => (\r\n
\r\n
\r\n {states[itemStatusName] === undefined ? (\r\n
\r\n ) : states[itemStatusName] === Result.Success ? (\r\n
\r\n ) : (\r\n
\r\n )}\r\n
\r\n
\r\n {states[itemStatusName] === undefined\r\n ? titles.default\r\n : states[itemStatusName] === Result.Success\r\n ? titles.success\r\n : titles.error}\r\n
\r\n
\r\n);\r\n","import * as React from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport { Feature } from \"ol\";\r\nimport { useNomaContext } from \"../../Contexts/MapContext\";\r\nimport { useRegistrationContext } from \"../../Contexts/RegistrationContext\";\r\nimport { ObjectSection } from \"./ObjectSection\";\r\nimport { UserConsentCheck } from \"./UserConsent\";\r\nimport { UploadList } from \"../../Forms/UploadList\";\r\n\r\nexport interface ISummaryParams {\r\n header: ISummaryHeader;\r\n objectInfoRows: IAliasValue[];\r\n globalId: string;\r\n customer: ISection;\r\n attachments: ISection;\r\n date: string;\r\n visiting: IAliasValue;\r\n footerNote?: string;\r\n}\r\n\r\nexport interface IObjectSection {\r\n header: ISummaryHeader;\r\n objectInfoRows: IAliasValue[];\r\n}\r\ninterface ISummaryHeader {\r\n headerRows: IAliasValue[];\r\n snapshotBig: string;\r\n snapshotSmall: string;\r\n}\r\ninterface IAliasValue {\r\n alias: string;\r\n value: string;\r\n}\r\ninterface ISection {\r\n title: string;\r\n rows: string[];\r\n}\r\n\r\nexport const SummarySection = (): JSX.Element => {\r\n const { registerFeature } = useNomaContext();\r\n const { setUserConsent, summaryData, setSummaryData, getSummaryJson, attachments } = useRegistrationContext();\r\n\r\n useEffect(() => {\r\n setUserConsent(false);\r\n setSummaryData(getSummaryJson());\r\n }, []);\r\n\r\n useEffect(() => {\r\n setSummaryData(getSummaryJson());\r\n }, [attachments]);\r\n\r\n return summaryData ? (\r\n <>\r\n \r\n \r\n \r\n ) : null;\r\n};\r\n\r\ninterface IInfoSectionProps {\r\n params: ISummaryParams;\r\n feature: Feature;\r\n setUserConsent: CallableFunction;\r\n}\r\nconst InfoSection = ({ params, feature, setUserConsent }: IInfoSectionProps): JSX.Element => (\r\n <>\r\n
\r\n {(!feature || feature.get(\"TYPEOFLEASEGRANTING\") !== 5) && (\r\n
\r\n \r\n
\r\n )}\r\n {params.attachments ? (\r\n \r\n ) : null}\r\n
\r\n {params.date}\r\n
\r\n\r\n
\r\n
\r\n
{params.visiting.alias}
\r\n
{params.visiting.value}
\r\n
\r\n {params.footerNote ?
{params.footerNote}
: null}\r\n \r\n);\r\n\r\nconst Section = ({ classname, data }: { classname: string; data: ISection }): JSX.Element => (\r\n
\r\n
{data.title}
\r\n {data.rows.map((row) => (\r\n
\r\n {row}\r\n
\r\n ))}\r\n
\r\n);\r\nconst AttachmentSection = ({ classname, data }: { classname: string; data: ISection }): JSX.Element => {\r\n const { attachments, setAttachments } = useRegistrationContext();\r\n\r\n return (\r\n
\r\n
{data.title}
\r\n \r\n
\r\n );\r\n};\r\n","import * as React from \"react\";\r\nimport { useState } from \"react\";\r\nimport { Checkbox } from \"../../Elements/Checkbox\";\r\n\r\nexport const UserConsentCheck = ({\r\n onChange,\r\n defaultChecked\r\n}: {\r\n onChange: CallableFunction;\r\n defaultChecked?: boolean;\r\n}): JSX.Element => {\r\n const [checked, setChecked] = useState(defaultChecked || false);\r\n\r\n const onCheck = (val: boolean) => {\r\n setChecked(val);\r\n onChange(val);\r\n };\r\n\r\n return (\r\n onCheck(val)}\r\n >\r\n );\r\n};\r\n","import axios from \"axios\";\r\nimport { IDocument } from \"../interfaces\";\r\nimport { config } from \"../Map/config\";\r\n\r\nexport interface IRelatedDoc {\r\n fileName: string;\r\n storedFileName: string;\r\n title?: string;\r\n description?: string;\r\n}\r\n\r\nconst relatedDocsCache: Record = {};\r\nconst promises: Record> = {};\r\n\r\nexport const getRelatedDocsUrls = async (objectId: number): Promise => {\r\n const respData = relatedDocsCache[objectId] || (await getRelatedDocs(objectId));\r\n if (!respData || !respData.length) {\r\n return [];\r\n }\r\n return respData.map((item: IRelatedDoc) => {\r\n return {\r\n fileName: item.fileName,\r\n title: item.title,\r\n url: config.dataView.docsApi + \"/api/Get?file=\" + item.storedFileName,\r\n description: item.description\r\n } as IDocument;\r\n });\r\n};\r\n\r\nconst getRelatedDocs = (objectId: number): Promise => {\r\n if (!promises[objectId]) {\r\n promises[objectId] = axios\r\n .get(config.dataView.docsApi + \"/api/GetRelatedFiles\", {\r\n params: {\r\n RelatedObjectId: objectId,\r\n Layer: \"PUBSDE.LandPlotCatalog\"\r\n }\r\n })\r\n .then((resp) => {\r\n relatedDocsCache[objectId] = resp.data;\r\n return resp.data;\r\n })\r\n .catch((error) => {\r\n console.log(\"no related docs for \" + objectId + \" \" + error);\r\n return [];\r\n });\r\n }\r\n\r\n return promises[objectId];\r\n};\r\n","import axios from \"axios\";\r\nimport { GalleryImage } from \"../Gallery/Gallery\";\r\nimport { config } from \"../Map/config\";\r\nimport { ImageLoadingState } from \"../Map/enums\";\r\ninterface IRelatedImage {\r\n fileName: string;\r\n storedFileName: string;\r\n title?: string;\r\n description?: string;\r\n}\r\n\r\nconst relatedImagesCache: Record = {};\r\nconst promises: Record> = {};\r\n\r\nexport const getThumbnailUrl = async (objectId: number): Promise => {\r\n const respData = relatedImagesCache[objectId] || (await getRelatedImages(objectId));\r\n if (!respData) {\r\n return \"\";\r\n }\r\n if (!respData.length) {\r\n return ImageLoadingState.NoImages;\r\n }\r\n\r\n const url =\r\n config.dataView.imageApi +\r\n \"/api/GetImage?file=\" +\r\n respData[0].storedFileName +\r\n \"&height=\" +\r\n (config.dataView.thumbnailHeight || 30);\r\n return url;\r\n};\r\n\r\nexport const getRelatedImagesUrls = async (objectId: number): Promise => {\r\n const respData = relatedImagesCache[objectId] || (await getRelatedImages(objectId));\r\n if (!respData || !respData.length) {\r\n return [];\r\n }\r\n return respData.map((image: IRelatedImage) => {\r\n const baseUrl = config.dataView.imageApi;\r\n return {\r\n original: baseUrl + \"/api/GetImage?file=\" + image.storedFileName + \"&height=\" + 200,\r\n thumbnail:\r\n baseUrl +\r\n \"/api/GetImage?file=\" +\r\n image.storedFileName +\r\n \"&height=\" +\r\n (config.dataView.thumbnailHeight || 30),\r\n fullscreen: baseUrl + \"/api/GetImage?file=\" + image.storedFileName\r\n } as GalleryImage;\r\n });\r\n};\r\n\r\nconst getRelatedImages = (objectId: number): Promise => {\r\n if (!promises[objectId]) {\r\n promises[objectId] = axios\r\n .get(config.dataView.imageApi + \"/api/GetRelatedImages\", {\r\n params: {\r\n RelatedObjectId: objectId,\r\n Layer: \"PUBSDE.LandPlotCatalog\"\r\n }\r\n })\r\n .then((resp) => {\r\n relatedImagesCache[objectId] = resp.data;\r\n return resp.data;\r\n })\r\n .catch((error) => {\r\n console.log(\"no related images for \" + objectId + \" \" + error);\r\n return [];\r\n });\r\n }\r\n\r\n return promises[objectId];\r\n};\r\n","import * as React from \"react\";\r\nimport { FC, MutableRefObject, useCallback, useEffect, useRef, useState } from \"react\";\r\nimport { Map, Feature } from \"ol\";\r\nimport { useMap } from \"../Map/useMap\";\r\nimport { CustomView } from \"../Views/CustomView\";\r\nimport { SideView } from \"../Views/SideView\";\r\nimport { fetchAllFeatures, getFieldInfos } from \"../Map/rest\";\r\nimport { Identify } from \"../Popups/Identify\";\r\nimport { Downloads } from \"../Popups/Downloads\";\r\nimport { Apply } from \"../Popups/Apply\";\r\nimport { Preview } from \"../Popups/Preview\";\r\nimport { LayersMenu } from \"../Popups/LayersMenu\";\r\nimport { useNomaContext } from \"../Contexts/MapContext\";\r\nimport { useFiltersContext } from \"../Contexts/FiltersContext\";\r\nimport { CustomViewContextProvider } from \"../Contexts/CustomViewContext\";\r\nimport { SideViewContextProvider } from \"../Contexts/SideViewContext\";\r\nimport { RegistrationContextProvider } from \"../Contexts/RegistrationContext\";\r\nimport { filterByExtent, filterFeatures } from \"../Map/filters\";\r\nimport { Registration } from \"../Popups/Registration/Registration\";\r\nimport { objectIdGap } from \"../Map/config\";\r\nimport \"../css/icons/style.css\";\r\nimport \"../css/map.scss\";\r\nimport \"ol/ol.css\";\r\n\r\nexport interface IZemesnomaMapProps {\r\n features: Feature[] | null;\r\n forceUpdate: number;\r\n}\r\n\r\nlet mapRef: MutableRefObject;\r\nlet allFeaturesRef: MutableRefObject;\r\nlet filteredFeaturesRef: MutableRefObject;\r\nlet isFetchingRef: MutableRefObject;\r\n\r\nexport const ZemesnomaMap: FC = () => {\r\n const [forceUpdate, setForceUpdate] = useState(0);\r\n const ref = useRef();\r\n\r\n const {\r\n activeTab,\r\n setFieldInfos,\r\n setIdentifiedFeature,\r\n setLocateFeature,\r\n identifiedFeature,\r\n previewFeature,\r\n applyFeature,\r\n downloadsPopupDocs,\r\n layersMenuVisible,\r\n registerFeature,\r\n filterDefaultValues,\r\n urlParams\r\n } = useNomaContext();\r\n\r\n const { extent, filters, setResultsCount } = useFiltersContext();\r\n\r\n mapRef = useRef();\r\n allFeaturesRef = useRef();\r\n filteredFeaturesRef = useRef();\r\n isFetchingRef = useRef(true);\r\n\r\n const initIdentify = (feature: Feature) => {\r\n setIdentifiedFeature(feature);\r\n setLocateFeature(feature);\r\n };\r\n\r\n mapRef.current = useMap(ref, {\r\n features: filteredFeaturesRef.current,\r\n forceUpdate\r\n });\r\n\r\n const getExtentFeatures = useCallback(() => {\r\n return filterByExtent(filteredFeaturesRef.current, extent);\r\n }, [filteredFeaturesRef.current, extent]);\r\n\r\n useEffect(() => {\r\n if (!allFeaturesRef.current) {\r\n return;\r\n }\r\n filteredFeaturesRef.current = filterFeatures(allFeaturesRef.current, filters);\r\n filteredFeaturesRef.current && setResultsCount(filteredFeaturesRef.current.length);\r\n setForceUpdate(Date.now());\r\n }, [filters]);\r\n\r\n useEffect(() => {\r\n fetchAllFeatures(activeTab).then((features) => {\r\n isFetchingRef.current = false;\r\n allFeaturesRef.current = features;\r\n\r\n filteredFeaturesRef.current = filterFeatures(allFeaturesRef.current, filters);\r\n filteredFeaturesRef.current && setResultsCount(filteredFeaturesRef.current.length);\r\n\r\n setFieldInfos(getFieldInfos());\r\n\r\n urlParams && identifyParameterFeature();\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (isFetchingRef.current) {\r\n return;\r\n }\r\n fetchAllFeatures(activeTab).then((features) => {\r\n allFeaturesRef.current = features;\r\n filteredFeaturesRef.current = filterFeatures(allFeaturesRef.current, getFilters());\r\n allFeaturesRef.current && setResultsCount(filteredFeaturesRef.current.length);\r\n setForceUpdate(Date.now());\r\n });\r\n }, [activeTab]);\r\n\r\n const getFilters = useCallback(() => {\r\n return filters || filterDefaultValues;\r\n }, [filters, filterDefaultValues]);\r\n\r\n const identifyParameterFeature = () => {\r\n const feature = allFeaturesRef.current.find(\r\n (f) => f.get(\"LAYERID\") === urlParams.layerId && f.get(\"OBJECTID\") === Number(urlParams.objectId)\r\n );\r\n feature && initIdentify(feature);\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {identifiedFeature ? : null}\r\n {previewFeature ? : null}\r\n {applyFeature ? : null}\r\n \r\n\r\n {downloadsPopupDocs ? : null}\r\n {layersMenuVisible ? : null}\r\n {registerFeature ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n};\r\n\r\nexport const getMap = (): Map => mapRef.current;\r\n\r\nexport const updateMapSize = (): void => mapRef.current && mapRef.current.updateSize();\r\n","import * as React from \"react\";\r\nimport { FC, useCallback, useEffect, useRef, useState } from \"react\";\r\nimport Portal from \"../Popups/Portal\";\r\nimport classnames from \"classnames\";\r\nimport { config } from \"../Map/config\";\r\nimport { Feature } from \"ol\";\r\nimport { updateMapSize } from \"../Providers/mapProvider\";\r\nimport { useNomaContext } from \"../Contexts/MapContext\";\r\nimport { useFiltersContext } from \"../Contexts/FiltersContext\";\r\nimport { useCustomViewContext } from \"../Contexts/CustomViewContext\";\r\nimport { IRelatedDocs } from \"../interfaces\";\r\nimport ErrorImageDark from \"../img/error-img-dark.svg\";\r\nimport { ImageLoadingState } from \"../Map/enums\";\r\nimport \"./CustomView.scss\";\r\n\r\ninterface ICustomViewProps {\r\n features: Feature[];\r\n onLocateClick: (feature: Feature) => void;\r\n}\r\n\r\nconst minHeight = 45;\r\n\r\nexport const CustomView: FC = (props) => {\r\n const [height, setHeight] = useState(300);\r\n\r\n const moveEndListener = useRef(null);\r\n\r\n const { isMobile, isIFrame } = useNomaContext();\r\n const { setExtent } = useFiltersContext();\r\n\r\n const {\r\n hidden,\r\n setHidden,\r\n setTabs,\r\n setFieldNames,\r\n setTabData,\r\n setRelatedDocs,\r\n moveEndTime,\r\n setMoveEndTime,\r\n setImages\r\n } = useCustomViewContext();\r\n\r\n useEffect(() => {\r\n setTimeout(() => updateMapSize(), 0);\r\n !hidden && setHidden(false);\r\n }, [hidden]);\r\n\r\n useEffect(() => {\r\n if (props.features) {\r\n setTabs();\r\n setFieldNames();\r\n setExtent();\r\n setImages(props.features);\r\n setTabData(props.features);\r\n setRelatedDocs(props.features);\r\n setTimeout(() => updateMapSize(), 0);\r\n }\r\n }, [props.features]);\r\n\r\n useEffect(() => {\r\n !moveEndListener.current && document.addEventListener(\"moveend\", () => setMoveEndTime(Date.now()));\r\n\r\n // Adjust height on screen orientation change\r\n const landscapeMediaQuery = window.matchMedia(\"(min-width: 481px) and (max-height: 481px)\");\r\n const isLandscape = (landscapeMediaQuery: any) =>\r\n landscapeMediaQuery.matches ? setHeight(document.body.clientHeight * 0.5) : setHeight(300);\r\n isLandscape(landscapeMediaQuery);\r\n landscapeMediaQuery.addListener(isLandscape);\r\n }, []);\r\n\r\n useEffect(() => {\r\n setExtent();\r\n }, [moveEndTime]);\r\n\r\n useEffect(() => {\r\n updateMapSize();\r\n }, [height]);\r\n\r\n return (\r\n
\r\n \r\n {!hidden ? (\r\n
\r\n \r\n \r\n
\r\n {!isMobile && !isIFrame && }\r\n {isMobile || isIFrame ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n ) : null}\r\n
\r\n );\r\n};\r\n\r\n/********************************************************************************/\r\n/******** ShowButton ********/\r\n/********************************************************************************/\r\nconst ShowButton = () => {\r\n const { setHidden } = useCustomViewContext();\r\n\r\n return (\r\n \r\n setHidden(false)}\r\n >\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\n/********************************************************************************/\r\n/******** DragButton ********/\r\n/********************************************************************************/\r\n\r\nconst DragButton = ({ height, setHeight }: { height: number; setHeight: (height: number) => void }) => {\r\n const { isMobile, isIFrame } = useNomaContext();\r\n\r\n const maxHeight =\r\n document.body.clientHeight > 480 ? document.body.clientHeight - 260 : document.body.clientHeight * 0.6;\r\n\r\n const onMouseDown = useCallback(\r\n (e) => {\r\n const startPos = e.clientY;\r\n const onMouseMove = (event: MouseEvent) => {\r\n const newHeight = height - event.clientY + startPos;\r\n setHeight(newHeight >= minHeight ? (newHeight >= maxHeight ? maxHeight : newHeight) : minHeight);\r\n };\r\n const onMouseUp = () => {\r\n document.removeEventListener(\"mousemove\", onMouseMove);\r\n document.removeEventListener(\"mouseup\", onMouseUp);\r\n };\r\n document.addEventListener(\"mousemove\", onMouseMove);\r\n document.addEventListener(\"mouseup\", onMouseUp);\r\n },\r\n [height, maxHeight, minHeight]\r\n );\r\n\r\n const onTouchStart = useCallback(\r\n (e) => {\r\n const startPos = e.touches[0].clientY;\r\n const onTouchMove = (event: TouchEvent) => {\r\n const newHeight = height - event.touches[0].clientY + startPos;\r\n setHeight(newHeight >= minHeight ? (newHeight >= maxHeight ? maxHeight : newHeight) : minHeight);\r\n };\r\n const onTouchUp = () => {\r\n document.removeEventListener(\"touchmove\", onTouchMove);\r\n document.removeEventListener(\"touchend\", onTouchUp);\r\n };\r\n document.addEventListener(\"touchmove\", onTouchMove);\r\n document.addEventListener(\"touchend\", onTouchUp);\r\n },\r\n [height, maxHeight, minHeight]\r\n );\r\n\r\n const button = (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n\r\n return isMobile && !isIFrame ? (\r\n
onTouchStart(e)}>\r\n {button}\r\n
\r\n ) : (\r\n
onMouseDown(e)}>\r\n {button}\r\n
\r\n );\r\n};\r\n\r\n/********************************************************************************/\r\n/******** ViewHeader ********/\r\n/********************************************************************************/\r\nconst ViewHeader = () => {\r\n const { tabNames, setHidden, changeTab } = useCustomViewContext();\r\n const { activeTab, setZoomToSourceFeatures } = useNomaContext();\r\n\r\n const onChangeTab = (tabCode) => {\r\n setZoomToSourceFeatures(1);\r\n changeTab(tabCode);\r\n };\r\n\r\n return (\r\n
\r\n {tabNames && tabNames.length\r\n ? tabNames.map((tab) => (\r\n onChangeTab(tab.code)}\r\n >\r\n {tab.name}\r\n
\r\n ))\r\n : null}\r\n
setHidden(true)}>\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\n/********************************************************************************/\r\n/******** ContentHeader ********/\r\n/********************************************************************************/\r\nconst ContentHeader = () => {\r\n const { tabConfig, fieldNames } = useCustomViewContext();\r\n const { getFieldAlias } = useNomaContext();\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {config.dataView.openButtonFieldName || \"openButtonFieldName\"}\r\n
\r\n
\r\n {config.dataView.imageFieldName || \"imageFieldName\"}\r\n
\r\n {fieldNames.map((fieldName, i) => (\r\n
\r\n {getFieldAlias(fieldName)}\r\n
\r\n ))}\r\n {tabConfig?.showDocs && (\r\n
\r\n {config.dataView.docsButtonFieldName || \"docsButtonFieldName\"}\r\n
\r\n )}\r\n {tabConfig?.showApply && (\r\n
\r\n {config.dataView.applyButtonFieldName || \"applyButtonFieldName\"}\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\n/********************************************************************************/\r\n/******** ContentBody ********/\r\n/********************************************************************************/\r\nconst ContentBody = ({ onLocateClick }: { onLocateClick: (feature: Feature) => void }) => {\r\n const { tabConfig, tabData, fieldNames } = useCustomViewContext();\r\n const {\r\n getFieldValue,\r\n setPreviewFeature,\r\n setDownloadsPopupDocs,\r\n setApplyFeature,\r\n setRegisterFeature,\r\n setSideViewVisible,\r\n setLayersMenuVisible\r\n } = useNomaContext();\r\n\r\n const onClickApply = (feature: Feature) => {\r\n const isAuction = feature.get(\"TYPEOFLEASEGRANTING\") !== 1 && feature.get(\"TYPEOFLEASEGRANTING\") !== 5;\r\n isAuction ? setApplyFeature({ feature, isRight: true }) : setRegisterFeature(feature);\r\n setSideViewVisible(false);\r\n setLayersMenuVisible(false);\r\n };\r\n\r\n return (\r\n
\r\n {tabData && tabData.length\r\n ? tabData.map((feature: Feature, i: number) => (\r\n
\r\n
\r\n setPreviewFeature(feature)}>\r\n
\r\n \r\n {fieldNames.map((fieldName, j) =>\r\n fieldName === \"OBJECTNAME\" ? (\r\n onLocateClick(feature)}\r\n >\r\n {getFieldValue(feature, fieldName)}\r\n
\r\n ) : (\r\n
\r\n {getFieldValue(feature, fieldName)}\r\n
\r\n )\r\n )}\r\n {tabConfig?.showDocs && (\r\n \r\n )}\r\n {tabConfig?.showApply && }\r\n
\r\n ))\r\n : null}\r\n \r\n );\r\n};\r\n/********************************************************************************/\r\n/******** MOBILE ContentBody ********/\r\n/********************************************************************************/\r\nconst MobileContentBody = () => {\r\n const { tabConfig, tabData } = useCustomViewContext();\r\n const { getFieldValue, setIdentifiedFeature } = useNomaContext();\r\n\r\n return (\r\n
\r\n {tabData && tabData.length\r\n ? tabData.map((feature: Feature, i: number) => (\r\n
setIdentifiedFeature(feature)}>\r\n \r\n {tabConfig.mobileUIFields.slice(0, 1).map((fieldName, j) =>\r\n fieldName === \"OBJECTNAME\" ? (\r\n
\r\n {getFieldValue(feature, fieldName)}\r\n
\r\n ) : (\r\n
\r\n {getFieldValue(feature, fieldName)}\r\n
\r\n )\r\n )}\r\n
\r\n {tabConfig.mobileUIFields.slice(1).map((fieldName, k) => (\r\n
\r\n {getFieldValue(feature, fieldName)}\r\n
\r\n ))}\r\n
\r\n
\r\n ))\r\n : null}\r\n
\r\n );\r\n};\r\n\r\n/********************************************************************************/\r\n/******** HoverableImage ********/\r\n/********************************************************************************/\r\nconst HoverableImage = ({ id }: { id: number }) => {\r\n if (!id) {\r\n return;\r\n }\r\n const { images } = useCustomViewContext();\r\n\r\n const imgUrl = images.find((img) => img.objectId === id);\r\n const url = imgUrl\r\n ? imgUrl.url === ImageLoadingState.NoImages\r\n ? ErrorImageDark\r\n : imgUrl.url\r\n : ImageLoadingState.Loading;\r\n\r\n return (\r\n
\r\n {url === ImageLoadingState.Loading ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {url !== ErrorImageDark && url !== ImageLoadingState.Loading && (\r\n
\r\n
\r\n \r\n
\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\n/********************************************************************************/\r\n/******** DocsButton ********/\r\n/********************************************************************************/\r\nexport const DocsButton = ({ feature, onClick }: { feature: Feature; onClick: CallableFunction }) => {\r\n const { relatedDocs } = useCustomViewContext();\r\n\r\n const objectId = feature.get(\"OBJECTID\");\r\n let objectDocs = relatedDocs.find((item: IRelatedDocs) => (item.objectId === objectId ? item.docs : undefined));\r\n\r\n useEffect(() => {\r\n objectDocs = relatedDocs.find((item: IRelatedDocs) => (item.objectId === objectId ? item.docs : undefined));\r\n }, [relatedDocs]);\r\n\r\n return (\r\n
\r\n onClick(objectDocs)}\r\n >\r\n
\r\n );\r\n};\r\n\r\n/********************************************************************************/\r\n/******** ApplyButton ********/\r\n/********************************************************************************/\r\nexport const ApplyButton = ({ feature, onClick }: { feature: Feature; onClick: CallableFunction }) => {\r\n const end = feature.get(\"APPLICATIONENDDATE\");\r\n const endDate = end && new Date(end);\r\n const endDateLastHour = endDate && endDate.setHours(24, 0, 0, 0);\r\n\r\n const canNotApply = endDateLastHour && Date.now() >= endDateLastHour;\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n","import * as React from \"react\";\r\nimport { FC, useCallback, useEffect, useRef, useState } from \"react\";\r\nimport Portal from \"../Popups/Portal\";\r\nimport classnames from \"classnames\";\r\nimport { all, config, IFilterConfig } from \"../Map/config\";\r\nimport { useNomaContext } from \"../Contexts/MapContext\";\r\nimport { useSideViewContext } from \"../Contexts/SideViewContext\";\r\nimport { useFiltersContext } from \"../Contexts/FiltersContext\";\r\nimport { IEsriFieldInfo } from \"../Map/rest\";\r\nimport { CloseButton } from \"../Elements/CloseButton\";\r\nimport { PopupButton } from \"../Elements/PopupButton\";\r\nimport { Checkbox } from \"../Elements/Checkbox\";\r\nimport \"./SideView.scss\";\r\n\r\nexport const SideView: FC = () => {\r\n const { sideViewVisible, setSideViewVisible } = useNomaContext();\r\n\r\n return (\r\n
\r\n \r\n {sideViewVisible ? (\r\n
\r\n
\r\n
\r\n setSideViewVisible(false)}>\r\n
\r\n \r\n
\r\n
\r\n
\r\n ) : null}\r\n
\r\n );\r\n};\r\n\r\n/********************************************************************************/\r\n/******** ShowSideViewButton ********/\r\n/********************************************************************************/\r\nconst ShowSideViewButton = () => {\r\n const { setSideViewVisible } = useNomaContext();\r\n\r\n return (\r\n \r\n setSideViewVisible(true)}\r\n title=\"Sludinājumu meklēšanas kritēriji\"\r\n >\r\n \r\n \r\n \r\n );\r\n};\r\n\r\n/********************************************************************************/\r\n/******** Content ********/\r\n/********************************************************************************/\r\nconst Content = () => (\r\n
\r\n
\r\n {config.sideView.filters.map((filter) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n);\r\n\r\n/********************************************************************************/\r\n/******** Footer ********/\r\n/********************************************************************************/\r\nconst Footer = () => {\r\n const { onClear, onFilter } = useSideViewContext();\r\n const { resultsCount } = useFiltersContext();\r\n const [countText, setCountText] = useState(\"\");\r\n\r\n useEffect(() => {\r\n setCountText(\r\n !resultsCount\r\n ? \"Nav atbilstošu objektu\"\r\n : resultsCount === 1\r\n ? \"Atlasīts 1 objekts\"\r\n : \"Atlasīti \" + resultsCount + \" objekti\"\r\n );\r\n }, [resultsCount]);\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n
\r\n
{countText}
\r\n
\r\n );\r\n};\r\n\r\n/********************************************************************************/\r\n/******** Filter ********/\r\n/********************************************************************************/\r\nconst Filter = ({ filter }: { filter: IFilterConfig }) => {\r\n const { fieldInfos } = useNomaContext();\r\n const { error } = useSideViewContext();\r\n const hasError = error && error.fieldName === filter.field;\r\n\r\n const field = fieldInfos && fieldInfos[\"0\"].find((f) => f.name === filter.field);\r\n\r\n return field ? (\r\n
\r\n
{filter.title}
\r\n
\r\n {field.domain && field.domain.codedValues ? (\r\n config.sideView.filters.find((f) => f.field === field.name && f.multipleSelection) ? (\r\n \r\n ) : (\r\n \r\n
\r\n {hasError &&
{error.message}
}\r\n \r\n );\r\n};\r\n/********************************************************************************/\r\n/******** Select ********/\r\n/********************************************************************************/\r\nconst Select = ({ field }: { field: IEsriFieldInfo }) => {\r\n const { filters, setFilter, options, error } = useSideViewContext();\r\n const [expanded, setExpanded] = useState(false);\r\n\r\n const selectRef = useRef(null);\r\n\r\n useEffect(() => {\r\n expanded && selectRef?.current?.focus();\r\n }, [expanded]);\r\n\r\n const hasError = error && error.fieldName === field.name;\r\n\r\n return (\r\n <>\r\n
\r\n
setExpanded(!expanded)}>\r\n {filters && Object.keys(options).length\r\n ? filters[field.name] && filters[field.name].toString() === all\r\n ? all\r\n : options[field.name].find((o) => {\r\n return o.code && o.code === filters[field.name];\r\n })?.name\r\n : null}\r\n
\r\n
\r\n {expanded ? (\r\n
\r\n \r\n //@ts-ignore\r\n (!e.relatedTarget || e.relatedTarget?.type !== \"checkbox\") && setExpanded(false)\r\n }\r\n >\r\n {options &&\r\n options[field.name] &&\r\n options[field.name].map((cv) => (\r\n
\r\n {\r\n setFilter(field.name, cv.code ? cv.code : all);\r\n setExpanded(false);\r\n }}\r\n >\r\n
\r\n ))}\r\n
\r\n
\r\n ) : null}\r\n {hasError &&
{error.message}
}\r\n \r\n );\r\n};\r\n/********************************************************************************/\r\n/******** MultiSelect ********/\r\n/********************************************************************************/\r\nconst MultiSelect = ({ field }: { field: IEsriFieldInfo }) => {\r\n const { filters, setFilter, options, error } = useSideViewContext();\r\n const [expanded, setExpanded] = useState(false);\r\n\r\n const selectRef = useRef(null);\r\n\r\n useEffect(() => {\r\n expanded && selectRef?.current?.focus();\r\n }, [expanded]);\r\n\r\n const hasError = error && error.fieldName === field.name;\r\n\r\n const onChange = useCallback(\r\n (checked, cv) => {\r\n const filter = filters && filters[field.name];\r\n const newFilter = checked\r\n ? cv.name === all\r\n ? all\r\n : Array.isArray(filter) && !filter.includes(cv.code)\r\n ? [...filter, cv.code]\r\n : filter\r\n : cv.name === all\r\n ? []\r\n : filter === all\r\n ? options[field.name].map((o) => o.code && o.code !== cv.code && o.code).filter((c) => c)\r\n : (filter as Array).filter((code) => code !== cv.code);\r\n\r\n setFilter(field.name, newFilter);\r\n },\r\n [filters, options]\r\n );\r\n\r\n return (\r\n <>\r\n
\r\n
setExpanded(!expanded)}>\r\n {filters && Object.keys(options).length\r\n ? filters[field.name] && filters[field.name].toString() === all\r\n ? all\r\n : Array.isArray(filters[field.name]) && filters[field.name].length > 1\r\n ? \"izvēlētas \" + filters[field.name].length + \" vērtības\"\r\n : options[field.name].find((o) => {\r\n return o.code && o.code === filters[field.name][0];\r\n })?.name\r\n : null}\r\n
\r\n
\r\n {expanded ? (\r\n
\r\n !e.relatedTarget && setExpanded(false)}\r\n >\r\n {options &&\r\n options[field.name] &&\r\n options[field.name].map((cv) => (\r\n
\r\n ).includes(cv.code)\r\n }\r\n onChange={(e) => onChange(e, cv)}\r\n >\r\n
\r\n ))}\r\n
\r\n \r\n ) : null}\r\n {hasError &&
{error.message}
}\r\n \r\n );\r\n};\r\n\r\n/********************************************************************************/\r\n/******** Range ********/\r\n/********************************************************************************/\r\nconst Range = ({ field }: { field: IEsriFieldInfo }) => {\r\n const { filters, setRangeFilter } = useSideViewContext();\r\n const filter = filters && filters[field.name];\r\n\r\n return (\r\n
\r\n setRangeFilter(field.name, Number(e.target.value))}\r\n >\r\n setRangeFilter(field.name, undefined, Number(e.target.value))}\r\n >\r\n
\r\n );\r\n};\r\n\r\n/********************************************************************************/\r\n/******** TextFilter ********/\r\n/********************************************************************************/\r\nconst TextFilter = () => {\r\n const { filters, setFilter } = useSideViewContext();\r\n const filter = filters && filters[config.sideView.textFilter.field];\r\n\r\n return (\r\n
\r\n
{config.sideView.textFilter.title}
\r\n setFilter(config.sideView.textFilter.field, e.target.value)}\r\n >\r\n
\r\n );\r\n};\r\n","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport proj4 from \"proj4\";\r\nimport { register } from \"ol/proj/proj4\";\r\nimport { get as getProjection } from \"ol/proj\";\r\nimport { NomaContextProvider } from \"./Contexts/MapContext\";\r\nimport { FiltersContextProvider } from \"./Contexts/FiltersContext\";\r\nimport { ZemesnomaMap } from \"./Providers/mapProvider\";\r\nimport Favicon from \"../src/img/LVM_GEO_logo_128.jpg\";\r\n\r\nproj4.defs(\r\n \"EPSG:3059\",\r\n \"+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_0=-6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs\"\r\n);\r\nregister(proj4);\r\ngetProjection(\"EPSG:3059\").setExtent([-1349424.723447654, -595003.4846995564, 2424864.0751299444, 1206812.6189326514]);\r\n\r\n// need to import image, or webpack will not copy image file to the dist folder\r\nconst favicon = Favicon;\r\n\r\nexport const renderMap = (): void => {\r\n const target = document.getElementById(\"zemesnoma-map\");\r\n const isIFrame = iniFrame();\r\n const isMobileDevice =\r\n navigator.maxTouchPoints > 0 || navigator.platform === \"iPhone\" || navigator.platform === \"iPad\" || isIFrame;\r\n isMobileDevice && target.classList.add(\"mobile\");\r\n isIFrame && target.classList.add(\"iframe\");\r\n\r\n ReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n target\r\n );\r\n};\r\n\r\nconst iniFrame = () => {\r\n try {\r\n return window.self !== window.top;\r\n } catch (e) {\r\n return true;\r\n }\r\n};\r\n","import \"elm-pep\";\r\nexport * from \"./Providers/mapProvider\";\r\nexport { renderMap } from \"./renderMap\";\r\nexport { fetchAllFeatures } from \"./Map/rest\";\r\n","function countSubstring(string, substring) {\n const pattern = new RegExp(substring, \"g\");\n const match = string.match(pattern);\n return match ? match.length : 0;\n}\n\nmodule.exports = countSubstring;\nmodule.exports.default = countSubstring;\n","const indexOfMatch = require(\"./index-of-match.js\");\nconst indexOfMatchEnd = require(\"./index-of-match-end.js\");\nconst countSubstring = require(\"./count-substring.js\");\n\nfunction findTagByName(xml, tagName, options) {\n const debug = (options && options.debug) || false;\n const nested = !(options && typeof options.nested === false);\n\n const startIndex = (options && options.startIndex) || 0;\n\n if (debug) console.log(\"[xml-utils] starting findTagByName with\", tagName, \" and \", options);\n\n const start = indexOfMatch(xml, `\\<${tagName}[ \\n\\>\\/]`, startIndex);\n if (debug) console.log(\"[xml-utils] start:\", start);\n if (start === -1) return undefined;\n\n const afterStart = xml.slice(start + tagName.length);\n\n let relativeEnd = indexOfMatchEnd(afterStart, \"^[^<]*[ /]>\", 0);\n\n const selfClosing = relativeEnd !== -1 && afterStart[relativeEnd - 1] === \"/\";\n if (debug) console.log(\"[xml-utils] selfClosing:\", selfClosing);\n\n if (selfClosing === false) {\n // check if tag has subtags with the same name\n if (nested) {\n let startIndex = 0;\n let openings = 1;\n let closings = 0;\n while ((relativeEnd = indexOfMatchEnd(afterStart, \"[ /]\" + tagName + \">\", startIndex)) !== -1) {\n const clip = afterStart.substring(startIndex, relativeEnd + 1);\n openings += countSubstring(clip, \"<\" + tagName + \"[ \\n\\t>]\");\n closings += countSubstring(clip, \"\");\n // we can't have more openings than closings\n if (closings >= openings) break;\n startIndex = relativeEnd;\n }\n } else {\n relativeEnd = indexOfMatchEnd(afterStart, \"[ /]\" + tagName + \">\", 0);\n }\n }\n\n const end = start + tagName.length + relativeEnd + 1;\n if (debug) console.log(\"[xml-utils] end:\", end);\n if (end === -1) return undefined;\n\n const outer = xml.slice(start, end);\n // tag is like urn:ogc:def:crs:EPSG::32617\n\n let inner;\n if (selfClosing) {\n inner = null;\n } else {\n inner = outer.slice(outer.indexOf(\">\") + 1, outer.lastIndexOf(\"<\"));\n }\n\n return { inner, outer, start, end };\n}\n\nmodule.exports = findTagByName;\nmodule.exports.default = findTagByName;\n","const findTagByName = require(\"./find-tag-by-name.js\");\n\nfunction findTagsByName(xml, tagName, options) {\n const tags = [];\n const debug = (options && options.debug) || false;\n const nested = options && typeof options.nested === \"boolean\" ? options.nested : true;\n let startIndex = (options && options.startIndex) || 0;\n let tag;\n while ((tag = findTagByName(xml, tagName, { debug, startIndex }))) {\n if (nested) {\n startIndex = tag.start + 1 + tagName.length;\n } else {\n startIndex = tag.end;\n }\n tags.push(tag);\n }\n if (debug) console.log(\"findTagsByName found\", tags.length, \"tags\");\n return tags;\n}\n\nmodule.exports = findTagsByName;\nmodule.exports.default = findTagsByName;\n","function getAttribute(tag, attributeName, options) {\n const debug = (options && options.debug) || false;\n if (debug) console.log(\"[xml-utils] getting \" + attributeName + \" in \" + tag);\n\n const xml = typeof tag === \"object\" ? tag.outer : tag;\n\n // only search for attributes in the opening tag\n const opening = xml.slice(0, xml.indexOf(\">\") + 1);\n\n const quotechars = ['\"', \"'\"];\n for (let i = 0; i < quotechars.length; i++) {\n const char = quotechars[i];\n const pattern = attributeName + \"\\\\=\" + char + \"([^\" + char + \"]*)\" + char;\n if (debug) console.log(\"[xml-utils] pattern:\", pattern);\n\n const re = new RegExp(pattern);\n const match = re.exec(opening);\n if (debug) console.log(\"[xml-utils] match:\", match);\n if (match) return match[1];\n }\n}\n\nmodule.exports = getAttribute;\nmodule.exports.default = getAttribute;\n","function indexOfMatchEnd(xml, pattern, startIndex) {\n const re = new RegExp(pattern);\n const match = re.exec(xml.slice(startIndex));\n if (match) return startIndex + match.index + match[0].length - 1;\n else return -1;\n}\n\nmodule.exports = indexOfMatchEnd;\nmodule.exports.default = indexOfMatchEnd;\n","function indexOfMatch(xml, pattern, startIndex) {\n const re = new RegExp(pattern);\n const match = re.exec(xml.slice(startIndex));\n if (match) return startIndex + match.index;\n else return -1;\n}\n\nmodule.exports = indexOfMatch;\nmodule.exports.default = indexOfMatch;\n","export const fieldTagNames = {\n // TIFF Baseline\n 0x013B: 'Artist',\n 0x0102: 'BitsPerSample',\n 0x0109: 'CellLength',\n 0x0108: 'CellWidth',\n 0x0140: 'ColorMap',\n 0x0103: 'Compression',\n 0x8298: 'Copyright',\n 0x0132: 'DateTime',\n 0x0152: 'ExtraSamples',\n 0x010A: 'FillOrder',\n 0x0121: 'FreeByteCounts',\n 0x0120: 'FreeOffsets',\n 0x0123: 'GrayResponseCurve',\n 0x0122: 'GrayResponseUnit',\n 0x013C: 'HostComputer',\n 0x010E: 'ImageDescription',\n 0x0101: 'ImageLength',\n 0x0100: 'ImageWidth',\n 0x010F: 'Make',\n 0x0119: 'MaxSampleValue',\n 0x0118: 'MinSampleValue',\n 0x0110: 'Model',\n 0x00FE: 'NewSubfileType',\n 0x0112: 'Orientation',\n 0x0106: 'PhotometricInterpretation',\n 0x011C: 'PlanarConfiguration',\n 0x0128: 'ResolutionUnit',\n 0x0116: 'RowsPerStrip',\n 0x0115: 'SamplesPerPixel',\n 0x0131: 'Software',\n 0x0117: 'StripByteCounts',\n 0x0111: 'StripOffsets',\n 0x00FF: 'SubfileType',\n 0x0107: 'Threshholding',\n 0x011A: 'XResolution',\n 0x011B: 'YResolution',\n\n // TIFF Extended\n 0x0146: 'BadFaxLines',\n 0x0147: 'CleanFaxData',\n 0x0157: 'ClipPath',\n 0x0148: 'ConsecutiveBadFaxLines',\n 0x01B1: 'Decode',\n 0x01B2: 'DefaultImageColor',\n 0x010D: 'DocumentName',\n 0x0150: 'DotRange',\n 0x0141: 'HalftoneHints',\n 0x015A: 'Indexed',\n 0x015B: 'JPEGTables',\n 0x011D: 'PageName',\n 0x0129: 'PageNumber',\n 0x013D: 'Predictor',\n 0x013F: 'PrimaryChromaticities',\n 0x0214: 'ReferenceBlackWhite',\n 0x0153: 'SampleFormat',\n 0x0154: 'SMinSampleValue',\n 0x0155: 'SMaxSampleValue',\n 0x022F: 'StripRowCounts',\n 0x014A: 'SubIFDs',\n 0x0124: 'T4Options',\n 0x0125: 'T6Options',\n 0x0145: 'TileByteCounts',\n 0x0143: 'TileLength',\n 0x0144: 'TileOffsets',\n 0x0142: 'TileWidth',\n 0x012D: 'TransferFunction',\n 0x013E: 'WhitePoint',\n 0x0158: 'XClipPathUnits',\n 0x011E: 'XPosition',\n 0x0211: 'YCbCrCoefficients',\n 0x0213: 'YCbCrPositioning',\n 0x0212: 'YCbCrSubSampling',\n 0x0159: 'YClipPathUnits',\n 0x011F: 'YPosition',\n\n // EXIF\n 0x9202: 'ApertureValue',\n 0xA001: 'ColorSpace',\n 0x9004: 'DateTimeDigitized',\n 0x9003: 'DateTimeOriginal',\n 0x8769: 'Exif IFD',\n 0x9000: 'ExifVersion',\n 0x829A: 'ExposureTime',\n 0xA300: 'FileSource',\n 0x9209: 'Flash',\n 0xA000: 'FlashpixVersion',\n 0x829D: 'FNumber',\n 0xA420: 'ImageUniqueID',\n 0x9208: 'LightSource',\n 0x927C: 'MakerNote',\n 0x9201: 'ShutterSpeedValue',\n 0x9286: 'UserComment',\n\n // IPTC\n 0x83BB: 'IPTC',\n\n // ICC\n 0x8773: 'ICC Profile',\n\n // XMP\n 0x02BC: 'XMP',\n\n // GDAL\n 0xA480: 'GDAL_METADATA',\n 0xA481: 'GDAL_NODATA',\n\n // Photoshop\n 0x8649: 'Photoshop',\n\n // GeoTiff\n 0x830E: 'ModelPixelScale',\n 0x8482: 'ModelTiepoint',\n 0x85D8: 'ModelTransformation',\n 0x87AF: 'GeoKeyDirectory',\n 0x87B0: 'GeoDoubleParams',\n 0x87B1: 'GeoAsciiParams',\n\n // LERC\n 0xC5F2: 'LercParameters',\n};\n\nexport const fieldTags = {};\nfor (const key in fieldTagNames) {\n if (fieldTagNames.hasOwnProperty(key)) {\n fieldTags[fieldTagNames[key]] = parseInt(key, 10);\n }\n}\n\nexport const fieldTagTypes = {\n 256: 'SHORT',\n 257: 'SHORT',\n 258: 'SHORT',\n 259: 'SHORT',\n 262: 'SHORT',\n 273: 'LONG',\n 274: 'SHORT',\n 277: 'SHORT',\n 278: 'LONG',\n 279: 'LONG',\n 282: 'RATIONAL',\n 283: 'RATIONAL',\n 284: 'SHORT',\n 286: 'SHORT',\n 287: 'RATIONAL',\n 296: 'SHORT',\n 297: 'SHORT',\n 305: 'ASCII',\n 306: 'ASCII',\n 338: 'SHORT',\n 339: 'SHORT',\n 513: 'LONG',\n 514: 'LONG',\n 1024: 'SHORT',\n 1025: 'SHORT',\n 2048: 'SHORT',\n 2049: 'ASCII',\n 3072: 'SHORT',\n 3073: 'ASCII',\n 33550: 'DOUBLE',\n 33922: 'DOUBLE',\n 34665: 'LONG',\n 34735: 'SHORT',\n 34737: 'ASCII',\n 42113: 'ASCII',\n};\n\nexport const arrayFields = [\n fieldTags.BitsPerSample,\n fieldTags.ExtraSamples,\n fieldTags.SampleFormat,\n fieldTags.StripByteCounts,\n fieldTags.StripOffsets,\n fieldTags.StripRowCounts,\n fieldTags.TileByteCounts,\n fieldTags.TileOffsets,\n fieldTags.SubIFDs,\n];\n\nexport const fieldTypeNames = {\n 0x0001: 'BYTE',\n 0x0002: 'ASCII',\n 0x0003: 'SHORT',\n 0x0004: 'LONG',\n 0x0005: 'RATIONAL',\n 0x0006: 'SBYTE',\n 0x0007: 'UNDEFINED',\n 0x0008: 'SSHORT',\n 0x0009: 'SLONG',\n 0x000A: 'SRATIONAL',\n 0x000B: 'FLOAT',\n 0x000C: 'DOUBLE',\n // IFD offset, suggested by https://owl.phy.queensu.ca/~phil/exiftool/standards.html\n 0x000D: 'IFD',\n // introduced by BigTIFF\n 0x0010: 'LONG8',\n 0x0011: 'SLONG8',\n 0x0012: 'IFD8',\n};\n\nexport const fieldTypes = {};\nfor (const key in fieldTypeNames) {\n if (fieldTypeNames.hasOwnProperty(key)) {\n fieldTypes[fieldTypeNames[key]] = parseInt(key, 10);\n }\n}\n\nexport const photometricInterpretations = {\n WhiteIsZero: 0,\n BlackIsZero: 1,\n RGB: 2,\n Palette: 3,\n TransparencyMask: 4,\n CMYK: 5,\n YCbCr: 6,\n\n CIELab: 8,\n ICCLab: 9,\n};\n\nexport const ExtraSamplesValues = {\n Unspecified: 0,\n Assocalpha: 1,\n Unassalpha: 2,\n};\n\nexport const LercParameters = {\n Version: 0,\n AddCompression: 1,\n};\n\nexport const LercAddCompression = {\n None: 0,\n Deflate: 1,\n};\n\nexport const geoKeyNames = {\n 1024: 'GTModelTypeGeoKey',\n 1025: 'GTRasterTypeGeoKey',\n 1026: 'GTCitationGeoKey',\n 2048: 'GeographicTypeGeoKey',\n 2049: 'GeogCitationGeoKey',\n 2050: 'GeogGeodeticDatumGeoKey',\n 2051: 'GeogPrimeMeridianGeoKey',\n 2052: 'GeogLinearUnitsGeoKey',\n 2053: 'GeogLinearUnitSizeGeoKey',\n 2054: 'GeogAngularUnitsGeoKey',\n 2055: 'GeogAngularUnitSizeGeoKey',\n 2056: 'GeogEllipsoidGeoKey',\n 2057: 'GeogSemiMajorAxisGeoKey',\n 2058: 'GeogSemiMinorAxisGeoKey',\n 2059: 'GeogInvFlatteningGeoKey',\n 2060: 'GeogAzimuthUnitsGeoKey',\n 2061: 'GeogPrimeMeridianLongGeoKey',\n 2062: 'GeogTOWGS84GeoKey',\n 3072: 'ProjectedCSTypeGeoKey',\n 3073: 'PCSCitationGeoKey',\n 3074: 'ProjectionGeoKey',\n 3075: 'ProjCoordTransGeoKey',\n 3076: 'ProjLinearUnitsGeoKey',\n 3077: 'ProjLinearUnitSizeGeoKey',\n 3078: 'ProjStdParallel1GeoKey',\n 3079: 'ProjStdParallel2GeoKey',\n 3080: 'ProjNatOriginLongGeoKey',\n 3081: 'ProjNatOriginLatGeoKey',\n 3082: 'ProjFalseEastingGeoKey',\n 3083: 'ProjFalseNorthingGeoKey',\n 3084: 'ProjFalseOriginLongGeoKey',\n 3085: 'ProjFalseOriginLatGeoKey',\n 3086: 'ProjFalseOriginEastingGeoKey',\n 3087: 'ProjFalseOriginNorthingGeoKey',\n 3088: 'ProjCenterLongGeoKey',\n 3089: 'ProjCenterLatGeoKey',\n 3090: 'ProjCenterEastingGeoKey',\n 3091: 'ProjCenterNorthingGeoKey',\n 3092: 'ProjScaleAtNatOriginGeoKey',\n 3093: 'ProjScaleAtCenterGeoKey',\n 3094: 'ProjAzimuthAngleGeoKey',\n 3095: 'ProjStraightVertPoleLongGeoKey',\n 3096: 'ProjRectifiedGridAngleGeoKey',\n 4096: 'VerticalCSTypeGeoKey',\n 4097: 'VerticalCitationGeoKey',\n 4098: 'VerticalDatumGeoKey',\n 4099: 'VerticalUnitsGeoKey',\n};\n\nexport const geoKeys = {};\nfor (const key in geoKeyNames) {\n if (geoKeyNames.hasOwnProperty(key)) {\n geoKeys[geoKeyNames[key]] = parseInt(key, 10);\n }\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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/Collection\n */\nimport AssertionError from './AssertionError.js';\nimport BaseObject from './Object.js';\nimport CollectionEventType from './CollectionEventType.js';\nimport Event from './events/Event.js';\n/**\n * @enum {string}\n * @private\n */\nvar Property = {\n LENGTH: 'length',\n};\n/**\n * @classdesc\n * Events emitted by {@link module:ol/Collection~Collection} instances are instances of this\n * type.\n */\nvar CollectionEvent = /** @class */ (function (_super) {\n __extends(CollectionEvent, _super);\n /**\n * @param {import(\"./CollectionEventType.js\").default} type Type.\n * @param {*} [opt_element] Element.\n * @param {number} [opt_index] The index of the added or removed element.\n */\n function CollectionEvent(type, opt_element, opt_index) {\n var _this = _super.call(this, type) || this;\n /**\n * The element that is added to or removed from the collection.\n * @type {*}\n * @api\n */\n _this.element = opt_element;\n /**\n * The index of the added or removed element.\n * @type {number}\n * @api\n */\n _this.index = opt_index;\n return _this;\n }\n return CollectionEvent;\n}(Event));\nexport { CollectionEvent };\n/***\n * @template Return\n * @typedef {import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature<'add'|'remove', CollectionEvent, Return> &\n * import(\"./Observable\").CombinedOnSignature} CollectionOnSignature\n */\n/**\n * @typedef {Object} Options\n * @property {boolean} [unique=false] Disallow the same item from being added to\n * the collection twice.\n */\n/**\n * @classdesc\n * An expanded version of standard JS Array, adding convenience methods for\n * manipulation. Add and remove changes to the Collection trigger a Collection\n * event. Note that this does not cover changes to the objects _within_ the\n * Collection; they trigger events on the appropriate object, not on the\n * Collection as a whole.\n *\n * @fires CollectionEvent\n *\n * @template T\n * @api\n */\nvar Collection = /** @class */ (function (_super) {\n __extends(Collection, _super);\n /**\n * @param {Array} [opt_array] Array.\n * @param {Options} [opt_options] Collection options.\n */\n function Collection(opt_array, opt_options) {\n var _this = _super.call(this) || this;\n /***\n * @type {CollectionOnSignature}\n */\n _this.on;\n /***\n * @type {CollectionOnSignature}\n */\n _this.once;\n /***\n * @type {CollectionOnSignature}\n */\n _this.un;\n var options = opt_options || {};\n /**\n * @private\n * @type {boolean}\n */\n _this.unique_ = !!options.unique;\n /**\n * @private\n * @type {!Array}\n */\n _this.array_ = opt_array ? opt_array : [];\n if (_this.unique_) {\n for (var i = 0, ii = _this.array_.length; i < ii; ++i) {\n _this.assertUnique_(_this.array_[i], i);\n }\n }\n _this.updateLength_();\n return _this;\n }\n /**\n * Remove all elements from the collection.\n * @api\n */\n Collection.prototype.clear = function () {\n while (this.getLength() > 0) {\n this.pop();\n }\n };\n /**\n * Add elements to the collection. This pushes each item in the provided array\n * to the end of the collection.\n * @param {!Array} arr Array.\n * @return {Collection} This collection.\n * @api\n */\n Collection.prototype.extend = function (arr) {\n for (var i = 0, ii = arr.length; i < ii; ++i) {\n this.push(arr[i]);\n }\n return this;\n };\n /**\n * Iterate over each element, calling the provided callback.\n * @param {function(T, number, Array): *} f The function to call\n * for every element. This function takes 3 arguments (the element, the\n * index and the array). The return value is ignored.\n * @api\n */\n Collection.prototype.forEach = function (f) {\n var array = this.array_;\n for (var i = 0, ii = array.length; i < ii; ++i) {\n f(array[i], i, array);\n }\n };\n /**\n * Get a reference to the underlying Array object. Warning: if the array\n * is mutated, no events will be dispatched by the collection, and the\n * collection's \"length\" property won't be in sync with the actual length\n * of the array.\n * @return {!Array} Array.\n * @api\n */\n Collection.prototype.getArray = function () {\n return this.array_;\n };\n /**\n * Get the element at the provided index.\n * @param {number} index Index.\n * @return {T} Element.\n * @api\n */\n Collection.prototype.item = function (index) {\n return this.array_[index];\n };\n /**\n * Get the length of this collection.\n * @return {number} The length of the array.\n * @observable\n * @api\n */\n Collection.prototype.getLength = function () {\n return this.get(Property.LENGTH);\n };\n /**\n * Insert an element at the provided index.\n * @param {number} index Index.\n * @param {T} elem Element.\n * @api\n */\n Collection.prototype.insertAt = function (index, elem) {\n if (this.unique_) {\n this.assertUnique_(elem);\n }\n this.array_.splice(index, 0, elem);\n this.updateLength_();\n this.dispatchEvent(new CollectionEvent(CollectionEventType.ADD, elem, index));\n };\n /**\n * Remove the last element of the collection and return it.\n * Return `undefined` if the collection is empty.\n * @return {T|undefined} Element.\n * @api\n */\n Collection.prototype.pop = function () {\n return this.removeAt(this.getLength() - 1);\n };\n /**\n * Insert the provided element at the end of the collection.\n * @param {T} elem Element.\n * @return {number} New length of the collection.\n * @api\n */\n Collection.prototype.push = function (elem) {\n if (this.unique_) {\n this.assertUnique_(elem);\n }\n var n = this.getLength();\n this.insertAt(n, elem);\n return this.getLength();\n };\n /**\n * Remove the first occurrence of an element from the collection.\n * @param {T} elem Element.\n * @return {T|undefined} The removed element or undefined if none found.\n * @api\n */\n Collection.prototype.remove = function (elem) {\n var arr = this.array_;\n for (var i = 0, ii = arr.length; i < ii; ++i) {\n if (arr[i] === elem) {\n return this.removeAt(i);\n }\n }\n return undefined;\n };\n /**\n * Remove the element at the provided index and return it.\n * Return `undefined` if the collection does not contain this index.\n * @param {number} index Index.\n * @return {T|undefined} Value.\n * @api\n */\n Collection.prototype.removeAt = function (index) {\n var prev = this.array_[index];\n this.array_.splice(index, 1);\n this.updateLength_();\n this.dispatchEvent(new CollectionEvent(CollectionEventType.REMOVE, prev, index));\n return prev;\n };\n /**\n * Set the element at the provided index.\n * @param {number} index Index.\n * @param {T} elem Element.\n * @api\n */\n Collection.prototype.setAt = function (index, elem) {\n var n = this.getLength();\n if (index < n) {\n if (this.unique_) {\n this.assertUnique_(elem, index);\n }\n var prev = this.array_[index];\n this.array_[index] = elem;\n this.dispatchEvent(new CollectionEvent(CollectionEventType.REMOVE, prev, index));\n this.dispatchEvent(new CollectionEvent(CollectionEventType.ADD, elem, index));\n }\n else {\n for (var j = n; j < index; ++j) {\n this.insertAt(j, undefined);\n }\n this.insertAt(index, elem);\n }\n };\n /**\n * @private\n */\n Collection.prototype.updateLength_ = function () {\n this.set(Property.LENGTH, this.array_.length);\n };\n /**\n * @private\n * @param {T} elem Element.\n * @param {number} [opt_except] Optional index to ignore.\n */\n Collection.prototype.assertUnique_ = function (elem, opt_except) {\n for (var i = 0, ii = this.array_.length; i < ii; ++i) {\n if (this.array_[i] === elem && i !== opt_except) {\n throw new AssertionError(58);\n }\n }\n };\n return Collection;\n}(BaseObject));\nexport default Collection;\n//# sourceMappingURL=Collection.js.map","/**\n * @module ol/CollectionEventType\n */\n/**\n * @enum {string}\n */\nexport default {\n /**\n * Triggered when an item is added to the collection.\n * @event module:ol/Collection.CollectionEvent#add\n * @api\n */\n ADD: 'add',\n /**\n * Triggered when an item is removed from the collection.\n * @event module:ol/Collection.CollectionEvent#remove\n * @api\n */\n REMOVE: 'remove',\n};\n//# sourceMappingURL=CollectionEventType.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/DataTile\n */\nimport Tile from './Tile.js';\nimport TileState from './TileState.js';\n/**\n * Data that can be used with a DataTile. For increased browser compatibility, use\n * Uint8Array instead of Uint8ClampedArray where possible.\n * @typedef {Uint8Array|Uint8ClampedArray|Float32Array|DataView} Data\n */\n/**\n * @typedef {Object} Options\n * @property {import(\"./tilecoord.js\").TileCoord} tileCoord Tile coordinate.\n * @property {function(): Promise} loader Data loader.\n * @property {number} [transition=250] A duration for tile opacity\n * transitions in milliseconds. A duration of 0 disables the opacity transition.\n * @property {boolean} [interpolate=false] Use interpolated values when resampling. By default,\n * the nearest neighbor is used when resampling.\n * @property {import('./size.js').Size} [size=[256, 256]] Tile size.\n * @api\n */\nvar DataTile = /** @class */ (function (_super) {\n __extends(DataTile, _super);\n /**\n * @param {Options} options Tile options.\n */\n function DataTile(options) {\n var _this = this;\n var state = TileState.IDLE;\n _this = _super.call(this, options.tileCoord, state, {\n transition: options.transition,\n interpolate: options.interpolate,\n }) || this;\n /**\n * @type {function(): Promise}\n * @private\n */\n _this.loader_ = options.loader;\n /**\n * @type {Data}\n * @private\n */\n _this.data_ = null;\n /**\n * @type {Error}\n * @private\n */\n _this.error_ = null;\n /**\n * @type {import('./size.js').Size}\n * @private\n */\n _this.size_ = options.size || [256, 256];\n return _this;\n }\n /**\n * Get the tile size.\n * @return {import('./size.js').Size} Tile size.\n */\n DataTile.prototype.getSize = function () {\n return this.size_;\n };\n /**\n * Get the data for the tile.\n * @return {Data} Tile data.\n * @api\n */\n DataTile.prototype.getData = function () {\n return this.data_;\n };\n /**\n * Get any loading error.\n * @return {Error} Loading error.\n * @api\n */\n DataTile.prototype.getError = function () {\n return this.error_;\n };\n /**\n * Load not yet loaded URI.\n * @api\n */\n DataTile.prototype.load = function () {\n if (this.state !== TileState.IDLE && this.state !== TileState.ERROR) {\n return;\n }\n this.state = TileState.LOADING;\n this.changed();\n var self = this;\n this.loader_()\n .then(function (data) {\n self.data_ = data;\n self.state = TileState.LOADED;\n self.changed();\n })\n .catch(function (error) {\n self.error_ = error;\n self.state = TileState.ERROR;\n self.changed();\n });\n };\n return DataTile;\n}(Tile));\nexport default DataTile;\n//# sourceMappingURL=DataTile.js.map","/**\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","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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/Feature\n */\nimport BaseObject from './Object.js';\nimport EventType from './events/EventType.js';\nimport { assert } from './asserts.js';\nimport { listen, unlistenByKey } from './events.js';\n/**\n * @typedef {typeof Feature|typeof import(\"./render/Feature.js\").default} FeatureClass\n */\n/**\n * @typedef {Feature|import(\"./render/Feature.js\").default} FeatureLike\n */\n/***\n * @template Return\n * @typedef {import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature &\n * import(\"./Observable\").CombinedOnSignature} FeatureOnSignature\n */\n/***\n * @template Geometry\n * @typedef {Object & { geometry?: Geometry }} ObjectWithGeometry\n */\n/**\n * @classdesc\n * A vector object for geographic features with a geometry and other\n * attribute properties, similar to the features in vector file formats like\n * GeoJSON.\n *\n * Features can be styled individually with `setStyle`; otherwise they use the\n * style of their vector layer.\n *\n * Note that attribute properties are set as {@link module:ol/Object~BaseObject} properties on\n * the feature object, so they are observable, and have get/set accessors.\n *\n * Typically, a feature has a single geometry property. You can set the\n * geometry using the `setGeometry` method and get it with `getGeometry`.\n * It is possible to store more than one geometry on a feature using attribute\n * properties. By default, the geometry used for rendering is identified by\n * the property name `geometry`. If you want to use another geometry property\n * for rendering, use the `setGeometryName` method to change the attribute\n * property associated with the geometry for the feature. For example:\n *\n * ```js\n *\n * import Feature from 'ol/Feature';\n * import Polygon from 'ol/geom/Polygon';\n * import Point from 'ol/geom/Point';\n *\n * var feature = new Feature({\n * geometry: new Polygon(polyCoords),\n * labelPoint: new Point(labelCoords),\n * name: 'My Polygon'\n * });\n *\n * // get the polygon geometry\n * var poly = feature.getGeometry();\n *\n * // Render the feature as a point using the coordinates from labelPoint\n * feature.setGeometryName('labelPoint');\n *\n * // get the point geometry\n * var point = feature.getGeometry();\n * ```\n *\n * @api\n * @template {import(\"./geom/Geometry.js\").default} [Geometry=import(\"./geom/Geometry.js\").default]\n */\nvar Feature = /** @class */ (function (_super) {\n __extends(Feature, _super);\n /**\n * @param {Geometry|ObjectWithGeometry} [opt_geometryOrProperties]\n * You may pass a Geometry object directly, or an object literal containing\n * properties. If you pass an object literal, you may include a Geometry\n * associated with a `geometry` key.\n */\n function Feature(opt_geometryOrProperties) {\n var _this = _super.call(this) || this;\n /***\n * @type {FeatureOnSignature}\n */\n _this.on;\n /***\n * @type {FeatureOnSignature}\n */\n _this.once;\n /***\n * @type {FeatureOnSignature}\n */\n _this.un;\n /**\n * @private\n * @type {number|string|undefined}\n */\n _this.id_ = undefined;\n /**\n * @type {string}\n * @private\n */\n _this.geometryName_ = 'geometry';\n /**\n * User provided style.\n * @private\n * @type {import(\"./style/Style.js\").StyleLike}\n */\n _this.style_ = null;\n /**\n * @private\n * @type {import(\"./style/Style.js\").StyleFunction|undefined}\n */\n _this.styleFunction_ = undefined;\n /**\n * @private\n * @type {?import(\"./events.js\").EventsKey}\n */\n _this.geometryChangeKey_ = null;\n _this.addChangeListener(_this.geometryName_, _this.handleGeometryChanged_);\n if (opt_geometryOrProperties) {\n if (typeof (\n /** @type {?} */ (opt_geometryOrProperties).getSimplifiedGeometry) === 'function') {\n var geometry = /** @type {Geometry} */ (opt_geometryOrProperties);\n _this.setGeometry(geometry);\n }\n else {\n /** @type {Object} */\n var properties = opt_geometryOrProperties;\n _this.setProperties(properties);\n }\n }\n return _this;\n }\n /**\n * Clone this feature. If the original feature has a geometry it\n * is also cloned. The feature id is not set in the clone.\n * @return {Feature} The clone.\n * @api\n */\n Feature.prototype.clone = function () {\n var clone = /** @type {Feature} */ (new Feature(this.hasProperties() ? this.getProperties() : null));\n clone.setGeometryName(this.getGeometryName());\n var geometry = this.getGeometry();\n if (geometry) {\n clone.setGeometry(/** @type {Geometry} */ (geometry.clone()));\n }\n var style = this.getStyle();\n if (style) {\n clone.setStyle(style);\n }\n return clone;\n };\n /**\n * Get the feature's default geometry. A feature may have any number of named\n * geometries. The \"default\" geometry (the one that is rendered by default) is\n * set when calling {@link module:ol/Feature~Feature#setGeometry}.\n * @return {Geometry|undefined} The default geometry for the feature.\n * @api\n * @observable\n */\n Feature.prototype.getGeometry = function () {\n return /** @type {Geometry|undefined} */ (this.get(this.geometryName_));\n };\n /**\n * Get the feature identifier. This is a stable identifier for the feature and\n * is either set when reading data from a remote source or set explicitly by\n * calling {@link module:ol/Feature~Feature#setId}.\n * @return {number|string|undefined} Id.\n * @api\n */\n Feature.prototype.getId = function () {\n return this.id_;\n };\n /**\n * Get the name of the feature's default geometry. By default, the default\n * geometry is named `geometry`.\n * @return {string} Get the property name associated with the default geometry\n * for this feature.\n * @api\n */\n Feature.prototype.getGeometryName = function () {\n return this.geometryName_;\n };\n /**\n * Get the feature's style. Will return what was provided to the\n * {@link module:ol/Feature~Feature#setStyle} method.\n * @return {import(\"./style/Style.js\").StyleLike|undefined} The feature style.\n * @api\n */\n Feature.prototype.getStyle = function () {\n return this.style_;\n };\n /**\n * Get the feature's style function.\n * @return {import(\"./style/Style.js\").StyleFunction|undefined} Return a function\n * representing the current style of this feature.\n * @api\n */\n Feature.prototype.getStyleFunction = function () {\n return this.styleFunction_;\n };\n /**\n * @private\n */\n Feature.prototype.handleGeometryChange_ = function () {\n this.changed();\n };\n /**\n * @private\n */\n Feature.prototype.handleGeometryChanged_ = function () {\n if (this.geometryChangeKey_) {\n unlistenByKey(this.geometryChangeKey_);\n this.geometryChangeKey_ = null;\n }\n var geometry = this.getGeometry();\n if (geometry) {\n this.geometryChangeKey_ = listen(geometry, EventType.CHANGE, this.handleGeometryChange_, this);\n }\n this.changed();\n };\n /**\n * Set the default geometry for the feature. This will update the property\n * with the name returned by {@link module:ol/Feature~Feature#getGeometryName}.\n * @param {Geometry|undefined} geometry The new geometry.\n * @api\n * @observable\n */\n Feature.prototype.setGeometry = function (geometry) {\n this.set(this.geometryName_, geometry);\n };\n /**\n * Set the style for the feature to override the layer style. This can be a\n * single style object, an array of styles, or a function that takes a\n * resolution and returns an array of styles. To unset the feature style, call\n * `setStyle()` without arguments or a falsey value.\n * @param {import(\"./style/Style.js\").StyleLike} [opt_style] Style for this feature.\n * @api\n * @fires module:ol/events/Event~BaseEvent#event:change\n */\n Feature.prototype.setStyle = function (opt_style) {\n this.style_ = opt_style;\n this.styleFunction_ = !opt_style\n ? undefined\n : createStyleFunction(opt_style);\n this.changed();\n };\n /**\n * Set the feature id. The feature id is considered stable and may be used when\n * requesting features or comparing identifiers returned from a remote source.\n * The feature id can be used with the\n * {@link module:ol/source/Vector~VectorSource#getFeatureById} method.\n * @param {number|string|undefined} id The feature id.\n * @api\n * @fires module:ol/events/Event~BaseEvent#event:change\n */\n Feature.prototype.setId = function (id) {\n this.id_ = id;\n this.changed();\n };\n /**\n * Set the property name to be used when getting the feature's default geometry.\n * When calling {@link module:ol/Feature~Feature#getGeometry}, the value of the property with\n * this name will be returned.\n * @param {string} name The property name of the default geometry.\n * @api\n */\n Feature.prototype.setGeometryName = function (name) {\n this.removeChangeListener(this.geometryName_, this.handleGeometryChanged_);\n this.geometryName_ = name;\n this.addChangeListener(this.geometryName_, this.handleGeometryChanged_);\n this.handleGeometryChanged_();\n };\n return Feature;\n}(BaseObject));\n/**\n * Convert the provided object into a feature style function. Functions passed\n * through unchanged. Arrays of Style or single style objects wrapped\n * in a new feature style function.\n * @param {!import(\"./style/Style.js\").StyleFunction|!Array|!import(\"./style/Style.js\").default} obj\n * A feature style function, a single style, or an array of styles.\n * @return {import(\"./style/Style.js\").StyleFunction} A style function.\n */\nexport function createStyleFunction(obj) {\n if (typeof obj === 'function') {\n return obj;\n }\n else {\n /**\n * @type {Array}\n */\n var styles_1;\n if (Array.isArray(obj)) {\n styles_1 = obj;\n }\n else {\n assert(typeof ( /** @type {?} */(obj).getZIndex) === 'function', 41); // Expected an `import(\"./style/Style.js\").Style` or an array of `import(\"./style/Style.js\").Style`\n var style = /** @type {import(\"./style/Style.js\").default} */ (obj);\n styles_1 = [style];\n }\n return function () {\n return styles_1;\n };\n }\n}\nexport default Feature;\n//# sourceMappingURL=Feature.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/Image\n */\nimport EventType from './events/EventType.js';\nimport ImageBase from './ImageBase.js';\nimport ImageState from './ImageState.js';\nimport { IMAGE_DECODE } from './has.js';\nimport { getHeight } from './extent.js';\nimport { listenOnce, unlistenByKey } from './events.js';\n/**\n * A function that takes an {@link module:ol/Image~ImageWrapper} for the image and a\n * `{string}` for the src as arguments. It is supposed to make it so the\n * underlying image {@link module:ol/Image~ImageWrapper#getImage} is assigned the\n * content specified by the src. If not specified, the default is\n *\n * function(image, src) {\n * image.getImage().src = src;\n * }\n *\n * Providing a custom `imageLoadFunction` can be useful to load images with\n * post requests or - in general - through XHR requests, where the src of the\n * image element would be set to a data URI when the content is loaded.\n *\n * @typedef {function(ImageWrapper, string): void} LoadFunction\n * @api\n */\nvar ImageWrapper = /** @class */ (function (_super) {\n __extends(ImageWrapper, _super);\n /**\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {number|undefined} resolution Resolution.\n * @param {number} pixelRatio Pixel ratio.\n * @param {string} src Image source URI.\n * @param {?string} crossOrigin Cross origin.\n * @param {LoadFunction} imageLoadFunction Image load function.\n */\n function ImageWrapper(extent, resolution, pixelRatio, src, crossOrigin, imageLoadFunction) {\n var _this = _super.call(this, extent, resolution, pixelRatio, ImageState.IDLE) || this;\n /**\n * @private\n * @type {string}\n */\n _this.src_ = src;\n /**\n * @private\n * @type {HTMLCanvasElement|HTMLImageElement|HTMLVideoElement}\n */\n _this.image_ = new Image();\n if (crossOrigin !== null) {\n _this.image_.crossOrigin = crossOrigin;\n }\n /**\n * @private\n * @type {?function():void}\n */\n _this.unlisten_ = null;\n /**\n * @protected\n * @type {import(\"./ImageState.js\").default}\n */\n _this.state = ImageState.IDLE;\n /**\n * @private\n * @type {LoadFunction}\n */\n _this.imageLoadFunction_ = imageLoadFunction;\n return _this;\n }\n /**\n * @return {HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} Image.\n * @api\n */\n ImageWrapper.prototype.getImage = function () {\n return this.image_;\n };\n /**\n * Tracks loading or read errors.\n *\n * @private\n */\n ImageWrapper.prototype.handleImageError_ = function () {\n this.state = ImageState.ERROR;\n this.unlistenImage_();\n this.changed();\n };\n /**\n * Tracks successful image load.\n *\n * @private\n */\n ImageWrapper.prototype.handleImageLoad_ = function () {\n if (this.resolution === undefined) {\n this.resolution = getHeight(this.extent) / this.image_.height;\n }\n this.state = ImageState.LOADED;\n this.unlistenImage_();\n this.changed();\n };\n /**\n * Load the image or retry if loading previously failed.\n * Loading is taken care of by the tile queue, and calling this method is\n * only needed for preloading or for reloading in case of an error.\n * @api\n */\n ImageWrapper.prototype.load = function () {\n if (this.state == ImageState.IDLE || this.state == ImageState.ERROR) {\n this.state = ImageState.LOADING;\n this.changed();\n this.imageLoadFunction_(this, this.src_);\n this.unlisten_ = listenImage(this.image_, this.handleImageLoad_.bind(this), this.handleImageError_.bind(this));\n }\n };\n /**\n * @param {HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} image Image.\n */\n ImageWrapper.prototype.setImage = function (image) {\n this.image_ = image;\n this.resolution = getHeight(this.extent) / this.image_.height;\n };\n /**\n * Discards event handlers which listen for load completion or errors.\n *\n * @private\n */\n ImageWrapper.prototype.unlistenImage_ = function () {\n if (this.unlisten_) {\n this.unlisten_();\n this.unlisten_ = null;\n }\n };\n return ImageWrapper;\n}(ImageBase));\n/**\n * @param {HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} image Image element.\n * @param {function():any} loadHandler Load callback function.\n * @param {function():any} errorHandler Error callback function.\n * @return {function():void} Callback to stop listening.\n */\nexport function listenImage(image, loadHandler, errorHandler) {\n var img = /** @type {HTMLImageElement} */ (image);\n var listening = true;\n var decoding = false;\n var loaded = false;\n var listenerKeys = [\n listenOnce(img, EventType.LOAD, function () {\n loaded = true;\n if (!decoding) {\n loadHandler();\n }\n }),\n ];\n if (img.src && IMAGE_DECODE) {\n decoding = true;\n img\n .decode()\n .then(function () {\n if (listening) {\n loadHandler();\n }\n })\n .catch(function (error) {\n if (listening) {\n if (loaded) {\n loadHandler();\n }\n else {\n errorHandler();\n }\n }\n });\n }\n else {\n listenerKeys.push(listenOnce(img, EventType.ERROR, errorHandler));\n }\n return function unlisten() {\n listening = false;\n listenerKeys.forEach(unlistenByKey);\n };\n}\nexport default ImageWrapper;\n//# sourceMappingURL=Image.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/ImageBase\n */\nimport EventTarget from './events/Target.js';\nimport EventType from './events/EventType.js';\nimport { abstract } from './util.js';\n/**\n * @abstract\n */\nvar ImageBase = /** @class */ (function (_super) {\n __extends(ImageBase, _super);\n /**\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {number|undefined} resolution Resolution.\n * @param {number} pixelRatio Pixel ratio.\n * @param {import(\"./ImageState.js\").default} state State.\n */\n function ImageBase(extent, resolution, pixelRatio, state) {\n var _this = _super.call(this) || this;\n /**\n * @protected\n * @type {import(\"./extent.js\").Extent}\n */\n _this.extent = extent;\n /**\n * @private\n * @type {number}\n */\n _this.pixelRatio_ = pixelRatio;\n /**\n * @protected\n * @type {number|undefined}\n */\n _this.resolution = resolution;\n /**\n * @protected\n * @type {import(\"./ImageState.js\").default}\n */\n _this.state = state;\n return _this;\n }\n /**\n * @protected\n */\n ImageBase.prototype.changed = function () {\n this.dispatchEvent(EventType.CHANGE);\n };\n /**\n * @return {import(\"./extent.js\").Extent} Extent.\n */\n ImageBase.prototype.getExtent = function () {\n return this.extent;\n };\n /**\n * @abstract\n * @return {HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} Image.\n */\n ImageBase.prototype.getImage = function () {\n return abstract();\n };\n /**\n * @return {number} PixelRatio.\n */\n ImageBase.prototype.getPixelRatio = function () {\n return this.pixelRatio_;\n };\n /**\n * @return {number} Resolution.\n */\n ImageBase.prototype.getResolution = function () {\n return /** @type {number} */ (this.resolution);\n };\n /**\n * @return {import(\"./ImageState.js\").default} State.\n */\n ImageBase.prototype.getState = function () {\n return this.state;\n };\n /**\n * Load not yet loaded URI.\n * @abstract\n */\n ImageBase.prototype.load = function () {\n abstract();\n };\n return ImageBase;\n}(EventTarget));\nexport default ImageBase;\n//# sourceMappingURL=ImageBase.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/ImageCanvas\n */\nimport ImageBase from './ImageBase.js';\nimport ImageState from './ImageState.js';\n/**\n * A function that is called to trigger asynchronous canvas drawing. It is\n * called with a \"done\" callback that should be called when drawing is done.\n * If any error occurs during drawing, the \"done\" callback should be called with\n * that error.\n *\n * @typedef {function(function(Error=): void): void} Loader\n */\nvar ImageCanvas = /** @class */ (function (_super) {\n __extends(ImageCanvas, _super);\n /**\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {number} resolution Resolution.\n * @param {number} pixelRatio Pixel ratio.\n * @param {HTMLCanvasElement} canvas Canvas.\n * @param {Loader} [opt_loader] Optional loader function to\n * support asynchronous canvas drawing.\n */\n function ImageCanvas(extent, resolution, pixelRatio, canvas, opt_loader) {\n var _this = this;\n var state = opt_loader !== undefined ? ImageState.IDLE : ImageState.LOADED;\n _this = _super.call(this, extent, resolution, pixelRatio, state) || this;\n /**\n * Optional canvas loader function.\n * @type {?Loader}\n * @private\n */\n _this.loader_ = opt_loader !== undefined ? opt_loader : null;\n /**\n * @private\n * @type {HTMLCanvasElement}\n */\n _this.canvas_ = canvas;\n /**\n * @private\n * @type {?Error}\n */\n _this.error_ = null;\n return _this;\n }\n /**\n * Get any error associated with asynchronous rendering.\n * @return {?Error} Any error that occurred during rendering.\n */\n ImageCanvas.prototype.getError = function () {\n return this.error_;\n };\n /**\n * Handle async drawing complete.\n * @param {Error} [err] Any error during drawing.\n * @private\n */\n ImageCanvas.prototype.handleLoad_ = function (err) {\n if (err) {\n this.error_ = err;\n this.state = ImageState.ERROR;\n }\n else {\n this.state = ImageState.LOADED;\n }\n this.changed();\n };\n /**\n * Load not yet loaded URI.\n */\n ImageCanvas.prototype.load = function () {\n if (this.state == ImageState.IDLE) {\n this.state = ImageState.LOADING;\n this.changed();\n this.loader_(this.handleLoad_.bind(this));\n }\n };\n /**\n * @return {HTMLCanvasElement} Canvas element.\n */\n ImageCanvas.prototype.getImage = function () {\n return this.canvas_;\n };\n return ImageCanvas;\n}(ImageBase));\nexport default ImageCanvas;\n//# sourceMappingURL=ImageCanvas.js.map","/**\n * @module ol/ImageState\n */\n/**\n * @enum {number}\n */\nexport default {\n IDLE: 0,\n LOADING: 1,\n LOADED: 2,\n ERROR: 3,\n EMPTY: 4,\n};\n//# sourceMappingURL=ImageState.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/ImageTile\n */\nimport Tile from './Tile.js';\nimport TileState from './TileState.js';\nimport { createCanvasContext2D } from './dom.js';\nimport { listenImage } from './Image.js';\nvar ImageTile = /** @class */ (function (_super) {\n __extends(ImageTile, _super);\n /**\n * @param {import(\"./tilecoord.js\").TileCoord} tileCoord Tile coordinate.\n * @param {import(\"./TileState.js\").default} state State.\n * @param {string} src Image source URI.\n * @param {?string} crossOrigin Cross origin.\n * @param {import(\"./Tile.js\").LoadFunction} tileLoadFunction Tile load function.\n * @param {import(\"./Tile.js\").Options} [opt_options] Tile options.\n */\n function ImageTile(tileCoord, state, src, crossOrigin, tileLoadFunction, opt_options) {\n var _this = _super.call(this, tileCoord, state, opt_options) || this;\n /**\n * @private\n * @type {?string}\n */\n _this.crossOrigin_ = crossOrigin;\n /**\n * Image URI\n *\n * @private\n * @type {string}\n */\n _this.src_ = src;\n _this.key = src;\n /**\n * @private\n * @type {HTMLImageElement|HTMLCanvasElement}\n */\n _this.image_ = new Image();\n if (crossOrigin !== null) {\n _this.image_.crossOrigin = crossOrigin;\n }\n /**\n * @private\n * @type {?function():void}\n */\n _this.unlisten_ = null;\n /**\n * @private\n * @type {import(\"./Tile.js\").LoadFunction}\n */\n _this.tileLoadFunction_ = tileLoadFunction;\n return _this;\n }\n /**\n * Get the HTML image element for this tile (may be a Canvas, Image, or Video).\n * @return {HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} Image.\n * @api\n */\n ImageTile.prototype.getImage = function () {\n return this.image_;\n };\n /**\n * Sets an HTML image element for this tile (may be a Canvas or preloaded Image).\n * @param {HTMLCanvasElement|HTMLImageElement} element Element.\n */\n ImageTile.prototype.setImage = function (element) {\n this.image_ = element;\n this.state = TileState.LOADED;\n this.unlistenImage_();\n this.changed();\n };\n /**\n * Tracks loading or read errors.\n *\n * @private\n */\n ImageTile.prototype.handleImageError_ = function () {\n this.state = TileState.ERROR;\n this.unlistenImage_();\n this.image_ = getBlankImage();\n this.changed();\n };\n /**\n * Tracks successful image load.\n *\n * @private\n */\n ImageTile.prototype.handleImageLoad_ = function () {\n var image = /** @type {HTMLImageElement} */ (this.image_);\n if (image.naturalWidth && image.naturalHeight) {\n this.state = TileState.LOADED;\n }\n else {\n this.state = TileState.EMPTY;\n }\n this.unlistenImage_();\n this.changed();\n };\n /**\n * Load not yet loaded URI.\n * @api\n */\n ImageTile.prototype.load = function () {\n if (this.state == TileState.ERROR) {\n this.state = TileState.IDLE;\n this.image_ = new Image();\n if (this.crossOrigin_ !== null) {\n this.image_.crossOrigin = this.crossOrigin_;\n }\n }\n if (this.state == TileState.IDLE) {\n this.state = TileState.LOADING;\n this.changed();\n this.tileLoadFunction_(this, this.src_);\n this.unlisten_ = listenImage(this.image_, this.handleImageLoad_.bind(this), this.handleImageError_.bind(this));\n }\n };\n /**\n * Discards event handlers which listen for load completion or errors.\n *\n * @private\n */\n ImageTile.prototype.unlistenImage_ = function () {\n if (this.unlisten_) {\n this.unlisten_();\n this.unlisten_ = null;\n }\n };\n return ImageTile;\n}(Tile));\n/**\n * Get a 1-pixel blank image.\n * @return {HTMLCanvasElement} Blank image.\n */\nfunction getBlankImage() {\n var ctx = createCanvasContext2D(1, 1);\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return ctx.canvas;\n}\nexport default ImageTile;\n//# sourceMappingURL=ImageTile.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/MapBrowserEvent\n */\nimport MapEvent from './MapEvent.js';\n/**\n * @classdesc\n * Events emitted as map browser events are instances of this type.\n * See {@link module:ol/PluggableMap~PluggableMap} for which events trigger a map browser event.\n * @template {UIEvent} EVENT\n */\nvar MapBrowserEvent = /** @class */ (function (_super) {\n __extends(MapBrowserEvent, _super);\n /**\n * @param {string} type Event type.\n * @param {import(\"./PluggableMap.js\").default} map Map.\n * @param {EVENT} originalEvent Original event.\n * @param {boolean} [opt_dragging] Is the map currently being dragged?\n * @param {import(\"./PluggableMap.js\").FrameState} [opt_frameState] Frame state.\n * @param {Array} [opt_activePointers] Active pointers.\n */\n function MapBrowserEvent(type, map, originalEvent, opt_dragging, opt_frameState, opt_activePointers) {\n var _this = _super.call(this, type, map, opt_frameState) || this;\n /**\n * The original browser event.\n * @const\n * @type {EVENT}\n * @api\n */\n _this.originalEvent = originalEvent;\n /**\n * The map pixel relative to the viewport corresponding to the original browser event.\n * @type {?import(\"./pixel.js\").Pixel}\n */\n _this.pixel_ = null;\n /**\n * The coordinate in the user projection corresponding to the original browser event.\n * @type {?import(\"./coordinate.js\").Coordinate}\n */\n _this.coordinate_ = null;\n /**\n * Indicates if the map is currently being dragged. Only set for\n * `POINTERDRAG` and `POINTERMOVE` events. Default is `false`.\n *\n * @type {boolean}\n * @api\n */\n _this.dragging = opt_dragging !== undefined ? opt_dragging : false;\n /**\n * @type {Array|undefined}\n */\n _this.activePointers = opt_activePointers;\n return _this;\n }\n Object.defineProperty(MapBrowserEvent.prototype, \"pixel\", {\n /**\n * The map pixel relative to the viewport corresponding to the original event.\n * @type {import(\"./pixel.js\").Pixel}\n * @api\n */\n get: function () {\n if (!this.pixel_) {\n this.pixel_ = this.map.getEventPixel(this.originalEvent);\n }\n return this.pixel_;\n },\n set: function (pixel) {\n this.pixel_ = pixel;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MapBrowserEvent.prototype, \"coordinate\", {\n /**\n * The coordinate corresponding to the original browser event. This will be in the user\n * projection if one is set. Otherwise it will be in the view projection.\n * @type {import(\"./coordinate.js\").Coordinate}\n * @api\n */\n get: function () {\n if (!this.coordinate_) {\n this.coordinate_ = this.map.getCoordinateFromPixel(this.pixel);\n }\n return this.coordinate_;\n },\n set: function (coordinate) {\n this.coordinate_ = coordinate;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Prevents the default browser action.\n * See https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault.\n * @api\n */\n MapBrowserEvent.prototype.preventDefault = function () {\n _super.prototype.preventDefault.call(this);\n if ('preventDefault' in this.originalEvent) {\n /** @type {UIEvent} */ (this.originalEvent).preventDefault();\n }\n };\n /**\n * Prevents further propagation of the current event.\n * See https://developer.mozilla.org/en-US/docs/Web/API/event.stopPropagation.\n * @api\n */\n MapBrowserEvent.prototype.stopPropagation = function () {\n _super.prototype.stopPropagation.call(this);\n if ('stopPropagation' in this.originalEvent) {\n /** @type {UIEvent} */ (this.originalEvent).stopPropagation();\n }\n };\n return MapBrowserEvent;\n}(MapEvent));\nexport default MapBrowserEvent;\n//# sourceMappingURL=MapBrowserEvent.js.map","/**\n * @module ol/MapBrowserEventHandler\n */\nvar __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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport EventType from './events/EventType.js';\nimport MapBrowserEvent from './MapBrowserEvent.js';\nimport MapBrowserEventType from './MapBrowserEventType.js';\nimport PointerEventType from './pointer/EventType.js';\nimport Target from './events/Target.js';\nimport { PASSIVE_EVENT_LISTENERS } from './has.js';\nimport { VOID } from './functions.js';\nimport { getValues } from './obj.js';\nimport { listen, unlistenByKey } from './events.js';\nvar MapBrowserEventHandler = /** @class */ (function (_super) {\n __extends(MapBrowserEventHandler, _super);\n /**\n * @param {import(\"./PluggableMap.js\").default} map The map with the viewport to listen to events on.\n * @param {number} [moveTolerance] The minimal distance the pointer must travel to trigger a move.\n */\n function MapBrowserEventHandler(map, moveTolerance) {\n var _this = _super.call(this, map) || this;\n /**\n * This is the element that we will listen to the real events on.\n * @type {import(\"./PluggableMap.js\").default}\n * @private\n */\n _this.map_ = map;\n /**\n * @type {any}\n * @private\n */\n _this.clickTimeoutId_;\n /**\n * Emulate dblclick and singleclick. Will be true when only one pointer is active.\n * @type {boolean}\n */\n _this.emulateClicks_ = false;\n /**\n * @type {boolean}\n * @private\n */\n _this.dragging_ = false;\n /**\n * @type {!Array}\n * @private\n */\n _this.dragListenerKeys_ = [];\n /**\n * @type {number}\n * @private\n */\n _this.moveTolerance_ = moveTolerance === undefined ? 1 : moveTolerance;\n /**\n * The most recent \"down\" type event (or null if none have occurred).\n * Set on pointerdown.\n * @type {PointerEvent|null}\n * @private\n */\n _this.down_ = null;\n var element = _this.map_.getViewport();\n /**\n * @type {Array}\n * @private\n */\n _this.activePointers_ = [];\n /**\n * @type {!Object}\n * @private\n */\n _this.trackedTouches_ = {};\n _this.element_ = element;\n /**\n * @type {?import(\"./events.js\").EventsKey}\n * @private\n */\n _this.pointerdownListenerKey_ = listen(element, PointerEventType.POINTERDOWN, _this.handlePointerDown_, _this);\n /**\n * @type {PointerEvent}\n * @private\n */\n _this.originalPointerMoveEvent_;\n /**\n * @type {?import(\"./events.js\").EventsKey}\n * @private\n */\n _this.relayedListenerKey_ = listen(element, PointerEventType.POINTERMOVE, _this.relayMoveEvent_, _this);\n /**\n * @private\n */\n _this.boundHandleTouchMove_ = _this.handleTouchMove_.bind(_this);\n _this.element_.addEventListener(EventType.TOUCHMOVE, _this.boundHandleTouchMove_, PASSIVE_EVENT_LISTENERS ? { passive: false } : false);\n return _this;\n }\n /**\n * @param {PointerEvent} pointerEvent Pointer\n * event.\n * @private\n */\n MapBrowserEventHandler.prototype.emulateClick_ = function (pointerEvent) {\n var newEvent = new MapBrowserEvent(MapBrowserEventType.CLICK, this.map_, pointerEvent);\n this.dispatchEvent(newEvent);\n if (this.clickTimeoutId_ !== undefined) {\n // double-click\n clearTimeout(this.clickTimeoutId_);\n this.clickTimeoutId_ = undefined;\n newEvent = new MapBrowserEvent(MapBrowserEventType.DBLCLICK, this.map_, pointerEvent);\n this.dispatchEvent(newEvent);\n }\n else {\n // click\n this.clickTimeoutId_ = setTimeout(\n /** @this {MapBrowserEventHandler} */\n function () {\n this.clickTimeoutId_ = undefined;\n var newEvent = new MapBrowserEvent(MapBrowserEventType.SINGLECLICK, this.map_, pointerEvent);\n this.dispatchEvent(newEvent);\n }.bind(this), 250);\n }\n };\n /**\n * Keeps track on how many pointers are currently active.\n *\n * @param {PointerEvent} pointerEvent Pointer\n * event.\n * @private\n */\n MapBrowserEventHandler.prototype.updateActivePointers_ = function (pointerEvent) {\n var event = pointerEvent;\n var id = event.pointerId;\n if (event.type == MapBrowserEventType.POINTERUP ||\n event.type == MapBrowserEventType.POINTERCANCEL) {\n delete this.trackedTouches_[id];\n for (var pointerId in this.trackedTouches_) {\n if (this.trackedTouches_[pointerId].target !== event.target) {\n // Some platforms assign a new pointerId when the target changes.\n // If this happens, delete one tracked pointer. If there is more\n // than one tracked pointer for the old target, it will be cleared\n // by subsequent POINTERUP events from other pointers.\n delete this.trackedTouches_[pointerId];\n break;\n }\n }\n }\n else if (event.type == MapBrowserEventType.POINTERDOWN ||\n event.type == MapBrowserEventType.POINTERMOVE) {\n this.trackedTouches_[id] = event;\n }\n this.activePointers_ = getValues(this.trackedTouches_);\n };\n /**\n * @param {PointerEvent} pointerEvent Pointer\n * event.\n * @private\n */\n MapBrowserEventHandler.prototype.handlePointerUp_ = function (pointerEvent) {\n this.updateActivePointers_(pointerEvent);\n var newEvent = new MapBrowserEvent(MapBrowserEventType.POINTERUP, this.map_, pointerEvent, undefined, undefined, this.activePointers_);\n this.dispatchEvent(newEvent);\n // We emulate click events on left mouse button click, touch contact, and pen\n // contact. isMouseActionButton returns true in these cases (evt.button is set\n // to 0).\n // See http://www.w3.org/TR/pointerevents/#button-states\n // We only fire click, singleclick, and doubleclick if nobody has called\n // event.preventDefault().\n if (this.emulateClicks_ &&\n !newEvent.defaultPrevented &&\n !this.dragging_ &&\n this.isMouseActionButton_(pointerEvent)) {\n this.emulateClick_(this.down_);\n }\n if (this.activePointers_.length === 0) {\n this.dragListenerKeys_.forEach(unlistenByKey);\n this.dragListenerKeys_.length = 0;\n this.dragging_ = false;\n this.down_ = null;\n }\n };\n /**\n * @param {PointerEvent} pointerEvent Pointer\n * event.\n * @return {boolean} If the left mouse button was pressed.\n * @private\n */\n MapBrowserEventHandler.prototype.isMouseActionButton_ = function (pointerEvent) {\n return pointerEvent.button === 0;\n };\n /**\n * @param {PointerEvent} pointerEvent Pointer\n * event.\n * @private\n */\n MapBrowserEventHandler.prototype.handlePointerDown_ = function (pointerEvent) {\n this.emulateClicks_ = this.activePointers_.length === 0;\n this.updateActivePointers_(pointerEvent);\n var newEvent = new MapBrowserEvent(MapBrowserEventType.POINTERDOWN, this.map_, pointerEvent, undefined, undefined, this.activePointers_);\n this.dispatchEvent(newEvent);\n // Store a copy of the down event\n this.down_ = /** @type {PointerEvent} */ ({});\n for (var property in pointerEvent) {\n var value = pointerEvent[property];\n this.down_[property] = typeof value === 'function' ? VOID : value;\n }\n if (this.dragListenerKeys_.length === 0) {\n var doc = this.map_.getOwnerDocument();\n this.dragListenerKeys_.push(listen(doc, MapBrowserEventType.POINTERMOVE, this.handlePointerMove_, this), listen(doc, MapBrowserEventType.POINTERUP, this.handlePointerUp_, this), \n /* Note that the listener for `pointercancel is set up on\n * `pointerEventHandler_` and not `documentPointerEventHandler_` like\n * the `pointerup` and `pointermove` listeners.\n *\n * The reason for this is the following: `TouchSource.vacuumTouches_()`\n * issues `pointercancel` events, when there was no `touchend` for a\n * `touchstart`. Now, let's say a first `touchstart` is registered on\n * `pointerEventHandler_`. The `documentPointerEventHandler_` is set up.\n * But `documentPointerEventHandler_` doesn't know about the first\n * `touchstart`. If there is no `touchend` for the `touchstart`, we can\n * only receive a `touchcancel` from `pointerEventHandler_`, because it is\n * only registered there.\n */\n listen(this.element_, MapBrowserEventType.POINTERCANCEL, this.handlePointerUp_, this));\n if (this.element_.getRootNode && this.element_.getRootNode() !== doc) {\n this.dragListenerKeys_.push(listen(this.element_.getRootNode(), MapBrowserEventType.POINTERUP, this.handlePointerUp_, this));\n }\n }\n };\n /**\n * @param {PointerEvent} pointerEvent Pointer\n * event.\n * @private\n */\n MapBrowserEventHandler.prototype.handlePointerMove_ = function (pointerEvent) {\n // Between pointerdown and pointerup, pointermove events are triggered.\n // To avoid a 'false' touchmove event to be dispatched, we test if the pointer\n // moved a significant distance.\n if (this.isMoving_(pointerEvent)) {\n this.updateActivePointers_(pointerEvent);\n this.dragging_ = true;\n var newEvent = new MapBrowserEvent(MapBrowserEventType.POINTERDRAG, this.map_, pointerEvent, this.dragging_, undefined, this.activePointers_);\n this.dispatchEvent(newEvent);\n }\n };\n /**\n * Wrap and relay a pointermove event.\n * @param {PointerEvent} pointerEvent Pointer\n * event.\n * @private\n */\n MapBrowserEventHandler.prototype.relayMoveEvent_ = function (pointerEvent) {\n this.originalPointerMoveEvent_ = pointerEvent;\n var dragging = !!(this.down_ && this.isMoving_(pointerEvent));\n this.dispatchEvent(new MapBrowserEvent(MapBrowserEventType.POINTERMOVE, this.map_, pointerEvent, dragging));\n };\n /**\n * Flexible handling of a `touch-action: none` css equivalent: because calling\n * `preventDefault()` on a `pointermove` event does not stop native page scrolling\n * and zooming, we also listen for `touchmove` and call `preventDefault()` on it\n * when an interaction (currently `DragPan` handles the event.\n * @param {TouchEvent} event Event.\n * @private\n */\n MapBrowserEventHandler.prototype.handleTouchMove_ = function (event) {\n // Due to https://github.com/mpizenberg/elm-pep/issues/2, `this.originalPointerMoveEvent_`\n // may not be initialized yet when we get here on a platform without native pointer events.\n var originalEvent = this.originalPointerMoveEvent_;\n if ((!originalEvent || originalEvent.defaultPrevented) &&\n (typeof event.cancelable !== 'boolean' || event.cancelable === true)) {\n event.preventDefault();\n }\n };\n /**\n * @param {PointerEvent} pointerEvent Pointer\n * event.\n * @return {boolean} Is moving.\n * @private\n */\n MapBrowserEventHandler.prototype.isMoving_ = function (pointerEvent) {\n return (this.dragging_ ||\n Math.abs(pointerEvent.clientX - this.down_.clientX) >\n this.moveTolerance_ ||\n Math.abs(pointerEvent.clientY - this.down_.clientY) > this.moveTolerance_);\n };\n /**\n * Clean up.\n */\n MapBrowserEventHandler.prototype.disposeInternal = function () {\n if (this.relayedListenerKey_) {\n unlistenByKey(this.relayedListenerKey_);\n this.relayedListenerKey_ = null;\n }\n this.element_.removeEventListener(EventType.TOUCHMOVE, this.boundHandleTouchMove_);\n if (this.pointerdownListenerKey_) {\n unlistenByKey(this.pointerdownListenerKey_);\n this.pointerdownListenerKey_ = null;\n }\n this.dragListenerKeys_.forEach(unlistenByKey);\n this.dragListenerKeys_.length = 0;\n this.element_ = null;\n _super.prototype.disposeInternal.call(this);\n };\n return MapBrowserEventHandler;\n}(Target));\nexport default MapBrowserEventHandler;\n//# sourceMappingURL=MapBrowserEventHandler.js.map","/**\n * @module ol/MapBrowserEventType\n */\nimport EventType from './events/EventType.js';\n/**\n * Constants for event names.\n * @enum {string}\n */\nexport default {\n /**\n * A true single click with no dragging and no double click. Note that this\n * event is delayed by 250 ms to ensure that it is not a double click.\n * @event module:ol/MapBrowserEvent~MapBrowserEvent#singleclick\n * @api\n */\n SINGLECLICK: 'singleclick',\n /**\n * A click with no dragging. A double click will fire two of this.\n * @event module:ol/MapBrowserEvent~MapBrowserEvent#click\n * @api\n */\n CLICK: EventType.CLICK,\n /**\n * A true double click, with no dragging.\n * @event module:ol/MapBrowserEvent~MapBrowserEvent#dblclick\n * @api\n */\n DBLCLICK: EventType.DBLCLICK,\n /**\n * Triggered when a pointer is dragged.\n * @event module:ol/MapBrowserEvent~MapBrowserEvent#pointerdrag\n * @api\n */\n POINTERDRAG: 'pointerdrag',\n /**\n * Triggered when a pointer is moved. Note that on touch devices this is\n * triggered when the map is panned, so is not the same as mousemove.\n * @event module:ol/MapBrowserEvent~MapBrowserEvent#pointermove\n * @api\n */\n POINTERMOVE: 'pointermove',\n POINTERDOWN: 'pointerdown',\n POINTERUP: 'pointerup',\n POINTEROVER: 'pointerover',\n POINTEROUT: 'pointerout',\n POINTERENTER: 'pointerenter',\n POINTERLEAVE: 'pointerleave',\n POINTERCANCEL: 'pointercancel',\n};\n/***\n * @typedef {'singleclick'|'click'|'dblclick'|'pointerdrag'|'pointermove'} Types\n */\n//# sourceMappingURL=MapBrowserEventType.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/MapEvent\n */\nimport Event from './events/Event.js';\n/**\n * @classdesc\n * Events emitted as map events are instances of this type.\n * See {@link module:ol/PluggableMap~PluggableMap} for which events trigger a map event.\n */\nvar MapEvent = /** @class */ (function (_super) {\n __extends(MapEvent, _super);\n /**\n * @param {string} type Event type.\n * @param {import(\"./PluggableMap.js\").default} map Map.\n * @param {?import(\"./PluggableMap.js\").FrameState} [opt_frameState] Frame state.\n */\n function MapEvent(type, map, opt_frameState) {\n var _this = _super.call(this, type) || this;\n /**\n * The map where the event occurred.\n * @type {import(\"./PluggableMap.js\").default}\n * @api\n */\n _this.map = map;\n /**\n * The frame state at the time of the event.\n * @type {?import(\"./PluggableMap.js\").FrameState}\n * @api\n */\n _this.frameState = opt_frameState !== undefined ? opt_frameState : null;\n return _this;\n }\n return MapEvent;\n}(Event));\nexport default MapEvent;\n//# sourceMappingURL=MapEvent.js.map","/**\n * @module ol/MapEventType\n */\n/**\n * @enum {string}\n */\nexport default {\n /**\n * Triggered after a map frame is rendered.\n * @event module:ol/MapEvent~MapEvent#postrender\n * @api\n */\n POSTRENDER: 'postrender',\n /**\n * Triggered when the map starts moving.\n * @event module:ol/MapEvent~MapEvent#movestart\n * @api\n */\n MOVESTART: 'movestart',\n /**\n * Triggered after the map is moved.\n * @event module:ol/MapEvent~MapEvent#moveend\n * @api\n */\n MOVEEND: 'moveend',\n /**\n * Triggered when loading of additional map data (tiles, images, features) starts.\n * @event module:ol/MapEvent~MapEvent#loadstart\n * @api\n */\n LOADSTART: 'loadstart',\n /**\n * Triggered when loading of additional map data has completed.\n * @event module:ol/MapEvent~MapEvent#loadend\n * @api\n */\n LOADEND: 'loadend',\n};\n/***\n * @typedef {'postrender'|'movestart'|'moveend'|'loadstart'|'loadend'} Types\n */\n//# sourceMappingURL=MapEventType.js.map","/**\n * @module ol/MapProperty\n */\n/**\n * @enum {string}\n */\nexport default {\n LAYERGROUP: 'layergroup',\n SIZE: 'size',\n TARGET: 'target',\n VIEW: 'view',\n};\n//# sourceMappingURL=MapProperty.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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 * @template Return\n * @typedef {import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature &\n * import(\"./Observable\").CombinedOnSignature} ObjectOnSignature\n */\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~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 /***\n * @type {ObjectOnSignature}\n */\n _this.on;\n /***\n * @type {ObjectOnSignature}\n */\n _this.once;\n /***\n * @type {ObjectOnSignature}\n */\n _this.un;\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 = \"change:\".concat(key);\n if (this.hasListener(eventType)) {\n this.dispatchEvent(new ObjectEvent(eventType, key, oldValue));\n }\n eventType = ObjectEventType.PROPERTYCHANGE;\n if (this.hasListener(eventType)) {\n this.dispatchEvent(new ObjectEvent(eventType, key, oldValue));\n }\n };\n /**\n * @param {string} key Key name.\n * @param {import(\"./events.js\").Listener} listener Listener.\n */\n BaseObject.prototype.addChangeListener = function (key, listener) {\n this.addEventListener(\"change:\".concat(key), listener);\n };\n /**\n * @param {string} key Key name.\n * @param {import(\"./events.js\").Listener} listener Listener.\n */\n BaseObject.prototype.removeChangeListener = function (key, listener) {\n this.removeEventListener(\"change:\".concat(key), listener);\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));\nexport default BaseObject;\n//# sourceMappingURL=Object.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/**\n * @typedef {'propertychange'} Types\n */\n//# sourceMappingURL=ObjectEventType.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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 * @template {string} Type\n * @template {Event|import(\"./events/Event.js\").default} EventClass\n * @template Return\n * @typedef {(type: Type, listener: (event: EventClass) => ?) => Return} OnSignature\n */\n/***\n * @template {string} Type\n * @template Return\n * @typedef {(type: Type[], listener: (event: Event|import(\"./events/Event\").default) => ?) => Return extends void ? void : Return[]} CombinedOnSignature\n */\n/**\n * @typedef {'change'|'error'} EventTypes\n */\n/***\n * @template Return\n * @typedef {OnSignature & CombinedOnSignature} ObservableOnSignature\n */\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 _this.on =\n /** @type {ObservableOnSignature} */ (_this.onInternal);\n _this.once =\n /** @type {ObservableOnSignature} */ (_this.onceInternal);\n _this.un = /** @type {ObservableOnSignature} */ (_this.unInternal);\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 * @param {string|Array} type Type.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener Listener.\n * @return {import(\"./events.js\").EventsKey|Array} Event key.\n * @protected\n */\n Observable.prototype.onInternal = 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 * @param {string|Array} type Type.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener Listener.\n * @return {import(\"./events.js\").EventsKey|Array} Event key.\n * @protected\n */\n Observable.prototype.onceInternal = 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 Type.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener Listener.\n * @protected\n */\n Observable.prototype.unInternal = 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 * Listen for a certain type of event.\n * @function\n * @param {string|Array} type The event type or array of event types.\n * @param {function((Event|import(\"./events/Event\").default)): ?} 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 */\nObservable.prototype.on;\n/**\n * Listen once for a certain type of event.\n * @function\n * @param {string|Array} type The event type or array of event types.\n * @param {function((Event|import(\"./events/Event\").default)): ?} 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 */\nObservable.prototype.once;\n/**\n * Unlisten for a certain type of event.\n * @function\n * @param {string|Array} type The event type or array of event types.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener The listener function.\n * @api\n */\nObservable.prototype.un;\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","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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/Overlay\n */\nimport BaseObject from './Object.js';\nimport MapEventType from './MapEventType.js';\nimport { CLASS_SELECTABLE } from './css.js';\nimport { containsExtent } from './extent.js';\nimport { listen, unlistenByKey } from './events.js';\nimport { outerHeight, outerWidth, removeChildren, removeNode } from './dom.js';\n/**\n * @typedef {'bottom-left' | 'bottom-center' | 'bottom-right' | 'center-left' | 'center-center' | 'center-right' | 'top-left' | 'top-center' | 'top-right'} Positioning\n * The overlay position: `'bottom-left'`, `'bottom-center'`, `'bottom-right'`,\n * `'center-left'`, `'center-center'`, `'center-right'`, `'top-left'`,\n * `'top-center'`, or `'top-right'`.\n */\n/**\n * @typedef {Object} Options\n * @property {number|string} [id] Set the overlay id. The overlay id can be used\n * with the {@link module:ol/Map~Map#getOverlayById} method.\n * @property {HTMLElement} [element] The overlay element.\n * @property {Array} [offset=[0, 0]] Offsets in pixels used when positioning\n * the overlay. The first element in the\n * array is the horizontal offset. A positive value shifts the overlay right.\n * The second element in the array is the vertical offset. A positive value\n * shifts the overlay down.\n * @property {import(\"./coordinate.js\").Coordinate} [position] The overlay position\n * in map projection.\n * @property {Positioning} [positioning='top-left'] Defines how\n * the overlay is actually positioned with respect to its `position` property.\n * Possible values are `'bottom-left'`, `'bottom-center'`, `'bottom-right'`,\n * `'center-left'`, `'center-center'`, `'center-right'`, `'top-left'`,\n * `'top-center'`, and `'top-right'`.\n * @property {boolean} [stopEvent=true] Whether event propagation to the map\n * viewport should be stopped. If `true` the overlay is placed in the same\n * container as that of the controls (CSS class name\n * `ol-overlaycontainer-stopevent`); if `false` it is placed in the container\n * with CSS class name specified by the `className` property.\n * @property {boolean} [insertFirst=true] Whether the overlay is inserted first\n * in the overlay container, or appended. If the overlay is placed in the same\n * container as that of the controls (see the `stopEvent` option) you will\n * probably set `insertFirst` to `true` so the overlay is displayed below the\n * controls.\n * @property {PanIntoViewOptions|boolean} [autoPan=false] Pan the map when calling\n * `setPosition`, so that the overlay is entirely visible in the current viewport?\n * If `true` (deprecated), then `autoPanAnimation` and `autoPanMargin` will be\n * used to determine the panning parameters; if an object is supplied then other\n * parameters are ignored.\n * @property {PanOptions} [autoPanAnimation] The animation options used to pan\n * the overlay into view. This animation is only used when `autoPan` is enabled.\n * A `duration` and `easing` may be provided to customize the animation.\n * Deprecated and ignored if `autoPan` is supplied as an object.\n * @property {number} [autoPanMargin=20] The margin (in pixels) between the\n * overlay and the borders of the map when autopanning. Deprecated and ignored\n * if `autoPan` is supplied as an object.\n * @property {PanIntoViewOptions} [autoPanOptions] The options to use for the\n * autoPan. This is only used when `autoPan` is enabled and has preference over\n * the individual `autoPanMargin` and `autoPanOptions`.\n * @property {string} [className='ol-overlay-container ol-selectable'] CSS class\n * name.\n */\n/**\n * @typedef {Object} PanOptions\n * @property {number} [duration=1000] The duration of the animation in\n * milliseconds.\n * @property {function(number):number} [easing] The easing function to use. Can\n * be one from {@link module:ol/easing} or a custom function.\n * Default is {@link module:ol/easing.inAndOut}.\n */\n/**\n * @typedef {Object} PanIntoViewOptions\n * @property {PanOptions} [animation={}] The animation parameters for the pan\n * @property {number} [margin=20] The margin (in pixels) between the\n * overlay and the borders of the map when panning into view.\n */\n/**\n * @enum {string}\n * @protected\n */\nvar Property = {\n ELEMENT: 'element',\n MAP: 'map',\n OFFSET: 'offset',\n POSITION: 'position',\n POSITIONING: 'positioning',\n};\n/**\n * @typedef {import(\"./ObjectEventType\").Types|'change:element'|'change:map'|'change:offset'|'change:position'|\n * 'change:positioning'} OverlayObjectEventTypes\n */\n/***\n * @template Return\n * @typedef {import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature &\n * import(\"./Observable\").CombinedOnSignature} OverlayOnSignature\n */\n/**\n * @classdesc\n * An element to be displayed over the map and attached to a single map\n * location. Like {@link module:ol/control/Control~Control}, Overlays are\n * visible widgets. Unlike Controls, they are not in a fixed position on the\n * screen, but are tied to a geographical coordinate, so panning the map will\n * move an Overlay but not a Control.\n *\n * Example:\n *\n * import Overlay from 'ol/Overlay';\n *\n * var popup = new Overlay({\n * element: document.getElementById('popup')\n * });\n * popup.setPosition(coordinate);\n * map.addOverlay(popup);\n *\n * @api\n */\nvar Overlay = /** @class */ (function (_super) {\n __extends(Overlay, _super);\n /**\n * @param {Options} options Overlay options.\n */\n function Overlay(options) {\n var _this = _super.call(this) || this;\n /***\n * @type {OverlayOnSignature}\n */\n _this.on;\n /***\n * @type {OverlayOnSignature}\n */\n _this.once;\n /***\n * @type {OverlayOnSignature}\n */\n _this.un;\n /**\n * @protected\n * @type {Options}\n */\n _this.options = options;\n /**\n * @protected\n * @type {number|string|undefined}\n */\n _this.id = options.id;\n /**\n * @protected\n * @type {boolean}\n */\n _this.insertFirst =\n options.insertFirst !== undefined ? options.insertFirst : true;\n /**\n * @protected\n * @type {boolean}\n */\n _this.stopEvent = options.stopEvent !== undefined ? options.stopEvent : true;\n /**\n * @protected\n * @type {HTMLElement}\n */\n _this.element = document.createElement('div');\n _this.element.className =\n options.className !== undefined\n ? options.className\n : 'ol-overlay-container ' + CLASS_SELECTABLE;\n _this.element.style.position = 'absolute';\n _this.element.style.pointerEvents = 'auto';\n var autoPan = options.autoPan;\n if (autoPan && 'object' !== typeof autoPan) {\n autoPan = {\n animation: options.autoPanAnimation,\n margin: options.autoPanMargin,\n };\n }\n /**\n * @protected\n * @type {PanIntoViewOptions|false}\n */\n _this.autoPan = /** @type {PanIntoViewOptions} */ (autoPan) || false;\n /**\n * @protected\n * @type {{transform_: string,\n * visible: boolean}}\n */\n _this.rendered = {\n transform_: '',\n visible: true,\n };\n /**\n * @protected\n * @type {?import(\"./events.js\").EventsKey}\n */\n _this.mapPostrenderListenerKey = null;\n _this.addChangeListener(Property.ELEMENT, _this.handleElementChanged);\n _this.addChangeListener(Property.MAP, _this.handleMapChanged);\n _this.addChangeListener(Property.OFFSET, _this.handleOffsetChanged);\n _this.addChangeListener(Property.POSITION, _this.handlePositionChanged);\n _this.addChangeListener(Property.POSITIONING, _this.handlePositioningChanged);\n if (options.element !== undefined) {\n _this.setElement(options.element);\n }\n _this.setOffset(options.offset !== undefined ? options.offset : [0, 0]);\n _this.setPositioning(options.positioning || 'top-left');\n if (options.position !== undefined) {\n _this.setPosition(options.position);\n }\n return _this;\n }\n /**\n * Get the DOM element of this overlay.\n * @return {HTMLElement|undefined} The Element containing the overlay.\n * @observable\n * @api\n */\n Overlay.prototype.getElement = function () {\n return /** @type {HTMLElement|undefined} */ (this.get(Property.ELEMENT));\n };\n /**\n * Get the overlay identifier which is set on constructor.\n * @return {number|string|undefined} Id.\n * @api\n */\n Overlay.prototype.getId = function () {\n return this.id;\n };\n /**\n * Get the map associated with this overlay.\n * @return {import(\"./PluggableMap.js\").default|null} The map that the\n * overlay is part of.\n * @observable\n * @api\n */\n Overlay.prototype.getMap = function () {\n return /** @type {import(\"./PluggableMap.js\").default|null} */ (this.get(Property.MAP) || null);\n };\n /**\n * Get the offset of this overlay.\n * @return {Array} The offset.\n * @observable\n * @api\n */\n Overlay.prototype.getOffset = function () {\n return /** @type {Array} */ (this.get(Property.OFFSET));\n };\n /**\n * Get the current position of this overlay.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} The spatial point that the overlay is\n * anchored at.\n * @observable\n * @api\n */\n Overlay.prototype.getPosition = function () {\n return /** @type {import(\"./coordinate.js\").Coordinate|undefined} */ (this.get(Property.POSITION));\n };\n /**\n * Get the current positioning of this overlay.\n * @return {Positioning} How the overlay is positioned\n * relative to its point on the map.\n * @observable\n * @api\n */\n Overlay.prototype.getPositioning = function () {\n return /** @type {Positioning} */ (this.get(Property.POSITIONING));\n };\n /**\n * @protected\n */\n Overlay.prototype.handleElementChanged = function () {\n removeChildren(this.element);\n var element = this.getElement();\n if (element) {\n this.element.appendChild(element);\n }\n };\n /**\n * @protected\n */\n Overlay.prototype.handleMapChanged = function () {\n if (this.mapPostrenderListenerKey) {\n removeNode(this.element);\n unlistenByKey(this.mapPostrenderListenerKey);\n this.mapPostrenderListenerKey = null;\n }\n var map = this.getMap();\n if (map) {\n this.mapPostrenderListenerKey = listen(map, MapEventType.POSTRENDER, this.render, this);\n this.updatePixelPosition();\n var container = this.stopEvent\n ? map.getOverlayContainerStopEvent()\n : map.getOverlayContainer();\n if (this.insertFirst) {\n container.insertBefore(this.element, container.childNodes[0] || null);\n }\n else {\n container.appendChild(this.element);\n }\n this.performAutoPan();\n }\n };\n /**\n * @protected\n */\n Overlay.prototype.render = function () {\n this.updatePixelPosition();\n };\n /**\n * @protected\n */\n Overlay.prototype.handleOffsetChanged = function () {\n this.updatePixelPosition();\n };\n /**\n * @protected\n */\n Overlay.prototype.handlePositionChanged = function () {\n this.updatePixelPosition();\n this.performAutoPan();\n };\n /**\n * @protected\n */\n Overlay.prototype.handlePositioningChanged = function () {\n this.updatePixelPosition();\n };\n /**\n * Set the DOM element to be associated with this overlay.\n * @param {HTMLElement|undefined} element The Element containing the overlay.\n * @observable\n * @api\n */\n Overlay.prototype.setElement = function (element) {\n this.set(Property.ELEMENT, element);\n };\n /**\n * Set the map to be associated with this overlay.\n * @param {import(\"./PluggableMap.js\").default|null} map The map that the\n * overlay is part of. Pass `null` to just remove the overlay from the current map.\n * @observable\n * @api\n */\n Overlay.prototype.setMap = function (map) {\n this.set(Property.MAP, map);\n };\n /**\n * Set the offset for this overlay.\n * @param {Array} offset Offset.\n * @observable\n * @api\n */\n Overlay.prototype.setOffset = function (offset) {\n this.set(Property.OFFSET, offset);\n };\n /**\n * Set the position for this overlay. If the position is `undefined` the\n * overlay is hidden.\n * @param {import(\"./coordinate.js\").Coordinate|undefined} position The spatial point that the overlay\n * is anchored at.\n * @observable\n * @api\n */\n Overlay.prototype.setPosition = function (position) {\n this.set(Property.POSITION, position);\n };\n /**\n * Pan the map so that the overlay is entirely visible in the current viewport\n * (if necessary) using the configured autoPan parameters\n * @protected\n */\n Overlay.prototype.performAutoPan = function () {\n if (this.autoPan) {\n this.panIntoView(this.autoPan);\n }\n };\n /**\n * Pan the map so that the overlay is entirely visible in the current viewport\n * (if necessary).\n * @param {PanIntoViewOptions} [opt_panIntoViewOptions] Options for the pan action\n * @api\n */\n Overlay.prototype.panIntoView = function (opt_panIntoViewOptions) {\n var map = this.getMap();\n if (!map || !map.getTargetElement() || !this.get(Property.POSITION)) {\n return;\n }\n var mapRect = this.getRect(map.getTargetElement(), map.getSize());\n var element = this.getElement();\n var overlayRect = this.getRect(element, [\n outerWidth(element),\n outerHeight(element),\n ]);\n var panIntoViewOptions = opt_panIntoViewOptions || {};\n var myMargin = panIntoViewOptions.margin === undefined ? 20 : panIntoViewOptions.margin;\n if (!containsExtent(mapRect, overlayRect)) {\n // the overlay is not completely inside the viewport, so pan the map\n var offsetLeft = overlayRect[0] - mapRect[0];\n var offsetRight = mapRect[2] - overlayRect[2];\n var offsetTop = overlayRect[1] - mapRect[1];\n var offsetBottom = mapRect[3] - overlayRect[3];\n var delta = [0, 0];\n if (offsetLeft < 0) {\n // move map to the left\n delta[0] = offsetLeft - myMargin;\n }\n else if (offsetRight < 0) {\n // move map to the right\n delta[0] = Math.abs(offsetRight) + myMargin;\n }\n if (offsetTop < 0) {\n // move map up\n delta[1] = offsetTop - myMargin;\n }\n else if (offsetBottom < 0) {\n // move map down\n delta[1] = Math.abs(offsetBottom) + myMargin;\n }\n if (delta[0] !== 0 || delta[1] !== 0) {\n var center = /** @type {import(\"./coordinate.js\").Coordinate} */ (map.getView().getCenterInternal());\n var centerPx = map.getPixelFromCoordinateInternal(center);\n if (!centerPx) {\n return;\n }\n var newCenterPx = [centerPx[0] + delta[0], centerPx[1] + delta[1]];\n var panOptions = panIntoViewOptions.animation || {};\n map.getView().animateInternal({\n center: map.getCoordinateFromPixelInternal(newCenterPx),\n duration: panOptions.duration,\n easing: panOptions.easing,\n });\n }\n }\n };\n /**\n * Get the extent of an element relative to the document\n * @param {HTMLElement} element The element.\n * @param {import(\"./size.js\").Size} size The size of the element.\n * @return {import(\"./extent.js\").Extent} The extent.\n * @protected\n */\n Overlay.prototype.getRect = function (element, size) {\n var box = element.getBoundingClientRect();\n var offsetX = box.left + window.pageXOffset;\n var offsetY = box.top + window.pageYOffset;\n return [offsetX, offsetY, offsetX + size[0], offsetY + size[1]];\n };\n /**\n * Set the positioning for this overlay.\n * @param {Positioning} positioning how the overlay is\n * positioned relative to its point on the map.\n * @observable\n * @api\n */\n Overlay.prototype.setPositioning = function (positioning) {\n this.set(Property.POSITIONING, positioning);\n };\n /**\n * Modify the visibility of the element.\n * @param {boolean} visible Element visibility.\n * @protected\n */\n Overlay.prototype.setVisible = function (visible) {\n if (this.rendered.visible !== visible) {\n this.element.style.display = visible ? '' : 'none';\n this.rendered.visible = visible;\n }\n };\n /**\n * Update pixel position.\n * @protected\n */\n Overlay.prototype.updatePixelPosition = function () {\n var map = this.getMap();\n var position = this.getPosition();\n if (!map || !map.isRendered() || !position) {\n this.setVisible(false);\n return;\n }\n var pixel = map.getPixelFromCoordinate(position);\n var mapSize = map.getSize();\n this.updateRenderedPosition(pixel, mapSize);\n };\n /**\n * @param {import(\"./pixel.js\").Pixel} pixel The pixel location.\n * @param {import(\"./size.js\").Size|undefined} mapSize The map size.\n * @protected\n */\n Overlay.prototype.updateRenderedPosition = function (pixel, mapSize) {\n var style = this.element.style;\n var offset = this.getOffset();\n var positioning = this.getPositioning();\n this.setVisible(true);\n var x = Math.round(pixel[0] + offset[0]) + 'px';\n var y = Math.round(pixel[1] + offset[1]) + 'px';\n var posX = '0%';\n var posY = '0%';\n if (positioning == 'bottom-right' ||\n positioning == 'center-right' ||\n positioning == 'top-right') {\n posX = '-100%';\n }\n else if (positioning == 'bottom-center' ||\n positioning == 'center-center' ||\n positioning == 'top-center') {\n posX = '-50%';\n }\n if (positioning == 'bottom-left' ||\n positioning == 'bottom-center' ||\n positioning == 'bottom-right') {\n posY = '-100%';\n }\n else if (positioning == 'center-left' ||\n positioning == 'center-center' ||\n positioning == 'center-right') {\n posY = '-50%';\n }\n var transform = \"translate(\".concat(posX, \", \").concat(posY, \") translate(\").concat(x, \", \").concat(y, \")\");\n if (this.rendered.transform_ != transform) {\n this.rendered.transform_ = transform;\n style.transform = transform;\n // @ts-ignore IE9\n style.msTransform = transform;\n }\n };\n /**\n * returns the options this Overlay has been created with\n * @return {Options} overlay options\n */\n Overlay.prototype.getOptions = function () {\n return this.options;\n };\n return Overlay;\n}(BaseObject));\nexport default Overlay;\n//# sourceMappingURL=Overlay.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/PluggableMap\n */\nimport BaseObject from './Object.js';\nimport Collection from './Collection.js';\nimport CollectionEventType from './CollectionEventType.js';\nimport EventType from './events/EventType.js';\nimport Layer from './layer/Layer.js';\nimport LayerGroup, { GroupEvent } from './layer/Group.js';\nimport MapBrowserEvent from './MapBrowserEvent.js';\nimport MapBrowserEventHandler from './MapBrowserEventHandler.js';\nimport MapBrowserEventType from './MapBrowserEventType.js';\nimport MapEvent from './MapEvent.js';\nimport MapEventType from './MapEventType.js';\nimport MapProperty from './MapProperty.js';\nimport ObjectEventType from './ObjectEventType.js';\nimport PointerEventType from './pointer/EventType.js';\nimport RenderEventType from './render/EventType.js';\nimport TileQueue, { getTilePriority } from './TileQueue.js';\nimport View from './View.js';\nimport ViewHint from './ViewHint.js';\nimport { DEVICE_PIXEL_RATIO, PASSIVE_EVENT_LISTENERS } from './has.js';\nimport { TRUE } from './functions.js';\nimport { apply as applyTransform, create as createTransform, } from './transform.js';\nimport { assert } from './asserts.js';\nimport { clone, createOrUpdateEmpty, equals, getForViewAndSize, isEmpty, } from './extent.js';\nimport { fromUserCoordinate, toUserCoordinate } from './proj.js';\nimport { getUid } from './util.js';\nimport { hasArea } from './size.js';\nimport { listen, unlistenByKey } from './events.js';\nimport { removeNode } from './dom.js';\n/**\n * State of the current frame. Only `pixelRatio`, `time` and `viewState` should\n * be used in applications.\n * @typedef {Object} FrameState\n * @property {number} pixelRatio The pixel ratio of the frame.\n * @property {number} time The time when rendering of the frame was requested.\n * @property {import(\"./View.js\").State} viewState The state of the current view.\n * @property {boolean} animate Animate.\n * @property {import(\"./transform.js\").Transform} coordinateToPixelTransform CoordinateToPixelTransform.\n * @property {import(\"rbush\").default} declutterTree DeclutterTree.\n * @property {null|import(\"./extent.js\").Extent} extent Extent.\n * @property {import(\"./extent.js\").Extent} [nextExtent] Next extent during an animation series.\n * @property {number} index Index.\n * @property {Array} layerStatesArray LayerStatesArray.\n * @property {number} layerIndex LayerIndex.\n * @property {import(\"./transform.js\").Transform} pixelToCoordinateTransform PixelToCoordinateTransform.\n * @property {Array} postRenderFunctions PostRenderFunctions.\n * @property {import(\"./size.js\").Size} size Size.\n * @property {TileQueue} tileQueue TileQueue.\n * @property {!Object>} usedTiles UsedTiles.\n * @property {Array} viewHints ViewHints.\n * @property {!Object>} wantedTiles WantedTiles.\n * @property {string} mapId The id of the map.\n * @property {Object} renderTargets Identifiers of previously rendered elements.\n */\n/**\n * @typedef {function(PluggableMap, ?FrameState): any} PostRenderFunction\n */\n/**\n * @typedef {Object} AtPixelOptions\n * @property {undefined|function(import(\"./layer/Layer.js\").default): boolean} [layerFilter] Layer filter\n * function. The filter function will receive one argument, the\n * {@link module:ol/layer/Layer~Layer layer-candidate} and it should return a boolean value.\n * Only layers which are visible and for which this function returns `true`\n * will be tested for features. By default, all visible layers will be tested.\n * @property {number} [hitTolerance=0] Hit-detection tolerance in css pixels. Pixels\n * inside the radius around the given position will be checked for features.\n * @property {boolean} [checkWrapped=true] Check-Wrapped Will check for for wrapped geometries inside the range of\n * +/- 1 world width. Works only if a projection is used that can be wrapped.\n */\n/**\n * @typedef {Object} MapOptionsInternal\n * @property {Collection} [controls] Controls.\n * @property {Collection} [interactions] Interactions.\n * @property {HTMLElement|Document} keyboardEventTarget KeyboardEventTarget.\n * @property {Collection} overlays Overlays.\n * @property {Object} values Values.\n */\n/**\n * @typedef {import(\"./ObjectEventType\").Types|'change:layergroup'|'change:size'|'change:target'|'change:view'} MapObjectEventTypes\n */\n/***\n * @template Return\n * @typedef {import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature &\n * import(\"./Observable\").CombinedOnSignature} PluggableMapOnSignature\n */\n/**\n * Object literal with config options for the map.\n * @typedef {Object} MapOptions\n * @property {Collection|Array} [controls]\n * Controls initially added to the map. If not specified,\n * {@link module:ol/control.defaults} is used.\n * @property {number} [pixelRatio=window.devicePixelRatio] The ratio between\n * physical pixels and device-independent pixels (dips) on the device.\n * @property {Collection|Array} [interactions]\n * Interactions that are initially added to the map. If not specified,\n * {@link module:ol/interaction.defaults} is used.\n * @property {HTMLElement|Document|string} [keyboardEventTarget] The element to\n * listen to keyboard events on. This determines when the `KeyboardPan` and\n * `KeyboardZoom` interactions trigger. For example, if this option is set to\n * `document` the keyboard interactions will always trigger. If this option is\n * not specified, the element the library listens to keyboard events on is the\n * map target (i.e. the user-provided div for the map). If this is not\n * `document`, the target element needs to be focused for key events to be\n * emitted, requiring that the target element has a `tabindex` attribute.\n * @property {Array|Collection|LayerGroup} [layers]\n * Layers. If this is not defined, a map with no layers will be rendered. Note\n * that layers are rendered in the order supplied, so if you want, for example,\n * a vector layer to appear on top of a tile layer, it must come after the tile\n * layer.\n * @property {number} [maxTilesLoading=16] Maximum number tiles to load\n * simultaneously.\n * @property {number} [moveTolerance=1] The minimum distance in pixels the\n * cursor must move to be detected as a map move event instead of a click.\n * Increasing this value can make it easier to click on the map.\n * @property {Collection|Array} [overlays]\n * Overlays initially added to the map. By default, no overlays are added.\n * @property {HTMLElement|string} [target] The container for the map, either the\n * element itself or the `id` of the element. If not specified at construction\n * time, {@link module:ol/Map~Map#setTarget} must be called for the map to be\n * rendered. If passed by element, the container can be in a secondary document.\n * @property {View|Promise} [view] The map's view. No layer sources will be\n * fetched unless this is specified at construction time or through\n * {@link module:ol/Map~Map#setView}.\n */\n/**\n * @param {import(\"./layer/Base.js\").default} layer Layer.\n */\nfunction removeLayerMapProperty(layer) {\n if (layer instanceof Layer) {\n layer.setMapInternal(null);\n return;\n }\n if (layer instanceof LayerGroup) {\n layer.getLayers().forEach(removeLayerMapProperty);\n }\n}\n/**\n * @param {import(\"./layer/Base.js\").default} layer Layer.\n * @param {PluggableMap} map Map.\n */\nfunction setLayerMapProperty(layer, map) {\n if (layer instanceof Layer) {\n layer.setMapInternal(map);\n return;\n }\n if (layer instanceof LayerGroup) {\n var layers = layer.getLayers().getArray();\n for (var i = 0, ii = layers.length; i < ii; ++i) {\n setLayerMapProperty(layers[i], map);\n }\n }\n}\n/**\n * @fires import(\"./MapBrowserEvent.js\").MapBrowserEvent\n * @fires import(\"./MapEvent.js\").MapEvent\n * @fires import(\"./render/Event.js\").default#precompose\n * @fires import(\"./render/Event.js\").default#postcompose\n * @fires import(\"./render/Event.js\").default#rendercomplete\n * @api\n */\nvar PluggableMap = /** @class */ (function (_super) {\n __extends(PluggableMap, _super);\n /**\n * @param {MapOptions} options Map options.\n */\n function PluggableMap(options) {\n var _this = _super.call(this) || this;\n /***\n * @type {PluggableMapOnSignature}\n */\n _this.on;\n /***\n * @type {PluggableMapOnSignature}\n */\n _this.once;\n /***\n * @type {PluggableMapOnSignature}\n */\n _this.un;\n var optionsInternal = createOptionsInternal(options);\n /**\n * @private\n * @type {boolean|undefined}\n */\n _this.renderComplete_;\n /**\n * @private\n * @type {boolean}\n */\n _this.loaded_ = true;\n /** @private */\n _this.boundHandleBrowserEvent_ = _this.handleBrowserEvent.bind(_this);\n /**\n * @type {number}\n * @private\n */\n _this.maxTilesLoading_ =\n options.maxTilesLoading !== undefined ? options.maxTilesLoading : 16;\n /**\n * @private\n * @type {number}\n */\n _this.pixelRatio_ =\n options.pixelRatio !== undefined\n ? options.pixelRatio\n : DEVICE_PIXEL_RATIO;\n /**\n * @private\n * @type {*}\n */\n _this.postRenderTimeoutHandle_;\n /**\n * @private\n * @type {number|undefined}\n */\n _this.animationDelayKey_;\n /**\n * @private\n */\n _this.animationDelay_ = /** @this {PluggableMap} */ function () {\n this.animationDelayKey_ = undefined;\n this.renderFrame_(Date.now());\n }.bind(_this);\n /**\n * @private\n * @type {import(\"./transform.js\").Transform}\n */\n _this.coordinateToPixelTransform_ = createTransform();\n /**\n * @private\n * @type {import(\"./transform.js\").Transform}\n */\n _this.pixelToCoordinateTransform_ = createTransform();\n /**\n * @private\n * @type {number}\n */\n _this.frameIndex_ = 0;\n /**\n * @private\n * @type {?FrameState}\n */\n _this.frameState_ = null;\n /**\n * The extent at the previous 'moveend' event.\n * @private\n * @type {import(\"./extent.js\").Extent}\n */\n _this.previousExtent_ = null;\n /**\n * @private\n * @type {?import(\"./events.js\").EventsKey}\n */\n _this.viewPropertyListenerKey_ = null;\n /**\n * @private\n * @type {?import(\"./events.js\").EventsKey}\n */\n _this.viewChangeListenerKey_ = null;\n /**\n * @private\n * @type {?Array}\n */\n _this.layerGroupPropertyListenerKeys_ = null;\n /**\n * @private\n * @type {!HTMLElement}\n */\n _this.viewport_ = document.createElement('div');\n _this.viewport_.className =\n 'ol-viewport' + ('ontouchstart' in window ? ' ol-touch' : '');\n _this.viewport_.style.position = 'relative';\n _this.viewport_.style.overflow = 'hidden';\n _this.viewport_.style.width = '100%';\n _this.viewport_.style.height = '100%';\n /**\n * @private\n * @type {!HTMLElement}\n */\n _this.overlayContainer_ = document.createElement('div');\n _this.overlayContainer_.style.position = 'absolute';\n _this.overlayContainer_.style.zIndex = '0';\n _this.overlayContainer_.style.width = '100%';\n _this.overlayContainer_.style.height = '100%';\n _this.overlayContainer_.style.pointerEvents = 'none';\n _this.overlayContainer_.className = 'ol-overlaycontainer';\n _this.viewport_.appendChild(_this.overlayContainer_);\n /**\n * @private\n * @type {!HTMLElement}\n */\n _this.overlayContainerStopEvent_ = document.createElement('div');\n _this.overlayContainerStopEvent_.style.position = 'absolute';\n _this.overlayContainerStopEvent_.style.zIndex = '0';\n _this.overlayContainerStopEvent_.style.width = '100%';\n _this.overlayContainerStopEvent_.style.height = '100%';\n _this.overlayContainerStopEvent_.style.pointerEvents = 'none';\n _this.overlayContainerStopEvent_.className = 'ol-overlaycontainer-stopevent';\n _this.viewport_.appendChild(_this.overlayContainerStopEvent_);\n /**\n * @private\n * @type {MapBrowserEventHandler}\n */\n _this.mapBrowserEventHandler_ = null;\n /**\n * @private\n * @type {number}\n */\n _this.moveTolerance_ = options.moveTolerance;\n /**\n * @private\n * @type {HTMLElement|Document}\n */\n _this.keyboardEventTarget_ = optionsInternal.keyboardEventTarget;\n /**\n * @private\n * @type {?Array}\n */\n _this.targetChangeHandlerKeys_ = null;\n /**\n * @type {Collection}\n * @protected\n */\n _this.controls = optionsInternal.controls || new Collection();\n /**\n * @type {Collection}\n * @protected\n */\n _this.interactions = optionsInternal.interactions || new Collection();\n /**\n * @type {Collection}\n * @private\n */\n _this.overlays_ = optionsInternal.overlays;\n /**\n * A lookup of overlays by id.\n * @private\n * @type {Object}\n */\n _this.overlayIdIndex_ = {};\n /**\n * @type {import(\"./renderer/Map.js\").default|null}\n * @private\n */\n _this.renderer_ = null;\n /**\n * @private\n * @type {!Array}\n */\n _this.postRenderFunctions_ = [];\n /**\n * @private\n * @type {TileQueue}\n */\n _this.tileQueue_ = new TileQueue(_this.getTilePriority.bind(_this), _this.handleTileChange_.bind(_this));\n _this.addChangeListener(MapProperty.LAYERGROUP, _this.handleLayerGroupChanged_);\n _this.addChangeListener(MapProperty.VIEW, _this.handleViewChanged_);\n _this.addChangeListener(MapProperty.SIZE, _this.handleSizeChanged_);\n _this.addChangeListener(MapProperty.TARGET, _this.handleTargetChanged_);\n // setProperties will trigger the rendering of the map if the map\n // is \"defined\" already.\n _this.setProperties(optionsInternal.values);\n var map = _this;\n if (options.view && !(options.view instanceof View)) {\n options.view.then(function (viewOptions) {\n map.setView(new View(viewOptions));\n });\n }\n _this.controls.addEventListener(CollectionEventType.ADD, \n /**\n * @param {import(\"./Collection.js\").CollectionEvent} event CollectionEvent.\n */\n function (event) {\n event.element.setMap(this);\n }.bind(_this));\n _this.controls.addEventListener(CollectionEventType.REMOVE, \n /**\n * @param {import(\"./Collection.js\").CollectionEvent} event CollectionEvent.\n */\n function (event) {\n event.element.setMap(null);\n }.bind(_this));\n _this.interactions.addEventListener(CollectionEventType.ADD, \n /**\n * @param {import(\"./Collection.js\").CollectionEvent} event CollectionEvent.\n */\n function (event) {\n event.element.setMap(this);\n }.bind(_this));\n _this.interactions.addEventListener(CollectionEventType.REMOVE, \n /**\n * @param {import(\"./Collection.js\").CollectionEvent} event CollectionEvent.\n */\n function (event) {\n event.element.setMap(null);\n }.bind(_this));\n _this.overlays_.addEventListener(CollectionEventType.ADD, \n /**\n * @param {import(\"./Collection.js\").CollectionEvent} event CollectionEvent.\n */\n function (event) {\n this.addOverlayInternal_(\n /** @type {import(\"./Overlay.js\").default} */ (event.element));\n }.bind(_this));\n _this.overlays_.addEventListener(CollectionEventType.REMOVE, \n /**\n * @param {import(\"./Collection.js\").CollectionEvent} event CollectionEvent.\n */\n function (event) {\n var overlay = /** @type {import(\"./Overlay.js\").default} */ (event.element);\n var id = overlay.getId();\n if (id !== undefined) {\n delete this.overlayIdIndex_[id.toString()];\n }\n event.element.setMap(null);\n }.bind(_this));\n _this.controls.forEach(\n /**\n * @param {import(\"./control/Control.js\").default} control Control.\n * @this {PluggableMap}\n */\n function (control) {\n control.setMap(this);\n }.bind(_this));\n _this.interactions.forEach(\n /**\n * @param {import(\"./interaction/Interaction.js\").default} interaction Interaction.\n * @this {PluggableMap}\n */\n function (interaction) {\n interaction.setMap(this);\n }.bind(_this));\n _this.overlays_.forEach(_this.addOverlayInternal_.bind(_this));\n return _this;\n }\n /**\n * @abstract\n * @return {import(\"./renderer/Map.js\").default} The map renderer\n */\n PluggableMap.prototype.createRenderer = function () {\n throw new Error('Use a map type that has a createRenderer method');\n };\n /**\n * Add the given control to the map.\n * @param {import(\"./control/Control.js\").default} control Control.\n * @api\n */\n PluggableMap.prototype.addControl = function (control) {\n this.getControls().push(control);\n };\n /**\n * Add the given interaction to the map. If you want to add an interaction\n * at another point of the collection use `getInteractions()` and the methods\n * available on {@link module:ol/Collection~Collection}. This can be used to\n * stop the event propagation from the handleEvent function. The interactions\n * get to handle the events in the reverse order of this collection.\n * @param {import(\"./interaction/Interaction.js\").default} interaction Interaction to add.\n * @api\n */\n PluggableMap.prototype.addInteraction = function (interaction) {\n this.getInteractions().push(interaction);\n };\n /**\n * Adds the given layer to the top of this map. If you want to add a layer\n * elsewhere in the stack, use `getLayers()` and the methods available on\n * {@link module:ol/Collection~Collection}.\n * @param {import(\"./layer/Base.js\").default} layer Layer.\n * @api\n */\n PluggableMap.prototype.addLayer = function (layer) {\n var layers = this.getLayerGroup().getLayers();\n layers.push(layer);\n };\n /**\n * @param {import(\"./layer/Group.js\").GroupEvent} event The layer add event.\n * @private\n */\n PluggableMap.prototype.handleLayerAdd_ = function (event) {\n setLayerMapProperty(event.layer, this);\n };\n /**\n * Add the given overlay to the map.\n * @param {import(\"./Overlay.js\").default} overlay Overlay.\n * @api\n */\n PluggableMap.prototype.addOverlay = function (overlay) {\n this.getOverlays().push(overlay);\n };\n /**\n * This deals with map's overlay collection changes.\n * @param {import(\"./Overlay.js\").default} overlay Overlay.\n * @private\n */\n PluggableMap.prototype.addOverlayInternal_ = function (overlay) {\n var id = overlay.getId();\n if (id !== undefined) {\n this.overlayIdIndex_[id.toString()] = overlay;\n }\n overlay.setMap(this);\n };\n /**\n *\n * Clean up.\n */\n PluggableMap.prototype.disposeInternal = function () {\n this.controls.clear();\n this.interactions.clear();\n this.overlays_.clear();\n this.setTarget(null);\n _super.prototype.disposeInternal.call(this);\n };\n /**\n * Detect features that intersect a pixel on the viewport, and execute a\n * callback with each intersecting feature. Layers included in the detection can\n * be configured through the `layerFilter` option in `opt_options`.\n * @param {import(\"./pixel.js\").Pixel} pixel Pixel.\n * @param {function(import(\"./Feature.js\").FeatureLike, import(\"./layer/Layer.js\").default, import(\"./geom/SimpleGeometry.js\").default): T} callback Feature callback. The callback will be\n * called with two arguments. The first argument is one\n * {@link module:ol/Feature~Feature feature} or\n * {@link module:ol/render/Feature~RenderFeature render feature} at the pixel, the second is\n * the {@link module:ol/layer/Layer~Layer layer} of the feature and will be null for\n * unmanaged layers. To stop detection, callback functions can return a\n * truthy value.\n * @param {AtPixelOptions} [opt_options] Optional options.\n * @return {T|undefined} Callback result, i.e. the return value of last\n * callback execution, or the first truthy callback return value.\n * @template T\n * @api\n */\n PluggableMap.prototype.forEachFeatureAtPixel = function (pixel, callback, opt_options) {\n if (!this.frameState_ || !this.renderer_) {\n return;\n }\n var coordinate = this.getCoordinateFromPixelInternal(pixel);\n opt_options = opt_options !== undefined ? opt_options : {};\n var hitTolerance = opt_options.hitTolerance !== undefined ? opt_options.hitTolerance : 0;\n var layerFilter = opt_options.layerFilter !== undefined ? opt_options.layerFilter : TRUE;\n var checkWrapped = opt_options.checkWrapped !== false;\n return this.renderer_.forEachFeatureAtCoordinate(coordinate, this.frameState_, hitTolerance, checkWrapped, callback, null, layerFilter, null);\n };\n /**\n * Get all features that intersect a pixel on the viewport.\n * @param {import(\"./pixel.js\").Pixel} pixel Pixel.\n * @param {AtPixelOptions} [opt_options] Optional options.\n * @return {Array} The detected features or\n * an empty array if none were found.\n * @api\n */\n PluggableMap.prototype.getFeaturesAtPixel = function (pixel, opt_options) {\n var features = [];\n this.forEachFeatureAtPixel(pixel, function (feature) {\n features.push(feature);\n }, opt_options);\n return features;\n };\n /**\n * Get all layers from all layer groups.\n * @return {Array} Layers.\n * @api\n */\n PluggableMap.prototype.getAllLayers = function () {\n var layers = [];\n function addLayersFrom(layerGroup) {\n layerGroup.forEach(function (layer) {\n if (layer instanceof LayerGroup) {\n addLayersFrom(layer.getLayers());\n }\n else {\n layers.push(layer);\n }\n });\n }\n addLayersFrom(this.getLayers());\n return layers;\n };\n /**\n * Please the `layer.getData()` method for {@link module:ol/layer/Tile~TileLayer#getData tile layers} or\n * {@link module:ol/layer/Image~ImageLayer#getData image layers} instead of using this method.\n *\n * Detect layers that have a color value at a pixel on the viewport, and\n * execute a callback with each matching layer. Layers included in the\n * detection can be configured through `opt_layerFilter`.\n *\n * Note: In maps with more than one layer, this method will typically return pixel data\n * representing the composed image of all layers visible at the given pixel – because layers\n * will generally share the same rendering context. To force layers to render separately, and\n * to get pixel data representing only one layer at a time, you can assign each layer a unique\n * `className` in its constructor.\n *\n * @param {import(\"./pixel.js\").Pixel} pixel Pixel.\n * @param {function(this: S, import(\"./layer/Layer.js\").default, (Uint8ClampedArray|Uint8Array)): T} callback\n * Layer callback. This callback will receive two arguments: first is the\n * {@link module:ol/layer/Layer~Layer layer}, second argument is an array representing\n * [R, G, B, A] pixel values (0 - 255) and will be `null` for layer types\n * that do not currently support this argument. To stop detection, callback\n * functions can return a truthy value.\n * @param {AtPixelOptions} [opt_options] Configuration options.\n * @return {T|undefined} Callback result, i.e. the return value of last\n * callback execution, or the first truthy callback return value.\n * @template S,T\n * @api\n * @deprecated\n */\n PluggableMap.prototype.forEachLayerAtPixel = function (pixel, callback, opt_options) {\n if (!this.frameState_ || !this.renderer_) {\n return;\n }\n var options = opt_options || {};\n var hitTolerance = options.hitTolerance !== undefined ? options.hitTolerance : 0;\n var layerFilter = options.layerFilter || TRUE;\n return this.renderer_.forEachLayerAtPixel(pixel, this.frameState_, hitTolerance, callback, layerFilter);\n };\n /**\n * Detect if features intersect a pixel on the viewport. Layers included in the\n * detection can be configured through `opt_layerFilter`.\n * @param {import(\"./pixel.js\").Pixel} pixel Pixel.\n * @param {AtPixelOptions} [opt_options] Optional options.\n * @return {boolean} Is there a feature at the given pixel?\n * @api\n */\n PluggableMap.prototype.hasFeatureAtPixel = function (pixel, opt_options) {\n if (!this.frameState_ || !this.renderer_) {\n return false;\n }\n var coordinate = this.getCoordinateFromPixelInternal(pixel);\n opt_options = opt_options !== undefined ? opt_options : {};\n var layerFilter = opt_options.layerFilter !== undefined ? opt_options.layerFilter : TRUE;\n var hitTolerance = opt_options.hitTolerance !== undefined ? opt_options.hitTolerance : 0;\n var checkWrapped = opt_options.checkWrapped !== false;\n return this.renderer_.hasFeatureAtCoordinate(coordinate, this.frameState_, hitTolerance, checkWrapped, layerFilter, null);\n };\n /**\n * Returns the coordinate in user projection for a browser event.\n * @param {MouseEvent} event Event.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate.\n * @api\n */\n PluggableMap.prototype.getEventCoordinate = function (event) {\n return this.getCoordinateFromPixel(this.getEventPixel(event));\n };\n /**\n * Returns the coordinate in view projection for a browser event.\n * @param {MouseEvent} event Event.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate.\n */\n PluggableMap.prototype.getEventCoordinateInternal = function (event) {\n return this.getCoordinateFromPixelInternal(this.getEventPixel(event));\n };\n /**\n * Returns the map pixel position for a browser event relative to the viewport.\n * @param {UIEvent} event Event.\n * @return {import(\"./pixel.js\").Pixel} Pixel.\n * @api\n */\n PluggableMap.prototype.getEventPixel = function (event) {\n var viewportPosition = this.viewport_.getBoundingClientRect();\n var eventPosition = \n //FIXME Are we really calling this with a TouchEvent anywhere?\n 'changedTouches' in event\n ? /** @type {TouchEvent} */ (event).changedTouches[0]\n : /** @type {MouseEvent} */ (event);\n return [\n eventPosition.clientX - viewportPosition.left,\n eventPosition.clientY - viewportPosition.top,\n ];\n };\n /**\n * Get the target in which this map is rendered.\n * Note that this returns what is entered as an option or in setTarget:\n * if that was an element, it returns an element; if a string, it returns that.\n * @return {HTMLElement|string|undefined} The Element or id of the Element that the\n * map is rendered in.\n * @observable\n * @api\n */\n PluggableMap.prototype.getTarget = function () {\n return /** @type {HTMLElement|string|undefined} */ (this.get(MapProperty.TARGET));\n };\n /**\n * Get the DOM element into which this map is rendered. In contrast to\n * `getTarget` this method always return an `Element`, or `null` if the\n * map has no target.\n * @return {HTMLElement} The element that the map is rendered in.\n * @api\n */\n PluggableMap.prototype.getTargetElement = function () {\n var target = this.getTarget();\n if (target !== undefined) {\n return typeof target === 'string'\n ? document.getElementById(target)\n : target;\n }\n else {\n return null;\n }\n };\n /**\n * Get the coordinate for a given pixel. This returns a coordinate in the\n * user projection.\n * @param {import(\"./pixel.js\").Pixel} pixel Pixel position in the map viewport.\n * @return {import(\"./coordinate.js\").Coordinate} The coordinate for the pixel position.\n * @api\n */\n PluggableMap.prototype.getCoordinateFromPixel = function (pixel) {\n return toUserCoordinate(this.getCoordinateFromPixelInternal(pixel), this.getView().getProjection());\n };\n /**\n * Get the coordinate for a given pixel. This returns a coordinate in the\n * map view projection.\n * @param {import(\"./pixel.js\").Pixel} pixel Pixel position in the map viewport.\n * @return {import(\"./coordinate.js\").Coordinate} The coordinate for the pixel position.\n */\n PluggableMap.prototype.getCoordinateFromPixelInternal = function (pixel) {\n var frameState = this.frameState_;\n if (!frameState) {\n return null;\n }\n else {\n return applyTransform(frameState.pixelToCoordinateTransform, pixel.slice());\n }\n };\n /**\n * Get the map controls. Modifying this collection changes the controls\n * associated with the map.\n * @return {Collection} Controls.\n * @api\n */\n PluggableMap.prototype.getControls = function () {\n return this.controls;\n };\n /**\n * Get the map overlays. Modifying this collection changes the overlays\n * associated with the map.\n * @return {Collection} Overlays.\n * @api\n */\n PluggableMap.prototype.getOverlays = function () {\n return this.overlays_;\n };\n /**\n * Get an overlay by its identifier (the value returned by overlay.getId()).\n * Note that the index treats string and numeric identifiers as the same. So\n * `map.getOverlayById(2)` will return an overlay with id `'2'` or `2`.\n * @param {string|number} id Overlay identifier.\n * @return {import(\"./Overlay.js\").default} Overlay.\n * @api\n */\n PluggableMap.prototype.getOverlayById = function (id) {\n var overlay = this.overlayIdIndex_[id.toString()];\n return overlay !== undefined ? overlay : null;\n };\n /**\n * Get the map interactions. Modifying this collection changes the interactions\n * associated with the map.\n *\n * Interactions are used for e.g. pan, zoom and rotate.\n * @return {Collection} Interactions.\n * @api\n */\n PluggableMap.prototype.getInteractions = function () {\n return this.interactions;\n };\n /**\n * Get the layergroup associated with this map.\n * @return {LayerGroup} A layer group containing the layers in this map.\n * @observable\n * @api\n */\n PluggableMap.prototype.getLayerGroup = function () {\n return /** @type {LayerGroup} */ (this.get(MapProperty.LAYERGROUP));\n };\n /**\n * Clear any existing layers and add layers to the map.\n * @param {Array|Collection} layers The layers to be added to the map.\n * @api\n */\n PluggableMap.prototype.setLayers = function (layers) {\n var group = this.getLayerGroup();\n if (layers instanceof Collection) {\n group.setLayers(layers);\n return;\n }\n var collection = group.getLayers();\n collection.clear();\n collection.extend(layers);\n };\n /**\n * Get the collection of layers associated with this map.\n * @return {!Collection} Layers.\n * @api\n */\n PluggableMap.prototype.getLayers = function () {\n var layers = this.getLayerGroup().getLayers();\n return layers;\n };\n /**\n * @return {boolean} Layers have sources that are still loading.\n */\n PluggableMap.prototype.getLoadingOrNotReady = function () {\n var layerStatesArray = this.getLayerGroup().getLayerStatesArray();\n for (var i = 0, ii = layerStatesArray.length; i < ii; ++i) {\n var state = layerStatesArray[i];\n if (!state.visible) {\n continue;\n }\n var renderer = state.layer.getRenderer();\n if (renderer && !renderer.ready) {\n return true;\n }\n var source = /** @type {import(\"./layer/Layer.js\").default} */ (state.layer).getSource();\n if (source && source.loading) {\n return true;\n }\n }\n return false;\n };\n /**\n * Get the pixel for a coordinate. This takes a coordinate in the user\n * projection and returns the corresponding pixel.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate A map coordinate.\n * @return {import(\"./pixel.js\").Pixel} A pixel position in the map viewport.\n * @api\n */\n PluggableMap.prototype.getPixelFromCoordinate = function (coordinate) {\n var viewCoordinate = fromUserCoordinate(coordinate, this.getView().getProjection());\n return this.getPixelFromCoordinateInternal(viewCoordinate);\n };\n /**\n * Get the pixel for a coordinate. This takes a coordinate in the map view\n * projection and returns the corresponding pixel.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate A map coordinate.\n * @return {import(\"./pixel.js\").Pixel} A pixel position in the map viewport.\n */\n PluggableMap.prototype.getPixelFromCoordinateInternal = function (coordinate) {\n var frameState = this.frameState_;\n if (!frameState) {\n return null;\n }\n else {\n return applyTransform(frameState.coordinateToPixelTransform, coordinate.slice(0, 2));\n }\n };\n /**\n * Get the map renderer.\n * @return {import(\"./renderer/Map.js\").default|null} Renderer\n */\n PluggableMap.prototype.getRenderer = function () {\n return this.renderer_;\n };\n /**\n * Get the size of this map.\n * @return {import(\"./size.js\").Size|undefined} The size in pixels of the map in the DOM.\n * @observable\n * @api\n */\n PluggableMap.prototype.getSize = function () {\n return /** @type {import(\"./size.js\").Size|undefined} */ (this.get(MapProperty.SIZE));\n };\n /**\n * Get the view associated with this map. A view manages properties such as\n * center and resolution.\n * @return {View} The view that controls this map.\n * @observable\n * @api\n */\n PluggableMap.prototype.getView = function () {\n return /** @type {View} */ (this.get(MapProperty.VIEW));\n };\n /**\n * Get the element that serves as the map viewport.\n * @return {HTMLElement} Viewport.\n * @api\n */\n PluggableMap.prototype.getViewport = function () {\n return this.viewport_;\n };\n /**\n * Get the element that serves as the container for overlays. Elements added to\n * this container will let mousedown and touchstart events through to the map,\n * so clicks and gestures on an overlay will trigger {@link module:ol/MapBrowserEvent~MapBrowserEvent}\n * events.\n * @return {!HTMLElement} The map's overlay container.\n */\n PluggableMap.prototype.getOverlayContainer = function () {\n return this.overlayContainer_;\n };\n /**\n * Get the element that serves as a container for overlays that don't allow\n * event propagation. Elements added to this container won't let mousedown and\n * touchstart events through to the map, so clicks and gestures on an overlay\n * don't trigger any {@link module:ol/MapBrowserEvent~MapBrowserEvent}.\n * @return {!HTMLElement} The map's overlay container that stops events.\n */\n PluggableMap.prototype.getOverlayContainerStopEvent = function () {\n return this.overlayContainerStopEvent_;\n };\n /**\n * @return {!Document} The document where the map is displayed.\n */\n PluggableMap.prototype.getOwnerDocument = function () {\n var targetElement = this.getTargetElement();\n return targetElement ? targetElement.ownerDocument : document;\n };\n /**\n * @param {import(\"./Tile.js\").default} tile Tile.\n * @param {string} tileSourceKey Tile source key.\n * @param {import(\"./coordinate.js\").Coordinate} tileCenter Tile center.\n * @param {number} tileResolution Tile resolution.\n * @return {number} Tile priority.\n */\n PluggableMap.prototype.getTilePriority = function (tile, tileSourceKey, tileCenter, tileResolution) {\n return getTilePriority(this.frameState_, tile, tileSourceKey, tileCenter, tileResolution);\n };\n /**\n * @param {UIEvent} browserEvent Browser event.\n * @param {string} [opt_type] Type.\n */\n PluggableMap.prototype.handleBrowserEvent = function (browserEvent, opt_type) {\n var type = opt_type || browserEvent.type;\n var mapBrowserEvent = new MapBrowserEvent(type, this, browserEvent);\n this.handleMapBrowserEvent(mapBrowserEvent);\n };\n /**\n * @param {MapBrowserEvent} mapBrowserEvent The event to handle.\n */\n PluggableMap.prototype.handleMapBrowserEvent = function (mapBrowserEvent) {\n if (!this.frameState_) {\n // With no view defined, we cannot translate pixels into geographical\n // coordinates so interactions cannot be used.\n return;\n }\n var originalEvent = /** @type {PointerEvent} */ (mapBrowserEvent.originalEvent);\n var eventType = originalEvent.type;\n if (eventType === PointerEventType.POINTERDOWN ||\n eventType === EventType.WHEEL ||\n eventType === EventType.KEYDOWN) {\n var doc = this.getOwnerDocument();\n var rootNode = this.viewport_.getRootNode\n ? this.viewport_.getRootNode()\n : doc;\n var target = /** @type {Node} */ (originalEvent.target);\n if (\n // Abort if the target is a child of the container for elements whose events are not meant\n // to be handled by map interactions.\n this.overlayContainerStopEvent_.contains(target) ||\n // Abort if the event target is a child of the container that is no longer in the page.\n // It's possible for the target to no longer be in the page if it has been removed in an\n // event listener, this might happen in a Control that recreates it's content based on\n // user interaction either manually or via a render in something like https://reactjs.org/\n !(rootNode === doc ? doc.documentElement : rootNode).contains(target)) {\n return;\n }\n }\n mapBrowserEvent.frameState = this.frameState_;\n if (this.dispatchEvent(mapBrowserEvent) !== false) {\n var interactionsArray = this.getInteractions().getArray().slice();\n for (var i = interactionsArray.length - 1; i >= 0; i--) {\n var interaction = interactionsArray[i];\n if (interaction.getMap() !== this ||\n !interaction.getActive() ||\n !this.getTargetElement()) {\n continue;\n }\n var cont = interaction.handleEvent(mapBrowserEvent);\n if (!cont || mapBrowserEvent.propagationStopped) {\n break;\n }\n }\n }\n };\n /**\n * @protected\n */\n PluggableMap.prototype.handlePostRender = function () {\n var frameState = this.frameState_;\n // Manage the tile queue\n // Image loads are expensive and a limited resource, so try to use them\n // efficiently:\n // * When the view is static we allow a large number of parallel tile loads\n // to complete the frame as quickly as possible.\n // * When animating or interacting, image loads can cause janks, so we reduce\n // the maximum number of loads per frame and limit the number of parallel\n // tile loads to remain reactive to view changes and to reduce the chance of\n // loading tiles that will quickly disappear from view.\n var tileQueue = this.tileQueue_;\n if (!tileQueue.isEmpty()) {\n var maxTotalLoading = this.maxTilesLoading_;\n var maxNewLoads = maxTotalLoading;\n if (frameState) {\n var hints = frameState.viewHints;\n if (hints[ViewHint.ANIMATING] || hints[ViewHint.INTERACTING]) {\n var lowOnFrameBudget = Date.now() - frameState.time > 8;\n maxTotalLoading = lowOnFrameBudget ? 0 : 8;\n maxNewLoads = lowOnFrameBudget ? 0 : 2;\n }\n }\n if (tileQueue.getTilesLoading() < maxTotalLoading) {\n tileQueue.reprioritize(); // FIXME only call if view has changed\n tileQueue.loadMoreTiles(maxTotalLoading, maxNewLoads);\n }\n }\n if (frameState && this.renderer_ && !frameState.animate) {\n if (this.renderComplete_ === true) {\n if (this.hasListener(RenderEventType.RENDERCOMPLETE)) {\n this.renderer_.dispatchRenderEvent(RenderEventType.RENDERCOMPLETE, frameState);\n }\n if (this.loaded_ === false) {\n this.loaded_ = true;\n this.dispatchEvent(new MapEvent(MapEventType.LOADEND, this, frameState));\n }\n }\n else if (this.loaded_ === true) {\n this.loaded_ = false;\n this.dispatchEvent(new MapEvent(MapEventType.LOADSTART, this, frameState));\n }\n }\n var postRenderFunctions = this.postRenderFunctions_;\n for (var i = 0, ii = postRenderFunctions.length; i < ii; ++i) {\n postRenderFunctions[i](this, frameState);\n }\n postRenderFunctions.length = 0;\n };\n /**\n * @private\n */\n PluggableMap.prototype.handleSizeChanged_ = function () {\n if (this.getView() && !this.getView().getAnimating()) {\n this.getView().resolveConstraints(0);\n }\n this.render();\n };\n /**\n * @private\n */\n PluggableMap.prototype.handleTargetChanged_ = function () {\n if (this.mapBrowserEventHandler_) {\n for (var i = 0, ii = this.targetChangeHandlerKeys_.length; i < ii; ++i) {\n unlistenByKey(this.targetChangeHandlerKeys_[i]);\n }\n this.targetChangeHandlerKeys_ = null;\n this.viewport_.removeEventListener(EventType.CONTEXTMENU, this.boundHandleBrowserEvent_);\n this.viewport_.removeEventListener(EventType.WHEEL, this.boundHandleBrowserEvent_);\n this.mapBrowserEventHandler_.dispose();\n this.mapBrowserEventHandler_ = null;\n removeNode(this.viewport_);\n }\n // target may be undefined, null, a string or an Element.\n // If it's a string we convert it to an Element before proceeding.\n // If it's not now an Element we remove the viewport from the DOM.\n // If it's an Element we append the viewport element to it.\n var targetElement = this.getTargetElement();\n if (!targetElement) {\n if (this.renderer_) {\n clearTimeout(this.postRenderTimeoutHandle_);\n this.postRenderTimeoutHandle_ = undefined;\n this.postRenderFunctions_.length = 0;\n this.renderer_.dispose();\n this.renderer_ = null;\n }\n if (this.animationDelayKey_) {\n cancelAnimationFrame(this.animationDelayKey_);\n this.animationDelayKey_ = undefined;\n }\n }\n else {\n targetElement.appendChild(this.viewport_);\n if (!this.renderer_) {\n this.renderer_ = this.createRenderer();\n }\n this.mapBrowserEventHandler_ = new MapBrowserEventHandler(this, this.moveTolerance_);\n for (var key in MapBrowserEventType) {\n this.mapBrowserEventHandler_.addEventListener(MapBrowserEventType[key], this.handleMapBrowserEvent.bind(this));\n }\n this.viewport_.addEventListener(EventType.CONTEXTMENU, this.boundHandleBrowserEvent_, false);\n this.viewport_.addEventListener(EventType.WHEEL, this.boundHandleBrowserEvent_, PASSIVE_EVENT_LISTENERS ? { passive: false } : false);\n var defaultView = this.getOwnerDocument().defaultView;\n var keyboardEventTarget = !this.keyboardEventTarget_\n ? targetElement\n : this.keyboardEventTarget_;\n this.targetChangeHandlerKeys_ = [\n listen(keyboardEventTarget, EventType.KEYDOWN, this.handleBrowserEvent, this),\n listen(keyboardEventTarget, EventType.KEYPRESS, this.handleBrowserEvent, this),\n listen(defaultView, EventType.RESIZE, this.updateSize, this),\n ];\n }\n this.updateSize();\n // updateSize calls setSize, so no need to call this.render\n // ourselves here.\n };\n /**\n * @private\n */\n PluggableMap.prototype.handleTileChange_ = function () {\n this.render();\n };\n /**\n * @private\n */\n PluggableMap.prototype.handleViewPropertyChanged_ = function () {\n this.render();\n };\n /**\n * @private\n */\n PluggableMap.prototype.handleViewChanged_ = function () {\n if (this.viewPropertyListenerKey_) {\n unlistenByKey(this.viewPropertyListenerKey_);\n this.viewPropertyListenerKey_ = null;\n }\n if (this.viewChangeListenerKey_) {\n unlistenByKey(this.viewChangeListenerKey_);\n this.viewChangeListenerKey_ = null;\n }\n var view = this.getView();\n if (view) {\n this.updateViewportSize_();\n this.viewPropertyListenerKey_ = listen(view, ObjectEventType.PROPERTYCHANGE, this.handleViewPropertyChanged_, this);\n this.viewChangeListenerKey_ = listen(view, EventType.CHANGE, this.handleViewPropertyChanged_, this);\n view.resolveConstraints(0);\n }\n this.render();\n };\n /**\n * @private\n */\n PluggableMap.prototype.handleLayerGroupChanged_ = function () {\n if (this.layerGroupPropertyListenerKeys_) {\n this.layerGroupPropertyListenerKeys_.forEach(unlistenByKey);\n this.layerGroupPropertyListenerKeys_ = null;\n }\n var layerGroup = this.getLayerGroup();\n if (layerGroup) {\n this.handleLayerAdd_(new GroupEvent('addlayer', layerGroup));\n this.layerGroupPropertyListenerKeys_ = [\n listen(layerGroup, ObjectEventType.PROPERTYCHANGE, this.render, this),\n listen(layerGroup, EventType.CHANGE, this.render, this),\n listen(layerGroup, 'addlayer', this.handleLayerAdd_, this),\n listen(layerGroup, 'removelayer', this.handleLayerRemove_, this),\n ];\n }\n this.render();\n };\n /**\n * @return {boolean} Is rendered.\n */\n PluggableMap.prototype.isRendered = function () {\n return !!this.frameState_;\n };\n /**\n * Requests an immediate render in a synchronous manner.\n * @api\n */\n PluggableMap.prototype.renderSync = function () {\n if (this.animationDelayKey_) {\n cancelAnimationFrame(this.animationDelayKey_);\n }\n this.animationDelay_();\n };\n /**\n * Redraws all text after new fonts have loaded\n */\n PluggableMap.prototype.redrawText = function () {\n var layerStates = this.getLayerGroup().getLayerStatesArray();\n for (var i = 0, ii = layerStates.length; i < ii; ++i) {\n var layer = layerStates[i].layer;\n if (layer.hasRenderer()) {\n layer.getRenderer().handleFontsChanged();\n }\n }\n };\n /**\n * Request a map rendering (at the next animation frame).\n * @api\n */\n PluggableMap.prototype.render = function () {\n if (this.renderer_ && this.animationDelayKey_ === undefined) {\n this.animationDelayKey_ = requestAnimationFrame(this.animationDelay_);\n }\n };\n /**\n * Remove the given control from the map.\n * @param {import(\"./control/Control.js\").default} control Control.\n * @return {import(\"./control/Control.js\").default|undefined} The removed control (or undefined\n * if the control was not found).\n * @api\n */\n PluggableMap.prototype.removeControl = function (control) {\n return this.getControls().remove(control);\n };\n /**\n * Remove the given interaction from the map.\n * @param {import(\"./interaction/Interaction.js\").default} interaction Interaction to remove.\n * @return {import(\"./interaction/Interaction.js\").default|undefined} The removed interaction (or\n * undefined if the interaction was not found).\n * @api\n */\n PluggableMap.prototype.removeInteraction = function (interaction) {\n return this.getInteractions().remove(interaction);\n };\n /**\n * Removes the given layer from the map.\n * @param {import(\"./layer/Base.js\").default} layer Layer.\n * @return {import(\"./layer/Base.js\").default|undefined} The removed layer (or undefined if the\n * layer was not found).\n * @api\n */\n PluggableMap.prototype.removeLayer = function (layer) {\n var layers = this.getLayerGroup().getLayers();\n return layers.remove(layer);\n };\n /**\n * @param {import(\"./layer/Group.js\").GroupEvent} event The layer remove event.\n * @private\n */\n PluggableMap.prototype.handleLayerRemove_ = function (event) {\n removeLayerMapProperty(event.layer);\n };\n /**\n * Remove the given overlay from the map.\n * @param {import(\"./Overlay.js\").default} overlay Overlay.\n * @return {import(\"./Overlay.js\").default|undefined} The removed overlay (or undefined\n * if the overlay was not found).\n * @api\n */\n PluggableMap.prototype.removeOverlay = function (overlay) {\n return this.getOverlays().remove(overlay);\n };\n /**\n * @param {number} time Time.\n * @private\n */\n PluggableMap.prototype.renderFrame_ = function (time) {\n var _this = this;\n var size = this.getSize();\n var view = this.getView();\n var previousFrameState = this.frameState_;\n /** @type {?FrameState} */\n var frameState = null;\n if (size !== undefined && hasArea(size) && view && view.isDef()) {\n var viewHints = view.getHints(this.frameState_ ? this.frameState_.viewHints : undefined);\n var viewState = view.getState();\n frameState = {\n animate: false,\n coordinateToPixelTransform: this.coordinateToPixelTransform_,\n declutterTree: null,\n extent: getForViewAndSize(viewState.center, viewState.resolution, viewState.rotation, size),\n index: this.frameIndex_++,\n layerIndex: 0,\n layerStatesArray: this.getLayerGroup().getLayerStatesArray(),\n pixelRatio: this.pixelRatio_,\n pixelToCoordinateTransform: this.pixelToCoordinateTransform_,\n postRenderFunctions: [],\n size: size,\n tileQueue: this.tileQueue_,\n time: time,\n usedTiles: {},\n viewState: viewState,\n viewHints: viewHints,\n wantedTiles: {},\n mapId: getUid(this),\n renderTargets: {},\n };\n if (viewState.nextCenter && viewState.nextResolution) {\n var rotation = isNaN(viewState.nextRotation)\n ? viewState.rotation\n : viewState.nextRotation;\n frameState.nextExtent = getForViewAndSize(viewState.nextCenter, viewState.nextResolution, rotation, size);\n }\n }\n this.frameState_ = frameState;\n /** @type {import(\"./renderer/Map.js\").default} */ (this.renderer_).renderFrame(frameState);\n if (frameState) {\n if (frameState.animate) {\n this.render();\n }\n Array.prototype.push.apply(this.postRenderFunctions_, frameState.postRenderFunctions);\n if (previousFrameState) {\n var moveStart = !this.previousExtent_ ||\n (!isEmpty(this.previousExtent_) &&\n !equals(frameState.extent, this.previousExtent_));\n if (moveStart) {\n this.dispatchEvent(new MapEvent(MapEventType.MOVESTART, this, previousFrameState));\n this.previousExtent_ = createOrUpdateEmpty(this.previousExtent_);\n }\n }\n var idle = this.previousExtent_ &&\n !frameState.viewHints[ViewHint.ANIMATING] &&\n !frameState.viewHints[ViewHint.INTERACTING] &&\n !equals(frameState.extent, this.previousExtent_);\n if (idle) {\n this.dispatchEvent(new MapEvent(MapEventType.MOVEEND, this, frameState));\n clone(frameState.extent, this.previousExtent_);\n }\n }\n this.dispatchEvent(new MapEvent(MapEventType.POSTRENDER, this, frameState));\n this.renderComplete_ =\n this.hasListener(MapEventType.LOADSTART) ||\n this.hasListener(MapEventType.LOADEND) ||\n this.hasListener(RenderEventType.RENDERCOMPLETE)\n ? !this.tileQueue_.getTilesLoading() &&\n !this.tileQueue_.getCount() &&\n !this.getLoadingOrNotReady()\n : undefined;\n if (!this.postRenderTimeoutHandle_) {\n this.postRenderTimeoutHandle_ = setTimeout(function () {\n _this.postRenderTimeoutHandle_ = undefined;\n _this.handlePostRender();\n }, 0);\n }\n };\n /**\n * Sets the layergroup of this map.\n * @param {LayerGroup} layerGroup A layer group containing the layers in this map.\n * @observable\n * @api\n */\n PluggableMap.prototype.setLayerGroup = function (layerGroup) {\n var oldLayerGroup = this.getLayerGroup();\n if (oldLayerGroup) {\n this.handleLayerRemove_(new GroupEvent('removelayer', oldLayerGroup));\n }\n this.set(MapProperty.LAYERGROUP, layerGroup);\n };\n /**\n * Set the size of this map.\n * @param {import(\"./size.js\").Size|undefined} size The size in pixels of the map in the DOM.\n * @observable\n * @api\n */\n PluggableMap.prototype.setSize = function (size) {\n this.set(MapProperty.SIZE, size);\n };\n /**\n * Set the target element to render this map into.\n * @param {HTMLElement|string} [target] The Element or id of the Element\n * that the map is rendered in.\n * @observable\n * @api\n */\n PluggableMap.prototype.setTarget = function (target) {\n this.set(MapProperty.TARGET, target);\n };\n /**\n * Set the view for this map.\n * @param {View|Promise} view The view that controls this map.\n * It is also possible to pass a promise that resolves to options for constructing a view. This\n * alternative allows view properties to be resolved by sources or other components that load\n * view-related metadata.\n * @observable\n * @api\n */\n PluggableMap.prototype.setView = function (view) {\n if (!view || view instanceof View) {\n this.set(MapProperty.VIEW, view);\n return;\n }\n this.set(MapProperty.VIEW, new View());\n var map = this;\n view.then(function (viewOptions) {\n map.setView(new View(viewOptions));\n });\n };\n /**\n * Force a recalculation of the map viewport size. This should be called when\n * third-party code changes the size of the map viewport.\n * @api\n */\n PluggableMap.prototype.updateSize = function () {\n var targetElement = this.getTargetElement();\n var size = undefined;\n if (targetElement) {\n var computedStyle = getComputedStyle(targetElement);\n var width = targetElement.offsetWidth -\n parseFloat(computedStyle['borderLeftWidth']) -\n parseFloat(computedStyle['paddingLeft']) -\n parseFloat(computedStyle['paddingRight']) -\n parseFloat(computedStyle['borderRightWidth']);\n var height = targetElement.offsetHeight -\n parseFloat(computedStyle['borderTopWidth']) -\n parseFloat(computedStyle['paddingTop']) -\n parseFloat(computedStyle['paddingBottom']) -\n parseFloat(computedStyle['borderBottomWidth']);\n if (!isNaN(width) && !isNaN(height)) {\n size = [width, height];\n if (!hasArea(size) &&\n !!(targetElement.offsetWidth ||\n targetElement.offsetHeight ||\n targetElement.getClientRects().length)) {\n // eslint-disable-next-line\n console.warn(\"No map visible because the map container's width or height are 0.\");\n }\n }\n }\n this.setSize(size);\n this.updateViewportSize_();\n };\n /**\n * Recomputes the viewport size and save it on the view object (if any)\n * @private\n */\n PluggableMap.prototype.updateViewportSize_ = function () {\n var view = this.getView();\n if (view) {\n var size = undefined;\n var computedStyle = getComputedStyle(this.viewport_);\n if (computedStyle.width && computedStyle.height) {\n size = [\n parseInt(computedStyle.width, 10),\n parseInt(computedStyle.height, 10),\n ];\n }\n view.setViewportSize(size);\n }\n };\n return PluggableMap;\n}(BaseObject));\n/**\n * @param {MapOptions} options Map options.\n * @return {MapOptionsInternal} Internal map options.\n */\nfunction createOptionsInternal(options) {\n /**\n * @type {HTMLElement|Document}\n */\n var keyboardEventTarget = null;\n if (options.keyboardEventTarget !== undefined) {\n keyboardEventTarget =\n typeof options.keyboardEventTarget === 'string'\n ? document.getElementById(options.keyboardEventTarget)\n : options.keyboardEventTarget;\n }\n /**\n * @type {Object}\n */\n var values = {};\n var layerGroup = options.layers &&\n typeof ( /** @type {?} */(options.layers).getLayers) === 'function'\n ? /** @type {LayerGroup} */ (options.layers)\n : new LayerGroup({ layers: /** @type {Collection} */ (options.layers) });\n values[MapProperty.LAYERGROUP] = layerGroup;\n values[MapProperty.TARGET] = options.target;\n values[MapProperty.VIEW] =\n options.view instanceof View ? options.view : new View();\n var controls;\n if (options.controls !== undefined) {\n if (Array.isArray(options.controls)) {\n controls = new Collection(options.controls.slice());\n }\n else {\n assert(typeof ( /** @type {?} */(options.controls).getArray) === 'function', 47); // Expected `controls` to be an array or an `import(\"./Collection.js\").Collection`\n controls = /** @type {Collection} */ (options.controls);\n }\n }\n var interactions;\n if (options.interactions !== undefined) {\n if (Array.isArray(options.interactions)) {\n interactions = new Collection(options.interactions.slice());\n }\n else {\n assert(typeof ( /** @type {?} */(options.interactions).getArray) ===\n 'function', 48); // Expected `interactions` to be an array or an `import(\"./Collection.js\").Collection`\n interactions = /** @type {Collection} */ (options.interactions);\n }\n }\n var overlays;\n if (options.overlays !== undefined) {\n if (Array.isArray(options.overlays)) {\n overlays = new Collection(options.overlays.slice());\n }\n else {\n assert(typeof ( /** @type {?} */(options.overlays).getArray) === 'function', 49); // Expected `overlays` to be an array or an `import(\"./Collection.js\").Collection`\n overlays = options.overlays;\n }\n }\n else {\n overlays = new Collection();\n }\n return {\n controls: controls,\n interactions: interactions,\n keyboardEventTarget: keyboardEventTarget,\n overlays: overlays,\n values: values,\n };\n}\nexport default PluggableMap;\n//# sourceMappingURL=PluggableMap.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/Tile\n */\nimport EventTarget from './events/Target.js';\nimport EventType from './events/EventType.js';\nimport TileState from './TileState.js';\nimport { abstract } from './util.js';\nimport { easeIn } from './easing.js';\n/**\n * A function that takes an {@link module:ol/Tile~Tile} for the tile and a\n * `{string}` for the url as arguments. The default is\n * ```js\n * source.setTileLoadFunction(function(tile, src) {\n * tile.getImage().src = src;\n * });\n * ```\n * For more fine grained control, the load function can use fetch or XMLHttpRequest and involve\n * error handling:\n *\n * ```js\n * import TileState from 'ol/TileState';\n *\n * source.setTileLoadFunction(function(tile, src) {\n * var xhr = new XMLHttpRequest();\n * xhr.responseType = 'blob';\n * xhr.addEventListener('loadend', function (evt) {\n * var data = this.response;\n * if (data !== undefined) {\n * tile.getImage().src = URL.createObjectURL(data);\n * } else {\n * tile.setState(TileState.ERROR);\n * }\n * });\n * xhr.addEventListener('error', function () {\n * tile.setState(TileState.ERROR);\n * });\n * xhr.open('GET', src);\n * xhr.send();\n * });\n * ```\n *\n * @typedef {function(Tile, string): void} LoadFunction\n * @api\n */\n/**\n * {@link module:ol/source/Tile~TileSource} sources use a function of this type to get\n * the url that provides a tile for a given tile coordinate.\n *\n * This function takes an {@link module:ol/tilecoord~TileCoord} for the tile\n * coordinate, a `{number}` representing the pixel ratio and a\n * {@link module:ol/proj/Projection~Projection} for the projection as arguments\n * and returns a `{string}` representing the tile URL, or undefined if no tile\n * should be requested for the passed tile coordinate.\n *\n * @typedef {function(import(\"./tilecoord.js\").TileCoord, number,\n * import(\"./proj/Projection.js\").default): (string|undefined)} UrlFunction\n * @api\n */\n/**\n * @typedef {Object} Options\n * @property {number} [transition=250] A duration for tile opacity\n * transitions in milliseconds. A duration of 0 disables the opacity transition.\n * @property {boolean} [interpolate=false] Use interpolated values when resampling. By default,\n * the nearest neighbor is used when resampling.\n * @api\n */\n/**\n * @classdesc\n * Base class for tiles.\n *\n * @abstract\n */\nvar Tile = /** @class */ (function (_super) {\n __extends(Tile, _super);\n /**\n * @param {import(\"./tilecoord.js\").TileCoord} tileCoord Tile coordinate.\n * @param {import(\"./TileState.js\").default} state State.\n * @param {Options} [opt_options] Tile options.\n */\n function Tile(tileCoord, state, opt_options) {\n var _this = _super.call(this) || this;\n var options = opt_options ? opt_options : {};\n /**\n * @type {import(\"./tilecoord.js\").TileCoord}\n */\n _this.tileCoord = tileCoord;\n /**\n * @protected\n * @type {import(\"./TileState.js\").default}\n */\n _this.state = state;\n /**\n * An \"interim\" tile for this tile. The interim tile may be used while this\n * one is loading, for \"smooth\" transitions when changing params/dimensions\n * on the source.\n * @type {Tile}\n */\n _this.interimTile = null;\n /**\n * A key assigned to the tile. This is used by the tile source to determine\n * if this tile can effectively be used, or if a new tile should be created\n * and this one be used as an interim tile for this new tile.\n * @type {string}\n */\n _this.key = '';\n /**\n * The duration for the opacity transition.\n * @type {number}\n */\n _this.transition_ =\n options.transition === undefined ? 250 : options.transition;\n /**\n * Lookup of start times for rendering transitions. If the start time is\n * equal to -1, the transition is complete.\n * @type {Object}\n */\n _this.transitionStarts_ = {};\n /**\n * @type {boolean}\n */\n _this.interpolate = !!options.interpolate;\n return _this;\n }\n /**\n * @protected\n */\n Tile.prototype.changed = function () {\n this.dispatchEvent(EventType.CHANGE);\n };\n /**\n * Called by the tile cache when the tile is removed from the cache due to expiry\n */\n Tile.prototype.release = function () { };\n /**\n * @return {string} Key.\n */\n Tile.prototype.getKey = function () {\n return this.key + '/' + this.tileCoord;\n };\n /**\n * Get the interim tile most suitable for rendering using the chain of interim\n * tiles. This corresponds to the most recent tile that has been loaded, if no\n * such tile exists, the original tile is returned.\n * @return {!Tile} Best tile for rendering.\n */\n Tile.prototype.getInterimTile = function () {\n if (!this.interimTile) {\n //empty chain\n return this;\n }\n var tile = this.interimTile;\n // find the first loaded tile and return it. Since the chain is sorted in\n // decreasing order of creation time, there is no need to search the remainder\n // of the list (all those tiles correspond to older requests and will be\n // cleaned up by refreshInterimChain)\n do {\n if (tile.getState() == TileState.LOADED) {\n // Show tile immediately instead of fading it in after loading, because\n // the interim tile is in place already\n this.transition_ = 0;\n return tile;\n }\n tile = tile.interimTile;\n } while (tile);\n // we can not find a better tile\n return this;\n };\n /**\n * Goes through the chain of interim tiles and discards sections of the chain\n * that are no longer relevant.\n */\n Tile.prototype.refreshInterimChain = function () {\n if (!this.interimTile) {\n return;\n }\n var tile = this.interimTile;\n /**\n * @type {Tile}\n */\n var prev = this;\n do {\n if (tile.getState() == TileState.LOADED) {\n //we have a loaded tile, we can discard the rest of the list\n //we would could abort any LOADING tile request\n //older than this tile (i.e. any LOADING tile following this entry in the chain)\n tile.interimTile = null;\n break;\n }\n else if (tile.getState() == TileState.LOADING) {\n //keep this LOADING tile any loaded tiles later in the chain are\n //older than this tile, so we're still interested in the request\n prev = tile;\n }\n else if (tile.getState() == TileState.IDLE) {\n //the head of the list is the most current tile, we don't need\n //to start any other requests for this chain\n prev.interimTile = tile.interimTile;\n }\n else {\n prev = tile;\n }\n tile = prev.interimTile;\n } while (tile);\n };\n /**\n * Get the tile coordinate for this tile.\n * @return {import(\"./tilecoord.js\").TileCoord} The tile coordinate.\n * @api\n */\n Tile.prototype.getTileCoord = function () {\n return this.tileCoord;\n };\n /**\n * @return {import(\"./TileState.js\").default} State.\n */\n Tile.prototype.getState = function () {\n return this.state;\n };\n /**\n * Sets the state of this tile. If you write your own {@link module:ol/Tile~LoadFunction tileLoadFunction} ,\n * it is important to set the state correctly to {@link module:ol/TileState~ERROR}\n * when the tile cannot be loaded. Otherwise the tile cannot be removed from\n * the tile queue and will block other requests.\n * @param {import(\"./TileState.js\").default} state State.\n * @api\n */\n Tile.prototype.setState = function (state) {\n if (this.state !== TileState.ERROR && this.state > state) {\n throw new Error('Tile load sequence violation');\n }\n this.state = state;\n this.changed();\n };\n /**\n * Load the image or retry if loading previously failed.\n * Loading is taken care of by the tile queue, and calling this method is\n * only needed for preloading or for reloading in case of an error.\n * @abstract\n * @api\n */\n Tile.prototype.load = function () {\n abstract();\n };\n /**\n * Get the alpha value for rendering.\n * @param {string} id An id for the renderer.\n * @param {number} time The render frame time.\n * @return {number} A number between 0 and 1.\n */\n Tile.prototype.getAlpha = function (id, time) {\n if (!this.transition_) {\n return 1;\n }\n var start = this.transitionStarts_[id];\n if (!start) {\n start = time;\n this.transitionStarts_[id] = start;\n }\n else if (start === -1) {\n return 1;\n }\n var delta = time - start + 1000 / 60; // avoid rendering at 0\n if (delta >= this.transition_) {\n return 1;\n }\n return easeIn(delta / this.transition_);\n };\n /**\n * Determine if a tile is in an alpha transition. A tile is considered in\n * transition if tile.getAlpha() has not yet been called or has been called\n * and returned 1.\n * @param {string} id An id for the renderer.\n * @return {boolean} The tile is in transition.\n */\n Tile.prototype.inTransition = function (id) {\n if (!this.transition_) {\n return false;\n }\n return this.transitionStarts_[id] !== -1;\n };\n /**\n * Mark a transition as complete.\n * @param {string} id An id for the renderer.\n */\n Tile.prototype.endTransition = function (id) {\n if (this.transition_) {\n this.transitionStarts_[id] = -1;\n }\n };\n return Tile;\n}(EventTarget));\nexport default Tile;\n//# sourceMappingURL=Tile.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/TileCache\n */\nimport LRUCache from './structs/LRUCache.js';\nimport { fromKey, getKey } from './tilecoord.js';\nvar TileCache = /** @class */ (function (_super) {\n __extends(TileCache, _super);\n function TileCache() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {!Object} usedTiles Used tiles.\n */\n TileCache.prototype.expireCache = function (usedTiles) {\n while (this.canExpireCache()) {\n var tile = this.peekLast();\n if (tile.getKey() in usedTiles) {\n break;\n }\n else {\n this.pop().release();\n }\n }\n };\n /**\n * Prune all tiles from the cache that don't have the same z as the newest tile.\n */\n TileCache.prototype.pruneExceptNewestZ = function () {\n if (this.getCount() === 0) {\n return;\n }\n var key = this.peekFirstKey();\n var tileCoord = fromKey(key);\n var z = tileCoord[0];\n this.forEach(function (tile) {\n if (tile.tileCoord[0] !== z) {\n this.remove(getKey(tile.tileCoord));\n tile.release();\n }\n }.bind(this));\n };\n return TileCache;\n}(LRUCache));\nexport default TileCache;\n//# sourceMappingURL=TileCache.js.map","/**\n * @module ol/structs/PriorityQueue\n */\nimport { assert } from '../asserts.js';\nimport { clear } from '../obj.js';\n/**\n * @type {number}\n */\nexport var DROP = Infinity;\n/**\n * @classdesc\n * Priority queue.\n *\n * The implementation is inspired from the Closure Library's Heap class and\n * Python's heapq module.\n *\n * See https://github.com/google/closure-library/blob/master/closure/goog/structs/heap.js\n * and https://hg.python.org/cpython/file/2.7/Lib/heapq.py.\n *\n * @template T\n */\nvar PriorityQueue = /** @class */ (function () {\n /**\n * @param {function(T): number} priorityFunction Priority function.\n * @param {function(T): string} keyFunction Key function.\n */\n function PriorityQueue(priorityFunction, keyFunction) {\n /**\n * @type {function(T): number}\n * @private\n */\n this.priorityFunction_ = priorityFunction;\n /**\n * @type {function(T): string}\n * @private\n */\n this.keyFunction_ = keyFunction;\n /**\n * @type {Array}\n * @private\n */\n this.elements_ = [];\n /**\n * @type {Array}\n * @private\n */\n this.priorities_ = [];\n /**\n * @type {!Object}\n * @private\n */\n this.queuedElements_ = {};\n }\n /**\n * FIXME empty description for jsdoc\n */\n PriorityQueue.prototype.clear = function () {\n this.elements_.length = 0;\n this.priorities_.length = 0;\n clear(this.queuedElements_);\n };\n /**\n * Remove and return the highest-priority element. O(log N).\n * @return {T} Element.\n */\n PriorityQueue.prototype.dequeue = function () {\n var elements = this.elements_;\n var priorities = this.priorities_;\n var element = elements[0];\n if (elements.length == 1) {\n elements.length = 0;\n priorities.length = 0;\n }\n else {\n elements[0] = elements.pop();\n priorities[0] = priorities.pop();\n this.siftUp_(0);\n }\n var elementKey = this.keyFunction_(element);\n delete this.queuedElements_[elementKey];\n return element;\n };\n /**\n * Enqueue an element. O(log N).\n * @param {T} element Element.\n * @return {boolean} The element was added to the queue.\n */\n PriorityQueue.prototype.enqueue = function (element) {\n assert(!(this.keyFunction_(element) in this.queuedElements_), 31); // Tried to enqueue an `element` that was already added to the queue\n var priority = this.priorityFunction_(element);\n if (priority != DROP) {\n this.elements_.push(element);\n this.priorities_.push(priority);\n this.queuedElements_[this.keyFunction_(element)] = true;\n this.siftDown_(0, this.elements_.length - 1);\n return true;\n }\n return false;\n };\n /**\n * @return {number} Count.\n */\n PriorityQueue.prototype.getCount = function () {\n return this.elements_.length;\n };\n /**\n * Gets the index of the left child of the node at the given index.\n * @param {number} index The index of the node to get the left child for.\n * @return {number} The index of the left child.\n * @private\n */\n PriorityQueue.prototype.getLeftChildIndex_ = function (index) {\n return index * 2 + 1;\n };\n /**\n * Gets the index of the right child of the node at the given index.\n * @param {number} index The index of the node to get the right child for.\n * @return {number} The index of the right child.\n * @private\n */\n PriorityQueue.prototype.getRightChildIndex_ = function (index) {\n return index * 2 + 2;\n };\n /**\n * Gets the index of the parent of the node at the given index.\n * @param {number} index The index of the node to get the parent for.\n * @return {number} The index of the parent.\n * @private\n */\n PriorityQueue.prototype.getParentIndex_ = function (index) {\n return (index - 1) >> 1;\n };\n /**\n * Make this a heap. O(N).\n * @private\n */\n PriorityQueue.prototype.heapify_ = function () {\n var i;\n for (i = (this.elements_.length >> 1) - 1; i >= 0; i--) {\n this.siftUp_(i);\n }\n };\n /**\n * @return {boolean} Is empty.\n */\n PriorityQueue.prototype.isEmpty = function () {\n return this.elements_.length === 0;\n };\n /**\n * @param {string} key Key.\n * @return {boolean} Is key queued.\n */\n PriorityQueue.prototype.isKeyQueued = function (key) {\n return key in this.queuedElements_;\n };\n /**\n * @param {T} element Element.\n * @return {boolean} Is queued.\n */\n PriorityQueue.prototype.isQueued = function (element) {\n return this.isKeyQueued(this.keyFunction_(element));\n };\n /**\n * @param {number} index The index of the node to move down.\n * @private\n */\n PriorityQueue.prototype.siftUp_ = function (index) {\n var elements = this.elements_;\n var priorities = this.priorities_;\n var count = elements.length;\n var element = elements[index];\n var priority = priorities[index];\n var startIndex = index;\n while (index < count >> 1) {\n var lIndex = this.getLeftChildIndex_(index);\n var rIndex = this.getRightChildIndex_(index);\n var smallerChildIndex = rIndex < count && priorities[rIndex] < priorities[lIndex]\n ? rIndex\n : lIndex;\n elements[index] = elements[smallerChildIndex];\n priorities[index] = priorities[smallerChildIndex];\n index = smallerChildIndex;\n }\n elements[index] = element;\n priorities[index] = priority;\n this.siftDown_(startIndex, index);\n };\n /**\n * @param {number} startIndex The index of the root.\n * @param {number} index The index of the node to move up.\n * @private\n */\n PriorityQueue.prototype.siftDown_ = function (startIndex, index) {\n var elements = this.elements_;\n var priorities = this.priorities_;\n var element = elements[index];\n var priority = priorities[index];\n while (index > startIndex) {\n var parentIndex = this.getParentIndex_(index);\n if (priorities[parentIndex] > priority) {\n elements[index] = elements[parentIndex];\n priorities[index] = priorities[parentIndex];\n index = parentIndex;\n }\n else {\n break;\n }\n }\n elements[index] = element;\n priorities[index] = priority;\n };\n /**\n * FIXME empty description for jsdoc\n */\n PriorityQueue.prototype.reprioritize = function () {\n var priorityFunction = this.priorityFunction_;\n var elements = this.elements_;\n var priorities = this.priorities_;\n var index = 0;\n var n = elements.length;\n var element, i, priority;\n for (i = 0; i < n; ++i) {\n element = elements[i];\n priority = priorityFunction(element);\n if (priority == DROP) {\n delete this.queuedElements_[this.keyFunction_(element)];\n }\n else {\n priorities[index] = priority;\n elements[index++] = element;\n }\n }\n elements.length = index;\n priorities.length = index;\n this.heapify_();\n };\n return PriorityQueue;\n}());\nexport default PriorityQueue;\n//# sourceMappingURL=PriorityQueue.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/TileQueue\n */\nimport EventType from './events/EventType.js';\nimport PriorityQueue, { DROP } from './structs/PriorityQueue.js';\nimport TileState from './TileState.js';\n/**\n * @typedef {function(import(\"./Tile.js\").default, string, import(\"./coordinate.js\").Coordinate, number): number} PriorityFunction\n */\nvar TileQueue = /** @class */ (function (_super) {\n __extends(TileQueue, _super);\n /**\n * @param {PriorityFunction} tilePriorityFunction Tile priority function.\n * @param {function(): ?} tileChangeCallback Function called on each tile change event.\n */\n function TileQueue(tilePriorityFunction, tileChangeCallback) {\n var _this = _super.call(this, \n /**\n * @param {Array} element Element.\n * @return {number} Priority.\n */\n function (element) {\n return tilePriorityFunction.apply(null, element);\n }, \n /**\n * @param {Array} element Element.\n * @return {string} Key.\n */\n function (element) {\n return /** @type {import(\"./Tile.js\").default} */ (element[0]).getKey();\n }) || this;\n /** @private */\n _this.boundHandleTileChange_ = _this.handleTileChange.bind(_this);\n /**\n * @private\n * @type {function(): ?}\n */\n _this.tileChangeCallback_ = tileChangeCallback;\n /**\n * @private\n * @type {number}\n */\n _this.tilesLoading_ = 0;\n /**\n * @private\n * @type {!Object}\n */\n _this.tilesLoadingKeys_ = {};\n return _this;\n }\n /**\n * @param {Array} element Element.\n * @return {boolean} The element was added to the queue.\n */\n TileQueue.prototype.enqueue = function (element) {\n var added = _super.prototype.enqueue.call(this, element);\n if (added) {\n var tile = element[0];\n tile.addEventListener(EventType.CHANGE, this.boundHandleTileChange_);\n }\n return added;\n };\n /**\n * @return {number} Number of tiles loading.\n */\n TileQueue.prototype.getTilesLoading = function () {\n return this.tilesLoading_;\n };\n /**\n * @param {import(\"./events/Event.js\").default} event Event.\n * @protected\n */\n TileQueue.prototype.handleTileChange = function (event) {\n var tile = /** @type {import(\"./Tile.js\").default} */ (event.target);\n var state = tile.getState();\n if (state === TileState.LOADED ||\n state === TileState.ERROR ||\n state === TileState.EMPTY) {\n tile.removeEventListener(EventType.CHANGE, this.boundHandleTileChange_);\n var tileKey = tile.getKey();\n if (tileKey in this.tilesLoadingKeys_) {\n delete this.tilesLoadingKeys_[tileKey];\n --this.tilesLoading_;\n }\n this.tileChangeCallback_();\n }\n };\n /**\n * @param {number} maxTotalLoading Maximum number tiles to load simultaneously.\n * @param {number} maxNewLoads Maximum number of new tiles to load.\n */\n TileQueue.prototype.loadMoreTiles = function (maxTotalLoading, maxNewLoads) {\n var newLoads = 0;\n var state, tile, tileKey;\n while (this.tilesLoading_ < maxTotalLoading &&\n newLoads < maxNewLoads &&\n this.getCount() > 0) {\n tile = /** @type {import(\"./Tile.js\").default} */ (this.dequeue()[0]);\n tileKey = tile.getKey();\n state = tile.getState();\n if (state === TileState.IDLE && !(tileKey in this.tilesLoadingKeys_)) {\n this.tilesLoadingKeys_[tileKey] = true;\n ++this.tilesLoading_;\n ++newLoads;\n tile.load();\n }\n }\n };\n return TileQueue;\n}(PriorityQueue));\nexport default TileQueue;\n/**\n * @param {import('./PluggableMap.js').FrameState} frameState Frame state.\n * @param {import(\"./Tile.js\").default} tile Tile.\n * @param {string} tileSourceKey Tile source key.\n * @param {import(\"./coordinate.js\").Coordinate} tileCenter Tile center.\n * @param {number} tileResolution Tile resolution.\n * @return {number} Tile priority.\n */\nexport function getTilePriority(frameState, tile, tileSourceKey, tileCenter, tileResolution) {\n // Filter out tiles at higher zoom levels than the current zoom level, or that\n // are outside the visible extent.\n if (!frameState || !(tileSourceKey in frameState.wantedTiles)) {\n return DROP;\n }\n if (!frameState.wantedTiles[tileSourceKey][tile.getKey()]) {\n return DROP;\n }\n // Prioritize the highest zoom level tiles closest to the focus.\n // Tiles at higher zoom levels are prioritized using Math.log(tileResolution).\n // Within a zoom level, tiles are prioritized by the distance in pixels between\n // the center of the tile and the center of the viewport. The factor of 65536\n // means that the prioritization should behave as desired for tiles up to\n // 65536 * Math.log(2) = 45426 pixels from the focus.\n var center = frameState.viewState.center;\n var deltaX = tileCenter[0] - center[0];\n var deltaY = tileCenter[1] - center[1];\n return (65536 * Math.log(tileResolution) +\n Math.sqrt(deltaX * deltaX + deltaY * deltaY) / tileResolution);\n}\n//# sourceMappingURL=TileQueue.js.map","/**\n * @module ol/TileRange\n */\n/**\n * A representation of a contiguous block of tiles. A tile range is specified\n * by its min/max tile coordinates and is inclusive of coordinates.\n */\nvar TileRange = /** @class */ (function () {\n /**\n * @param {number} minX Minimum X.\n * @param {number} maxX Maximum X.\n * @param {number} minY Minimum Y.\n * @param {number} maxY Maximum Y.\n */\n function TileRange(minX, maxX, minY, maxY) {\n /**\n * @type {number}\n */\n this.minX = minX;\n /**\n * @type {number}\n */\n this.maxX = maxX;\n /**\n * @type {number}\n */\n this.minY = minY;\n /**\n * @type {number}\n */\n this.maxY = maxY;\n }\n /**\n * @param {import(\"./tilecoord.js\").TileCoord} tileCoord Tile coordinate.\n * @return {boolean} Contains tile coordinate.\n */\n TileRange.prototype.contains = function (tileCoord) {\n return this.containsXY(tileCoord[1], tileCoord[2]);\n };\n /**\n * @param {TileRange} tileRange Tile range.\n * @return {boolean} Contains.\n */\n TileRange.prototype.containsTileRange = function (tileRange) {\n return (this.minX <= tileRange.minX &&\n tileRange.maxX <= this.maxX &&\n this.minY <= tileRange.minY &&\n tileRange.maxY <= this.maxY);\n };\n /**\n * @param {number} x Tile coordinate x.\n * @param {number} y Tile coordinate y.\n * @return {boolean} Contains coordinate.\n */\n TileRange.prototype.containsXY = function (x, y) {\n return this.minX <= x && x <= this.maxX && this.minY <= y && y <= this.maxY;\n };\n /**\n * @param {TileRange} tileRange Tile range.\n * @return {boolean} Equals.\n */\n TileRange.prototype.equals = function (tileRange) {\n return (this.minX == tileRange.minX &&\n this.minY == tileRange.minY &&\n this.maxX == tileRange.maxX &&\n this.maxY == tileRange.maxY);\n };\n /**\n * @param {TileRange} tileRange Tile range.\n */\n TileRange.prototype.extend = function (tileRange) {\n if (tileRange.minX < this.minX) {\n this.minX = tileRange.minX;\n }\n if (tileRange.maxX > this.maxX) {\n this.maxX = tileRange.maxX;\n }\n if (tileRange.minY < this.minY) {\n this.minY = tileRange.minY;\n }\n if (tileRange.maxY > this.maxY) {\n this.maxY = tileRange.maxY;\n }\n };\n /**\n * @return {number} Height.\n */\n TileRange.prototype.getHeight = function () {\n return this.maxY - this.minY + 1;\n };\n /**\n * @return {import(\"./size.js\").Size} Size.\n */\n TileRange.prototype.getSize = function () {\n return [this.getWidth(), this.getHeight()];\n };\n /**\n * @return {number} Width.\n */\n TileRange.prototype.getWidth = function () {\n return this.maxX - this.minX + 1;\n };\n /**\n * @param {TileRange} tileRange Tile range.\n * @return {boolean} Intersects.\n */\n TileRange.prototype.intersects = function (tileRange) {\n return (this.minX <= tileRange.maxX &&\n this.maxX >= tileRange.minX &&\n this.minY <= tileRange.maxY &&\n this.maxY >= tileRange.minY);\n };\n return TileRange;\n}());\n/**\n * @param {number} minX Minimum X.\n * @param {number} maxX Maximum X.\n * @param {number} minY Minimum Y.\n * @param {number} maxY Maximum Y.\n * @param {TileRange} [tileRange] TileRange.\n * @return {TileRange} Tile range.\n */\nexport function createOrUpdate(minX, maxX, minY, maxY, tileRange) {\n if (tileRange !== undefined) {\n tileRange.minX = minX;\n tileRange.maxX = maxX;\n tileRange.minY = minY;\n tileRange.maxY = maxY;\n return tileRange;\n }\n else {\n return new TileRange(minX, maxX, minY, maxY);\n }\n}\nexport default TileRange;\n//# sourceMappingURL=TileRange.js.map","/**\n * @module ol/TileState\n */\n/**\n * @enum {number}\n */\nexport default {\n IDLE: 0,\n LOADING: 1,\n LOADED: 2,\n /**\n * Indicates that tile loading failed\n * @type {number}\n */\n ERROR: 3,\n EMPTY: 4,\n};\n//# sourceMappingURL=TileState.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/VectorRenderTile\n */\nimport Tile from './Tile.js';\nimport { createCanvasContext2D, releaseCanvas } from './dom.js';\nimport { getUid } from './util.js';\n/**\n * @typedef {Object} ReplayState\n * @property {boolean} dirty Dirty.\n * @property {null|import(\"./render.js\").OrderFunction} renderedRenderOrder RenderedRenderOrder.\n * @property {number} renderedTileRevision RenderedTileRevision.\n * @property {number} renderedResolution RenderedResolution.\n * @property {number} renderedRevision RenderedRevision.\n * @property {number} renderedTileResolution RenderedTileResolution.\n * @property {number} renderedTileZ RenderedTileZ.\n */\n/**\n * @type {Array}\n */\nvar canvasPool = [];\nvar VectorRenderTile = /** @class */ (function (_super) {\n __extends(VectorRenderTile, _super);\n /**\n * @param {import(\"./tilecoord.js\").TileCoord} tileCoord Tile coordinate.\n * @param {import(\"./TileState.js\").default} state State.\n * @param {import(\"./tilecoord.js\").TileCoord} urlTileCoord Wrapped tile coordinate for source urls.\n * @param {function(VectorRenderTile):Array} getSourceTiles Function\n * to get source tiles for this tile.\n */\n function VectorRenderTile(tileCoord, state, urlTileCoord, getSourceTiles) {\n var _this = _super.call(this, tileCoord, state, { transition: 0 }) || this;\n /**\n * @private\n * @type {!Object}\n */\n _this.context_ = {};\n /**\n * Executor groups by layer uid. Entries are read/written by the renderer.\n * @type {Object>}\n */\n _this.executorGroups = {};\n /**\n * Executor groups for decluttering, by layer uid. Entries are read/written by the renderer.\n * @type {Object>}\n */\n _this.declutterExecutorGroups = {};\n /**\n * Number of loading source tiles. Read/written by the source.\n * @type {number}\n */\n _this.loadingSourceTiles = 0;\n /**\n * @type {Object}\n */\n _this.hitDetectionImageData = {};\n /**\n * @private\n * @type {!Object}\n */\n _this.replayState_ = {};\n /**\n * @type {Array}\n */\n _this.sourceTiles = [];\n /**\n * @type {Object}\n */\n _this.errorTileKeys = {};\n /**\n * @type {number}\n */\n _this.wantedResolution;\n /**\n * @type {!function():Array}\n */\n _this.getSourceTiles = getSourceTiles.bind(undefined, _this);\n /**\n * @type {import(\"./tilecoord.js\").TileCoord}\n */\n _this.wrappedTileCoord = urlTileCoord;\n return _this;\n }\n /**\n * @param {import(\"./layer/Layer.js\").default} layer Layer.\n * @return {CanvasRenderingContext2D} The rendering context.\n */\n VectorRenderTile.prototype.getContext = function (layer) {\n var key = getUid(layer);\n if (!(key in this.context_)) {\n this.context_[key] = createCanvasContext2D(1, 1, canvasPool);\n }\n return this.context_[key];\n };\n /**\n * @param {import(\"./layer/Layer.js\").default} layer Layer.\n * @return {boolean} Tile has a rendering context for the given layer.\n */\n VectorRenderTile.prototype.hasContext = function (layer) {\n return getUid(layer) in this.context_;\n };\n /**\n * Get the Canvas for this tile.\n * @param {import(\"./layer/Layer.js\").default} layer Layer.\n * @return {HTMLCanvasElement} Canvas.\n */\n VectorRenderTile.prototype.getImage = function (layer) {\n return this.hasContext(layer) ? this.getContext(layer).canvas : null;\n };\n /**\n * @param {import(\"./layer/Layer.js\").default} layer Layer.\n * @return {ReplayState} The replay state.\n */\n VectorRenderTile.prototype.getReplayState = function (layer) {\n var key = getUid(layer);\n if (!(key in this.replayState_)) {\n this.replayState_[key] = {\n dirty: false,\n renderedRenderOrder: null,\n renderedResolution: NaN,\n renderedRevision: -1,\n renderedTileResolution: NaN,\n renderedTileRevision: -1,\n renderedTileZ: -1,\n };\n }\n return this.replayState_[key];\n };\n /**\n * Load the tile.\n */\n VectorRenderTile.prototype.load = function () {\n this.getSourceTiles();\n };\n /**\n * Remove from the cache due to expiry\n */\n VectorRenderTile.prototype.release = function () {\n for (var key in this.context_) {\n var context = this.context_[key];\n releaseCanvas(context);\n canvasPool.push(context.canvas);\n delete this.context_[key];\n }\n _super.prototype.release.call(this);\n };\n return VectorRenderTile;\n}(Tile));\nexport default VectorRenderTile;\n//# sourceMappingURL=VectorRenderTile.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/VectorTile\n */\nimport Tile from './Tile.js';\nimport TileState from './TileState.js';\nvar VectorTile = /** @class */ (function (_super) {\n __extends(VectorTile, _super);\n /**\n * @param {import(\"./tilecoord.js\").TileCoord} tileCoord Tile coordinate.\n * @param {import(\"./TileState.js\").default} state State.\n * @param {string} src Data source url.\n * @param {import(\"./format/Feature.js\").default} format Feature format.\n * @param {import(\"./Tile.js\").LoadFunction} tileLoadFunction Tile load function.\n * @param {import(\"./Tile.js\").Options} [opt_options] Tile options.\n */\n function VectorTile(tileCoord, state, src, format, tileLoadFunction, opt_options) {\n var _this = _super.call(this, tileCoord, state, opt_options) || this;\n /**\n * Extent of this tile; set by the source.\n * @type {import(\"./extent.js\").Extent}\n */\n _this.extent = null;\n /**\n * @private\n * @type {import(\"./format/Feature.js\").default}\n */\n _this.format_ = format;\n /**\n * @private\n * @type {Array}\n */\n _this.features_ = null;\n /**\n * @private\n * @type {import(\"./featureloader.js\").FeatureLoader}\n */\n _this.loader_;\n /**\n * Feature projection of this tile; set by the source.\n * @type {import(\"./proj/Projection.js\").default}\n */\n _this.projection = null;\n /**\n * Resolution of this tile; set by the source.\n * @type {number}\n */\n _this.resolution;\n /**\n * @private\n * @type {import(\"./Tile.js\").LoadFunction}\n */\n _this.tileLoadFunction_ = tileLoadFunction;\n /**\n * @private\n * @type {string}\n */\n _this.url_ = src;\n _this.key = src;\n return _this;\n }\n /**\n * Get the feature format assigned for reading this tile's features.\n * @return {import(\"./format/Feature.js\").default} Feature format.\n * @api\n */\n VectorTile.prototype.getFormat = function () {\n return this.format_;\n };\n /**\n * Get the features for this tile. Geometries will be in the view projection.\n * @return {Array} Features.\n * @api\n */\n VectorTile.prototype.getFeatures = function () {\n return this.features_;\n };\n /**\n * Load not yet loaded URI.\n */\n VectorTile.prototype.load = function () {\n if (this.state == TileState.IDLE) {\n this.setState(TileState.LOADING);\n this.tileLoadFunction_(this, this.url_);\n if (this.loader_) {\n this.loader_(this.extent, this.resolution, this.projection);\n }\n }\n };\n /**\n * Handler for successful tile load.\n * @param {Array} features The loaded features.\n * @param {import(\"./proj/Projection.js\").default} dataProjection Data projection.\n */\n VectorTile.prototype.onLoad = function (features, dataProjection) {\n this.setFeatures(features);\n };\n /**\n * Handler for tile load errors.\n */\n VectorTile.prototype.onError = function () {\n this.setState(TileState.ERROR);\n };\n /**\n * Function for use in an {@link module:ol/source/VectorTile~VectorTile}'s `tileLoadFunction`.\n * Sets the features for the tile.\n * @param {Array} features Features.\n * @api\n */\n VectorTile.prototype.setFeatures = function (features) {\n this.features_ = features;\n this.setState(TileState.LOADED);\n };\n /**\n * Set the feature loader for reading this tile's features.\n * @param {import(\"./featureloader.js\").FeatureLoader} loader Feature loader.\n * @api\n */\n VectorTile.prototype.setLoader = function (loader) {\n this.loader_ = loader;\n };\n return VectorTile;\n}(Tile));\nexport default VectorTile;\n//# sourceMappingURL=VectorTile.js.map","/**\n * @module ol/centerconstraint\n */\nimport { clamp } from './math.js';\n/**\n * @typedef {function((import(\"./coordinate.js\").Coordinate|undefined), number, import(\"./size.js\").Size, boolean=, Array=): (import(\"./coordinate.js\").Coordinate|undefined)} Type\n */\n/**\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {boolean} onlyCenter If true, the constraint will only apply to the view center.\n * @param {boolean} smooth If true, the view will be able to go slightly out of the given extent\n * (only during interaction and animation).\n * @return {Type} The constraint.\n */\nexport function createExtent(extent, onlyCenter, smooth) {\n return (\n /**\n * @param {import(\"./coordinate.js\").Coordinate|undefined} center Center.\n * @param {number|undefined} resolution Resolution.\n * @param {import(\"./size.js\").Size} size Viewport size; unused if `onlyCenter` was specified.\n * @param {boolean} [opt_isMoving] True if an interaction or animation is in progress.\n * @param {Array} [opt_centerShift] Shift between map center and viewport center.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} Center.\n */\n function (center, resolution, size, opt_isMoving, opt_centerShift) {\n if (!center) {\n return undefined;\n }\n if (!resolution && !onlyCenter) {\n return center;\n }\n var viewWidth = onlyCenter ? 0 : size[0] * resolution;\n var viewHeight = onlyCenter ? 0 : size[1] * resolution;\n var shiftX = opt_centerShift ? opt_centerShift[0] : 0;\n var shiftY = opt_centerShift ? opt_centerShift[1] : 0;\n var minX = extent[0] + viewWidth / 2 + shiftX;\n var maxX = extent[2] - viewWidth / 2 + shiftX;\n var minY = extent[1] + viewHeight / 2 + shiftY;\n var maxY = extent[3] - viewHeight / 2 + shiftY;\n // note: when zooming out of bounds, min and max values for x and y may\n // end up inverted (min > max); this has to be accounted for\n if (minX > maxX) {\n minX = (maxX + minX) / 2;\n maxX = minX;\n }\n if (minY > maxY) {\n minY = (maxY + minY) / 2;\n maxY = minY;\n }\n var x = clamp(center[0], minX, maxX);\n var y = clamp(center[1], minY, maxY);\n // during an interaction, allow some overscroll\n if (opt_isMoving && smooth && resolution) {\n var ratio = 30 * resolution;\n x +=\n -ratio * Math.log(1 + Math.max(0, minX - center[0]) / ratio) +\n ratio * Math.log(1 + Math.max(0, center[0] - maxX) / ratio);\n y +=\n -ratio * Math.log(1 + Math.max(0, minY - center[1]) / ratio) +\n ratio * Math.log(1 + Math.max(0, center[1] - maxY) / ratio);\n }\n return [x, y];\n });\n}\n/**\n * @param {import(\"./coordinate.js\").Coordinate} [center] Center.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} Center.\n */\nexport function none(center) {\n return center;\n}\n//# sourceMappingURL=centerconstraint.js.map","/**\n * @module ol/resolutionconstraint\n */\nimport { clamp } from './math.js';\nimport { getHeight, getWidth } from './extent.js';\nimport { linearFindNearest } from './array.js';\n/**\n * @typedef {function((number|undefined), number, import(\"./size.js\").Size, boolean=): (number|undefined)} Type\n */\n/**\n * Returns a modified resolution taking into account the viewport size and maximum\n * allowed extent.\n * @param {number} resolution Resolution\n * @param {import(\"./extent.js\").Extent} maxExtent Maximum allowed extent.\n * @param {import(\"./size.js\").Size} viewportSize Viewport size.\n * @param {boolean} showFullExtent Whether to show the full extent.\n * @return {number} Capped resolution.\n */\nfunction getViewportClampedResolution(resolution, maxExtent, viewportSize, showFullExtent) {\n var xResolution = getWidth(maxExtent) / viewportSize[0];\n var yResolution = getHeight(maxExtent) / viewportSize[1];\n if (showFullExtent) {\n return Math.min(resolution, Math.max(xResolution, yResolution));\n }\n return Math.min(resolution, Math.min(xResolution, yResolution));\n}\n/**\n * Returns a modified resolution to be between maxResolution and minResolution while\n * still allowing the value to be slightly out of bounds.\n * Note: the computation is based on the logarithm function (ln):\n * - at 1, ln(x) is 0\n * - above 1, ln(x) keeps increasing but at a much slower pace than x\n * The final result is clamped to prevent getting too far away from bounds.\n * @param {number} resolution Resolution.\n * @param {number} maxResolution Max resolution.\n * @param {number} minResolution Min resolution.\n * @return {number} Smoothed resolution.\n */\nfunction getSmoothClampedResolution(resolution, maxResolution, minResolution) {\n var result = Math.min(resolution, maxResolution);\n var ratio = 50;\n result *=\n Math.log(1 + ratio * Math.max(0, resolution / maxResolution - 1)) / ratio +\n 1;\n if (minResolution) {\n result = Math.max(result, minResolution);\n result /=\n Math.log(1 + ratio * Math.max(0, minResolution / resolution - 1)) /\n ratio +\n 1;\n }\n return clamp(result, minResolution / 2, maxResolution * 2);\n}\n/**\n * @param {Array} resolutions Resolutions.\n * @param {boolean} [opt_smooth] If true, the view will be able to slightly exceed resolution limits. Default: true.\n * @param {import(\"./extent.js\").Extent} [opt_maxExtent] Maximum allowed extent.\n * @param {boolean} [opt_showFullExtent] If true, allows us to show the full extent. Default: false.\n * @return {Type} Zoom function.\n */\nexport function createSnapToResolutions(resolutions, opt_smooth, opt_maxExtent, opt_showFullExtent) {\n return (\n /**\n * @param {number|undefined} resolution Resolution.\n * @param {number} direction Direction.\n * @param {import(\"./size.js\").Size} size Viewport size.\n * @param {boolean} [opt_isMoving] True if an interaction or animation is in progress.\n * @return {number|undefined} Resolution.\n */\n function (resolution, direction, size, opt_isMoving) {\n if (resolution !== undefined) {\n var maxResolution = resolutions[0];\n var minResolution = resolutions[resolutions.length - 1];\n var cappedMaxRes = opt_maxExtent\n ? getViewportClampedResolution(maxResolution, opt_maxExtent, size, opt_showFullExtent)\n : maxResolution;\n // during interacting or animating, allow intermediary values\n if (opt_isMoving) {\n var smooth = opt_smooth !== undefined ? opt_smooth : true;\n if (!smooth) {\n return clamp(resolution, minResolution, cappedMaxRes);\n }\n return getSmoothClampedResolution(resolution, cappedMaxRes, minResolution);\n }\n var capped = Math.min(cappedMaxRes, resolution);\n var z = Math.floor(linearFindNearest(resolutions, capped, direction));\n if (resolutions[z] > cappedMaxRes && z < resolutions.length - 1) {\n return resolutions[z + 1];\n }\n return resolutions[z];\n }\n else {\n return undefined;\n }\n });\n}\n/**\n * @param {number} power Power.\n * @param {number} maxResolution Maximum resolution.\n * @param {number} [opt_minResolution] Minimum resolution.\n * @param {boolean} [opt_smooth] If true, the view will be able to slightly exceed resolution limits. Default: true.\n * @param {import(\"./extent.js\").Extent} [opt_maxExtent] Maximum allowed extent.\n * @param {boolean} [opt_showFullExtent] If true, allows us to show the full extent. Default: false.\n * @return {Type} Zoom function.\n */\nexport function createSnapToPower(power, maxResolution, opt_minResolution, opt_smooth, opt_maxExtent, opt_showFullExtent) {\n return (\n /**\n * @param {number|undefined} resolution Resolution.\n * @param {number} direction Direction.\n * @param {import(\"./size.js\").Size} size Viewport size.\n * @param {boolean} [opt_isMoving] True if an interaction or animation is in progress.\n * @return {number|undefined} Resolution.\n */\n function (resolution, direction, size, opt_isMoving) {\n if (resolution !== undefined) {\n var cappedMaxRes = opt_maxExtent\n ? getViewportClampedResolution(maxResolution, opt_maxExtent, size, opt_showFullExtent)\n : maxResolution;\n var minResolution = opt_minResolution !== undefined ? opt_minResolution : 0;\n // during interacting or animating, allow intermediary values\n if (opt_isMoving) {\n var smooth = opt_smooth !== undefined ? opt_smooth : true;\n if (!smooth) {\n return clamp(resolution, minResolution, cappedMaxRes);\n }\n return getSmoothClampedResolution(resolution, cappedMaxRes, minResolution);\n }\n var tolerance = 1e-9;\n var minZoomLevel = Math.ceil(Math.log(maxResolution / cappedMaxRes) / Math.log(power) - tolerance);\n var offset = -direction * (0.5 - tolerance) + 0.5;\n var capped = Math.min(cappedMaxRes, resolution);\n var cappedZoomLevel = Math.floor(Math.log(maxResolution / capped) / Math.log(power) + offset);\n var zoomLevel = Math.max(minZoomLevel, cappedZoomLevel);\n var newResolution = maxResolution / Math.pow(power, zoomLevel);\n return clamp(newResolution, minResolution, cappedMaxRes);\n }\n else {\n return undefined;\n }\n });\n}\n/**\n * @param {number} maxResolution Max resolution.\n * @param {number} minResolution Min resolution.\n * @param {boolean} [opt_smooth] If true, the view will be able to slightly exceed resolution limits. Default: true.\n * @param {import(\"./extent.js\").Extent} [opt_maxExtent] Maximum allowed extent.\n * @param {boolean} [opt_showFullExtent] If true, allows us to show the full extent. Default: false.\n * @return {Type} Zoom function.\n */\nexport function createMinMaxResolution(maxResolution, minResolution, opt_smooth, opt_maxExtent, opt_showFullExtent) {\n return (\n /**\n * @param {number|undefined} resolution Resolution.\n * @param {number} direction Direction.\n * @param {import(\"./size.js\").Size} size Viewport size.\n * @param {boolean} [opt_isMoving] True if an interaction or animation is in progress.\n * @return {number|undefined} Resolution.\n */\n function (resolution, direction, size, opt_isMoving) {\n if (resolution !== undefined) {\n var cappedMaxRes = opt_maxExtent\n ? getViewportClampedResolution(maxResolution, opt_maxExtent, size, opt_showFullExtent)\n : maxResolution;\n var smooth = opt_smooth !== undefined ? opt_smooth : true;\n if (!smooth || !opt_isMoving) {\n return clamp(resolution, minResolution, cappedMaxRes);\n }\n return getSmoothClampedResolution(resolution, cappedMaxRes, minResolution);\n }\n else {\n return undefined;\n }\n });\n}\n//# sourceMappingURL=resolutionconstraint.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/View\n */\nimport BaseObject from './Object.js';\nimport Units from './proj/Units.js';\nimport ViewHint from './ViewHint.js';\nimport ViewProperty from './ViewProperty.js';\nimport { DEFAULT_TILE_SIZE } from './tilegrid/common.js';\nimport { METERS_PER_UNIT, createProjection, disableCoordinateWarning, fromUserCoordinate, fromUserExtent, getUserProjection, toUserCoordinate, toUserExtent, } from './proj.js';\nimport { VOID } from './functions.js';\nimport { add as addCoordinate, equals as coordinatesEqual, equals, rotate as rotateCoordinate, } from './coordinate.js';\nimport { assert } from './asserts.js';\nimport { assign } from './obj.js';\nimport { none as centerNone, createExtent } from './centerconstraint.js';\nimport { clamp, modulo } from './math.js';\nimport { createMinMaxResolution, createSnapToPower, createSnapToResolutions, } from './resolutionconstraint.js';\nimport { createSnapToN, createSnapToZero, disable, none as rotationNone, } from './rotationconstraint.js';\nimport { easeOut, inAndOut } from './easing.js';\nimport { getCenter, getForViewAndSize, getHeight, getWidth, isEmpty, } from './extent.js';\nimport { linearFindNearest } from './array.js';\nimport { fromExtent as polygonFromExtent } from './geom/Polygon.js';\n/**\n * An animation configuration\n *\n * @typedef {Object} Animation\n * @property {import(\"./coordinate.js\").Coordinate} [sourceCenter] Source center.\n * @property {import(\"./coordinate.js\").Coordinate} [targetCenter] Target center.\n * @property {number} [sourceResolution] Source resolution.\n * @property {number} [targetResolution] Target resolution.\n * @property {number} [sourceRotation] Source rotation.\n * @property {number} [targetRotation] Target rotation.\n * @property {import(\"./coordinate.js\").Coordinate} [anchor] Anchor.\n * @property {number} start Start.\n * @property {number} duration Duration.\n * @property {boolean} complete Complete.\n * @property {function(number):number} easing Easing.\n * @property {function(boolean):void} callback Callback.\n */\n/**\n * @typedef {Object} Constraints\n * @property {import(\"./centerconstraint.js\").Type} center Center.\n * @property {import(\"./resolutionconstraint.js\").Type} resolution Resolution.\n * @property {import(\"./rotationconstraint.js\").Type} rotation Rotation.\n */\n/**\n * @typedef {Object} FitOptions\n * @property {import(\"./size.js\").Size} [size] The size in pixels of the box to fit\n * the extent into. Default is the current size of the first map in the DOM that\n * uses this view, or `[100, 100]` if no such map is found.\n * @property {!Array} [padding=[0, 0, 0, 0]] Padding (in pixels) to be\n * cleared inside the view. Values in the array are top, right, bottom and left\n * padding.\n * @property {boolean} [nearest=false] If the view `constrainResolution` option is `true`,\n * get the nearest extent instead of the closest that actually fits the view.\n * @property {number} [minResolution=0] Minimum resolution that we zoom to.\n * @property {number} [maxZoom] Maximum zoom level that we zoom to. If\n * `minResolution` is given, this property is ignored.\n * @property {number} [duration] The duration of the animation in milliseconds.\n * By default, there is no animation to the target extent.\n * @property {function(number):number} [easing] The easing function used during\n * the animation (defaults to {@link module:ol/easing.inAndOut}).\n * The function will be called for each frame with a number representing a\n * fraction of the animation's duration. The function should return a number\n * between 0 and 1 representing the progress toward the destination state.\n * @property {function(boolean):void} [callback] Function called when the view is in\n * its final position. The callback will be called with `true` if the animation\n * series completed on its own or `false` if it was cancelled.\n */\n/**\n * @typedef {Object} ViewOptions\n * @property {import(\"./coordinate.js\").Coordinate} [center] The initial center for\n * the view. If a user projection is not set, the coordinate system for the center is\n * specified with the `projection` option. Layer sources will not be fetched if this\n * is not set, but the center can be set later with {@link #setCenter}.\n * @property {boolean|number} [constrainRotation=true] Rotation constraint.\n * `false` means no constraint. `true` means no constraint, but snap to zero\n * near zero. A number constrains the rotation to that number of values. For\n * example, `4` will constrain the rotation to 0, 90, 180, and 270 degrees.\n * @property {boolean} [enableRotation=true] Enable rotation.\n * If `false`, a rotation constraint that always sets the rotation to zero is\n * used. The `constrainRotation` option has no effect if `enableRotation` is\n * `false`.\n * @property {import(\"./extent.js\").Extent} [extent] The extent that constrains the\n * view, in other words, nothing outside of this extent can be visible on the map.\n * @property {boolean} [constrainOnlyCenter=false] If true, the extent\n * constraint will only apply to the view center and not the whole extent.\n * @property {boolean} [smoothExtentConstraint=true] If true, the extent\n * constraint will be applied smoothly, i.e. allow the view to go slightly outside\n * of the given `extent`.\n * @property {number} [maxResolution] The maximum resolution used to determine\n * the resolution constraint. It is used together with `minResolution` (or\n * `maxZoom`) and `zoomFactor`. If unspecified it is calculated in such a way\n * that the projection's validity extent fits in a 256x256 px tile. If the\n * projection is Spherical Mercator (the default) then `maxResolution` defaults\n * to `40075016.68557849 / 256 = 156543.03392804097`.\n * @property {number} [minResolution] The minimum resolution used to determine\n * the resolution constraint. It is used together with `maxResolution` (or\n * `minZoom`) and `zoomFactor`. If unspecified it is calculated assuming 29\n * zoom levels (with a factor of 2). If the projection is Spherical Mercator\n * (the default) then `minResolution` defaults to\n * `40075016.68557849 / 256 / Math.pow(2, 28) = 0.0005831682455839253`.\n * @property {number} [maxZoom=28] The maximum zoom level used to determine the\n * resolution constraint. It is used together with `minZoom` (or\n * `maxResolution`) and `zoomFactor`. Note that if `minResolution` is also\n * provided, it is given precedence over `maxZoom`.\n * @property {number} [minZoom=0] The minimum zoom level used to determine the\n * resolution constraint. It is used together with `maxZoom` (or\n * `minResolution`) and `zoomFactor`. Note that if `maxResolution` is also\n * provided, it is given precedence over `minZoom`.\n * @property {boolean} [multiWorld=false] If `false` the view is constrained so\n * only one world is visible, and you cannot pan off the edge. If `true` the map\n * may show multiple worlds at low zoom levels. Only used if the `projection` is\n * global. Note that if `extent` is also provided it is given precedence.\n * @property {boolean} [constrainResolution=false] If true, the view will always\n * animate to the closest zoom level after an interaction; false means\n * intermediary zoom levels are allowed.\n * @property {boolean} [smoothResolutionConstraint=true] If true, the resolution\n * min/max values will be applied smoothly, i. e. allow the view to exceed slightly\n * the given resolution or zoom bounds.\n * @property {boolean} [showFullExtent=false] Allow the view to be zoomed out to\n * show the full configured extent. By default, when a view is configured with an\n * extent, users will not be able to zoom out so the viewport exceeds the extent in\n * either dimension. This means the full extent may not be visible if the viewport\n * is taller or wider than the aspect ratio of the configured extent. If\n * showFullExtent is true, the user will be able to zoom out so that the viewport\n * exceeds the height or width of the configured extent, but not both, allowing the\n * full extent to be shown.\n * @property {import(\"./proj.js\").ProjectionLike} [projection='EPSG:3857'] The\n * projection. The default is Spherical Mercator.\n * @property {number} [resolution] The initial resolution for the view. The\n * units are `projection` units per pixel (e.g. meters per pixel). An\n * alternative to setting this is to set `zoom`. Layer sources will not be\n * fetched if neither this nor `zoom` are defined, but they can be set later\n * with {@link #setZoom} or {@link #setResolution}.\n * @property {Array} [resolutions] Resolutions that determine the\n * zoom levels if specified. The index in the array corresponds to the zoom level,\n * therefore the resolution values have to be in descending order. It also constrains\n * the resolution by the minimum and maximum value. If set the `maxResolution`,\n * `minResolution`, `minZoom`, `maxZoom`, and `zoomFactor` options are ignored.\n * @property {number} [rotation=0] The initial rotation for the view in radians\n * (positive rotation clockwise, 0 means North).\n * @property {number} [zoom] Only used if `resolution` is not defined. Zoom\n * level used to calculate the initial resolution for the view.\n * @property {number} [zoomFactor=2] The zoom factor used to compute the\n * corresponding resolution.\n * @property {!Array} [padding=[0, 0, 0, 0]] Padding (in css pixels).\n * If the map viewport is partially covered with other content (overlays) along\n * its edges, this setting allows to shift the center of the viewport away from\n * that content. The order of the values is top, right, bottom, left.\n */\n/**\n * @typedef {Object} AnimationOptions\n * @property {import(\"./coordinate.js\").Coordinate} [center] The center of the view at the end of\n * the animation.\n * @property {number} [zoom] The zoom level of the view at the end of the\n * animation. This takes precedence over `resolution`.\n * @property {number} [resolution] The resolution of the view at the end\n * of the animation. If `zoom` is also provided, this option will be ignored.\n * @property {number} [rotation] The rotation of the view at the end of\n * the animation.\n * @property {import(\"./coordinate.js\").Coordinate} [anchor] Optional anchor to remain fixed\n * during a rotation or resolution animation.\n * @property {number} [duration=1000] The duration of the animation in milliseconds.\n * @property {function(number):number} [easing] The easing function used\n * during the animation (defaults to {@link module:ol/easing.inAndOut}).\n * The function will be called for each frame with a number representing a\n * fraction of the animation's duration. The function should return a number\n * between 0 and 1 representing the progress toward the destination state.\n */\n/**\n * @typedef {Object} State\n * @property {import(\"./coordinate.js\").Coordinate} center Center.\n * @property {import(\"./proj/Projection.js\").default} projection Projection.\n * @property {number} resolution Resolution.\n * @property {import(\"./coordinate.js\").Coordinate} [nextCenter] The next center during an animation series.\n * @property {number} [nextResolution] The next resolution during an animation series.\n * @property {number} [nextRotation] The next rotation during an animation series.\n * @property {number} rotation Rotation.\n * @property {number} zoom Zoom.\n */\n/**\n * Default min zoom level for the map view.\n * @type {number}\n */\nvar DEFAULT_MIN_ZOOM = 0;\n/**\n * @typedef {import(\"./ObjectEventType\").Types|'change:center'|'change:resolution'|'change:rotation'} ViewObjectEventTypes\n */\n/***\n * @template Return\n * @typedef {import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature &\n * import(\"./Observable\").CombinedOnSignature} ViewOnSignature\n */\n/**\n * @classdesc\n * A View object represents a simple 2D view of the map.\n *\n * This is the object to act upon to change the center, resolution,\n * and rotation of the map.\n *\n * A View has a `projection`. The projection determines the\n * coordinate system of the center, and its units determine the units of the\n * resolution (projection units per pixel). The default projection is\n * Web Mercator (EPSG:3857).\n *\n * ### The view states\n *\n * A View is determined by three states: `center`, `resolution`,\n * and `rotation`. Each state has a corresponding getter and setter, e.g.\n * `getCenter` and `setCenter` for the `center` state.\n *\n * The `zoom` state is actually not saved on the view: all computations\n * internally use the `resolution` state. Still, the `setZoom` and `getZoom`\n * methods are available, as well as `getResolutionForZoom` and\n * `getZoomForResolution` to switch from one system to the other.\n *\n * ### The constraints\n *\n * `setCenter`, `setResolution` and `setRotation` can be used to change the\n * states of the view, but any constraint defined in the constructor will\n * be applied along the way.\n *\n * A View object can have a *resolution constraint*, a *rotation constraint*\n * and a *center constraint*.\n *\n * The *resolution constraint* typically restricts min/max values and\n * snaps to specific resolutions. It is determined by the following\n * options: `resolutions`, `maxResolution`, `maxZoom` and `zoomFactor`.\n * If `resolutions` is set, the other three options are ignored. See\n * documentation for each option for more information. By default, the view\n * only has a min/max restriction and allow intermediary zoom levels when\n * pinch-zooming for example.\n *\n * The *rotation constraint* snaps to specific angles. It is determined\n * by the following options: `enableRotation` and `constrainRotation`.\n * By default rotation is allowed and its value is snapped to zero when approaching the\n * horizontal.\n *\n * The *center constraint* is determined by the `extent` option. By\n * default the view center is not constrained at all.\n *\n * ### Changing the view state\n *\n * It is important to note that `setZoom`, `setResolution`, `setCenter` and\n * `setRotation` are subject to the above mentioned constraints. As such, it\n * may sometimes not be possible to know in advance the resulting state of the\n * View. For example, calling `setResolution(10)` does not guarantee that\n * `getResolution()` will return `10`.\n *\n * A consequence of this is that, when applying a delta on the view state, one\n * should use `adjustCenter`, `adjustRotation`, `adjustZoom` and `adjustResolution`\n * rather than the corresponding setters. This will let view do its internal\n * computations. Besides, the `adjust*` methods also take an `opt_anchor`\n * argument which allows specifying an origin for the transformation.\n *\n * ### Interacting with the view\n *\n * View constraints are usually only applied when the view is *at rest*, meaning that\n * no interaction or animation is ongoing. As such, if the user puts the view in a\n * state that is not equivalent to a constrained one (e.g. rotating the view when\n * the snap angle is 0), an animation will be triggered at the interaction end to\n * put back the view to a stable state;\n *\n * @api\n */\nvar View = /** @class */ (function (_super) {\n __extends(View, _super);\n /**\n * @param {ViewOptions} [opt_options] View options.\n */\n function View(opt_options) {\n var _this = _super.call(this) || this;\n /***\n * @type {ViewOnSignature}\n */\n _this.on;\n /***\n * @type {ViewOnSignature}\n */\n _this.once;\n /***\n * @type {ViewOnSignature}\n */\n _this.un;\n var options = assign({}, opt_options);\n /**\n * @private\n * @type {Array}\n */\n _this.hints_ = [0, 0];\n /**\n * @private\n * @type {Array>}\n */\n _this.animations_ = [];\n /**\n * @private\n * @type {number|undefined}\n */\n _this.updateAnimationKey_;\n /**\n * @private\n * @const\n * @type {import(\"./proj/Projection.js\").default}\n */\n _this.projection_ = createProjection(options.projection, 'EPSG:3857');\n /**\n * @private\n * @type {import(\"./size.js\").Size}\n */\n _this.viewportSize_ = [100, 100];\n /**\n * @private\n * @type {import(\"./coordinate.js\").Coordinate|undefined}\n */\n _this.targetCenter_ = null;\n /**\n * @private\n * @type {number|undefined}\n */\n _this.targetResolution_;\n /**\n * @private\n * @type {number|undefined}\n */\n _this.targetRotation_;\n /**\n * @private\n * @type {import(\"./coordinate.js\").Coordinate}\n */\n _this.nextCenter_ = null;\n /**\n * @private\n * @type {number}\n */\n _this.nextResolution_;\n /**\n * @private\n * @type {number}\n */\n _this.nextRotation_;\n /**\n * @private\n * @type {import(\"./coordinate.js\").Coordinate|undefined}\n */\n _this.cancelAnchor_ = undefined;\n if (options.projection) {\n disableCoordinateWarning();\n }\n if (options.center) {\n options.center = fromUserCoordinate(options.center, _this.projection_);\n }\n if (options.extent) {\n options.extent = fromUserExtent(options.extent, _this.projection_);\n }\n _this.applyOptions_(options);\n return _this;\n }\n /**\n * Set up the view with the given options.\n * @param {ViewOptions} options View options.\n */\n View.prototype.applyOptions_ = function (options) {\n var properties = assign({}, options);\n for (var key in ViewProperty) {\n delete properties[key];\n }\n this.setProperties(properties, true);\n var resolutionConstraintInfo = createResolutionConstraint(options);\n /**\n * @private\n * @type {number}\n */\n this.maxResolution_ = resolutionConstraintInfo.maxResolution;\n /**\n * @private\n * @type {number}\n */\n this.minResolution_ = resolutionConstraintInfo.minResolution;\n /**\n * @private\n * @type {number}\n */\n this.zoomFactor_ = resolutionConstraintInfo.zoomFactor;\n /**\n * @private\n * @type {Array|undefined}\n */\n this.resolutions_ = options.resolutions;\n /**\n * @type {Array|undefined}\n * @private\n */\n this.padding_ = options.padding;\n /**\n * @private\n * @type {number}\n */\n this.minZoom_ = resolutionConstraintInfo.minZoom;\n var centerConstraint = createCenterConstraint(options);\n var resolutionConstraint = resolutionConstraintInfo.constraint;\n var rotationConstraint = createRotationConstraint(options);\n /**\n * @private\n * @type {Constraints}\n */\n this.constraints_ = {\n center: centerConstraint,\n resolution: resolutionConstraint,\n rotation: rotationConstraint,\n };\n this.setRotation(options.rotation !== undefined ? options.rotation : 0);\n this.setCenterInternal(options.center !== undefined ? options.center : null);\n if (options.resolution !== undefined) {\n this.setResolution(options.resolution);\n }\n else if (options.zoom !== undefined) {\n this.setZoom(options.zoom);\n }\n };\n Object.defineProperty(View.prototype, \"padding\", {\n /**\n * Padding (in css pixels).\n * If the map viewport is partially covered with other content (overlays) along\n * its edges, this setting allows to shift the center of the viewport away from that\n * content. The order of the values in the array is top, right, bottom, left.\n * The default is no padding, which is equivalent to `[0, 0, 0, 0]`.\n * @type {Array|undefined}\n * @api\n */\n get: function () {\n return this.padding_;\n },\n set: function (padding) {\n var oldPadding = this.padding_;\n this.padding_ = padding;\n var center = this.getCenter();\n if (center) {\n var newPadding = padding || [0, 0, 0, 0];\n oldPadding = oldPadding || [0, 0, 0, 0];\n var resolution = this.getResolution();\n var offsetX = (resolution / 2) *\n (newPadding[3] - oldPadding[3] + oldPadding[1] - newPadding[1]);\n var offsetY = (resolution / 2) *\n (newPadding[0] - oldPadding[0] + oldPadding[2] - newPadding[2]);\n this.setCenterInternal([center[0] + offsetX, center[1] - offsetY]);\n }\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Get an updated version of the view options used to construct the view. The\n * current resolution (or zoom), center, and rotation are applied to any stored\n * options. The provided options can be used to apply new min/max zoom or\n * resolution limits.\n * @param {ViewOptions} newOptions New options to be applied.\n * @return {ViewOptions} New options updated with the current view state.\n */\n View.prototype.getUpdatedOptions_ = function (newOptions) {\n var options = this.getProperties();\n // preserve resolution (or zoom)\n if (options.resolution !== undefined) {\n options.resolution = this.getResolution();\n }\n else {\n options.zoom = this.getZoom();\n }\n // preserve center\n options.center = this.getCenterInternal();\n // preserve rotation\n options.rotation = this.getRotation();\n return assign({}, options, newOptions);\n };\n /**\n * Animate the view. The view's center, zoom (or resolution), and rotation\n * can be animated for smooth transitions between view states. For example,\n * to animate the view to a new zoom level:\n *\n * view.animate({zoom: view.getZoom() + 1});\n *\n * By default, the animation lasts one second and uses in-and-out easing. You\n * can customize this behavior by including `duration` (in milliseconds) and\n * `easing` options (see {@link module:ol/easing}).\n *\n * To chain together multiple animations, call the method with multiple\n * animation objects. For example, to first zoom and then pan:\n *\n * view.animate({zoom: 10}, {center: [0, 0]});\n *\n * If you provide a function as the last argument to the animate method, it\n * will get called at the end of an animation series. The callback will be\n * called with `true` if the animation series completed on its own or `false`\n * if it was cancelled.\n *\n * Animations are cancelled by user interactions (e.g. dragging the map) or by\n * calling `view.setCenter()`, `view.setResolution()`, or `view.setRotation()`\n * (or another method that calls one of these).\n *\n * @param {...(AnimationOptions|function(boolean): void)} var_args Animation\n * options. Multiple animations can be run in series by passing multiple\n * options objects. To run multiple animations in parallel, call the method\n * multiple times. An optional callback can be provided as a final\n * argument. The callback will be called with a boolean indicating whether\n * the animation completed without being cancelled.\n * @api\n */\n View.prototype.animate = function (var_args) {\n if (this.isDef() && !this.getAnimating()) {\n this.resolveConstraints(0);\n }\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; ++i) {\n var options = arguments[i];\n if (options.center) {\n options = assign({}, options);\n options.center = fromUserCoordinate(options.center, this.getProjection());\n }\n if (options.anchor) {\n options = assign({}, options);\n options.anchor = fromUserCoordinate(options.anchor, this.getProjection());\n }\n args[i] = options;\n }\n this.animateInternal.apply(this, args);\n };\n /**\n * @param {...(AnimationOptions|function(boolean): void)} var_args Animation options.\n */\n View.prototype.animateInternal = function (var_args) {\n var animationCount = arguments.length;\n var callback;\n if (animationCount > 1 &&\n typeof arguments[animationCount - 1] === 'function') {\n callback = arguments[animationCount - 1];\n --animationCount;\n }\n var i = 0;\n for (; i < animationCount && !this.isDef(); ++i) {\n // if view properties are not yet set, shortcut to the final state\n var state = arguments[i];\n if (state.center) {\n this.setCenterInternal(state.center);\n }\n if (state.zoom !== undefined) {\n this.setZoom(state.zoom);\n }\n else if (state.resolution) {\n this.setResolution(state.resolution);\n }\n if (state.rotation !== undefined) {\n this.setRotation(state.rotation);\n }\n }\n if (i === animationCount) {\n if (callback) {\n animationCallback(callback, true);\n }\n return;\n }\n var start = Date.now();\n var center = this.targetCenter_.slice();\n var resolution = this.targetResolution_;\n var rotation = this.targetRotation_;\n var series = [];\n for (; i < animationCount; ++i) {\n var options = /** @type {AnimationOptions} */ (arguments[i]);\n var animation = {\n start: start,\n complete: false,\n anchor: options.anchor,\n duration: options.duration !== undefined ? options.duration : 1000,\n easing: options.easing || inAndOut,\n callback: callback,\n };\n if (options.center) {\n animation.sourceCenter = center;\n animation.targetCenter = options.center.slice();\n center = animation.targetCenter;\n }\n if (options.zoom !== undefined) {\n animation.sourceResolution = resolution;\n animation.targetResolution = this.getResolutionForZoom(options.zoom);\n resolution = animation.targetResolution;\n }\n else if (options.resolution) {\n animation.sourceResolution = resolution;\n animation.targetResolution = options.resolution;\n resolution = animation.targetResolution;\n }\n if (options.rotation !== undefined) {\n animation.sourceRotation = rotation;\n var delta = modulo(options.rotation - rotation + Math.PI, 2 * Math.PI) - Math.PI;\n animation.targetRotation = rotation + delta;\n rotation = animation.targetRotation;\n }\n // check if animation is a no-op\n if (isNoopAnimation(animation)) {\n animation.complete = true;\n // we still push it onto the series for callback handling\n }\n else {\n start += animation.duration;\n }\n series.push(animation);\n }\n this.animations_.push(series);\n this.setHint(ViewHint.ANIMATING, 1);\n this.updateAnimations_();\n };\n /**\n * Determine if the view is being animated.\n * @return {boolean} The view is being animated.\n * @api\n */\n View.prototype.getAnimating = function () {\n return this.hints_[ViewHint.ANIMATING] > 0;\n };\n /**\n * Determine if the user is interacting with the view, such as panning or zooming.\n * @return {boolean} The view is being interacted with.\n * @api\n */\n View.prototype.getInteracting = function () {\n return this.hints_[ViewHint.INTERACTING] > 0;\n };\n /**\n * Cancel any ongoing animations.\n * @api\n */\n View.prototype.cancelAnimations = function () {\n this.setHint(ViewHint.ANIMATING, -this.hints_[ViewHint.ANIMATING]);\n var anchor;\n for (var i = 0, ii = this.animations_.length; i < ii; ++i) {\n var series = this.animations_[i];\n if (series[0].callback) {\n animationCallback(series[0].callback, false);\n }\n if (!anchor) {\n for (var j = 0, jj = series.length; j < jj; ++j) {\n var animation = series[j];\n if (!animation.complete) {\n anchor = animation.anchor;\n break;\n }\n }\n }\n }\n this.animations_.length = 0;\n this.cancelAnchor_ = anchor;\n this.nextCenter_ = null;\n this.nextResolution_ = NaN;\n this.nextRotation_ = NaN;\n };\n /**\n * Update all animations.\n */\n View.prototype.updateAnimations_ = function () {\n if (this.updateAnimationKey_ !== undefined) {\n cancelAnimationFrame(this.updateAnimationKey_);\n this.updateAnimationKey_ = undefined;\n }\n if (!this.getAnimating()) {\n return;\n }\n var now = Date.now();\n var more = false;\n for (var i = this.animations_.length - 1; i >= 0; --i) {\n var series = this.animations_[i];\n var seriesComplete = true;\n for (var j = 0, jj = series.length; j < jj; ++j) {\n var animation = series[j];\n if (animation.complete) {\n continue;\n }\n var elapsed = now - animation.start;\n var fraction = animation.duration > 0 ? elapsed / animation.duration : 1;\n if (fraction >= 1) {\n animation.complete = true;\n fraction = 1;\n }\n else {\n seriesComplete = false;\n }\n var progress = animation.easing(fraction);\n if (animation.sourceCenter) {\n var x0 = animation.sourceCenter[0];\n var y0 = animation.sourceCenter[1];\n var x1 = animation.targetCenter[0];\n var y1 = animation.targetCenter[1];\n this.nextCenter_ = animation.targetCenter;\n var x = x0 + progress * (x1 - x0);\n var y = y0 + progress * (y1 - y0);\n this.targetCenter_ = [x, y];\n }\n if (animation.sourceResolution && animation.targetResolution) {\n var resolution = progress === 1\n ? animation.targetResolution\n : animation.sourceResolution +\n progress *\n (animation.targetResolution - animation.sourceResolution);\n if (animation.anchor) {\n var size = this.getViewportSize_(this.getRotation());\n var constrainedResolution = this.constraints_.resolution(resolution, 0, size, true);\n this.targetCenter_ = this.calculateCenterZoom(constrainedResolution, animation.anchor);\n }\n this.nextResolution_ = animation.targetResolution;\n this.targetResolution_ = resolution;\n this.applyTargetState_(true);\n }\n if (animation.sourceRotation !== undefined &&\n animation.targetRotation !== undefined) {\n var rotation = progress === 1\n ? modulo(animation.targetRotation + Math.PI, 2 * Math.PI) -\n Math.PI\n : animation.sourceRotation +\n progress *\n (animation.targetRotation - animation.sourceRotation);\n if (animation.anchor) {\n var constrainedRotation = this.constraints_.rotation(rotation, true);\n this.targetCenter_ = this.calculateCenterRotate(constrainedRotation, animation.anchor);\n }\n this.nextRotation_ = animation.targetRotation;\n this.targetRotation_ = rotation;\n }\n this.applyTargetState_(true);\n more = true;\n if (!animation.complete) {\n break;\n }\n }\n if (seriesComplete) {\n this.animations_[i] = null;\n this.setHint(ViewHint.ANIMATING, -1);\n this.nextCenter_ = null;\n this.nextResolution_ = NaN;\n this.nextRotation_ = NaN;\n var callback = series[0].callback;\n if (callback) {\n animationCallback(callback, true);\n }\n }\n }\n // prune completed series\n this.animations_ = this.animations_.filter(Boolean);\n if (more && this.updateAnimationKey_ === undefined) {\n this.updateAnimationKey_ = requestAnimationFrame(this.updateAnimations_.bind(this));\n }\n };\n /**\n * @param {number} rotation Target rotation.\n * @param {import(\"./coordinate.js\").Coordinate} anchor Rotation anchor.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} Center for rotation and anchor.\n */\n View.prototype.calculateCenterRotate = function (rotation, anchor) {\n var center;\n var currentCenter = this.getCenterInternal();\n if (currentCenter !== undefined) {\n center = [currentCenter[0] - anchor[0], currentCenter[1] - anchor[1]];\n rotateCoordinate(center, rotation - this.getRotation());\n addCoordinate(center, anchor);\n }\n return center;\n };\n /**\n * @param {number} resolution Target resolution.\n * @param {import(\"./coordinate.js\").Coordinate} anchor Zoom anchor.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} Center for resolution and anchor.\n */\n View.prototype.calculateCenterZoom = function (resolution, anchor) {\n var center;\n var currentCenter = this.getCenterInternal();\n var currentResolution = this.getResolution();\n if (currentCenter !== undefined && currentResolution !== undefined) {\n var x = anchor[0] -\n (resolution * (anchor[0] - currentCenter[0])) / currentResolution;\n var y = anchor[1] -\n (resolution * (anchor[1] - currentCenter[1])) / currentResolution;\n center = [x, y];\n }\n return center;\n };\n /**\n * Returns the current viewport size.\n * @private\n * @param {number} [opt_rotation] Take into account the rotation of the viewport when giving the size\n * @return {import(\"./size.js\").Size} Viewport size or `[100, 100]` when no viewport is found.\n */\n View.prototype.getViewportSize_ = function (opt_rotation) {\n var size = this.viewportSize_;\n if (opt_rotation) {\n var w = size[0];\n var h = size[1];\n return [\n Math.abs(w * Math.cos(opt_rotation)) +\n Math.abs(h * Math.sin(opt_rotation)),\n Math.abs(w * Math.sin(opt_rotation)) +\n Math.abs(h * Math.cos(opt_rotation)),\n ];\n }\n else {\n return size;\n }\n };\n /**\n * Stores the viewport size on the view. The viewport size is not read every time from the DOM\n * to avoid performance hit and layout reflow.\n * This should be done on map size change.\n * Note: the constraints are not resolved during an animation to avoid stopping it\n * @param {import(\"./size.js\").Size} [opt_size] Viewport size; if undefined, [100, 100] is assumed\n */\n View.prototype.setViewportSize = function (opt_size) {\n this.viewportSize_ = Array.isArray(opt_size)\n ? opt_size.slice()\n : [100, 100];\n if (!this.getAnimating()) {\n this.resolveConstraints(0);\n }\n };\n /**\n * Get the view center.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} The center of the view.\n * @observable\n * @api\n */\n View.prototype.getCenter = function () {\n var center = this.getCenterInternal();\n if (!center) {\n return center;\n }\n return toUserCoordinate(center, this.getProjection());\n };\n /**\n * Get the view center without transforming to user projection.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} The center of the view.\n */\n View.prototype.getCenterInternal = function () {\n return /** @type {import(\"./coordinate.js\").Coordinate|undefined} */ (this.get(ViewProperty.CENTER));\n };\n /**\n * @return {Constraints} Constraints.\n */\n View.prototype.getConstraints = function () {\n return this.constraints_;\n };\n /**\n * @return {boolean} Resolution constraint is set\n */\n View.prototype.getConstrainResolution = function () {\n return this.get('constrainResolution');\n };\n /**\n * @param {Array} [opt_hints] Destination array.\n * @return {Array} Hint.\n */\n View.prototype.getHints = function (opt_hints) {\n if (opt_hints !== undefined) {\n opt_hints[0] = this.hints_[0];\n opt_hints[1] = this.hints_[1];\n return opt_hints;\n }\n else {\n return this.hints_.slice();\n }\n };\n /**\n * Calculate the extent for the current view state and the passed size.\n * The size is the pixel dimensions of the box into which the calculated extent\n * should fit. In most cases you want to get the extent of the entire map,\n * that is `map.getSize()`.\n * @param {import(\"./size.js\").Size} [opt_size] Box pixel size. If not provided, the size\n * of the map that uses this view will be used.\n * @return {import(\"./extent.js\").Extent} Extent.\n * @api\n */\n View.prototype.calculateExtent = function (opt_size) {\n var extent = this.calculateExtentInternal(opt_size);\n return toUserExtent(extent, this.getProjection());\n };\n /**\n * @param {import(\"./size.js\").Size} [opt_size] Box pixel size. If not provided,\n * the map's last known viewport size will be used.\n * @return {import(\"./extent.js\").Extent} Extent.\n */\n View.prototype.calculateExtentInternal = function (opt_size) {\n var size = opt_size || this.getViewportSizeMinusPadding_();\n var center = /** @type {!import(\"./coordinate.js\").Coordinate} */ (this.getCenterInternal());\n assert(center, 1); // The view center is not defined\n var resolution = /** @type {!number} */ (this.getResolution());\n assert(resolution !== undefined, 2); // The view resolution is not defined\n var rotation = /** @type {!number} */ (this.getRotation());\n assert(rotation !== undefined, 3); // The view rotation is not defined\n return getForViewAndSize(center, resolution, rotation, size);\n };\n /**\n * Get the maximum resolution of the view.\n * @return {number} The maximum resolution of the view.\n * @api\n */\n View.prototype.getMaxResolution = function () {\n return this.maxResolution_;\n };\n /**\n * Get the minimum resolution of the view.\n * @return {number} The minimum resolution of the view.\n * @api\n */\n View.prototype.getMinResolution = function () {\n return this.minResolution_;\n };\n /**\n * Get the maximum zoom level for the view.\n * @return {number} The maximum zoom level.\n * @api\n */\n View.prototype.getMaxZoom = function () {\n return /** @type {number} */ (this.getZoomForResolution(this.minResolution_));\n };\n /**\n * Set a new maximum zoom level for the view.\n * @param {number} zoom The maximum zoom level.\n * @api\n */\n View.prototype.setMaxZoom = function (zoom) {\n this.applyOptions_(this.getUpdatedOptions_({ maxZoom: zoom }));\n };\n /**\n * Get the minimum zoom level for the view.\n * @return {number} The minimum zoom level.\n * @api\n */\n View.prototype.getMinZoom = function () {\n return /** @type {number} */ (this.getZoomForResolution(this.maxResolution_));\n };\n /**\n * Set a new minimum zoom level for the view.\n * @param {number} zoom The minimum zoom level.\n * @api\n */\n View.prototype.setMinZoom = function (zoom) {\n this.applyOptions_(this.getUpdatedOptions_({ minZoom: zoom }));\n };\n /**\n * Set whether the view should allow intermediary zoom levels.\n * @param {boolean} enabled Whether the resolution is constrained.\n * @api\n */\n View.prototype.setConstrainResolution = function (enabled) {\n this.applyOptions_(this.getUpdatedOptions_({ constrainResolution: enabled }));\n };\n /**\n * Get the view projection.\n * @return {import(\"./proj/Projection.js\").default} The projection of the view.\n * @api\n */\n View.prototype.getProjection = function () {\n return this.projection_;\n };\n /**\n * Get the view resolution.\n * @return {number|undefined} The resolution of the view.\n * @observable\n * @api\n */\n View.prototype.getResolution = function () {\n return /** @type {number|undefined} */ (this.get(ViewProperty.RESOLUTION));\n };\n /**\n * Get the resolutions for the view. This returns the array of resolutions\n * passed to the constructor of the View, or undefined if none were given.\n * @return {Array|undefined} The resolutions of the view.\n * @api\n */\n View.prototype.getResolutions = function () {\n return this.resolutions_;\n };\n /**\n * Get the resolution for a provided extent (in map units) and size (in pixels).\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {import(\"./size.js\").Size} [opt_size] Box pixel size.\n * @return {number} The resolution at which the provided extent will render at\n * the given size.\n * @api\n */\n View.prototype.getResolutionForExtent = function (extent, opt_size) {\n return this.getResolutionForExtentInternal(fromUserExtent(extent, this.getProjection()), opt_size);\n };\n /**\n * Get the resolution for a provided extent (in map units) and size (in pixels).\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {import(\"./size.js\").Size} [opt_size] Box pixel size.\n * @return {number} The resolution at which the provided extent will render at\n * the given size.\n */\n View.prototype.getResolutionForExtentInternal = function (extent, opt_size) {\n var size = opt_size || this.getViewportSizeMinusPadding_();\n var xResolution = getWidth(extent) / size[0];\n var yResolution = getHeight(extent) / size[1];\n return Math.max(xResolution, yResolution);\n };\n /**\n * Return a function that returns a value between 0 and 1 for a\n * resolution. Exponential scaling is assumed.\n * @param {number} [opt_power] Power.\n * @return {function(number): number} Resolution for value function.\n */\n View.prototype.getResolutionForValueFunction = function (opt_power) {\n var power = opt_power || 2;\n var maxResolution = this.getConstrainedResolution(this.maxResolution_);\n var minResolution = this.minResolution_;\n var max = Math.log(maxResolution / minResolution) / Math.log(power);\n return (\n /**\n * @param {number} value Value.\n * @return {number} Resolution.\n */\n function (value) {\n var resolution = maxResolution / Math.pow(power, value * max);\n return resolution;\n });\n };\n /**\n * Get the view rotation.\n * @return {number} The rotation of the view in radians.\n * @observable\n * @api\n */\n View.prototype.getRotation = function () {\n return /** @type {number} */ (this.get(ViewProperty.ROTATION));\n };\n /**\n * Return a function that returns a resolution for a value between\n * 0 and 1. Exponential scaling is assumed.\n * @param {number} [opt_power] Power.\n * @return {function(number): number} Value for resolution function.\n */\n View.prototype.getValueForResolutionFunction = function (opt_power) {\n var logPower = Math.log(opt_power || 2);\n var maxResolution = this.getConstrainedResolution(this.maxResolution_);\n var minResolution = this.minResolution_;\n var max = Math.log(maxResolution / minResolution) / logPower;\n return (\n /**\n * @param {number} resolution Resolution.\n * @return {number} Value.\n */\n function (resolution) {\n var value = Math.log(maxResolution / resolution) / logPower / max;\n return value;\n });\n };\n /**\n * Returns the size of the viewport minus padding.\n * @private\n * @param {number} [opt_rotation] Take into account the rotation of the viewport when giving the size\n * @return {import(\"./size.js\").Size} Viewport size reduced by the padding.\n */\n View.prototype.getViewportSizeMinusPadding_ = function (opt_rotation) {\n var size = this.getViewportSize_(opt_rotation);\n var padding = this.padding_;\n if (padding) {\n size = [\n size[0] - padding[1] - padding[3],\n size[1] - padding[0] - padding[2],\n ];\n }\n return size;\n };\n /**\n * @return {State} View state.\n */\n View.prototype.getState = function () {\n var projection = this.getProjection();\n var resolution = this.getResolution();\n var rotation = this.getRotation();\n var center = /** @type {import(\"./coordinate.js\").Coordinate} */ (this.getCenterInternal());\n var padding = this.padding_;\n if (padding) {\n var reducedSize = this.getViewportSizeMinusPadding_();\n center = calculateCenterOn(center, this.getViewportSize_(), [reducedSize[0] / 2 + padding[3], reducedSize[1] / 2 + padding[0]], resolution, rotation);\n }\n return {\n center: center.slice(0),\n projection: projection !== undefined ? projection : null,\n resolution: resolution,\n nextCenter: this.nextCenter_,\n nextResolution: this.nextResolution_,\n nextRotation: this.nextRotation_,\n rotation: rotation,\n zoom: this.getZoom(),\n };\n };\n /**\n * Get the current zoom level. This method may return non-integer zoom levels\n * if the view does not constrain the resolution, or if an interaction or\n * animation is underway.\n * @return {number|undefined} Zoom.\n * @api\n */\n View.prototype.getZoom = function () {\n var zoom;\n var resolution = this.getResolution();\n if (resolution !== undefined) {\n zoom = this.getZoomForResolution(resolution);\n }\n return zoom;\n };\n /**\n * Get the zoom level for a resolution.\n * @param {number} resolution The resolution.\n * @return {number|undefined} The zoom level for the provided resolution.\n * @api\n */\n View.prototype.getZoomForResolution = function (resolution) {\n var offset = this.minZoom_ || 0;\n var max, zoomFactor;\n if (this.resolutions_) {\n var nearest = linearFindNearest(this.resolutions_, resolution, 1);\n offset = nearest;\n max = this.resolutions_[nearest];\n if (nearest == this.resolutions_.length - 1) {\n zoomFactor = 2;\n }\n else {\n zoomFactor = max / this.resolutions_[nearest + 1];\n }\n }\n else {\n max = this.maxResolution_;\n zoomFactor = this.zoomFactor_;\n }\n return offset + Math.log(max / resolution) / Math.log(zoomFactor);\n };\n /**\n * Get the resolution for a zoom level.\n * @param {number} zoom Zoom level.\n * @return {number} The view resolution for the provided zoom level.\n * @api\n */\n View.prototype.getResolutionForZoom = function (zoom) {\n if (this.resolutions_) {\n if (this.resolutions_.length <= 1) {\n return 0;\n }\n var baseLevel = clamp(Math.floor(zoom), 0, this.resolutions_.length - 2);\n var zoomFactor = this.resolutions_[baseLevel] / this.resolutions_[baseLevel + 1];\n return (this.resolutions_[baseLevel] /\n Math.pow(zoomFactor, clamp(zoom - baseLevel, 0, 1)));\n }\n else {\n return (this.maxResolution_ / Math.pow(this.zoomFactor_, zoom - this.minZoom_));\n }\n };\n /**\n * Fit the given geometry or extent based on the given map size and border.\n * The size is pixel dimensions of the box to fit the extent into.\n * In most cases you will want to use the map size, that is `map.getSize()`.\n * Takes care of the map angle.\n * @param {import(\"./geom/SimpleGeometry.js\").default|import(\"./extent.js\").Extent} geometryOrExtent The geometry or\n * extent to fit the view to.\n * @param {FitOptions} [opt_options] Options.\n * @api\n */\n View.prototype.fit = function (geometryOrExtent, opt_options) {\n /** @type {import(\"./geom/SimpleGeometry.js\").default} */\n var geometry;\n assert(Array.isArray(geometryOrExtent) ||\n typeof ( /** @type {?} */(geometryOrExtent).getSimplifiedGeometry) ===\n 'function', 24); // Invalid extent or geometry provided as `geometry`\n if (Array.isArray(geometryOrExtent)) {\n assert(!isEmpty(geometryOrExtent), 25); // Cannot fit empty extent provided as `geometry`\n var extent = fromUserExtent(geometryOrExtent, this.getProjection());\n geometry = polygonFromExtent(extent);\n }\n else if (geometryOrExtent.getType() === 'Circle') {\n var extent = fromUserExtent(geometryOrExtent.getExtent(), this.getProjection());\n geometry = polygonFromExtent(extent);\n geometry.rotate(this.getRotation(), getCenter(extent));\n }\n else {\n var userProjection = getUserProjection();\n if (userProjection) {\n geometry = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (geometryOrExtent\n .clone()\n .transform(userProjection, this.getProjection()));\n }\n else {\n geometry = geometryOrExtent;\n }\n }\n this.fitInternal(geometry, opt_options);\n };\n /**\n * Calculate rotated extent\n * @param {import(\"./geom/SimpleGeometry.js\").default} geometry The geometry.\n * @return {import(\"./extent\").Extent} The rotated extent for the geometry.\n */\n View.prototype.rotatedExtentForGeometry = function (geometry) {\n var rotation = this.getRotation();\n var cosAngle = Math.cos(rotation);\n var sinAngle = Math.sin(-rotation);\n var coords = geometry.getFlatCoordinates();\n var stride = geometry.getStride();\n var minRotX = +Infinity;\n var minRotY = +Infinity;\n var maxRotX = -Infinity;\n var maxRotY = -Infinity;\n for (var i = 0, ii = coords.length; i < ii; i += stride) {\n var rotX = coords[i] * cosAngle - coords[i + 1] * sinAngle;\n var rotY = coords[i] * sinAngle + coords[i + 1] * cosAngle;\n minRotX = Math.min(minRotX, rotX);\n minRotY = Math.min(minRotY, rotY);\n maxRotX = Math.max(maxRotX, rotX);\n maxRotY = Math.max(maxRotY, rotY);\n }\n return [minRotX, minRotY, maxRotX, maxRotY];\n };\n /**\n * @param {import(\"./geom/SimpleGeometry.js\").default} geometry The geometry.\n * @param {FitOptions} [opt_options] Options.\n */\n View.prototype.fitInternal = function (geometry, opt_options) {\n var options = opt_options || {};\n var size = options.size;\n if (!size) {\n size = this.getViewportSizeMinusPadding_();\n }\n var padding = options.padding !== undefined ? options.padding : [0, 0, 0, 0];\n var nearest = options.nearest !== undefined ? options.nearest : false;\n var minResolution;\n if (options.minResolution !== undefined) {\n minResolution = options.minResolution;\n }\n else if (options.maxZoom !== undefined) {\n minResolution = this.getResolutionForZoom(options.maxZoom);\n }\n else {\n minResolution = 0;\n }\n var rotatedExtent = this.rotatedExtentForGeometry(geometry);\n // calculate resolution\n var resolution = this.getResolutionForExtentInternal(rotatedExtent, [\n size[0] - padding[1] - padding[3],\n size[1] - padding[0] - padding[2],\n ]);\n resolution = isNaN(resolution)\n ? minResolution\n : Math.max(resolution, minResolution);\n resolution = this.getConstrainedResolution(resolution, nearest ? 0 : 1);\n // calculate center\n var rotation = this.getRotation();\n var sinAngle = Math.sin(rotation);\n var cosAngle = Math.cos(rotation);\n var centerRot = getCenter(rotatedExtent);\n centerRot[0] += ((padding[1] - padding[3]) / 2) * resolution;\n centerRot[1] += ((padding[0] - padding[2]) / 2) * resolution;\n var centerX = centerRot[0] * cosAngle - centerRot[1] * sinAngle;\n var centerY = centerRot[1] * cosAngle + centerRot[0] * sinAngle;\n var center = this.getConstrainedCenter([centerX, centerY], resolution);\n var callback = options.callback ? options.callback : VOID;\n if (options.duration !== undefined) {\n this.animateInternal({\n resolution: resolution,\n center: center,\n duration: options.duration,\n easing: options.easing,\n }, callback);\n }\n else {\n this.targetResolution_ = resolution;\n this.targetCenter_ = center;\n this.applyTargetState_(false, true);\n animationCallback(callback, true);\n }\n };\n /**\n * Center on coordinate and view position.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {import(\"./size.js\").Size} size Box pixel size.\n * @param {import(\"./pixel.js\").Pixel} position Position on the view to center on.\n * @api\n */\n View.prototype.centerOn = function (coordinate, size, position) {\n this.centerOnInternal(fromUserCoordinate(coordinate, this.getProjection()), size, position);\n };\n /**\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {import(\"./size.js\").Size} size Box pixel size.\n * @param {import(\"./pixel.js\").Pixel} position Position on the view to center on.\n */\n View.prototype.centerOnInternal = function (coordinate, size, position) {\n this.setCenterInternal(calculateCenterOn(coordinate, size, position, this.getResolution(), this.getRotation()));\n };\n /**\n * Calculates the shift between map and viewport center.\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 * @return {Array|undefined} Center shift.\n */\n View.prototype.calculateCenterShift = function (center, resolution, rotation, size) {\n var centerShift;\n var padding = this.padding_;\n if (padding && center) {\n var reducedSize = this.getViewportSizeMinusPadding_(-rotation);\n var shiftedCenter = calculateCenterOn(center, size, [reducedSize[0] / 2 + padding[3], reducedSize[1] / 2 + padding[0]], resolution, rotation);\n centerShift = [\n center[0] - shiftedCenter[0],\n center[1] - shiftedCenter[1],\n ];\n }\n return centerShift;\n };\n /**\n * @return {boolean} Is defined.\n */\n View.prototype.isDef = function () {\n return !!this.getCenterInternal() && this.getResolution() !== undefined;\n };\n /**\n * Adds relative coordinates to the center of the view. Any extent constraint will apply.\n * @param {import(\"./coordinate.js\").Coordinate} deltaCoordinates Relative value to add.\n * @api\n */\n View.prototype.adjustCenter = function (deltaCoordinates) {\n var center = toUserCoordinate(this.targetCenter_, this.getProjection());\n this.setCenter([\n center[0] + deltaCoordinates[0],\n center[1] + deltaCoordinates[1],\n ]);\n };\n /**\n * Adds relative coordinates to the center of the view. Any extent constraint will apply.\n * @param {import(\"./coordinate.js\").Coordinate} deltaCoordinates Relative value to add.\n */\n View.prototype.adjustCenterInternal = function (deltaCoordinates) {\n var center = this.targetCenter_;\n this.setCenterInternal([\n center[0] + deltaCoordinates[0],\n center[1] + deltaCoordinates[1],\n ]);\n };\n /**\n * Multiply the view resolution by a ratio, optionally using an anchor. Any resolution\n * constraint will apply.\n * @param {number} ratio The ratio to apply on the view resolution.\n * @param {import(\"./coordinate.js\").Coordinate} [opt_anchor] The origin of the transformation.\n * @api\n */\n View.prototype.adjustResolution = function (ratio, opt_anchor) {\n var anchor = opt_anchor && fromUserCoordinate(opt_anchor, this.getProjection());\n this.adjustResolutionInternal(ratio, anchor);\n };\n /**\n * Multiply the view resolution by a ratio, optionally using an anchor. Any resolution\n * constraint will apply.\n * @param {number} ratio The ratio to apply on the view resolution.\n * @param {import(\"./coordinate.js\").Coordinate} [opt_anchor] The origin of the transformation.\n */\n View.prototype.adjustResolutionInternal = function (ratio, opt_anchor) {\n var isMoving = this.getAnimating() || this.getInteracting();\n var size = this.getViewportSize_(this.getRotation());\n var newResolution = this.constraints_.resolution(this.targetResolution_ * ratio, 0, size, isMoving);\n if (opt_anchor) {\n this.targetCenter_ = this.calculateCenterZoom(newResolution, opt_anchor);\n }\n this.targetResolution_ *= ratio;\n this.applyTargetState_();\n };\n /**\n * Adds a value to the view zoom level, optionally using an anchor. Any resolution\n * constraint will apply.\n * @param {number} delta Relative value to add to the zoom level.\n * @param {import(\"./coordinate.js\").Coordinate} [opt_anchor] The origin of the transformation.\n * @api\n */\n View.prototype.adjustZoom = function (delta, opt_anchor) {\n this.adjustResolution(Math.pow(this.zoomFactor_, -delta), opt_anchor);\n };\n /**\n * Adds a value to the view rotation, optionally using an anchor. Any rotation\n * constraint will apply.\n * @param {number} delta Relative value to add to the zoom rotation, in radians.\n * @param {import(\"./coordinate.js\").Coordinate} [opt_anchor] The rotation center.\n * @api\n */\n View.prototype.adjustRotation = function (delta, opt_anchor) {\n if (opt_anchor) {\n opt_anchor = fromUserCoordinate(opt_anchor, this.getProjection());\n }\n this.adjustRotationInternal(delta, opt_anchor);\n };\n /**\n * @param {number} delta Relative value to add to the zoom rotation, in radians.\n * @param {import(\"./coordinate.js\").Coordinate} [opt_anchor] The rotation center.\n */\n View.prototype.adjustRotationInternal = function (delta, opt_anchor) {\n var isMoving = this.getAnimating() || this.getInteracting();\n var newRotation = this.constraints_.rotation(this.targetRotation_ + delta, isMoving);\n if (opt_anchor) {\n this.targetCenter_ = this.calculateCenterRotate(newRotation, opt_anchor);\n }\n this.targetRotation_ += delta;\n this.applyTargetState_();\n };\n /**\n * Set the center of the current view. Any extent constraint will apply.\n * @param {import(\"./coordinate.js\").Coordinate|undefined} center The center of the view.\n * @observable\n * @api\n */\n View.prototype.setCenter = function (center) {\n this.setCenterInternal(center ? fromUserCoordinate(center, this.getProjection()) : center);\n };\n /**\n * Set the center using the view projection (not the user projection).\n * @param {import(\"./coordinate.js\").Coordinate|undefined} center The center of the view.\n */\n View.prototype.setCenterInternal = function (center) {\n this.targetCenter_ = center;\n this.applyTargetState_();\n };\n /**\n * @param {import(\"./ViewHint.js\").default} hint Hint.\n * @param {number} delta Delta.\n * @return {number} New value.\n */\n View.prototype.setHint = function (hint, delta) {\n this.hints_[hint] += delta;\n this.changed();\n return this.hints_[hint];\n };\n /**\n * Set the resolution for this view. Any resolution constraint will apply.\n * @param {number|undefined} resolution The resolution of the view.\n * @observable\n * @api\n */\n View.prototype.setResolution = function (resolution) {\n this.targetResolution_ = resolution;\n this.applyTargetState_();\n };\n /**\n * Set the rotation for this view. Any rotation constraint will apply.\n * @param {number} rotation The rotation of the view in radians.\n * @observable\n * @api\n */\n View.prototype.setRotation = function (rotation) {\n this.targetRotation_ = rotation;\n this.applyTargetState_();\n };\n /**\n * Zoom to a specific zoom level. Any resolution constrain will apply.\n * @param {number} zoom Zoom level.\n * @api\n */\n View.prototype.setZoom = function (zoom) {\n this.setResolution(this.getResolutionForZoom(zoom));\n };\n /**\n * Recompute rotation/resolution/center based on target values.\n * Note: we have to compute rotation first, then resolution and center considering that\n * parameters can influence one another in case a view extent constraint is present.\n * @param {boolean} [opt_doNotCancelAnims] Do not cancel animations.\n * @param {boolean} [opt_forceMoving] Apply constraints as if the view is moving.\n * @private\n */\n View.prototype.applyTargetState_ = function (opt_doNotCancelAnims, opt_forceMoving) {\n var isMoving = this.getAnimating() || this.getInteracting() || opt_forceMoving;\n // compute rotation\n var newRotation = this.constraints_.rotation(this.targetRotation_, isMoving);\n var size = this.getViewportSize_(newRotation);\n var newResolution = this.constraints_.resolution(this.targetResolution_, 0, size, isMoving);\n var newCenter = this.constraints_.center(this.targetCenter_, newResolution, size, isMoving, this.calculateCenterShift(this.targetCenter_, newResolution, newRotation, size));\n if (this.get(ViewProperty.ROTATION) !== newRotation) {\n this.set(ViewProperty.ROTATION, newRotation);\n }\n if (this.get(ViewProperty.RESOLUTION) !== newResolution) {\n this.set(ViewProperty.RESOLUTION, newResolution);\n this.set('zoom', this.getZoom(), true);\n }\n if (!newCenter ||\n !this.get(ViewProperty.CENTER) ||\n !equals(this.get(ViewProperty.CENTER), newCenter)) {\n this.set(ViewProperty.CENTER, newCenter);\n }\n if (this.getAnimating() && !opt_doNotCancelAnims) {\n this.cancelAnimations();\n }\n this.cancelAnchor_ = undefined;\n };\n /**\n * If any constraints need to be applied, an animation will be triggered.\n * This is typically done on interaction end.\n * Note: calling this with a duration of 0 will apply the constrained values straight away,\n * without animation.\n * @param {number} [opt_duration] The animation duration in ms.\n * @param {number} [opt_resolutionDirection] Which direction to zoom.\n * @param {import(\"./coordinate.js\").Coordinate} [opt_anchor] The origin of the transformation.\n */\n View.prototype.resolveConstraints = function (opt_duration, opt_resolutionDirection, opt_anchor) {\n var duration = opt_duration !== undefined ? opt_duration : 200;\n var direction = opt_resolutionDirection || 0;\n var newRotation = this.constraints_.rotation(this.targetRotation_);\n var size = this.getViewportSize_(newRotation);\n var newResolution = this.constraints_.resolution(this.targetResolution_, direction, size);\n var newCenter = this.constraints_.center(this.targetCenter_, newResolution, size, false, this.calculateCenterShift(this.targetCenter_, newResolution, newRotation, size));\n if (duration === 0 && !this.cancelAnchor_) {\n this.targetResolution_ = newResolution;\n this.targetRotation_ = newRotation;\n this.targetCenter_ = newCenter;\n this.applyTargetState_();\n return;\n }\n var anchor = opt_anchor || (duration === 0 ? this.cancelAnchor_ : undefined);\n this.cancelAnchor_ = undefined;\n if (this.getResolution() !== newResolution ||\n this.getRotation() !== newRotation ||\n !this.getCenterInternal() ||\n !equals(this.getCenterInternal(), newCenter)) {\n if (this.getAnimating()) {\n this.cancelAnimations();\n }\n this.animateInternal({\n rotation: newRotation,\n center: newCenter,\n resolution: newResolution,\n duration: duration,\n easing: easeOut,\n anchor: anchor,\n });\n }\n };\n /**\n * Notify the View that an interaction has started.\n * The view state will be resolved to a stable one if needed\n * (depending on its constraints).\n * @api\n */\n View.prototype.beginInteraction = function () {\n this.resolveConstraints(0);\n this.setHint(ViewHint.INTERACTING, 1);\n };\n /**\n * Notify the View that an interaction has ended. The view state will be resolved\n * to a stable one if needed (depending on its constraints).\n * @param {number} [opt_duration] Animation duration in ms.\n * @param {number} [opt_resolutionDirection] Which direction to zoom.\n * @param {import(\"./coordinate.js\").Coordinate} [opt_anchor] The origin of the transformation.\n * @api\n */\n View.prototype.endInteraction = function (opt_duration, opt_resolutionDirection, opt_anchor) {\n var anchor = opt_anchor && fromUserCoordinate(opt_anchor, this.getProjection());\n this.endInteractionInternal(opt_duration, opt_resolutionDirection, anchor);\n };\n /**\n * Notify the View that an interaction has ended. The view state will be resolved\n * to a stable one if needed (depending on its constraints).\n * @param {number} [opt_duration] Animation duration in ms.\n * @param {number} [opt_resolutionDirection] Which direction to zoom.\n * @param {import(\"./coordinate.js\").Coordinate} [opt_anchor] The origin of the transformation.\n */\n View.prototype.endInteractionInternal = function (opt_duration, opt_resolutionDirection, opt_anchor) {\n this.setHint(ViewHint.INTERACTING, -1);\n this.resolveConstraints(opt_duration, opt_resolutionDirection, opt_anchor);\n };\n /**\n * Get a valid position for the view center according to the current constraints.\n * @param {import(\"./coordinate.js\").Coordinate|undefined} targetCenter Target center position.\n * @param {number} [opt_targetResolution] Target resolution. If not supplied, the current one will be used.\n * This is useful to guess a valid center position at a different zoom level.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} Valid center position.\n */\n View.prototype.getConstrainedCenter = function (targetCenter, opt_targetResolution) {\n var size = this.getViewportSize_(this.getRotation());\n return this.constraints_.center(targetCenter, opt_targetResolution || this.getResolution(), size);\n };\n /**\n * Get a valid zoom level according to the current view constraints.\n * @param {number|undefined} targetZoom Target zoom.\n * @param {number} [opt_direction=0] Indicate which resolution should be used\n * by a renderer if the view resolution does not match any resolution of the tile source.\n * If 0, the nearest resolution will be used. If 1, the nearest lower resolution\n * will be used. If -1, the nearest higher resolution will be used.\n * @return {number|undefined} Valid zoom level.\n */\n View.prototype.getConstrainedZoom = function (targetZoom, opt_direction) {\n var targetRes = this.getResolutionForZoom(targetZoom);\n return this.getZoomForResolution(this.getConstrainedResolution(targetRes, opt_direction));\n };\n /**\n * Get a valid resolution according to the current view constraints.\n * @param {number|undefined} targetResolution Target resolution.\n * @param {number} [opt_direction=0] Indicate which resolution should be used\n * by a renderer if the view resolution does not match any resolution of the tile source.\n * If 0, the nearest resolution will be used. If 1, the nearest lower resolution\n * will be used. If -1, the nearest higher resolution will be used.\n * @return {number|undefined} Valid resolution.\n */\n View.prototype.getConstrainedResolution = function (targetResolution, opt_direction) {\n var direction = opt_direction || 0;\n var size = this.getViewportSize_(this.getRotation());\n return this.constraints_.resolution(targetResolution, direction, size);\n };\n return View;\n}(BaseObject));\n/**\n * @param {Function} callback Callback.\n * @param {*} returnValue Return value.\n */\nfunction animationCallback(callback, returnValue) {\n setTimeout(function () {\n callback(returnValue);\n }, 0);\n}\n/**\n * @param {ViewOptions} options View options.\n * @return {import(\"./centerconstraint.js\").Type} The constraint.\n */\nexport function createCenterConstraint(options) {\n if (options.extent !== undefined) {\n var smooth = options.smoothExtentConstraint !== undefined\n ? options.smoothExtentConstraint\n : true;\n return createExtent(options.extent, options.constrainOnlyCenter, smooth);\n }\n var projection = createProjection(options.projection, 'EPSG:3857');\n if (options.multiWorld !== true && projection.isGlobal()) {\n var extent = projection.getExtent().slice();\n extent[0] = -Infinity;\n extent[2] = Infinity;\n return createExtent(extent, false, false);\n }\n return centerNone;\n}\n/**\n * @param {ViewOptions} options View options.\n * @return {{constraint: import(\"./resolutionconstraint.js\").Type, maxResolution: number,\n * minResolution: number, minZoom: number, zoomFactor: number}} The constraint.\n */\nexport function createResolutionConstraint(options) {\n var resolutionConstraint;\n var maxResolution;\n var minResolution;\n // TODO: move these to be ol constants\n // see https://github.com/openlayers/openlayers/issues/2076\n var defaultMaxZoom = 28;\n var defaultZoomFactor = 2;\n var minZoom = options.minZoom !== undefined ? options.minZoom : DEFAULT_MIN_ZOOM;\n var maxZoom = options.maxZoom !== undefined ? options.maxZoom : defaultMaxZoom;\n var zoomFactor = options.zoomFactor !== undefined ? options.zoomFactor : defaultZoomFactor;\n var multiWorld = options.multiWorld !== undefined ? options.multiWorld : false;\n var smooth = options.smoothResolutionConstraint !== undefined\n ? options.smoothResolutionConstraint\n : true;\n var showFullExtent = options.showFullExtent !== undefined ? options.showFullExtent : false;\n var projection = createProjection(options.projection, 'EPSG:3857');\n var projExtent = projection.getExtent();\n var constrainOnlyCenter = options.constrainOnlyCenter;\n var extent = options.extent;\n if (!multiWorld && !extent && projection.isGlobal()) {\n constrainOnlyCenter = false;\n extent = projExtent;\n }\n if (options.resolutions !== undefined) {\n var resolutions = options.resolutions;\n maxResolution = resolutions[minZoom];\n minResolution =\n resolutions[maxZoom] !== undefined\n ? resolutions[maxZoom]\n : resolutions[resolutions.length - 1];\n if (options.constrainResolution) {\n resolutionConstraint = createSnapToResolutions(resolutions, smooth, !constrainOnlyCenter && extent, showFullExtent);\n }\n else {\n resolutionConstraint = createMinMaxResolution(maxResolution, minResolution, smooth, !constrainOnlyCenter && extent, showFullExtent);\n }\n }\n else {\n // calculate the default min and max resolution\n var size = !projExtent\n ? // use an extent that can fit the whole world if need be\n (360 * METERS_PER_UNIT[Units.DEGREES]) / projection.getMetersPerUnit()\n : Math.max(getWidth(projExtent), getHeight(projExtent));\n var defaultMaxResolution = size / DEFAULT_TILE_SIZE / Math.pow(defaultZoomFactor, DEFAULT_MIN_ZOOM);\n var defaultMinResolution = defaultMaxResolution /\n Math.pow(defaultZoomFactor, defaultMaxZoom - DEFAULT_MIN_ZOOM);\n // user provided maxResolution takes precedence\n maxResolution = options.maxResolution;\n if (maxResolution !== undefined) {\n minZoom = 0;\n }\n else {\n maxResolution = defaultMaxResolution / Math.pow(zoomFactor, minZoom);\n }\n // user provided minResolution takes precedence\n minResolution = options.minResolution;\n if (minResolution === undefined) {\n if (options.maxZoom !== undefined) {\n if (options.maxResolution !== undefined) {\n minResolution = maxResolution / Math.pow(zoomFactor, maxZoom);\n }\n else {\n minResolution = defaultMaxResolution / Math.pow(zoomFactor, maxZoom);\n }\n }\n else {\n minResolution = defaultMinResolution;\n }\n }\n // given discrete zoom levels, minResolution may be different than provided\n maxZoom =\n minZoom +\n Math.floor(Math.log(maxResolution / minResolution) / Math.log(zoomFactor));\n minResolution = maxResolution / Math.pow(zoomFactor, maxZoom - minZoom);\n if (options.constrainResolution) {\n resolutionConstraint = createSnapToPower(zoomFactor, maxResolution, minResolution, smooth, !constrainOnlyCenter && extent, showFullExtent);\n }\n else {\n resolutionConstraint = createMinMaxResolution(maxResolution, minResolution, smooth, !constrainOnlyCenter && extent, showFullExtent);\n }\n }\n return {\n constraint: resolutionConstraint,\n maxResolution: maxResolution,\n minResolution: minResolution,\n minZoom: minZoom,\n zoomFactor: zoomFactor,\n };\n}\n/**\n * @param {ViewOptions} options View options.\n * @return {import(\"./rotationconstraint.js\").Type} Rotation constraint.\n */\nexport function createRotationConstraint(options) {\n var enableRotation = options.enableRotation !== undefined ? options.enableRotation : true;\n if (enableRotation) {\n var constrainRotation = options.constrainRotation;\n if (constrainRotation === undefined || constrainRotation === true) {\n return createSnapToZero();\n }\n else if (constrainRotation === false) {\n return rotationNone;\n }\n else if (typeof constrainRotation === 'number') {\n return createSnapToN(constrainRotation);\n }\n else {\n return rotationNone;\n }\n }\n else {\n return disable;\n }\n}\n/**\n * Determine if an animation involves no view change.\n * @param {Animation} animation The animation.\n * @return {boolean} The animation involves no view change.\n */\nexport function isNoopAnimation(animation) {\n if (animation.sourceCenter && animation.targetCenter) {\n if (!coordinatesEqual(animation.sourceCenter, animation.targetCenter)) {\n return false;\n }\n }\n if (animation.sourceResolution !== animation.targetResolution) {\n return false;\n }\n if (animation.sourceRotation !== animation.targetRotation) {\n return false;\n }\n return true;\n}\n/**\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {import(\"./size.js\").Size} size Box pixel size.\n * @param {import(\"./pixel.js\").Pixel} position Position on the view to center on.\n * @param {number} resolution Resolution.\n * @param {number} rotation Rotation.\n * @return {import(\"./coordinate.js\").Coordinate} Shifted center.\n */\nfunction calculateCenterOn(coordinate, size, position, resolution, rotation) {\n // calculate rotated position\n var cosAngle = Math.cos(-rotation);\n var sinAngle = Math.sin(-rotation);\n var rotX = coordinate[0] * cosAngle - coordinate[1] * sinAngle;\n var rotY = coordinate[1] * cosAngle + coordinate[0] * sinAngle;\n rotX += (size[0] / 2 - position[0]) * resolution;\n rotY += (position[1] - size[1] / 2) * resolution;\n // go back to original angle\n sinAngle = -sinAngle; // go back to original rotation\n var centerX = rotX * cosAngle - rotY * sinAngle;\n var centerY = rotY * cosAngle + rotX * sinAngle;\n return [centerX, centerY];\n}\nexport default View;\n//# sourceMappingURL=View.js.map","/**\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/ViewProperty\n */\n/**\n * @enum {string}\n */\nexport default {\n CENTER: 'center',\n RESOLUTION: 'resolution',\n ROTATION: 'rotation',\n};\n//# sourceMappingURL=ViewProperty.js.map","/**\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 * {@link module:ol/tilegrid/TileGrid~TileGrid#getZForResolution} can use a function\n * of this type to determine which nearest resolution to use.\n *\n * This function takes a `{number}` representing a value between two array entries,\n * a `{number}` representing the value of the nearest higher entry and\n * a `{number}` representing the value of the nearest lower entry\n * as arguments and returns a `{number}`. If a negative number or zero is returned\n * the lower value will be used, if a positive number is returned the higher value\n * will be used.\n * @typedef {function(number, number, number): number} NearestDirectionFunction\n * @api\n */\n/**\n * @param {Array} arr Array in descending order.\n * @param {number} target Target.\n * @param {number|NearestDirectionFunction} direction\n * 0 means return the nearest,\n * > 0 means return the largest nearest,\n * < 0 means return the 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 (typeof direction === 'function') {\n if (direction(target, arr[i - 1], arr[i]) > 0) {\n return i - 1;\n }\n else {\n return i;\n }\n }\n else 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 preserved.\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","/**\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/color\n */\nimport { assert } from './asserts.js';\nimport { clamp } from './math.js';\n/**\n * A color represented as a short array [red, green, blue, alpha].\n * red, green, and blue should be integers in the range 0..255 inclusive.\n * alpha should be a float in the range 0..1 inclusive. If no alpha value is\n * given then `1` will be used.\n * @typedef {Array} Color\n * @api\n */\n/**\n * This RegExp matches # followed by 3, 4, 6, or 8 hex digits.\n * @const\n * @type {RegExp}\n * @private\n */\nvar HEX_COLOR_RE_ = /^#([a-f0-9]{3}|[a-f0-9]{4}(?:[a-f0-9]{2}){0,2})$/i;\n/**\n * Regular expression for matching potential named color style strings.\n * @const\n * @type {RegExp}\n * @private\n */\nvar NAMED_COLOR_RE_ = /^([a-z]*)$|^hsla?\\(.*\\)$/i;\n/**\n * Return the color as an rgba string.\n * @param {Color|string} color Color.\n * @return {string} Rgba string.\n * @api\n */\nexport function asString(color) {\n if (typeof color === 'string') {\n return color;\n }\n else {\n return toString(color);\n }\n}\n/**\n * Return named color as an rgba string.\n * @param {string} color Named color.\n * @return {string} Rgb string.\n */\nfunction fromNamed(color) {\n var el = document.createElement('div');\n el.style.color = color;\n if (el.style.color !== '') {\n document.body.appendChild(el);\n var rgb = getComputedStyle(el).color;\n document.body.removeChild(el);\n return rgb;\n }\n else {\n return '';\n }\n}\n/**\n * @param {string} s String.\n * @return {Color} Color.\n */\nexport var fromString = (function () {\n // We maintain a small cache of parsed strings. To provide cheap LRU-like\n // semantics, whenever the cache grows too large we simply delete an\n // arbitrary 25% of the entries.\n /**\n * @const\n * @type {number}\n */\n var MAX_CACHE_SIZE = 1024;\n /**\n * @type {Object}\n */\n var cache = {};\n /**\n * @type {number}\n */\n var cacheSize = 0;\n return (\n /**\n * @param {string} s String.\n * @return {Color} Color.\n */\n function (s) {\n var color;\n if (cache.hasOwnProperty(s)) {\n color = cache[s];\n }\n else {\n if (cacheSize >= MAX_CACHE_SIZE) {\n var i = 0;\n for (var key in cache) {\n if ((i++ & 3) === 0) {\n delete cache[key];\n --cacheSize;\n }\n }\n }\n color = fromStringInternal_(s);\n cache[s] = color;\n ++cacheSize;\n }\n return color;\n });\n})();\n/**\n * Return the color as an array. This function maintains a cache of calculated\n * arrays which means the result should not be modified.\n * @param {Color|string} color Color.\n * @return {Color} Color.\n * @api\n */\nexport function asArray(color) {\n if (Array.isArray(color)) {\n return color;\n }\n else {\n return fromString(color);\n }\n}\n/**\n * @param {string} s String.\n * @private\n * @return {Color} Color.\n */\nfunction fromStringInternal_(s) {\n var r, g, b, a, color;\n if (NAMED_COLOR_RE_.exec(s)) {\n s = fromNamed(s);\n }\n if (HEX_COLOR_RE_.exec(s)) {\n // hex\n var n = s.length - 1; // number of hex digits\n var d = // number of digits per channel\n void 0; // number of digits per channel\n if (n <= 4) {\n d = 1;\n }\n else {\n d = 2;\n }\n var hasAlpha = n === 4 || n === 8;\n r = parseInt(s.substr(1 + 0 * d, d), 16);\n g = parseInt(s.substr(1 + 1 * d, d), 16);\n b = parseInt(s.substr(1 + 2 * d, d), 16);\n if (hasAlpha) {\n a = parseInt(s.substr(1 + 3 * d, d), 16);\n }\n else {\n a = 255;\n }\n if (d == 1) {\n r = (r << 4) + r;\n g = (g << 4) + g;\n b = (b << 4) + b;\n if (hasAlpha) {\n a = (a << 4) + a;\n }\n }\n color = [r, g, b, a / 255];\n }\n else if (s.indexOf('rgba(') == 0) {\n // rgba()\n color = s.slice(5, -1).split(',').map(Number);\n normalize(color);\n }\n else if (s.indexOf('rgb(') == 0) {\n // rgb()\n color = s.slice(4, -1).split(',').map(Number);\n color.push(1);\n normalize(color);\n }\n else {\n assert(false, 14); // Invalid color\n }\n return color;\n}\n/**\n * TODO this function is only used in the test, we probably shouldn't export it\n * @param {Color} color Color.\n * @return {Color} Clamped color.\n */\nexport function normalize(color) {\n color[0] = clamp((color[0] + 0.5) | 0, 0, 255);\n color[1] = clamp((color[1] + 0.5) | 0, 0, 255);\n color[2] = clamp((color[2] + 0.5) | 0, 0, 255);\n color[3] = clamp(color[3], 0, 1);\n return color;\n}\n/**\n * @param {Color} color Color.\n * @return {string} String.\n */\nexport function toString(color) {\n var r = color[0];\n if (r != (r | 0)) {\n r = (r + 0.5) | 0;\n }\n var g = color[1];\n if (g != (g | 0)) {\n g = (g + 0.5) | 0;\n }\n var b = color[2];\n if (b != (b | 0)) {\n b = (b + 0.5) | 0;\n }\n var a = color[3] === undefined ? 1 : Math.round(color[3] * 100) / 100;\n return 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')';\n}\n/**\n * @param {string} s String.\n * @return {boolean} Whether the string is actually a valid color\n */\nexport function isStringColor(s) {\n if (NAMED_COLOR_RE_.test(s)) {\n s = fromNamed(s);\n }\n return (HEX_COLOR_RE_.test(s) || s.indexOf('rgba(') === 0 || s.indexOf('rgb(') === 0);\n}\n//# sourceMappingURL=color.js.map","/**\n * @module ol/colorlike\n */\nimport { toString } from './color.js';\n/**\n * A type accepted by CanvasRenderingContext2D.fillStyle\n * or CanvasRenderingContext2D.strokeStyle.\n * Represents a color, pattern, or gradient. The origin for patterns and\n * gradients as fill style is an increment of 512 css pixels from map coordinate\n * `[0, 0]`. For seamless repeat patterns, width and height of the pattern image\n * must be a factor of two (2, 4, 8, ..., 512).\n *\n * @typedef {string|CanvasPattern|CanvasGradient} ColorLike\n * @api\n */\n/**\n * @param {import(\"./color.js\").Color|ColorLike} color Color.\n * @return {ColorLike} The color as an {@link ol/colorlike~ColorLike}.\n * @api\n */\nexport function asColorLike(color) {\n if (Array.isArray(color)) {\n return toString(color);\n }\n else {\n return color;\n }\n}\n//# sourceMappingURL=colorlike.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/control/Control\n */\nimport BaseObject from '../Object.js';\nimport MapEventType from '../MapEventType.js';\nimport { VOID } from '../functions.js';\nimport { listen, unlistenByKey } from '../events.js';\nimport { removeNode } from '../dom.js';\n/**\n * @typedef {Object} Options\n * @property {HTMLElement} [element] The element is the control's\n * container element. This only needs to be specified if you're developing\n * a custom control.\n * @property {function(import(\"../MapEvent.js\").default):void} [render] Function called when\n * the control should be re-rendered. This is called in a `requestAnimationFrame`\n * callback.\n * @property {HTMLElement|string} [target] Specify a target if you want\n * the control to be rendered outside of the map's viewport.\n */\n/**\n * @classdesc\n * A control is a visible widget with a DOM element in a fixed position on the\n * screen. They can involve user input (buttons), or be informational only;\n * the position is determined using CSS. By default these are placed in the\n * container with CSS class name `ol-overlaycontainer-stopevent`, but can use\n * any outside DOM element.\n *\n * This is the base class for controls. You can use it for simple custom\n * controls by creating the element with listeners, creating an instance:\n * ```js\n * var myControl = new Control({element: myElement});\n * ```\n * and then adding this to the map.\n *\n * The main advantage of having this as a control rather than a simple separate\n * DOM element is that preventing propagation is handled for you. Controls\n * will also be objects in a {@link module:ol/Collection~Collection}, so you can use their methods.\n *\n * You can also extend this base for your own control class. See\n * examples/custom-controls for an example of how to do this.\n *\n * @api\n */\nvar Control = /** @class */ (function (_super) {\n __extends(Control, _super);\n /**\n * @param {Options} options Control options.\n */\n function Control(options) {\n var _this = _super.call(this) || this;\n var element = options.element;\n if (element && !options.target && !element.style.pointerEvents) {\n element.style.pointerEvents = 'auto';\n }\n /**\n * @protected\n * @type {HTMLElement}\n */\n _this.element = element ? element : null;\n /**\n * @private\n * @type {HTMLElement}\n */\n _this.target_ = null;\n /**\n * @private\n * @type {import(\"../PluggableMap.js\").default|null}\n */\n _this.map_ = null;\n /**\n * @protected\n * @type {!Array}\n */\n _this.listenerKeys = [];\n if (options.render) {\n _this.render = options.render;\n }\n if (options.target) {\n _this.setTarget(options.target);\n }\n return _this;\n }\n /**\n * Clean up.\n */\n Control.prototype.disposeInternal = function () {\n removeNode(this.element);\n _super.prototype.disposeInternal.call(this);\n };\n /**\n * Get the map associated with this control.\n * @return {import(\"../PluggableMap.js\").default|null} Map.\n * @api\n */\n Control.prototype.getMap = function () {\n return this.map_;\n };\n /**\n * Remove the control from its current map and attach it to the new map.\n * Pass `null` to just remove the control from the current map.\n * Subclasses may set up event handlers to get notified about changes to\n * the map here.\n * @param {import(\"../PluggableMap.js\").default|null} map Map.\n * @api\n */\n Control.prototype.setMap = function (map) {\n if (this.map_) {\n removeNode(this.element);\n }\n for (var i = 0, ii = this.listenerKeys.length; i < ii; ++i) {\n unlistenByKey(this.listenerKeys[i]);\n }\n this.listenerKeys.length = 0;\n this.map_ = map;\n if (map) {\n var target = this.target_\n ? this.target_\n : map.getOverlayContainerStopEvent();\n target.appendChild(this.element);\n if (this.render !== VOID) {\n this.listenerKeys.push(listen(map, MapEventType.POSTRENDER, this.render, this));\n }\n map.render();\n }\n };\n /**\n * Renders the control.\n * @param {import(\"../MapEvent.js\").default} mapEvent Map event.\n * @api\n */\n Control.prototype.render = function (mapEvent) { };\n /**\n * This function is used to set a target element for the control. It has no\n * effect if it is called after the control has been added to the map (i.e.\n * after `setMap` is called on the control). If no `target` is set in the\n * options passed to the control constructor and if `setTarget` is not called\n * then the control is added to the map's overlay container.\n * @param {HTMLElement|string} target Target.\n * @api\n */\n Control.prototype.setTarget = function (target) {\n this.target_ =\n typeof target === 'string' ? document.getElementById(target) : target;\n };\n return Control;\n}(BaseObject));\nexport default Control;\n//# sourceMappingURL=Control.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/control/Attribution\n */\nimport Control from './Control.js';\nimport EventType from '../events/EventType.js';\nimport { CLASS_COLLAPSED, CLASS_CONTROL, CLASS_UNSELECTABLE } from '../css.js';\nimport { equals } from '../array.js';\nimport { inView } from '../layer/Layer.js';\nimport { removeChildren, replaceNode } from '../dom.js';\n/**\n * @typedef {Object} Options\n * @property {string} [className='ol-attribution'] CSS class name.\n * @property {HTMLElement|string} [target] Specify a target if you\n * want the control to be rendered outside of the map's\n * viewport.\n * @property {boolean} [collapsible] Specify if attributions can\n * be collapsed. If not specified, sources control this behavior with their\n * `attributionsCollapsible` setting.\n * @property {boolean} [collapsed=true] Specify if attributions should\n * be collapsed at startup.\n * @property {string} [tipLabel='Attributions'] Text label to use for the button tip.\n * @property {string|HTMLElement} [label='i'] Text label to use for the\n * collapsed attributions button.\n * Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {string} [expandClassName=className + '-expand'] CSS class name for the\n * collapsed attributions button.\n * @property {string|HTMLElement} [collapseLabel='›'] Text label to use\n * for the expanded attributions button.\n * Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {string} [collapseClassName=className + '-collapse'] CSS class name for the\n * expanded attributions button.\n * @property {function(import(\"../MapEvent.js\").default):void} [render] Function called when\n * the control should be re-rendered. This is called in a `requestAnimationFrame`\n * callback.\n */\n/**\n * @classdesc\n * Control to show all the attributions associated with the layer sources\n * in the map. This control is one of the default controls included in maps.\n * By default it will show in the bottom right portion of the map, but this can\n * be changed by using a css selector for `.ol-attribution`.\n *\n * @api\n */\nvar Attribution = /** @class */ (function (_super) {\n __extends(Attribution, _super);\n /**\n * @param {Options} [opt_options] Attribution options.\n */\n function Attribution(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n _this = _super.call(this, {\n element: document.createElement('div'),\n render: options.render,\n target: options.target,\n }) || this;\n /**\n * @private\n * @type {HTMLElement}\n */\n _this.ulElement_ = document.createElement('ul');\n /**\n * @private\n * @type {boolean}\n */\n _this.collapsed_ =\n options.collapsed !== undefined ? options.collapsed : true;\n /**\n * @private\n * @type {boolean}\n */\n _this.userCollapsed_ = _this.collapsed_;\n /**\n * @private\n * @type {boolean}\n */\n _this.overrideCollapsible_ = options.collapsible !== undefined;\n /**\n * @private\n * @type {boolean}\n */\n _this.collapsible_ =\n options.collapsible !== undefined ? options.collapsible : true;\n if (!_this.collapsible_) {\n _this.collapsed_ = false;\n }\n var className = options.className !== undefined ? options.className : 'ol-attribution';\n var tipLabel = options.tipLabel !== undefined ? options.tipLabel : 'Attributions';\n var expandClassName = options.expandClassName !== undefined\n ? options.expandClassName\n : className + '-expand';\n var collapseLabel = options.collapseLabel !== undefined ? options.collapseLabel : '\\u203A';\n var collapseClassName = options.collapseClassName !== undefined\n ? options.collapseClassName\n : className + '-collapse';\n if (typeof collapseLabel === 'string') {\n /**\n * @private\n * @type {HTMLElement}\n */\n _this.collapseLabel_ = document.createElement('span');\n _this.collapseLabel_.textContent = collapseLabel;\n _this.collapseLabel_.className = collapseClassName;\n }\n else {\n _this.collapseLabel_ = collapseLabel;\n }\n var label = options.label !== undefined ? options.label : 'i';\n if (typeof label === 'string') {\n /**\n * @private\n * @type {HTMLElement}\n */\n _this.label_ = document.createElement('span');\n _this.label_.textContent = label;\n _this.label_.className = expandClassName;\n }\n else {\n _this.label_ = label;\n }\n var activeLabel = _this.collapsible_ && !_this.collapsed_ ? _this.collapseLabel_ : _this.label_;\n /**\n * @private\n * @type {HTMLElement}\n */\n _this.toggleButton_ = document.createElement('button');\n _this.toggleButton_.setAttribute('type', 'button');\n _this.toggleButton_.setAttribute('aria-expanded', String(!_this.collapsed_));\n _this.toggleButton_.title = tipLabel;\n _this.toggleButton_.appendChild(activeLabel);\n _this.toggleButton_.addEventListener(EventType.CLICK, _this.handleClick_.bind(_this), false);\n var cssClasses = className +\n ' ' +\n CLASS_UNSELECTABLE +\n ' ' +\n CLASS_CONTROL +\n (_this.collapsed_ && _this.collapsible_ ? ' ' + CLASS_COLLAPSED : '') +\n (_this.collapsible_ ? '' : ' ol-uncollapsible');\n var element = _this.element;\n element.className = cssClasses;\n element.appendChild(_this.toggleButton_);\n element.appendChild(_this.ulElement_);\n /**\n * A list of currently rendered resolutions.\n * @type {Array}\n * @private\n */\n _this.renderedAttributions_ = [];\n /**\n * @private\n * @type {boolean}\n */\n _this.renderedVisible_ = true;\n return _this;\n }\n /**\n * Collect a list of visible attributions and set the collapsible state.\n * @param {import(\"../PluggableMap.js\").FrameState} frameState Frame state.\n * @return {Array} Attributions.\n * @private\n */\n Attribution.prototype.collectSourceAttributions_ = function (frameState) {\n /**\n * Used to determine if an attribution already exists.\n * @type {!Object}\n */\n var lookup = {};\n /**\n * A list of visible attributions.\n * @type {Array}\n */\n var visibleAttributions = [];\n var collapsible = true;\n var layerStatesArray = frameState.layerStatesArray;\n for (var i = 0, ii = layerStatesArray.length; i < ii; ++i) {\n var layerState = layerStatesArray[i];\n if (!inView(layerState, frameState.viewState)) {\n continue;\n }\n var source = /** @type {import(\"../layer/Layer.js\").default} */ (layerState.layer).getSource();\n if (!source) {\n continue;\n }\n var attributionGetter = source.getAttributions();\n if (!attributionGetter) {\n continue;\n }\n var attributions = attributionGetter(frameState);\n if (!attributions) {\n continue;\n }\n collapsible =\n collapsible && source.getAttributionsCollapsible() !== false;\n if (Array.isArray(attributions)) {\n for (var j = 0, jj = attributions.length; j < jj; ++j) {\n if (!(attributions[j] in lookup)) {\n visibleAttributions.push(attributions[j]);\n lookup[attributions[j]] = true;\n }\n }\n }\n else {\n if (!(attributions in lookup)) {\n visibleAttributions.push(attributions);\n lookup[attributions] = true;\n }\n }\n }\n if (!this.overrideCollapsible_) {\n this.setCollapsible(collapsible);\n }\n return visibleAttributions;\n };\n /**\n * @private\n * @param {?import(\"../PluggableMap.js\").FrameState} frameState Frame state.\n */\n Attribution.prototype.updateElement_ = function (frameState) {\n if (!frameState) {\n if (this.renderedVisible_) {\n this.element.style.display = 'none';\n this.renderedVisible_ = false;\n }\n return;\n }\n var attributions = this.collectSourceAttributions_(frameState);\n var visible = attributions.length > 0;\n if (this.renderedVisible_ != visible) {\n this.element.style.display = visible ? '' : 'none';\n this.renderedVisible_ = visible;\n }\n if (equals(attributions, this.renderedAttributions_)) {\n return;\n }\n removeChildren(this.ulElement_);\n // append the attributions\n for (var i = 0, ii = attributions.length; i < ii; ++i) {\n var element = document.createElement('li');\n element.innerHTML = attributions[i];\n this.ulElement_.appendChild(element);\n }\n this.renderedAttributions_ = attributions;\n };\n /**\n * @param {MouseEvent} event The event to handle\n * @private\n */\n Attribution.prototype.handleClick_ = function (event) {\n event.preventDefault();\n this.handleToggle_();\n this.userCollapsed_ = this.collapsed_;\n };\n /**\n * @private\n */\n Attribution.prototype.handleToggle_ = function () {\n this.element.classList.toggle(CLASS_COLLAPSED);\n if (this.collapsed_) {\n replaceNode(this.collapseLabel_, this.label_);\n }\n else {\n replaceNode(this.label_, this.collapseLabel_);\n }\n this.collapsed_ = !this.collapsed_;\n this.toggleButton_.setAttribute('aria-expanded', String(!this.collapsed_));\n };\n /**\n * Return `true` if the attribution is collapsible, `false` otherwise.\n * @return {boolean} True if the widget is collapsible.\n * @api\n */\n Attribution.prototype.getCollapsible = function () {\n return this.collapsible_;\n };\n /**\n * Set whether the attribution should be collapsible.\n * @param {boolean} collapsible True if the widget is collapsible.\n * @api\n */\n Attribution.prototype.setCollapsible = function (collapsible) {\n if (this.collapsible_ === collapsible) {\n return;\n }\n this.collapsible_ = collapsible;\n this.element.classList.toggle('ol-uncollapsible');\n if (this.userCollapsed_) {\n this.handleToggle_();\n }\n };\n /**\n * Collapse or expand the attribution according to the passed parameter. Will\n * not do anything if the attribution isn't collapsible or if the current\n * collapsed state is already the one requested.\n * @param {boolean} collapsed True if the widget is collapsed.\n * @api\n */\n Attribution.prototype.setCollapsed = function (collapsed) {\n this.userCollapsed_ = collapsed;\n if (!this.collapsible_ || this.collapsed_ === collapsed) {\n return;\n }\n this.handleToggle_();\n };\n /**\n * Return `true` when the attribution is currently collapsed or `false`\n * otherwise.\n * @return {boolean} True if the widget is collapsed.\n * @api\n */\n Attribution.prototype.getCollapsed = function () {\n return this.collapsed_;\n };\n /**\n * Update the attribution element.\n * @param {import(\"../MapEvent.js\").default} mapEvent Map event.\n * @override\n */\n Attribution.prototype.render = function (mapEvent) {\n this.updateElement_(mapEvent.frameState);\n };\n return Attribution;\n}(Control));\nexport default Attribution;\n//# sourceMappingURL=Attribution.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/control/Rotate\n */\nimport Control from './Control.js';\nimport EventType from '../events/EventType.js';\nimport { CLASS_CONTROL, CLASS_HIDDEN, CLASS_UNSELECTABLE } from '../css.js';\nimport { easeOut } from '../easing.js';\n/**\n * @typedef {Object} Options\n * @property {string} [className='ol-rotate'] CSS class name.\n * @property {string|HTMLElement} [label='⇧'] Text label to use for the rotate button.\n * Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {string} [tipLabel='Reset rotation'] Text label to use for the rotate tip.\n * @property {string} [compassClassName='ol-compass'] CSS class name for the compass.\n * @property {number} [duration=250] Animation duration in milliseconds.\n * @property {boolean} [autoHide=true] Hide the control when rotation is 0.\n * @property {function(import(\"../MapEvent.js\").default):void} [render] Function called when the control should\n * be re-rendered. This is called in a `requestAnimationFrame` callback.\n * @property {function():void} [resetNorth] Function called when the control is clicked.\n * This will override the default `resetNorth`.\n * @property {HTMLElement|string} [target] Specify a target if you want the control to be\n * rendered outside of the map's viewport.\n */\n/**\n * @classdesc\n * A button control to reset rotation to 0.\n * To style this control use css selector `.ol-rotate`. A `.ol-hidden` css\n * selector is added to the button when the rotation is 0.\n *\n * @api\n */\nvar Rotate = /** @class */ (function (_super) {\n __extends(Rotate, _super);\n /**\n * @param {Options} [opt_options] Rotate options.\n */\n function Rotate(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n _this = _super.call(this, {\n element: document.createElement('div'),\n render: options.render,\n target: options.target,\n }) || this;\n var className = options.className !== undefined ? options.className : 'ol-rotate';\n var label = options.label !== undefined ? options.label : '\\u21E7';\n var compassClassName = options.compassClassName !== undefined\n ? options.compassClassName\n : 'ol-compass';\n /**\n * @type {HTMLElement}\n * @private\n */\n _this.label_ = null;\n if (typeof label === 'string') {\n _this.label_ = document.createElement('span');\n _this.label_.className = compassClassName;\n _this.label_.textContent = label;\n }\n else {\n _this.label_ = label;\n _this.label_.classList.add(compassClassName);\n }\n var tipLabel = options.tipLabel ? options.tipLabel : 'Reset rotation';\n var button = document.createElement('button');\n button.className = className + '-reset';\n button.setAttribute('type', 'button');\n button.title = tipLabel;\n button.appendChild(_this.label_);\n button.addEventListener(EventType.CLICK, _this.handleClick_.bind(_this), false);\n var cssClasses = className + ' ' + CLASS_UNSELECTABLE + ' ' + CLASS_CONTROL;\n var element = _this.element;\n element.className = cssClasses;\n element.appendChild(button);\n _this.callResetNorth_ = options.resetNorth ? options.resetNorth : undefined;\n /**\n * @type {number}\n * @private\n */\n _this.duration_ = options.duration !== undefined ? options.duration : 250;\n /**\n * @type {boolean}\n * @private\n */\n _this.autoHide_ = options.autoHide !== undefined ? options.autoHide : true;\n /**\n * @private\n * @type {number|undefined}\n */\n _this.rotation_ = undefined;\n if (_this.autoHide_) {\n _this.element.classList.add(CLASS_HIDDEN);\n }\n return _this;\n }\n /**\n * @param {MouseEvent} event The event to handle\n * @private\n */\n Rotate.prototype.handleClick_ = function (event) {\n event.preventDefault();\n if (this.callResetNorth_ !== undefined) {\n this.callResetNorth_();\n }\n else {\n this.resetNorth_();\n }\n };\n /**\n * @private\n */\n Rotate.prototype.resetNorth_ = function () {\n var map = this.getMap();\n var view = map.getView();\n if (!view) {\n // the map does not have a view, so we can't act\n // upon it\n return;\n }\n var rotation = view.getRotation();\n if (rotation !== undefined) {\n if (this.duration_ > 0 && rotation % (2 * Math.PI) !== 0) {\n view.animate({\n rotation: 0,\n duration: this.duration_,\n easing: easeOut,\n });\n }\n else {\n view.setRotation(0);\n }\n }\n };\n /**\n * Update the rotate control element.\n * @param {import(\"../MapEvent.js\").default} mapEvent Map event.\n * @override\n */\n Rotate.prototype.render = function (mapEvent) {\n var frameState = mapEvent.frameState;\n if (!frameState) {\n return;\n }\n var rotation = frameState.viewState.rotation;\n if (rotation != this.rotation_) {\n var transform = 'rotate(' + rotation + 'rad)';\n if (this.autoHide_) {\n var contains = this.element.classList.contains(CLASS_HIDDEN);\n if (!contains && rotation === 0) {\n this.element.classList.add(CLASS_HIDDEN);\n }\n else if (contains && rotation !== 0) {\n this.element.classList.remove(CLASS_HIDDEN);\n }\n }\n this.label_.style.transform = transform;\n }\n this.rotation_ = rotation;\n };\n return Rotate;\n}(Control));\nexport default Rotate;\n//# sourceMappingURL=Rotate.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/control/Zoom\n */\nimport Control from './Control.js';\nimport EventType from '../events/EventType.js';\nimport { CLASS_CONTROL, CLASS_UNSELECTABLE } from '../css.js';\nimport { easeOut } from '../easing.js';\n/**\n * @typedef {Object} Options\n * @property {number} [duration=250] Animation duration in milliseconds.\n * @property {string} [className='ol-zoom'] CSS class name.\n * @property {string} [zoomInClassName=className + '-in'] CSS class name for the zoom-in button.\n * @property {string} [zoomOutClassName=className + '-out'] CSS class name for the zoom-out button.\n * @property {string|HTMLElement} [zoomInLabel='+'] Text label to use for the zoom-in\n * button. Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {string|HTMLElement} [zoomOutLabel='–'] Text label to use for the zoom-out button.\n * Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {string} [zoomInTipLabel='Zoom in'] Text label to use for the button tip.\n * @property {string} [zoomOutTipLabel='Zoom out'] Text label to use for the button tip.\n * @property {number} [delta=1] The zoom delta applied on each click.\n * @property {HTMLElement|string} [target] Specify a target if you want the control to be\n * rendered outside of the map's viewport.\n */\n/**\n * @classdesc\n * A control with 2 buttons, one for zoom in and one for zoom out.\n * This control is one of the default controls of a map. To style this control\n * use css selectors `.ol-zoom-in` and `.ol-zoom-out`.\n *\n * @api\n */\nvar Zoom = /** @class */ (function (_super) {\n __extends(Zoom, _super);\n /**\n * @param {Options} [opt_options] Zoom options.\n */\n function Zoom(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n _this = _super.call(this, {\n element: document.createElement('div'),\n target: options.target,\n }) || this;\n var className = options.className !== undefined ? options.className : 'ol-zoom';\n var delta = options.delta !== undefined ? options.delta : 1;\n var zoomInClassName = options.zoomInClassName !== undefined\n ? options.zoomInClassName\n : className + '-in';\n var zoomOutClassName = options.zoomOutClassName !== undefined\n ? options.zoomOutClassName\n : className + '-out';\n var zoomInLabel = options.zoomInLabel !== undefined ? options.zoomInLabel : '+';\n var zoomOutLabel = options.zoomOutLabel !== undefined ? options.zoomOutLabel : '\\u2013';\n var zoomInTipLabel = options.zoomInTipLabel !== undefined ? options.zoomInTipLabel : 'Zoom in';\n var zoomOutTipLabel = options.zoomOutTipLabel !== undefined\n ? options.zoomOutTipLabel\n : 'Zoom out';\n var inElement = document.createElement('button');\n inElement.className = zoomInClassName;\n inElement.setAttribute('type', 'button');\n inElement.title = zoomInTipLabel;\n inElement.appendChild(typeof zoomInLabel === 'string'\n ? document.createTextNode(zoomInLabel)\n : zoomInLabel);\n inElement.addEventListener(EventType.CLICK, _this.handleClick_.bind(_this, delta), false);\n var outElement = document.createElement('button');\n outElement.className = zoomOutClassName;\n outElement.setAttribute('type', 'button');\n outElement.title = zoomOutTipLabel;\n outElement.appendChild(typeof zoomOutLabel === 'string'\n ? document.createTextNode(zoomOutLabel)\n : zoomOutLabel);\n outElement.addEventListener(EventType.CLICK, _this.handleClick_.bind(_this, -delta), false);\n var cssClasses = className + ' ' + CLASS_UNSELECTABLE + ' ' + CLASS_CONTROL;\n var element = _this.element;\n element.className = cssClasses;\n element.appendChild(inElement);\n element.appendChild(outElement);\n /**\n * @type {number}\n * @private\n */\n _this.duration_ = options.duration !== undefined ? options.duration : 250;\n return _this;\n }\n /**\n * @param {number} delta Zoom delta.\n * @param {MouseEvent} event The event to handle\n * @private\n */\n Zoom.prototype.handleClick_ = function (delta, event) {\n event.preventDefault();\n this.zoomByDelta_(delta);\n };\n /**\n * @param {number} delta Zoom delta.\n * @private\n */\n Zoom.prototype.zoomByDelta_ = function (delta) {\n var map = this.getMap();\n var view = map.getView();\n if (!view) {\n // the map does not have a view, so we can't act\n // upon it\n return;\n }\n var currentZoom = view.getZoom();\n if (currentZoom !== undefined) {\n var newZoom = view.getConstrainedZoom(currentZoom + delta);\n if (this.duration_ > 0) {\n if (view.getAnimating()) {\n view.cancelAnimations();\n }\n view.animate({\n zoom: newZoom,\n duration: this.duration_,\n easing: easeOut,\n });\n }\n else {\n view.setZoom(newZoom);\n }\n }\n };\n return Zoom;\n}(Control));\nexport default Zoom;\n//# sourceMappingURL=Zoom.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/control/FullScreen\n */\nimport Control from './Control.js';\nimport EventType from '../events/EventType.js';\nimport MapProperty from '../MapProperty.js';\nimport { CLASS_CONTROL, CLASS_UNSELECTABLE, CLASS_UNSUPPORTED } from '../css.js';\nimport { listen, unlistenByKey } from '../events.js';\nimport { replaceNode } from '../dom.js';\nvar events = [\n 'fullscreenchange',\n 'webkitfullscreenchange',\n 'MSFullscreenChange',\n];\n/**\n * @enum {string}\n */\nvar FullScreenEventType = {\n /**\n * Triggered after the map entered fullscreen.\n * @event FullScreenEventType#enterfullscreen\n * @api\n */\n ENTERFULLSCREEN: 'enterfullscreen',\n /**\n * Triggered after the map leave fullscreen.\n * @event FullScreenEventType#leavefullscreen\n * @api\n */\n LEAVEFULLSCREEN: 'leavefullscreen',\n};\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").CombinedOnSignature} FullScreenOnSignature\n */\n/**\n * @typedef {Object} Options\n * @property {string} [className='ol-full-screen'] CSS class name.\n * @property {string|Text|HTMLElement} [label='\\u2922'] Text label to use for the button.\n * Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {string|Text|HTMLElement} [labelActive='\\u00d7'] Text label to use for the\n * button when full-screen is active.\n * Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {string} [activeClassName=className + '-true'] CSS class name for the button\n * when full-screen is active.\n * @property {string} [inactiveClassName=className + '-false'] CSS class name for the button\n * when full-screen is inactive.\n * @property {string} [tipLabel='Toggle full-screen'] Text label to use for the button tip.\n * @property {boolean} [keys=false] Full keyboard access.\n * @property {HTMLElement|string} [target] Specify a target if you want the\n * control to be rendered outside of the map's viewport.\n * @property {HTMLElement|string} [source] The element to be displayed\n * fullscreen. When not provided, the element containing the map viewport will\n * be displayed fullscreen.\n */\n/**\n * @classdesc\n * Provides a button that when clicked fills up the full screen with the map.\n * The full screen source element is by default the element containing the map viewport unless\n * overridden by providing the `source` option. In which case, the dom\n * element introduced using this parameter will be displayed in full screen.\n *\n * When in full screen mode, a close button is shown to exit full screen mode.\n * The [Fullscreen API](https://www.w3.org/TR/fullscreen/) is used to\n * toggle the map in full screen mode.\n *\n * @fires FullScreenEventType#enterfullscreen\n * @fires FullScreenEventType#leavefullscreen\n * @api\n */\nvar FullScreen = /** @class */ (function (_super) {\n __extends(FullScreen, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function FullScreen(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n _this = _super.call(this, {\n element: document.createElement('div'),\n target: options.target,\n }) || this;\n /***\n * @type {FullScreenOnSignature}\n */\n _this.on;\n /***\n * @type {FullScreenOnSignature}\n */\n _this.once;\n /***\n * @type {FullScreenOnSignature}\n */\n _this.un;\n /**\n * @private\n * @type {boolean}\n */\n _this.keys_ = options.keys !== undefined ? options.keys : false;\n /**\n * @private\n * @type {HTMLElement|string|undefined}\n */\n _this.source_ = options.source;\n /**\n * @type {boolean}\n * @private\n */\n _this.isInFullscreen_ = false;\n /**\n * @private\n */\n _this.boundHandleMapTargetChange_ = _this.handleMapTargetChange_.bind(_this);\n /**\n * @private\n * @type {string}\n */\n _this.cssClassName_ =\n options.className !== undefined ? options.className : 'ol-full-screen';\n /**\n * @private\n * @type {Array}\n */\n _this.documentListeners_ = [];\n /**\n * @private\n * @type {Array}\n */\n _this.activeClassName_ =\n options.activeClassName !== undefined\n ? options.activeClassName.split(' ')\n : [_this.cssClassName_ + '-true'];\n /**\n * @private\n * @type {Array}\n */\n _this.inactiveClassName_ =\n options.inactiveClassName !== undefined\n ? options.inactiveClassName.split(' ')\n : [_this.cssClassName_ + '-false'];\n var label = options.label !== undefined ? options.label : '\\u2922';\n /**\n * @private\n * @type {Text|HTMLElement}\n */\n _this.labelNode_ =\n typeof label === 'string' ? document.createTextNode(label) : label;\n var labelActive = options.labelActive !== undefined ? options.labelActive : '\\u00d7';\n /**\n * @private\n * @type {Text|HTMLElement}\n */\n _this.labelActiveNode_ =\n typeof labelActive === 'string'\n ? document.createTextNode(labelActive)\n : labelActive;\n var tipLabel = options.tipLabel ? options.tipLabel : 'Toggle full-screen';\n /**\n * @private\n * @type {HTMLElement}\n */\n _this.button_ = document.createElement('button');\n _this.button_.title = tipLabel;\n _this.button_.setAttribute('type', 'button');\n _this.button_.appendChild(_this.labelNode_);\n _this.button_.addEventListener(EventType.CLICK, _this.handleClick_.bind(_this), false);\n _this.setClassName_(_this.button_, _this.isInFullscreen_);\n _this.element.className = \"\".concat(_this.cssClassName_, \" \").concat(CLASS_UNSELECTABLE, \" \").concat(CLASS_CONTROL);\n _this.element.appendChild(_this.button_);\n return _this;\n }\n /**\n * @param {MouseEvent} event The event to handle\n * @private\n */\n FullScreen.prototype.handleClick_ = function (event) {\n event.preventDefault();\n this.handleFullScreen_();\n };\n /**\n * @private\n */\n FullScreen.prototype.handleFullScreen_ = function () {\n var map = this.getMap();\n if (!map) {\n return;\n }\n var doc = map.getOwnerDocument();\n if (!isFullScreenSupported(doc)) {\n return;\n }\n if (isFullScreen(doc)) {\n exitFullScreen(doc);\n }\n else {\n var element = void 0;\n if (this.source_) {\n element =\n typeof this.source_ === 'string'\n ? doc.getElementById(this.source_)\n : this.source_;\n }\n else {\n element = map.getTargetElement();\n }\n if (this.keys_) {\n requestFullScreenWithKeys(element);\n }\n else {\n requestFullScreen(element);\n }\n }\n };\n /**\n * @private\n */\n FullScreen.prototype.handleFullScreenChange_ = function () {\n var map = this.getMap();\n if (!map) {\n return;\n }\n var wasInFullscreen = this.isInFullscreen_;\n this.isInFullscreen_ = isFullScreen(map.getOwnerDocument());\n if (wasInFullscreen !== this.isInFullscreen_) {\n this.setClassName_(this.button_, this.isInFullscreen_);\n if (this.isInFullscreen_) {\n replaceNode(this.labelActiveNode_, this.labelNode_);\n this.dispatchEvent(FullScreenEventType.ENTERFULLSCREEN);\n }\n else {\n replaceNode(this.labelNode_, this.labelActiveNode_);\n this.dispatchEvent(FullScreenEventType.LEAVEFULLSCREEN);\n }\n map.updateSize();\n }\n };\n /**\n * @param {HTMLElement} element Target element\n * @param {boolean} fullscreen True if fullscreen class name should be active\n * @private\n */\n FullScreen.prototype.setClassName_ = function (element, fullscreen) {\n var _a, _b, _c, _d;\n if (fullscreen) {\n (_a = element.classList).remove.apply(_a, this.inactiveClassName_);\n (_b = element.classList).add.apply(_b, this.activeClassName_);\n }\n else {\n (_c = element.classList).remove.apply(_c, this.activeClassName_);\n (_d = element.classList).add.apply(_d, this.inactiveClassName_);\n }\n };\n /**\n * Remove the control from its current map and attach it to the new map.\n * Pass `null` to just remove the control from the current map.\n * Subclasses may set up event handlers to get notified about changes to\n * the map here.\n * @param {import(\"../PluggableMap.js\").default|null} map Map.\n * @api\n */\n FullScreen.prototype.setMap = function (map) {\n var oldMap = this.getMap();\n if (oldMap) {\n oldMap.removeChangeListener(MapProperty.TARGET, this.boundHandleMapTargetChange_);\n }\n _super.prototype.setMap.call(this, map);\n this.handleMapTargetChange_();\n if (map) {\n map.addChangeListener(MapProperty.TARGET, this.boundHandleMapTargetChange_);\n }\n };\n /**\n * @private\n */\n FullScreen.prototype.handleMapTargetChange_ = function () {\n var listeners = this.documentListeners_;\n for (var i = 0, ii = listeners.length; i < ii; ++i) {\n unlistenByKey(listeners[i]);\n }\n listeners.length = 0;\n var map = this.getMap();\n if (map) {\n var doc = map.getOwnerDocument();\n if (isFullScreenSupported(doc)) {\n this.element.classList.remove(CLASS_UNSUPPORTED);\n }\n else {\n this.element.classList.add(CLASS_UNSUPPORTED);\n }\n for (var i = 0, ii = events.length; i < ii; ++i) {\n listeners.push(listen(doc, events[i], this.handleFullScreenChange_, this));\n }\n this.handleFullScreenChange_();\n }\n };\n return FullScreen;\n}(Control));\n/**\n * @param {Document} doc The root document to check.\n * @return {boolean} Fullscreen is supported by the current platform.\n */\nfunction isFullScreenSupported(doc) {\n var body = doc.body;\n return !!(body['webkitRequestFullscreen'] ||\n (body['msRequestFullscreen'] && doc['msFullscreenEnabled']) ||\n (body.requestFullscreen && doc.fullscreenEnabled));\n}\n/**\n * @param {Document} doc The root document to check.\n * @return {boolean} Element is currently in fullscreen.\n */\nfunction isFullScreen(doc) {\n return !!(doc['webkitIsFullScreen'] ||\n doc['msFullscreenElement'] ||\n doc.fullscreenElement);\n}\n/**\n * Request to fullscreen an element.\n * @param {HTMLElement} element Element to request fullscreen\n */\nfunction requestFullScreen(element) {\n if (element.requestFullscreen) {\n element.requestFullscreen();\n }\n else if (element['msRequestFullscreen']) {\n element['msRequestFullscreen']();\n }\n else if (element['webkitRequestFullscreen']) {\n element['webkitRequestFullscreen']();\n }\n}\n/**\n * Request to fullscreen an element with keyboard input.\n * @param {HTMLElement} element Element to request fullscreen\n */\nfunction requestFullScreenWithKeys(element) {\n if (element['webkitRequestFullscreen']) {\n element['webkitRequestFullscreen']();\n }\n else {\n requestFullScreen(element);\n }\n}\n/**\n * Exit fullscreen.\n * @param {Document} doc The document to exit fullscren from\n */\nfunction exitFullScreen(doc) {\n if (doc.exitFullscreen) {\n doc.exitFullscreen();\n }\n else if (doc['msExitFullscreen']) {\n doc['msExitFullscreen']();\n }\n else if (doc['webkitExitFullscreen']) {\n doc['webkitExitFullscreen']();\n }\n}\nexport default FullScreen;\n//# sourceMappingURL=FullScreen.js.map","/**\n * @module ol/control/MousePosition\n */\nvar __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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport Control from './Control.js';\nimport EventType from '../pointer/EventType.js';\nimport { get as getProjection, getTransformFromProjections, getUserProjection, identityTransform, } from '../proj.js';\nimport { listen } from '../events.js';\n/**\n * @type {string}\n */\nvar PROJECTION = 'projection';\n/**\n * @type {string}\n */\nvar COORDINATE_FORMAT = 'coordinateFormat';\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").CombinedOnSignature} MousePositionOnSignature\n */\n/**\n * @typedef {Object} Options\n * @property {string} [className='ol-mouse-position'] CSS class name.\n * @property {import(\"../coordinate.js\").CoordinateFormat} [coordinateFormat] Coordinate format.\n * @property {import(\"../proj.js\").ProjectionLike} [projection] Projection. Default is the view projection.\n * @property {function(import(\"../MapEvent.js\").default):void} [render] Function called when the\n * control should be re-rendered. This is called in a `requestAnimationFrame`\n * callback.\n * @property {HTMLElement|string} [target] Specify a target if you want the\n * control to be rendered outside of the map's viewport.\n * @property {string|boolean} [placeholder] Markup to show when the mouse position is not\n * available (e.g. when the pointer leaves the map viewport). By default, a non-breaking space\n * is rendered when the mouse leaves the viewport. To render something else, provide a string\n * to be used as the text content (e.g. 'no position' or '' for an empty string). Set the placeholder\n * to `false` to retain the last position when the mouse leaves the viewport. In a future release, this\n * will be the default behavior.\n * @property {string} [undefinedHTML=' '] This option is deprecated. Use the `placeholder` option instead.\n */\n/**\n * @classdesc\n * A control to show the 2D coordinates of the mouse cursor. By default, these\n * are in the view projection, but can be in any supported projection.\n * By default the control is shown in the top right corner of the map, but this\n * can be changed by using the css selector `.ol-mouse-position`.\n *\n * On touch devices, which usually do not have a mouse cursor, the coordinates\n * of the currently touched position are shown.\n *\n * @api\n */\nvar MousePosition = /** @class */ (function (_super) {\n __extends(MousePosition, _super);\n /**\n * @param {Options} [opt_options] Mouse position options.\n */\n function MousePosition(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n var element = document.createElement('div');\n element.className =\n options.className !== undefined ? options.className : 'ol-mouse-position';\n _this = _super.call(this, {\n element: element,\n render: options.render,\n target: options.target,\n }) || this;\n /***\n * @type {MousePositionOnSignature}\n */\n _this.on;\n /***\n * @type {MousePositionOnSignature}\n */\n _this.once;\n /***\n * @type {MousePositionOnSignature}\n */\n _this.un;\n _this.addChangeListener(PROJECTION, _this.handleProjectionChanged_);\n if (options.coordinateFormat) {\n _this.setCoordinateFormat(options.coordinateFormat);\n }\n if (options.projection) {\n _this.setProjection(options.projection);\n }\n /**\n * Change this to `false` when removing the deprecated `undefinedHTML` option.\n * @type {boolean}\n */\n var renderOnMouseOut = true;\n /**\n * @type {string}\n */\n var placeholder = ' ';\n if ('undefinedHTML' in options) {\n // deprecated behavior\n if (options.undefinedHTML !== undefined) {\n placeholder = options.undefinedHTML;\n }\n renderOnMouseOut = !!placeholder;\n }\n else if ('placeholder' in options) {\n if (options.placeholder === false) {\n renderOnMouseOut = false;\n }\n else {\n placeholder = String(options.placeholder);\n }\n }\n /**\n * @private\n * @type {string}\n */\n _this.placeholder_ = placeholder;\n /**\n * @private\n * @type {boolean}\n */\n _this.renderOnMouseOut_ = renderOnMouseOut;\n /**\n * @private\n * @type {string}\n */\n _this.renderedHTML_ = element.innerHTML;\n /**\n * @private\n * @type {?import(\"../proj/Projection.js\").default}\n */\n _this.mapProjection_ = null;\n /**\n * @private\n * @type {?import(\"../proj.js\").TransformFunction}\n */\n _this.transform_ = null;\n return _this;\n }\n /**\n * @private\n */\n MousePosition.prototype.handleProjectionChanged_ = function () {\n this.transform_ = null;\n };\n /**\n * Return the coordinate format type used to render the current position or\n * undefined.\n * @return {import(\"../coordinate.js\").CoordinateFormat|undefined} The format to render the current\n * position in.\n * @observable\n * @api\n */\n MousePosition.prototype.getCoordinateFormat = function () {\n return /** @type {import(\"../coordinate.js\").CoordinateFormat|undefined} */ (this.get(COORDINATE_FORMAT));\n };\n /**\n * Return the projection that is used to report the mouse position.\n * @return {import(\"../proj/Projection.js\").default|undefined} The projection to report mouse\n * position in.\n * @observable\n * @api\n */\n MousePosition.prototype.getProjection = function () {\n return /** @type {import(\"../proj/Projection.js\").default|undefined} */ (this.get(PROJECTION));\n };\n /**\n * @param {MouseEvent} event Browser event.\n * @protected\n */\n MousePosition.prototype.handleMouseMove = function (event) {\n var map = this.getMap();\n this.updateHTML_(map.getEventPixel(event));\n };\n /**\n * @param {Event} event Browser event.\n * @protected\n */\n MousePosition.prototype.handleMouseOut = function (event) {\n this.updateHTML_(null);\n };\n /**\n * Remove the control from its current map and attach it to the new map.\n * Pass `null` to just remove the control from the current map.\n * Subclasses may set up event handlers to get notified about changes to\n * the map here.\n * @param {import(\"../PluggableMap.js\").default|null} map Map.\n * @api\n */\n MousePosition.prototype.setMap = function (map) {\n _super.prototype.setMap.call(this, map);\n if (map) {\n var viewport = map.getViewport();\n this.listenerKeys.push(listen(viewport, EventType.POINTERMOVE, this.handleMouseMove, this));\n if (this.renderOnMouseOut_) {\n this.listenerKeys.push(listen(viewport, EventType.POINTEROUT, this.handleMouseOut, this));\n }\n this.updateHTML_(null);\n }\n };\n /**\n * Set the coordinate format type used to render the current position.\n * @param {import(\"../coordinate.js\").CoordinateFormat} format The format to render the current\n * position in.\n * @observable\n * @api\n */\n MousePosition.prototype.setCoordinateFormat = function (format) {\n this.set(COORDINATE_FORMAT, format);\n };\n /**\n * Set the projection that is used to report the mouse position.\n * @param {import(\"../proj.js\").ProjectionLike} projection The projection to report mouse\n * position in.\n * @observable\n * @api\n */\n MousePosition.prototype.setProjection = function (projection) {\n this.set(PROJECTION, getProjection(projection));\n };\n /**\n * @param {?import(\"../pixel.js\").Pixel} pixel Pixel.\n * @private\n */\n MousePosition.prototype.updateHTML_ = function (pixel) {\n var html = this.placeholder_;\n if (pixel && this.mapProjection_) {\n if (!this.transform_) {\n var projection = this.getProjection();\n if (projection) {\n this.transform_ = getTransformFromProjections(this.mapProjection_, projection);\n }\n else {\n this.transform_ = identityTransform;\n }\n }\n var map = this.getMap();\n var coordinate = map.getCoordinateFromPixelInternal(pixel);\n if (coordinate) {\n var userProjection = getUserProjection();\n if (userProjection) {\n this.transform_ = getTransformFromProjections(this.mapProjection_, userProjection);\n }\n this.transform_(coordinate, coordinate);\n var coordinateFormat = this.getCoordinateFormat();\n if (coordinateFormat) {\n html = coordinateFormat(coordinate);\n }\n else {\n html = coordinate.toString();\n }\n }\n }\n if (!this.renderedHTML_ || html !== this.renderedHTML_) {\n this.element.innerHTML = html;\n this.renderedHTML_ = html;\n }\n };\n /**\n * Update the projection. Rendering of the coordinates is done in\n * `handleMouseMove` and `handleMouseUp`.\n * @param {import(\"../MapEvent.js\").default} mapEvent Map event.\n * @override\n */\n MousePosition.prototype.render = function (mapEvent) {\n var frameState = mapEvent.frameState;\n if (!frameState) {\n this.mapProjection_ = null;\n }\n else {\n if (this.mapProjection_ != frameState.viewState.projection) {\n this.mapProjection_ = frameState.viewState.projection;\n this.transform_ = null;\n }\n }\n };\n return MousePosition;\n}(Control));\nexport default MousePosition;\n//# sourceMappingURL=MousePosition.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/control/OverviewMap\n */\nimport CompositeMapRenderer from '../renderer/Composite.js';\nimport Control from './Control.js';\nimport EventType from '../events/EventType.js';\nimport MapEventType from '../MapEventType.js';\nimport MapProperty from '../MapProperty.js';\nimport ObjectEventType from '../ObjectEventType.js';\nimport Overlay from '../Overlay.js';\nimport PluggableMap from '../PluggableMap.js';\nimport View from '../View.js';\nimport ViewProperty from '../ViewProperty.js';\nimport { CLASS_COLLAPSED, CLASS_CONTROL, CLASS_UNSELECTABLE } from '../css.js';\nimport { containsExtent, equals as equalsExtent, getBottomRight, getTopLeft, scaleFromCenter, } from '../extent.js';\nimport { listen, listenOnce } from '../events.js';\nimport { fromExtent as polygonFromExtent } from '../geom/Polygon.js';\nimport { replaceNode } from '../dom.js';\n/**\n * Maximum width and/or height extent ratio that determines when the overview\n * map should be zoomed out.\n * @type {number}\n */\nvar MAX_RATIO = 0.75;\n/**\n * Minimum width and/or height extent ratio that determines when the overview\n * map should be zoomed in.\n * @type {number}\n */\nvar MIN_RATIO = 0.1;\nvar ControlledMap = /** @class */ (function (_super) {\n __extends(ControlledMap, _super);\n function ControlledMap() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ControlledMap.prototype.createRenderer = function () {\n return new CompositeMapRenderer(this);\n };\n return ControlledMap;\n}(PluggableMap));\n/**\n * @typedef {Object} Options\n * @property {string} [className='ol-overviewmap'] CSS class name.\n * @property {boolean} [collapsed=true] Whether the control should start collapsed or not (expanded).\n * @property {string|HTMLElement} [collapseLabel='‹'] Text label to use for the\n * expanded overviewmap button. Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {boolean} [collapsible=true] Whether the control can be collapsed or not.\n * @property {string|HTMLElement} [label='›'] Text label to use for the collapsed\n * overviewmap button. Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {Array|import(\"../Collection.js\").default} [layers]\n * Layers for the overview map.\n * @property {function(import(\"../MapEvent.js\").default):void} [render] Function called when the control\n * should be re-rendered. This is called in a `requestAnimationFrame` callback.\n * @property {boolean} [rotateWithView=false] Whether the control view should rotate with the main map view.\n * @property {HTMLElement|string} [target] Specify a target if you want the control\n * to be rendered outside of the map's viewport.\n * @property {string} [tipLabel='Overview map'] Text label to use for the button tip.\n * @property {View} [view] Custom view for the overview map (should use same projection as main map). If not provided,\n * a default view with the same projection as the main map will be used.\n */\n/**\n * Create a new control with a map acting as an overview map for another\n * defined map.\n *\n * @api\n */\nvar OverviewMap = /** @class */ (function (_super) {\n __extends(OverviewMap, _super);\n /**\n * @param {Options} [opt_options] OverviewMap options.\n */\n function OverviewMap(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n _this = _super.call(this, {\n element: document.createElement('div'),\n render: options.render,\n target: options.target,\n }) || this;\n /**\n * @private\n */\n _this.boundHandleRotationChanged_ = _this.handleRotationChanged_.bind(_this);\n /**\n * @type {boolean}\n * @private\n */\n _this.collapsed_ =\n options.collapsed !== undefined ? options.collapsed : true;\n /**\n * @private\n * @type {boolean}\n */\n _this.collapsible_ =\n options.collapsible !== undefined ? options.collapsible : true;\n if (!_this.collapsible_) {\n _this.collapsed_ = false;\n }\n /**\n * @private\n * @type {boolean}\n */\n _this.rotateWithView_ =\n options.rotateWithView !== undefined ? options.rotateWithView : false;\n /**\n * @private\n * @type {import(\"../extent.js\").Extent|undefined}\n */\n _this.viewExtent_ = undefined;\n var className = options.className !== undefined ? options.className : 'ol-overviewmap';\n var tipLabel = options.tipLabel !== undefined ? options.tipLabel : 'Overview map';\n var collapseLabel = options.collapseLabel !== undefined ? options.collapseLabel : '\\u2039';\n if (typeof collapseLabel === 'string') {\n /**\n * @private\n * @type {HTMLElement}\n */\n _this.collapseLabel_ = document.createElement('span');\n _this.collapseLabel_.textContent = collapseLabel;\n }\n else {\n _this.collapseLabel_ = collapseLabel;\n }\n var label = options.label !== undefined ? options.label : '\\u203A';\n if (typeof label === 'string') {\n /**\n * @private\n * @type {HTMLElement}\n */\n _this.label_ = document.createElement('span');\n _this.label_.textContent = label;\n }\n else {\n _this.label_ = label;\n }\n var activeLabel = _this.collapsible_ && !_this.collapsed_ ? _this.collapseLabel_ : _this.label_;\n var button = document.createElement('button');\n button.setAttribute('type', 'button');\n button.title = tipLabel;\n button.appendChild(activeLabel);\n button.addEventListener(EventType.CLICK, _this.handleClick_.bind(_this), false);\n /**\n * @type {HTMLElement}\n * @private\n */\n _this.ovmapDiv_ = document.createElement('div');\n _this.ovmapDiv_.className = 'ol-overviewmap-map';\n /**\n * Explicitly given view to be used instead of a view derived from the main map.\n * @type {View}\n * @private\n */\n _this.view_ = options.view;\n /**\n * @type {ControlledMap}\n * @private\n */\n _this.ovmap_ = new ControlledMap({\n view: options.view,\n });\n var ovmap = _this.ovmap_;\n if (options.layers) {\n options.layers.forEach(function (layer) {\n ovmap.addLayer(layer);\n });\n }\n var box = document.createElement('div');\n box.className = 'ol-overviewmap-box';\n box.style.boxSizing = 'border-box';\n /**\n * @type {import(\"../Overlay.js\").default}\n * @private\n */\n _this.boxOverlay_ = new Overlay({\n position: [0, 0],\n positioning: 'center-center',\n element: box,\n });\n _this.ovmap_.addOverlay(_this.boxOverlay_);\n var cssClasses = className +\n ' ' +\n CLASS_UNSELECTABLE +\n ' ' +\n CLASS_CONTROL +\n (_this.collapsed_ && _this.collapsible_ ? ' ' + CLASS_COLLAPSED : '') +\n (_this.collapsible_ ? '' : ' ol-uncollapsible');\n var element = _this.element;\n element.className = cssClasses;\n element.appendChild(_this.ovmapDiv_);\n element.appendChild(button);\n /* Interactive map */\n var scope = _this;\n var overlay = _this.boxOverlay_;\n var overlayBox = _this.boxOverlay_.getElement();\n /* Functions definition */\n var computeDesiredMousePosition = function (mousePosition) {\n return {\n clientX: mousePosition.clientX,\n clientY: mousePosition.clientY,\n };\n };\n var move = function (event) {\n var position = /** @type {?} */ (computeDesiredMousePosition(event));\n var coordinates = ovmap.getEventCoordinateInternal(\n /** @type {MouseEvent} */ (position));\n overlay.setPosition(coordinates);\n };\n var endMoving = function (event) {\n var coordinates = ovmap.getEventCoordinateInternal(event);\n scope.getMap().getView().setCenterInternal(coordinates);\n window.removeEventListener('mousemove', move);\n window.removeEventListener('mouseup', endMoving);\n };\n /* Binding */\n overlayBox.addEventListener('mousedown', function () {\n window.addEventListener('mousemove', move);\n window.addEventListener('mouseup', endMoving);\n });\n return _this;\n }\n /**\n * Remove the control from its current map and attach it to the new map.\n * Pass `null` to just remove the control from the current map.\n * Subclasses may set up event handlers to get notified about changes to\n * the map here.\n * @param {import(\"../PluggableMap.js\").default|null} map Map.\n * @api\n */\n OverviewMap.prototype.setMap = function (map) {\n var oldMap = this.getMap();\n if (map === oldMap) {\n return;\n }\n if (oldMap) {\n var oldView = oldMap.getView();\n if (oldView) {\n this.unbindView_(oldView);\n }\n this.ovmap_.setTarget(null);\n }\n _super.prototype.setMap.call(this, map);\n if (map) {\n this.ovmap_.setTarget(this.ovmapDiv_);\n this.listenerKeys.push(listen(map, ObjectEventType.PROPERTYCHANGE, this.handleMapPropertyChange_, this));\n var view = map.getView();\n if (view) {\n this.bindView_(view);\n if (view.isDef()) {\n this.ovmap_.updateSize();\n this.resetExtent_();\n }\n }\n if (!this.ovmap_.isRendered()) {\n this.updateBoxAfterOvmapIsRendered_();\n }\n }\n };\n /**\n * Handle map property changes. This only deals with changes to the map's view.\n * @param {import(\"../Object.js\").ObjectEvent} event The propertychange event.\n * @private\n */\n OverviewMap.prototype.handleMapPropertyChange_ = function (event) {\n if (event.key === MapProperty.VIEW) {\n var oldView = /** @type {import(\"../View.js\").default} */ (event.oldValue);\n if (oldView) {\n this.unbindView_(oldView);\n }\n var newView = this.getMap().getView();\n this.bindView_(newView);\n }\n else if (!this.ovmap_.isRendered() &&\n (event.key === MapProperty.TARGET || event.key === MapProperty.SIZE)) {\n this.ovmap_.updateSize();\n }\n };\n /**\n * Register listeners for view property changes.\n * @param {import(\"../View.js\").default} view The view.\n * @private\n */\n OverviewMap.prototype.bindView_ = function (view) {\n if (!this.view_) {\n // Unless an explicit view definition was given, derive default from whatever main map uses.\n var newView = new View({\n projection: view.getProjection(),\n });\n this.ovmap_.setView(newView);\n }\n view.addChangeListener(ViewProperty.ROTATION, this.boundHandleRotationChanged_);\n // Sync once with the new view\n this.handleRotationChanged_();\n };\n /**\n * Unregister listeners for view property changes.\n * @param {import(\"../View.js\").default} view The view.\n * @private\n */\n OverviewMap.prototype.unbindView_ = function (view) {\n view.removeChangeListener(ViewProperty.ROTATION, this.boundHandleRotationChanged_);\n };\n /**\n * Handle rotation changes to the main map.\n * @private\n */\n OverviewMap.prototype.handleRotationChanged_ = function () {\n if (this.rotateWithView_) {\n this.ovmap_.getView().setRotation(this.getMap().getView().getRotation());\n }\n };\n /**\n * Reset the overview map extent if the box size (width or\n * height) is less than the size of the overview map size times minRatio\n * or is greater than the size of the overview size times maxRatio.\n *\n * If the map extent was not reset, the box size can fits in the defined\n * ratio sizes. This method then checks if is contained inside the overview\n * map current extent. If not, recenter the overview map to the current\n * main map center location.\n * @private\n */\n OverviewMap.prototype.validateExtent_ = function () {\n var map = this.getMap();\n var ovmap = this.ovmap_;\n if (!map.isRendered() || !ovmap.isRendered()) {\n return;\n }\n var mapSize = /** @type {import(\"../size.js\").Size} */ (map.getSize());\n var view = map.getView();\n var extent = view.calculateExtentInternal(mapSize);\n if (this.viewExtent_ && equalsExtent(extent, this.viewExtent_)) {\n // repeats of the same extent may indicate constraint conflicts leading to an endless cycle\n return;\n }\n this.viewExtent_ = extent;\n var ovmapSize = /** @type {import(\"../size.js\").Size} */ (ovmap.getSize());\n var ovview = ovmap.getView();\n var ovextent = ovview.calculateExtentInternal(ovmapSize);\n var topLeftPixel = ovmap.getPixelFromCoordinateInternal(getTopLeft(extent));\n var bottomRightPixel = ovmap.getPixelFromCoordinateInternal(getBottomRight(extent));\n var boxWidth = Math.abs(topLeftPixel[0] - bottomRightPixel[0]);\n var boxHeight = Math.abs(topLeftPixel[1] - bottomRightPixel[1]);\n var ovmapWidth = ovmapSize[0];\n var ovmapHeight = ovmapSize[1];\n if (boxWidth < ovmapWidth * MIN_RATIO ||\n boxHeight < ovmapHeight * MIN_RATIO ||\n boxWidth > ovmapWidth * MAX_RATIO ||\n boxHeight > ovmapHeight * MAX_RATIO) {\n this.resetExtent_();\n }\n else if (!containsExtent(ovextent, extent)) {\n this.recenter_();\n }\n };\n /**\n * Reset the overview map extent to half calculated min and max ratio times\n * the extent of the main map.\n * @private\n */\n OverviewMap.prototype.resetExtent_ = function () {\n if (MAX_RATIO === 0 || MIN_RATIO === 0) {\n return;\n }\n var map = this.getMap();\n var ovmap = this.ovmap_;\n var mapSize = /** @type {import(\"../size.js\").Size} */ (map.getSize());\n var view = map.getView();\n var extent = view.calculateExtentInternal(mapSize);\n var ovview = ovmap.getView();\n // get how many times the current map overview could hold different\n // box sizes using the min and max ratio, pick the step in the middle used\n // to calculate the extent from the main map to set it to the overview map,\n var steps = Math.log(MAX_RATIO / MIN_RATIO) / Math.LN2;\n var ratio = 1 / (Math.pow(2, steps / 2) * MIN_RATIO);\n scaleFromCenter(extent, ratio);\n ovview.fitInternal(polygonFromExtent(extent));\n };\n /**\n * Set the center of the overview map to the map center without changing its\n * resolution.\n * @private\n */\n OverviewMap.prototype.recenter_ = function () {\n var map = this.getMap();\n var ovmap = this.ovmap_;\n var view = map.getView();\n var ovview = ovmap.getView();\n ovview.setCenterInternal(view.getCenterInternal());\n };\n /**\n * Update the box using the main map extent\n * @private\n */\n OverviewMap.prototype.updateBox_ = function () {\n var map = this.getMap();\n var ovmap = this.ovmap_;\n if (!map.isRendered() || !ovmap.isRendered()) {\n return;\n }\n var mapSize = /** @type {import(\"../size.js\").Size} */ (map.getSize());\n var view = map.getView();\n var ovview = ovmap.getView();\n var rotation = this.rotateWithView_ ? 0 : -view.getRotation();\n var overlay = this.boxOverlay_;\n var box = this.boxOverlay_.getElement();\n var center = view.getCenterInternal();\n var resolution = view.getResolution();\n var ovresolution = ovview.getResolution();\n var width = (mapSize[0] * resolution) / ovresolution;\n var height = (mapSize[1] * resolution) / ovresolution;\n // set position using center coordinates\n overlay.setPosition(center);\n // set box size calculated from map extent size and overview map resolution\n if (box) {\n box.style.width = width + 'px';\n box.style.height = height + 'px';\n var transform = 'rotate(' + rotation + 'rad)';\n box.style.transform = transform;\n }\n };\n /**\n * @private\n */\n OverviewMap.prototype.updateBoxAfterOvmapIsRendered_ = function () {\n if (this.ovmapPostrenderKey_) {\n return;\n }\n this.ovmapPostrenderKey_ = listenOnce(this.ovmap_, MapEventType.POSTRENDER, function (event) {\n delete this.ovmapPostrenderKey_;\n this.updateBox_();\n }, this);\n };\n /**\n * @param {MouseEvent} event The event to handle\n * @private\n */\n OverviewMap.prototype.handleClick_ = function (event) {\n event.preventDefault();\n this.handleToggle_();\n };\n /**\n * @private\n */\n OverviewMap.prototype.handleToggle_ = function () {\n this.element.classList.toggle(CLASS_COLLAPSED);\n if (this.collapsed_) {\n replaceNode(this.collapseLabel_, this.label_);\n }\n else {\n replaceNode(this.label_, this.collapseLabel_);\n }\n this.collapsed_ = !this.collapsed_;\n // manage overview map if it had not been rendered before and control\n // is expanded\n var ovmap = this.ovmap_;\n if (!this.collapsed_) {\n if (ovmap.isRendered()) {\n this.viewExtent_ = undefined;\n ovmap.render();\n return;\n }\n ovmap.updateSize();\n this.resetExtent_();\n this.updateBoxAfterOvmapIsRendered_();\n }\n };\n /**\n * Return `true` if the overview map is collapsible, `false` otherwise.\n * @return {boolean} True if the widget is collapsible.\n * @api\n */\n OverviewMap.prototype.getCollapsible = function () {\n return this.collapsible_;\n };\n /**\n * Set whether the overview map should be collapsible.\n * @param {boolean} collapsible True if the widget is collapsible.\n * @api\n */\n OverviewMap.prototype.setCollapsible = function (collapsible) {\n if (this.collapsible_ === collapsible) {\n return;\n }\n this.collapsible_ = collapsible;\n this.element.classList.toggle('ol-uncollapsible');\n if (!collapsible && this.collapsed_) {\n this.handleToggle_();\n }\n };\n /**\n * Collapse or expand the overview map according to the passed parameter. Will\n * not do anything if the overview map isn't collapsible or if the current\n * collapsed state is already the one requested.\n * @param {boolean} collapsed True if the widget is collapsed.\n * @api\n */\n OverviewMap.prototype.setCollapsed = function (collapsed) {\n if (!this.collapsible_ || this.collapsed_ === collapsed) {\n return;\n }\n this.handleToggle_();\n };\n /**\n * Determine if the overview map is collapsed.\n * @return {boolean} The overview map is collapsed.\n * @api\n */\n OverviewMap.prototype.getCollapsed = function () {\n return this.collapsed_;\n };\n /**\n * Return `true` if the overview map view can rotate, `false` otherwise.\n * @return {boolean} True if the control view can rotate.\n * @api\n */\n OverviewMap.prototype.getRotateWithView = function () {\n return this.rotateWithView_;\n };\n /**\n * Set whether the overview map view should rotate with the main map view.\n * @param {boolean} rotateWithView True if the control view should rotate.\n * @api\n */\n OverviewMap.prototype.setRotateWithView = function (rotateWithView) {\n if (this.rotateWithView_ === rotateWithView) {\n return;\n }\n this.rotateWithView_ = rotateWithView;\n if (this.getMap().getView().getRotation() !== 0) {\n if (this.rotateWithView_) {\n this.handleRotationChanged_();\n }\n else {\n this.ovmap_.getView().setRotation(0);\n }\n this.viewExtent_ = undefined;\n this.validateExtent_();\n this.updateBox_();\n }\n };\n /**\n * Return the overview map.\n * @return {import(\"../PluggableMap.js\").default} Overview map.\n * @api\n */\n OverviewMap.prototype.getOverviewMap = function () {\n return this.ovmap_;\n };\n /**\n * Update the overview map element.\n * @param {import(\"../MapEvent.js\").default} mapEvent Map event.\n * @override\n */\n OverviewMap.prototype.render = function (mapEvent) {\n this.validateExtent_();\n this.updateBox_();\n };\n return OverviewMap;\n}(Control));\nexport default OverviewMap;\n//# sourceMappingURL=OverviewMap.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/control/ScaleLine\n */\nimport Control from './Control.js';\nimport ProjUnits from '../proj/Units.js';\nimport { CLASS_UNSELECTABLE } from '../css.js';\nimport { METERS_PER_UNIT, getPointResolution } from '../proj.js';\nimport { assert } from '../asserts.js';\n/**\n * @type {string}\n */\nvar UNITS_PROP = 'units';\n/**\n * Units for the scale line. Supported values are `'degrees'`, `'imperial'`,\n * `'nautical'`, `'metric'`, `'us'`.\n * @enum {string}\n */\nexport var Units = {\n DEGREES: 'degrees',\n IMPERIAL: 'imperial',\n NAUTICAL: 'nautical',\n METRIC: 'metric',\n US: 'us',\n};\n/**\n * @const\n * @type {Array}\n */\nvar LEADING_DIGITS = [1, 2, 5];\n/**\n * @const\n * @type {number}\n */\nvar DEFAULT_DPI = 25.4 / 0.28;\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").CombinedOnSignature} ScaleLineOnSignature\n */\n/**\n * @typedef {Object} Options\n * @property {string} [className='ol-scale-line'] CSS Class name.\n * @property {number} [minWidth=64] Minimum width in pixels at the OGC default dpi. The width will be\n * adjusted to match the dpi used.\n * @property {number} [maxWidth] Maximum width in pixels at the OGC default dpi. The width will be\n * adjusted to match the dpi used.\n * @property {function(import(\"../MapEvent.js\").default):void} [render] Function called when the control\n * should be re-rendered. This is called in a `requestAnimationFrame` callback.\n * @property {HTMLElement|string} [target] Specify a target if you want the control\n * to be rendered outside of the map's viewport.\n * @property {import(\"./ScaleLine.js\").Units|string} [units='metric'] Units.\n * @property {boolean} [bar=false] Render scalebars instead of a line.\n * @property {number} [steps=4] Number of steps the scalebar should use. Use even numbers\n * for best results. Only applies when `bar` is `true`.\n * @property {boolean} [text=false] Render the text scale above of the scalebar. Only applies\n * when `bar` is `true`.\n * @property {number|undefined} [dpi=undefined] dpi of output device such as printer. Only applies\n * when `bar` is `true`. If undefined the OGC default screen pixel size of 0.28mm will be assumed.\n */\n/**\n * @classdesc\n * A control displaying rough y-axis distances, calculated for the center of the\n * viewport. For conformal projections (e.g. EPSG:3857, the default view\n * projection in OpenLayers), the scale is valid for all directions.\n * No scale line will be shown when the y-axis distance of a pixel at the\n * viewport center cannot be calculated in the view projection.\n * By default the scale line will show in the bottom left portion of the map,\n * but this can be changed by using the css selector `.ol-scale-line`.\n * When specifying `bar` as `true`, a scalebar will be rendered instead\n * of a scaleline.\n *\n * @api\n */\nvar ScaleLine = /** @class */ (function (_super) {\n __extends(ScaleLine, _super);\n /**\n * @param {Options} [opt_options] Scale line options.\n */\n function ScaleLine(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n var className = options.className !== undefined\n ? options.className\n : options.bar\n ? 'ol-scale-bar'\n : 'ol-scale-line';\n _this = _super.call(this, {\n element: document.createElement('div'),\n render: options.render,\n target: options.target,\n }) || this;\n /***\n * @type {ScaleLineOnSignature}\n */\n _this.on;\n /***\n * @type {ScaleLineOnSignature}\n */\n _this.once;\n /***\n * @type {ScaleLineOnSignature}\n */\n _this.un;\n /**\n * @private\n * @type {HTMLElement}\n */\n _this.innerElement_ = document.createElement('div');\n _this.innerElement_.className = className + '-inner';\n _this.element.className = className + ' ' + CLASS_UNSELECTABLE;\n _this.element.appendChild(_this.innerElement_);\n /**\n * @private\n * @type {?import(\"../View.js\").State}\n */\n _this.viewState_ = null;\n /**\n * @private\n * @type {number}\n */\n _this.minWidth_ = options.minWidth !== undefined ? options.minWidth : 64;\n /**\n * @private\n * @type {number|undefined}\n */\n _this.maxWidth_ = options.maxWidth;\n /**\n * @private\n * @type {boolean}\n */\n _this.renderedVisible_ = false;\n /**\n * @private\n * @type {number|undefined}\n */\n _this.renderedWidth_ = undefined;\n /**\n * @private\n * @type {string}\n */\n _this.renderedHTML_ = '';\n _this.addChangeListener(UNITS_PROP, _this.handleUnitsChanged_);\n _this.setUnits(options.units || Units.METRIC);\n /**\n * @private\n * @type {boolean}\n */\n _this.scaleBar_ = options.bar || false;\n /**\n * @private\n * @type {number}\n */\n _this.scaleBarSteps_ = options.steps || 4;\n /**\n * @private\n * @type {boolean}\n */\n _this.scaleBarText_ = options.text || false;\n /**\n * @private\n * @type {number|undefined}\n */\n _this.dpi_ = options.dpi || undefined;\n return _this;\n }\n /**\n * Return the units to use in the scale line.\n * @return {import(\"./ScaleLine.js\").Units} The units\n * to use in the scale line.\n * @observable\n * @api\n */\n ScaleLine.prototype.getUnits = function () {\n return this.get(UNITS_PROP);\n };\n /**\n * @private\n */\n ScaleLine.prototype.handleUnitsChanged_ = function () {\n this.updateElement_();\n };\n /**\n * Set the units to use in the scale line.\n * @param {import(\"./ScaleLine.js\").Units} units The units to use in the scale line.\n * @observable\n * @api\n */\n ScaleLine.prototype.setUnits = function (units) {\n this.set(UNITS_PROP, units);\n };\n /**\n * Specify the dpi of output device such as printer.\n * @param {number|undefined} dpi The dpi of output device.\n * @api\n */\n ScaleLine.prototype.setDpi = function (dpi) {\n this.dpi_ = dpi;\n };\n /**\n * @private\n */\n ScaleLine.prototype.updateElement_ = function () {\n var viewState = this.viewState_;\n if (!viewState) {\n if (this.renderedVisible_) {\n this.element.style.display = 'none';\n this.renderedVisible_ = false;\n }\n return;\n }\n var center = viewState.center;\n var projection = viewState.projection;\n var units = this.getUnits();\n var pointResolutionUnits = units == Units.DEGREES ? ProjUnits.DEGREES : ProjUnits.METERS;\n var pointResolution = getPointResolution(projection, viewState.resolution, center, pointResolutionUnits);\n var minWidth = (this.minWidth_ * (this.dpi_ || DEFAULT_DPI)) / DEFAULT_DPI;\n var maxWidth = this.maxWidth_ !== undefined\n ? (this.maxWidth_ * (this.dpi_ || DEFAULT_DPI)) / DEFAULT_DPI\n : undefined;\n var nominalCount = minWidth * pointResolution;\n var suffix = '';\n if (units == Units.DEGREES) {\n var metersPerDegree = METERS_PER_UNIT[ProjUnits.DEGREES];\n nominalCount *= metersPerDegree;\n if (nominalCount < metersPerDegree / 60) {\n suffix = '\\u2033'; // seconds\n pointResolution *= 3600;\n }\n else if (nominalCount < metersPerDegree) {\n suffix = '\\u2032'; // minutes\n pointResolution *= 60;\n }\n else {\n suffix = '\\u00b0'; // degrees\n }\n }\n else if (units == Units.IMPERIAL) {\n if (nominalCount < 0.9144) {\n suffix = 'in';\n pointResolution /= 0.0254;\n }\n else if (nominalCount < 1609.344) {\n suffix = 'ft';\n pointResolution /= 0.3048;\n }\n else {\n suffix = 'mi';\n pointResolution /= 1609.344;\n }\n }\n else if (units == Units.NAUTICAL) {\n pointResolution /= 1852;\n suffix = 'NM';\n }\n else if (units == Units.METRIC) {\n if (nominalCount < 0.001) {\n suffix = 'μm';\n pointResolution *= 1000000;\n }\n else if (nominalCount < 1) {\n suffix = 'mm';\n pointResolution *= 1000;\n }\n else if (nominalCount < 1000) {\n suffix = 'm';\n }\n else {\n suffix = 'km';\n pointResolution /= 1000;\n }\n }\n else if (units == Units.US) {\n if (nominalCount < 0.9144) {\n suffix = 'in';\n pointResolution *= 39.37;\n }\n else if (nominalCount < 1609.344) {\n suffix = 'ft';\n pointResolution /= 0.30480061;\n }\n else {\n suffix = 'mi';\n pointResolution /= 1609.3472;\n }\n }\n else {\n assert(false, 33); // Invalid units\n }\n var i = 3 * Math.floor(Math.log(minWidth * pointResolution) / Math.log(10));\n var count, width, decimalCount;\n var previousCount, previousWidth, previousDecimalCount;\n while (true) {\n decimalCount = Math.floor(i / 3);\n var decimal = Math.pow(10, decimalCount);\n count = LEADING_DIGITS[((i % 3) + 3) % 3] * decimal;\n width = Math.round(count / pointResolution);\n if (isNaN(width)) {\n this.element.style.display = 'none';\n this.renderedVisible_ = false;\n return;\n }\n if (maxWidth !== undefined && width >= maxWidth) {\n count = previousCount;\n width = previousWidth;\n decimalCount = previousDecimalCount;\n break;\n }\n else if (width >= minWidth) {\n break;\n }\n previousCount = count;\n previousWidth = width;\n previousDecimalCount = decimalCount;\n ++i;\n }\n var html;\n if (this.scaleBar_) {\n html = this.createScaleBar(width, count, suffix);\n }\n else {\n html = count.toFixed(decimalCount < 0 ? -decimalCount : 0) + ' ' + suffix;\n }\n if (this.renderedHTML_ != html) {\n this.innerElement_.innerHTML = html;\n this.renderedHTML_ = html;\n }\n if (this.renderedWidth_ != width) {\n this.innerElement_.style.width = width + 'px';\n this.renderedWidth_ = width;\n }\n if (!this.renderedVisible_) {\n this.element.style.display = '';\n this.renderedVisible_ = true;\n }\n };\n /**\n * @private\n * @param {number} width The current width of the scalebar.\n * @param {number} scale The current scale.\n * @param {string} suffix The suffix to append to the scale text.\n * @return {string} The stringified HTML of the scalebar.\n */\n ScaleLine.prototype.createScaleBar = function (width, scale, suffix) {\n var mapScale = '1 : ' + Math.round(this.getScaleForResolution()).toLocaleString();\n var scaleSteps = [];\n var stepWidth = width / this.scaleBarSteps_;\n var backgroundColor = 'ol-scale-singlebar-odd';\n for (var i = 0; i < this.scaleBarSteps_; i++) {\n if (i === 0) {\n // create the first marker at position 0\n scaleSteps.push(this.createMarker('absolute', i));\n }\n scaleSteps.push('
' +\n '
' +\n '
' +\n this.createMarker('relative', i) +\n /*render text every second step, except when only 2 steps */\n (i % 2 === 0 || this.scaleBarSteps_ === 2\n ? this.createStepText(i, width, false, scale, suffix)\n : '') +\n '
');\n if (i === this.scaleBarSteps_ - 1) {\n {\n /*render text at the end */\n }\n scaleSteps.push(this.createStepText(i + 1, width, true, scale, suffix));\n }\n // switch style of steps\n backgroundColor =\n backgroundColor === 'ol-scale-singlebar-odd'\n ? 'ol-scale-singlebar-even'\n : 'ol-scale-singlebar-odd';\n }\n var scaleBarText;\n if (this.scaleBarText_) {\n scaleBarText =\n '
' +\n mapScale +\n '
';\n }\n else {\n scaleBarText = '';\n }\n var container = '
' +\n scaleBarText +\n scaleSteps.join('') +\n '
';\n return container;\n };\n /**\n * Creates a marker at given position\n * @param {string} position The position, absolute or relative\n * @param {number} i The iterator\n * @return {string} The stringified div containing the marker\n */\n ScaleLine.prototype.createMarker = function (position, i) {\n var top = position === 'absolute' ? 3 : -10;\n return ('
');\n };\n /**\n * Creates the label for a marker marker at given position\n * @param {number} i The iterator\n * @param {number} width The width the scalebar will currently use\n * @param {boolean} isLast Flag indicating if we add the last step text\n * @param {number} scale The current scale for the whole scalebar\n * @param {string} suffix The suffix for the scale\n * @return {string} The stringified div containing the step text\n */\n ScaleLine.prototype.createStepText = function (i, width, isLast, scale, suffix) {\n var length = i === 0 ? 0 : Math.round((scale / this.scaleBarSteps_) * i * 100) / 100;\n var lengthString = length + (i === 0 ? '' : ' ' + suffix);\n var margin = i === 0 ? -3 : (width / this.scaleBarSteps_) * -1;\n var minWidth = i === 0 ? 0 : (width / this.scaleBarSteps_) * 2;\n return ('
' +\n lengthString +\n '
');\n };\n /**\n * Returns the appropriate scale for the given resolution and units.\n * @return {number} The appropriate scale.\n */\n ScaleLine.prototype.getScaleForResolution = function () {\n var resolution = getPointResolution(this.viewState_.projection, this.viewState_.resolution, this.viewState_.center, ProjUnits.METERS);\n var dpi = this.dpi_ || DEFAULT_DPI;\n var inchesPerMeter = 1000 / 25.4;\n return parseFloat(resolution.toString()) * inchesPerMeter * dpi;\n };\n /**\n * Update the scale line element.\n * @param {import(\"../MapEvent.js\").default} mapEvent Map event.\n * @override\n */\n ScaleLine.prototype.render = function (mapEvent) {\n var frameState = mapEvent.frameState;\n if (!frameState) {\n this.viewState_ = null;\n }\n else {\n this.viewState_ = frameState.viewState;\n }\n this.updateElement_();\n };\n return ScaleLine;\n}(Control));\nexport default ScaleLine;\n//# sourceMappingURL=ScaleLine.js.map","/**\n * @module ol/control/ZoomSlider\n */\nvar __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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport Control from './Control.js';\nimport EventType from '../events/EventType.js';\nimport PointerEventType from '../pointer/EventType.js';\nimport { CLASS_CONTROL, CLASS_UNSELECTABLE } from '../css.js';\nimport { clamp } from '../math.js';\nimport { easeOut } from '../easing.js';\nimport { listen, unlistenByKey } from '../events.js';\nimport { stopPropagation } from '../events/Event.js';\n/**\n * The enum for available directions.\n *\n * @enum {number}\n */\nvar Direction = {\n VERTICAL: 0,\n HORIZONTAL: 1,\n};\n/**\n * @typedef {Object} Options\n * @property {string} [className='ol-zoomslider'] CSS class name.\n * @property {number} [duration=200] Animation duration in milliseconds.\n * @property {function(import(\"../MapEvent.js\").default):void} [render] Function called when the control\n * should be re-rendered. This is called in a `requestAnimationFrame` callback.\n */\n/**\n * @classdesc\n * A slider type of control for zooming.\n *\n * Example:\n *\n * map.addControl(new ZoomSlider());\n *\n * @api\n */\nvar ZoomSlider = /** @class */ (function (_super) {\n __extends(ZoomSlider, _super);\n /**\n * @param {Options} [opt_options] Zoom slider options.\n */\n function ZoomSlider(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n _this = _super.call(this, {\n element: document.createElement('div'),\n render: options.render,\n }) || this;\n /**\n * @type {!Array}\n * @private\n */\n _this.dragListenerKeys_ = [];\n /**\n * Will hold the current resolution of the view.\n *\n * @type {number|undefined}\n * @private\n */\n _this.currentResolution_ = undefined;\n /**\n * The direction of the slider. Will be determined from actual display of the\n * container and defaults to Direction.VERTICAL.\n *\n * @type {Direction}\n * @private\n */\n _this.direction_ = Direction.VERTICAL;\n /**\n * @type {boolean}\n * @private\n */\n _this.dragging_;\n /**\n * @type {number}\n * @private\n */\n _this.heightLimit_ = 0;\n /**\n * @type {number}\n * @private\n */\n _this.widthLimit_ = 0;\n /**\n * @type {number|undefined}\n * @private\n */\n _this.startX_;\n /**\n * @type {number|undefined}\n * @private\n */\n _this.startY_;\n /**\n * The calculated thumb size (border box plus margins). Set when initSlider_\n * is called.\n * @type {import(\"../size.js\").Size}\n * @private\n */\n _this.thumbSize_ = null;\n /**\n * Whether the slider is initialized.\n * @type {boolean}\n * @private\n */\n _this.sliderInitialized_ = false;\n /**\n * @type {number}\n * @private\n */\n _this.duration_ = options.duration !== undefined ? options.duration : 200;\n var className = options.className !== undefined ? options.className : 'ol-zoomslider';\n var thumbElement = document.createElement('button');\n thumbElement.setAttribute('type', 'button');\n thumbElement.className = className + '-thumb ' + CLASS_UNSELECTABLE;\n var containerElement = _this.element;\n containerElement.className =\n className + ' ' + CLASS_UNSELECTABLE + ' ' + CLASS_CONTROL;\n containerElement.appendChild(thumbElement);\n containerElement.addEventListener(PointerEventType.POINTERDOWN, _this.handleDraggerStart_.bind(_this), false);\n containerElement.addEventListener(PointerEventType.POINTERMOVE, _this.handleDraggerDrag_.bind(_this), false);\n containerElement.addEventListener(PointerEventType.POINTERUP, _this.handleDraggerEnd_.bind(_this), false);\n containerElement.addEventListener(EventType.CLICK, _this.handleContainerClick_.bind(_this), false);\n thumbElement.addEventListener(EventType.CLICK, stopPropagation, false);\n return _this;\n }\n /**\n * Remove the control from its current map and attach it to the new map.\n * Pass `null` to just remove the control from the current map.\n * Subclasses may set up event handlers to get notified about changes to\n * the map here.\n * @param {import(\"../PluggableMap.js\").default|null} map Map.\n * @api\n */\n ZoomSlider.prototype.setMap = function (map) {\n _super.prototype.setMap.call(this, map);\n if (map) {\n map.render();\n }\n };\n /**\n * Initializes the slider element. This will determine and set this controls\n * direction_ and also constrain the dragging of the thumb to always be within\n * the bounds of the container.\n *\n * @return {boolean} Initialization successful\n * @private\n */\n ZoomSlider.prototype.initSlider_ = function () {\n var container = this.element;\n var containerWidth = container.offsetWidth;\n var containerHeight = container.offsetHeight;\n if (containerWidth === 0 && containerHeight === 0) {\n return (this.sliderInitialized_ = false);\n }\n var containerStyle = getComputedStyle(container);\n containerWidth -=\n parseFloat(containerStyle['paddingRight']) +\n parseFloat(containerStyle['paddingLeft']);\n containerHeight -=\n parseFloat(containerStyle['paddingTop']) +\n parseFloat(containerStyle['paddingBottom']);\n var thumb = /** @type {HTMLElement} */ (container.firstElementChild);\n var thumbStyle = getComputedStyle(thumb);\n var thumbWidth = thumb.offsetWidth +\n parseFloat(thumbStyle['marginRight']) +\n parseFloat(thumbStyle['marginLeft']);\n var thumbHeight = thumb.offsetHeight +\n parseFloat(thumbStyle['marginTop']) +\n parseFloat(thumbStyle['marginBottom']);\n this.thumbSize_ = [thumbWidth, thumbHeight];\n if (containerWidth > containerHeight) {\n this.direction_ = Direction.HORIZONTAL;\n this.widthLimit_ = containerWidth - thumbWidth;\n }\n else {\n this.direction_ = Direction.VERTICAL;\n this.heightLimit_ = containerHeight - thumbHeight;\n }\n return (this.sliderInitialized_ = true);\n };\n /**\n * @param {PointerEvent} event The browser event to handle.\n * @private\n */\n ZoomSlider.prototype.handleContainerClick_ = function (event) {\n var view = this.getMap().getView();\n var relativePosition = this.getRelativePosition_(event.offsetX - this.thumbSize_[0] / 2, event.offsetY - this.thumbSize_[1] / 2);\n var resolution = this.getResolutionForPosition_(relativePosition);\n var zoom = view.getConstrainedZoom(view.getZoomForResolution(resolution));\n view.animateInternal({\n zoom: zoom,\n duration: this.duration_,\n easing: easeOut,\n });\n };\n /**\n * Handle dragger start events.\n * @param {PointerEvent} event The drag event.\n * @private\n */\n ZoomSlider.prototype.handleDraggerStart_ = function (event) {\n if (!this.dragging_ && event.target === this.element.firstElementChild) {\n var element = /** @type {HTMLElement} */ (this.element.firstElementChild);\n this.getMap().getView().beginInteraction();\n this.startX_ = event.clientX - parseFloat(element.style.left);\n this.startY_ = event.clientY - parseFloat(element.style.top);\n this.dragging_ = true;\n if (this.dragListenerKeys_.length === 0) {\n var drag = this.handleDraggerDrag_;\n var end = this.handleDraggerEnd_;\n var doc = this.getMap().getOwnerDocument();\n this.dragListenerKeys_.push(listen(doc, PointerEventType.POINTERMOVE, drag, this), listen(doc, PointerEventType.POINTERUP, end, this));\n }\n }\n };\n /**\n * Handle dragger drag events.\n *\n * @param {PointerEvent} event The drag event.\n * @private\n */\n ZoomSlider.prototype.handleDraggerDrag_ = function (event) {\n if (this.dragging_) {\n var deltaX = event.clientX - this.startX_;\n var deltaY = event.clientY - this.startY_;\n var relativePosition = this.getRelativePosition_(deltaX, deltaY);\n this.currentResolution_ =\n this.getResolutionForPosition_(relativePosition);\n this.getMap().getView().setResolution(this.currentResolution_);\n }\n };\n /**\n * Handle dragger end events.\n * @param {PointerEvent} event The drag event.\n * @private\n */\n ZoomSlider.prototype.handleDraggerEnd_ = function (event) {\n if (this.dragging_) {\n var view = this.getMap().getView();\n view.endInteraction();\n this.dragging_ = false;\n this.startX_ = undefined;\n this.startY_ = undefined;\n this.dragListenerKeys_.forEach(unlistenByKey);\n this.dragListenerKeys_.length = 0;\n }\n };\n /**\n * Positions the thumb inside its container according to the given resolution.\n *\n * @param {number} res The res.\n * @private\n */\n ZoomSlider.prototype.setThumbPosition_ = function (res) {\n var position = this.getPositionForResolution_(res);\n var thumb = /** @type {HTMLElement} */ (this.element.firstElementChild);\n if (this.direction_ == Direction.HORIZONTAL) {\n thumb.style.left = this.widthLimit_ * position + 'px';\n }\n else {\n thumb.style.top = this.heightLimit_ * position + 'px';\n }\n };\n /**\n * Calculates the relative position of the thumb given x and y offsets. The\n * relative position scales from 0 to 1. The x and y offsets are assumed to be\n * in pixel units within the dragger limits.\n *\n * @param {number} x Pixel position relative to the left of the slider.\n * @param {number} y Pixel position relative to the top of the slider.\n * @return {number} The relative position of the thumb.\n * @private\n */\n ZoomSlider.prototype.getRelativePosition_ = function (x, y) {\n var amount;\n if (this.direction_ === Direction.HORIZONTAL) {\n amount = x / this.widthLimit_;\n }\n else {\n amount = y / this.heightLimit_;\n }\n return clamp(amount, 0, 1);\n };\n /**\n * Calculates the corresponding resolution of the thumb given its relative\n * position (where 0 is the minimum and 1 is the maximum).\n *\n * @param {number} position The relative position of the thumb.\n * @return {number} The corresponding resolution.\n * @private\n */\n ZoomSlider.prototype.getResolutionForPosition_ = function (position) {\n var fn = this.getMap().getView().getResolutionForValueFunction();\n return fn(1 - position);\n };\n /**\n * Determines the relative position of the slider for the given resolution. A\n * relative position of 0 corresponds to the minimum view resolution. A\n * relative position of 1 corresponds to the maximum view resolution.\n *\n * @param {number} res The resolution.\n * @return {number} The relative position value (between 0 and 1).\n * @private\n */\n ZoomSlider.prototype.getPositionForResolution_ = function (res) {\n var fn = this.getMap().getView().getValueForResolutionFunction();\n return clamp(1 - fn(res), 0, 1);\n };\n /**\n * Update the zoomslider element.\n * @param {import(\"../MapEvent.js\").default} mapEvent Map event.\n * @override\n */\n ZoomSlider.prototype.render = function (mapEvent) {\n if (!mapEvent.frameState) {\n return;\n }\n if (!this.sliderInitialized_ && !this.initSlider_()) {\n return;\n }\n var res = mapEvent.frameState.viewState.resolution;\n this.currentResolution_ = res;\n this.setThumbPosition_(res);\n };\n return ZoomSlider;\n}(Control));\nexport default ZoomSlider;\n//# sourceMappingURL=ZoomSlider.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/control/ZoomToExtent\n */\nimport Control from './Control.js';\nimport EventType from '../events/EventType.js';\nimport { CLASS_CONTROL, CLASS_UNSELECTABLE } from '../css.js';\nimport { fromExtent as polygonFromExtent } from '../geom/Polygon.js';\n/**\n * @typedef {Object} Options\n * @property {string} [className='ol-zoom-extent'] Class name.\n * @property {HTMLElement|string} [target] Specify a target if you want the control\n * to be rendered outside of the map's viewport.\n * @property {string|HTMLElement} [label='E'] Text label to use for the button.\n * Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {string} [tipLabel='Fit to extent'] Text label to use for the button tip.\n * @property {import(\"../extent.js\").Extent} [extent] The extent to zoom to. If undefined the validity\n * extent of the view projection is used.\n */\n/**\n * @classdesc\n * A button control which, when pressed, changes the map view to a specific\n * extent. To style this control use the css selector `.ol-zoom-extent`.\n *\n * @api\n */\nvar ZoomToExtent = /** @class */ (function (_super) {\n __extends(ZoomToExtent, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function ZoomToExtent(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n _this = _super.call(this, {\n element: document.createElement('div'),\n target: options.target,\n }) || this;\n /**\n * @type {?import(\"../extent.js\").Extent|null}\n * @protected\n */\n _this.extent = options.extent ? options.extent : null;\n var className = options.className !== undefined ? options.className : 'ol-zoom-extent';\n var label = options.label !== undefined ? options.label : 'E';\n var tipLabel = options.tipLabel !== undefined ? options.tipLabel : 'Fit to extent';\n var button = document.createElement('button');\n button.setAttribute('type', 'button');\n button.title = tipLabel;\n button.appendChild(typeof label === 'string' ? document.createTextNode(label) : label);\n button.addEventListener(EventType.CLICK, _this.handleClick_.bind(_this), false);\n var cssClasses = className + ' ' + CLASS_UNSELECTABLE + ' ' + CLASS_CONTROL;\n var element = _this.element;\n element.className = cssClasses;\n element.appendChild(button);\n return _this;\n }\n /**\n * @param {MouseEvent} event The event to handle\n * @private\n */\n ZoomToExtent.prototype.handleClick_ = function (event) {\n event.preventDefault();\n this.handleZoomToExtent();\n };\n /**\n * @protected\n */\n ZoomToExtent.prototype.handleZoomToExtent = function () {\n var map = this.getMap();\n var view = map.getView();\n var extent = !this.extent\n ? view.getProjection().getExtent()\n : this.extent;\n view.fitInternal(polygonFromExtent(extent));\n };\n return ZoomToExtent;\n}(Control));\nexport default ZoomToExtent;\n//# sourceMappingURL=ZoomToExtent.js.map","/**\n * @module ol/control\n */\nimport Attribution from './control/Attribution.js';\nimport Collection from './Collection.js';\nimport Rotate from './control/Rotate.js';\nimport Zoom from './control/Zoom.js';\nexport { default as Attribution } from './control/Attribution.js';\nexport { default as Control } from './control/Control.js';\nexport { default as FullScreen } from './control/FullScreen.js';\nexport { default as MousePosition } from './control/MousePosition.js';\nexport { default as OverviewMap } from './control/OverviewMap.js';\nexport { default as Rotate } from './control/Rotate.js';\nexport { default as ScaleLine } from './control/ScaleLine.js';\nexport { default as Zoom } from './control/Zoom.js';\nexport { default as ZoomSlider } from './control/ZoomSlider.js';\nexport { default as ZoomToExtent } from './control/ZoomToExtent.js';\n/**\n * @typedef {Object} DefaultsOptions\n * @property {boolean} [attribution=true] Include\n * {@link module:ol/control/Attribution~Attribution}.\n * @property {import(\"./control/Attribution.js\").Options} [attributionOptions]\n * Options for {@link module:ol/control/Attribution~Attribution}.\n * @property {boolean} [rotate=true] Include\n * {@link module:ol/control/Rotate~Rotate}.\n * @property {import(\"./control/Rotate.js\").Options} [rotateOptions] Options\n * for {@link module:ol/control/Rotate~Rotate}.\n * @property {boolean} [zoom] Include {@link module:ol/control/Zoom~Zoom}.\n * @property {import(\"./control/Zoom.js\").Options} [zoomOptions] Options for\n * {@link module:ol/control/Zoom~Zoom}.\n * @api\n */\n/**\n * Set of controls included in maps by default. Unless configured otherwise,\n * this returns a collection containing an instance of each of the following\n * controls:\n * * {@link module:ol/control/Zoom~Zoom}\n * * {@link module:ol/control/Rotate~Rotate}\n * * {@link module:ol/control/Attribution~Attribution}\n *\n * @param {DefaultsOptions} [opt_options]\n * Defaults options.\n * @return {Collection}\n * Controls.\n * @api\n */\nexport function defaults(opt_options) {\n var options = opt_options ? opt_options : {};\n var controls = new Collection();\n var zoomControl = options.zoom !== undefined ? options.zoom : true;\n if (zoomControl) {\n controls.push(new Zoom(options.zoomOptions));\n }\n var rotateControl = options.rotate !== undefined ? options.rotate : true;\n if (rotateControl) {\n controls.push(new Rotate(options.rotateOptions));\n }\n var attributionControl = options.attribution !== undefined ? options.attribution : true;\n if (attributionControl) {\n controls.push(new Attribution(options.attributionOptions));\n }\n return controls;\n}\n//# sourceMappingURL=control.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","/**\n * @module ol/css\n */\n/**\n * @typedef {Object} FontParameters\n * @property {string} style Style.\n * @property {string} variant Variant.\n * @property {string} weight Weight.\n * @property {string} size Size.\n * @property {string} lineHeight LineHeight.\n * @property {string} family Family.\n * @property {Array} families Families.\n */\n/**\n * The CSS class for hidden feature.\n *\n * @const\n * @type {string}\n */\nexport var CLASS_HIDDEN = 'ol-hidden';\n/**\n * The CSS class that we'll give the DOM elements to have them selectable.\n *\n * @const\n * @type {string}\n */\nexport var CLASS_SELECTABLE = 'ol-selectable';\n/**\n * The CSS class that we'll give the DOM elements to have them unselectable.\n *\n * @const\n * @type {string}\n */\nexport var CLASS_UNSELECTABLE = 'ol-unselectable';\n/**\n * The CSS class for unsupported feature.\n *\n * @const\n * @type {string}\n */\nexport var CLASS_UNSUPPORTED = 'ol-unsupported';\n/**\n * The CSS class for controls.\n *\n * @const\n * @type {string}\n */\nexport var CLASS_CONTROL = 'ol-control';\n/**\n * The CSS class that we'll give the DOM elements that are collapsed, i.e.\n * to those elements which usually can be expanded.\n *\n * @const\n * @type {string}\n */\nexport var CLASS_COLLAPSED = 'ol-collapsed';\n/**\n * From https://stackoverflow.com/questions/10135697/regex-to-parse-any-css-font\n * @type {RegExp}\n */\nvar fontRegEx = new RegExp([\n '^\\\\s*(?=(?:(?:[-a-z]+\\\\s*){0,2}(italic|oblique))?)',\n '(?=(?:(?:[-a-z]+\\\\s*){0,2}(small-caps))?)',\n '(?=(?:(?:[-a-z]+\\\\s*){0,2}(bold(?:er)?|lighter|[1-9]00 ))?)',\n '(?:(?:normal|\\\\1|\\\\2|\\\\3)\\\\s*){0,3}((?:xx?-)?',\n '(?:small|large)|medium|smaller|larger|[\\\\.\\\\d]+(?:\\\\%|in|[cem]m|ex|p[ctx]))',\n '(?:\\\\s*\\\\/\\\\s*(normal|[\\\\.\\\\d]+(?:\\\\%|in|[cem]m|ex|p[ctx])?))',\n '?\\\\s*([-,\\\\\"\\\\\\'\\\\sa-z]+?)\\\\s*$',\n].join(''), 'i');\nvar fontRegExMatchIndex = [\n 'style',\n 'variant',\n 'weight',\n 'size',\n 'lineHeight',\n 'family',\n];\n/**\n * Get the list of font families from a font spec. Note that this doesn't work\n * for font families that have commas in them.\n * @param {string} fontSpec The CSS font property.\n * @return {FontParameters|null} The font parameters (or null if the input spec is invalid).\n */\nexport var getFontParameters = function (fontSpec) {\n var match = fontSpec.match(fontRegEx);\n if (!match) {\n return null;\n }\n var style = /** @type {FontParameters} */ ({\n lineHeight: 'normal',\n size: '1.2em',\n style: 'normal',\n weight: 'normal',\n variant: 'normal',\n });\n for (var i = 0, ii = fontRegExMatchIndex.length; i < ii; ++i) {\n var value = match[i + 1];\n if (value !== undefined) {\n style[fontRegExMatchIndex[i]] = value;\n }\n }\n style.families = style.family.split(/,\\s?/);\n return style;\n};\n//# sourceMappingURL=css.js.map","import { WORKER_OFFSCREEN_CANVAS } from './has.js';\n/**\n * @module ol/dom\n */\n//FIXME Move this function to the canvas module\n/**\n * Create an html canvas element and returns its 2d context.\n * @param {number} [opt_width] Canvas width.\n * @param {number} [opt_height] Canvas height.\n * @param {Array} [opt_canvasPool] Canvas pool to take existing canvas from.\n * @param {CanvasRenderingContext2DSettings} [opt_Context2DSettings] CanvasRenderingContext2DSettings\n * @return {CanvasRenderingContext2D} The context.\n */\nexport function createCanvasContext2D(opt_width, opt_height, opt_canvasPool, opt_Context2DSettings) {\n /** @type {HTMLCanvasElement|OffscreenCanvas} */\n var canvas;\n if (opt_canvasPool && opt_canvasPool.length) {\n canvas = opt_canvasPool.shift();\n }\n else if (WORKER_OFFSCREEN_CANVAS) {\n canvas = new OffscreenCanvas(opt_width || 300, opt_height || 300);\n }\n else {\n canvas = document.createElement('canvas');\n }\n if (opt_width) {\n canvas.width = opt_width;\n }\n if (opt_height) {\n canvas.height = opt_height;\n }\n //FIXME Allow OffscreenCanvasRenderingContext2D as return type\n return /** @type {CanvasRenderingContext2D} */ (canvas.getContext('2d', opt_Context2DSettings));\n}\n/**\n * Releases canvas memory to avoid exceeding memory limits in Safari.\n * See https://pqina.nl/blog/total-canvas-memory-use-exceeds-the-maximum-limit/\n * @param {CanvasRenderingContext2D} context Context.\n */\nexport function releaseCanvas(context) {\n var canvas = context.canvas;\n canvas.width = 1;\n canvas.height = 1;\n context.clearRect(0, 0, 1, 1);\n}\n/**\n * Get the current computed width for the given element including margin,\n * padding and border.\n * Equivalent to jQuery's `$(el).outerWidth(true)`.\n * @param {!HTMLElement} element Element.\n * @return {number} The width.\n */\nexport function outerWidth(element) {\n var width = element.offsetWidth;\n var style = getComputedStyle(element);\n width += parseInt(style.marginLeft, 10) + parseInt(style.marginRight, 10);\n return width;\n}\n/**\n * Get the current computed height for the given element including margin,\n * padding and border.\n * Equivalent to jQuery's `$(el).outerHeight(true)`.\n * @param {!HTMLElement} element Element.\n * @return {number} The height.\n */\nexport function outerHeight(element) {\n var height = element.offsetHeight;\n var style = getComputedStyle(element);\n height += parseInt(style.marginTop, 10) + parseInt(style.marginBottom, 10);\n return height;\n}\n/**\n * @param {Node} newNode Node to replace old node\n * @param {Node} oldNode The node to be replaced\n */\nexport function replaceNode(newNode, oldNode) {\n var parent = oldNode.parentNode;\n if (parent) {\n parent.replaceChild(newNode, oldNode);\n }\n}\n/**\n * @param {Node} node The node to remove.\n * @return {Node|null} The node that was removed or null.\n */\nexport function removeNode(node) {\n return node && node.parentNode ? node.parentNode.removeChild(node) : null;\n}\n/**\n * @param {Node} node The node to remove the children from.\n */\nexport function removeChildren(node) {\n while (node.lastChild) {\n node.removeChild(node.lastChild);\n }\n}\n/**\n * Transform the children of a parent node so they match the\n * provided list of children. This function aims to efficiently\n * remove, add, and reorder child nodes while maintaining a simple\n * implementation (it is not guaranteed to minimize DOM operations).\n * @param {Node} node The parent node whose children need reworking.\n * @param {Array} children The desired children.\n */\nexport function replaceChildren(node, children) {\n var oldChildren = node.childNodes;\n for (var i = 0; true; ++i) {\n var oldChild = oldChildren[i];\n var newChild = children[i];\n // check if our work is done\n if (!oldChild && !newChild) {\n break;\n }\n // check if children match\n if (oldChild === newChild) {\n continue;\n }\n // check if a new child needs to be added\n if (!oldChild) {\n node.appendChild(newChild);\n continue;\n }\n // check if an old child needs to be removed\n if (!newChild) {\n node.removeChild(oldChild);\n --i;\n continue;\n }\n // reorder\n node.insertBefore(newChild, oldChild);\n }\n}\n//# sourceMappingURL=dom.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","/**\n * @module ol/events\n */\nimport { clear } from './obj.js';\n/**\n * Key to use with {@link module:ol/Observable.unByKey}.\n * @typedef {Object} EventsKey\n * @property {ListenerFunction} listener Listener.\n * @property {import(\"./events/Target.js\").EventTargetLike} target Target.\n * @property {string} type 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 HandleEvent listener function.\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/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 * @type {boolean}\n */\n this.defaultPrevented;\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 * Prevent default. This means that no emulated `click`, `singleclick` or `doubleclick` events\n * will be fired.\n * @api\n */\n BaseEvent.prototype.preventDefault = function () {\n this.defaultPrevented = 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/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","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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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 var isString = typeof event === 'string';\n var type = isString ? event : event.type;\n var listeners = this.listeners_ && this.listeners_[type];\n if (!listeners) {\n return;\n }\n var evt = isString ? new Event(event) : /** @type {Event} */ (event);\n if (!evt.target) {\n evt.target = this.eventTarget_ || this;\n }\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 var propagate;\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 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 * 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/extent\n */\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 * Extent corner.\n * @typedef {'bottom-left' | 'bottom-right' | 'top-left' | 'top-right'} Corner\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 {Corner} corner Corner.\n * @return {import(\"./coordinate.js\").Coordinate} Corner coordinate.\n */\nexport function getCorner(extent, corner) {\n var coordinate;\n if (corner === 'bottom-left') {\n coordinate = getBottomLeft(extent);\n }\n else if (corner === 'bottom-right') {\n coordinate = getBottomRight(extent);\n }\n else if (corner === 'top-left') {\n coordinate = getTopLeft(extent);\n }\n else if (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 _a = getRotatedViewport(center, resolution, rotation, size), x0 = _a[0], y0 = _a[1], x1 = _a[2], y1 = _a[3], x2 = _a[4], y2 = _a[5], x3 = _a[6], y3 = _a[7];\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 * @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 * @return {Array} Linear ring representing the viewport.\n */\nexport function getRotatedViewport(center, resolution, rotation, size) {\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 return [\n x - xCos + ySin,\n y - xSin - yCos,\n x - xCos - ySin,\n y - xSin + yCos,\n x + xCos - ySin,\n y + xSin + yCos,\n x + xCos + ySin,\n y + xSin - yCos,\n x - xCos + ySin,\n y - xSin - yCos,\n ];\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/**\n * Fits the extent to the real world\n *\n * If the extent does not cross the anti meridian, this will return the extent in an array\n * If the extent crosses the anti meridian, the extent will be sliced, so each part fits within the\n * real world\n *\n *\n * @param {Extent} extent Extent.\n * @param {import(\"./proj/Projection.js\").default} projection Projection\n * @return {Array} The extent within the real world extent.\n */\nexport function wrapAndSliceX(extent, projection) {\n if (projection.canWrapX()) {\n var projectionExtent = projection.getExtent();\n if (!isFinite(extent[0]) || !isFinite(extent[2])) {\n return [[projectionExtent[0], extent[1], projectionExtent[2], extent[3]]];\n }\n wrapX(extent, projection);\n var worldWidth = getWidth(projectionExtent);\n if (getWidth(extent) > worldWidth) {\n // the extent wraps around on itself\n return [[projectionExtent[0], extent[1], projectionExtent[2], extent[3]]];\n }\n else if (extent[0] < projectionExtent[0]) {\n // the extent crosses the anti meridian, so it needs to be sliced\n return [\n [extent[0] + worldWidth, extent[1], projectionExtent[2], extent[3]],\n [projectionExtent[0], extent[1], extent[2], extent[3]],\n ];\n }\n else if (extent[2] > projectionExtent[2]) {\n // the extent crosses the anti meridian, so it needs to be sliced\n return [\n [extent[0], extent[1], projectionExtent[2], extent[3]],\n [projectionExtent[0], extent[1], extent[2] - worldWidth, extent[3]],\n ];\n }\n }\n return [extent];\n}\n//# sourceMappingURL=extent.js.map","/**\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/featureloader\n */\nimport { VOID } from './functions.js';\n/**\n *\n * @type {boolean}\n * @private\n */\nvar withCredentials = false;\n/**\n * {@link module:ol/source/Vector~VectorSource} sources use a function of this type to\n * load features.\n *\n * This function takes up to 5 arguments. These are an {@link module:ol/extent~Extent} representing\n * the area to be loaded, a `{number}` representing the resolution (map units per pixel), an\n * {@link module:ol/proj/Projection~Projection} for the projection, an optional success callback that should get\n * the loaded features passed as an argument and an optional failure callback with no arguments. If\n * the callbacks are not used, the corresponding vector source will not fire `'featuresloadend'` and\n * `'featuresloaderror'` events. `this` within the function is bound to the\n * {@link module:ol/source/Vector~VectorSource} it's called from.\n *\n * The function is responsible for loading the features and adding them to the\n * source.\n * @typedef {function(this:(import(\"./source/Vector\").default|import(\"./VectorTile.js\").default),\n * import(\"./extent.js\").Extent,\n * number,\n * import(\"./proj/Projection.js\").default,\n * function(Array): void=,\n * function(): void=): void} FeatureLoader\n * @api\n */\n/**\n * {@link module:ol/source/Vector~VectorSource} sources use a function of this type to\n * get the url to load features from.\n *\n * This function takes an {@link module:ol/extent~Extent} representing the area\n * to be loaded, a `{number}` representing the resolution (map units per pixel)\n * and an {@link module:ol/proj/Projection~Projection} for the projection as\n * arguments and returns a `{string}` representing the URL.\n * @typedef {function(import(\"./extent.js\").Extent, number, import(\"./proj/Projection.js\").default): string} FeatureUrlFunction\n * @api\n */\n/**\n * @param {string|FeatureUrlFunction} url Feature URL service.\n * @param {import(\"./format/Feature.js\").default} format Feature format.\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {number} resolution Resolution.\n * @param {import(\"./proj/Projection.js\").default} projection Projection.\n * @param {function(Array, import(\"./proj/Projection.js\").default): void} success Success\n * Function called with the loaded features and optionally with the data projection.\n * @param {function(): void} failure Failure\n * Function called when loading failed.\n */\nexport function loadFeaturesXhr(url, format, extent, resolution, projection, success, failure) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', typeof url === 'function' ? url(extent, resolution, projection) : url, true);\n if (format.getType() == 'arraybuffer') {\n xhr.responseType = 'arraybuffer';\n }\n xhr.withCredentials = withCredentials;\n /**\n * @param {Event} event Event.\n * @private\n */\n xhr.onload = function (event) {\n // status will be 0 for file:// urls\n if (!xhr.status || (xhr.status >= 200 && xhr.status < 300)) {\n var type = format.getType();\n /** @type {Document|Node|Object|string|undefined} */\n var source = void 0;\n if (type == 'json' || type == 'text') {\n source = xhr.responseText;\n }\n else if (type == 'xml') {\n source = xhr.responseXML;\n if (!source) {\n source = new DOMParser().parseFromString(xhr.responseText, 'application/xml');\n }\n }\n else if (type == 'arraybuffer') {\n source = /** @type {ArrayBuffer} */ (xhr.response);\n }\n if (source) {\n success(\n /** @type {Array} */\n (format.readFeatures(source, {\n extent: extent,\n featureProjection: projection,\n })), format.readProjection(source));\n }\n else {\n failure();\n }\n }\n else {\n failure();\n }\n };\n /**\n * @private\n */\n xhr.onerror = failure;\n xhr.send();\n}\n/**\n * Create an XHR feature loader for a `url` and `format`. The feature loader\n * loads features (with XHR), parses the features, and adds them to the\n * vector source.\n * @param {string|FeatureUrlFunction} url Feature URL service.\n * @param {import(\"./format/Feature.js\").default} format Feature format.\n * @return {FeatureLoader} The feature loader.\n * @api\n */\nexport function xhr(url, format) {\n /**\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {number} resolution Resolution.\n * @param {import(\"./proj/Projection.js\").default} projection Projection.\n * @param {function(Array): void} [success] Success\n * Function called when loading succeeded.\n * @param {function(): void} [failure] Failure\n * Function called when loading failed.\n * @this {import(\"./source/Vector\").default}\n */\n return function (extent, resolution, projection, success, failure) {\n var source = /** @type {import(\"./source/Vector\").default} */ (this);\n loadFeaturesXhr(url, format, extent, resolution, projection, \n /**\n * @param {Array} features The loaded features.\n * @param {import(\"./proj/Projection.js\").default} dataProjection Data\n * projection.\n */\n function (features, dataProjection) {\n source.addFeatures(features);\n if (success !== undefined) {\n success(features);\n }\n }, \n /* FIXME handle error */ failure ? failure : VOID);\n };\n}\n/**\n * Setter for the withCredentials configuration for the XHR.\n *\n * @param {boolean} xhrWithCredentials The value of withCredentials to set.\n * Compare https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/\n * @api\n */\nexport function setWithCredentials(xhrWithCredentials) {\n withCredentials = xhrWithCredentials;\n}\n//# sourceMappingURL=featureloader.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/format/EsriJSON\n */\nimport Feature from '../Feature.js';\nimport GeometryLayout from '../geom/GeometryLayout.js';\nimport JSONFeature from './JSONFeature.js';\nimport LineString from '../geom/LineString.js';\nimport LinearRing from '../geom/LinearRing.js';\nimport MultiLineString from '../geom/MultiLineString.js';\nimport MultiPoint from '../geom/MultiPoint.js';\nimport MultiPolygon from '../geom/MultiPolygon.js';\nimport Point from '../geom/Point.js';\nimport Polygon from '../geom/Polygon.js';\nimport { assert } from '../asserts.js';\nimport { assign, isEmpty } from '../obj.js';\nimport { containsExtent } from '../extent.js';\nimport { deflateCoordinates } from '../geom/flat/deflate.js';\nimport { get as getProjection } from '../proj.js';\nimport { linearRingIsClockwise } from '../geom/flat/orient.js';\nimport { transformGeometryWithOptions } from './Feature.js';\n/**\n * @typedef {import(\"arcgis-rest-api\").Feature} EsriJSONFeature\n * @typedef {import(\"arcgis-rest-api\").FeatureSet} EsriJSONFeatureSet\n * @typedef {import(\"arcgis-rest-api\").Geometry} EsriJSONGeometry\n * @typedef {import(\"arcgis-rest-api\").Point} EsriJSONPoint\n * @typedef {import(\"arcgis-rest-api\").Polyline} EsriJSONPolyline\n * @typedef {import(\"arcgis-rest-api\").Polygon} EsriJSONPolygon\n * @typedef {import(\"arcgis-rest-api\").Multipoint} EsriJSONMultipoint\n * @typedef {import(\"arcgis-rest-api\").HasZM} EsriJSONHasZM\n * @typedef {import(\"arcgis-rest-api\").Position} EsriJSONPosition\n * @typedef {import(\"arcgis-rest-api\").SpatialReferenceWkid} EsriJSONSpatialReferenceWkid\n */\n/**\n * @typedef {Object} EsriJSONMultiPolygon\n * @property {Array>>>} rings Rings for the MultiPolygon.\n * @property {boolean} [hasM] If the polygon coordinates have an M value.\n * @property {boolean} [hasZ] If the polygon coordinates have a Z value.\n * @property {EsriJSONSpatialReferenceWkid} [spatialReference] The coordinate reference system.\n */\n/**\n * @const\n * @type {Object}\n */\nvar GEOMETRY_READERS = {\n Point: readPointGeometry,\n LineString: readLineStringGeometry,\n Polygon: readPolygonGeometry,\n MultiPoint: readMultiPointGeometry,\n MultiLineString: readMultiLineStringGeometry,\n MultiPolygon: readMultiPolygonGeometry,\n};\n/**\n * @const\n * @type {Object}\n */\nvar GEOMETRY_WRITERS = {\n Point: writePointGeometry,\n LineString: writeLineStringGeometry,\n Polygon: writePolygonGeometry,\n MultiPoint: writeMultiPointGeometry,\n MultiLineString: writeMultiLineStringGeometry,\n MultiPolygon: writeMultiPolygonGeometry,\n};\n/**\n * @typedef {Object} Options\n * @property {string} [geometryName] Geometry name to use when creating features.\n */\n/**\n * @classdesc\n * Feature format for reading and writing data in the EsriJSON format.\n *\n * @api\n */\nvar EsriJSON = /** @class */ (function (_super) {\n __extends(EsriJSON, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function EsriJSON(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n _this = _super.call(this) || this;\n /**\n * Name of the geometry attribute for features.\n * @type {string|undefined}\n * @private\n */\n _this.geometryName_ = options.geometryName;\n return _this;\n }\n /**\n * @param {Object} object Object.\n * @param {import(\"./Feature.js\").ReadOptions} [opt_options] Read options.\n * @param {string} [opt_idField] Name of the field where to get the id from.\n * @protected\n * @return {import(\"../Feature.js\").default} Feature.\n */\n EsriJSON.prototype.readFeatureFromObject = function (object, opt_options, opt_idField) {\n var esriJSONFeature = /** @type {EsriJSONFeature} */ (object);\n var geometry = readGeometry(esriJSONFeature.geometry, opt_options);\n var feature = new Feature();\n if (this.geometryName_) {\n feature.setGeometryName(this.geometryName_);\n }\n feature.setGeometry(geometry);\n if (esriJSONFeature.attributes) {\n feature.setProperties(esriJSONFeature.attributes, true);\n var id = esriJSONFeature.attributes[opt_idField];\n if (id !== undefined) {\n feature.setId(/** @type {number} */ (id));\n }\n }\n return feature;\n };\n /**\n * @param {Object} object Object.\n * @param {import(\"./Feature.js\").ReadOptions} [opt_options] Read options.\n * @protected\n * @return {Array} Features.\n */\n EsriJSON.prototype.readFeaturesFromObject = function (object, opt_options) {\n var options = opt_options ? opt_options : {};\n if (object['features']) {\n var esriJSONFeatureSet = /** @type {EsriJSONFeatureSet} */ (object);\n /** @type {Array} */\n var features = [];\n var esriJSONFeatures = esriJSONFeatureSet.features;\n for (var i = 0, ii = esriJSONFeatures.length; i < ii; ++i) {\n features.push(this.readFeatureFromObject(esriJSONFeatures[i], options, object.objectIdFieldName));\n }\n return features;\n }\n else {\n return [this.readFeatureFromObject(object, options)];\n }\n };\n /**\n * @param {EsriJSONGeometry} object Object.\n * @param {import(\"./Feature.js\").ReadOptions} [opt_options] Read options.\n * @protected\n * @return {import(\"../geom/Geometry.js\").default} Geometry.\n */\n EsriJSON.prototype.readGeometryFromObject = function (object, opt_options) {\n return readGeometry(object, opt_options);\n };\n /**\n * @param {Object} object Object.\n * @protected\n * @return {import(\"../proj/Projection.js\").default} Projection.\n */\n EsriJSON.prototype.readProjectionFromObject = function (object) {\n if (object['spatialReference'] &&\n object['spatialReference']['wkid'] !== undefined) {\n var spatialReference = /** @type {EsriJSONSpatialReferenceWkid} */ (object['spatialReference']);\n var crs = spatialReference.wkid;\n return getProjection('EPSG:' + crs);\n }\n else {\n return null;\n }\n };\n /**\n * Encode a geometry as a EsriJSON object.\n *\n * @param {import(\"../geom/Geometry.js\").default} geometry Geometry.\n * @param {import(\"./Feature.js\").WriteOptions} [opt_options] Write options.\n * @return {EsriJSONGeometry} Object.\n * @api\n */\n EsriJSON.prototype.writeGeometryObject = function (geometry, opt_options) {\n return writeGeometry(geometry, this.adaptOptions(opt_options));\n };\n /**\n * Encode a feature as a esriJSON Feature object.\n *\n * @param {import(\"../Feature.js\").default} feature Feature.\n * @param {import(\"./Feature.js\").WriteOptions} [opt_options] Write options.\n * @return {Object} Object.\n * @api\n */\n EsriJSON.prototype.writeFeatureObject = function (feature, opt_options) {\n opt_options = this.adaptOptions(opt_options);\n var object = {};\n if (!feature.hasProperties()) {\n object['attributes'] = {};\n return object;\n }\n var properties = feature.getProperties();\n var geometry = feature.getGeometry();\n if (geometry) {\n object['geometry'] = writeGeometry(geometry, opt_options);\n var projection = opt_options &&\n (opt_options.dataProjection || opt_options.featureProjection);\n if (projection) {\n object['geometry']['spatialReference'] =\n /** @type {EsriJSONSpatialReferenceWkid} */ ({\n wkid: Number(getProjection(projection).getCode().split(':').pop()),\n });\n }\n delete properties[feature.getGeometryName()];\n }\n if (!isEmpty(properties)) {\n object['attributes'] = properties;\n }\n else {\n object['attributes'] = {};\n }\n return object;\n };\n /**\n * Encode an array of features as a EsriJSON object.\n *\n * @param {Array} features Features.\n * @param {import(\"./Feature.js\").WriteOptions} [opt_options] Write options.\n * @return {EsriJSONFeatureSet} EsriJSON Object.\n * @api\n */\n EsriJSON.prototype.writeFeaturesObject = function (features, opt_options) {\n opt_options = this.adaptOptions(opt_options);\n var objects = [];\n for (var i = 0, ii = features.length; i < ii; ++i) {\n objects.push(this.writeFeatureObject(features[i], opt_options));\n }\n return {\n 'features': objects,\n };\n };\n return EsriJSON;\n}(JSONFeature));\n/**\n * @param {EsriJSONGeometry} object Object.\n * @param {import(\"./Feature.js\").ReadOptions} [opt_options] Read options.\n * @return {import(\"../geom/Geometry.js\").default} Geometry.\n */\nfunction readGeometry(object, opt_options) {\n var _a, _b;\n if (!object) {\n return null;\n }\n /** @type {import(\"../geom/Geometry.js\").Type} */\n var type;\n if (typeof object['x'] === 'number' && typeof object['y'] === 'number') {\n type = 'Point';\n }\n else if (object['points']) {\n type = 'MultiPoint';\n }\n else if (object['paths']) {\n var esriJSONPolyline = /** @type {EsriJSONPolyline} */ (object);\n if (esriJSONPolyline.paths.length === 1) {\n type = 'LineString';\n }\n else {\n type = 'MultiLineString';\n }\n }\n else if (object['rings']) {\n var esriJSONPolygon = /** @type {EsriJSONPolygon} */ (object);\n var layout = getGeometryLayout(esriJSONPolygon);\n var rings = convertRings(esriJSONPolygon.rings, layout);\n if (rings.length === 1) {\n type = 'Polygon';\n object = assign({}, object, (_a = {}, _a['rings'] = rings[0], _a));\n }\n else {\n type = 'MultiPolygon';\n object = assign({}, object, (_b = {}, _b['rings'] = rings, _b));\n }\n }\n var geometryReader = GEOMETRY_READERS[type];\n return transformGeometryWithOptions(geometryReader(object), false, opt_options);\n}\n/**\n * Determines inner and outer rings.\n * Checks if any polygons in this array contain any other polygons in this\n * array. It is used for checking for holes.\n * Logic inspired by: https://github.com/Esri/terraformer-arcgis-parser\n * @param {Array>>} rings Rings.\n * @param {import(\"../geom/GeometryLayout.js\").default} layout Geometry layout.\n * @return {Array>>>} Transformed rings.\n */\nfunction convertRings(rings, layout) {\n var flatRing = [];\n var outerRings = [];\n var holes = [];\n var i, ii;\n for (i = 0, ii = rings.length; i < ii; ++i) {\n flatRing.length = 0;\n deflateCoordinates(flatRing, 0, rings[i], layout.length);\n // is this ring an outer ring? is it clockwise?\n var clockwise = linearRingIsClockwise(flatRing, 0, flatRing.length, layout.length);\n if (clockwise) {\n outerRings.push([rings[i]]);\n }\n else {\n holes.push(rings[i]);\n }\n }\n while (holes.length) {\n var hole = holes.shift();\n var matched = false;\n // loop over all outer rings and see if they contain our hole.\n for (i = outerRings.length - 1; i >= 0; i--) {\n var outerRing = outerRings[i][0];\n var containsHole = containsExtent(new LinearRing(outerRing).getExtent(), new LinearRing(hole).getExtent());\n if (containsHole) {\n // the hole is contained push it into our polygon\n outerRings[i].push(hole);\n matched = true;\n break;\n }\n }\n if (!matched) {\n // no outer rings contain this hole turn it into and outer\n // ring (reverse it)\n outerRings.push([hole.reverse()]);\n }\n }\n return outerRings;\n}\n/**\n * @param {EsriJSONPoint} object Object.\n * @return {import(\"../geom/Geometry.js\").default} Point.\n */\nfunction readPointGeometry(object) {\n var point;\n if (object.m !== undefined && object.z !== undefined) {\n point = new Point([object.x, object.y, object.z, object.m], GeometryLayout.XYZM);\n }\n else if (object.z !== undefined) {\n point = new Point([object.x, object.y, object.z], GeometryLayout.XYZ);\n }\n else if (object.m !== undefined) {\n point = new Point([object.x, object.y, object.m], GeometryLayout.XYM);\n }\n else {\n point = new Point([object.x, object.y]);\n }\n return point;\n}\n/**\n * @param {EsriJSONPolyline} object Object.\n * @return {import(\"../geom/Geometry.js\").default} LineString.\n */\nfunction readLineStringGeometry(object) {\n var layout = getGeometryLayout(object);\n return new LineString(object.paths[0], layout);\n}\n/**\n * @param {EsriJSONPolyline} object Object.\n * @return {import(\"../geom/Geometry.js\").default} MultiLineString.\n */\nfunction readMultiLineStringGeometry(object) {\n var layout = getGeometryLayout(object);\n return new MultiLineString(object.paths, layout);\n}\n/**\n * @param {EsriJSONHasZM} object Object.\n * @return {import(\"../geom/GeometryLayout.js\").default} The geometry layout to use.\n */\nfunction getGeometryLayout(object) {\n var layout = GeometryLayout.XY;\n if (object.hasZ === true && object.hasM === true) {\n layout = GeometryLayout.XYZM;\n }\n else if (object.hasZ === true) {\n layout = GeometryLayout.XYZ;\n }\n else if (object.hasM === true) {\n layout = GeometryLayout.XYM;\n }\n return layout;\n}\n/**\n * @param {EsriJSONMultipoint} object Object.\n * @return {import(\"../geom/Geometry.js\").default} MultiPoint.\n */\nfunction readMultiPointGeometry(object) {\n var layout = getGeometryLayout(object);\n return new MultiPoint(object.points, layout);\n}\n/**\n * @param {EsriJSONMultiPolygon} object Object.\n * @return {import(\"../geom/Geometry.js\").default} MultiPolygon.\n */\nfunction readMultiPolygonGeometry(object) {\n var layout = getGeometryLayout(object);\n return new MultiPolygon(object.rings, layout);\n}\n/**\n * @param {EsriJSONPolygon} object Object.\n * @return {import(\"../geom/Geometry.js\").default} Polygon.\n */\nfunction readPolygonGeometry(object) {\n var layout = getGeometryLayout(object);\n return new Polygon(object.rings, layout);\n}\n/**\n * @param {import(\"../geom/Point.js\").default} geometry Geometry.\n * @param {import(\"./Feature.js\").WriteOptions} [opt_options] Write options.\n * @return {EsriJSONPoint} EsriJSON geometry.\n */\nfunction writePointGeometry(geometry, opt_options) {\n var coordinates = geometry.getCoordinates();\n /** @type {EsriJSONPoint} */\n var esriJSON;\n var layout = geometry.getLayout();\n if (layout === GeometryLayout.XYZ) {\n esriJSON = {\n x: coordinates[0],\n y: coordinates[1],\n z: coordinates[2],\n };\n }\n else if (layout === GeometryLayout.XYM) {\n esriJSON = {\n x: coordinates[0],\n y: coordinates[1],\n m: coordinates[2],\n };\n }\n else if (layout === GeometryLayout.XYZM) {\n esriJSON = {\n x: coordinates[0],\n y: coordinates[1],\n z: coordinates[2],\n m: coordinates[3],\n };\n }\n else if (layout === GeometryLayout.XY) {\n esriJSON = {\n x: coordinates[0],\n y: coordinates[1],\n };\n }\n else {\n assert(false, 34); // Invalid geometry layout\n }\n return esriJSON;\n}\n/**\n * @param {import(\"../geom/SimpleGeometry.js\").default} geometry Geometry.\n * @return {Object} Object with boolean hasZ and hasM keys.\n */\nfunction getHasZM(geometry) {\n var layout = geometry.getLayout();\n return {\n hasZ: layout === GeometryLayout.XYZ || layout === GeometryLayout.XYZM,\n hasM: layout === GeometryLayout.XYM || layout === GeometryLayout.XYZM,\n };\n}\n/**\n * @param {import(\"../geom/LineString.js\").default} lineString Geometry.\n * @param {import(\"./Feature.js\").WriteOptions} [opt_options] Write options.\n * @return {EsriJSONPolyline} EsriJSON geometry.\n */\nfunction writeLineStringGeometry(lineString, opt_options) {\n var hasZM = getHasZM(lineString);\n return {\n hasZ: hasZM.hasZ,\n hasM: hasZM.hasM,\n paths: [\n /** @type {Array} */ (lineString.getCoordinates()),\n ],\n };\n}\n/**\n * @param {import(\"../geom/Polygon.js\").default} polygon Geometry.\n * @param {import(\"./Feature.js\").WriteOptions} [opt_options] Write options.\n * @return {EsriJSONPolygon} EsriJSON geometry.\n */\nfunction writePolygonGeometry(polygon, opt_options) {\n // Esri geometries use the left-hand rule\n var hasZM = getHasZM(polygon);\n return {\n hasZ: hasZM.hasZ,\n hasM: hasZM.hasM,\n rings: /** @type {Array>} */ (polygon.getCoordinates(false)),\n };\n}\n/**\n * @param {import(\"../geom/MultiLineString.js\").default} multiLineString Geometry.\n * @param {import(\"./Feature.js\").WriteOptions} [opt_options] Write options.\n * @return {EsriJSONPolyline} EsriJSON geometry.\n */\nfunction writeMultiLineStringGeometry(multiLineString, opt_options) {\n var hasZM = getHasZM(multiLineString);\n return {\n hasZ: hasZM.hasZ,\n hasM: hasZM.hasM,\n paths: /** @type {Array>} */ (multiLineString.getCoordinates()),\n };\n}\n/**\n * @param {import(\"../geom/MultiPoint.js\").default} multiPoint Geometry.\n * @param {import(\"./Feature.js\").WriteOptions} [opt_options] Write options.\n * @return {EsriJSONMultipoint} EsriJSON geometry.\n */\nfunction writeMultiPointGeometry(multiPoint, opt_options) {\n var hasZM = getHasZM(multiPoint);\n return {\n hasZ: hasZM.hasZ,\n hasM: hasZM.hasM,\n points: /** @type {Array} */ (multiPoint.getCoordinates()),\n };\n}\n/**\n * @param {import(\"../geom/MultiPolygon.js\").default} geometry Geometry.\n * @param {import(\"./Feature.js\").WriteOptions} [opt_options] Write options.\n * @return {EsriJSONPolygon} EsriJSON geometry.\n */\nfunction writeMultiPolygonGeometry(geometry, opt_options) {\n var hasZM = getHasZM(geometry);\n var coordinates = geometry.getCoordinates(false);\n var output = [];\n for (var i = 0; i < coordinates.length; i++) {\n for (var x = coordinates[i].length - 1; x >= 0; x--) {\n output.push(coordinates[i][x]);\n }\n }\n return {\n hasZ: hasZM.hasZ,\n hasM: hasZM.hasM,\n rings: /** @type {Array>} */ (output),\n };\n}\n/**\n * @param {import(\"../geom/Geometry.js\").default} geometry Geometry.\n * @param {import(\"./Feature.js\").WriteOptions} [opt_options] Write options.\n * @return {EsriJSONGeometry} EsriJSON geometry.\n */\nfunction writeGeometry(geometry, opt_options) {\n var geometryWriter = GEOMETRY_WRITERS[geometry.getType()];\n return geometryWriter(transformGeometryWithOptions(geometry, true, opt_options), opt_options);\n}\nexport default EsriJSON;\n//# sourceMappingURL=EsriJSON.js.map","/**\n * @module ol/xml\n */\nimport { extend } from './array.js';\n/**\n * When using {@link module:ol/xml.makeChildAppender} or\n * {@link module:ol/xml.makeSimpleNodeFactory}, the top `objectStack` item needs\n * to have this structure.\n * @typedef {Object} NodeStackItem\n * @property {Element} node Node.\n */\n/**\n * @typedef {function(Element, Array<*>): void} Parser\n */\n/**\n * @typedef {function(Element, *, Array<*>): void} Serializer\n */\n/**\n * @type {string}\n */\nexport var XML_SCHEMA_INSTANCE_URI = 'http://www.w3.org/2001/XMLSchema-instance';\n/**\n * @param {string} namespaceURI Namespace URI.\n * @param {string} qualifiedName Qualified name.\n * @return {Element} Node.\n */\nexport function createElementNS(namespaceURI, qualifiedName) {\n return getDocument().createElementNS(namespaceURI, qualifiedName);\n}\n/**\n * Recursively grab all text content of child nodes into a single string.\n * @param {Node} node Node.\n * @param {boolean} normalizeWhitespace Normalize whitespace: remove all line\n * breaks.\n * @return {string} All text content.\n * @api\n */\nexport function getAllTextContent(node, normalizeWhitespace) {\n return getAllTextContent_(node, normalizeWhitespace, []).join('');\n}\n/**\n * Recursively grab all text content of child nodes into a single string.\n * @param {Node} node Node.\n * @param {boolean} normalizeWhitespace Normalize whitespace: remove all line\n * breaks.\n * @param {Array} accumulator Accumulator.\n * @private\n * @return {Array} Accumulator.\n */\nexport function getAllTextContent_(node, normalizeWhitespace, accumulator) {\n if (node.nodeType == Node.CDATA_SECTION_NODE ||\n node.nodeType == Node.TEXT_NODE) {\n if (normalizeWhitespace) {\n accumulator.push(String(node.nodeValue).replace(/(\\r\\n|\\r|\\n)/g, ''));\n }\n else {\n accumulator.push(node.nodeValue);\n }\n }\n else {\n var n = void 0;\n for (n = node.firstChild; n; n = n.nextSibling) {\n getAllTextContent_(n, normalizeWhitespace, accumulator);\n }\n }\n return accumulator;\n}\n/**\n * @param {Object} object Object.\n * @return {boolean} Is a document.\n */\nexport function isDocument(object) {\n return 'documentElement' in object;\n}\n/**\n * @param {Element} node Node.\n * @param {?string} namespaceURI Namespace URI.\n * @param {string} name Attribute name.\n * @return {string} Value\n */\nexport function getAttributeNS(node, namespaceURI, name) {\n return node.getAttributeNS(namespaceURI, name) || '';\n}\n/**\n * Parse an XML string to an XML Document.\n * @param {string} xml XML.\n * @return {Document} Document.\n * @api\n */\nexport function parse(xml) {\n return new DOMParser().parseFromString(xml, 'application/xml');\n}\n/**\n * Make an array extender function for extending the array at the top of the\n * object stack.\n * @param {function(this: T, Node, Array<*>): (Array<*>|undefined)} valueReader Value reader.\n * @param {T} [opt_this] The object to use as `this` in `valueReader`.\n * @return {Parser} Parser.\n * @template T\n */\nexport function makeArrayExtender(valueReader, opt_this) {\n return (\n /**\n * @param {Node} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n function (node, objectStack) {\n var value = valueReader.call(opt_this !== undefined ? opt_this : this, node, objectStack);\n if (value !== undefined) {\n var array = /** @type {Array<*>} */ (objectStack[objectStack.length - 1]);\n extend(array, value);\n }\n });\n}\n/**\n * Make an array pusher function for pushing to the array at the top of the\n * object stack.\n * @param {function(this: T, Element, Array<*>): *} valueReader Value reader.\n * @param {T} [opt_this] The object to use as `this` in `valueReader`.\n * @return {Parser} Parser.\n * @template T\n */\nexport function makeArrayPusher(valueReader, opt_this) {\n return (\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n function (node, objectStack) {\n var value = valueReader.call(opt_this !== undefined ? opt_this : this, node, objectStack);\n if (value !== undefined) {\n var array = /** @type {Array<*>} */ (objectStack[objectStack.length - 1]);\n array.push(value);\n }\n });\n}\n/**\n * Make an object stack replacer function for replacing the object at the\n * top of the stack.\n * @param {function(this: T, Node, Array<*>): *} valueReader Value reader.\n * @param {T} [opt_this] The object to use as `this` in `valueReader`.\n * @return {Parser} Parser.\n * @template T\n */\nexport function makeReplacer(valueReader, opt_this) {\n return (\n /**\n * @param {Node} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n function (node, objectStack) {\n var value = valueReader.call(opt_this !== undefined ? opt_this : this, node, objectStack);\n if (value !== undefined) {\n objectStack[objectStack.length - 1] = value;\n }\n });\n}\n/**\n * Make an object property pusher function for adding a property to the\n * object at the top of the stack.\n * @param {function(this: T, Element, Array<*>): *} valueReader Value reader.\n * @param {string} [opt_property] Property.\n * @param {T} [opt_this] The object to use as `this` in `valueReader`.\n * @return {Parser} Parser.\n * @template T\n */\nexport function makeObjectPropertyPusher(valueReader, opt_property, opt_this) {\n return (\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n function (node, objectStack) {\n var value = valueReader.call(opt_this !== undefined ? opt_this : this, node, objectStack);\n if (value !== undefined) {\n var object = /** @type {!Object} */ (objectStack[objectStack.length - 1]);\n var property = opt_property !== undefined ? opt_property : node.localName;\n var array = void 0;\n if (property in object) {\n array = object[property];\n }\n else {\n array = [];\n object[property] = array;\n }\n array.push(value);\n }\n });\n}\n/**\n * Make an object property setter function.\n * @param {function(this: T, Element, Array<*>): *} valueReader Value reader.\n * @param {string} [opt_property] Property.\n * @param {T} [opt_this] The object to use as `this` in `valueReader`.\n * @return {Parser} Parser.\n * @template T\n */\nexport function makeObjectPropertySetter(valueReader, opt_property, opt_this) {\n return (\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n function (node, objectStack) {\n var value = valueReader.call(opt_this !== undefined ? opt_this : this, node, objectStack);\n if (value !== undefined) {\n var object = /** @type {!Object} */ (objectStack[objectStack.length - 1]);\n var property = opt_property !== undefined ? opt_property : node.localName;\n object[property] = value;\n }\n });\n}\n/**\n * Create a serializer that appends nodes written by its `nodeWriter` to its\n * designated parent. The parent is the `node` of the\n * {@link module:ol/xml~NodeStackItem} at the top of the `objectStack`.\n * @param {function(this: T, Node, V, Array<*>): void} nodeWriter Node writer.\n * @param {T} [opt_this] The object to use as `this` in `nodeWriter`.\n * @return {Serializer} Serializer.\n * @template T, V\n */\nexport function makeChildAppender(nodeWriter, opt_this) {\n return function (node, value, objectStack) {\n nodeWriter.call(opt_this !== undefined ? opt_this : this, node, value, objectStack);\n var parent = /** @type {NodeStackItem} */ (objectStack[objectStack.length - 1]);\n var parentNode = parent.node;\n parentNode.appendChild(node);\n };\n}\n/**\n * Create a serializer that calls the provided `nodeWriter` from\n * {@link module:ol/xml.serialize}. This can be used by the parent writer to have the\n * `nodeWriter` called with an array of values when the `nodeWriter` was\n * designed to serialize a single item. An example would be a LineString\n * geometry writer, which could be reused for writing MultiLineString\n * geometries.\n * @param {function(this: T, Element, V, Array<*>): void} nodeWriter Node writer.\n * @param {T} [opt_this] The object to use as `this` in `nodeWriter`.\n * @return {Serializer} Serializer.\n * @template T, V\n */\nexport function makeArraySerializer(nodeWriter, opt_this) {\n var serializersNS, nodeFactory;\n return function (node, value, objectStack) {\n if (serializersNS === undefined) {\n serializersNS = {};\n var serializers = {};\n serializers[node.localName] = nodeWriter;\n serializersNS[node.namespaceURI] = serializers;\n nodeFactory = makeSimpleNodeFactory(node.localName);\n }\n serialize(serializersNS, nodeFactory, value, objectStack);\n };\n}\n/**\n * Create a node factory which can use the `opt_keys` passed to\n * {@link module:ol/xml.serialize} or {@link module:ol/xml.pushSerializeAndPop} as node names,\n * or a fixed node name. The namespace of the created nodes can either be fixed,\n * or the parent namespace will be used.\n * @param {string} [opt_nodeName] Fixed node name which will be used for all\n * created nodes. If not provided, the 3rd argument to the resulting node\n * factory needs to be provided and will be the nodeName.\n * @param {string} [opt_namespaceURI] Fixed namespace URI which will be used for\n * all created nodes. If not provided, the namespace of the parent node will\n * be used.\n * @return {function(*, Array<*>, string=): (Node|undefined)} Node factory.\n */\nexport function makeSimpleNodeFactory(opt_nodeName, opt_namespaceURI) {\n var fixedNodeName = opt_nodeName;\n return (\n /**\n * @param {*} value Value.\n * @param {Array<*>} objectStack Object stack.\n * @param {string} [opt_nodeName] Node name.\n * @return {Node} Node.\n */\n function (value, objectStack, opt_nodeName) {\n var context = /** @type {NodeStackItem} */ (objectStack[objectStack.length - 1]);\n var node = context.node;\n var nodeName = fixedNodeName;\n if (nodeName === undefined) {\n nodeName = opt_nodeName;\n }\n var namespaceURI = opt_namespaceURI !== undefined ? opt_namespaceURI : node.namespaceURI;\n return createElementNS(namespaceURI, /** @type {string} */ (nodeName));\n });\n}\n/**\n * A node factory that creates a node using the parent's `namespaceURI` and the\n * `nodeName` passed by {@link module:ol/xml.serialize} or\n * {@link module:ol/xml.pushSerializeAndPop} to the node factory.\n * @const\n * @type {function(*, Array<*>, string=): (Node|undefined)}\n */\nexport var OBJECT_PROPERTY_NODE_FACTORY = makeSimpleNodeFactory();\n/**\n * Create an array of `values` to be used with {@link module:ol/xml.serialize} or\n * {@link module:ol/xml.pushSerializeAndPop}, where `orderedKeys` has to be provided as\n * `opt_key` argument.\n * @param {Object} object Key-value pairs for the sequence. Keys can\n * be a subset of the `orderedKeys`.\n * @param {Array} orderedKeys Keys in the order of the sequence.\n * @return {Array<*>} Values in the order of the sequence. The resulting array\n * has the same length as the `orderedKeys` array. Values that are not\n * present in `object` will be `undefined` in the resulting array.\n */\nexport function makeSequence(object, orderedKeys) {\n var length = orderedKeys.length;\n var sequence = new Array(length);\n for (var i = 0; i < length; ++i) {\n sequence[i] = object[orderedKeys[i]];\n }\n return sequence;\n}\n/**\n * Create a namespaced structure, using the same values for each namespace.\n * This can be used as a starting point for versioned parsers, when only a few\n * values are version specific.\n * @param {Array} namespaceURIs Namespace URIs.\n * @param {T} structure Structure.\n * @param {Object} [opt_structureNS] Namespaced structure to add to.\n * @return {Object} Namespaced structure.\n * @template T\n */\nexport function makeStructureNS(namespaceURIs, structure, opt_structureNS) {\n /**\n * @type {Object}\n */\n var structureNS = opt_structureNS !== undefined ? opt_structureNS : {};\n var i, ii;\n for (i = 0, ii = namespaceURIs.length; i < ii; ++i) {\n structureNS[namespaceURIs[i]] = structure;\n }\n return structureNS;\n}\n/**\n * Parse a node using the parsers and object stack.\n * @param {Object>} parsersNS\n * Parsers by namespace.\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @param {*} [opt_this] The object to use as `this`.\n */\nexport function parseNode(parsersNS, node, objectStack, opt_this) {\n var n;\n for (n = node.firstElementChild; n; n = n.nextElementSibling) {\n var parsers = parsersNS[n.namespaceURI];\n if (parsers !== undefined) {\n var parser = parsers[n.localName];\n if (parser !== undefined) {\n parser.call(opt_this, n, objectStack);\n }\n }\n }\n}\n/**\n * Push an object on top of the stack, parse and return the popped object.\n * @param {T} object Object.\n * @param {Object>} parsersNS\n * Parsers by namespace.\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @param {*} [opt_this] The object to use as `this`.\n * @return {T} Object.\n * @template T\n */\nexport function pushParseAndPop(object, parsersNS, node, objectStack, opt_this) {\n objectStack.push(object);\n parseNode(parsersNS, node, objectStack, opt_this);\n return /** @type {T} */ (objectStack.pop());\n}\n/**\n * Walk through an array of `values` and call a serializer for each value.\n * @param {Object>} serializersNS\n * Namespaced serializers.\n * @param {function(this: T, *, Array<*>, (string|undefined)): (Node|undefined)} nodeFactory\n * Node factory. The `nodeFactory` creates the node whose namespace and name\n * will be used to choose a node writer from `serializersNS`. This\n * separation allows us to decide what kind of node to create, depending on\n * the value we want to serialize. An example for this would be different\n * geometry writers based on the geometry type.\n * @param {Array<*>} values Values to serialize. An example would be an array\n * of {@link module:ol/Feature~Feature} instances.\n * @param {Array<*>} objectStack Node stack.\n * @param {Array} [opt_keys] Keys of the `values`. Will be passed to the\n * `nodeFactory`. This is used for serializing object literals where the\n * node name relates to the property key. The array length of `opt_keys` has\n * to match the length of `values`. For serializing a sequence, `opt_keys`\n * determines the order of the sequence.\n * @param {T} [opt_this] The object to use as `this` for the node factory and\n * serializers.\n * @template T\n */\nexport function serialize(serializersNS, nodeFactory, values, objectStack, opt_keys, opt_this) {\n var length = (opt_keys !== undefined ? opt_keys : values).length;\n var value, node;\n for (var i = 0; i < length; ++i) {\n value = values[i];\n if (value !== undefined) {\n node = nodeFactory.call(opt_this !== undefined ? opt_this : this, value, objectStack, opt_keys !== undefined ? opt_keys[i] : undefined);\n if (node !== undefined) {\n serializersNS[node.namespaceURI][node.localName].call(opt_this, node, value, objectStack);\n }\n }\n }\n}\n/**\n * @param {O} object Object.\n * @param {Object>} serializersNS\n * Namespaced serializers.\n * @param {function(this: T, *, Array<*>, (string|undefined)): (Node|undefined)} nodeFactory\n * Node factory. The `nodeFactory` creates the node whose namespace and name\n * will be used to choose a node writer from `serializersNS`. This\n * separation allows us to decide what kind of node to create, depending on\n * the value we want to serialize. An example for this would be different\n * geometry writers based on the geometry type.\n * @param {Array<*>} values Values to serialize. An example would be an array\n * of {@link module:ol/Feature~Feature} instances.\n * @param {Array<*>} objectStack Node stack.\n * @param {Array} [opt_keys] Keys of the `values`. Will be passed to the\n * `nodeFactory`. This is used for serializing object literals where the\n * node name relates to the property key. The array length of `opt_keys` has\n * to match the length of `values`. For serializing a sequence, `opt_keys`\n * determines the order of the sequence.\n * @param {T} [opt_this] The object to use as `this` for the node factory and\n * serializers.\n * @return {O|undefined} Object.\n * @template O, T\n */\nexport function pushSerializeAndPop(object, serializersNS, nodeFactory, values, objectStack, opt_keys, opt_this) {\n objectStack.push(object);\n serialize(serializersNS, nodeFactory, values, objectStack, opt_keys, opt_this);\n return /** @type {O|undefined} */ (objectStack.pop());\n}\nvar xmlSerializer_ = undefined;\n/**\n * Register a XMLSerializer. Can be used to inject a XMLSerializer\n * where there is no globally available implementation.\n *\n * @param {XMLSerializer} xmlSerializer A XMLSerializer.\n * @api\n */\nexport function registerXMLSerializer(xmlSerializer) {\n xmlSerializer_ = xmlSerializer;\n}\n/**\n * @return {XMLSerializer} The XMLSerializer.\n */\nexport function getXMLSerializer() {\n if (xmlSerializer_ === undefined && typeof XMLSerializer !== 'undefined') {\n xmlSerializer_ = new XMLSerializer();\n }\n return xmlSerializer_;\n}\nvar document_ = undefined;\n/**\n * Register a Document to use when creating nodes for XML serializations. Can be used\n * to inject a Document where there is no globally available implementation.\n *\n * @param {Document} document A Document.\n * @api\n */\nexport function registerDocument(document) {\n document_ = document;\n}\n/**\n * Get a document that should be used when creating nodes for XML serializations.\n * @return {Document} The document.\n */\nexport function getDocument() {\n if (document_ === undefined && typeof document !== 'undefined') {\n document_ = document.implementation.createDocument('', '', null);\n }\n return document_;\n}\n//# sourceMappingURL=xml.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/format/XMLFeature\n */\nimport FeatureFormat from '../format/Feature.js';\nimport { abstract } from '../util.js';\nimport { extend } from '../array.js';\nimport { getXMLSerializer, isDocument, parse } from '../xml.js';\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * Base class for XML feature formats.\n *\n * @abstract\n */\nvar XMLFeature = /** @class */ (function (_super) {\n __extends(XMLFeature, _super);\n function XMLFeature() {\n var _this = _super.call(this) || this;\n /**\n * @type {XMLSerializer}\n * @private\n */\n _this.xmlSerializer_ = getXMLSerializer();\n return _this;\n }\n /**\n * @return {import(\"./Feature.js\").Type} Format.\n */\n XMLFeature.prototype.getType = function () {\n return 'xml';\n };\n /**\n * Read a single feature.\n *\n * @param {Document|Element|Object|string} source Source.\n * @param {import(\"./Feature.js\").ReadOptions} [opt_options] Read options.\n * @return {import(\"../Feature.js\").default} Feature.\n * @api\n */\n XMLFeature.prototype.readFeature = function (source, opt_options) {\n if (!source) {\n return null;\n }\n else if (typeof source === 'string') {\n var doc = parse(source);\n return this.readFeatureFromDocument(doc, opt_options);\n }\n else if (isDocument(source)) {\n return this.readFeatureFromDocument(\n /** @type {Document} */ (source), opt_options);\n }\n else {\n return this.readFeatureFromNode(\n /** @type {Element} */ (source), opt_options);\n }\n };\n /**\n * @param {Document} doc Document.\n * @param {import(\"./Feature.js\").ReadOptions} [opt_options] Options.\n * @return {import(\"../Feature.js\").default} Feature.\n */\n XMLFeature.prototype.readFeatureFromDocument = function (doc, opt_options) {\n var features = this.readFeaturesFromDocument(doc, opt_options);\n if (features.length > 0) {\n return features[0];\n }\n else {\n return null;\n }\n };\n /**\n * @param {Element} node Node.\n * @param {import(\"./Feature.js\").ReadOptions} [opt_options] Options.\n * @return {import(\"../Feature.js\").default} Feature.\n */\n XMLFeature.prototype.readFeatureFromNode = function (node, opt_options) {\n return null; // not implemented\n };\n /**\n * Read all features from a feature collection.\n *\n * @param {Document|Element|Object|string} source Source.\n * @param {import(\"./Feature.js\").ReadOptions} [opt_options] Options.\n * @return {Array} Features.\n * @api\n */\n XMLFeature.prototype.readFeatures = function (source, opt_options) {\n if (!source) {\n return [];\n }\n else if (typeof source === 'string') {\n var doc = parse(source);\n return this.readFeaturesFromDocument(doc, opt_options);\n }\n else if (isDocument(source)) {\n return this.readFeaturesFromDocument(\n /** @type {Document} */ (source), opt_options);\n }\n else {\n return this.readFeaturesFromNode(\n /** @type {Element} */ (source), opt_options);\n }\n };\n /**\n * @param {Document} doc Document.\n * @param {import(\"./Feature.js\").ReadOptions} [opt_options] Options.\n * @protected\n * @return {Array} Features.\n */\n XMLFeature.prototype.readFeaturesFromDocument = function (doc, opt_options) {\n /** @type {Array} */\n var features = [];\n for (var n = doc.firstChild; n; n = n.nextSibling) {\n if (n.nodeType == Node.ELEMENT_NODE) {\n extend(features, this.readFeaturesFromNode(/** @type {Element} */ (n), opt_options));\n }\n }\n return features;\n };\n /**\n * @abstract\n * @param {Element} node Node.\n * @param {import(\"./Feature.js\").ReadOptions} [opt_options] Options.\n * @protected\n * @return {Array} Features.\n */\n XMLFeature.prototype.readFeaturesFromNode = function (node, opt_options) {\n return abstract();\n };\n /**\n * Read a single geometry from a source.\n *\n * @param {Document|Element|Object|string} source Source.\n * @param {import(\"./Feature.js\").ReadOptions} [opt_options] Read options.\n * @return {import(\"../geom/Geometry.js\").default} Geometry.\n */\n XMLFeature.prototype.readGeometry = function (source, opt_options) {\n if (!source) {\n return null;\n }\n else if (typeof source === 'string') {\n var doc = parse(source);\n return this.readGeometryFromDocument(doc, opt_options);\n }\n else if (isDocument(source)) {\n return this.readGeometryFromDocument(\n /** @type {Document} */ (source), opt_options);\n }\n else {\n return this.readGeometryFromNode(\n /** @type {Element} */ (source), opt_options);\n }\n };\n /**\n * @param {Document} doc Document.\n * @param {import(\"./Feature.js\").ReadOptions} [opt_options] Options.\n * @protected\n * @return {import(\"../geom/Geometry.js\").default} Geometry.\n */\n XMLFeature.prototype.readGeometryFromDocument = function (doc, opt_options) {\n return null; // not implemented\n };\n /**\n * @param {Element} node Node.\n * @param {import(\"./Feature.js\").ReadOptions} [opt_options] Options.\n * @protected\n * @return {import(\"../geom/Geometry.js\").default} Geometry.\n */\n XMLFeature.prototype.readGeometryFromNode = function (node, opt_options) {\n return null; // not implemented\n };\n /**\n * Read the projection from the source.\n *\n * @param {Document|Element|Object|string} source Source.\n * @return {import(\"../proj/Projection.js\").default} Projection.\n * @api\n */\n XMLFeature.prototype.readProjection = function (source) {\n if (!source) {\n return null;\n }\n else if (typeof source === 'string') {\n var doc = parse(source);\n return this.readProjectionFromDocument(doc);\n }\n else if (isDocument(source)) {\n return this.readProjectionFromDocument(/** @type {Document} */ (source));\n }\n else {\n return this.readProjectionFromNode(/** @type {Element} */ (source));\n }\n };\n /**\n * @param {Document} doc Document.\n * @protected\n * @return {import(\"../proj/Projection.js\").default} Projection.\n */\n XMLFeature.prototype.readProjectionFromDocument = function (doc) {\n return this.dataProjection;\n };\n /**\n * @param {Element} node Node.\n * @protected\n * @return {import(\"../proj/Projection.js\").default} Projection.\n */\n XMLFeature.prototype.readProjectionFromNode = function (node) {\n return this.dataProjection;\n };\n /**\n * Encode a feature as string.\n *\n * @param {import(\"../Feature.js\").default} feature Feature.\n * @param {import(\"./Feature.js\").WriteOptions} [opt_options] Write options.\n * @return {string} Encoded feature.\n */\n XMLFeature.prototype.writeFeature = function (feature, opt_options) {\n var node = this.writeFeatureNode(feature, opt_options);\n return this.xmlSerializer_.serializeToString(node);\n };\n /**\n * @param {import(\"../Feature.js\").default} feature Feature.\n * @param {import(\"./Feature.js\").WriteOptions} [opt_options] Options.\n * @protected\n * @return {Node} Node.\n */\n XMLFeature.prototype.writeFeatureNode = function (feature, opt_options) {\n return null; // not implemented\n };\n /**\n * Encode an array of features as string.\n *\n * @param {Array} features Features.\n * @param {import(\"./Feature.js\").WriteOptions} [opt_options] Write options.\n * @return {string} Result.\n * @api\n */\n XMLFeature.prototype.writeFeatures = function (features, opt_options) {\n var node = this.writeFeaturesNode(features, opt_options);\n return this.xmlSerializer_.serializeToString(node);\n };\n /**\n * @param {Array} features Features.\n * @param {import(\"./Feature.js\").WriteOptions} [opt_options] Options.\n * @return {Node} Node.\n */\n XMLFeature.prototype.writeFeaturesNode = function (features, opt_options) {\n return null; // not implemented\n };\n /**\n * Encode a geometry as string.\n *\n * @param {import(\"../geom/Geometry.js\").default} geometry Geometry.\n * @param {import(\"./Feature.js\").WriteOptions} [opt_options] Write options.\n * @return {string} Encoded geometry.\n */\n XMLFeature.prototype.writeGeometry = function (geometry, opt_options) {\n var node = this.writeGeometryNode(geometry, opt_options);\n return this.xmlSerializer_.serializeToString(node);\n };\n /**\n * @param {import(\"../geom/Geometry.js\").default} geometry Geometry.\n * @param {import(\"./Feature.js\").WriteOptions} [opt_options] Options.\n * @return {Node} Node.\n */\n XMLFeature.prototype.writeGeometryNode = function (geometry, opt_options) {\n return null; // not implemented\n };\n return XMLFeature;\n}(FeatureFormat));\nexport default XMLFeature;\n//# sourceMappingURL=XMLFeature.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/format/GMLBase\n */\n// FIXME Envelopes should not be treated as geometries! readEnvelope_ is part\n// of GEOMETRY_PARSERS_ and methods using GEOMETRY_PARSERS_ do not expect\n// envelopes/extents, only geometries!\nimport Feature from '../Feature.js';\nimport GeometryLayout from '../geom/GeometryLayout.js';\nimport LineString from '../geom/LineString.js';\nimport LinearRing from '../geom/LinearRing.js';\nimport MultiLineString from '../geom/MultiLineString.js';\nimport MultiPoint from '../geom/MultiPoint.js';\nimport MultiPolygon from '../geom/MultiPolygon.js';\nimport Point from '../geom/Point.js';\nimport Polygon from '../geom/Polygon.js';\nimport XMLFeature from './XMLFeature.js';\nimport { assign } from '../obj.js';\nimport { extend } from '../array.js';\nimport { getAllTextContent, getAttributeNS, makeArrayPusher, makeReplacer, parseNode, pushParseAndPop, } from '../xml.js';\nimport { get as getProjection } from '../proj.js';\nimport { transformExtentWithOptions, transformGeometryWithOptions, } from './Feature.js';\n/**\n * @const\n * @type {string}\n */\nexport var GMLNS = 'http://www.opengis.net/gml';\n/**\n * A regular expression that matches if a string only contains whitespace\n * characters. It will e.g. match `''`, `' '`, `'\\n'` etc. The non-breaking\n * space (0xa0) is explicitly included as IE doesn't include it in its\n * definition of `\\s`.\n *\n * Information from `goog.string.isEmptyOrWhitespace`: https://github.com/google/closure-library/blob/e877b1e/closure/goog/string/string.js#L156-L160\n *\n * @const\n * @type {RegExp}\n */\nvar ONLY_WHITESPACE_RE = /^[\\s\\xa0]*$/;\n/**\n * @typedef {Object} Options\n * @property {Object|string} [featureNS] Feature\n * namespace. If not defined will be derived from GML. If multiple\n * feature types have been configured which come from different feature\n * namespaces, this will be an object with the keys being the prefixes used\n * in the entries of featureType array. The values of the object will be the\n * feature namespaces themselves. So for instance there might be a featureType\n * item `topp:states` in the `featureType` array and then there will be a key\n * `topp` in the featureNS object with value `http://www.openplans.org/topp`.\n * @property {Array|string} [featureType] Feature type(s) to parse.\n * If multiple feature types need to be configured\n * which come from different feature namespaces, `featureNS` will be an object\n * with the keys being the prefixes used in the entries of featureType array.\n * The values of the object will be the feature namespaces themselves.\n * So for instance there might be a featureType item `topp:states` and then\n * there will be a key named `topp` in the featureNS object with value\n * `http://www.openplans.org/topp`.\n * @property {string} srsName srsName to use when writing geometries.\n * @property {boolean} [surface=false] Write gml:Surface instead of gml:Polygon\n * elements. This also affects the elements in multi-part geometries.\n * @property {boolean} [curve=false] Write gml:Curve instead of gml:LineString\n * elements. This also affects the elements in multi-part geometries.\n * @property {boolean} [multiCurve=true] Write gml:MultiCurve instead of gml:MultiLineString.\n * Since the latter is deprecated in GML 3.\n * @property {boolean} [multiSurface=true] Write gml:multiSurface instead of\n * gml:MultiPolygon. Since the latter is deprecated in GML 3.\n * @property {string} [schemaLocation] Optional schemaLocation to use when\n * writing out the GML, this will override the default provided.\n * @property {boolean} [hasZ=false] If coordinates have a Z value.\n */\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * Feature base format for reading and writing data in the GML format.\n * This class cannot be instantiated, it contains only base content that\n * is shared with versioned format classes GML2 and GML3.\n *\n * @abstract\n * @api\n */\nvar GMLBase = /** @class */ (function (_super) {\n __extends(GMLBase, _super);\n /**\n * @param {Options} [opt_options] Optional configuration object.\n */\n function GMLBase(opt_options) {\n var _this = _super.call(this) || this;\n var options = /** @type {Options} */ (opt_options ? opt_options : {});\n /**\n * @protected\n * @type {Array|string|undefined}\n */\n _this.featureType = options.featureType;\n /**\n * @protected\n * @type {Object|string|undefined}\n */\n _this.featureNS = options.featureNS;\n /**\n * @protected\n * @type {string}\n */\n _this.srsName = options.srsName;\n /**\n * @protected\n * @type {string}\n */\n _this.schemaLocation = '';\n /**\n * @type {Object>}\n */\n _this.FEATURE_COLLECTION_PARSERS = {};\n _this.FEATURE_COLLECTION_PARSERS[_this.namespace] = {\n 'featureMember': makeArrayPusher(_this.readFeaturesInternal),\n 'featureMembers': makeReplacer(_this.readFeaturesInternal),\n };\n _this.supportedMediaTypes = ['application/gml+xml'];\n return _this;\n }\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Array | undefined} Features.\n */\n GMLBase.prototype.readFeaturesInternal = function (node, objectStack) {\n var localName = node.localName;\n var features = null;\n if (localName == 'FeatureCollection') {\n features = pushParseAndPop([], this.FEATURE_COLLECTION_PARSERS, node, objectStack, this);\n }\n else if (localName == 'featureMembers' ||\n localName == 'featureMember' ||\n localName == 'member') {\n var context = objectStack[0];\n var featureType = context['featureType'];\n var featureNS = context['featureNS'];\n var prefix = 'p';\n var defaultPrefix = 'p0';\n if (!featureType && node.childNodes) {\n (featureType = []), (featureNS = {});\n for (var i = 0, ii = node.childNodes.length; i < ii; ++i) {\n var child = /** @type {Element} */ (node.childNodes[i]);\n if (child.nodeType === 1) {\n var ft = child.nodeName.split(':').pop();\n if (featureType.indexOf(ft) === -1) {\n var key = '';\n var count = 0;\n var uri = child.namespaceURI;\n for (var candidate in featureNS) {\n if (featureNS[candidate] === uri) {\n key = candidate;\n break;\n }\n ++count;\n }\n if (!key) {\n key = prefix + count;\n featureNS[key] = uri;\n }\n featureType.push(key + ':' + ft);\n }\n }\n }\n if (localName != 'featureMember') {\n // recheck featureType for each featureMember\n context['featureType'] = featureType;\n context['featureNS'] = featureNS;\n }\n }\n if (typeof featureNS === 'string') {\n var ns = featureNS;\n featureNS = {};\n featureNS[defaultPrefix] = ns;\n }\n /** @type {Object>} */\n var parsersNS = {};\n var featureTypes = Array.isArray(featureType)\n ? featureType\n : [featureType];\n for (var p in featureNS) {\n /** @type {Object} */\n var parsers = {};\n for (var i = 0, ii = featureTypes.length; i < ii; ++i) {\n var featurePrefix = featureTypes[i].indexOf(':') === -1\n ? defaultPrefix\n : featureTypes[i].split(':')[0];\n if (featurePrefix === p) {\n parsers[featureTypes[i].split(':').pop()] =\n localName == 'featureMembers'\n ? makeArrayPusher(this.readFeatureElement, this)\n : makeReplacer(this.readFeatureElement, this);\n }\n }\n parsersNS[featureNS[p]] = parsers;\n }\n if (localName == 'featureMember' || localName == 'member') {\n features = pushParseAndPop(undefined, parsersNS, node, objectStack);\n }\n else {\n features = pushParseAndPop([], parsersNS, node, objectStack);\n }\n }\n if (features === null) {\n features = [];\n }\n return features;\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {import(\"../geom/Geometry.js\").default|import(\"../extent.js\").Extent|undefined} Geometry.\n */\n GMLBase.prototype.readGeometryOrExtent = function (node, objectStack) {\n var context = /** @type {Object} */ (objectStack[0]);\n context['srsName'] = node.firstElementChild.getAttribute('srsName');\n context['srsDimension'] =\n node.firstElementChild.getAttribute('srsDimension');\n return pushParseAndPop(null, this.GEOMETRY_PARSERS, node, objectStack, this);\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {import(\"../extent.js\").Extent|undefined} Geometry.\n */\n GMLBase.prototype.readExtentElement = function (node, objectStack) {\n var context = /** @type {Object} */ (objectStack[0]);\n var extent = /** @type {import(\"../extent.js\").Extent} */ (this.readGeometryOrExtent(node, objectStack));\n return extent ? transformExtentWithOptions(extent, context) : undefined;\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {import(\"../geom/Geometry.js\").default|undefined} Geometry.\n */\n GMLBase.prototype.readGeometryElement = function (node, objectStack) {\n var context = /** @type {Object} */ (objectStack[0]);\n var geometry = /** @type {import(\"../geom/Geometry.js\").default} */ (this.readGeometryOrExtent(node, objectStack));\n return geometry\n ? transformGeometryWithOptions(geometry, false, context)\n : undefined;\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @param {boolean} asFeature whether result should be wrapped as a feature.\n * @return {Feature|Object} Feature\n */\n GMLBase.prototype.readFeatureElementInternal = function (node, objectStack, asFeature) {\n var geometryName;\n var values = {};\n for (var n = node.firstElementChild; n; n = n.nextElementSibling) {\n var value = void 0;\n var localName = n.localName;\n // first, check if it is simple attribute\n if (n.childNodes.length === 0 ||\n (n.childNodes.length === 1 &&\n (n.firstChild.nodeType === 3 || n.firstChild.nodeType === 4))) {\n value = getAllTextContent(n, false);\n if (ONLY_WHITESPACE_RE.test(value)) {\n value = undefined;\n }\n }\n else {\n if (asFeature) {\n //if feature, try it as a geometry or extent\n value =\n localName === 'boundedBy'\n ? this.readExtentElement(n, objectStack)\n : this.readGeometryElement(n, objectStack);\n }\n if (!value) {\n //if not a geometry or not a feature, treat it as a complex attribute\n value = this.readFeatureElementInternal(n, objectStack, false);\n }\n else if (localName !== 'boundedBy') {\n // boundedBy is an extent and must not be considered as a geometry\n geometryName = localName;\n }\n }\n var len = n.attributes.length;\n if (len > 0) {\n value = { _content_: value };\n for (var i = 0; i < len; i++) {\n var attName = n.attributes[i].name;\n value[attName] = n.attributes[i].value;\n }\n }\n if (values[localName]) {\n if (!(values[localName] instanceof Array)) {\n values[localName] = [values[localName]];\n }\n values[localName].push(value);\n }\n else {\n values[localName] = value;\n }\n }\n if (!asFeature) {\n return values;\n }\n else {\n var feature = new Feature(values);\n if (geometryName) {\n feature.setGeometryName(geometryName);\n }\n var fid = node.getAttribute('fid') || getAttributeNS(node, this.namespace, 'id');\n if (fid) {\n feature.setId(fid);\n }\n return feature;\n }\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Feature} Feature.\n */\n GMLBase.prototype.readFeatureElement = function (node, objectStack) {\n return this.readFeatureElementInternal(node, objectStack, true);\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Point|undefined} Point.\n */\n GMLBase.prototype.readPoint = function (node, objectStack) {\n var flatCoordinates = this.readFlatCoordinatesFromNode(node, objectStack);\n if (flatCoordinates) {\n return new Point(flatCoordinates, GeometryLayout.XYZ);\n }\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {MultiPoint|undefined} MultiPoint.\n */\n GMLBase.prototype.readMultiPoint = function (node, objectStack) {\n /** @type {Array>} */\n var coordinates = pushParseAndPop([], this.MULTIPOINT_PARSERS, node, objectStack, this);\n if (coordinates) {\n return new MultiPoint(coordinates);\n }\n else {\n return undefined;\n }\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {MultiLineString|undefined} MultiLineString.\n */\n GMLBase.prototype.readMultiLineString = function (node, objectStack) {\n /** @type {Array} */\n var lineStrings = pushParseAndPop([], this.MULTILINESTRING_PARSERS, node, objectStack, this);\n if (lineStrings) {\n return new MultiLineString(lineStrings);\n }\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {MultiPolygon|undefined} MultiPolygon.\n */\n GMLBase.prototype.readMultiPolygon = function (node, objectStack) {\n /** @type {Array} */\n var polygons = pushParseAndPop([], this.MULTIPOLYGON_PARSERS, node, objectStack, this);\n if (polygons) {\n return new MultiPolygon(polygons);\n }\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n GMLBase.prototype.pointMemberParser = function (node, objectStack) {\n parseNode(this.POINTMEMBER_PARSERS, node, objectStack, this);\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n GMLBase.prototype.lineStringMemberParser = function (node, objectStack) {\n parseNode(this.LINESTRINGMEMBER_PARSERS, node, objectStack, this);\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n GMLBase.prototype.polygonMemberParser = function (node, objectStack) {\n parseNode(this.POLYGONMEMBER_PARSERS, node, objectStack, this);\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {LineString|undefined} LineString.\n */\n GMLBase.prototype.readLineString = function (node, objectStack) {\n var flatCoordinates = this.readFlatCoordinatesFromNode(node, objectStack);\n if (flatCoordinates) {\n var lineString = new LineString(flatCoordinates, GeometryLayout.XYZ);\n return lineString;\n }\n else {\n return undefined;\n }\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Array|undefined} LinearRing flat coordinates.\n */\n GMLBase.prototype.readFlatLinearRing = function (node, objectStack) {\n var ring = pushParseAndPop(null, this.GEOMETRY_FLAT_COORDINATES_PARSERS, node, objectStack, this);\n if (ring) {\n return ring;\n }\n else {\n return undefined;\n }\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {LinearRing|undefined} LinearRing.\n */\n GMLBase.prototype.readLinearRing = function (node, objectStack) {\n var flatCoordinates = this.readFlatCoordinatesFromNode(node, objectStack);\n if (flatCoordinates) {\n return new LinearRing(flatCoordinates, GeometryLayout.XYZ);\n }\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Polygon|undefined} Polygon.\n */\n GMLBase.prototype.readPolygon = function (node, objectStack) {\n /** @type {Array>} */\n var flatLinearRings = pushParseAndPop([null], this.FLAT_LINEAR_RINGS_PARSERS, node, objectStack, this);\n if (flatLinearRings && flatLinearRings[0]) {\n var flatCoordinates = flatLinearRings[0];\n var ends = [flatCoordinates.length];\n var i = void 0, ii = void 0;\n for (i = 1, ii = flatLinearRings.length; i < ii; ++i) {\n extend(flatCoordinates, flatLinearRings[i]);\n ends.push(flatCoordinates.length);\n }\n return new Polygon(flatCoordinates, GeometryLayout.XYZ, ends);\n }\n else {\n return undefined;\n }\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Array} Flat coordinates.\n */\n GMLBase.prototype.readFlatCoordinatesFromNode = function (node, objectStack) {\n return pushParseAndPop(null, this.GEOMETRY_FLAT_COORDINATES_PARSERS, node, objectStack, this);\n };\n /**\n * @param {Element} node Node.\n * @param {import(\"./Feature.js\").ReadOptions} [opt_options] Options.\n * @protected\n * @return {import(\"../geom/Geometry.js\").default} Geometry.\n */\n GMLBase.prototype.readGeometryFromNode = function (node, opt_options) {\n var geometry = this.readGeometryElement(node, [\n this.getReadOptions(node, opt_options ? opt_options : {}),\n ]);\n return geometry ? geometry : null;\n };\n /**\n * @param {Element} node Node.\n * @param {import(\"./Feature.js\").ReadOptions} [opt_options] Options.\n * @return {Array} Features.\n */\n GMLBase.prototype.readFeaturesFromNode = function (node, opt_options) {\n var options = {\n featureType: this.featureType,\n featureNS: this.featureNS,\n };\n if (opt_options) {\n assign(options, this.getReadOptions(node, opt_options));\n }\n var features = this.readFeaturesInternal(node, [options]);\n return features || [];\n };\n /**\n * @param {Element} node Node.\n * @return {import(\"../proj/Projection.js\").default} Projection.\n */\n GMLBase.prototype.readProjectionFromNode = function (node) {\n return getProjection(this.srsName\n ? this.srsName\n : node.firstElementChild.getAttribute('srsName'));\n };\n return GMLBase;\n}(XMLFeature));\nGMLBase.prototype.namespace = GMLNS;\n/**\n * @const\n * @type {Object>}\n */\nGMLBase.prototype.FLAT_LINEAR_RINGS_PARSERS = {\n 'http://www.opengis.net/gml': {},\n};\n/**\n * @const\n * @type {Object>}\n */\nGMLBase.prototype.GEOMETRY_FLAT_COORDINATES_PARSERS = {\n 'http://www.opengis.net/gml': {},\n};\n/**\n * @const\n * @type {Object>}\n */\nGMLBase.prototype.GEOMETRY_PARSERS = {\n 'http://www.opengis.net/gml': {},\n};\n/**\n * @const\n * @type {Object>}\n */\nGMLBase.prototype.MULTIPOINT_PARSERS = {\n 'http://www.opengis.net/gml': {\n 'pointMember': makeArrayPusher(GMLBase.prototype.pointMemberParser),\n 'pointMembers': makeArrayPusher(GMLBase.prototype.pointMemberParser),\n },\n};\n/**\n * @const\n * @type {Object>}\n */\nGMLBase.prototype.MULTILINESTRING_PARSERS = {\n 'http://www.opengis.net/gml': {\n 'lineStringMember': makeArrayPusher(GMLBase.prototype.lineStringMemberParser),\n 'lineStringMembers': makeArrayPusher(GMLBase.prototype.lineStringMemberParser),\n },\n};\n/**\n * @const\n * @type {Object>}\n */\nGMLBase.prototype.MULTIPOLYGON_PARSERS = {\n 'http://www.opengis.net/gml': {\n 'polygonMember': makeArrayPusher(GMLBase.prototype.polygonMemberParser),\n 'polygonMembers': makeArrayPusher(GMLBase.prototype.polygonMemberParser),\n },\n};\n/**\n * @const\n * @type {Object>}\n */\nGMLBase.prototype.POINTMEMBER_PARSERS = {\n 'http://www.opengis.net/gml': {\n 'Point': makeArrayPusher(GMLBase.prototype.readFlatCoordinatesFromNode),\n },\n};\n/**\n * @const\n * @type {Object>}\n */\nGMLBase.prototype.LINESTRINGMEMBER_PARSERS = {\n 'http://www.opengis.net/gml': {\n 'LineString': makeArrayPusher(GMLBase.prototype.readLineString),\n },\n};\n/**\n * @const\n * @type {Object>}\n */\nGMLBase.prototype.POLYGONMEMBER_PARSERS = {\n 'http://www.opengis.net/gml': {\n 'Polygon': makeArrayPusher(GMLBase.prototype.readPolygon),\n },\n};\n/**\n * @const\n * @type {Object>}\n */\nGMLBase.prototype.RING_PARSERS = {\n 'http://www.opengis.net/gml': {\n 'LinearRing': makeReplacer(GMLBase.prototype.readFlatLinearRing),\n },\n};\nexport default GMLBase;\n//# sourceMappingURL=GMLBase.js.map","/**\n * @module ol/format/xsd\n */\nimport { getAllTextContent, getDocument } from '../xml.js';\nimport { padNumber } from '../string.js';\n/**\n * @param {Node} node Node.\n * @return {boolean|undefined} Boolean.\n */\nexport function readBoolean(node) {\n var s = getAllTextContent(node, false);\n return readBooleanString(s);\n}\n/**\n * @param {string} string String.\n * @return {boolean|undefined} Boolean.\n */\nexport function readBooleanString(string) {\n var m = /^\\s*(true|1)|(false|0)\\s*$/.exec(string);\n if (m) {\n return m[1] !== undefined || false;\n }\n else {\n return undefined;\n }\n}\n/**\n * @param {Node} node Node.\n * @return {number|undefined} DateTime in seconds.\n */\nexport function readDateTime(node) {\n var s = getAllTextContent(node, false);\n var dateTime = Date.parse(s);\n return isNaN(dateTime) ? undefined : dateTime / 1000;\n}\n/**\n * @param {Node} node Node.\n * @return {number|undefined} Decimal.\n */\nexport function readDecimal(node) {\n var s = getAllTextContent(node, false);\n return readDecimalString(s);\n}\n/**\n * @param {string} string String.\n * @return {number|undefined} Decimal.\n */\nexport function readDecimalString(string) {\n // FIXME check spec\n var m = /^\\s*([+\\-]?\\d*\\.?\\d+(?:e[+\\-]?\\d+)?)\\s*$/i.exec(string);\n if (m) {\n return parseFloat(m[1]);\n }\n else {\n return undefined;\n }\n}\n/**\n * @param {Node} node Node.\n * @return {number|undefined} Non negative integer.\n */\nexport function readPositiveInteger(node) {\n var s = getAllTextContent(node, false);\n return readNonNegativeIntegerString(s);\n}\n/**\n * @param {string} string String.\n * @return {number|undefined} Non negative integer.\n */\nexport function readNonNegativeIntegerString(string) {\n var m = /^\\s*(\\d+)\\s*$/.exec(string);\n if (m) {\n return parseInt(m[1], 10);\n }\n else {\n return undefined;\n }\n}\n/**\n * @param {Node} node Node.\n * @return {string|undefined} String.\n */\nexport function readString(node) {\n return getAllTextContent(node, false).trim();\n}\n/**\n * @param {Node} node Node to append a TextNode with the boolean to.\n * @param {boolean} bool Boolean.\n */\nexport function writeBooleanTextNode(node, bool) {\n writeStringTextNode(node, bool ? '1' : '0');\n}\n/**\n * @param {Node} node Node to append a CDATA Section with the string to.\n * @param {string} string String.\n */\nexport function writeCDATASection(node, string) {\n node.appendChild(getDocument().createCDATASection(string));\n}\n/**\n * @param {Node} node Node to append a TextNode with the dateTime to.\n * @param {number} dateTime DateTime in seconds.\n */\nexport function writeDateTimeTextNode(node, dateTime) {\n var date = new Date(dateTime * 1000);\n var string = date.getUTCFullYear() +\n '-' +\n padNumber(date.getUTCMonth() + 1, 2) +\n '-' +\n padNumber(date.getUTCDate(), 2) +\n 'T' +\n padNumber(date.getUTCHours(), 2) +\n ':' +\n padNumber(date.getUTCMinutes(), 2) +\n ':' +\n padNumber(date.getUTCSeconds(), 2) +\n 'Z';\n node.appendChild(getDocument().createTextNode(string));\n}\n/**\n * @param {Node} node Node to append a TextNode with the decimal to.\n * @param {number} decimal Decimal.\n */\nexport function writeDecimalTextNode(node, decimal) {\n var string = decimal.toPrecision();\n node.appendChild(getDocument().createTextNode(string));\n}\n/**\n * @param {Node} node Node to append a TextNode with the decimal to.\n * @param {number} nonNegativeInteger Non negative integer.\n */\nexport function writeNonNegativeIntegerTextNode(node, nonNegativeInteger) {\n var string = nonNegativeInteger.toString();\n node.appendChild(getDocument().createTextNode(string));\n}\n/**\n * @param {Node} node Node to append a TextNode with the string to.\n * @param {string} string String.\n */\nexport function writeStringTextNode(node, string) {\n node.appendChild(getDocument().createTextNode(string));\n}\n//# sourceMappingURL=xsd.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/format/GML2\n */\nimport GMLBase, { GMLNS } from './GMLBase.js';\nimport { OBJECT_PROPERTY_NODE_FACTORY, createElementNS, getAllTextContent, makeArrayPusher, makeChildAppender, makeReplacer, makeSimpleNodeFactory, pushParseAndPop, pushSerializeAndPop, } from '../xml.js';\nimport { assign } from '../obj.js';\nimport { createOrUpdate } from '../extent.js';\nimport { get as getProjection } from '../proj.js';\nimport { transformExtentWithOptions, transformGeometryWithOptions, } from './Feature.js';\nimport { writeStringTextNode } from './xsd.js';\n/**\n * @const\n * @type {string}\n */\nvar schemaLocation = GMLNS + ' http://schemas.opengis.net/gml/2.1.2/feature.xsd';\n/**\n * @const\n * @type {Object}\n */\nvar MULTIGEOMETRY_TO_MEMBER_NODENAME = {\n 'MultiLineString': 'lineStringMember',\n 'MultiCurve': 'curveMember',\n 'MultiPolygon': 'polygonMember',\n 'MultiSurface': 'surfaceMember',\n};\n/**\n * @classdesc\n * Feature format for reading and writing data in the GML format,\n * version 2.1.2.\n *\n * @api\n */\nvar GML2 = /** @class */ (function (_super) {\n __extends(GML2, _super);\n /**\n * @param {import(\"./GMLBase.js\").Options} [opt_options] Optional configuration object.\n */\n function GML2(opt_options) {\n var _this = this;\n var options = \n /** @type {import(\"./GMLBase.js\").Options} */\n (opt_options ? opt_options : {});\n _this = _super.call(this, options) || this;\n _this.FEATURE_COLLECTION_PARSERS[GMLNS]['featureMember'] = makeArrayPusher(_this.readFeaturesInternal);\n /**\n * @type {string}\n */\n _this.schemaLocation = options.schemaLocation\n ? options.schemaLocation\n : schemaLocation;\n return _this;\n }\n /**\n * @param {Node} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Array|undefined} Flat coordinates.\n */\n GML2.prototype.readFlatCoordinates = function (node, objectStack) {\n var s = getAllTextContent(node, false).replace(/^\\s*|\\s*$/g, '');\n var context = /** @type {import(\"../xml.js\").NodeStackItem} */ (objectStack[0]);\n var containerSrs = context['srsName'];\n var axisOrientation = 'enu';\n if (containerSrs) {\n var proj = getProjection(containerSrs);\n if (proj) {\n axisOrientation = proj.getAxisOrientation();\n }\n }\n var coordsGroups = s.trim().split(/\\s+/);\n var flatCoordinates = [];\n for (var i = 0, ii = coordsGroups.length; i < ii; i++) {\n var coords = coordsGroups[i].split(/,+/);\n var x = parseFloat(coords[0]);\n var y = parseFloat(coords[1]);\n var z = coords.length === 3 ? parseFloat(coords[2]) : 0;\n if (axisOrientation.substr(0, 2) === 'en') {\n flatCoordinates.push(x, y, z);\n }\n else {\n flatCoordinates.push(y, x, z);\n }\n }\n return flatCoordinates;\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {import(\"../extent.js\").Extent|undefined} Envelope.\n */\n GML2.prototype.readBox = function (node, objectStack) {\n /** @type {Array} */\n var flatCoordinates = pushParseAndPop([null], this.BOX_PARSERS_, node, objectStack, this);\n return createOrUpdate(flatCoordinates[1][0], flatCoordinates[1][1], flatCoordinates[1][3], flatCoordinates[1][4]);\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n GML2.prototype.innerBoundaryIsParser = function (node, objectStack) {\n /** @type {Array|undefined} */\n var flatLinearRing = pushParseAndPop(undefined, this.RING_PARSERS, node, objectStack, this);\n if (flatLinearRing) {\n var flatLinearRings = \n /** @type {Array>} */\n (objectStack[objectStack.length - 1]);\n flatLinearRings.push(flatLinearRing);\n }\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n GML2.prototype.outerBoundaryIsParser = function (node, objectStack) {\n /** @type {Array|undefined} */\n var flatLinearRing = pushParseAndPop(undefined, this.RING_PARSERS, node, objectStack, this);\n if (flatLinearRing) {\n var flatLinearRings = \n /** @type {Array>} */\n (objectStack[objectStack.length - 1]);\n flatLinearRings[0] = flatLinearRing;\n }\n };\n /**\n * @const\n * @param {*} value Value.\n * @param {Array<*>} objectStack Object stack.\n * @param {string} [opt_nodeName] Node name.\n * @return {Element|undefined} Node.\n * @private\n */\n GML2.prototype.GEOMETRY_NODE_FACTORY_ = function (value, objectStack, opt_nodeName) {\n var context = objectStack[objectStack.length - 1];\n var multiSurface = context['multiSurface'];\n var surface = context['surface'];\n var multiCurve = context['multiCurve'];\n var nodeName;\n if (!Array.isArray(value)) {\n nodeName = /** @type {import(\"../geom/Geometry.js\").default} */ (value).getType();\n if (nodeName === 'MultiPolygon' && multiSurface === true) {\n nodeName = 'MultiSurface';\n }\n else if (nodeName === 'Polygon' && surface === true) {\n nodeName = 'Surface';\n }\n else if (nodeName === 'MultiLineString' && multiCurve === true) {\n nodeName = 'MultiCurve';\n }\n }\n else {\n nodeName = 'Envelope';\n }\n return createElementNS('http://www.opengis.net/gml', nodeName);\n };\n /**\n * @param {Element} node Node.\n * @param {import(\"../Feature.js\").default} feature Feature.\n * @param {Array<*>} objectStack Node stack.\n */\n GML2.prototype.writeFeatureElement = function (node, feature, objectStack) {\n var fid = feature.getId();\n if (fid) {\n node.setAttribute('fid', /** @type {string} */ (fid));\n }\n var context = /** @type {Object} */ (objectStack[objectStack.length - 1]);\n var featureNS = context['featureNS'];\n var geometryName = feature.getGeometryName();\n if (!context.serializers) {\n context.serializers = {};\n context.serializers[featureNS] = {};\n }\n var keys = [];\n var values = [];\n if (feature.hasProperties()) {\n var properties = feature.getProperties();\n for (var key in properties) {\n var value = properties[key];\n if (value !== null) {\n keys.push(key);\n values.push(value);\n if (key == geometryName ||\n typeof ( /** @type {?} */(value).getSimplifiedGeometry) ===\n 'function') {\n if (!(key in context.serializers[featureNS])) {\n context.serializers[featureNS][key] = makeChildAppender(this.writeGeometryElement, this);\n }\n }\n else {\n if (!(key in context.serializers[featureNS])) {\n context.serializers[featureNS][key] =\n makeChildAppender(writeStringTextNode);\n }\n }\n }\n }\n }\n var item = assign({}, context);\n item.node = node;\n pushSerializeAndPop(\n /** @type {import(\"../xml.js\").NodeStackItem} */\n (item), context.serializers, makeSimpleNodeFactory(undefined, featureNS), values, objectStack, keys);\n };\n /**\n * @param {Element} node Node.\n * @param {import(\"../geom/LineString.js\").default} geometry LineString geometry.\n * @param {Array<*>} objectStack Node stack.\n */\n GML2.prototype.writeCurveOrLineString = function (node, geometry, objectStack) {\n var context = objectStack[objectStack.length - 1];\n var srsName = context['srsName'];\n if (node.nodeName !== 'LineStringSegment' && srsName) {\n node.setAttribute('srsName', srsName);\n }\n if (node.nodeName === 'LineString' ||\n node.nodeName === 'LineStringSegment') {\n var coordinates = this.createCoordinatesNode_(node.namespaceURI);\n node.appendChild(coordinates);\n this.writeCoordinates_(coordinates, geometry, objectStack);\n }\n else if (node.nodeName === 'Curve') {\n var segments = createElementNS(node.namespaceURI, 'segments');\n node.appendChild(segments);\n this.writeCurveSegments_(segments, geometry, objectStack);\n }\n };\n /**\n * @param {Element} node Node.\n * @param {import(\"../geom/LineString.js\").default} line LineString geometry.\n * @param {Array<*>} objectStack Node stack.\n */\n GML2.prototype.writeLineStringOrCurveMember = function (node, line, objectStack) {\n var child = this.GEOMETRY_NODE_FACTORY_(line, objectStack);\n if (child) {\n node.appendChild(child);\n this.writeCurveOrLineString(child, line, objectStack);\n }\n };\n /**\n * @param {Element} node Node.\n * @param {import(\"../geom/MultiLineString.js\").default} geometry MultiLineString geometry.\n * @param {Array<*>} objectStack Node stack.\n */\n GML2.prototype.writeMultiCurveOrLineString = function (node, geometry, objectStack) {\n var context = objectStack[objectStack.length - 1];\n var hasZ = context['hasZ'];\n var srsName = context['srsName'];\n var curve = context['curve'];\n if (srsName) {\n node.setAttribute('srsName', srsName);\n }\n var lines = geometry.getLineStrings();\n pushSerializeAndPop({ node: node, hasZ: hasZ, srsName: srsName, curve: curve }, this.LINESTRINGORCURVEMEMBER_SERIALIZERS, this.MULTIGEOMETRY_MEMBER_NODE_FACTORY_, lines, objectStack, undefined, this);\n };\n /**\n * @param {Node} node Node.\n * @param {import(\"../geom/Geometry.js\").default|import(\"../extent.js\").Extent} geometry Geometry.\n * @param {Array<*>} objectStack Node stack.\n */\n GML2.prototype.writeGeometryElement = function (node, geometry, objectStack) {\n var context = /** @type {import(\"./Feature.js\").WriteOptions} */ (objectStack[objectStack.length - 1]);\n var item = assign({}, context);\n item['node'] = node;\n var value;\n if (Array.isArray(geometry)) {\n value = transformExtentWithOptions(\n /** @type {import(\"../extent.js\").Extent} */ (geometry), context);\n }\n else {\n value = transformGeometryWithOptions(\n /** @type {import(\"../geom/Geometry.js\").default} */ (geometry), true, context);\n }\n pushSerializeAndPop(\n /** @type {import(\"../xml.js\").NodeStackItem} */\n (item), this.GEOMETRY_SERIALIZERS, this.GEOMETRY_NODE_FACTORY_, [value], objectStack, undefined, this);\n };\n /**\n * @param {string} namespaceURI XML namespace.\n * @return {Element} coordinates node.\n * @private\n */\n GML2.prototype.createCoordinatesNode_ = function (namespaceURI) {\n var coordinates = createElementNS(namespaceURI, 'coordinates');\n coordinates.setAttribute('decimal', '.');\n coordinates.setAttribute('cs', ',');\n coordinates.setAttribute('ts', ' ');\n return coordinates;\n };\n /**\n * @param {Node} node Node.\n * @param {import(\"../geom/LineString.js\").default|import(\"../geom/LinearRing.js\").default} value Geometry.\n * @param {Array<*>} objectStack Node stack.\n * @private\n */\n GML2.prototype.writeCoordinates_ = function (node, value, objectStack) {\n var context = objectStack[objectStack.length - 1];\n var hasZ = context['hasZ'];\n var srsName = context['srsName'];\n // only 2d for simple features profile\n var points = value.getCoordinates();\n var len = points.length;\n var parts = new Array(len);\n for (var i = 0; i < len; ++i) {\n var point = points[i];\n parts[i] = this.getCoords_(point, srsName, hasZ);\n }\n writeStringTextNode(node, parts.join(' '));\n };\n /**\n * @param {Element} node Node.\n * @param {import(\"../geom/LineString.js\").default} line LineString geometry.\n * @param {Array<*>} objectStack Node stack.\n * @private\n */\n GML2.prototype.writeCurveSegments_ = function (node, line, objectStack) {\n var child = createElementNS(node.namespaceURI, 'LineStringSegment');\n node.appendChild(child);\n this.writeCurveOrLineString(child, line, objectStack);\n };\n /**\n * @param {Element} node Node.\n * @param {import(\"../geom/Polygon.js\").default} geometry Polygon geometry.\n * @param {Array<*>} objectStack Node stack.\n */\n GML2.prototype.writeSurfaceOrPolygon = function (node, geometry, objectStack) {\n var context = objectStack[objectStack.length - 1];\n var hasZ = context['hasZ'];\n var srsName = context['srsName'];\n if (node.nodeName !== 'PolygonPatch' && srsName) {\n node.setAttribute('srsName', srsName);\n }\n if (node.nodeName === 'Polygon' || node.nodeName === 'PolygonPatch') {\n var rings = geometry.getLinearRings();\n pushSerializeAndPop({ node: node, hasZ: hasZ, srsName: srsName }, this.RING_SERIALIZERS, this.RING_NODE_FACTORY_, rings, objectStack, undefined, this);\n }\n else if (node.nodeName === 'Surface') {\n var patches = createElementNS(node.namespaceURI, 'patches');\n node.appendChild(patches);\n this.writeSurfacePatches_(patches, geometry, objectStack);\n }\n };\n /**\n * @param {*} value Value.\n * @param {Array<*>} objectStack Object stack.\n * @param {string} [opt_nodeName] Node name.\n * @return {Node} Node.\n * @private\n */\n GML2.prototype.RING_NODE_FACTORY_ = function (value, objectStack, opt_nodeName) {\n var context = objectStack[objectStack.length - 1];\n var parentNode = context.node;\n var exteriorWritten = context['exteriorWritten'];\n if (exteriorWritten === undefined) {\n context['exteriorWritten'] = true;\n }\n return createElementNS(parentNode.namespaceURI, exteriorWritten !== undefined ? 'innerBoundaryIs' : 'outerBoundaryIs');\n };\n /**\n * @param {Element} node Node.\n * @param {import(\"../geom/Polygon.js\").default} polygon Polygon geometry.\n * @param {Array<*>} objectStack Node stack.\n * @private\n */\n GML2.prototype.writeSurfacePatches_ = function (node, polygon, objectStack) {\n var child = createElementNS(node.namespaceURI, 'PolygonPatch');\n node.appendChild(child);\n this.writeSurfaceOrPolygon(child, polygon, objectStack);\n };\n /**\n * @param {Element} node Node.\n * @param {import(\"../geom/LinearRing.js\").default} ring LinearRing geometry.\n * @param {Array<*>} objectStack Node stack.\n */\n GML2.prototype.writeRing = function (node, ring, objectStack) {\n var linearRing = createElementNS(node.namespaceURI, 'LinearRing');\n node.appendChild(linearRing);\n this.writeLinearRing(linearRing, ring, objectStack);\n };\n /**\n * @param {Array} point Point geometry.\n * @param {string} [opt_srsName] Optional srsName\n * @param {boolean} [opt_hasZ] whether the geometry has a Z coordinate (is 3D) or not.\n * @return {string} The coords string.\n * @private\n */\n GML2.prototype.getCoords_ = function (point, opt_srsName, opt_hasZ) {\n var axisOrientation = 'enu';\n if (opt_srsName) {\n axisOrientation = getProjection(opt_srsName).getAxisOrientation();\n }\n var coords = axisOrientation.substr(0, 2) === 'en'\n ? point[0] + ',' + point[1]\n : point[1] + ',' + point[0];\n if (opt_hasZ) {\n // For newly created points, Z can be undefined.\n var z = point[2] || 0;\n coords += ',' + z;\n }\n return coords;\n };\n /**\n * @param {Element} node Node.\n * @param {import(\"../geom/Point.js\").default} geometry Point geometry.\n * @param {Array<*>} objectStack Node stack.\n */\n GML2.prototype.writePoint = function (node, geometry, objectStack) {\n var context = objectStack[objectStack.length - 1];\n var hasZ = context['hasZ'];\n var srsName = context['srsName'];\n if (srsName) {\n node.setAttribute('srsName', srsName);\n }\n var coordinates = this.createCoordinatesNode_(node.namespaceURI);\n node.appendChild(coordinates);\n var point = geometry.getCoordinates();\n var coord = this.getCoords_(point, srsName, hasZ);\n writeStringTextNode(coordinates, coord);\n };\n /**\n * @param {Element} node Node.\n * @param {import(\"../geom/MultiPoint.js\").default} geometry MultiPoint geometry.\n * @param {Array<*>} objectStack Node stack.\n */\n GML2.prototype.writeMultiPoint = function (node, geometry, objectStack) {\n var context = objectStack[objectStack.length - 1];\n var hasZ = context['hasZ'];\n var srsName = context['srsName'];\n if (srsName) {\n node.setAttribute('srsName', srsName);\n }\n var points = geometry.getPoints();\n pushSerializeAndPop({ node: node, hasZ: hasZ, srsName: srsName }, this.POINTMEMBER_SERIALIZERS, makeSimpleNodeFactory('pointMember'), points, objectStack, undefined, this);\n };\n /**\n * @param {Element} node Node.\n * @param {import(\"../geom/Point.js\").default} point Point geometry.\n * @param {Array<*>} objectStack Node stack.\n */\n GML2.prototype.writePointMember = function (node, point, objectStack) {\n var child = createElementNS(node.namespaceURI, 'Point');\n node.appendChild(child);\n this.writePoint(child, point, objectStack);\n };\n /**\n * @param {Element} node Node.\n * @param {import(\"../geom/LinearRing.js\").default} geometry LinearRing geometry.\n * @param {Array<*>} objectStack Node stack.\n */\n GML2.prototype.writeLinearRing = function (node, geometry, objectStack) {\n var context = objectStack[objectStack.length - 1];\n var srsName = context['srsName'];\n if (srsName) {\n node.setAttribute('srsName', srsName);\n }\n var coordinates = this.createCoordinatesNode_(node.namespaceURI);\n node.appendChild(coordinates);\n this.writeCoordinates_(coordinates, geometry, objectStack);\n };\n /**\n * @param {Element} node Node.\n * @param {import(\"../geom/MultiPolygon.js\").default} geometry MultiPolygon geometry.\n * @param {Array<*>} objectStack Node stack.\n */\n GML2.prototype.writeMultiSurfaceOrPolygon = function (node, geometry, objectStack) {\n var context = objectStack[objectStack.length - 1];\n var hasZ = context['hasZ'];\n var srsName = context['srsName'];\n var surface = context['surface'];\n if (srsName) {\n node.setAttribute('srsName', srsName);\n }\n var polygons = geometry.getPolygons();\n pushSerializeAndPop({ node: node, hasZ: hasZ, srsName: srsName, surface: surface }, this.SURFACEORPOLYGONMEMBER_SERIALIZERS, this.MULTIGEOMETRY_MEMBER_NODE_FACTORY_, polygons, objectStack, undefined, this);\n };\n /**\n * @param {Node} node Node.\n * @param {import(\"../geom/Polygon.js\").default} polygon Polygon geometry.\n * @param {Array<*>} objectStack Node stack.\n */\n GML2.prototype.writeSurfaceOrPolygonMember = function (node, polygon, objectStack) {\n var child = this.GEOMETRY_NODE_FACTORY_(polygon, objectStack);\n if (child) {\n node.appendChild(child);\n this.writeSurfaceOrPolygon(child, polygon, objectStack);\n }\n };\n /**\n * @param {Element} node Node.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @param {Array<*>} objectStack Node stack.\n */\n GML2.prototype.writeEnvelope = function (node, extent, objectStack) {\n var context = objectStack[objectStack.length - 1];\n var srsName = context['srsName'];\n if (srsName) {\n node.setAttribute('srsName', srsName);\n }\n var keys = ['lowerCorner', 'upperCorner'];\n var values = [extent[0] + ' ' + extent[1], extent[2] + ' ' + extent[3]];\n pushSerializeAndPop(\n /** @type {import(\"../xml.js\").NodeStackItem} */\n ({ node: node }), this.ENVELOPE_SERIALIZERS, OBJECT_PROPERTY_NODE_FACTORY, values, objectStack, keys, this);\n };\n /**\n * @const\n * @param {*} value Value.\n * @param {Array<*>} objectStack Object stack.\n * @param {string} [opt_nodeName] Node name.\n * @return {Node|undefined} Node.\n * @private\n */\n GML2.prototype.MULTIGEOMETRY_MEMBER_NODE_FACTORY_ = function (value, objectStack, opt_nodeName) {\n var parentNode = objectStack[objectStack.length - 1].node;\n return createElementNS('http://www.opengis.net/gml', MULTIGEOMETRY_TO_MEMBER_NODENAME[parentNode.nodeName]);\n };\n return GML2;\n}(GMLBase));\n/**\n * @const\n * @type {Object>}\n */\nGML2.prototype.GEOMETRY_FLAT_COORDINATES_PARSERS = {\n 'http://www.opengis.net/gml': {\n 'coordinates': makeReplacer(GML2.prototype.readFlatCoordinates),\n },\n};\n/**\n * @const\n * @type {Object>}\n */\nGML2.prototype.FLAT_LINEAR_RINGS_PARSERS = {\n 'http://www.opengis.net/gml': {\n 'innerBoundaryIs': GML2.prototype.innerBoundaryIsParser,\n 'outerBoundaryIs': GML2.prototype.outerBoundaryIsParser,\n },\n};\n/**\n * @const\n * @type {Object>}\n */\nGML2.prototype.BOX_PARSERS_ = {\n 'http://www.opengis.net/gml': {\n 'coordinates': makeArrayPusher(GML2.prototype.readFlatCoordinates),\n },\n};\n/**\n * @const\n * @type {Object>}\n */\nGML2.prototype.GEOMETRY_PARSERS = {\n 'http://www.opengis.net/gml': {\n 'Point': makeReplacer(GMLBase.prototype.readPoint),\n 'MultiPoint': makeReplacer(GMLBase.prototype.readMultiPoint),\n 'LineString': makeReplacer(GMLBase.prototype.readLineString),\n 'MultiLineString': makeReplacer(GMLBase.prototype.readMultiLineString),\n 'LinearRing': makeReplacer(GMLBase.prototype.readLinearRing),\n 'Polygon': makeReplacer(GMLBase.prototype.readPolygon),\n 'MultiPolygon': makeReplacer(GMLBase.prototype.readMultiPolygon),\n 'Box': makeReplacer(GML2.prototype.readBox),\n },\n};\n/**\n * @const\n * @type {Object>}\n */\nGML2.prototype.GEOMETRY_SERIALIZERS = {\n 'http://www.opengis.net/gml': {\n 'Curve': makeChildAppender(GML2.prototype.writeCurveOrLineString),\n 'MultiCurve': makeChildAppender(GML2.prototype.writeMultiCurveOrLineString),\n 'Point': makeChildAppender(GML2.prototype.writePoint),\n 'MultiPoint': makeChildAppender(GML2.prototype.writeMultiPoint),\n 'LineString': makeChildAppender(GML2.prototype.writeCurveOrLineString),\n 'MultiLineString': makeChildAppender(GML2.prototype.writeMultiCurveOrLineString),\n 'LinearRing': makeChildAppender(GML2.prototype.writeLinearRing),\n 'Polygon': makeChildAppender(GML2.prototype.writeSurfaceOrPolygon),\n 'MultiPolygon': makeChildAppender(GML2.prototype.writeMultiSurfaceOrPolygon),\n 'Surface': makeChildAppender(GML2.prototype.writeSurfaceOrPolygon),\n 'MultiSurface': makeChildAppender(GML2.prototype.writeMultiSurfaceOrPolygon),\n 'Envelope': makeChildAppender(GML2.prototype.writeEnvelope),\n },\n};\n/**\n * @type {Object>}\n */\nGML2.prototype.LINESTRINGORCURVEMEMBER_SERIALIZERS = {\n 'http://www.opengis.net/gml': {\n 'lineStringMember': makeChildAppender(GML2.prototype.writeLineStringOrCurveMember),\n 'curveMember': makeChildAppender(GML2.prototype.writeLineStringOrCurveMember),\n },\n};\n/**\n * @type {Object>}\n */\nGML2.prototype.RING_SERIALIZERS = {\n 'http://www.opengis.net/gml': {\n 'outerBoundaryIs': makeChildAppender(GML2.prototype.writeRing),\n 'innerBoundaryIs': makeChildAppender(GML2.prototype.writeRing),\n },\n};\n/**\n * @type {Object>}\n */\nGML2.prototype.POINTMEMBER_SERIALIZERS = {\n 'http://www.opengis.net/gml': {\n 'pointMember': makeChildAppender(GML2.prototype.writePointMember),\n },\n};\n/**\n * @const\n * @type {Object>}\n */\nGML2.prototype.SURFACEORPOLYGONMEMBER_SERIALIZERS = {\n 'http://www.opengis.net/gml': {\n 'surfaceMember': makeChildAppender(GML2.prototype.writeSurfaceOrPolygonMember),\n 'polygonMember': makeChildAppender(GML2.prototype.writeSurfaceOrPolygonMember),\n },\n};\n/**\n * @type {Object>}\n */\nGML2.prototype.ENVELOPE_SERIALIZERS = {\n 'http://www.opengis.net/gml': {\n 'lowerCorner': makeChildAppender(writeStringTextNode),\n 'upperCorner': makeChildAppender(writeStringTextNode),\n },\n};\nexport default GML2;\n//# sourceMappingURL=GML2.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/format/GML3\n */\nimport GML2 from './GML2.js';\nimport GMLBase, { GMLNS } from './GMLBase.js';\nimport GeometryLayout from '../geom/GeometryLayout.js';\nimport LineString from '../geom/LineString.js';\nimport MultiLineString from '../geom/MultiLineString.js';\nimport MultiPolygon from '../geom/MultiPolygon.js';\nimport Polygon from '../geom/Polygon.js';\nimport { OBJECT_PROPERTY_NODE_FACTORY, XML_SCHEMA_INSTANCE_URI, createElementNS, getAllTextContent, makeArrayExtender, makeArrayPusher, makeChildAppender, makeReplacer, makeSimpleNodeFactory, parseNode, pushParseAndPop, pushSerializeAndPop, } from '../xml.js';\nimport { assign } from '../obj.js';\nimport { createOrUpdate } from '../extent.js';\nimport { extend } from '../array.js';\nimport { get as getProjection } from '../proj.js';\nimport { readNonNegativeIntegerString, writeStringTextNode } from './xsd.js';\nimport { transformExtentWithOptions, transformGeometryWithOptions, } from './Feature.js';\n/**\n * @const\n * @type {string}\n * @private\n */\nvar schemaLocation = GMLNS +\n ' http://schemas.opengis.net/gml/3.1.1/profiles/gmlsfProfile/' +\n '1.0.0/gmlsf.xsd';\n/**\n * @const\n * @type {Object}\n */\nvar MULTIGEOMETRY_TO_MEMBER_NODENAME = {\n 'MultiLineString': 'lineStringMember',\n 'MultiCurve': 'curveMember',\n 'MultiPolygon': 'polygonMember',\n 'MultiSurface': 'surfaceMember',\n};\n/**\n * @classdesc\n * Feature format for reading and writing data in the GML format\n * version 3.1.1.\n * Currently only supports GML 3.1.1 Simple Features profile.\n *\n * @api\n */\nvar GML3 = /** @class */ (function (_super) {\n __extends(GML3, _super);\n /**\n * @param {import(\"./GMLBase.js\").Options} [opt_options] Optional configuration object.\n */\n function GML3(opt_options) {\n var _this = this;\n var options = \n /** @type {import(\"./GMLBase.js\").Options} */\n (opt_options ? opt_options : {});\n _this = _super.call(this, options) || this;\n /**\n * @private\n * @type {boolean}\n */\n _this.surface_ = options.surface !== undefined ? options.surface : false;\n /**\n * @private\n * @type {boolean}\n */\n _this.curve_ = options.curve !== undefined ? options.curve : false;\n /**\n * @private\n * @type {boolean}\n */\n _this.multiCurve_ =\n options.multiCurve !== undefined ? options.multiCurve : true;\n /**\n * @private\n * @type {boolean}\n */\n _this.multiSurface_ =\n options.multiSurface !== undefined ? options.multiSurface : true;\n /**\n * @type {string}\n */\n _this.schemaLocation = options.schemaLocation\n ? options.schemaLocation\n : schemaLocation;\n /**\n * @private\n * @type {boolean}\n */\n _this.hasZ = options.hasZ !== undefined ? options.hasZ : false;\n return _this;\n }\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {MultiLineString|undefined} MultiLineString.\n */\n GML3.prototype.readMultiCurve = function (node, objectStack) {\n /** @type {Array} */\n var lineStrings = pushParseAndPop([], this.MULTICURVE_PARSERS, node, objectStack, this);\n if (lineStrings) {\n var multiLineString = new MultiLineString(lineStrings);\n return multiLineString;\n }\n else {\n return undefined;\n }\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Array|undefined} Polygon.\n */\n GML3.prototype.readFlatCurveRing = function (node, objectStack) {\n /** @type {Array} */\n var lineStrings = pushParseAndPop([], this.MULTICURVE_PARSERS, node, objectStack, this);\n var flatCoordinates = [];\n for (var i = 0, ii = lineStrings.length; i < ii; ++i) {\n extend(flatCoordinates, lineStrings[i].getFlatCoordinates());\n }\n return flatCoordinates;\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {MultiPolygon|undefined} MultiPolygon.\n */\n GML3.prototype.readMultiSurface = function (node, objectStack) {\n /** @type {Array} */\n var polygons = pushParseAndPop([], this.MULTISURFACE_PARSERS, node, objectStack, this);\n if (polygons) {\n return new MultiPolygon(polygons);\n }\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n GML3.prototype.curveMemberParser = function (node, objectStack) {\n parseNode(this.CURVEMEMBER_PARSERS, node, objectStack, this);\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n GML3.prototype.surfaceMemberParser = function (node, objectStack) {\n parseNode(this.SURFACEMEMBER_PARSERS, node, objectStack, this);\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Array<(Array)>|undefined} flat coordinates.\n */\n GML3.prototype.readPatch = function (node, objectStack) {\n return pushParseAndPop([null], this.PATCHES_PARSERS, node, objectStack, this);\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Array|undefined} flat coordinates.\n */\n GML3.prototype.readSegment = function (node, objectStack) {\n return pushParseAndPop([], this.SEGMENTS_PARSERS, node, objectStack, this);\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Array<(Array)>|undefined} flat coordinates.\n */\n GML3.prototype.readPolygonPatch = function (node, objectStack) {\n return pushParseAndPop([null], this.FLAT_LINEAR_RINGS_PARSERS, node, objectStack, this);\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Array|undefined} flat coordinates.\n */\n GML3.prototype.readLineStringSegment = function (node, objectStack) {\n return pushParseAndPop([null], this.GEOMETRY_FLAT_COORDINATES_PARSERS, node, objectStack, this);\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n GML3.prototype.interiorParser = function (node, objectStack) {\n /** @type {Array|undefined} */\n var flatLinearRing = pushParseAndPop(undefined, this.RING_PARSERS, node, objectStack, this);\n if (flatLinearRing) {\n var flatLinearRings = \n /** @type {Array>} */\n (objectStack[objectStack.length - 1]);\n flatLinearRings.push(flatLinearRing);\n }\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\n GML3.prototype.exteriorParser = function (node, objectStack) {\n /** @type {Array|undefined} */\n var flatLinearRing = pushParseAndPop(undefined, this.RING_PARSERS, node, objectStack, this);\n if (flatLinearRing) {\n var flatLinearRings = \n /** @type {Array>} */\n (objectStack[objectStack.length - 1]);\n flatLinearRings[0] = flatLinearRing;\n }\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Polygon|undefined} Polygon.\n */\n GML3.prototype.readSurface = function (node, objectStack) {\n /** @type {Array>} */\n var flatLinearRings = pushParseAndPop([null], this.SURFACE_PARSERS, node, objectStack, this);\n if (flatLinearRings && flatLinearRings[0]) {\n var flatCoordinates = flatLinearRings[0];\n var ends = [flatCoordinates.length];\n var i = void 0, ii = void 0;\n for (i = 1, ii = flatLinearRings.length; i < ii; ++i) {\n extend(flatCoordinates, flatLinearRings[i]);\n ends.push(flatCoordinates.length);\n }\n return new Polygon(flatCoordinates, GeometryLayout.XYZ, ends);\n }\n else {\n return undefined;\n }\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {LineString|undefined} LineString.\n */\n GML3.prototype.readCurve = function (node, objectStack) {\n /** @type {Array} */\n var flatCoordinates = pushParseAndPop([null], this.CURVE_PARSERS, node, objectStack, this);\n if (flatCoordinates) {\n var lineString = new LineString(flatCoordinates, GeometryLayout.XYZ);\n return lineString;\n }\n else {\n return undefined;\n }\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {import(\"../extent.js\").Extent|undefined} Envelope.\n */\n GML3.prototype.readEnvelope = function (node, objectStack) {\n /** @type {Array} */\n var flatCoordinates = pushParseAndPop([null], this.ENVELOPE_PARSERS, node, objectStack, this);\n return createOrUpdate(flatCoordinates[1][0], flatCoordinates[1][1], flatCoordinates[2][0], flatCoordinates[2][1]);\n };\n /**\n * @param {Node} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Array|undefined} Flat coordinates.\n */\n GML3.prototype.readFlatPos = function (node, objectStack) {\n var s = getAllTextContent(node, false);\n var re = /^\\s*([+\\-]?\\d*\\.?\\d+(?:[eE][+\\-]?\\d+)?)\\s*/;\n /** @type {Array} */\n var flatCoordinates = [];\n var m;\n while ((m = re.exec(s))) {\n flatCoordinates.push(parseFloat(m[1]));\n s = s.substr(m[0].length);\n }\n if (s !== '') {\n return undefined;\n }\n var context = objectStack[0];\n var containerSrs = context['srsName'];\n var axisOrientation = 'enu';\n if (containerSrs) {\n var proj = getProjection(containerSrs);\n axisOrientation = proj.getAxisOrientation();\n }\n if (axisOrientation === 'neu') {\n var i = void 0, ii = void 0;\n for (i = 0, ii = flatCoordinates.length; i < ii; i += 3) {\n var y = flatCoordinates[i];\n var x = flatCoordinates[i + 1];\n flatCoordinates[i] = x;\n flatCoordinates[i + 1] = y;\n }\n }\n var len = flatCoordinates.length;\n if (len == 2) {\n flatCoordinates.push(0);\n }\n if (len === 0) {\n return undefined;\n }\n return flatCoordinates;\n };\n /**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Array|undefined} Flat coordinates.\n */\n GML3.prototype.readFlatPosList = function (node, objectStack) {\n var s = getAllTextContent(node, false).replace(/^\\s*|\\s*$/g, '');\n var context = objectStack[0];\n var containerSrs = context['srsName'];\n var contextDimension = context['srsDimension'];\n var axisOrientation = 'enu';\n if (containerSrs) {\n var proj = getProjection(containerSrs);\n axisOrientation = proj.getAxisOrientation();\n }\n var coords = s.split(/\\s+/);\n // The \"dimension\" attribute is from the GML 3.0.1 spec.\n var dim = 2;\n if (node.getAttribute('srsDimension')) {\n dim = readNonNegativeIntegerString(node.getAttribute('srsDimension'));\n }\n else if (node.getAttribute('dimension')) {\n dim = readNonNegativeIntegerString(node.getAttribute('dimension'));\n }\n else if (\n /** @type {Element} */ (node.parentNode).getAttribute('srsDimension')) {\n dim = readNonNegativeIntegerString(\n /** @type {Element} */ (node.parentNode).getAttribute('srsDimension'));\n }\n else if (contextDimension) {\n dim = readNonNegativeIntegerString(contextDimension);\n }\n var x, y, z;\n var flatCoordinates = [];\n for (var i = 0, ii = coords.length; i < ii; i += dim) {\n x = parseFloat(coords[i]);\n y = parseFloat(coords[i + 1]);\n z = dim === 3 ? parseFloat(coords[i + 2]) : 0;\n if (axisOrientation.substr(0, 2) === 'en') {\n flatCoordinates.push(x, y, z);\n }\n else {\n flatCoordinates.push(y, x, z);\n }\n }\n return flatCoordinates;\n };\n /**\n * @param {Element} node Node.\n * @param {import(\"../geom/Point.js\").default} value Point geometry.\n * @param {Array<*>} objectStack Node stack.\n * @private\n */\n GML3.prototype.writePos_ = function (node, value, objectStack) {\n var context = objectStack[objectStack.length - 1];\n var hasZ = context['hasZ'];\n var srsDimension = hasZ ? '3' : '2';\n node.setAttribute('srsDimension', srsDimension);\n var srsName = context['srsName'];\n var axisOrientation = 'enu';\n if (srsName) {\n axisOrientation = getProjection(srsName).getAxisOrientation();\n }\n var point = value.getCoordinates();\n var coords;\n // only 2d for simple features profile\n if (axisOrientation.substr(0, 2) === 'en') {\n coords = point[0] + ' ' + point[1];\n }\n else {\n coords = point[1] + ' ' + point[0];\n }\n if (hasZ) {\n // For newly created points, Z can be undefined.\n var z = point[2] || 0;\n coords += ' ' + z;\n }\n writeStringTextNode(node, coords);\n };\n /**\n * @param {Array} point Point geometry.\n * @param {string} [opt_srsName] Optional srsName\n * @param {boolean} [opt_hasZ] whether the geometry has a Z coordinate (is 3D) or not.\n * @return {string} The coords string.\n * @private\n */\n GML3.prototype.getCoords_ = function (point, opt_srsName, opt_hasZ) {\n var axisOrientation = 'enu';\n if (opt_srsName) {\n axisOrientation = getProjection(opt_srsName).getAxisOrientation();\n }\n var coords = axisOrientation.substr(0, 2) === 'en'\n ? point[0] + ' ' + point[1]\n : point[1] + ' ' + point[0];\n if (opt_hasZ) {\n // For newly created points, Z can be undefined.\n var z = point[2] || 0;\n coords += ' ' + z;\n }\n return coords;\n };\n /**\n * @param {Element} node Node.\n * @param {LineString|import(\"../geom/LinearRing.js\").default} value Geometry.\n * @param {Array<*>} objectStack Node stack.\n * @private\n */\n GML3.prototype.writePosList_ = function (node, value, objectStack) {\n var context = objectStack[objectStack.length - 1];\n var hasZ = context['hasZ'];\n var srsDimension = hasZ ? '3' : '2';\n node.setAttribute('srsDimension', srsDimension);\n var srsName = context['srsName'];\n // only 2d for simple features profile\n var points = value.getCoordinates();\n var len = points.length;\n var parts = new Array(len);\n var point;\n for (var i = 0; i < len; ++i) {\n point = points[i];\n parts[i] = this.getCoords_(point, srsName, hasZ);\n }\n writeStringTextNode(node, parts.join(' '));\n };\n /**\n * @param {Element} node Node.\n * @param {import(\"../geom/Point.js\").default} geometry Point geometry.\n * @param {Array<*>} objectStack Node stack.\n */\n GML3.prototype.writePoint = function (node, geometry, objectStack) {\n var context = objectStack[objectStack.length - 1];\n var srsName = context['srsName'];\n if (srsName) {\n node.setAttribute('srsName', srsName);\n }\n var pos = createElementNS(node.namespaceURI, 'pos');\n node.appendChild(pos);\n this.writePos_(pos, geometry, objectStack);\n };\n /**\n * @param {Element} node Node.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @param {Array<*>} objectStack Node stack.\n */\n GML3.prototype.writeEnvelope = function (node, extent, objectStack) {\n var context = objectStack[objectStack.length - 1];\n var srsName = context['srsName'];\n if (srsName) {\n node.setAttribute('srsName', srsName);\n }\n var keys = ['lowerCorner', 'upperCorner'];\n var values = [extent[0] + ' ' + extent[1], extent[2] + ' ' + extent[3]];\n pushSerializeAndPop(\n /** @type {import(\"../xml.js\").NodeStackItem} */\n ({ node: node }), this.ENVELOPE_SERIALIZERS, OBJECT_PROPERTY_NODE_FACTORY, values, objectStack, keys, this);\n };\n /**\n * @param {Element} node Node.\n * @param {import(\"../geom/LinearRing.js\").default} geometry LinearRing geometry.\n * @param {Array<*>} objectStack Node stack.\n */\n GML3.prototype.writeLinearRing = function (node, geometry, objectStack) {\n var context = objectStack[objectStack.length - 1];\n var srsName = context['srsName'];\n if (srsName) {\n node.setAttribute('srsName', srsName);\n }\n var posList = createElementNS(node.namespaceURI, 'posList');\n node.appendChild(posList);\n this.writePosList_(posList, geometry, objectStack);\n };\n /**\n * @param {*} value Value.\n * @param {Array<*>} objectStack Object stack.\n * @param {string} [opt_nodeName] Node name.\n * @return {Node} Node.\n * @private\n */\n GML3.prototype.RING_NODE_FACTORY_ = function (value, objectStack, opt_nodeName) {\n var context = objectStack[objectStack.length - 1];\n var parentNode = context.node;\n var exteriorWritten = context['exteriorWritten'];\n if (exteriorWritten === undefined) {\n context['exteriorWritten'] = true;\n }\n return createElementNS(parentNode.namespaceURI, exteriorWritten !== undefined ? 'interior' : 'exterior');\n };\n /**\n * @param {Element} node Node.\n * @param {Polygon} geometry Polygon geometry.\n * @param {Array<*>} objectStack Node stack.\n */\n GML3.prototype.writeSurfaceOrPolygon = function (node, geometry, objectStack) {\n var context = objectStack[objectStack.length - 1];\n var hasZ = context['hasZ'];\n var srsName = context['srsName'];\n if (node.nodeName !== 'PolygonPatch' && srsName) {\n node.setAttribute('srsName', srsName);\n }\n if (node.nodeName === 'Polygon' || node.nodeName === 'PolygonPatch') {\n var rings = geometry.getLinearRings();\n pushSerializeAndPop({ node: node, hasZ: hasZ, srsName: srsName }, this.RING_SERIALIZERS, this.RING_NODE_FACTORY_, rings, objectStack, undefined, this);\n }\n else if (node.nodeName === 'Surface') {\n var patches = createElementNS(node.namespaceURI, 'patches');\n node.appendChild(patches);\n this.writeSurfacePatches_(patches, geometry, objectStack);\n }\n };\n /**\n * @param {Element} node Node.\n * @param {LineString} geometry LineString geometry.\n * @param {Array<*>} objectStack Node stack.\n */\n GML3.prototype.writeCurveOrLineString = function (node, geometry, objectStack) {\n var context = objectStack[objectStack.length - 1];\n var srsName = context['srsName'];\n if (node.nodeName !== 'LineStringSegment' && srsName) {\n node.setAttribute('srsName', srsName);\n }\n if (node.nodeName === 'LineString' ||\n node.nodeName === 'LineStringSegment') {\n var posList = createElementNS(node.namespaceURI, 'posList');\n node.appendChild(posList);\n this.writePosList_(posList, geometry, objectStack);\n }\n else if (node.nodeName === 'Curve') {\n var segments = createElementNS(node.namespaceURI, 'segments');\n node.appendChild(segments);\n this.writeCurveSegments_(segments, geometry, objectStack);\n }\n };\n /**\n * @param {Element} node Node.\n * @param {MultiPolygon} geometry MultiPolygon geometry.\n * @param {Array<*>} objectStack Node stack.\n */\n GML3.prototype.writeMultiSurfaceOrPolygon = function (node, geometry, objectStack) {\n var context = objectStack[objectStack.length - 1];\n var hasZ = context['hasZ'];\n var srsName = context['srsName'];\n var surface = context['surface'];\n if (srsName) {\n node.setAttribute('srsName', srsName);\n }\n var polygons = geometry.getPolygons();\n pushSerializeAndPop({ node: node, hasZ: hasZ, srsName: srsName, surface: surface }, this.SURFACEORPOLYGONMEMBER_SERIALIZERS, this.MULTIGEOMETRY_MEMBER_NODE_FACTORY_, polygons, objectStack, undefined, this);\n };\n /**\n * @param {Element} node Node.\n * @param {import(\"../geom/MultiPoint.js\").default} geometry MultiPoint geometry.\n * @param {Array<*>} objectStack Node stack.\n */\n GML3.prototype.writeMultiPoint = function (node, geometry, objectStack) {\n var context = objectStack[objectStack.length - 1];\n var srsName = context['srsName'];\n var hasZ = context['hasZ'];\n if (srsName) {\n node.setAttribute('srsName', srsName);\n }\n var points = geometry.getPoints();\n pushSerializeAndPop({ node: node, hasZ: hasZ, srsName: srsName }, this.POINTMEMBER_SERIALIZERS, makeSimpleNodeFactory('pointMember'), points, objectStack, undefined, this);\n };\n /**\n * @param {Element} node Node.\n * @param {MultiLineString} geometry MultiLineString geometry.\n * @param {Array<*>} objectStack Node stack.\n */\n GML3.prototype.writeMultiCurveOrLineString = function (node, geometry, objectStack) {\n var context = objectStack[objectStack.length - 1];\n var hasZ = context['hasZ'];\n var srsName = context['srsName'];\n var curve = context['curve'];\n if (srsName) {\n node.setAttribute('srsName', srsName);\n }\n var lines = geometry.getLineStrings();\n pushSerializeAndPop({ node: node, hasZ: hasZ, srsName: srsName, curve: curve }, this.LINESTRINGORCURVEMEMBER_SERIALIZERS, this.MULTIGEOMETRY_MEMBER_NODE_FACTORY_, lines, objectStack, undefined, this);\n };\n /**\n * @param {Element} node Node.\n * @param {import(\"../geom/LinearRing.js\").default} ring LinearRing geometry.\n * @param {Array<*>} objectStack Node stack.\n */\n GML3.prototype.writeRing = function (node, ring, objectStack) {\n var linearRing = createElementNS(node.namespaceURI, 'LinearRing');\n node.appendChild(linearRing);\n this.writeLinearRing(linearRing, ring, objectStack);\n };\n /**\n * @param {Node} node Node.\n * @param {Polygon} polygon Polygon geometry.\n * @param {Array<*>} objectStack Node stack.\n */\n GML3.prototype.writeSurfaceOrPolygonMember = function (node, polygon, objectStack) {\n var child = this.GEOMETRY_NODE_FACTORY_(polygon, objectStack);\n if (child) {\n node.appendChild(child);\n this.writeSurfaceOrPolygon(child, polygon, objectStack);\n }\n };\n /**\n * @param {Element} node Node.\n * @param {import(\"../geom/Point.js\").default} point Point geometry.\n * @param {Array<*>} objectStack Node stack.\n */\n GML3.prototype.writePointMember = function (node, point, objectStack) {\n var child = createElementNS(node.namespaceURI, 'Point');\n node.appendChild(child);\n this.writePoint(child, point, objectStack);\n };\n /**\n * @param {Node} node Node.\n * @param {LineString} line LineString geometry.\n * @param {Array<*>} objectStack Node stack.\n */\n GML3.prototype.writeLineStringOrCurveMember = function (node, line, objectStack) {\n var child = this.GEOMETRY_NODE_FACTORY_(line, objectStack);\n if (child) {\n node.appendChild(child);\n this.writeCurveOrLineString(child, line, objectStack);\n }\n };\n /**\n * @param {Element} node Node.\n * @param {Polygon} polygon Polygon geometry.\n * @param {Array<*>} objectStack Node stack.\n * @private\n */\n GML3.prototype.writeSurfacePatches_ = function (node, polygon, objectStack) {\n var child = createElementNS(node.namespaceURI, 'PolygonPatch');\n node.appendChild(child);\n this.writeSurfaceOrPolygon(child, polygon, objectStack);\n };\n /**\n * @param {Element} node Node.\n * @param {LineString} line LineString geometry.\n * @param {Array<*>} objectStack Node stack.\n * @private\n */\n GML3.prototype.writeCurveSegments_ = function (node, line, objectStack) {\n var child = createElementNS(node.namespaceURI, 'LineStringSegment');\n node.appendChild(child);\n this.writeCurveOrLineString(child, line, objectStack);\n };\n /**\n * @param {Node} node Node.\n * @param {import(\"../geom/Geometry.js\").default|import(\"../extent.js\").Extent} geometry Geometry.\n * @param {Array<*>} objectStack Node stack.\n */\n GML3.prototype.writeGeometryElement = function (node, geometry, objectStack) {\n var context = /** @type {import(\"./Feature.js\").WriteOptions} */ (objectStack[objectStack.length - 1]);\n var item = assign({}, context);\n item['node'] = node;\n var value;\n if (Array.isArray(geometry)) {\n value = transformExtentWithOptions(\n /** @type {import(\"../extent.js\").Extent} */ (geometry), context);\n }\n else {\n value = transformGeometryWithOptions(\n /** @type {import(\"../geom/Geometry.js\").default} */ (geometry), true, context);\n }\n pushSerializeAndPop(\n /** @type {import(\"../xml.js\").NodeStackItem} */\n (item), this.GEOMETRY_SERIALIZERS, this.GEOMETRY_NODE_FACTORY_, [value], objectStack, undefined, this);\n };\n /**\n * @param {Element} node Node.\n * @param {import(\"../Feature.js\").default} feature Feature.\n * @param {Array<*>} objectStack Node stack.\n */\n GML3.prototype.writeFeatureElement = function (node, feature, objectStack) {\n var fid = feature.getId();\n if (fid) {\n node.setAttribute('fid', /** @type {string} */ (fid));\n }\n var context = /** @type {Object} */ (objectStack[objectStack.length - 1]);\n var featureNS = context['featureNS'];\n var geometryName = feature.getGeometryName();\n if (!context.serializers) {\n context.serializers = {};\n context.serializers[featureNS] = {};\n }\n var keys = [];\n var values = [];\n if (feature.hasProperties()) {\n var properties = feature.getProperties();\n for (var key in properties) {\n var value = properties[key];\n if (value !== null) {\n keys.push(key);\n values.push(value);\n if (key == geometryName ||\n typeof ( /** @type {?} */(value).getSimplifiedGeometry) ===\n 'function') {\n if (!(key in context.serializers[featureNS])) {\n context.serializers[featureNS][key] = makeChildAppender(this.writeGeometryElement, this);\n }\n }\n else {\n if (!(key in context.serializers[featureNS])) {\n context.serializers[featureNS][key] =\n makeChildAppender(writeStringTextNode);\n }\n }\n }\n }\n }\n var item = assign({}, context);\n item.node = node;\n pushSerializeAndPop(\n /** @type {import(\"../xml.js\").NodeStackItem} */\n (item), context.serializers, makeSimpleNodeFactory(undefined, featureNS), values, objectStack, keys);\n };\n /**\n * @param {Node} node Node.\n * @param {Array} features Features.\n * @param {Array<*>} objectStack Node stack.\n * @private\n */\n GML3.prototype.writeFeatureMembers_ = function (node, features, objectStack) {\n var context = /** @type {Object} */ (objectStack[objectStack.length - 1]);\n var featureType = context['featureType'];\n var featureNS = context['featureNS'];\n /** @type {Object>} */\n var serializers = {};\n serializers[featureNS] = {};\n serializers[featureNS][featureType] = makeChildAppender(this.writeFeatureElement, this);\n var item = assign({}, context);\n item.node = node;\n pushSerializeAndPop(\n /** @type {import(\"../xml.js\").NodeStackItem} */\n (item), serializers, makeSimpleNodeFactory(featureType, featureNS), features, objectStack);\n };\n /**\n * @const\n * @param {*} value Value.\n * @param {Array<*>} objectStack Object stack.\n * @param {string} [opt_nodeName] Node name.\n * @return {Node|undefined} Node.\n * @private\n */\n GML3.prototype.MULTIGEOMETRY_MEMBER_NODE_FACTORY_ = function (value, objectStack, opt_nodeName) {\n var parentNode = objectStack[objectStack.length - 1].node;\n return createElementNS(this.namespace, MULTIGEOMETRY_TO_MEMBER_NODENAME[parentNode.nodeName]);\n };\n /**\n * @const\n * @param {*} value Value.\n * @param {Array<*>} objectStack Object stack.\n * @param {string} [opt_nodeName] Node name.\n * @return {Element|undefined} Node.\n * @private\n */\n GML3.prototype.GEOMETRY_NODE_FACTORY_ = function (value, objectStack, opt_nodeName) {\n var context = objectStack[objectStack.length - 1];\n var multiSurface = context['multiSurface'];\n var surface = context['surface'];\n var curve = context['curve'];\n var multiCurve = context['multiCurve'];\n var nodeName;\n if (!Array.isArray(value)) {\n nodeName = /** @type {import(\"../geom/Geometry.js\").default} */ (value).getType();\n if (nodeName === 'MultiPolygon' && multiSurface === true) {\n nodeName = 'MultiSurface';\n }\n else if (nodeName === 'Polygon' && surface === true) {\n nodeName = 'Surface';\n }\n else if (nodeName === 'LineString' && curve === true) {\n nodeName = 'Curve';\n }\n else if (nodeName === 'MultiLineString' && multiCurve === true) {\n nodeName = 'MultiCurve';\n }\n }\n else {\n nodeName = 'Envelope';\n }\n return createElementNS(this.namespace, nodeName);\n };\n /**\n * Encode a geometry in GML 3.1.1 Simple Features.\n *\n * @param {import(\"../geom/Geometry.js\").default} geometry Geometry.\n * @param {import(\"./Feature.js\").WriteOptions} [opt_options] Options.\n * @return {Node} Node.\n * @api\n */\n GML3.prototype.writeGeometryNode = function (geometry, opt_options) {\n opt_options = this.adaptOptions(opt_options);\n var geom = createElementNS(this.namespace, 'geom');\n var context = {\n node: geom,\n hasZ: this.hasZ,\n srsName: this.srsName,\n curve: this.curve_,\n surface: this.surface_,\n multiSurface: this.multiSurface_,\n multiCurve: this.multiCurve_,\n };\n if (opt_options) {\n assign(context, opt_options);\n }\n this.writeGeometryElement(geom, geometry, [context]);\n return geom;\n };\n /**\n * Encode an array of features in the GML 3.1.1 format as an XML node.\n *\n * @param {Array} features Features.\n * @param {import(\"./Feature.js\").WriteOptions} [opt_options] Options.\n * @return {Element} Node.\n * @api\n */\n GML3.prototype.writeFeaturesNode = function (features, opt_options) {\n opt_options = this.adaptOptions(opt_options);\n var node = createElementNS(this.namespace, 'featureMembers');\n node.setAttributeNS(XML_SCHEMA_INSTANCE_URI, 'xsi:schemaLocation', this.schemaLocation);\n var context = {\n srsName: this.srsName,\n hasZ: this.hasZ,\n curve: this.curve_,\n surface: this.surface_,\n multiSurface: this.multiSurface_,\n multiCurve: this.multiCurve_,\n featureNS: this.featureNS,\n featureType: this.featureType,\n };\n if (opt_options) {\n assign(context, opt_options);\n }\n this.writeFeatureMembers_(node, features, [context]);\n return node;\n };\n return GML3;\n}(GMLBase));\n/**\n * @const\n * @type {Object>}\n */\nGML3.prototype.GEOMETRY_FLAT_COORDINATES_PARSERS = {\n 'http://www.opengis.net/gml': {\n 'pos': makeReplacer(GML3.prototype.readFlatPos),\n 'posList': makeReplacer(GML3.prototype.readFlatPosList),\n 'coordinates': makeReplacer(GML2.prototype.readFlatCoordinates),\n },\n};\n/**\n * @const\n * @type {Object>}\n */\nGML3.prototype.FLAT_LINEAR_RINGS_PARSERS = {\n 'http://www.opengis.net/gml': {\n 'interior': GML3.prototype.interiorParser,\n 'exterior': GML3.prototype.exteriorParser,\n },\n};\n/**\n * @const\n * @type {Object>}\n */\nGML3.prototype.GEOMETRY_PARSERS = {\n 'http://www.opengis.net/gml': {\n 'Point': makeReplacer(GMLBase.prototype.readPoint),\n 'MultiPoint': makeReplacer(GMLBase.prototype.readMultiPoint),\n 'LineString': makeReplacer(GMLBase.prototype.readLineString),\n 'MultiLineString': makeReplacer(GMLBase.prototype.readMultiLineString),\n 'LinearRing': makeReplacer(GMLBase.prototype.readLinearRing),\n 'Polygon': makeReplacer(GMLBase.prototype.readPolygon),\n 'MultiPolygon': makeReplacer(GMLBase.prototype.readMultiPolygon),\n 'Surface': makeReplacer(GML3.prototype.readSurface),\n 'MultiSurface': makeReplacer(GML3.prototype.readMultiSurface),\n 'Curve': makeReplacer(GML3.prototype.readCurve),\n 'MultiCurve': makeReplacer(GML3.prototype.readMultiCurve),\n 'Envelope': makeReplacer(GML3.prototype.readEnvelope),\n },\n};\n/**\n * @const\n * @type {Object>}\n */\nGML3.prototype.MULTICURVE_PARSERS = {\n 'http://www.opengis.net/gml': {\n 'curveMember': makeArrayPusher(GML3.prototype.curveMemberParser),\n 'curveMembers': makeArrayPusher(GML3.prototype.curveMemberParser),\n },\n};\n/**\n * @const\n * @type {Object>}\n */\nGML3.prototype.MULTISURFACE_PARSERS = {\n 'http://www.opengis.net/gml': {\n 'surfaceMember': makeArrayPusher(GML3.prototype.surfaceMemberParser),\n 'surfaceMembers': makeArrayPusher(GML3.prototype.surfaceMemberParser),\n },\n};\n/**\n * @const\n * @type {Object>}\n */\nGML3.prototype.CURVEMEMBER_PARSERS = {\n 'http://www.opengis.net/gml': {\n 'LineString': makeArrayPusher(GMLBase.prototype.readLineString),\n 'Curve': makeArrayPusher(GML3.prototype.readCurve),\n },\n};\n/**\n * @const\n * @type {Object>}\n */\nGML3.prototype.SURFACEMEMBER_PARSERS = {\n 'http://www.opengis.net/gml': {\n 'Polygon': makeArrayPusher(GMLBase.prototype.readPolygon),\n 'Surface': makeArrayPusher(GML3.prototype.readSurface),\n },\n};\n/**\n * @const\n * @type {Object>}\n */\nGML3.prototype.SURFACE_PARSERS = {\n 'http://www.opengis.net/gml': {\n 'patches': makeReplacer(GML3.prototype.readPatch),\n },\n};\n/**\n * @const\n * @type {Object>}\n */\nGML3.prototype.CURVE_PARSERS = {\n 'http://www.opengis.net/gml': {\n 'segments': makeReplacer(GML3.prototype.readSegment),\n },\n};\n/**\n * @const\n * @type {Object>}\n */\nGML3.prototype.ENVELOPE_PARSERS = {\n 'http://www.opengis.net/gml': {\n 'lowerCorner': makeArrayPusher(GML3.prototype.readFlatPosList),\n 'upperCorner': makeArrayPusher(GML3.prototype.readFlatPosList),\n },\n};\n/**\n * @const\n * @type {Object>}\n */\nGML3.prototype.PATCHES_PARSERS = {\n 'http://www.opengis.net/gml': {\n 'PolygonPatch': makeReplacer(GML3.prototype.readPolygonPatch),\n },\n};\n/**\n * @const\n * @type {Object>}\n */\nGML3.prototype.SEGMENTS_PARSERS = {\n 'http://www.opengis.net/gml': {\n 'LineStringSegment': makeArrayExtender(GML3.prototype.readLineStringSegment),\n },\n};\n/**\n * @const\n * @type {Object>}\n */\nGMLBase.prototype.RING_PARSERS = {\n 'http://www.opengis.net/gml': {\n 'LinearRing': makeReplacer(GMLBase.prototype.readFlatLinearRing),\n 'Ring': makeReplacer(GML3.prototype.readFlatCurveRing),\n },\n};\n/**\n * Encode an array of features in GML 3.1.1 Simple Features.\n *\n * @function\n * @param {Array} features Features.\n * @param {import(\"./Feature.js\").WriteOptions} [opt_options] Options.\n * @return {string} Result.\n * @api\n */\nGML3.prototype.writeFeatures;\n/**\n * @type {Object>}\n */\nGML3.prototype.RING_SERIALIZERS = {\n 'http://www.opengis.net/gml': {\n 'exterior': makeChildAppender(GML3.prototype.writeRing),\n 'interior': makeChildAppender(GML3.prototype.writeRing),\n },\n};\n/**\n * @type {Object>}\n */\nGML3.prototype.ENVELOPE_SERIALIZERS = {\n 'http://www.opengis.net/gml': {\n 'lowerCorner': makeChildAppender(writeStringTextNode),\n 'upperCorner': makeChildAppender(writeStringTextNode),\n },\n};\n/**\n * @type {Object>}\n */\nGML3.prototype.SURFACEORPOLYGONMEMBER_SERIALIZERS = {\n 'http://www.opengis.net/gml': {\n 'surfaceMember': makeChildAppender(GML3.prototype.writeSurfaceOrPolygonMember),\n 'polygonMember': makeChildAppender(GML3.prototype.writeSurfaceOrPolygonMember),\n },\n};\n/**\n * @type {Object>}\n */\nGML3.prototype.POINTMEMBER_SERIALIZERS = {\n 'http://www.opengis.net/gml': {\n 'pointMember': makeChildAppender(GML3.prototype.writePointMember),\n },\n};\n/**\n * @type {Object>}\n */\nGML3.prototype.LINESTRINGORCURVEMEMBER_SERIALIZERS = {\n 'http://www.opengis.net/gml': {\n 'lineStringMember': makeChildAppender(GML3.prototype.writeLineStringOrCurveMember),\n 'curveMember': makeChildAppender(GML3.prototype.writeLineStringOrCurveMember),\n },\n};\n/**\n * @type {Object>}\n */\nGML3.prototype.GEOMETRY_SERIALIZERS = {\n 'http://www.opengis.net/gml': {\n 'Curve': makeChildAppender(GML3.prototype.writeCurveOrLineString),\n 'MultiCurve': makeChildAppender(GML3.prototype.writeMultiCurveOrLineString),\n 'Point': makeChildAppender(GML3.prototype.writePoint),\n 'MultiPoint': makeChildAppender(GML3.prototype.writeMultiPoint),\n 'LineString': makeChildAppender(GML3.prototype.writeCurveOrLineString),\n 'MultiLineString': makeChildAppender(GML3.prototype.writeMultiCurveOrLineString),\n 'LinearRing': makeChildAppender(GML3.prototype.writeLinearRing),\n 'Polygon': makeChildAppender(GML3.prototype.writeSurfaceOrPolygon),\n 'MultiPolygon': makeChildAppender(GML3.prototype.writeMultiSurfaceOrPolygon),\n 'Surface': makeChildAppender(GML3.prototype.writeSurfaceOrPolygon),\n 'MultiSurface': makeChildAppender(GML3.prototype.writeMultiSurfaceOrPolygon),\n 'Envelope': makeChildAppender(GML3.prototype.writeEnvelope),\n },\n};\nexport default GML3;\n//# sourceMappingURL=GML3.js.map","/**\n * @module ol/format/GML\n */\nimport GML3 from './GML3.js';\n/**\n * Feature format for reading and writing data in the GML format\n * version 3.1.1.\n * Currently only supports GML 3.1.1 Simple Features profile.\n *\n * @class\n * @param {import(\"./GMLBase.js\").Options} [opt_options]\n * Optional configuration object.\n * @api\n */\nvar GML = GML3;\n/**\n * Encode an array of features in GML 3.1.1 Simple Features.\n *\n * @function\n * @param {Array} features Features.\n * @param {import(\"./Feature.js\").WriteOptions} [opt_options] Options.\n * @return {string} Result.\n * @api\n */\nGML.prototype.writeFeatures;\n/**\n * Encode an array of features in the GML 3.1.1 format as an XML node.\n *\n * @function\n * @param {Array} features Features.\n * @param {import(\"./Feature.js\").WriteOptions} [opt_options] Options.\n * @return {Node} Node.\n * @api\n */\nGML.prototype.writeFeaturesNode;\nexport default GML;\n//# sourceMappingURL=GML.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/format/GPX\n */\nimport Feature from '../Feature.js';\nimport GeometryLayout from '../geom/GeometryLayout.js';\nimport LineString from '../geom/LineString.js';\nimport MultiLineString from '../geom/MultiLineString.js';\nimport Point from '../geom/Point.js';\nimport XMLFeature from './XMLFeature.js';\nimport { OBJECT_PROPERTY_NODE_FACTORY, XML_SCHEMA_INSTANCE_URI, createElementNS, makeArrayPusher, makeArraySerializer, makeChildAppender, makeObjectPropertySetter, makeSequence, makeSimpleNodeFactory, makeStructureNS, parseNode, pushParseAndPop, pushSerializeAndPop, } from '../xml.js';\nimport { get as getProjection } from '../proj.js';\nimport { includes } from '../array.js';\nimport { readDateTime, readDecimal, readPositiveInteger, readString, writeDateTimeTextNode, writeDecimalTextNode, writeNonNegativeIntegerTextNode, writeStringTextNode, } from './xsd.js';\nimport { transformGeometryWithOptions } from './Feature.js';\n/**\n * @const\n * @type {Array}\n */\nvar NAMESPACE_URIS = [\n null,\n 'http://www.topografix.com/GPX/1/0',\n 'http://www.topografix.com/GPX/1/1',\n];\n/**\n * @const\n * @type {string}\n */\nvar SCHEMA_LOCATION = 'http://www.topografix.com/GPX/1/1 ' +\n 'http://www.topografix.com/GPX/1/1/gpx.xsd';\n/**\n * @const\n * @type {Object): (Feature|undefined)>}\n */\nvar FEATURE_READER = {\n 'rte': readRte,\n 'trk': readTrk,\n 'wpt': readWpt,\n};\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nvar GPX_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'rte': makeArrayPusher(readRte),\n 'trk': makeArrayPusher(readTrk),\n 'wpt': makeArrayPusher(readWpt),\n});\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nvar LINK_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'text': makeObjectPropertySetter(readString, 'linkText'),\n 'type': makeObjectPropertySetter(readString, 'linkType'),\n});\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nvar GPX_SERIALIZERS = makeStructureNS(NAMESPACE_URIS, {\n 'rte': makeChildAppender(writeRte),\n 'trk': makeChildAppender(writeTrk),\n 'wpt': makeChildAppender(writeWpt),\n});\n/**\n * @typedef {Object} Options\n * @property {function(Feature, Node):void} [readExtensions] Callback function\n * to process `extensions` nodes. To prevent memory leaks, this callback function must\n * not store any references to the node. Note that the `extensions`\n * node is not allowed in GPX 1.0. Moreover, only `extensions`\n * nodes from `wpt`, `rte` and `trk` can be processed, as those are\n * directly mapped to a feature.\n */\n/**\n * @typedef {Object} LayoutOptions\n * @property {boolean} [hasZ] HasZ.\n * @property {boolean} [hasM] HasM.\n */\n/**\n * @classdesc\n * Feature format for reading and writing data in the GPX format.\n *\n * Note that {@link module:ol/format/GPX~GPX#readFeature} only reads the first\n * feature of the source.\n *\n * When reading, routes (``) are converted into LineString geometries, and\n * tracks (``) into MultiLineString. Any properties on route and track\n * waypoints are ignored.\n *\n * When writing, LineString geometries are output as routes (``), and\n * MultiLineString as tracks (``).\n *\n * @api\n */\nvar GPX = /** @class */ (function (_super) {\n __extends(GPX, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function GPX(opt_options) {\n var _this = _super.call(this) || this;\n var options = opt_options ? opt_options : {};\n /**\n * @type {import(\"../proj/Projection.js\").default}\n */\n _this.dataProjection = getProjection('EPSG:4326');\n /**\n * @type {function(Feature, Node): void|undefined}\n * @private\n */\n _this.readExtensions_ = options.readExtensions;\n return _this;\n }\n /**\n * @param {Array} features List of features.\n * @private\n */\n GPX.prototype.handleReadExtensions_ = function (features) {\n if (!features) {\n features = [];\n }\n for (var i = 0, ii = features.length; i < ii; ++i) {\n var feature = features[i];\n if (this.readExtensions_) {\n var extensionsNode = feature.get('extensionsNode_') || null;\n this.readExtensions_(feature, extensionsNode);\n }\n feature.set('extensionsNode_', undefined);\n }\n };\n /**\n * @param {Element} node Node.\n * @param {import(\"./Feature.js\").ReadOptions} [opt_options] Options.\n * @return {import(\"../Feature.js\").default} Feature.\n */\n GPX.prototype.readFeatureFromNode = function (node, opt_options) {\n if (!includes(NAMESPACE_URIS, node.namespaceURI)) {\n return null;\n }\n var featureReader = FEATURE_READER[node.localName];\n if (!featureReader) {\n return null;\n }\n var feature = featureReader(node, [\n this.getReadOptions(node, opt_options),\n ]);\n if (!feature) {\n return null;\n }\n this.handleReadExtensions_([feature]);\n return feature;\n };\n /**\n * @param {Element} node Node.\n * @param {import(\"./Feature.js\").ReadOptions} [opt_options] Options.\n * @return {Array} Features.\n */\n GPX.prototype.readFeaturesFromNode = function (node, opt_options) {\n if (!includes(NAMESPACE_URIS, node.namespaceURI)) {\n return [];\n }\n if (node.localName == 'gpx') {\n /** @type {Array} */\n var features = pushParseAndPop([], GPX_PARSERS, node, [\n this.getReadOptions(node, opt_options),\n ]);\n if (features) {\n this.handleReadExtensions_(features);\n return features;\n }\n else {\n return [];\n }\n }\n return [];\n };\n /**\n * Encode an array of features in the GPX format as an XML node.\n * LineString geometries are output as routes (``), and MultiLineString\n * as tracks (``).\n *\n * @param {Array} features Features.\n * @param {import(\"./Feature.js\").WriteOptions} [opt_options] Options.\n * @return {Node} Node.\n * @api\n */\n GPX.prototype.writeFeaturesNode = function (features, opt_options) {\n opt_options = this.adaptOptions(opt_options);\n //FIXME Serialize metadata\n var gpx = createElementNS('http://www.topografix.com/GPX/1/1', 'gpx');\n var xmlnsUri = 'http://www.w3.org/2000/xmlns/';\n gpx.setAttributeNS(xmlnsUri, 'xmlns:xsi', XML_SCHEMA_INSTANCE_URI);\n gpx.setAttributeNS(XML_SCHEMA_INSTANCE_URI, 'xsi:schemaLocation', SCHEMA_LOCATION);\n gpx.setAttribute('version', '1.1');\n gpx.setAttribute('creator', 'OpenLayers');\n pushSerializeAndPop(\n /** @type {import(\"../xml.js\").NodeStackItem} */\n ({ node: gpx }), GPX_SERIALIZERS, GPX_NODE_FACTORY, features, [opt_options]);\n return gpx;\n };\n return GPX;\n}(XMLFeature));\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nvar RTE_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'name': makeObjectPropertySetter(readString),\n 'cmt': makeObjectPropertySetter(readString),\n 'desc': makeObjectPropertySetter(readString),\n 'src': makeObjectPropertySetter(readString),\n 'link': parseLink,\n 'number': makeObjectPropertySetter(readPositiveInteger),\n 'extensions': parseExtensions,\n 'type': makeObjectPropertySetter(readString),\n 'rtept': parseRtePt,\n});\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nvar RTEPT_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'ele': makeObjectPropertySetter(readDecimal),\n 'time': makeObjectPropertySetter(readDateTime),\n});\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nvar TRK_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'name': makeObjectPropertySetter(readString),\n 'cmt': makeObjectPropertySetter(readString),\n 'desc': makeObjectPropertySetter(readString),\n 'src': makeObjectPropertySetter(readString),\n 'link': parseLink,\n 'number': makeObjectPropertySetter(readPositiveInteger),\n 'type': makeObjectPropertySetter(readString),\n 'extensions': parseExtensions,\n 'trkseg': parseTrkSeg,\n});\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nvar TRKSEG_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'trkpt': parseTrkPt,\n});\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nvar TRKPT_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'ele': makeObjectPropertySetter(readDecimal),\n 'time': makeObjectPropertySetter(readDateTime),\n});\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nvar WPT_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'ele': makeObjectPropertySetter(readDecimal),\n 'time': makeObjectPropertySetter(readDateTime),\n 'magvar': makeObjectPropertySetter(readDecimal),\n 'geoidheight': makeObjectPropertySetter(readDecimal),\n 'name': makeObjectPropertySetter(readString),\n 'cmt': makeObjectPropertySetter(readString),\n 'desc': makeObjectPropertySetter(readString),\n 'src': makeObjectPropertySetter(readString),\n 'link': parseLink,\n 'sym': makeObjectPropertySetter(readString),\n 'type': makeObjectPropertySetter(readString),\n 'fix': makeObjectPropertySetter(readString),\n 'sat': makeObjectPropertySetter(readPositiveInteger),\n 'hdop': makeObjectPropertySetter(readDecimal),\n 'vdop': makeObjectPropertySetter(readDecimal),\n 'pdop': makeObjectPropertySetter(readDecimal),\n 'ageofdgpsdata': makeObjectPropertySetter(readDecimal),\n 'dgpsid': makeObjectPropertySetter(readPositiveInteger),\n 'extensions': parseExtensions,\n});\n/**\n * @const\n * @type {Array}\n */\nvar LINK_SEQUENCE = ['text', 'type'];\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nvar LINK_SERIALIZERS = makeStructureNS(NAMESPACE_URIS, {\n 'text': makeChildAppender(writeStringTextNode),\n 'type': makeChildAppender(writeStringTextNode),\n});\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nvar RTE_SEQUENCE = makeStructureNS(NAMESPACE_URIS, [\n 'name',\n 'cmt',\n 'desc',\n 'src',\n 'link',\n 'number',\n 'type',\n 'rtept',\n]);\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nvar RTE_SERIALIZERS = makeStructureNS(NAMESPACE_URIS, {\n 'name': makeChildAppender(writeStringTextNode),\n 'cmt': makeChildAppender(writeStringTextNode),\n 'desc': makeChildAppender(writeStringTextNode),\n 'src': makeChildAppender(writeStringTextNode),\n 'link': makeChildAppender(writeLink),\n 'number': makeChildAppender(writeNonNegativeIntegerTextNode),\n 'type': makeChildAppender(writeStringTextNode),\n 'rtept': makeArraySerializer(makeChildAppender(writeWptType)),\n});\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nvar RTEPT_TYPE_SEQUENCE = makeStructureNS(NAMESPACE_URIS, ['ele', 'time']);\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nvar TRK_SEQUENCE = makeStructureNS(NAMESPACE_URIS, [\n 'name',\n 'cmt',\n 'desc',\n 'src',\n 'link',\n 'number',\n 'type',\n 'trkseg',\n]);\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nvar TRK_SERIALIZERS = makeStructureNS(NAMESPACE_URIS, {\n 'name': makeChildAppender(writeStringTextNode),\n 'cmt': makeChildAppender(writeStringTextNode),\n 'desc': makeChildAppender(writeStringTextNode),\n 'src': makeChildAppender(writeStringTextNode),\n 'link': makeChildAppender(writeLink),\n 'number': makeChildAppender(writeNonNegativeIntegerTextNode),\n 'type': makeChildAppender(writeStringTextNode),\n 'trkseg': makeArraySerializer(makeChildAppender(writeTrkSeg)),\n});\n/**\n * @const\n * @type {function(*, Array<*>, string=): (Node|undefined)}\n */\nvar TRKSEG_NODE_FACTORY = makeSimpleNodeFactory('trkpt');\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nvar TRKSEG_SERIALIZERS = makeStructureNS(NAMESPACE_URIS, {\n 'trkpt': makeChildAppender(writeWptType),\n});\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nvar WPT_TYPE_SEQUENCE = makeStructureNS(NAMESPACE_URIS, [\n 'ele',\n 'time',\n 'magvar',\n 'geoidheight',\n 'name',\n 'cmt',\n 'desc',\n 'src',\n 'link',\n 'sym',\n 'type',\n 'fix',\n 'sat',\n 'hdop',\n 'vdop',\n 'pdop',\n 'ageofdgpsdata',\n 'dgpsid',\n]);\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nvar WPT_TYPE_SERIALIZERS = makeStructureNS(NAMESPACE_URIS, {\n 'ele': makeChildAppender(writeDecimalTextNode),\n 'time': makeChildAppender(writeDateTimeTextNode),\n 'magvar': makeChildAppender(writeDecimalTextNode),\n 'geoidheight': makeChildAppender(writeDecimalTextNode),\n 'name': makeChildAppender(writeStringTextNode),\n 'cmt': makeChildAppender(writeStringTextNode),\n 'desc': makeChildAppender(writeStringTextNode),\n 'src': makeChildAppender(writeStringTextNode),\n 'link': makeChildAppender(writeLink),\n 'sym': makeChildAppender(writeStringTextNode),\n 'type': makeChildAppender(writeStringTextNode),\n 'fix': makeChildAppender(writeStringTextNode),\n 'sat': makeChildAppender(writeNonNegativeIntegerTextNode),\n 'hdop': makeChildAppender(writeDecimalTextNode),\n 'vdop': makeChildAppender(writeDecimalTextNode),\n 'pdop': makeChildAppender(writeDecimalTextNode),\n 'ageofdgpsdata': makeChildAppender(writeDecimalTextNode),\n 'dgpsid': makeChildAppender(writeNonNegativeIntegerTextNode),\n});\n/**\n * @const\n * @type {Object}\n */\nvar GEOMETRY_TYPE_TO_NODENAME = {\n 'Point': 'wpt',\n 'LineString': 'rte',\n 'MultiLineString': 'trk',\n};\n/**\n * @param {*} value Value.\n * @param {Array<*>} objectStack Object stack.\n * @param {string} [opt_nodeName] Node name.\n * @return {Node|undefined} Node.\n */\nfunction GPX_NODE_FACTORY(value, objectStack, opt_nodeName) {\n var geometry = /** @type {Feature} */ (value).getGeometry();\n if (geometry) {\n var nodeName = GEOMETRY_TYPE_TO_NODENAME[geometry.getType()];\n if (nodeName) {\n var parentNode = objectStack[objectStack.length - 1].node;\n return createElementNS(parentNode.namespaceURI, nodeName);\n }\n }\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {LayoutOptions} layoutOptions Layout options.\n * @param {Element} node Node.\n * @param {!Object} values Values.\n * @return {Array} Flat coordinates.\n */\nfunction appendCoordinate(flatCoordinates, layoutOptions, node, values) {\n flatCoordinates.push(parseFloat(node.getAttribute('lon')), parseFloat(node.getAttribute('lat')));\n if ('ele' in values) {\n flatCoordinates.push(/** @type {number} */ (values['ele']));\n delete values['ele'];\n layoutOptions.hasZ = true;\n }\n else {\n flatCoordinates.push(0);\n }\n if ('time' in values) {\n flatCoordinates.push(/** @type {number} */ (values['time']));\n delete values['time'];\n layoutOptions.hasM = true;\n }\n else {\n flatCoordinates.push(0);\n }\n return flatCoordinates;\n}\n/**\n * Choose GeometryLayout based on flags in layoutOptions and adjust flatCoordinates\n * and ends arrays by shrinking them accordingly (removing unused zero entries).\n *\n * @param {LayoutOptions} layoutOptions Layout options.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {Array} [ends] Ends.\n * @return {import(\"../geom/GeometryLayout.js\").default} Layout.\n */\nfunction applyLayoutOptions(layoutOptions, flatCoordinates, ends) {\n var layout = GeometryLayout.XY;\n var stride = 2;\n if (layoutOptions.hasZ && layoutOptions.hasM) {\n layout = GeometryLayout.XYZM;\n stride = 4;\n }\n else if (layoutOptions.hasZ) {\n layout = GeometryLayout.XYZ;\n stride = 3;\n }\n else if (layoutOptions.hasM) {\n layout = GeometryLayout.XYM;\n stride = 3;\n }\n if (stride !== 4) {\n for (var i = 0, ii = flatCoordinates.length / 4; i < ii; i++) {\n flatCoordinates[i * stride] = flatCoordinates[i * 4];\n flatCoordinates[i * stride + 1] = flatCoordinates[i * 4 + 1];\n if (layoutOptions.hasZ) {\n flatCoordinates[i * stride + 2] = flatCoordinates[i * 4 + 2];\n }\n if (layoutOptions.hasM) {\n flatCoordinates[i * stride + 2] = flatCoordinates[i * 4 + 3];\n }\n }\n flatCoordinates.length = (flatCoordinates.length / 4) * stride;\n if (ends) {\n for (var i = 0, ii = ends.length; i < ii; i++) {\n ends[i] = (ends[i] / 4) * stride;\n }\n }\n }\n return layout;\n}\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\nfunction parseLink(node, objectStack) {\n var values = /** @type {Object} */ (objectStack[objectStack.length - 1]);\n var href = node.getAttribute('href');\n if (href !== null) {\n values['link'] = href;\n }\n parseNode(LINK_PARSERS, node, objectStack);\n}\n/**\n * @param {Node} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\nfunction parseExtensions(node, objectStack) {\n var values = /** @type {Object} */ (objectStack[objectStack.length - 1]);\n values['extensionsNode_'] = node;\n}\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\nfunction parseRtePt(node, objectStack) {\n var values = pushParseAndPop({}, RTEPT_PARSERS, node, objectStack);\n if (values) {\n var rteValues = /** @type {!Object} */ (objectStack[objectStack.length - 1]);\n var flatCoordinates = /** @type {Array} */ (rteValues['flatCoordinates']);\n var layoutOptions = /** @type {LayoutOptions} */ (rteValues['layoutOptions']);\n appendCoordinate(flatCoordinates, layoutOptions, node, values);\n }\n}\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\nfunction parseTrkPt(node, objectStack) {\n var values = pushParseAndPop({}, TRKPT_PARSERS, node, objectStack);\n if (values) {\n var trkValues = /** @type {!Object} */ (objectStack[objectStack.length - 1]);\n var flatCoordinates = /** @type {Array} */ (trkValues['flatCoordinates']);\n var layoutOptions = /** @type {LayoutOptions} */ (trkValues['layoutOptions']);\n appendCoordinate(flatCoordinates, layoutOptions, node, values);\n }\n}\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n */\nfunction parseTrkSeg(node, objectStack) {\n var values = /** @type {Object} */ (objectStack[objectStack.length - 1]);\n parseNode(TRKSEG_PARSERS, node, objectStack);\n var flatCoordinates = \n /** @type {Array} */\n (values['flatCoordinates']);\n var ends = /** @type {Array} */ (values['ends']);\n ends.push(flatCoordinates.length);\n}\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Feature|undefined} Track.\n */\nfunction readRte(node, objectStack) {\n var options = /** @type {import(\"./Feature.js\").ReadOptions} */ (objectStack[0]);\n var values = pushParseAndPop({\n 'flatCoordinates': [],\n 'layoutOptions': {},\n }, RTE_PARSERS, node, objectStack);\n if (!values) {\n return undefined;\n }\n var flatCoordinates = \n /** @type {Array} */\n (values['flatCoordinates']);\n delete values['flatCoordinates'];\n var layoutOptions = /** @type {LayoutOptions} */ (values['layoutOptions']);\n delete values['layoutOptions'];\n var layout = applyLayoutOptions(layoutOptions, flatCoordinates);\n var geometry = new LineString(flatCoordinates, layout);\n transformGeometryWithOptions(geometry, false, options);\n var feature = new Feature(geometry);\n feature.setProperties(values, true);\n return feature;\n}\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Feature|undefined} Track.\n */\nfunction readTrk(node, objectStack) {\n var options = /** @type {import(\"./Feature.js\").ReadOptions} */ (objectStack[0]);\n var values = pushParseAndPop({\n 'flatCoordinates': [],\n 'ends': [],\n 'layoutOptions': {},\n }, TRK_PARSERS, node, objectStack);\n if (!values) {\n return undefined;\n }\n var flatCoordinates = \n /** @type {Array} */\n (values['flatCoordinates']);\n delete values['flatCoordinates'];\n var ends = /** @type {Array} */ (values['ends']);\n delete values['ends'];\n var layoutOptions = /** @type {LayoutOptions} */ (values['layoutOptions']);\n delete values['layoutOptions'];\n var layout = applyLayoutOptions(layoutOptions, flatCoordinates, ends);\n var geometry = new MultiLineString(flatCoordinates, layout, ends);\n transformGeometryWithOptions(geometry, false, options);\n var feature = new Feature(geometry);\n feature.setProperties(values, true);\n return feature;\n}\n/**\n * @param {Element} node Node.\n * @param {Array<*>} objectStack Object stack.\n * @return {Feature|undefined} Waypoint.\n */\nfunction readWpt(node, objectStack) {\n var options = /** @type {import(\"./Feature.js\").ReadOptions} */ (objectStack[0]);\n var values = pushParseAndPop({}, WPT_PARSERS, node, objectStack);\n if (!values) {\n return undefined;\n }\n var layoutOptions = /** @type {LayoutOptions} */ ({});\n var coordinates = appendCoordinate([], layoutOptions, node, values);\n var layout = applyLayoutOptions(layoutOptions, coordinates);\n var geometry = new Point(coordinates, layout);\n transformGeometryWithOptions(geometry, false, options);\n var feature = new Feature(geometry);\n feature.setProperties(values, true);\n return feature;\n}\n/**\n * @param {Element} node Node.\n * @param {string} value Value for the link's `href` attribute.\n * @param {Array<*>} objectStack Node stack.\n */\nfunction writeLink(node, value, objectStack) {\n node.setAttribute('href', value);\n var context = objectStack[objectStack.length - 1];\n var properties = context['properties'];\n var link = [properties['linkText'], properties['linkType']];\n pushSerializeAndPop(\n /** @type {import(\"../xml.js\").NodeStackItem} */ ({ node: node }), LINK_SERIALIZERS, OBJECT_PROPERTY_NODE_FACTORY, link, objectStack, LINK_SEQUENCE);\n}\n/**\n * @param {Element} node Node.\n * @param {import(\"../coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {Array<*>} objectStack Object stack.\n */\nfunction writeWptType(node, coordinate, objectStack) {\n var context = objectStack[objectStack.length - 1];\n var parentNode = context.node;\n var namespaceURI = parentNode.namespaceURI;\n var properties = context['properties'];\n //FIXME Projection handling\n node.setAttributeNS(null, 'lat', String(coordinate[1]));\n node.setAttributeNS(null, 'lon', String(coordinate[0]));\n var geometryLayout = context['geometryLayout'];\n switch (geometryLayout) {\n case GeometryLayout.XYZM:\n if (coordinate[3] !== 0) {\n properties['time'] = coordinate[3];\n }\n // fall through\n case GeometryLayout.XYZ:\n if (coordinate[2] !== 0) {\n properties['ele'] = coordinate[2];\n }\n break;\n case GeometryLayout.XYM:\n if (coordinate[2] !== 0) {\n properties['time'] = coordinate[2];\n }\n break;\n default:\n // pass\n }\n var orderedKeys = node.nodeName == 'rtept'\n ? RTEPT_TYPE_SEQUENCE[namespaceURI]\n : WPT_TYPE_SEQUENCE[namespaceURI];\n var values = makeSequence(properties, orderedKeys);\n pushSerializeAndPop(\n /** @type {import(\"../xml.js\").NodeStackItem} */\n ({ node: node, 'properties': properties }), WPT_TYPE_SERIALIZERS, OBJECT_PROPERTY_NODE_FACTORY, values, objectStack, orderedKeys);\n}\n/**\n * @param {Node} node Node.\n * @param {Feature} feature Feature.\n * @param {Array<*>} objectStack Object stack.\n */\nfunction writeRte(node, feature, objectStack) {\n var options = /** @type {import(\"./Feature.js\").WriteOptions} */ (objectStack[0]);\n var properties = feature.getProperties();\n var context = { node: node };\n context['properties'] = properties;\n var geometry = feature.getGeometry();\n if (geometry.getType() == 'LineString') {\n var lineString = /** @type {LineString} */ (transformGeometryWithOptions(geometry, true, options));\n context['geometryLayout'] = lineString.getLayout();\n properties['rtept'] = lineString.getCoordinates();\n }\n var parentNode = objectStack[objectStack.length - 1].node;\n var orderedKeys = RTE_SEQUENCE[parentNode.namespaceURI];\n var values = makeSequence(properties, orderedKeys);\n pushSerializeAndPop(context, RTE_SERIALIZERS, OBJECT_PROPERTY_NODE_FACTORY, values, objectStack, orderedKeys);\n}\n/**\n * @param {Element} node Node.\n * @param {Feature} feature Feature.\n * @param {Array<*>} objectStack Object stack.\n */\nfunction writeTrk(node, feature, objectStack) {\n var options = /** @type {import(\"./Feature.js\").WriteOptions} */ (objectStack[0]);\n var properties = feature.getProperties();\n /** @type {import(\"../xml.js\").NodeStackItem} */\n var context = { node: node };\n context['properties'] = properties;\n var geometry = feature.getGeometry();\n if (geometry.getType() == 'MultiLineString') {\n var multiLineString = /** @type {MultiLineString} */ (transformGeometryWithOptions(geometry, true, options));\n properties['trkseg'] = multiLineString.getLineStrings();\n }\n var parentNode = objectStack[objectStack.length - 1].node;\n var orderedKeys = TRK_SEQUENCE[parentNode.namespaceURI];\n var values = makeSequence(properties, orderedKeys);\n pushSerializeAndPop(context, TRK_SERIALIZERS, OBJECT_PROPERTY_NODE_FACTORY, values, objectStack, orderedKeys);\n}\n/**\n * @param {Element} node Node.\n * @param {LineString} lineString LineString.\n * @param {Array<*>} objectStack Object stack.\n */\nfunction writeTrkSeg(node, lineString, objectStack) {\n /** @type {import(\"../xml.js\").NodeStackItem} */\n var context = { node: node };\n context['geometryLayout'] = lineString.getLayout();\n context['properties'] = {};\n pushSerializeAndPop(context, TRKSEG_SERIALIZERS, TRKSEG_NODE_FACTORY, lineString.getCoordinates(), objectStack);\n}\n/**\n * @param {Element} node Node.\n * @param {Feature} feature Feature.\n * @param {Array<*>} objectStack Object stack.\n */\nfunction writeWpt(node, feature, objectStack) {\n var options = /** @type {import(\"./Feature.js\").WriteOptions} */ (objectStack[0]);\n var context = objectStack[objectStack.length - 1];\n context['properties'] = feature.getProperties();\n var geometry = feature.getGeometry();\n if (geometry.getType() == 'Point') {\n var point = /** @type {Point} */ (transformGeometryWithOptions(geometry, true, options));\n context['geometryLayout'] = point.getLayout();\n writeWptType(node, point.getCoordinates(), objectStack);\n }\n}\nexport default GPX;\n//# sourceMappingURL=GPX.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/format/TextFeature\n */\nimport FeatureFormat from '../format/Feature.js';\nimport { abstract } from '../util.js';\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * Base class for text feature formats.\n *\n * @abstract\n */\nvar TextFeature = /** @class */ (function (_super) {\n __extends(TextFeature, _super);\n function TextFeature() {\n return _super.call(this) || this;\n }\n /**\n * @return {import(\"./Feature.js\").Type} Format.\n */\n TextFeature.prototype.getType = function () {\n return 'text';\n };\n /**\n * Read the feature from the source.\n *\n * @param {Document|Element|Object|string} source Source.\n * @param {import(\"./Feature.js\").ReadOptions} [opt_options] Read options.\n * @return {import(\"../Feature.js\").default} Feature.\n * @api\n */\n TextFeature.prototype.readFeature = function (source, opt_options) {\n return this.readFeatureFromText(getText(source), this.adaptOptions(opt_options));\n };\n /**\n * @abstract\n * @param {string} text Text.\n * @param {import(\"./Feature.js\").ReadOptions} [opt_options] Read options.\n * @protected\n * @return {import(\"../Feature.js\").default} Feature.\n */\n TextFeature.prototype.readFeatureFromText = function (text, opt_options) {\n return abstract();\n };\n /**\n * Read the features from the source.\n *\n * @param {Document|Element|Object|string} source Source.\n * @param {import(\"./Feature.js\").ReadOptions} [opt_options] Read options.\n * @return {Array} Features.\n * @api\n */\n TextFeature.prototype.readFeatures = function (source, opt_options) {\n return this.readFeaturesFromText(getText(source), this.adaptOptions(opt_options));\n };\n /**\n * @abstract\n * @param {string} text Text.\n * @param {import(\"./Feature.js\").ReadOptions} [opt_options] Read options.\n * @protected\n * @return {Array} Features.\n */\n TextFeature.prototype.readFeaturesFromText = function (text, opt_options) {\n return abstract();\n };\n /**\n * Read the geometry from the source.\n *\n * @param {Document|Element|Object|string} source Source.\n * @param {import(\"./Feature.js\").ReadOptions} [opt_options] Read options.\n * @return {import(\"../geom/Geometry.js\").default} Geometry.\n * @api\n */\n TextFeature.prototype.readGeometry = function (source, opt_options) {\n return this.readGeometryFromText(getText(source), this.adaptOptions(opt_options));\n };\n /**\n * @abstract\n * @param {string} text Text.\n * @param {import(\"./Feature.js\").ReadOptions} [opt_options] Read options.\n * @protected\n * @return {import(\"../geom/Geometry.js\").default} Geometry.\n */\n TextFeature.prototype.readGeometryFromText = function (text, opt_options) {\n return abstract();\n };\n /**\n * Read the projection from the source.\n *\n * @param {Document|Element|Object|string} source Source.\n * @return {import(\"../proj/Projection.js\").default|undefined} Projection.\n * @api\n */\n TextFeature.prototype.readProjection = function (source) {\n return this.readProjectionFromText(getText(source));\n };\n /**\n * @param {string} text Text.\n * @protected\n * @return {import(\"../proj/Projection.js\").default|undefined} Projection.\n */\n TextFeature.prototype.readProjectionFromText = function (text) {\n return this.dataProjection;\n };\n /**\n * Encode a feature as a string.\n *\n * @param {import(\"../Feature.js\").default} feature Feature.\n * @param {import(\"./Feature.js\").WriteOptions} [opt_options] Write options.\n * @return {string} Encoded feature.\n * @api\n */\n TextFeature.prototype.writeFeature = function (feature, opt_options) {\n return this.writeFeatureText(feature, this.adaptOptions(opt_options));\n };\n /**\n * @abstract\n * @param {import(\"../Feature.js\").default} feature Features.\n * @param {import(\"./Feature.js\").WriteOptions} [opt_options] Write options.\n * @protected\n * @return {string} Text.\n */\n TextFeature.prototype.writeFeatureText = function (feature, opt_options) {\n return abstract();\n };\n /**\n * Encode an array of features as string.\n *\n * @param {Array} features Features.\n * @param {import(\"./Feature.js\").WriteOptions} [opt_options] Write options.\n * @return {string} Encoded features.\n * @api\n */\n TextFeature.prototype.writeFeatures = function (features, opt_options) {\n return this.writeFeaturesText(features, this.adaptOptions(opt_options));\n };\n /**\n * @abstract\n * @param {Array} features Features.\n * @param {import(\"./Feature.js\").WriteOptions} [opt_options] Write options.\n * @protected\n * @return {string} Text.\n */\n TextFeature.prototype.writeFeaturesText = function (features, opt_options) {\n return abstract();\n };\n /**\n * Write a single geometry.\n *\n * @param {import(\"../geom/Geometry.js\").default} geometry Geometry.\n * @param {import(\"./Feature.js\").WriteOptions} [opt_options] Write options.\n * @return {string} Geometry.\n * @api\n */\n TextFeature.prototype.writeGeometry = function (geometry, opt_options) {\n return this.writeGeometryText(geometry, this.adaptOptions(opt_options));\n };\n /**\n * @abstract\n * @param {import(\"../geom/Geometry.js\").default} geometry Geometry.\n * @param {import(\"./Feature.js\").WriteOptions} [opt_options] Write options.\n * @protected\n * @return {string} Text.\n */\n TextFeature.prototype.writeGeometryText = function (geometry, opt_options) {\n return abstract();\n };\n return TextFeature;\n}(FeatureFormat));\n/**\n * @param {Document|Element|Object|string} source Source.\n * @return {string} Text.\n */\nfunction getText(source) {\n if (typeof source === 'string') {\n return source;\n }\n else {\n return '';\n }\n}\nexport default TextFeature;\n//# sourceMappingURL=TextFeature.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/format/IGC\n */\nimport Feature from '../Feature.js';\nimport GeometryLayout from '../geom/GeometryLayout.js';\nimport LineString from '../geom/LineString.js';\nimport TextFeature from './TextFeature.js';\nimport { get as getProjection } from '../proj.js';\nimport { transformGeometryWithOptions } from './Feature.js';\n/**\n * IGC altitude/z. One of 'barometric', 'gps', 'none'.\n * @enum {string}\n */\nvar IGCZ = {\n BAROMETRIC: 'barometric',\n GPS: 'gps',\n NONE: 'none',\n};\n/**\n * @const\n * @type {RegExp}\n */\nvar B_RECORD_RE = /^B(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{5})([NS])(\\d{3})(\\d{5})([EW])([AV])(\\d{5})(\\d{5})/;\n/**\n * @const\n * @type {RegExp}\n */\nvar H_RECORD_RE = /^H.([A-Z]{3}).*?:(.*)/;\n/**\n * @const\n * @type {RegExp}\n */\nvar HFDTE_RECORD_RE = /^HFDTE(\\d{2})(\\d{2})(\\d{2})/;\n/**\n * A regular expression matching the newline characters `\\r\\n`, `\\r` and `\\n`.\n *\n * @const\n * @type {RegExp}\n */\nvar NEWLINE_RE = /\\r\\n|\\r|\\n/;\n/**\n * @typedef {Object} Options\n * @property {IGCZ|string} [altitudeMode='none'] Altitude mode. Possible\n * values are `'barometric'`, `'gps'`, and `'none'`.\n */\n/**\n * @classdesc\n * Feature format for `*.igc` flight recording files.\n *\n * As IGC sources contain a single feature,\n * {@link module:ol/format/IGC~IGC#readFeatures} will return the feature in an\n * array\n *\n * @api\n */\nvar IGC = /** @class */ (function (_super) {\n __extends(IGC, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function IGC(opt_options) {\n var _this = _super.call(this) || this;\n var options = opt_options ? opt_options : {};\n /**\n * @type {import(\"../proj/Projection.js\").default}\n */\n _this.dataProjection = getProjection('EPSG:4326');\n /**\n * @private\n * @type {IGCZ}\n */\n _this.altitudeMode_ = options.altitudeMode\n ? options.altitudeMode\n : IGCZ.NONE;\n return _this;\n }\n /**\n * @protected\n * @param {string} text Text.\n * @param {import(\"./Feature.js\").ReadOptions} [opt_options] Read options.\n * @return {import(\"../Feature.js\").default} Feature.\n */\n IGC.prototype.readFeatureFromText = function (text, opt_options) {\n var altitudeMode = this.altitudeMode_;\n var lines = text.split(NEWLINE_RE);\n /** @type {Object} */\n var properties = {};\n var flatCoordinates = [];\n var year = 2000;\n var month = 0;\n var day = 1;\n var lastDateTime = -1;\n var i, ii;\n for (i = 0, ii = lines.length; i < ii; ++i) {\n var line = lines[i];\n var m = void 0;\n if (line.charAt(0) == 'B') {\n m = B_RECORD_RE.exec(line);\n if (m) {\n var hour = parseInt(m[1], 10);\n var minute = parseInt(m[2], 10);\n var second = parseInt(m[3], 10);\n var y = parseInt(m[4], 10) + parseInt(m[5], 10) / 60000;\n if (m[6] == 'S') {\n y = -y;\n }\n var x = parseInt(m[7], 10) + parseInt(m[8], 10) / 60000;\n if (m[9] == 'W') {\n x = -x;\n }\n flatCoordinates.push(x, y);\n if (altitudeMode != IGCZ.NONE) {\n var z = void 0;\n if (altitudeMode == IGCZ.GPS) {\n z = parseInt(m[11], 10);\n }\n else if (altitudeMode == IGCZ.BAROMETRIC) {\n z = parseInt(m[12], 10);\n }\n else {\n z = 0;\n }\n flatCoordinates.push(z);\n }\n var dateTime = Date.UTC(year, month, day, hour, minute, second);\n // Detect UTC midnight wrap around.\n if (dateTime < lastDateTime) {\n dateTime = Date.UTC(year, month, day + 1, hour, minute, second);\n }\n flatCoordinates.push(dateTime / 1000);\n lastDateTime = dateTime;\n }\n }\n else if (line.charAt(0) == 'H') {\n m = HFDTE_RECORD_RE.exec(line);\n if (m) {\n day = parseInt(m[1], 10);\n month = parseInt(m[2], 10) - 1;\n year = 2000 + parseInt(m[3], 10);\n }\n else {\n m = H_RECORD_RE.exec(line);\n if (m) {\n properties[m[1]] = m[2].trim();\n }\n }\n }\n }\n if (flatCoordinates.length === 0) {\n return null;\n }\n var layout = altitudeMode == IGCZ.NONE ? GeometryLayout.XYM : GeometryLayout.XYZM;\n var lineString = new LineString(flatCoordinates, layout);\n var feature = new Feature(transformGeometryWithOptions(lineString, false, opt_options));\n feature.setProperties(properties, true);\n return feature;\n };\n /**\n * @param {string} text Text.\n * @param {import(\"./Feature.js\").ReadOptions} [opt_options] Read options.\n * @protected\n * @return {Array} Features.\n */\n IGC.prototype.readFeaturesFromText = function (text, opt_options) {\n var feature = this.readFeatureFromText(text, opt_options);\n if (feature) {\n return [feature];\n }\n else {\n return [];\n }\n };\n return IGC;\n}(TextFeature));\nexport default IGC;\n//# sourceMappingURL=IGC.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 if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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/format/KML\n */\nimport Feature from '../Feature.js';\nimport Fill from '../style/Fill.js';\nimport GeometryCollection from '../geom/GeometryCollection.js';\nimport GeometryLayout from '../geom/GeometryLayout.js';\nimport Icon from '../style/Icon.js';\nimport IconAnchorUnits from '../style/IconAnchorUnits.js';\nimport IconOrigin from '../style/IconOrigin.js';\nimport ImageState from '../ImageState.js';\nimport LineString from '../geom/LineString.js';\nimport MultiLineString from '../geom/MultiLineString.js';\nimport MultiPoint from '../geom/MultiPoint.js';\nimport MultiPolygon from '../geom/MultiPolygon.js';\nimport Point from '../geom/Point.js';\nimport Polygon from '../geom/Polygon.js';\nimport Stroke from '../style/Stroke.js';\nimport Style from '../style/Style.js';\nimport Text from '../style/Text.js';\nimport XMLFeature from './XMLFeature.js';\nimport { OBJECT_PROPERTY_NODE_FACTORY, XML_SCHEMA_INSTANCE_URI, createElementNS, getAllTextContent, isDocument, makeArrayExtender, makeArrayPusher, makeChildAppender, makeObjectPropertySetter, makeReplacer, makeSequence, makeSimpleNodeFactory, makeStructureNS, parse, parseNode, pushParseAndPop, pushSerializeAndPop, } from '../xml.js';\nimport { asArray } from '../color.js';\nimport { assert } from '../asserts.js';\nimport { extend, includes } from '../array.js';\nimport { get as getProjection } from '../proj.js';\nimport { readBoolean, readDecimal, readString, writeBooleanTextNode, writeCDATASection, writeDecimalTextNode, writeStringTextNode, } from './xsd.js';\nimport { toRadians } from '../math.js';\nimport { transformGeometryWithOptions } from './Feature.js';\n/**\n * @typedef {Object} Vec2\n * @property {number} x X coordinate.\n * @property {import(\"../style/IconAnchorUnits\").default} xunits Units of x.\n * @property {number} y Y coordinate.\n * @property {import(\"../style/IconAnchorUnits\").default} yunits Units of Y.\n * @property {import(\"../style/IconOrigin.js\").default} [origin] Origin.\n */\n/**\n * @typedef {Object} GxTrackObject\n * @property {Array>} coordinates Coordinates.\n * @property {Array} whens Whens.\n */\n/**\n * @const\n * @type {Array}\n */\nvar GX_NAMESPACE_URIS = ['http://www.google.com/kml/ext/2.2'];\n/**\n * @const\n * @type {Array}\n */\nvar NAMESPACE_URIS = [\n null,\n 'http://earth.google.com/kml/2.0',\n 'http://earth.google.com/kml/2.1',\n 'http://earth.google.com/kml/2.2',\n 'http://www.opengis.net/kml/2.2',\n];\n/**\n * @const\n * @type {string}\n */\nvar SCHEMA_LOCATION = 'http://www.opengis.net/kml/2.2 ' +\n 'https://developers.google.com/kml/schema/kml22gx.xsd';\n/**\n * @type {Object}\n */\nvar ICON_ANCHOR_UNITS_MAP = {\n 'fraction': IconAnchorUnits.FRACTION,\n 'pixels': IconAnchorUnits.PIXELS,\n 'insetPixels': IconAnchorUnits.PIXELS,\n};\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nvar PLACEMARK_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'ExtendedData': extendedDataParser,\n 'Region': regionParser,\n 'MultiGeometry': makeObjectPropertySetter(readMultiGeometry, 'geometry'),\n 'LineString': makeObjectPropertySetter(readLineString, 'geometry'),\n 'LinearRing': makeObjectPropertySetter(readLinearRing, 'geometry'),\n 'Point': makeObjectPropertySetter(readPoint, 'geometry'),\n 'Polygon': makeObjectPropertySetter(readPolygon, 'geometry'),\n 'Style': makeObjectPropertySetter(readStyle),\n 'StyleMap': placemarkStyleMapParser,\n 'address': makeObjectPropertySetter(readString),\n 'description': makeObjectPropertySetter(readString),\n 'name': makeObjectPropertySetter(readString),\n 'open': makeObjectPropertySetter(readBoolean),\n 'phoneNumber': makeObjectPropertySetter(readString),\n 'styleUrl': makeObjectPropertySetter(readStyleURL),\n 'visibility': makeObjectPropertySetter(readBoolean),\n}, makeStructureNS(GX_NAMESPACE_URIS, {\n 'MultiTrack': makeObjectPropertySetter(readGxMultiTrack, 'geometry'),\n 'Track': makeObjectPropertySetter(readGxTrack, 'geometry'),\n}));\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nvar NETWORK_LINK_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'ExtendedData': extendedDataParser,\n 'Region': regionParser,\n 'Link': linkParser,\n 'address': makeObjectPropertySetter(readString),\n 'description': makeObjectPropertySetter(readString),\n 'name': makeObjectPropertySetter(readString),\n 'open': makeObjectPropertySetter(readBoolean),\n 'phoneNumber': makeObjectPropertySetter(readString),\n 'visibility': makeObjectPropertySetter(readBoolean),\n});\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nvar LINK_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'href': makeObjectPropertySetter(readURI),\n});\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nvar REGION_PARSERS = makeStructureNS(NAMESPACE_URIS, {\n 'LatLonAltBox': latLonAltBoxParser,\n 'Lod': lodParser,\n});\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nvar KML_SEQUENCE = makeStructureNS(NAMESPACE_URIS, ['Document', 'Placemark']);\n/**\n * @const\n * @type {Object>}\n */\n// @ts-ignore\nvar KML_SERIALIZERS = makeStructureNS(NAMESPACE_URIS, {\n 'Document': makeChildAppender(writeDocument),\n 'Placemark': makeChildAppender(writePlacemark),\n});\n/**\n * @type {import(\"../color.js\").Color}\n */\nvar DEFAULT_COLOR;\n/**\n * @type {Fill|null}\n */\nvar DEFAULT_FILL_STYLE = null;\n/**\n * Get the default fill style (or null if not yet set).\n * @return {Fill|null} The default fill style.\n */\nexport function getDefaultFillStyle() {\n return DEFAULT_FILL_STYLE;\n}\n/**\n * @type {import(\"../size.js\").Size}\n */\nvar DEFAULT_IMAGE_STYLE_ANCHOR;\n/**\n * @type {import(\"../style/IconAnchorUnits\").default}\n */\nvar DEFAULT_IMAGE_STYLE_ANCHOR_X_UNITS;\n/**\n * @type {import(\"../style/IconAnchorUnits\").default}\n */\nvar DEFAULT_IMAGE_STYLE_ANCHOR_Y_UNITS;\n/**\n * @type {import(\"../size.js\").Size}\n */\nvar DEFAULT_IMAGE_STYLE_SIZE;\n/**\n * @type {string}\n */\nvar DEFAULT_IMAGE_STYLE_SRC;\n/**\n * @type {import(\"../style/Image.js\").default|null}\n */\nvar DEFAULT_IMAGE_STYLE = null;\n/**\n * Get the default image style (or null if not yet set).\n * @return {import(\"../style/Image.js\").default|null} The default image style.\n */\nexport function getDefaultImageStyle() {\n return DEFAULT_IMAGE_STYLE;\n}\n/**\n * @type {string}\n */\nvar DEFAULT_NO_IMAGE_STYLE;\n/**\n * @type {Stroke|null}\n */\nvar DEFAULT_STROKE_STYLE = null;\n/**\n * Get the default stroke style (or null if not yet set).\n * @return {Stroke|null} The default stroke style.\n */\nexport function getDefaultStrokeStyle() {\n return DEFAULT_STROKE_STYLE;\n}\n/**\n * @type {Stroke}\n */\nvar DEFAULT_TEXT_STROKE_STYLE;\n/**\n * @type {Text|null}\n */\nvar DEFAULT_TEXT_STYLE = null;\n/**\n * Get the default text style (or null if not yet set).\n * @return {Text|null} The default text style.\n */\nexport function getDefaultTextStyle() {\n return DEFAULT_TEXT_STYLE;\n}\n/**\n * @type {Style|null}\n */\nvar DEFAULT_STYLE = null;\n/**\n * Get the default style (or null if not yet set).\n * @return {Style|null} The default style.\n */\nexport function getDefaultStyle() {\n return DEFAULT_STYLE;\n}\n/**\n * @type {Array