{"version":3,"sources":["webpack:///./node_modules/ol/Disposable.js","webpack:///./node_modules/ol/DataTile.js","webpack:///./node_modules/ol/Collection.js","webpack:///./node_modules/ol/CollectionEventType.js","webpack:///./node_modules/object-inspect/index.js","webpack:///./node_modules/ol/Feature.js","webpack:///./node_modules/ol/AssertionError.js"],"names":["this","disposed","disposeInternal","asImageLike","data","Image","HTMLCanvasElement","HTMLVideoElement","asArrayLike","Uint8Array","Uint8ClampedArray","Float32Array","DataView","sharedContext","toArray","image","width","height","undefined","willReadFrequently","canvas","clearRect","drawImage","getImageData","defaultSize","DataTile","options","state","IDLE","super","tileCoord","transition","interpolate","loader_","loader","data_","error_","size_","size","imageData","ERROR","LOADING","changed","self","then","LOADED","catch","error","Property","CollectionEvent","type","element","index","Collection","array","on","once","un","unique_","unique","array_","i","ii","length","assertUnique_","updateLength_","getLength","pop","arr","push","f","get","elem","Error","splice","dispatchEvent","ADD","removeAt","n","insertAt","prev","REMOVE","set","except","mapSizeDescriptor","Object","getOwnPropertyDescriptor","hasMap","Map","prototype","mapSize","mapForEach","forEach","hasSet","Set","setSizeDescriptor","setSize","setForEach","weakMapHas","WeakMap","has","weakSetHas","WeakSet","weakRefDeref","WeakRef","deref","booleanValueOf","Boolean","valueOf","objectToString","toString","functionToString","Function","$match","String","match","$slice","slice","$replace","replace","$toUpperCase","toUpperCase","$toLowerCase","toLowerCase","$test","RegExp","test","$concat","Array","concat","$join","join","$arrSlice","$floor","Math","floor","bigIntValueOf","BigInt","gOPS","getOwnPropertySymbols","symToString","Symbol","iterator","hasShammedSymbols","toStringTag","isEnumerable","propertyIsEnumerable","gPO","Reflect","getPrototypeOf","__proto__","O","addNumericSeparator","num","str","Infinity","call","sepRegex","int","intStr","dec","utilInspect","inspectCustom","custom","inspectSymbol","isSymbol","wrapQuotes","s","defaultStyle","opts","quoteChar","quoteStyle","quote","isArray","obj","toStr","isRegExp","e","module","exports","inspect_","depth","seen","TypeError","maxStringLength","customInspect","indent","parseInt","numericSeparator","inspectString","remaining","trailer","lowbyte","bigIntStr","maxDepth","baseIndent","base","getIndent","indexOf","inspect","value","from","noIndent","newOpts","name","m","nameOf","keys","arrObjKeys","symString","markBoxed","x","HTMLElement","nodeName","getAttribute","isElement","attrs","attributes","childNodes","xs","singleLineValues","indentedJoin","isError","parts","cause","isMap","mapParts","key","collectionOf","isSet","setParts","isWeakMap","weakCollectionOf","isWeakSet","isWeakRef","isNumber","Number","isBigInt","isBoolean","isString","window","global","isDate","ys","isPlainObject","constructor","protoTag","stringTag","tag","hasOwn","hasOwnProperty","l","c","charCodeAt","8","9","10","12","13","entries","lineJoiner","isArr","symMap","syms","k","j","Feature","geometryOrProperties","id_","geometryName_","style_","styleFunction_","geometryChangeKey_","addChangeListener","handleGeometryChanged_","geometry","setGeometry","properties","setProperties","clone","hasProperties","getProperties","setGeometryName","getGeometryName","getGeometry","style","getStyle","setStyle","CHANGE","handleGeometryChange_","styles","createStyleFunction","id","removeChangeListener","messages","1","2","3","4","5","7","11","14","15","16","17","18","19","20","22","24","25","26","27","28","30","31","32","33","34","36","37","38","39","40","41","42","43","47","48","49","50","51","52","53","55","56","57","59","60","61","62","64","66","67","68","69","AssertionError","code","message"],"mappings":"8FAmCe,IA3Bf,MACE,cAMEA,KAAKC,UAAW,EAMlB,UACOD,KAAKC,WACRD,KAAKC,UAAW,EAChBD,KAAKE,mBAQT,sB,oCChCF,8IAwBO,SAASC,EAAYC,GAC1B,OAAOA,aAAgBC,OACrBD,aAAgBE,mBAChBF,aAAgBG,iBACdH,EACA,KAOC,SAASI,EAAYJ,GAC1B,OAAOA,aAAgBK,YACrBL,aAAgBM,mBAChBN,aAAgBO,cAChBP,aAAgBQ,SACdR,EACA,KAMN,IAAIS,EAAgB,KAMb,SAASC,EAAQC,GACjBF,IACHA,EAAgB,YACdE,EAAMC,MACND,EAAME,YACNC,EACA,CAACC,oBAAoB,KAGzB,MAAMC,EAASP,EAAcO,OACvBJ,EAAQD,EAAMC,MAChBI,EAAOJ,QAAUA,IACnBI,EAAOJ,MAAQA,GAEjB,MAAMC,EAASF,EAAME,OAMrB,OALIG,EAAOH,SAAWA,IACpBG,EAAOH,OAASA,GAElBJ,EAAcQ,UAAU,EAAG,EAAGL,EAAOC,GACrCJ,EAAcS,UAAUP,EAAO,EAAG,GAC3BF,EAAcU,aAAa,EAAG,EAAGP,EAAOC,GAAQb,KAMzD,MAAMoB,EAAc,CAAC,IAAK,KAe1B,MAAMC,UAAiB,IAIrB,YAAYC,GACV,MAAMC,EAAQ,IAAUC,KAExBC,MAAMH,EAAQI,UAAWH,EAAO,CAC9BI,WAAYL,EAAQK,WACpBC,YAAaN,EAAQM,cAOvBhC,KAAKiC,QAAUP,EAAQQ,OAMvBlC,KAAKmC,MAAQ,KAMbnC,KAAKoC,OAAS,KAMdpC,KAAKqC,MAAQX,EAAQY,MAAQ,KAO/B,UACE,GAAItC,KAAKqC,MACP,OAAOrC,KAAKqC,MAEd,MAAME,EAAYpC,EAAYH,KAAKmC,OACnC,OAAII,EACK,CAACA,EAAUvB,MAAOuB,EAAUtB,QAE9BO,EAQT,UACE,OAAOxB,KAAKmC,MAQd,WACE,OAAOnC,KAAKoC,OAOd,OACE,GAAIpC,KAAK2B,QAAU,IAAUC,MAAQ5B,KAAK2B,QAAU,IAAUa,MAC5D,OAEFxC,KAAK2B,MAAQ,IAAUc,QACvBzC,KAAK0C,UAEL,MAAMC,EAAO3C,KACbA,KAAKiC,UACFW,MAAK,SAAUxC,GACduC,EAAKR,MAAQ/B,EACbuC,EAAKhB,MAAQ,IAAUkB,OACvBF,EAAKD,aAENI,OAAM,SAAUC,GACfJ,EAAKP,OAASW,EACdJ,EAAKhB,MAAQ,IAAUa,MACvBG,EAAKD,cAKE,O,oCC/Lf,oDAYA,MAAMM,EACI,SASH,MAAMC,UAAwB,IAMnC,YAAYC,EAAMC,EAASC,GACzBvB,MAAMqB,GAONlD,KAAKmD,QAAUA,EAOfnD,KAAKoD,MAAQA,GAiCjB,MAAMC,UAAmB,IAKvB,YAAYC,EAAO5B,GAgCjB,GA/BAG,QAKA7B,KAAKuD,GAKLvD,KAAKwD,KAKLxD,KAAKyD,GAEL/B,EAAUA,GAAW,GAMrB1B,KAAK0D,UAAYhC,EAAQiC,OAMzB3D,KAAK4D,OAASN,GAAgB,GAE1BtD,KAAK0D,QACP,IAAK,IAAIG,EAAI,EAAGC,EAAK9D,KAAK4D,OAAOG,OAAQF,EAAIC,IAAMD,EACjD7D,KAAKgE,cAAchE,KAAK4D,OAAOC,GAAIA,GAIvC7D,KAAKiE,gBAOP,QACE,KAAOjE,KAAKkE,YAAc,GACxBlE,KAAKmE,MAWT,OAAOC,GACL,IAAK,IAAIP,EAAI,EAAGC,EAAKM,EAAIL,OAAQF,EAAIC,IAAMD,EACzC7D,KAAKqE,KAAKD,EAAIP,IAEhB,OAAO7D,KAUT,QAAQsE,GACN,MAAMhB,EAAQtD,KAAK4D,OACnB,IAAK,IAAIC,EAAI,EAAGC,EAAKR,EAAMS,OAAQF,EAAIC,IAAMD,EAC3CS,EAAEhB,EAAMO,GAAIA,EAAGP,GAYnB,WACE,OAAOtD,KAAK4D,OASd,KAAKR,GACH,OAAOpD,KAAK4D,OAAOR,GASrB,YACE,OAAOpD,KAAKuE,IAAIvB,GASlB,SAASI,EAAOoB,GACd,GAAIpB,EAAQ,GAAKA,EAAQpD,KAAKkE,YAC5B,MAAM,IAAIO,MAAM,wBAA0BrB,GAExCpD,KAAK0D,SACP1D,KAAKgE,cAAcQ,GAErBxE,KAAK4D,OAAOc,OAAOtB,EAAO,EAAGoB,GAC7BxE,KAAKiE,gBACLjE,KAAK2E,cACH,IAAI1B,EAAgB,IAAoB2B,IAAKJ,EAAMpB,IAUvD,MACE,OAAOpD,KAAK6E,SAAS7E,KAAKkE,YAAc,GAS1C,KAAKM,GACCxE,KAAK0D,SACP1D,KAAKgE,cAAcQ,GAErB,MAAMM,EAAI9E,KAAKkE,YAEf,OADAlE,KAAK+E,SAASD,EAAGN,GACVxE,KAAKkE,YASd,OAAOM,GACL,MAAMJ,EAAMpE,KAAK4D,OACjB,IAAK,IAAIC,EAAI,EAAGC,EAAKM,EAAIL,OAAQF,EAAIC,IAAMD,EACzC,GAAIO,EAAIP,KAAOW,EACb,OAAOxE,KAAK6E,SAAShB,GAa3B,SAAST,GACP,GAAIA,EAAQ,GAAKA,GAASpD,KAAKkE,YAC7B,OAEF,MAAMc,EAAOhF,KAAK4D,OAAOR,GAQzB,OAPApD,KAAK4D,OAAOc,OAAOtB,EAAO,GAC1BpD,KAAKiE,gBACLjE,KAAK2E,cAC+B,IAC5B1B,EAAgB,IAAoBgC,OAAQD,EAAM5B,IAGnD4B,EAST,MAAM5B,EAAOoB,GAEX,GAAIpB,GADMpD,KAAKkE,YAGb,YADAlE,KAAK+E,SAAS3B,EAAOoB,GAGvB,GAAIpB,EAAQ,EACV,MAAM,IAAIqB,MAAM,wBAA0BrB,GAExCpD,KAAK0D,SACP1D,KAAKgE,cAAcQ,EAAMpB,GAE3B,MAAM4B,EAAOhF,KAAK4D,OAAOR,GACzBpD,KAAK4D,OAAOR,GAASoB,EACrBxE,KAAK2E,cAC+B,IAC5B1B,EAAgB,IAAoBgC,OAAQD,EAAM5B,IAG1DpD,KAAK2E,cAC+B,IAC5B1B,EAAgB,IAAoB2B,IAAKJ,EAAMpB,IAQzD,gBACEpD,KAAKkF,IAAIlC,EAAiBhD,KAAK4D,OAAOG,QAQxC,cAAcS,EAAMW,GAClB,IAAK,IAAItB,EAAI,EAAGC,EAAK9D,KAAK4D,OAAOG,OAAQF,EAAIC,IAAMD,EACjD,GAAI7D,KAAK4D,OAAOC,KAAOW,GAAQX,IAAMsB,EACnC,MAAM,IAAI,IAAe,KAMlB,O,kCCjUA,KAMbP,IAAK,MAMLK,OAAQ,W,sBCnBV,wDACIG,EAAoBC,OAAOC,0BAA4BC,EAASF,OAAOC,yBAAyBE,IAAIC,UAAW,QAAU,KACzHC,EAAUH,GAAUH,GAAsD,mBAA1BA,EAAkBb,IAAqBa,EAAkBb,IAAM,KAC/GoB,EAAaJ,GAAUC,IAAIC,UAAUG,QACrCC,EAAwB,mBAARC,KAAsBA,IAAIL,UAC1CM,EAAoBV,OAAOC,0BAA4BO,EAASR,OAAOC,yBAAyBQ,IAAIL,UAAW,QAAU,KACzHO,EAAUH,GAAUE,GAAsD,mBAA1BA,EAAkBxB,IAAqBwB,EAAkBxB,IAAM,KAC/G0B,EAAaJ,GAAUC,IAAIL,UAAUG,QAErCM,EADgC,mBAAZC,SAA0BA,QAAQV,UAC5BU,QAAQV,UAAUW,IAAM,KAElDC,EADgC,mBAAZC,SAA0BA,QAAQb,UAC5Ba,QAAQb,UAAUW,IAAM,KAElDG,EADgC,mBAAZC,SAA0BA,QAAQf,UAC1Be,QAAQf,UAAUgB,MAAQ,KACtDC,EAAiBC,QAAQlB,UAAUmB,QACnCC,EAAiBxB,OAAOI,UAAUqB,SAClCC,EAAmBC,SAASvB,UAAUqB,SACtCG,EAASC,OAAOzB,UAAU0B,MAC1BC,EAASF,OAAOzB,UAAU4B,MAC1BC,EAAWJ,OAAOzB,UAAU8B,QAC5BC,EAAeN,OAAOzB,UAAUgC,YAChCC,EAAeR,OAAOzB,UAAUkC,YAChCC,EAAQC,OAAOpC,UAAUqC,KACzBC,EAAUC,MAAMvC,UAAUwC,OAC1BC,EAAQF,MAAMvC,UAAU0C,KACxBC,EAAYJ,MAAMvC,UAAU4B,MAC5BgB,EAASC,KAAKC,MACdC,EAAkC,mBAAXC,OAAwBA,OAAOhD,UAAUmB,QAAU,KAC1E8B,EAAOrD,OAAOsD,sBACdC,EAAgC,mBAAXC,QAAoD,iBAApBA,OAAOC,SAAwBD,OAAOpD,UAAUqB,SAAW,KAChHiC,EAAsC,mBAAXF,QAAoD,iBAApBA,OAAOC,SAElEE,EAAgC,mBAAXH,QAAyBA,OAAOG,qBAAuBH,OAAOG,cAAgBD,GAA+B,UAChIF,OAAOG,YACP,KACFC,EAAe5D,OAAOI,UAAUyD,qBAEhCC,GAA0B,mBAAZC,QAAyBA,QAAQC,eAAiBhE,OAAOgE,kBACvE,GAAGC,YAActB,MAAMvC,UACjB,SAAU8D,GACR,OAAOA,EAAED,WAEX,MAGV,SAASE,EAAoBC,EAAKC,GAC9B,GACID,IAAQE,KACLF,KAASE,KACTF,GAAQA,GACPA,GAAOA,GAAO,KAAQA,EAAM,KAC7B7B,EAAMgC,KAAK,IAAKF,GAEnB,OAAOA,EAEX,IAAIG,EAAW,mCACf,GAAmB,iBAARJ,EAAkB,CACzB,IAAIK,EAAML,EAAM,GAAKpB,GAAQoB,GAAOpB,EAAOoB,GAC3C,GAAIK,IAAQL,EAAK,CACb,IAAIM,EAAS7C,OAAO4C,GAChBE,EAAM5C,EAAOwC,KAAKF,EAAKK,EAAOhG,OAAS,GAC3C,OAAOuD,EAASsC,KAAKG,EAAQF,EAAU,OAAS,IAAMvC,EAASsC,KAAKtC,EAASsC,KAAKI,EAAK,cAAe,OAAQ,KAAM,KAG5H,OAAO1C,EAASsC,KAAKF,EAAKG,EAAU,OAGxC,IAAII,EAAc,EAAQ,GACtBC,EAAgBD,EAAYE,OAC5BC,EAAgBC,EAASH,GAAiBA,EAAgB,KAoM9D,SAASI,EAAWC,EAAGC,EAAcC,GACjC,IAAIC,EAAkD,YAArCD,EAAKE,YAAcH,GAA6B,IAAM,IACvE,OAAOE,EAAYH,EAAIG,EAG3B,SAASE,EAAML,GACX,OAAOjD,EAASsC,KAAK1C,OAAOqD,GAAI,KAAM,UAG1C,SAASM,EAAQC,GAAO,QAAsB,mBAAfC,EAAMD,IAA+B9B,GAAgC,iBAAR8B,GAAoB9B,KAAe8B,GAE/H,SAASE,EAASF,GAAO,QAAsB,oBAAfC,EAAMD,IAAgC9B,GAAgC,iBAAR8B,GAAoB9B,KAAe8B,GAOjI,SAAST,EAASS,GACd,GAAI/B,EACA,OAAO+B,GAAsB,iBAARA,GAAoBA,aAAejC,OAE5D,GAAmB,iBAARiC,EACP,OAAO,EAEX,IAAKA,GAAsB,iBAARA,IAAqBlC,EACpC,OAAO,EAEX,IAEI,OADAA,EAAYgB,KAAKkB,IACV,EACT,MAAOG,IACT,OAAO,EAlOXC,EAAOC,QAAU,SAASC,EAASN,EAAKpJ,EAAS2J,EAAOC,GACpD,IAAIb,EAAO/I,GAAW,GAEtB,GAAI0E,EAAIqE,EAAM,eAAsC,WAApBA,EAAKE,YAA+C,WAApBF,EAAKE,WACjE,MAAM,IAAIY,UAAU,oDAExB,GACInF,EAAIqE,EAAM,qBAAuD,iBAAzBA,EAAKe,gBACvCf,EAAKe,gBAAkB,GAAKf,EAAKe,kBAAoB7B,IAC5B,OAAzBc,EAAKe,iBAGX,MAAM,IAAID,UAAU,0FAExB,IAAIE,GAAgBrF,EAAIqE,EAAM,kBAAmBA,EAAKgB,cACtD,GAA6B,kBAAlBA,GAAiD,WAAlBA,EACtC,MAAM,IAAIF,UAAU,iFAGxB,GACInF,EAAIqE,EAAM,WACS,OAAhBA,EAAKiB,QACW,OAAhBjB,EAAKiB,UACHC,SAASlB,EAAKiB,OAAQ,MAAQjB,EAAKiB,QAAUjB,EAAKiB,OAAS,GAEhE,MAAM,IAAIH,UAAU,4DAExB,GAAInF,EAAIqE,EAAM,qBAAwD,kBAA1BA,EAAKmB,iBAC7C,MAAM,IAAIL,UAAU,qEAExB,IAAIK,EAAmBnB,EAAKmB,iBAE5B,QAAmB,IAARd,EACP,MAAO,YAEX,GAAY,OAARA,EACA,MAAO,OAEX,GAAmB,kBAARA,EACP,OAAOA,EAAM,OAAS,QAG1B,GAAmB,iBAARA,EACP,OAgTR,SAASe,EAAcnC,EAAKe,GACxB,GAAIf,EAAI3F,OAAS0G,EAAKe,gBAAiB,CACnC,IAAIM,EAAYpC,EAAI3F,OAAS0G,EAAKe,gBAC9BO,EAAU,OAASD,EAAY,mBAAqBA,EAAY,EAAI,IAAM,IAC9E,OAAOD,EAAczE,EAAOwC,KAAKF,EAAK,EAAGe,EAAKe,iBAAkBf,GAAQsB,EAI5E,OAAOzB,EADChD,EAASsC,KAAKtC,EAASsC,KAAKF,EAAK,WAAY,QAAS,eAAgBsC,GACzD,SAAUvB,GAxTpBoB,CAAcf,EAAKL,GAE9B,GAAmB,iBAARK,EAAkB,CACzB,GAAY,IAARA,EACA,OAAOnB,IAAWmB,EAAM,EAAI,IAAM,KAEtC,IAAIpB,EAAMxC,OAAO4D,GACjB,OAAOc,EAAmBpC,EAAoBsB,EAAKpB,GAAOA,EAE9D,GAAmB,iBAARoB,EAAkB,CACzB,IAAImB,EAAY/E,OAAO4D,GAAO,IAC9B,OAAOc,EAAmBpC,EAAoBsB,EAAKmB,GAAaA,EAGpE,IAAIC,OAAiC,IAAfzB,EAAKY,MAAwB,EAAIZ,EAAKY,MAE5D,QADqB,IAAVA,IAAyBA,EAAQ,GACxCA,GAASa,GAAYA,EAAW,GAAoB,iBAARpB,EAC5C,OAAOD,EAAQC,GAAO,UAAY,WAGtC,IAAIY,EA0UR,SAAmBjB,EAAMY,GACrB,IAAIc,EACJ,GAAoB,OAAhB1B,EAAKiB,OACLS,EAAa,SACV,MAA2B,iBAAhB1B,EAAKiB,QAAuBjB,EAAKiB,OAAS,GAGxD,OAAO,KAFPS,EAAajE,EAAM0B,KAAK5B,MAAMyC,EAAKiB,OAAS,GAAI,KAIpD,MAAO,CACHU,KAAMD,EACNnH,KAAMkD,EAAM0B,KAAK5B,MAAMqD,EAAQ,GAAIc,IArV1BE,CAAU5B,EAAMY,GAE7B,QAAoB,IAATC,EACPA,EAAO,QACJ,GAAIgB,EAAQhB,EAAMR,IAAQ,EAC7B,MAAO,aAGX,SAASyB,EAAQC,EAAOC,EAAMC,GAK1B,GAJID,IACAnB,EAAOlD,EAAUwB,KAAK0B,IACjBjH,KAAKoI,GAEVC,EAAU,CACV,IAAIC,EAAU,CACVtB,MAAOZ,EAAKY,OAKhB,OAHIjF,EAAIqE,EAAM,gBACVkC,EAAQhC,WAAaF,EAAKE,YAEvBS,EAASoB,EAAOG,EAAStB,EAAQ,EAAGC,GAE/C,OAAOF,EAASoB,EAAO/B,EAAMY,EAAQ,EAAGC,GAG5C,GAAmB,mBAARR,IAAuBE,EAASF,GAAM,CAC7C,IAAI8B,EAgKZ,SAAgBtI,GACZ,GAAIA,EAAEsI,KAAQ,OAAOtI,EAAEsI,KACvB,IAAIC,EAAI5F,EAAO2C,KAAK7C,EAAiB6C,KAAKtF,GAAI,wBAC9C,GAAIuI,EAAK,OAAOA,EAAE,GAClB,OAAO,KApKQC,CAAOhC,GACdiC,GAAOC,EAAWlC,EAAKyB,GAC3B,MAAO,aAAeK,EAAO,KAAOA,EAAO,gBAAkB,KAAOG,GAAKhJ,OAAS,EAAI,MAAQmE,EAAM0B,KAAKmD,GAAM,MAAQ,KAAO,IAElI,GAAI1C,EAASS,GAAM,CACf,IAAImC,GAAYlE,EAAoBzB,EAASsC,KAAK1C,OAAO4D,GAAM,yBAA0B,MAAQlC,EAAYgB,KAAKkB,GAClH,MAAsB,iBAARA,GAAqB/B,EAA2CkE,GAAvBC,EAAUD,IAErE,GAkPJ,SAAmBE,GACf,IAAKA,GAAkB,iBAANA,EAAkB,OAAO,EAC1C,GAA2B,oBAAhBC,aAA+BD,aAAaC,YACnD,OAAO,EAEX,MAA6B,iBAAfD,EAAEE,UAAmD,mBAAnBF,EAAEG,aAvP9CC,CAAUzC,GAAM,CAGhB,IAFA,IAAIP,GAAI,IAAM7C,EAAakC,KAAK1C,OAAO4D,EAAIuC,WACvCG,GAAQ1C,EAAI2C,YAAc,GACrB5J,GAAI,EAAGA,GAAI2J,GAAMzJ,OAAQF,KAC9B0G,IAAK,IAAMiD,GAAM3J,IAAG+I,KAAO,IAAMtC,EAAWM,EAAM4C,GAAM3J,IAAG2I,OAAQ,SAAU/B,GAKjF,OAHAF,IAAK,IACDO,EAAI4C,YAAc5C,EAAI4C,WAAW3J,SAAUwG,IAAK,OACpDA,IAAK,KAAO7C,EAAakC,KAAK1C,OAAO4D,EAAIuC,WAAa,IAG1D,GAAIxC,EAAQC,GAAM,CACd,GAAmB,IAAfA,EAAI/G,OAAgB,MAAO,KAC/B,IAAI4J,GAAKX,EAAWlC,EAAKyB,GACzB,OAAIb,IAiRZ,SAA0BiC,GACtB,IAAK,IAAI9J,EAAI,EAAGA,EAAI8J,EAAG5J,OAAQF,IAC3B,GAAIyI,EAAQqB,EAAG9J,GAAI,OAAS,EACxB,OAAO,EAGf,OAAO,EAvRY+J,CAAiBD,IACrB,IAAME,EAAaF,GAAIjC,GAAU,IAErC,KAAOxD,EAAM0B,KAAK+D,GAAI,MAAQ,KAEzC,GA0FJ,SAAiB7C,GAAO,QAAsB,mBAAfC,EAAMD,IAA+B9B,GAAgC,iBAAR8B,GAAoB9B,KAAe8B,GA1FvHgD,CAAQhD,GAAM,CACd,IAAIiD,GAAQf,EAAWlC,EAAKyB,GAC5B,MAAM,UAAW9H,MAAMgB,aAAc,UAAWqF,IAAQ7B,EAAaW,KAAKkB,EAAK,SAG1D,IAAjBiD,GAAMhK,OAAuB,IAAMmD,OAAO4D,GAAO,IAC9C,MAAQ5D,OAAO4D,GAAO,KAAO5C,EAAM0B,KAAKmE,GAAO,MAAQ,KAHnD,MAAQ7G,OAAO4D,GAAO,KAAO5C,EAAM0B,KAAK7B,EAAQ6B,KAAK,YAAc2C,EAAQzB,EAAIkD,OAAQD,IAAQ,MAAQ,KAKtH,GAAmB,iBAARjD,GAAoBW,EAAe,CAC1C,GAAIrB,GAA+C,mBAAvBU,EAAIV,IAAiCH,EAC7D,OAAOA,EAAYa,EAAK,CAAEO,MAAOa,EAAWb,IACzC,GAAsB,WAAlBI,GAAqD,mBAAhBX,EAAIyB,QAChD,OAAOzB,EAAIyB,UAGnB,GAqIJ,SAAeY,GACX,IAAKzH,IAAYyH,GAAkB,iBAANA,EACzB,OAAO,EAEX,IACIzH,EAAQkE,KAAKuD,GACb,IACInH,EAAQ4D,KAAKuD,GACf,MAAO5C,GACL,OAAO,EAEX,OAAO4C,aAAa3H,IACtB,MAAOyF,IACT,OAAO,EAlJHgD,CAAMnD,GAAM,CACZ,IAAIoD,GAAW,GAMf,OALIvI,GACAA,EAAWiE,KAAKkB,GAAK,SAAU0B,EAAO2B,GAClCD,GAAS7J,KAAKkI,EAAQ4B,EAAKrD,GAAK,GAAQ,OAASyB,EAAQC,EAAO1B,OAGjEsD,EAAa,MAAO1I,EAAQkE,KAAKkB,GAAMoD,GAAUxC,GAE5D,GAuKJ,SAAeyB,GACX,IAAKnH,IAAYmH,GAAkB,iBAANA,EACzB,OAAO,EAEX,IACInH,EAAQ4D,KAAKuD,GACb,IACIzH,EAAQkE,KAAKuD,GACf,MAAON,GACL,OAAO,EAEX,OAAOM,aAAarH,IACtB,MAAOmF,IACT,OAAO,EApLHoD,CAAMvD,GAAM,CACZ,IAAIwD,GAAW,GAMf,OALIrI,GACAA,EAAW2D,KAAKkB,GAAK,SAAU0B,GAC3B8B,GAASjK,KAAKkI,EAAQC,EAAO1B,OAG9BsD,EAAa,MAAOpI,EAAQ4D,KAAKkB,GAAMwD,GAAU5C,GAE5D,GAmIJ,SAAmByB,GACf,IAAKjH,IAAeiH,GAAkB,iBAANA,EAC5B,OAAO,EAEX,IACIjH,EAAW0D,KAAKuD,EAAGjH,GACnB,IACIG,EAAWuD,KAAKuD,EAAG9G,GACrB,MAAOkE,GACL,OAAO,EAEX,OAAO4C,aAAahH,QACtB,MAAO8E,IACT,OAAO,EAhJHsD,CAAUzD,GACV,OAAO0D,EAAiB,WAE5B,GA2KJ,SAAmBrB,GACf,IAAK9G,IAAe8G,GAAkB,iBAANA,EAC5B,OAAO,EAEX,IACI9G,EAAWuD,KAAKuD,EAAG9G,GACnB,IACIH,EAAW0D,KAAKuD,EAAGjH,GACrB,MAAOqE,GACL,OAAO,EAEX,OAAO4C,aAAa7G,QACtB,MAAO2E,IACT,OAAO,EAxLHwD,CAAU3D,GACV,OAAO0D,EAAiB,WAE5B,GA6IJ,SAAmBrB,GACf,IAAK5G,IAAiB4G,GAAkB,iBAANA,EAC9B,OAAO,EAEX,IAEI,OADA5G,EAAaqD,KAAKuD,IACX,EACT,MAAOlC,IACT,OAAO,EArJHyD,CAAU5D,GACV,OAAO0D,EAAiB,WAE5B,GAkDJ,SAAkB1D,GAAO,QAAsB,oBAAfC,EAAMD,IAAgC9B,GAAgC,iBAAR8B,GAAoB9B,KAAe8B,GAlDzH6D,CAAS7D,GACT,OAAOoC,EAAUX,EAAQqC,OAAO9D,KAEpC,GAoEJ,SAAkBA,GACd,IAAKA,GAAsB,iBAARA,IAAqBtC,EACpC,OAAO,EAEX,IAEI,OADAA,EAAcoB,KAAKkB,IACZ,EACT,MAAOG,IACT,OAAO,EA5EH4D,CAAS/D,GACT,OAAOoC,EAAUX,EAAQ/D,EAAcoB,KAAKkB,KAEhD,GA6CJ,SAAmBA,GAAO,QAAsB,qBAAfC,EAAMD,IAAiC9B,GAAgC,iBAAR8B,GAAoB9B,KAAe8B,GA7C3HgE,CAAUhE,GACV,OAAOoC,EAAUxG,EAAekD,KAAKkB,IAEzC,GAwCJ,SAAkBA,GAAO,QAAsB,oBAAfC,EAAMD,IAAgC9B,GAAgC,iBAAR8B,GAAoB9B,KAAe8B,GAxCzHiE,CAASjE,GACT,OAAOoC,EAAUX,EAAQrF,OAAO4D,KAIpC,GAAsB,oBAAXkE,QAA0BlE,IAAQkE,OACzC,MAAO,sBAEX,GAAIlE,IAAQmE,EACR,MAAO,0BAEX,IA0BJ,SAAgBnE,GAAO,QAAsB,kBAAfC,EAAMD,IAA8B9B,GAAgC,iBAAR8B,GAAoB9B,KAAe8B,GA1BpHoE,CAAOpE,KAASE,EAASF,GAAM,CAChC,IAAIqE,GAAKnC,EAAWlC,EAAKyB,GACrB6C,GAAgBjG,EAAMA,EAAI2B,KAASzF,OAAOI,UAAYqF,aAAezF,QAAUyF,EAAIuE,cAAgBhK,OACnGiK,GAAWxE,aAAezF,OAAS,GAAK,iBACxCkK,IAAaH,IAAiBpG,GAAe3D,OAAOyF,KAASA,GAAO9B,KAAe8B,EAAM1D,EAAOwC,KAAKmB,EAAMD,GAAM,GAAI,GAAKwE,GAAW,SAAW,GAEhJE,IADiBJ,IAA4C,mBAApBtE,EAAIuE,YAA6B,GAAKvE,EAAIuE,YAAYzC,KAAO9B,EAAIuE,YAAYzC,KAAO,IAAM,KAC3G2C,IAAaD,GAAW,IAAMpH,EAAM0B,KAAK7B,EAAQ6B,KAAK,GAAI2F,IAAa,GAAID,IAAY,IAAK,MAAQ,KAAO,IACvI,OAAkB,IAAdH,GAAGpL,OAAuByL,GAAM,KAChC9D,EACO8D,GAAM,IAAM3B,EAAasB,GAAIzD,GAAU,IAE3C8D,GAAM,KAAOtH,EAAM0B,KAAKuF,GAAI,MAAQ,KAE/C,OAAOjI,OAAO4D,IAiDlB,IAAI2E,EAASpK,OAAOI,UAAUiK,gBAAkB,SAAUvB,GAAO,OAAOA,KAAOnO,MAC/E,SAASoG,EAAI0E,EAAKqD,GACd,OAAOsB,EAAO7F,KAAKkB,EAAKqD,GAG5B,SAASpD,EAAMD,GACX,OAAOjE,EAAe+C,KAAKkB,GAU/B,SAASwB,EAAQqB,EAAIR,GACjB,GAAIQ,EAAGrB,QAAW,OAAOqB,EAAGrB,QAAQa,GACpC,IAAK,IAAItJ,EAAI,EAAG8L,EAAIhC,EAAG5J,OAAQF,EAAI8L,EAAG9L,IAClC,GAAI8J,EAAG9J,KAAOsJ,EAAK,OAAOtJ,EAE9B,OAAQ,EAiGZ,SAASmI,EAAQ4D,GACb,IAAI9K,EAAI8K,EAAEC,WAAW,GACjB1C,EAAI,CACJ2C,EAAG,IACHC,EAAG,IACHC,GAAI,IACJC,GAAI,IACJC,GAAI,KACNpL,GACF,OAAIqI,EAAY,KAAOA,EAChB,OAASrI,EAAI,GAAO,IAAM,IAAM0C,EAAaoC,KAAK9E,EAAEgC,SAAS,KAGxE,SAASoG,EAAUxD,GACf,MAAO,UAAYA,EAAM,IAG7B,SAAS8E,EAAiBtL,GACtB,OAAOA,EAAO,SAGlB,SAASkL,EAAalL,EAAMZ,EAAM6N,EAASzE,GAEvC,OAAOxI,EAAO,KAAOZ,EAAO,OADRoJ,EAASmC,EAAasC,EAASzE,GAAUxD,EAAM0B,KAAKuG,EAAS,OAC7B,IA2BxD,SAAStC,EAAaF,EAAIjC,GACtB,GAAkB,IAAdiC,EAAG5J,OAAgB,MAAO,GAC9B,IAAIqM,EAAa,KAAO1E,EAAO1G,KAAO0G,EAAOU,KAC7C,OAAOgE,EAAalI,EAAM0B,KAAK+D,EAAI,IAAMyC,GAAc,KAAO1E,EAAO1G,KAGzE,SAASgI,EAAWlC,EAAKyB,GACrB,IAAI8D,EAAQxF,EAAQC,GAChB6C,EAAK,GACT,GAAI0C,EAAO,CACP1C,EAAG5J,OAAS+G,EAAI/G,OAChB,IAAK,IAAIF,EAAI,EAAGA,EAAIiH,EAAI/G,OAAQF,IAC5B8J,EAAG9J,GAAKuC,EAAI0E,EAAKjH,GAAK0I,EAAQzB,EAAIjH,GAAIiH,GAAO,GAGrD,IACIwF,EADAC,EAAuB,mBAAT7H,EAAsBA,EAAKoC,GAAO,GAEpD,GAAI/B,EAAmB,CACnBuH,EAAS,GACT,IAAK,IAAIE,EAAI,EAAGA,EAAID,EAAKxM,OAAQyM,IAC7BF,EAAO,IAAMC,EAAKC,IAAMD,EAAKC,GAIrC,IAAK,IAAIrC,KAAOrD,EACP1E,EAAI0E,EAAKqD,KACVkC,GAASnJ,OAAO0H,OAAOT,MAAUA,GAAOA,EAAMrD,EAAI/G,QAClDgF,GAAqBuH,EAAO,IAAMnC,aAAgBtF,SAG3CjB,EAAMgC,KAAK,SAAUuE,GAC5BR,EAAGtJ,KAAKkI,EAAQ4B,EAAKrD,GAAO,KAAOyB,EAAQzB,EAAIqD,GAAMrD,IAErD6C,EAAGtJ,KAAK8J,EAAM,KAAO5B,EAAQzB,EAAIqD,GAAMrD,MAG/C,GAAoB,mBAATpC,EACP,IAAK,IAAI+H,EAAI,EAAGA,EAAIF,EAAKxM,OAAQ0M,IACzBxH,EAAaW,KAAKkB,EAAKyF,EAAKE,KAC5B9C,EAAGtJ,KAAK,IAAMkI,EAAQgE,EAAKE,IAAM,MAAQlE,EAAQzB,EAAIyF,EAAKE,IAAK3F,IAI3E,OAAO6C,K,wDC1gBX,oDA0EA,MAAM+C,UAAgB,IAOpB,YAAYC,GAmDV,GAlDA9O,QAKA7B,KAAKuD,GAKLvD,KAAKwD,KAKLxD,KAAKyD,GAMLzD,KAAK4Q,SAAM1P,EAMXlB,KAAK6Q,cAAgB,WAOrB7Q,KAAK8Q,OAAS,KAMd9Q,KAAK+Q,oBAAiB7P,EAMtBlB,KAAKgR,mBAAqB,KAE1BhR,KAAKiR,kBAAkBjR,KAAK6Q,cAAe7Q,KAAKkR,wBAE5CP,EACF,GAGQ,mBADa,EACnB,sBACA,CACA,MAAMQ,EAAmC,EACzCnR,KAAKoR,YAAYD,OACZ,CAEL,MAAME,EAAaV,EACnB3Q,KAAKsR,cAAcD,IAWzB,QACE,MAAME,EAAyC,IACzCb,EAAQ1Q,KAAKwR,gBAAkBxR,KAAKyR,gBAAkB,MAE5DF,EAAMG,gBAAgB1R,KAAK2R,mBAC3B,MAAMR,EAAWnR,KAAK4R,cAClBT,GACFI,EAAMH,YAAqCD,EAASI,SAEtD,MAAMM,EAAQ7R,KAAK8R,WAInB,OAHID,GACFN,EAAMQ,SAASF,GAEVN,EAWT,cACE,OAA0CvR,KAAKuE,IAAIvE,KAAK6Q,eAU1D,QACE,OAAO7Q,KAAK4Q,IAUd,kBACE,OAAO5Q,KAAK6Q,cASd,WACE,OAAO7Q,KAAK8Q,OASd,mBACE,OAAO9Q,KAAK+Q,eAMd,wBACE/Q,KAAK0C,UAMP,yBACM1C,KAAKgR,qBACP,YAAchR,KAAKgR,oBACnBhR,KAAKgR,mBAAqB,MAE5B,MAAMG,EAAWnR,KAAK4R,cAClBT,IACFnR,KAAKgR,mBAAqB,YACxBG,EACA,IAAUa,OACVhS,KAAKiS,sBACLjS,OAGJA,KAAK0C,UAUP,YAAYyO,GACVnR,KAAKkF,IAAIlF,KAAK6Q,cAAeM,GAY/B,SAASU,GACP7R,KAAK8Q,OAASe,EACd7R,KAAK+Q,eAAkBc,EAyCpB,SAA6B/G,GAClC,GAAmB,mBAARA,EACT,OAAOA,EAKT,IAAIoH,EACJ,GAAIlK,MAAM6C,QAAQC,GAChBoH,EAASpH,MACJ,CACL,YAAqD,mBAArB,EAAe,UAAkB,IAEjEoH,EAAS,CADuD,GAGlE,OAAO,WACL,OAAOA,GAzDoCC,CAAoBN,QAAhC3Q,EAC/BlB,KAAK0C,UAYP,MAAM0P,GACJpS,KAAK4Q,IAAMwB,EACXpS,KAAK0C,UAUP,gBAAgBkK,GACd5M,KAAKqS,qBAAqBrS,KAAK6Q,cAAe7Q,KAAKkR,wBACnDlR,KAAK6Q,cAAgBjE,EACrB5M,KAAKiR,kBAAkBjR,KAAK6Q,cAAe7Q,KAAKkR,wBAChDlR,KAAKkR,0BA+BM,O,kCCxUf,MAAMoB,EAAW,CACfC,EAAG,iCACHC,EAAG,qCACHC,EAAG,mCACHC,EAAG,wDACHC,EAAG,iDACHC,EAAG,yCACH9C,EAAG,kCACHC,EAAG,oDACHC,GAAI,oEACJ6C,GAAI,0CACJ5C,GAAI,0EACJC,GAAI,iBACJ4C,GAAI,gBACJC,GAAI,kEACJC,GAAI,sDACJC,GAAI,mDACJC,GAAI,8DACJC,GAAI,wDACJC,GAAI,sDACJC,GAAI,kEACJC,GAAI,oDACJC,GAAI,iDACJC,GAAI,+BACJC,GAAI,+BACJC,GAAI,gDACJC,GAAI,uDACJC,GAAI,oEACJC,GAAI,2CACJC,GAAI,gBACJC,GAAI,0BACJC,GAAI,mBACJC,GAAI,8BACJC,GAAI,sCACJC,GAAI,wBACJC,GAAI,wCACJC,GAAI,kEACJC,GAAI,qCACJC,GAAI,qDACJC,GAAI,2DACJC,GAAI,+DACJC,GAAI,2DACJC,GAAI,4CACJC,GAAI,sDACJC,GAAI,kCACJC,GAAI,2CACJC,GAAI,wDACJC,GAAI,sDACJC,GAAI,qCACJC,GAAI,mCACJC,GAAI,4BACJC,GAAI,+EACJC,GAAI,uFACJC,GAAI,iCACJC,GAAI,wPACJC,GAAI,uGACJC,GAAI,sGACJC,GAAI,gEAQN,MAAMC,UAAuBlR,MAI3B,YAAYmR,GACV,MAAMC,EAAUvD,EAASsD,GAEzB/T,MAAMgU,GAWN7V,KAAK4V,KAAOA,EAKZ5V,KAAK4M,KAAO,iBAGZ5M,KAAK6V,QAAUA,GAIJ","file":"vendors~a0c890bc.4c948167e368981702ae.chunk.js","sourcesContent":["/**\n * @module ol/Disposable\n */\n\n/**\n * @classdesc\n * Objects that need to clean up after themselves.\n */\nclass Disposable {\n  constructor() {\n    /**\n     * The object has already been disposed.\n     * @type {boolean}\n     * @protected\n     */\n    this.disposed = false;\n  }\n\n  /**\n   * Clean up.\n   */\n  dispose() {\n    if (!this.disposed) {\n      this.disposed = true;\n      this.disposeInternal();\n    }\n  }\n\n  /**\n   * Extension point for disposable objects.\n   * @protected\n   */\n  disposeInternal() {}\n}\n\nexport default Disposable;\n","/**\n * @module ol/DataTile\n */\nimport Tile from './Tile.js';\nimport TileState from './TileState.js';\nimport {createCanvasContext2D} from './dom.js';\n\n/**\n * @typedef {HTMLImageElement|HTMLCanvasElement|HTMLVideoElement} ImageLike\n */\n\n/**\n * @typedef {Uint8Array|Uint8ClampedArray|Float32Array|DataView} ArrayLike\n */\n\n/**\n * Data that can be used with a DataTile.\n * @typedef {ArrayLike|ImageLike} Data\n */\n\n/**\n * @param {Data} data Tile data.\n * @return {ImageLike|null} The image-like data.\n */\nexport function asImageLike(data) {\n  return data instanceof Image ||\n    data instanceof HTMLCanvasElement ||\n    data instanceof HTMLVideoElement\n    ? data\n    : null;\n}\n\n/**\n * @param {Data} data Tile data.\n * @return {ArrayLike|null} The array-like data.\n */\nexport function asArrayLike(data) {\n  return data instanceof Uint8Array ||\n    data instanceof Uint8ClampedArray ||\n    data instanceof Float32Array ||\n    data instanceof DataView\n    ? data\n    : null;\n}\n\n/**\n * @type {CanvasRenderingContext2D|null}\n */\nlet sharedContext = null;\n\n/**\n * @param {ImageLike} image The image.\n * @return {Uint8ClampedArray} The data.\n */\nexport function toArray(image) {\n  if (!sharedContext) {\n    sharedContext = createCanvasContext2D(\n      image.width,\n      image.height,\n      undefined,\n      {willReadFrequently: true}\n    );\n  }\n  const canvas = sharedContext.canvas;\n  const width = image.width;\n  if (canvas.width !== width) {\n    canvas.width = width;\n  }\n  const height = image.height;\n  if (canvas.height !== height) {\n    canvas.height = height;\n  }\n  sharedContext.clearRect(0, 0, width, height);\n  sharedContext.drawImage(image, 0, 0);\n  return sharedContext.getImageData(0, 0, width, height).data;\n}\n\n/**\n * @type {import('./size.js').Size}\n */\nconst defaultSize = [256, 256];\n\n/**\n * @typedef {Object} Options\n * @property {import(\"./tilecoord.js\").TileCoord} tileCoord Tile coordinate.\n * @property {function(): Promise<Data>} loader Data loader.  For loaders that generate images,\n * the promise should not resolve until the image is loaded.\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 */\n\nclass DataTile extends Tile {\n  /**\n   * @param {Options} options Tile options.\n   */\n  constructor(options) {\n    const state = TileState.IDLE;\n\n    super(options.tileCoord, state, {\n      transition: options.transition,\n      interpolate: options.interpolate,\n    });\n\n    /**\n     * @type {function(): Promise<Data>}\n     * @private\n     */\n    this.loader_ = options.loader;\n\n    /**\n     * @type {Data}\n     * @private\n     */\n    this.data_ = null;\n\n    /**\n     * @type {Error}\n     * @private\n     */\n    this.error_ = null;\n\n    /**\n     * @type {import('./size.js').Size|null}\n     * @private\n     */\n    this.size_ = options.size || null;\n  }\n\n  /**\n   * Get the tile size.\n   * @return {import('./size.js').Size} Tile size.\n   */\n  getSize() {\n    if (this.size_) {\n      return this.size_;\n    }\n    const imageData = asImageLike(this.data_);\n    if (imageData) {\n      return [imageData.width, imageData.height];\n    }\n    return defaultSize;\n  }\n\n  /**\n   * Get the data for the tile.\n   * @return {Data} Tile data.\n   * @api\n   */\n  getData() {\n    return this.data_;\n  }\n\n  /**\n   * Get any loading error.\n   * @return {Error} Loading error.\n   * @api\n   */\n  getError() {\n    return this.error_;\n  }\n\n  /**\n   * Load not yet loaded URI.\n   * @api\n   */\n  load() {\n    if (this.state !== TileState.IDLE && this.state !== TileState.ERROR) {\n      return;\n    }\n    this.state = TileState.LOADING;\n    this.changed();\n\n    const 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}\n\nexport default DataTile;\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/**\n * @enum {string}\n * @private\n */\nconst Property = {\n  LENGTH: 'length',\n};\n\n/**\n * @classdesc\n * Events emitted by {@link module:ol/Collection~Collection} instances are instances of this\n * type.\n * @template T\n */\nexport class CollectionEvent extends Event {\n  /**\n   * @param {import(\"./CollectionEventType.js\").default} type Type.\n   * @param {T} element Element.\n   * @param {number} index The index of the added or removed element.\n   */\n  constructor(type, element, index) {\n    super(type);\n\n    /**\n     * The element that is added to or removed from the collection.\n     * @type {T}\n     * @api\n     */\n    this.element = element;\n\n    /**\n     * The index of the added or removed element.\n     * @type {number}\n     * @api\n     */\n    this.index = index;\n  }\n}\n\n/***\n * @template T\n * @template Return\n * @typedef {import(\"./Observable\").OnSignature<import(\"./Observable\").EventTypes, import(\"./events/Event.js\").default, Return> &\n *   import(\"./Observable\").OnSignature<import(\"./ObjectEventType\").Types|'change:length', import(\"./Object\").ObjectEvent, Return> &\n *   import(\"./Observable\").OnSignature<'add'|'remove', CollectionEvent<T>, Return> &\n *   import(\"./Observable\").CombinedOnSignature<import(\"./Observable\").EventTypes|import(\"./ObjectEventType\").Types|\n *     'change:length'|'add'|'remove',Return>} CollectionOnSignature\n */\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/**\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 */\nclass Collection extends BaseObject {\n  /**\n   * @param {Array<T>} [array] Array.\n   * @param {Options} [options] Collection options.\n   */\n  constructor(array, options) {\n    super();\n\n    /***\n     * @type {CollectionOnSignature<T, import(\"./events\").EventsKey>}\n     */\n    this.on;\n\n    /***\n     * @type {CollectionOnSignature<T, import(\"./events\").EventsKey>}\n     */\n    this.once;\n\n    /***\n     * @type {CollectionOnSignature<T, void>}\n     */\n    this.un;\n\n    options = options || {};\n\n    /**\n     * @private\n     * @type {boolean}\n     */\n    this.unique_ = !!options.unique;\n\n    /**\n     * @private\n     * @type {!Array<T>}\n     */\n    this.array_ = array ? array : [];\n\n    if (this.unique_) {\n      for (let i = 0, ii = this.array_.length; i < ii; ++i) {\n        this.assertUnique_(this.array_[i], i);\n      }\n    }\n\n    this.updateLength_();\n  }\n\n  /**\n   * Remove all elements from the collection.\n   * @api\n   */\n  clear() {\n    while (this.getLength() > 0) {\n      this.pop();\n    }\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<T>} arr Array.\n   * @return {Collection<T>} This collection.\n   * @api\n   */\n  extend(arr) {\n    for (let i = 0, ii = arr.length; i < ii; ++i) {\n      this.push(arr[i]);\n    }\n    return this;\n  }\n\n  /**\n   * Iterate over each element, calling the provided callback.\n   * @param {function(T, number, Array<T>): *} 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  forEach(f) {\n    const array = this.array_;\n    for (let i = 0, ii = array.length; i < ii; ++i) {\n      f(array[i], i, array);\n    }\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<T>} Array.\n   * @api\n   */\n  getArray() {\n    return this.array_;\n  }\n\n  /**\n   * Get the element at the provided index.\n   * @param {number} index Index.\n   * @return {T} Element.\n   * @api\n   */\n  item(index) {\n    return this.array_[index];\n  }\n\n  /**\n   * Get the length of this collection.\n   * @return {number} The length of the array.\n   * @observable\n   * @api\n   */\n  getLength() {\n    return this.get(Property.LENGTH);\n  }\n\n  /**\n   * Insert an element at the provided index.\n   * @param {number} index Index.\n   * @param {T} elem Element.\n   * @api\n   */\n  insertAt(index, elem) {\n    if (index < 0 || index > this.getLength()) {\n      throw new Error('Index out of bounds: ' + index);\n    }\n    if (this.unique_) {\n      this.assertUnique_(elem);\n    }\n    this.array_.splice(index, 0, elem);\n    this.updateLength_();\n    this.dispatchEvent(\n      new CollectionEvent(CollectionEventType.ADD, elem, index)\n    );\n  }\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  pop() {\n    return this.removeAt(this.getLength() - 1);\n  }\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  push(elem) {\n    if (this.unique_) {\n      this.assertUnique_(elem);\n    }\n    const n = this.getLength();\n    this.insertAt(n, elem);\n    return this.getLength();\n  }\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  remove(elem) {\n    const arr = this.array_;\n    for (let 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  /**\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  removeAt(index) {\n    if (index < 0 || index >= this.getLength()) {\n      return undefined;\n    }\n    const prev = this.array_[index];\n    this.array_.splice(index, 1);\n    this.updateLength_();\n    this.dispatchEvent(\n      /** @type {CollectionEvent<T>} */ (\n        new CollectionEvent(CollectionEventType.REMOVE, prev, index)\n      )\n    );\n    return prev;\n  }\n\n  /**\n   * Set the element at the provided index.\n   * @param {number} index Index.\n   * @param {T} elem Element.\n   * @api\n   */\n  setAt(index, elem) {\n    const n = this.getLength();\n    if (index >= n) {\n      this.insertAt(index, elem);\n      return;\n    }\n    if (index < 0) {\n      throw new Error('Index out of bounds: ' + index);\n    }\n    if (this.unique_) {\n      this.assertUnique_(elem, index);\n    }\n    const prev = this.array_[index];\n    this.array_[index] = elem;\n    this.dispatchEvent(\n      /** @type {CollectionEvent<T>} */ (\n        new CollectionEvent(CollectionEventType.REMOVE, prev, index)\n      )\n    );\n    this.dispatchEvent(\n      /** @type {CollectionEvent<T>} */ (\n        new CollectionEvent(CollectionEventType.ADD, elem, index)\n      )\n    );\n  }\n\n  /**\n   * @private\n   */\n  updateLength_() {\n    this.set(Property.LENGTH, this.array_.length);\n  }\n\n  /**\n   * @private\n   * @param {T} elem Element.\n   * @param {number} [except] Optional index to ignore.\n   */\n  assertUnique_(elem, except) {\n    for (let i = 0, ii = this.array_.length; i < ii; ++i) {\n      if (this.array_[i] === elem && i !== except) {\n        throw new AssertionError(58);\n      }\n    }\n  }\n}\n\nexport default Collection;\n","/**\n * @module ol/CollectionEventType\n */\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","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n    ? Symbol.toStringTag\n    : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n    [].__proto__ === Array.prototype // eslint-disable-line no-proto\n        ? function (O) {\n            return O.__proto__; // eslint-disable-line no-proto\n        }\n        : null\n);\n\nfunction addNumericSeparator(num, str) {\n    if (\n        num === Infinity\n        || num === -Infinity\n        || num !== num\n        || (num && num > -1000 && num < 1000)\n        || $test.call(/e/, str)\n    ) {\n        return str;\n    }\n    var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n    if (typeof num === 'number') {\n        var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n        if (int !== num) {\n            var intStr = String(int);\n            var dec = $slice.call(str, intStr.length + 1);\n            return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n        }\n    }\n    return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = require('./util.inspect');\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n    var opts = options || {};\n\n    if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n        throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n    }\n    if (\n        has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n            ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n            : opts.maxStringLength !== null\n        )\n    ) {\n        throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n    }\n    var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n    if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n        throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n    }\n\n    if (\n        has(opts, 'indent')\n        && opts.indent !== null\n        && opts.indent !== '\\t'\n        && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n    ) {\n        throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n    }\n    if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n        throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n    }\n    var numericSeparator = opts.numericSeparator;\n\n    if (typeof obj === 'undefined') {\n        return 'undefined';\n    }\n    if (obj === null) {\n        return 'null';\n    }\n    if (typeof obj === 'boolean') {\n        return obj ? 'true' : 'false';\n    }\n\n    if (typeof obj === 'string') {\n        return inspectString(obj, opts);\n    }\n    if (typeof obj === 'number') {\n        if (obj === 0) {\n            return Infinity / obj > 0 ? '0' : '-0';\n        }\n        var str = String(obj);\n        return numericSeparator ? addNumericSeparator(obj, str) : str;\n    }\n    if (typeof obj === 'bigint') {\n        var bigIntStr = String(obj) + 'n';\n        return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n    }\n\n    var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n    if (typeof depth === 'undefined') { depth = 0; }\n    if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n        return isArray(obj) ? '[Array]' : '[Object]';\n    }\n\n    var indent = getIndent(opts, depth);\n\n    if (typeof seen === 'undefined') {\n        seen = [];\n    } else if (indexOf(seen, obj) >= 0) {\n        return '[Circular]';\n    }\n\n    function inspect(value, from, noIndent) {\n        if (from) {\n            seen = $arrSlice.call(seen);\n            seen.push(from);\n        }\n        if (noIndent) {\n            var newOpts = {\n                depth: opts.depth\n            };\n            if (has(opts, 'quoteStyle')) {\n                newOpts.quoteStyle = opts.quoteStyle;\n            }\n            return inspect_(value, newOpts, depth + 1, seen);\n        }\n        return inspect_(value, opts, depth + 1, seen);\n    }\n\n    if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n        var name = nameOf(obj);\n        var keys = arrObjKeys(obj, inspect);\n        return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n    }\n    if (isSymbol(obj)) {\n        var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n        return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n    }\n    if (isElement(obj)) {\n        var s = '<' + $toLowerCase.call(String(obj.nodeName));\n        var attrs = obj.attributes || [];\n        for (var i = 0; i < attrs.length; i++) {\n            s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n        }\n        s += '>';\n        if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n        s += '</' + $toLowerCase.call(String(obj.nodeName)) + '>';\n        return s;\n    }\n    if (isArray(obj)) {\n        if (obj.length === 0) { return '[]'; }\n        var xs = arrObjKeys(obj, inspect);\n        if (indent && !singleLineValues(xs)) {\n            return '[' + indentedJoin(xs, indent) + ']';\n        }\n        return '[ ' + $join.call(xs, ', ') + ' ]';\n    }\n    if (isError(obj)) {\n        var parts = arrObjKeys(obj, inspect);\n        if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n            return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n        }\n        if (parts.length === 0) { return '[' + String(obj) + ']'; }\n        return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n    }\n    if (typeof obj === 'object' && customInspect) {\n        if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n            return utilInspect(obj, { depth: maxDepth - depth });\n        } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n            return obj.inspect();\n        }\n    }\n    if (isMap(obj)) {\n        var mapParts = [];\n        if (mapForEach) {\n            mapForEach.call(obj, function (value, key) {\n                mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n            });\n        }\n        return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n    }\n    if (isSet(obj)) {\n        var setParts = [];\n        if (setForEach) {\n            setForEach.call(obj, function (value) {\n                setParts.push(inspect(value, obj));\n            });\n        }\n        return collectionOf('Set', setSize.call(obj), setParts, indent);\n    }\n    if (isWeakMap(obj)) {\n        return weakCollectionOf('WeakMap');\n    }\n    if (isWeakSet(obj)) {\n        return weakCollectionOf('WeakSet');\n    }\n    if (isWeakRef(obj)) {\n        return weakCollectionOf('WeakRef');\n    }\n    if (isNumber(obj)) {\n        return markBoxed(inspect(Number(obj)));\n    }\n    if (isBigInt(obj)) {\n        return markBoxed(inspect(bigIntValueOf.call(obj)));\n    }\n    if (isBoolean(obj)) {\n        return markBoxed(booleanValueOf.call(obj));\n    }\n    if (isString(obj)) {\n        return markBoxed(inspect(String(obj)));\n    }\n    // note: in IE 8, sometimes `global !== window` but both are the prototypes of each other\n    /* eslint-env browser */\n    if (typeof window !== 'undefined' && obj === window) {\n        return '{ [object Window] }';\n    }\n    if (obj === global) {\n        return '{ [object globalThis] }';\n    }\n    if (!isDate(obj) && !isRegExp(obj)) {\n        var ys = arrObjKeys(obj, inspect);\n        var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n        var protoTag = obj instanceof Object ? '' : 'null prototype';\n        var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n        var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n        var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n        if (ys.length === 0) { return tag + '{}'; }\n        if (indent) {\n            return tag + '{' + indentedJoin(ys, indent) + '}';\n        }\n        return tag + '{ ' + $join.call(ys, ', ') + ' }';\n    }\n    return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n    var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n    return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n    return $replace.call(String(s), /\"/g, '&quot;');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n    if (hasShammedSymbols) {\n        return obj && typeof obj === 'object' && obj instanceof Symbol;\n    }\n    if (typeof obj === 'symbol') {\n        return true;\n    }\n    if (!obj || typeof obj !== 'object' || !symToString) {\n        return false;\n    }\n    try {\n        symToString.call(obj);\n        return true;\n    } catch (e) {}\n    return false;\n}\n\nfunction isBigInt(obj) {\n    if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n        return false;\n    }\n    try {\n        bigIntValueOf.call(obj);\n        return true;\n    } catch (e) {}\n    return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n    return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n    return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n    if (f.name) { return f.name; }\n    var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n    if (m) { return m[1]; }\n    return null;\n}\n\nfunction indexOf(xs, x) {\n    if (xs.indexOf) { return xs.indexOf(x); }\n    for (var i = 0, l = xs.length; i < l; i++) {\n        if (xs[i] === x) { return i; }\n    }\n    return -1;\n}\n\nfunction isMap(x) {\n    if (!mapSize || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        mapSize.call(x);\n        try {\n            setSize.call(x);\n        } catch (s) {\n            return true;\n        }\n        return x instanceof Map; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isWeakMap(x) {\n    if (!weakMapHas || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        weakMapHas.call(x, weakMapHas);\n        try {\n            weakSetHas.call(x, weakSetHas);\n        } catch (s) {\n            return true;\n        }\n        return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isWeakRef(x) {\n    if (!weakRefDeref || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        weakRefDeref.call(x);\n        return true;\n    } catch (e) {}\n    return false;\n}\n\nfunction isSet(x) {\n    if (!setSize || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        setSize.call(x);\n        try {\n            mapSize.call(x);\n        } catch (m) {\n            return true;\n        }\n        return x instanceof Set; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isWeakSet(x) {\n    if (!weakSetHas || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        weakSetHas.call(x, weakSetHas);\n        try {\n            weakMapHas.call(x, weakMapHas);\n        } catch (s) {\n            return true;\n        }\n        return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isElement(x) {\n    if (!x || typeof x !== 'object') { return false; }\n    if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n        return true;\n    }\n    return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n    if (str.length > opts.maxStringLength) {\n        var remaining = str.length - opts.maxStringLength;\n        var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n        return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n    }\n    // eslint-disable-next-line no-control-regex\n    var s = $replace.call($replace.call(str, /(['\\\\])/g, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n    return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n    var n = c.charCodeAt(0);\n    var x = {\n        8: 'b',\n        9: 't',\n        10: 'n',\n        12: 'f',\n        13: 'r'\n    }[n];\n    if (x) { return '\\\\' + x; }\n    return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n    return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n    return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n    var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n    return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n    for (var i = 0; i < xs.length; i++) {\n        if (indexOf(xs[i], '\\n') >= 0) {\n            return false;\n        }\n    }\n    return true;\n}\n\nfunction getIndent(opts, depth) {\n    var baseIndent;\n    if (opts.indent === '\\t') {\n        baseIndent = '\\t';\n    } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n        baseIndent = $join.call(Array(opts.indent + 1), ' ');\n    } else {\n        return null;\n    }\n    return {\n        base: baseIndent,\n        prev: $join.call(Array(depth + 1), baseIndent)\n    };\n}\n\nfunction indentedJoin(xs, indent) {\n    if (xs.length === 0) { return ''; }\n    var lineJoiner = '\\n' + indent.prev + indent.base;\n    return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n    var isArr = isArray(obj);\n    var xs = [];\n    if (isArr) {\n        xs.length = obj.length;\n        for (var i = 0; i < obj.length; i++) {\n            xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n        }\n    }\n    var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n    var symMap;\n    if (hasShammedSymbols) {\n        symMap = {};\n        for (var k = 0; k < syms.length; k++) {\n            symMap['$' + syms[k]] = syms[k];\n        }\n    }\n\n    for (var key in obj) { // eslint-disable-line no-restricted-syntax\n        if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n        if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n        if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n            // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n            continue; // eslint-disable-line no-restricted-syntax, no-continue\n        } else if ($test.call(/[^\\w$]/, key)) {\n            xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n        } else {\n            xs.push(key + ': ' + inspect(obj[key], obj));\n        }\n    }\n    if (typeof gOPS === 'function') {\n        for (var j = 0; j < syms.length; j++) {\n            if (isEnumerable.call(obj, syms[j])) {\n                xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n            }\n        }\n    }\n    return xs;\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/**\n * @typedef {typeof Feature|typeof import(\"./render/Feature.js\").default} FeatureClass\n */\n\n/**\n * @typedef {Feature|import(\"./render/Feature.js\").default} FeatureLike\n */\n\n/***\n * @template Return\n * @typedef {import(\"./Observable\").OnSignature<import(\"./Observable\").EventTypes, import(\"./events/Event.js\").default, Return> &\n *   import(\"./Observable\").OnSignature<import(\"./ObjectEventType\").Types|'change:geometry', import(\"./Object\").ObjectEvent, Return> &\n *   import(\"./Observable\").CombinedOnSignature<import(\"./Observable\").EventTypes|import(\"./ObjectEventType\").Types\n *     |'change:geometry', Return>} FeatureOnSignature\n */\n\n/***\n * @template Geometry\n * @typedef {Object<string, *> & { geometry?: Geometry }} ObjectWithGeometry\n */\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.js';\n * import Polygon from 'ol/geom/Polygon.js';\n * import Point from 'ol/geom/Point.js';\n *\n * const 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 * const 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 * const point = feature.getGeometry();\n * ```\n *\n * @api\n * @template {import(\"./geom/Geometry.js\").default} [Geometry=import(\"./geom/Geometry.js\").default]\n */\nclass Feature extends BaseObject {\n  /**\n   * @param {Geometry|ObjectWithGeometry<Geometry>} [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  constructor(geometryOrProperties) {\n    super();\n\n    /***\n     * @type {FeatureOnSignature<import(\"./events\").EventsKey>}\n     */\n    this.on;\n\n    /***\n     * @type {FeatureOnSignature<import(\"./events\").EventsKey>}\n     */\n    this.once;\n\n    /***\n     * @type {FeatureOnSignature<void>}\n     */\n    this.un;\n\n    /**\n     * @private\n     * @type {number|string|undefined}\n     */\n    this.id_ = undefined;\n\n    /**\n     * @type {string}\n     * @private\n     */\n    this.geometryName_ = 'geometry';\n\n    /**\n     * User provided style.\n     * @private\n     * @type {import(\"./style/Style.js\").StyleLike}\n     */\n    this.style_ = null;\n\n    /**\n     * @private\n     * @type {import(\"./style/Style.js\").StyleFunction|undefined}\n     */\n    this.styleFunction_ = undefined;\n\n    /**\n     * @private\n     * @type {?import(\"./events.js\").EventsKey}\n     */\n    this.geometryChangeKey_ = null;\n\n    this.addChangeListener(this.geometryName_, this.handleGeometryChanged_);\n\n    if (geometryOrProperties) {\n      if (\n        typeof (\n          /** @type {?} */ (geometryOrProperties).getSimplifiedGeometry\n        ) === 'function'\n      ) {\n        const geometry = /** @type {Geometry} */ (geometryOrProperties);\n        this.setGeometry(geometry);\n      } else {\n        /** @type {Object<string, *>} */\n        const properties = geometryOrProperties;\n        this.setProperties(properties);\n      }\n    }\n  }\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<Geometry>} The clone.\n   * @api\n   */\n  clone() {\n    const clone = /** @type {Feature<Geometry>} */ (\n      new Feature(this.hasProperties() ? this.getProperties() : null)\n    );\n    clone.setGeometryName(this.getGeometryName());\n    const geometry = this.getGeometry();\n    if (geometry) {\n      clone.setGeometry(/** @type {Geometry} */ (geometry.clone()));\n    }\n    const style = this.getStyle();\n    if (style) {\n      clone.setStyle(style);\n    }\n    return clone;\n  }\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  getGeometry() {\n    return /** @type {Geometry|undefined} */ (this.get(this.geometryName_));\n  }\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  getId() {\n    return this.id_;\n  }\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  getGeometryName() {\n    return this.geometryName_;\n  }\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  getStyle() {\n    return this.style_;\n  }\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  getStyleFunction() {\n    return this.styleFunction_;\n  }\n\n  /**\n   * @private\n   */\n  handleGeometryChange_() {\n    this.changed();\n  }\n\n  /**\n   * @private\n   */\n  handleGeometryChanged_() {\n    if (this.geometryChangeKey_) {\n      unlistenByKey(this.geometryChangeKey_);\n      this.geometryChangeKey_ = null;\n    }\n    const geometry = this.getGeometry();\n    if (geometry) {\n      this.geometryChangeKey_ = listen(\n        geometry,\n        EventType.CHANGE,\n        this.handleGeometryChange_,\n        this\n      );\n    }\n    this.changed();\n  }\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  setGeometry(geometry) {\n    this.set(this.geometryName_, geometry);\n  }\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} [style] Style for this feature.\n   * @api\n   * @fires module:ol/events/Event~BaseEvent#event:change\n   */\n  setStyle(style) {\n    this.style_ = style;\n    this.styleFunction_ = !style ? undefined : createStyleFunction(style);\n    this.changed();\n  }\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  setId(id) {\n    this.id_ = id;\n    this.changed();\n  }\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  setGeometryName(name) {\n    this.removeChangeListener(this.geometryName_, this.handleGeometryChanged_);\n    this.geometryName_ = name;\n    this.addChangeListener(this.geometryName_, this.handleGeometryChanged_);\n    this.handleGeometryChanged_();\n  }\n}\n\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>|!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  /**\n   * @type {Array<import(\"./style/Style.js\").default>}\n   */\n  let styles;\n  if (Array.isArray(obj)) {\n    styles = obj;\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    const style = /** @type {import(\"./style/Style.js\").default} */ (obj);\n    styles = [style];\n  }\n  return function () {\n    return styles;\n  };\n}\nexport default Feature;\n","/**\n * @module ol/AssertionError\n */\n\n/** @type {Object<number, string>} */\nconst messages = {\n  1: 'The view center is not defined',\n  2: 'The view resolution is not defined',\n  3: 'The view rotation is not defined',\n  4: '`image` and `src` cannot be provided at the same time',\n  5: '`imgSize` must be set when `image` is provided',\n  7: '`format` must be set when `url` is set',\n  8: 'Unknown `serverType` configured',\n  9: '`url` must be configured or set using `#setUrl()`',\n  10: 'The default `geometryFunction` can only handle `Point` geometries',\n  11: '`options.featureTypes` must be an Array',\n  12: '`options.geometryName` must also be provided when `options.bbox` is set',\n  13: 'Invalid corner',\n  14: 'Invalid color',\n  15: 'Tried to get a value for a key that does not exist in the cache',\n  16: 'Tried to set a value for a key that is used already',\n  17: '`resolutions` must be sorted in descending order',\n  18: 'Either `origin` or `origins` must be configured, never both',\n  19: 'Number of `tileSizes` and `resolutions` must be equal',\n  20: 'Number of `origins` and `resolutions` must be equal',\n  22: 'Either `tileSize` or `tileSizes` must be configured, never both',\n  24: 'Invalid extent or geometry provided as `geometry`',\n  25: 'Cannot fit empty extent provided as `geometry`',\n  26: 'Features must have an id set',\n  27: 'Features must have an id set',\n  28: '`renderMode` must be `\"hybrid\"` or `\"vector\"`',\n  30: 'The passed `feature` was already added to the source',\n  31: 'Tried to enqueue an `element` that was already added to the queue',\n  32: 'Transformation matrix cannot be inverted',\n  33: 'Invalid units',\n  34: 'Invalid geometry layout',\n  36: 'Unknown SRS type',\n  37: 'Unknown geometry type found',\n  38: '`styleMapValue` has an unknown type',\n  39: 'Unknown geometry type',\n  40: 'Expected `feature` to have a geometry',\n  41: 'Expected an `ol/style/Style` or an array of `ol/style/Style.js`',\n  42: 'Question unknown, the answer is 42',\n  43: 'Expected `layers` to be an array or a `Collection`',\n  47: 'Expected `controls` to be an array or an `ol/Collection`',\n  48: 'Expected `interactions` to be an array or an `ol/Collection`',\n  49: 'Expected `overlays` to be an array or an `ol/Collection`',\n  50: '`options.featureTypes` should be an Array',\n  51: 'Either `url` or `tileJSON` options must be provided',\n  52: 'Unknown `serverType` configured',\n  53: 'Unknown `tierSizeCalculation` configured',\n  55: 'The {-y} placeholder requires a tile grid with extent',\n  56: 'mapBrowserEvent must originate from a pointer event',\n  57: 'At least 2 conditions are required',\n  59: 'Invalid command found in the PBF',\n  60: 'Missing or invalid `size`',\n  61: 'Cannot determine IIIF Image API version from provided image information JSON',\n  62: 'A `WebGLArrayBuffer` must either be of type `ELEMENT_ARRAY_BUFFER` or `ARRAY_BUFFER`',\n  64: 'Layer opacity must be a number',\n  66: '`forEachFeatureAtCoordinate` cannot be used on a WebGL layer if the hit detection logic has not been enabled. This is done by providing adequate shaders using the `hitVertexShader` and `hitFragmentShader` properties of `WebGLPointsLayerRenderer`',\n  67: 'A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both',\n  68: 'A VectorTile source can only be rendered if it has a projection compatible with the view projection',\n  69: '`width` or `height` cannot be provided together with `scale`',\n};\n\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 */\nclass AssertionError extends Error {\n  /**\n   * @param {number} code Error code.\n   */\n  constructor(code) {\n    const message = messages[code];\n\n    super(message);\n\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     * @deprecated ol/AssertionError and error codes will be removed in v8.0\n     * @api\n     */\n    this.code = code;\n\n    /**\n     * @type {string}\n     */\n    this.name = 'AssertionError';\n\n    // Re-assign message, see https://github.com/Rich-Harris/buble/issues/40\n    this.message = message;\n  }\n}\n\nexport default AssertionError;\n"],"sourceRoot":""}