|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761177621776317764177651776617767177681776917770177711777217773177741777517776177771777817779177801778117782177831778417785177861778717788177891779017791177921779317794177951779617797177981779917800178011780217803178041780517806178071780817809178101781117812178131781417815178161781717818178191782017821178221782317824178251782617827178281782917830178311783217833178341783517836178371783817839178401784117842178431784417845178461784717848178491785017851178521785317854178551785617857178581785917860178611786217863178641786517866178671786817869178701787117872178731787417875178761787717878178791788017881178821788317884178851788617887178881788917890178911789217893178941789517896178971789817899179001790117902179031790417905179061790717908179091791017911179121791317914179151791617917179181791917920179211792217923179241792517926179271792817929179301793117932179331793417935179361793717938179391794017941179421794317944179451794617947179481794917950179511795217953179541795517956179571795817959179601796117962179631796417965179661796717968179691797017971179721797317974179751797617977179781797917980179811798217983179841798517986179871798817989179901799117992179931799417995179961799717998179991800018001180021800318004180051800618007180081800918010180111801218013180141801518016180171801818019180201802118022180231802418025180261802718028180291803018031180321803318034180351803618037180381803918040180411804218043180441804518046180471804818049180501805118052180531805418055180561805718058180591806018061180621806318064180651806618067180681806918070180711807218073180741807518076180771807818079180801808118082180831808418085180861808718088180891809018091180921809318094180951809618097180981809918100181011810218103181041810518106181071810818109181101811118112181131811418115181161811718118181191812018121181221812318124181251812618127181281812918130181311813218133181341813518136181371813818139181401814118142181431814418145181461814718148181491815018151181521815318154181551815618157181581815918160181611816218163181641816518166181671816818169181701817118172181731817418175181761817718178181791818018181181821818318184181851818618187181881818918190181911819218193181941819518196181971819818199182001820118202182031820418205182061820718208182091821018211182121821318214182151821618217182181821918220182211822218223182241822518226182271822818229182301823118232182331823418235182361823718238182391824018241182421824318244182451824618247182481824918250182511825218253182541825518256182571825818259182601826118262182631826418265182661826718268182691827018271182721827318274182751827618277182781827918280182811828218283182841828518286182871828818289182901829118292182931829418295182961829718298182991830018301183021830318304183051830618307183081830918310183111831218313183141831518316183171831818319183201832118322183231832418325183261832718328183291833018331183321833318334183351833618337183381833918340183411834218343183441834518346183471834818349183501835118352183531835418355183561835718358183591836018361183621836318364183651836618367183681836918370183711837218373183741837518376183771837818379183801838118382183831838418385183861838718388183891839018391183921839318394183951839618397183981839918400184011840218403184041840518406184071840818409184101841118412184131841418415184161841718418184191842018421184221842318424184251842618427184281842918430184311843218433184341843518436184371843818439184401844118442184431844418445184461844718448184491845018451184521845318454184551845618457184581845918460184611846218463184641846518466184671846818469184701847118472184731847418475184761847718478184791848018481184821848318484184851848618487184881848918490184911849218493184941849518496184971849818499185001850118502185031850418505185061850718508185091851018511185121851318514185151851618517185181851918520185211852218523185241852518526185271852818529185301853118532185331853418535185361853718538185391854018541185421854318544185451854618547185481854918550185511855218553185541855518556185571855818559185601856118562185631856418565185661856718568185691857018571185721857318574185751857618577185781857918580185811858218583185841858518586185871858818589185901859118592185931859418595185961859718598185991860018601186021860318604186051860618607186081860918610186111861218613186141861518616186171861818619186201862118622186231862418625186261862718628186291863018631186321863318634186351863618637186381863918640186411864218643186441864518646186471864818649186501865118652186531865418655186561865718658186591866018661186621866318664186651866618667186681866918670186711867218673186741867518676186771867818679186801868118682186831868418685186861868718688186891869018691186921869318694186951869618697186981869918700187011870218703187041870518706187071870818709187101871118712187131871418715187161871718718187191872018721187221872318724187251872618727187281872918730187311873218733187341873518736187371873818739187401874118742187431874418745187461874718748187491875018751187521875318754187551875618757187581875918760187611876218763187641876518766187671876818769187701877118772187731877418775187761877718778187791878018781187821878318784187851878618787187881878918790187911879218793187941879518796187971879818799188001880118802188031880418805188061880718808188091881018811188121881318814188151881618817188181881918820188211882218823188241882518826188271882818829188301883118832188331883418835188361883718838188391884018841188421884318844188451884618847188481884918850188511885218853188541885518856188571885818859188601886118862188631886418865188661886718868188691887018871188721887318874188751887618877188781887918880188811888218883188841888518886188871888818889188901889118892188931889418895188961889718898188991890018901189021890318904189051890618907189081890918910189111891218913189141891518916189171891818919189201892118922189231892418925189261892718928189291893018931189321893318934189351893618937189381893918940189411894218943189441894518946189471894818949189501895118952189531895418955189561895718958189591896018961189621896318964189651896618967189681896918970189711897218973189741897518976189771897818979189801898118982189831898418985189861898718988189891899018991189921899318994189951899618997189981899919000190011900219003190041900519006190071900819009190101901119012190131901419015190161901719018190191902019021190221902319024190251902619027190281902919030190311903219033190341903519036190371903819039190401904119042190431904419045190461904719048190491905019051190521905319054190551905619057190581905919060190611906219063190641906519066190671906819069190701907119072190731907419075190761907719078190791908019081190821908319084190851908619087190881908919090190911909219093190941909519096190971909819099191001910119102191031910419105191061910719108191091911019111191121911319114191151911619117191181911919120191211912219123191241912519126191271912819129191301913119132191331913419135191361913719138191391914019141191421914319144191451914619147191481914919150191511915219153191541915519156191571915819159191601916119162191631916419165191661916719168191691917019171191721917319174191751917619177191781917919180191811918219183191841918519186191871918819189191901919119192191931919419195191961919719198191991920019201192021920319204192051920619207192081920919210192111921219213192141921519216192171921819219192201922119222192231922419225192261922719228192291923019231192321923319234192351923619237192381923919240192411924219243192441924519246192471924819249192501925119252192531925419255192561925719258192591926019261192621926319264192651926619267192681926919270192711927219273192741927519276192771927819279192801928119282192831928419285192861928719288192891929019291192921929319294192951929619297192981929919300193011930219303193041930519306193071930819309193101931119312193131931419315193161931719318193191932019321193221932319324193251932619327193281932919330193311933219333193341933519336193371933819339193401934119342193431934419345193461934719348193491935019351193521935319354193551935619357193581935919360193611936219363193641936519366193671936819369193701937119372193731937419375193761937719378193791938019381193821938319384193851938619387193881938919390193911939219393193941939519396193971939819399194001940119402194031940419405194061940719408194091941019411194121941319414194151941619417194181941919420194211942219423194241942519426194271942819429194301943119432194331943419435194361943719438194391944019441194421944319444194451944619447194481944919450194511945219453194541945519456194571945819459194601946119462194631946419465194661946719468194691947019471194721947319474194751947619477194781947919480194811948219483194841948519486194871948819489194901949119492194931949419495194961949719498194991950019501195021950319504195051950619507195081950919510195111951219513195141951519516195171951819519195201952119522195231952419525195261952719528195291953019531195321953319534195351953619537195381953919540195411954219543195441954519546195471954819549195501955119552195531955419555195561955719558195591956019561195621956319564195651956619567195681956919570195711957219573195741957519576195771957819579195801958119582195831958419585195861958719588195891959019591195921959319594195951959619597195981959919600196011960219603196041960519606196071960819609196101961119612196131961419615196161961719618196191962019621196221962319624196251962619627196281962919630196311963219633196341963519636196371963819639196401964119642196431964419645196461964719648196491965019651196521965319654196551965619657196581965919660196611966219663196641966519666196671966819669196701967119672196731967419675196761967719678196791968019681196821968319684196851968619687196881968919690196911969219693196941969519696196971969819699197001970119702197031970419705197061970719708197091971019711197121971319714197151971619717197181971919720197211972219723197241972519726197271972819729197301973119732197331973419735197361973719738197391974019741197421974319744197451974619747197481974919750197511975219753197541975519756197571975819759197601976119762197631976419765197661976719768197691977019771197721977319774197751977619777197781977919780197811978219783197841978519786197871978819789197901979119792197931979419795197961979719798197991980019801198021980319804198051980619807198081980919810198111981219813198141981519816198171981819819198201982119822198231982419825198261982719828198291983019831198321983319834198351983619837198381983919840198411984219843198441984519846198471984819849198501985119852198531985419855198561985719858198591986019861198621986319864198651986619867198681986919870198711987219873198741987519876198771987819879198801988119882198831988419885198861988719888198891989019891198921989319894198951989619897198981989919900199011990219903199041990519906199071990819909199101991119912199131991419915199161991719918199191992019921199221992319924199251992619927199281992919930199311993219933199341993519936199371993819939199401994119942199431994419945199461994719948199491995019951199521995319954199551995619957199581995919960199611996219963199641996519966199671996819969199701997119972199731997419975199761997719978199791998019981199821998319984199851998619987199881998919990199911999219993199941999519996199971999819999200002000120002200032000420005200062000720008200092001020011200122001320014200152001620017200182001920020200212002220023200242002520026200272002820029200302003120032200332003420035200362003720038200392004020041200422004320044200452004620047200482004920050200512005220053200542005520056200572005820059200602006120062200632006420065200662006720068200692007020071200722007320074200752007620077200782007920080200812008220083200842008520086200872008820089200902009120092200932009420095200962009720098200992010020101201022010320104201052010620107201082010920110201112011220113201142011520116201172011820119201202012120122201232012420125201262012720128201292013020131201322013320134201352013620137201382013920140201412014220143201442014520146201472014820149201502015120152201532015420155201562015720158201592016020161201622016320164201652016620167201682016920170201712017220173201742017520176201772017820179201802018120182201832018420185201862018720188201892019020191201922019320194201952019620197201982019920200202012020220203202042020520206202072020820209202102021120212202132021420215202162021720218202192022020221202222022320224202252022620227202282022920230202312023220233202342023520236202372023820239202402024120242202432024420245202462024720248202492025020251202522025320254202552025620257202582025920260202612026220263202642026520266202672026820269202702027120272202732027420275202762027720278202792028020281202822028320284202852028620287202882028920290202912029220293202942029520296202972029820299203002030120302203032030420305203062030720308203092031020311203122031320314203152031620317203182031920320203212032220323203242032520326203272032820329203302033120332203332033420335203362033720338203392034020341203422034320344203452034620347203482034920350203512035220353203542035520356203572035820359203602036120362203632036420365203662036720368203692037020371203722037320374203752037620377203782037920380203812038220383203842038520386203872038820389203902039120392203932039420395203962039720398203992040020401204022040320404204052040620407204082040920410204112041220413204142041520416204172041820419204202042120422204232042420425204262042720428204292043020431204322043320434204352043620437204382043920440204412044220443204442044520446204472044820449204502045120452204532045420455204562045720458204592046020461204622046320464204652046620467204682046920470204712047220473204742047520476204772047820479204802048120482204832048420485204862048720488204892049020491204922049320494204952049620497204982049920500205012050220503205042050520506205072050820509205102051120512205132051420515205162051720518205192052020521205222052320524205252052620527205282052920530205312053220533205342053520536205372053820539205402054120542205432054420545205462054720548205492055020551205522055320554205552055620557205582055920560205612056220563205642056520566205672056820569205702057120572205732057420575205762057720578205792058020581205822058320584205852058620587205882058920590205912059220593205942059520596205972059820599206002060120602206032060420605206062060720608206092061020611206122061320614206152061620617206182061920620206212062220623206242062520626206272062820629206302063120632206332063420635206362063720638206392064020641206422064320644206452064620647206482064920650206512065220653206542065520656206572065820659206602066120662206632066420665206662066720668206692067020671206722067320674206752067620677206782067920680206812068220683206842068520686206872068820689206902069120692206932069420695206962069720698206992070020701207022070320704207052070620707207082070920710207112071220713207142071520716207172071820719207202072120722207232072420725207262072720728207292073020731207322073320734207352073620737207382073920740207412074220743207442074520746207472074820749207502075120752207532075420755207562075720758207592076020761207622076320764207652076620767207682076920770207712077220773207742077520776207772077820779207802078120782207832078420785207862078720788207892079020791207922079320794207952079620797207982079920800208012080220803208042080520806208072080820809208102081120812208132081420815208162081720818208192082020821208222082320824208252082620827208282082920830208312083220833208342083520836208372083820839208402084120842208432084420845208462084720848208492085020851208522085320854208552085620857208582085920860208612086220863208642086520866208672086820869208702087120872208732087420875208762087720878208792088020881208822088320884208852088620887208882088920890208912089220893208942089520896208972089820899209002090120902209032090420905209062090720908209092091020911209122091320914209152091620917209182091920920209212092220923209242092520926209272092820929209302093120932209332093420935209362093720938209392094020941209422094320944209452094620947209482094920950209512095220953209542095520956209572095820959209602096120962209632096420965209662096720968209692097020971209722097320974209752097620977209782097920980209812098220983209842098520986209872098820989209902099120992209932099420995209962099720998209992100021001210022100321004210052100621007210082100921010210112101221013210142101521016210172101821019210202102121022210232102421025210262102721028210292103021031210322103321034210352103621037210382103921040210412104221043210442104521046210472104821049210502105121052210532105421055210562105721058210592106021061210622106321064210652106621067210682106921070210712107221073210742107521076210772107821079210802108121082210832108421085210862108721088210892109021091210922109321094210952109621097210982109921100211012110221103211042110521106211072110821109211102111121112211132111421115211162111721118211192112021121211222112321124211252112621127211282112921130211312113221133211342113521136211372113821139211402114121142211432114421145211462114721148211492115021151211522115321154211552115621157211582115921160211612116221163211642116521166211672116821169211702117121172211732117421175211762117721178211792118021181211822118321184211852118621187211882118921190211912119221193211942119521196211972119821199212002120121202212032120421205212062120721208212092121021211212122121321214212152121621217212182121921220212212122221223212242122521226212272122821229212302123121232212332123421235212362123721238212392124021241212422124321244212452124621247212482124921250212512125221253212542125521256212572125821259212602126121262212632126421265212662126721268212692127021271212722127321274212752127621277212782127921280212812128221283212842128521286212872128821289212902129121292212932129421295212962129721298212992130021301213022130321304213052130621307213082130921310213112131221313213142131521316213172131821319213202132121322213232132421325213262132721328213292133021331213322133321334213352133621337213382133921340213412134221343213442134521346213472134821349213502135121352213532135421355213562135721358213592136021361213622136321364213652136621367213682136921370213712137221373213742137521376213772137821379213802138121382213832138421385213862138721388213892139021391213922139321394213952139621397213982139921400214012140221403214042140521406214072140821409214102141121412214132141421415214162141721418214192142021421214222142321424214252142621427214282142921430214312143221433214342143521436214372143821439214402144121442214432144421445214462144721448214492145021451214522145321454214552145621457214582145921460214612146221463214642146521466214672146821469214702147121472214732147421475214762147721478214792148021481214822148321484214852148621487214882148921490214912149221493214942149521496214972149821499215002150121502215032150421505215062150721508215092151021511215122151321514215152151621517215182151921520215212152221523215242152521526215272152821529215302153121532215332153421535215362153721538215392154021541215422154321544215452154621547215482154921550215512155221553215542155521556215572155821559215602156121562215632156421565215662156721568215692157021571215722157321574215752157621577215782157921580215812158221583215842158521586215872158821589215902159121592215932159421595215962159721598215992160021601216022160321604216052160621607216082160921610216112161221613216142161521616216172161821619216202162121622216232162421625216262162721628216292163021631216322163321634216352163621637216382163921640216412164221643216442164521646216472164821649216502165121652216532165421655216562165721658216592166021661216622166321664216652166621667216682166921670216712167221673216742167521676216772167821679216802168121682216832168421685216862168721688216892169021691216922169321694216952169621697216982169921700217012170221703217042170521706217072170821709217102171121712217132171421715217162171721718217192172021721217222172321724217252172621727217282172921730217312173221733217342173521736217372173821739217402174121742217432174421745217462174721748217492175021751217522175321754217552175621757217582175921760217612176221763217642176521766217672176821769217702177121772217732177421775217762177721778217792178021781217822178321784217852178621787217882178921790217912179221793217942179521796217972179821799218002180121802218032180421805218062180721808218092181021811218122181321814218152181621817218182181921820218212182221823218242182521826218272182821829218302183121832218332183421835218362183721838218392184021841218422184321844218452184621847218482184921850218512185221853218542185521856218572185821859218602186121862218632186421865218662186721868218692187021871218722187321874218752187621877218782187921880218812188221883218842188521886218872188821889218902189121892218932189421895218962189721898218992190021901219022190321904219052190621907219082190921910219112191221913219142191521916219172191821919219202192121922219232192421925219262192721928219292193021931219322193321934219352193621937219382193921940219412194221943219442194521946219472194821949219502195121952219532195421955219562195721958219592196021961219622196321964219652196621967219682196921970219712197221973219742197521976219772197821979219802198121982219832198421985219862198721988219892199021991219922199321994219952199621997219982199922000220012200222003220042200522006220072200822009220102201122012220132201422015220162201722018220192202022021220222202322024220252202622027220282202922030220312203222033220342203522036220372203822039220402204122042220432204422045220462204722048220492205022051220522205322054220552205622057220582205922060220612206222063220642206522066220672206822069220702207122072220732207422075220762207722078220792208022081220822208322084220852208622087220882208922090220912209222093220942209522096220972209822099221002210122102221032210422105221062210722108221092211022111221122211322114221152211622117221182211922120221212212222123221242212522126221272212822129221302213122132221332213422135221362213722138221392214022141221422214322144221452214622147221482214922150221512215222153221542215522156221572215822159221602216122162221632216422165221662216722168221692217022171221722217322174221752217622177221782217922180221812218222183221842218522186221872218822189221902219122192221932219422195221962219722198221992220022201222022220322204222052220622207222082220922210222112221222213222142221522216222172221822219222202222122222222232222422225222262222722228222292223022231222322223322234222352223622237222382223922240222412224222243222442224522246222472224822249222502225122252222532225422255222562225722258222592226022261222622226322264222652226622267222682226922270222712227222273222742227522276222772227822279222802228122282222832228422285222862228722288222892229022291222922229322294222952229622297222982229922300223012230222303223042230522306223072230822309223102231122312223132231422315223162231722318223192232022321223222232322324223252232622327223282232922330223312233222333223342233522336223372233822339223402234122342223432234422345223462234722348223492235022351223522235322354223552235622357223582235922360223612236222363223642236522366223672236822369223702237122372223732237422375223762237722378223792238022381223822238322384223852238622387223882238922390223912239222393223942239522396223972239822399224002240122402224032240422405224062240722408224092241022411224122241322414224152241622417224182241922420224212242222423224242242522426224272242822429224302243122432224332243422435224362243722438224392244022441224422244322444224452244622447224482244922450224512245222453224542245522456224572245822459224602246122462224632246422465224662246722468224692247022471224722247322474224752247622477224782247922480224812248222483224842248522486224872248822489224902249122492224932249422495224962249722498224992250022501225022250322504225052250622507225082250922510225112251222513225142251522516225172251822519225202252122522225232252422525225262252722528225292253022531225322253322534225352253622537225382253922540225412254222543225442254522546225472254822549225502255122552225532255422555225562255722558225592256022561225622256322564225652256622567225682256922570225712257222573225742257522576225772257822579225802258122582225832258422585225862258722588225892259022591225922259322594225952259622597225982259922600226012260222603226042260522606226072260822609226102261122612226132261422615226162261722618226192262022621226222262322624226252262622627226282262922630226312263222633226342263522636226372263822639226402264122642226432264422645226462264722648226492265022651226522265322654226552265622657226582265922660226612266222663226642266522666226672266822669226702267122672226732267422675226762267722678226792268022681226822268322684226852268622687226882268922690226912269222693226942269522696226972269822699227002270122702227032270422705227062270722708227092271022711227122271322714227152271622717227182271922720227212272222723227242272522726227272272822729227302273122732227332273422735227362273722738227392274022741227422274322744227452274622747227482274922750227512275222753227542275522756227572275822759227602276122762227632276422765227662276722768227692277022771227722277322774227752277622777227782277922780227812278222783227842278522786227872278822789227902279122792227932279422795227962279722798227992280022801228022280322804228052280622807228082280922810228112281222813228142281522816228172281822819228202282122822228232282422825228262282722828228292283022831228322283322834228352283622837228382283922840228412284222843228442284522846228472284822849228502285122852228532285422855228562285722858228592286022861228622286322864228652286622867228682286922870228712287222873228742287522876228772287822879228802288122882228832288422885228862288722888228892289022891228922289322894228952289622897228982289922900229012290222903229042290522906229072290822909229102291122912229132291422915229162291722918229192292022921229222292322924229252292622927229282292922930229312293222933229342293522936229372293822939229402294122942229432294422945229462294722948229492295022951229522295322954229552295622957229582295922960229612296222963229642296522966229672296822969229702297122972229732297422975229762297722978229792298022981229822298322984229852298622987229882298922990229912299222993229942299522996229972299822999230002300123002230032300423005230062300723008230092301023011230122301323014230152301623017230182301923020230212302223023230242302523026230272302823029230302303123032230332303423035230362303723038230392304023041230422304323044230452304623047230482304923050230512305223053230542305523056230572305823059230602306123062230632306423065230662306723068230692307023071230722307323074230752307623077230782307923080230812308223083230842308523086230872308823089230902309123092230932309423095230962309723098230992310023101231022310323104231052310623107231082310923110231112311223113231142311523116231172311823119231202312123122231232312423125231262312723128231292313023131231322313323134231352313623137231382313923140231412314223143231442314523146231472314823149231502315123152231532315423155231562315723158231592316023161231622316323164231652316623167231682316923170231712317223173231742317523176231772317823179231802318123182231832318423185231862318723188231892319023191231922319323194231952319623197231982319923200232012320223203232042320523206232072320823209232102321123212232132321423215232162321723218232192322023221232222322323224232252322623227232282322923230232312323223233232342323523236232372323823239232402324123242232432324423245232462324723248232492325023251232522325323254232552325623257232582325923260232612326223263232642326523266232672326823269232702327123272232732327423275232762327723278232792328023281232822328323284232852328623287232882328923290232912329223293232942329523296232972329823299233002330123302233032330423305233062330723308233092331023311233122331323314233152331623317233182331923320233212332223323233242332523326233272332823329233302333123332233332333423335233362333723338233392334023341233422334323344233452334623347233482334923350233512335223353233542335523356233572335823359233602336123362233632336423365233662336723368233692337023371233722337323374233752337623377233782337923380233812338223383233842338523386233872338823389233902339123392233932339423395233962339723398233992340023401234022340323404234052340623407234082340923410234112341223413234142341523416234172341823419234202342123422234232342423425234262342723428234292343023431234322343323434234352343623437234382343923440234412344223443234442344523446234472344823449234502345123452234532345423455234562345723458234592346023461234622346323464234652346623467234682346923470234712347223473234742347523476234772347823479234802348123482234832348423485234862348723488234892349023491234922349323494234952349623497234982349923500235012350223503235042350523506235072350823509235102351123512235132351423515235162351723518235192352023521235222352323524235252352623527235282352923530235312353223533235342353523536235372353823539235402354123542235432354423545235462354723548235492355023551235522355323554235552355623557235582355923560235612356223563235642356523566235672356823569235702357123572235732357423575235762357723578235792358023581235822358323584235852358623587235882358923590235912359223593235942359523596235972359823599236002360123602236032360423605236062360723608236092361023611236122361323614236152361623617236182361923620236212362223623236242362523626236272362823629236302363123632236332363423635236362363723638236392364023641236422364323644236452364623647236482364923650236512365223653236542365523656236572365823659236602366123662236632366423665236662366723668236692367023671236722367323674236752367623677236782367923680236812368223683236842368523686236872368823689236902369123692236932369423695236962369723698236992370023701237022370323704237052370623707237082370923710237112371223713237142371523716237172371823719237202372123722237232372423725237262372723728237292373023731237322373323734237352373623737237382373923740237412374223743237442374523746237472374823749237502375123752237532375423755237562375723758237592376023761237622376323764237652376623767237682376923770237712377223773237742377523776237772377823779237802378123782237832378423785237862378723788237892379023791237922379323794237952379623797237982379923800238012380223803238042380523806238072380823809238102381123812238132381423815238162381723818238192382023821238222382323824238252382623827238282382923830238312383223833238342383523836238372383823839238402384123842238432384423845238462384723848238492385023851238522385323854238552385623857238582385923860238612386223863238642386523866238672386823869238702387123872238732387423875238762387723878238792388023881238822388323884238852388623887238882388923890238912389223893238942389523896238972389823899239002390123902239032390423905239062390723908239092391023911239122391323914239152391623917239182391923920239212392223923239242392523926239272392823929239302393123932239332393423935239362393723938239392394023941239422394323944239452394623947239482394923950239512395223953239542395523956239572395823959239602396123962239632396423965239662396723968239692397023971239722397323974239752397623977239782397923980239812398223983239842398523986239872398823989239902399123992239932399423995239962399723998239992400024001240022400324004240052400624007240082400924010240112401224013240142401524016240172401824019240202402124022240232402424025240262402724028240292403024031240322403324034240352403624037240382403924040240412404224043240442404524046240472404824049240502405124052240532405424055240562405724058240592406024061240622406324064240652406624067240682406924070240712407224073240742407524076240772407824079240802408124082240832408424085240862408724088240892409024091240922409324094240952409624097240982409924100241012410224103241042410524106241072410824109241102411124112241132411424115241162411724118241192412024121241222412324124241252412624127241282412924130241312413224133241342413524136241372413824139241402414124142241432414424145241462414724148241492415024151241522415324154241552415624157241582415924160241612416224163241642416524166241672416824169241702417124172241732417424175241762417724178241792418024181241822418324184241852418624187241882418924190241912419224193241942419524196241972419824199242002420124202242032420424205242062420724208242092421024211242122421324214242152421624217242182421924220242212422224223242242422524226242272422824229242302423124232242332423424235242362423724238242392424024241242422424324244242452424624247242482424924250242512425224253242542425524256242572425824259242602426124262242632426424265242662426724268242692427024271242722427324274242752427624277242782427924280242812428224283242842428524286242872428824289242902429124292242932429424295242962429724298242992430024301243022430324304243052430624307243082430924310243112431224313243142431524316243172431824319243202432124322243232432424325243262432724328243292433024331243322433324334243352433624337243382433924340243412434224343243442434524346243472434824349243502435124352243532435424355243562435724358243592436024361243622436324364243652436624367243682436924370243712437224373243742437524376243772437824379243802438124382243832438424385243862438724388243892439024391243922439324394243952439624397243982439924400244012440224403244042440524406244072440824409244102441124412244132441424415244162441724418244192442024421244222442324424244252442624427244282442924430244312443224433244342443524436244372443824439244402444124442244432444424445244462444724448244492445024451244522445324454244552445624457244582445924460244612446224463244642446524466244672446824469244702447124472244732447424475244762447724478244792448024481244822448324484244852448624487244882448924490244912449224493244942449524496244972449824499245002450124502245032450424505245062450724508245092451024511245122451324514245152451624517245182451924520245212452224523245242452524526245272452824529245302453124532245332453424535245362453724538245392454024541245422454324544245452454624547245482454924550245512455224553245542455524556245572455824559245602456124562245632456424565245662456724568245692457024571245722457324574245752457624577245782457924580245812458224583245842458524586245872458824589245902459124592245932459424595245962459724598245992460024601246022460324604246052460624607246082460924610246112461224613246142461524616246172461824619246202462124622246232462424625246262462724628246292463024631246322463324634246352463624637246382463924640246412464224643246442464524646246472464824649246502465124652246532465424655246562465724658246592466024661246622466324664246652466624667246682466924670246712467224673246742467524676246772467824679246802468124682246832468424685246862468724688246892469024691246922469324694246952469624697246982469924700247012470224703247042470524706247072470824709247102471124712247132471424715247162471724718247192472024721247222472324724247252472624727247282472924730247312473224733247342473524736247372473824739247402474124742247432474424745247462474724748247492475024751247522475324754247552475624757247582475924760247612476224763247642476524766247672476824769247702477124772247732477424775247762477724778247792478024781247822478324784247852478624787247882478924790247912479224793247942479524796247972479824799248002480124802248032480424805248062480724808248092481024811248122481324814248152481624817248182481924820248212482224823248242482524826248272482824829248302483124832248332483424835248362483724838248392484024841248422484324844248452484624847248482484924850248512485224853248542485524856248572485824859248602486124862248632486424865248662486724868248692487024871248722487324874248752487624877248782487924880248812488224883248842488524886248872488824889248902489124892248932489424895248962489724898248992490024901249022490324904249052490624907249082490924910249112491224913249142491524916249172491824919249202492124922249232492424925249262492724928249292493024931249322493324934249352493624937249382493924940249412494224943249442494524946249472494824949249502495124952249532495424955249562495724958249592496024961249622496324964249652496624967249682496924970249712497224973249742497524976249772497824979249802498124982249832498424985249862498724988249892499024991249922499324994249952499624997249982499925000250012500225003250042500525006250072500825009250102501125012250132501425015250162501725018250192502025021250222502325024250252502625027250282502925030250312503225033250342503525036250372503825039250402504125042250432504425045250462504725048250492505025051250522505325054250552505625057250582505925060250612506225063250642506525066250672506825069250702507125072250732507425075250762507725078250792508025081250822508325084250852508625087250882508925090250912509225093250942509525096250972509825099251002510125102251032510425105251062510725108251092511025111251122511325114251152511625117251182511925120251212512225123251242512525126251272512825129251302513125132251332513425135251362513725138251392514025141251422514325144251452514625147251482514925150251512515225153251542515525156251572515825159251602516125162251632516425165251662516725168251692517025171251722517325174251752517625177251782517925180251812518225183251842518525186251872518825189251902519125192251932519425195251962519725198251992520025201252022520325204252052520625207252082520925210252112521225213252142521525216252172521825219252202522125222252232522425225252262522725228252292523025231252322523325234252352523625237252382523925240252412524225243252442524525246252472524825249252502525125252252532525425255252562525725258252592526025261252622526325264252652526625267252682526925270252712527225273252742527525276252772527825279252802528125282252832528425285252862528725288252892529025291252922529325294252952529625297252982529925300253012530225303253042530525306253072530825309253102531125312253132531425315253162531725318253192532025321253222532325324253252532625327253282532925330253312533225333253342533525336253372533825339253402534125342253432534425345253462534725348253492535025351253522535325354253552535625357253582535925360253612536225363253642536525366253672536825369253702537125372253732537425375253762537725378253792538025381253822538325384253852538625387253882538925390253912539225393253942539525396253972539825399254002540125402254032540425405254062540725408254092541025411254122541325414254152541625417254182541925420254212542225423254242542525426254272542825429254302543125432254332543425435254362543725438254392544025441254422544325444254452544625447254482544925450254512545225453254542545525456254572545825459254602546125462254632546425465254662546725468254692547025471254722547325474254752547625477254782547925480254812548225483254842548525486254872548825489254902549125492254932549425495254962549725498254992550025501255022550325504255052550625507255082550925510255112551225513255142551525516255172551825519255202552125522255232552425525255262552725528255292553025531255322553325534255352553625537255382553925540255412554225543255442554525546255472554825549255502555125552255532555425555255562555725558255592556025561255622556325564255652556625567255682556925570255712557225573255742557525576255772557825579255802558125582255832558425585255862558725588255892559025591255922559325594255952559625597255982559925600256012560225603256042560525606256072560825609256102561125612256132561425615256162561725618256192562025621256222562325624256252562625627256282562925630256312563225633256342563525636256372563825639256402564125642256432564425645256462564725648256492565025651256522565325654256552565625657256582565925660256612566225663256642566525666256672566825669256702567125672256732567425675256762567725678256792568025681256822568325684256852568625687256882568925690256912569225693256942569525696256972569825699257002570125702257032570425705257062570725708257092571025711257122571325714257152571625717257182571925720257212572225723257242572525726257272572825729257302573125732257332573425735257362573725738257392574025741257422574325744257452574625747257482574925750257512575225753257542575525756257572575825759257602576125762257632576425765257662576725768257692577025771257722577325774257752577625777257782577925780257812578225783257842578525786257872578825789257902579125792257932579425795257962579725798257992580025801258022580325804258052580625807258082580925810258112581225813258142581525816258172581825819258202582125822258232582425825258262582725828258292583025831258322583325834258352583625837258382583925840258412584225843258442584525846258472584825849258502585125852258532585425855258562585725858258592586025861258622586325864258652586625867258682586925870258712587225873258742587525876258772587825879258802588125882258832588425885258862588725888258892589025891258922589325894258952589625897258982589925900259012590225903259042590525906259072590825909259102591125912259132591425915259162591725918259192592025921259222592325924259252592625927259282592925930259312593225933259342593525936259372593825939259402594125942259432594425945259462594725948259492595025951259522595325954259552595625957259582595925960259612596225963259642596525966259672596825969259702597125972259732597425975259762597725978259792598025981259822598325984259852598625987259882598925990259912599225993259942599525996259972599825999260002600126002260032600426005260062600726008260092601026011260122601326014260152601626017260182601926020260212602226023260242602526026260272602826029260302603126032260332603426035260362603726038260392604026041260422604326044260452604626047260482604926050260512605226053260542605526056260572605826059260602606126062260632606426065260662606726068260692607026071260722607326074260752607626077260782607926080260812608226083260842608526086260872608826089260902609126092260932609426095260962609726098260992610026101261022610326104261052610626107261082610926110261112611226113261142611526116261172611826119261202612126122261232612426125261262612726128261292613026131261322613326134261352613626137261382613926140261412614226143261442614526146261472614826149261502615126152261532615426155261562615726158261592616026161261622616326164261652616626167261682616926170261712617226173261742617526176261772617826179261802618126182261832618426185261862618726188261892619026191261922619326194261952619626197261982619926200262012620226203262042620526206262072620826209262102621126212262132621426215262162621726218262192622026221262222622326224262252622626227262282622926230262312623226233262342623526236262372623826239262402624126242262432624426245262462624726248262492625026251262522625326254262552625626257262582625926260262612626226263262642626526266262672626826269262702627126272262732627426275262762627726278262792628026281262822628326284262852628626287262882628926290262912629226293262942629526296262972629826299263002630126302263032630426305263062630726308263092631026311263122631326314263152631626317263182631926320263212632226323263242632526326263272632826329263302633126332263332633426335263362633726338263392634026341263422634326344263452634626347263482634926350263512635226353263542635526356263572635826359263602636126362263632636426365263662636726368263692637026371263722637326374263752637626377263782637926380263812638226383263842638526386263872638826389263902639126392263932639426395263962639726398263992640026401264022640326404264052640626407264082640926410264112641226413264142641526416264172641826419264202642126422264232642426425264262642726428264292643026431264322643326434264352643626437264382643926440264412644226443264442644526446264472644826449264502645126452264532645426455264562645726458264592646026461264622646326464264652646626467264682646926470264712647226473264742647526476264772647826479264802648126482264832648426485264862648726488264892649026491264922649326494264952649626497264982649926500265012650226503265042650526506265072650826509265102651126512265132651426515265162651726518265192652026521265222652326524265252652626527265282652926530265312653226533265342653526536265372653826539265402654126542265432654426545265462654726548265492655026551265522655326554265552655626557265582655926560265612656226563265642656526566265672656826569265702657126572265732657426575265762657726578265792658026581265822658326584265852658626587265882658926590265912659226593265942659526596265972659826599266002660126602266032660426605266062660726608266092661026611266122661326614266152661626617266182661926620266212662226623266242662526626266272662826629266302663126632266332663426635266362663726638266392664026641266422664326644266452664626647266482664926650266512665226653266542665526656266572665826659266602666126662266632666426665266662666726668266692667026671266722667326674266752667626677266782667926680266812668226683266842668526686266872668826689266902669126692266932669426695266962669726698266992670026701267022670326704267052670626707267082670926710267112671226713267142671526716267172671826719267202672126722267232672426725267262672726728267292673026731267322673326734267352673626737267382673926740267412674226743267442674526746267472674826749267502675126752267532675426755267562675726758267592676026761267622676326764267652676626767267682676926770267712677226773267742677526776267772677826779267802678126782267832678426785267862678726788267892679026791267922679326794267952679626797267982679926800268012680226803268042680526806268072680826809268102681126812268132681426815268162681726818268192682026821268222682326824268252682626827268282682926830268312683226833268342683526836268372683826839268402684126842268432684426845268462684726848268492685026851268522685326854268552685626857268582685926860268612686226863268642686526866268672686826869268702687126872268732687426875268762687726878268792688026881268822688326884268852688626887268882688926890268912689226893268942689526896268972689826899269002690126902269032690426905269062690726908269092691026911269122691326914269152691626917269182691926920269212692226923269242692526926269272692826929269302693126932269332693426935269362693726938269392694026941269422694326944269452694626947269482694926950269512695226953269542695526956269572695826959269602696126962269632696426965269662696726968269692697026971269722697326974269752697626977269782697926980269812698226983269842698526986269872698826989269902699126992269932699426995269962699726998269992700027001270022700327004270052700627007270082700927010270112701227013270142701527016270172701827019270202702127022270232702427025270262702727028270292703027031270322703327034270352703627037270382703927040270412704227043270442704527046270472704827049270502705127052270532705427055270562705727058270592706027061270622706327064270652706627067270682706927070270712707227073270742707527076270772707827079270802708127082270832708427085270862708727088270892709027091270922709327094270952709627097270982709927100271012710227103271042710527106271072710827109271102711127112271132711427115271162711727118271192712027121271222712327124271252712627127271282712927130271312713227133271342713527136271372713827139271402714127142271432714427145271462714727148271492715027151271522715327154271552715627157271582715927160271612716227163271642716527166271672716827169271702717127172271732717427175271762717727178271792718027181271822718327184271852718627187271882718927190271912719227193271942719527196271972719827199272002720127202272032720427205272062720727208272092721027211272122721327214272152721627217272182721927220272212722227223272242722527226272272722827229272302723127232272332723427235272362723727238272392724027241272422724327244272452724627247272482724927250272512725227253272542725527256272572725827259272602726127262272632726427265272662726727268272692727027271272722727327274272752727627277272782727927280272812728227283272842728527286272872728827289272902729127292272932729427295272962729727298272992730027301273022730327304273052730627307273082730927310273112731227313273142731527316273172731827319273202732127322273232732427325273262732727328273292733027331273322733327334273352733627337273382733927340273412734227343273442734527346273472734827349273502735127352273532735427355273562735727358273592736027361273622736327364273652736627367273682736927370273712737227373273742737527376273772737827379273802738127382273832738427385273862738727388273892739027391273922739327394273952739627397273982739927400274012740227403274042740527406274072740827409274102741127412274132741427415274162741727418274192742027421274222742327424274252742627427274282742927430274312743227433274342743527436274372743827439274402744127442274432744427445274462744727448274492745027451274522745327454274552745627457274582745927460274612746227463274642746527466274672746827469274702747127472274732747427475274762747727478274792748027481274822748327484274852748627487274882748927490274912749227493274942749527496274972749827499275002750127502275032750427505275062750727508275092751027511275122751327514275152751627517275182751927520275212752227523275242752527526275272752827529275302753127532275332753427535275362753727538275392754027541275422754327544275452754627547275482754927550275512755227553275542755527556275572755827559275602756127562275632756427565275662756727568275692757027571275722757327574275752757627577275782757927580275812758227583275842758527586275872758827589275902759127592275932759427595275962759727598275992760027601276022760327604276052760627607276082760927610276112761227613276142761527616276172761827619276202762127622276232762427625276262762727628276292763027631276322763327634276352763627637276382763927640276412764227643276442764527646276472764827649276502765127652276532765427655276562765727658276592766027661276622766327664276652766627667276682766927670276712767227673276742767527676276772767827679276802768127682276832768427685276862768727688276892769027691276922769327694276952769627697276982769927700277012770227703277042770527706277072770827709277102771127712277132771427715277162771727718277192772027721277222772327724277252772627727277282772927730277312773227733277342773527736277372773827739277402774127742277432774427745277462774727748277492775027751277522775327754277552775627757277582775927760277612776227763277642776527766277672776827769277702777127772277732777427775277762777727778277792778027781277822778327784277852778627787277882778927790277912779227793277942779527796277972779827799278002780127802278032780427805278062780727808278092781027811278122781327814278152781627817278182781927820278212782227823278242782527826278272782827829278302783127832278332783427835278362783727838278392784027841278422784327844278452784627847278482784927850278512785227853278542785527856278572785827859278602786127862278632786427865278662786727868278692787027871278722787327874278752787627877278782787927880278812788227883278842788527886278872788827889278902789127892278932789427895278962789727898278992790027901279022790327904279052790627907279082790927910279112791227913279142791527916279172791827919279202792127922279232792427925279262792727928279292793027931279322793327934279352793627937279382793927940279412794227943279442794527946279472794827949279502795127952279532795427955279562795727958279592796027961279622796327964279652796627967279682796927970279712797227973279742797527976279772797827979279802798127982279832798427985279862798727988279892799027991279922799327994279952799627997279982799928000280012800228003280042800528006280072800828009280102801128012280132801428015280162801728018280192802028021280222802328024280252802628027280282802928030280312803228033280342803528036280372803828039280402804128042280432804428045280462804728048280492805028051280522805328054280552805628057280582805928060280612806228063280642806528066280672806828069280702807128072280732807428075280762807728078280792808028081280822808328084280852808628087280882808928090280912809228093280942809528096280972809828099281002810128102281032810428105281062810728108281092811028111281122811328114281152811628117281182811928120281212812228123281242812528126281272812828129281302813128132281332813428135281362813728138281392814028141281422814328144281452814628147281482814928150281512815228153281542815528156281572815828159281602816128162281632816428165281662816728168281692817028171281722817328174281752817628177281782817928180281812818228183281842818528186281872818828189281902819128192281932819428195281962819728198281992820028201282022820328204282052820628207282082820928210282112821228213282142821528216282172821828219282202822128222282232822428225282262822728228282292823028231282322823328234282352823628237282382823928240282412824228243282442824528246282472824828249282502825128252282532825428255282562825728258282592826028261282622826328264282652826628267282682826928270282712827228273282742827528276282772827828279282802828128282282832828428285282862828728288282892829028291282922829328294282952829628297282982829928300283012830228303283042830528306283072830828309283102831128312283132831428315283162831728318283192832028321283222832328324283252832628327283282832928330 |
- !function (t, e) {
- "object" == typeof exports && "object" == typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define([], e) : "object" == typeof exports ? exports.ol = e() : t.ol = e()
- }(window, (function () {
- return function (t) {
- var e = {};
-
- function r(n) {
- if (e[n]) return e[n].exports;
- var i = e[n] = {i: n, l: !1, exports: {}};
- return t[n].call(i.exports, i, i.exports, r), i.l = !0, i.exports
- }
-
- return r.m = t, r.c = e, r.d = function (t, e, n) {
- r.o(t, e) || Object.defineProperty(t, e, {enumerable: !0, get: n})
- }, r.r = function (t) {
- "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {value: "Module"}), Object.defineProperty(t, "__esModule", {value: !0})
- }, r.t = function (t, e) {
- if (1 & e && (t = r(t)), 8 & e) return t;
- if (4 & e && "object" == typeof t && t && t.__esModule) return t;
- var n = Object.create(null);
- if (r.r(n), Object.defineProperty(n, "default", {
- enumerable: !0,
- value: t
- }), 2 & e && "string" != typeof t) for (var i in t) r.d(n, i, function (e) {
- return t[e]
- }.bind(null, i));
- return n
- }, r.n = function (t) {
- var e = t && t.__esModule ? function () {
- return t.default
- } : function () {
- return t
- };
- return r.d(e, "a", e), e
- }, r.o = function (t, e) {
- return Object.prototype.hasOwnProperty.call(t, e)
- }, r.p = "", r(r.s = 10)
- }([function (t, e, r) {
- "use strict";
- (function (t, n) {
- r.d(e, "a", (function () {
- return J
- })), r.d(e, "b", (function () {
- return br
- })), r.d(e, "c", (function () {
- return $r
- })), r.d(e, "d", (function () {
- return hr
- })), r.d(e, "e", (function () {
- return Jr
- })), r.d(e, "f", (function () {
- return i
- }));
- var i = {
- $version: 8,
- $root: {
- version: {
- required: !0,
- type: "enum",
- values: [8],
- doc: "Style specification version number. Must be 8.",
- example: 8
- },
- name: {type: "string", doc: "A human-readable name for the style.", example: "Bright"},
- metadata: {
- type: "*",
- doc: "Arbitrary properties useful to track with the stylesheet, but do not influence rendering. Properties should be prefixed to avoid collisions, like 'mapbox:'."
- },
- center: {
- type: "array",
- value: "number",
- doc: "Default map center in longitude and latitude. The style center will be used only if the map has not been positioned by other means (e.g. map options or user interaction).",
- example: [-73.9749, 40.7736]
- },
- zoom: {
- type: "number",
- doc: "Default zoom level. The style zoom will be used only if the map has not been positioned by other means (e.g. map options or user interaction).",
- example: 12.5
- },
- bearing: {
- type: "number",
- default: 0,
- period: 360,
- units: "degrees",
- doc: 'Default bearing, in degrees. The bearing is the compass direction that is "up"; for example, a bearing of 90° orients the map so that east is up. This value will be used only if the map has not been positioned by other means (e.g. map options or user interaction).',
- example: 29
- },
- pitch: {
- type: "number",
- default: 0,
- units: "degrees",
- doc: "Default pitch, in degrees. Zero is perpendicular to the surface, for a look straight down at the map, while a greater value like 60 looks ahead towards the horizon. The style pitch will be used only if the map has not been positioned by other means (e.g. map options or user interaction).",
- example: 50
- },
- light: {
- type: "light",
- doc: "The global light source.",
- example: {anchor: "viewport", color: "white", intensity: .4}
- },
- terrain: {
- type: "terrain",
- doc: "A global modifier that elevates layers and markers based on a DEM data source."
- },
- sources: {
- required: !0,
- type: "sources",
- doc: "Data source specifications.",
- example: {"mapbox-streets": {type: "vector", url: "mapbox://mapbox.mapbox-streets-v6"}}
- },
- sprite: {
- type: "string",
- doc: "A base URL for retrieving the sprite image and metadata. The extensions `.png`, `.json` and scale factor `@2x.png` will be automatically appended. This property is required if any layer uses the `background-pattern`, `fill-pattern`, `line-pattern`, `fill-extrusion-pattern`, or `icon-image` properties. The URL must be absolute, containing the [scheme, authority and path components](https://en.wikipedia.org/wiki/URL#Syntax).",
- example: "mapbox://sprites/mapbox/bright-v8"
- },
- glyphs: {
- type: "string",
- doc: "A URL template for loading signed-distance-field glyph sets in PBF format. The URL must include `{fontstack}` and `{range}` tokens. This property is required if any layer uses the `text-field` layout property. The URL must be absolute, containing the [scheme, authority and path components](https://en.wikipedia.org/wiki/URL#Syntax).",
- example: "mapbox://fonts/mapbox/{fontstack}/{range}.pbf"
- },
- transition: {
- type: "transition",
- doc: "A global transition definition to use as a default across properties, to be used for timing transitions between one value and the next when no property-specific transition is set. Collision-based symbol fading is controlled independently of the style's `transition` property.",
- example: {duration: 300, delay: 0}
- },
- layers: {
- required: !0,
- type: "array",
- value: "layer",
- doc: "Layers will be drawn in the order of this array.",
- example: [{
- id: "water",
- source: "mapbox-streets",
- "source-layer": "water",
- type: "fill",
- paint: {"fill-color": "#00ffff"}
- }]
- }
- },
- sources: {
- "*": {
- type: "source",
- doc: "Specification of a data source. For vector and raster sources, either TileJSON or a URL to a TileJSON must be provided. For image and video sources, a URL must be provided. For GeoJSON sources, a URL or inline GeoJSON must be provided."
- }
- },
- source: ["source_vector", "source_raster", "source_raster_dem", "source_geojson", "source_video", "source_image"],
- source_vector: {
- type: {
- required: !0,
- type: "enum",
- values: {vector: {doc: "A vector tile source."}},
- doc: "The type of the source."
- },
- url: {
- type: "string",
- doc: "A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://<Tileset ID>`."
- },
- tiles: {
- type: "array",
- value: "string",
- doc: "An array of one or more tile source URLs, as in the TileJSON spec."
- },
- bounds: {
- type: "array",
- value: "number",
- length: 4,
- default: [-180, -85.051129, 180, 85.051129],
- doc: "An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."
- },
- scheme: {
- type: "enum",
- values: {xyz: {doc: "Slippy map tilenames scheme."}, tms: {doc: "OSGeo spec scheme."}},
- default: "xyz",
- doc: "Influences the y direction of the tile coordinates. The global-mercator (aka Spherical Mercator) profile is assumed."
- },
- minzoom: {
- type: "number",
- default: 0,
- doc: "Minimum zoom level for which tiles are available, as in the TileJSON spec."
- },
- maxzoom: {
- type: "number",
- default: 22,
- doc: "Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."
- },
- attribution: {
- type: "string",
- doc: "Contains an attribution to be displayed when the map is shown to a user."
- },
- promoteId: {
- type: "promoteId",
- doc: "A property to use as a feature id (for feature state). Either a property name, or an object of the form `{<sourceLayer>: <propertyName>}`. If specified as a string for a vector tile source, the same property is used across all its source layers."
- },
- volatile: {
- type: "boolean",
- default: !1,
- doc: "A setting to determine whether a source's tiles are cached locally.",
- "sdk-support": {"basic functionality": {android: "9.3.0", ios: "5.10.0"}}
- },
- "*": {type: "*", doc: "Other keys to configure the data source."}
- },
- source_raster: {
- type: {
- required: !0,
- type: "enum",
- values: {raster: {doc: "A raster tile source."}},
- doc: "The type of the source."
- },
- url: {
- type: "string",
- doc: "A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://<Tileset ID>`."
- },
- tiles: {
- type: "array",
- value: "string",
- doc: "An array of one or more tile source URLs, as in the TileJSON spec."
- },
- bounds: {
- type: "array",
- value: "number",
- length: 4,
- default: [-180, -85.051129, 180, 85.051129],
- doc: "An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."
- },
- minzoom: {
- type: "number",
- default: 0,
- doc: "Minimum zoom level for which tiles are available, as in the TileJSON spec."
- },
- maxzoom: {
- type: "number",
- default: 22,
- doc: "Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."
- },
- tileSize: {
- type: "number",
- default: 512,
- units: "pixels",
- doc: "The minimum visual size to display tiles for this layer. Only configurable for raster layers."
- },
- scheme: {
- type: "enum",
- values: {xyz: {doc: "Slippy map tilenames scheme."}, tms: {doc: "OSGeo spec scheme."}},
- default: "xyz",
- doc: "Influences the y direction of the tile coordinates. The global-mercator (aka Spherical Mercator) profile is assumed."
- },
- attribution: {
- type: "string",
- doc: "Contains an attribution to be displayed when the map is shown to a user."
- },
- volatile: {
- type: "boolean",
- default: !1,
- doc: "A setting to determine whether a source's tiles are cached locally.",
- "sdk-support": {"basic functionality": {android: "9.3.0", ios: "5.10.0"}}
- },
- "*": {type: "*", doc: "Other keys to configure the data source."}
- },
- source_raster_dem: {
- type: {
- required: !0,
- type: "enum",
- values: {"raster-dem": {doc: "A RGB-encoded raster DEM source"}},
- doc: "The type of the source."
- },
- url: {
- type: "string",
- doc: "A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://<Tileset ID>`."
- },
- tiles: {
- type: "array",
- value: "string",
- doc: "An array of one or more tile source URLs, as in the TileJSON spec."
- },
- bounds: {
- type: "array",
- value: "number",
- length: 4,
- default: [-180, -85.051129, 180, 85.051129],
- doc: "An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."
- },
- minzoom: {
- type: "number",
- default: 0,
- doc: "Minimum zoom level for which tiles are available, as in the TileJSON spec."
- },
- maxzoom: {
- type: "number",
- default: 22,
- doc: "Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."
- },
- tileSize: {
- type: "number",
- default: 512,
- units: "pixels",
- doc: "The minimum visual size to display tiles for this layer. Only configurable for raster layers."
- },
- attribution: {
- type: "string",
- doc: "Contains an attribution to be displayed when the map is shown to a user."
- },
- encoding: {
- type: "enum",
- values: {
- terrarium: {doc: "Terrarium format PNG tiles. See https://aws.amazon.com/es/public-datasets/terrain/ for more info."},
- mapbox: {doc: "Mapbox Terrain RGB tiles. See https://www.mapbox.com/help/access-elevation-data/#mapbox-terrain-rgb for more info."}
- },
- default: "mapbox",
- doc: "The encoding used by this source. Mapbox Terrain RGB is used by default"
- },
- volatile: {
- type: "boolean",
- default: !1,
- doc: "A setting to determine whether a source's tiles are cached locally.",
- "sdk-support": {"basic functionality": {android: "9.3.0", ios: "5.10.0"}}
- },
- "*": {type: "*", doc: "Other keys to configure the data source."}
- },
- source_geojson: {
- type: {
- required: !0,
- type: "enum",
- values: {geojson: {doc: "A GeoJSON data source."}},
- doc: "The data type of the GeoJSON source."
- },
- data: {type: "*", doc: "A URL to a GeoJSON file, or inline GeoJSON."},
- maxzoom: {
- type: "number",
- default: 18,
- doc: "Maximum zoom level at which to create vector tiles (higher means greater detail at high zoom levels)."
- },
- attribution: {
- type: "string",
- doc: "Contains an attribution to be displayed when the map is shown to a user."
- },
- buffer: {
- type: "number",
- default: 128,
- maximum: 512,
- minimum: 0,
- doc: "Size of the tile buffer on each side. A value of 0 produces no buffer. A value of 512 produces a buffer as wide as the tile itself. Larger values produce fewer rendering artifacts near tile edges and slower performance."
- },
- filter: {type: "*", doc: "An expression for filtering features prior to processing them for rendering."},
- tolerance: {
- type: "number",
- default: .375,
- doc: "Douglas-Peucker simplification tolerance (higher means simpler geometries and faster performance)."
- },
- cluster: {
- type: "boolean",
- default: !1,
- doc: "If the data is a collection of point features, setting this to true clusters the points by radius into groups. Cluster groups become new `Point` features in the source with additional properties:\n * `cluster` Is `true` if the point is a cluster \n * `cluster_id` A unqiue id for the cluster to be used in conjunction with the [cluster inspection methods](https://www.mapbox.com/mapbox-gl-js/api/#geojsonsource#getclusterexpansionzoom)\n * `point_count` Number of original points grouped into this cluster\n * `point_count_abbreviated` An abbreviated point count"
- },
- clusterRadius: {
- type: "number",
- default: 50,
- minimum: 0,
- doc: "Radius of each cluster if clustering is enabled. A value of 512 indicates a radius equal to the width of a tile."
- },
- clusterMaxZoom: {
- type: "number",
- doc: "Max zoom on which to cluster points if clustering is enabled. Defaults to one zoom less than maxzoom (so that last zoom features are not clustered). Clusters are re-evaluated at integer zoom levels so setting clusterMaxZoom to 14 means the clusters will be displayed until z15."
- },
- clusterMinPoints: {
- type: "number",
- doc: "Minimum number of points necessary to form a cluster if clustering is enabled. Defaults to `2`."
- },
- clusterProperties: {
- type: "*",
- doc: 'An object defining custom properties on the generated clusters if clustering is enabled, aggregating values from clustered points. Has the form `{"property_name": [operator, map_expression]}`. `operator` is any expression function that accepts at least 2 operands (e.g. `"+"` or `"max"`) — it accumulates the property value from clusters/points the cluster contains; `map_expression` produces the value of a single point.\n\nExample: `{"sum": ["+", ["get", "scalerank"]]}`.\n\nFor more advanced use cases, in place of `operator`, you can use a custom reduce expression that references a special `["accumulated"]` value, e.g.:\n`{"sum": [["+", ["accumulated"], ["get", "sum"]], ["get", "scalerank"]]}`'
- },
- lineMetrics: {
- type: "boolean",
- default: !1,
- doc: "Whether to calculate line distance metrics. This is required for line layers that specify `line-gradient` values."
- },
- generateId: {
- type: "boolean",
- default: !1,
- doc: "Whether to generate ids for the geojson features. When enabled, the `feature.id` property will be auto assigned based on its index in the `features` array, over-writing any previous values."
- },
- promoteId: {
- type: "promoteId",
- doc: "A property to use as a feature id (for feature state). Either a property name, or an object of the form `{<sourceLayer>: <propertyName>}`."
- }
- },
- source_video: {
- type: {
- required: !0,
- type: "enum",
- values: {video: {doc: "A video data source."}},
- doc: "The data type of the video source."
- },
- urls: {
- required: !0,
- type: "array",
- value: "string",
- doc: "URLs to video content in order of preferred format."
- },
- coordinates: {
- required: !0,
- doc: "Corners of video specified in longitude, latitude pairs.",
- type: "array",
- length: 4,
- value: {type: "array", length: 2, value: "number", doc: "A single longitude, latitude pair."}
- }
- },
- source_image: {
- type: {
- required: !0,
- type: "enum",
- values: {image: {doc: "An image data source."}},
- doc: "The data type of the image source."
- },
- url: {required: !0, type: "string", doc: "URL that points to an image."},
- coordinates: {
- required: !0,
- doc: "Corners of image specified in longitude, latitude pairs.",
- type: "array",
- length: 4,
- value: {type: "array", length: 2, value: "number", doc: "A single longitude, latitude pair."}
- }
- },
- layer: {
- id: {type: "string", doc: "Unique layer name.", required: !0},
- type: {
- type: "enum", values: {
- fill: {
- doc: "A filled polygon with an optional stroked border.",
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}}
- },
- line: {
- doc: "A stroked line.",
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}}
- },
- symbol: {
- doc: "An icon or a text label.",
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}}
- },
- circle: {
- doc: "A filled circle.",
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}}
- },
- heatmap: {
- doc: "A heatmap.",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- "fill-extrusion": {
- doc: "An extruded (3D) polygon.",
- "sdk-support": {"basic functionality": {js: "0.27.0", android: "5.1.0", ios: "3.6.0", macos: "0.5.0"}}
- },
- raster: {
- doc: "Raster map textures such as satellite imagery.",
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}}
- },
- hillshade: {
- doc: "Client-side hillshading visualization based on DEM data. Currently, the implementation only supports Mapbox Terrain RGB and Mapzen Terrarium tiles.",
- "sdk-support": {"basic functionality": {js: "0.43.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- background: {
- doc: "The background color or pattern of the map.",
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}}
- },
- sky: {
- doc: "A spherical dome around the map that is always rendered behind all other layers.",
- "sdk-support": {"basic functionality": {js: "2.0.0"}}
- }
- }, doc: "Rendering type of this layer.", required: !0
- },
- metadata: {
- type: "*",
- doc: "Arbitrary properties useful to track with the layer, but do not influence rendering. Properties should be prefixed to avoid collisions, like 'mapbox:'."
- },
- source: {
- type: "string",
- doc: "Name of a source description to be used for this layer. Required for all layer types except `background`."
- },
- "source-layer": {
- type: "string",
- doc: "Layer to use from a vector tile source. Required for vector tile sources; prohibited for all other source types, including GeoJSON sources."
- },
- minzoom: {
- type: "number",
- minimum: 0,
- maximum: 24,
- doc: "The minimum zoom level for the layer. At zoom levels less than the minzoom, the layer will be hidden."
- },
- maxzoom: {
- type: "number",
- minimum: 0,
- maximum: 24,
- doc: "The maximum zoom level for the layer. At zoom levels equal to or greater than the maxzoom, the layer will be hidden."
- },
- filter: {
- type: "filter",
- doc: "A expression specifying conditions on source features. Only features that match the filter are displayed. Zoom expressions in filters are only evaluated at integer zoom levels. The `feature-state` expression is not supported in filter expressions."
- },
- layout: {type: "layout", doc: "Layout properties for the layer."},
- paint: {type: "paint", doc: "Default paint properties for this layer."}
- },
- layout: ["layout_fill", "layout_line", "layout_circle", "layout_heatmap", "layout_fill-extrusion", "layout_symbol", "layout_raster", "layout_hillshade", "layout_background", "layout_sky"],
- layout_background: {
- visibility: {
- type: "enum",
- values: {visible: {doc: "The layer is shown."}, none: {doc: "The layer is not shown."}},
- default: "visible",
- doc: "Whether this layer is displayed.",
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- "property-type": "constant"
- }
- },
- layout_sky: {
- visibility: {
- type: "enum",
- values: {visible: {doc: "The layer is shown."}, none: {doc: "The layer is not shown."}},
- default: "visible",
- doc: "Whether this layer is displayed.",
- "sdk-support": {"basic functionality": {js: "2.0.0"}},
- "property-type": "constant"
- }
- },
- layout_fill: {
- "fill-sort-key": {
- type: "number",
- doc: "Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.",
- "sdk-support": {
- "basic functionality": {js: "1.2.0", android: "9.1.0", ios: "5.8.0", macos: "0.15.0"},
- "data-driven styling": {js: "1.2.0", android: "9.1.0", ios: "5.8.0", macos: "0.15.0"}
- },
- expression: {interpolated: !1, parameters: ["zoom", "feature"]},
- "property-type": "data-driven"
- },
- visibility: {
- type: "enum",
- values: {visible: {doc: "The layer is shown."}, none: {doc: "The layer is not shown."}},
- default: "visible",
- doc: "Whether this layer is displayed.",
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- "property-type": "constant"
- }
- },
- layout_circle: {
- "circle-sort-key": {
- type: "number",
- doc: "Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.",
- "sdk-support": {
- "basic functionality": {js: "1.2.0", android: "9.2.0", ios: "5.9.0", macos: "0.16.0"},
- "data-driven styling": {js: "1.2.0", android: "9.2.0", ios: "5.9.0", macos: "0.16.0"}
- },
- expression: {interpolated: !1, parameters: ["zoom", "feature"]},
- "property-type": "data-driven"
- },
- visibility: {
- type: "enum",
- values: {visible: {doc: "The layer is shown."}, none: {doc: "The layer is not shown."}},
- default: "visible",
- doc: "Whether this layer is displayed.",
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- "property-type": "constant"
- }
- },
- layout_heatmap: {
- visibility: {
- type: "enum",
- values: {visible: {doc: "The layer is shown."}, none: {doc: "The layer is not shown."}},
- default: "visible",
- doc: "Whether this layer is displayed.",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}},
- "property-type": "constant"
- }
- },
- "layout_fill-extrusion": {
- visibility: {
- type: "enum",
- values: {visible: {doc: "The layer is shown."}, none: {doc: "The layer is not shown."}},
- default: "visible",
- doc: "Whether this layer is displayed.",
- "sdk-support": {"basic functionality": {js: "0.27.0", android: "5.1.0", ios: "3.6.0", macos: "0.5.0"}},
- "property-type": "constant"
- }
- },
- layout_line: {
- "line-cap": {
- type: "enum",
- values: {
- butt: {doc: "A cap with a squared-off end which is drawn to the exact endpoint of the line."},
- round: {doc: "A cap with a rounded end which is drawn beyond the endpoint of the line at a radius of one-half of the line's width and centered on the endpoint of the line."},
- square: {doc: "A cap with a squared-off end which is drawn beyond the endpoint of the line at a distance of one-half of the line's width."}
- },
- default: "butt",
- doc: "The display of line endings.",
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "line-join": {
- type: "enum",
- values: {
- bevel: {doc: "A join with a squared-off end which is drawn beyond the endpoint of the line at a distance of one-half of the line's width."},
- round: {doc: "A join with a rounded end which is drawn beyond the endpoint of the line at a radius of one-half of the line's width and centered on the endpoint of the line."},
- miter: {doc: "A join with a sharp, angled corner which is drawn with the outer sides beyond the endpoint of the path until they meet."}
- },
- default: "miter",
- doc: "The display of lines when joining.",
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.40.0", android: "5.2.0", ios: "3.7.0", macos: "0.6.0"}
- },
- expression: {interpolated: !1, parameters: ["zoom", "feature"]},
- "property-type": "data-driven"
- },
- "line-miter-limit": {
- type: "number",
- default: 2,
- doc: "Used to automatically convert miter joins to bevel joins for sharp angles.",
- requires: [{"line-join": "miter"}],
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "line-round-limit": {
- type: "number",
- default: 1.05,
- doc: "Used to automatically convert round joins to miter joins for shallow angles.",
- requires: [{"line-join": "round"}],
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "line-sort-key": {
- type: "number",
- doc: "Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.",
- "sdk-support": {
- "basic functionality": {js: "1.2.0", android: "9.1.0", ios: "5.8.0", macos: "0.15.0"},
- "data-driven styling": {js: "1.2.0", android: "9.1.0", ios: "5.8.0", macos: "0.15.0"}
- },
- expression: {interpolated: !1, parameters: ["zoom", "feature"]},
- "property-type": "data-driven"
- },
- visibility: {
- type: "enum",
- values: {visible: {doc: "The layer is shown."}, none: {doc: "The layer is not shown."}},
- default: "visible",
- doc: "Whether this layer is displayed.",
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- "property-type": "constant"
- }
- },
- layout_symbol: {
- "symbol-placement": {
- type: "enum",
- values: {
- point: {doc: "The label is placed at the point where the geometry is located."},
- line: {doc: "The label is placed along the line of the geometry. Can only be used on `LineString` and `Polygon` geometries."},
- "line-center": {doc: "The label is placed at the center of the line of the geometry. Can only be used on `LineString` and `Polygon` geometries. Note that a single feature in a vector tile may contain multiple line geometries."}
- },
- default: "point",
- doc: "Label placement relative to its geometry.",
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "`line-center` value": {js: "0.47.0", android: "6.4.0", ios: "4.3.0", macos: "0.10.0"}
- },
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "symbol-spacing": {
- type: "number",
- default: 250,
- minimum: 1,
- units: "pixels",
- doc: "Distance between two symbol anchors.",
- requires: [{"symbol-placement": "line"}],
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "symbol-avoid-edges": {
- type: "boolean",
- default: !1,
- doc: "If true, the symbols will not cross tile edges to avoid mutual collisions. Recommended in layers that don't have enough padding in the vector tile to prevent collisions, or if it is a point symbol layer placed after a line symbol layer. When using a client that supports global collision detection, like Mapbox GL JS version 0.42.0 or greater, enabling this property is not needed to prevent clipped labels at tile boundaries.",
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "symbol-sort-key": {
- type: "number",
- doc: "Sorts features in ascending order based on this value. Features with lower sort keys are drawn and placed first. When `icon-allow-overlap` or `text-allow-overlap` is `false`, features with a lower sort key will have priority during placement. When `icon-allow-overlap` or `text-allow-overlap` is set to `true`, features with a higher sort key will overlap over features with a lower sort key.",
- "sdk-support": {
- "basic functionality": {js: "0.53.0", android: "7.4.0", ios: "4.11.0", macos: "0.14.0"},
- "data-driven styling": {js: "0.53.0", android: "7.4.0", ios: "4.11.0", macos: "0.14.0"}
- },
- expression: {interpolated: !1, parameters: ["zoom", "feature"]},
- "property-type": "data-driven"
- },
- "symbol-z-order": {
- type: "enum",
- values: {
- auto: {doc: "Sorts symbols by `symbol-sort-key` if set. Otherwise, sorts symbols by their y-position relative to the viewport if `icon-allow-overlap` or `text-allow-overlap` is set to `true` or `icon-ignore-placement` or `text-ignore-placement` is `false`."},
- "viewport-y": {doc: "Sorts symbols by their y-position relative to the viewport if `icon-allow-overlap` or `text-allow-overlap` is set to `true` or `icon-ignore-placement` or `text-ignore-placement` is `false`."},
- source: {doc: "Sorts symbols by `symbol-sort-key` if set. Otherwise, no sorting is applied; symbols are rendered in the same order as the source data."}
- },
- default: "auto",
- doc: "Determines whether overlapping symbols in the same layer are rendered in the order that they appear in the data source or by their y-position relative to the viewport. To control the order and prioritization of symbols otherwise, use `symbol-sort-key`.",
- "sdk-support": {"basic functionality": {js: "0.49.0", android: "6.6.0", ios: "4.5.0", macos: "0.12.0"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "icon-allow-overlap": {
- type: "boolean",
- default: !1,
- doc: "If true, the icon will be visible even if it collides with other previously drawn symbols.",
- requires: ["icon-image"],
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "icon-ignore-placement": {
- type: "boolean",
- default: !1,
- doc: "If true, other symbols can be visible even if they collide with the icon.",
- requires: ["icon-image"],
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "icon-optional": {
- type: "boolean",
- default: !1,
- doc: "If true, text will display without their corresponding icons when the icon collides with other symbols and the text does not.",
- requires: ["icon-image", "text-field"],
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "icon-rotation-alignment": {
- type: "enum",
- values: {
- map: {doc: "When `symbol-placement` is set to `point`, aligns icons east-west. When `symbol-placement` is set to `line` or `line-center`, aligns icon x-axes with the line."},
- viewport: {doc: "Produces icons whose x-axes are aligned with the x-axis of the viewport, regardless of the value of `symbol-placement`."},
- auto: {doc: "When `symbol-placement` is set to `point`, this is equivalent to `viewport`. When `symbol-placement` is set to `line` or `line-center`, this is equivalent to `map`."}
- },
- default: "auto",
- doc: "In combination with `symbol-placement`, determines the rotation behavior of icons.",
- requires: ["icon-image"],
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "`auto` value": {js: "0.25.0", android: "4.2.0", ios: "3.4.0", macos: "0.3.0"}
- },
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "icon-size": {
- type: "number",
- default: 1,
- minimum: 0,
- units: "factor of the original icon size",
- doc: "Scales the original size of the icon by the provided factor. The new pixel size of the image will be the original pixel size multiplied by `icon-size`. 1 is the original size; 3 triples the size of the image.",
- requires: ["icon-image"],
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.35.0", android: "5.1.0", ios: "3.6.0", macos: "0.5.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature"]},
- "property-type": "data-driven"
- },
- "icon-text-fit": {
- type: "enum",
- values: {
- none: {doc: "The icon is displayed at its intrinsic aspect ratio."},
- width: {doc: "The icon is scaled in the x-dimension to fit the width of the text."},
- height: {doc: "The icon is scaled in the y-dimension to fit the height of the text."},
- both: {doc: "The icon is scaled in both x- and y-dimensions."}
- },
- default: "none",
- doc: "Scales the icon to fit around the associated text.",
- requires: ["icon-image", "text-field"],
- "sdk-support": {
- "basic functionality": {js: "0.21.0", android: "4.2.0", ios: "3.4.0", macos: "0.2.1"},
- "stretchable icons": {js: "1.6.0", android: "9.2.0", ios: "5.8.0", macos: "0.15.0"}
- },
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "icon-text-fit-padding": {
- type: "array",
- value: "number",
- length: 4,
- default: [0, 0, 0, 0],
- units: "pixels",
- doc: "Size of the additional area added to dimensions determined by `icon-text-fit`, in clockwise order: top, right, bottom, left.",
- requires: ["icon-image", "text-field", {"icon-text-fit": ["both", "width", "height"]}],
- "sdk-support": {"basic functionality": {js: "0.21.0", android: "4.2.0", ios: "3.4.0", macos: "0.2.1"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "icon-image": {
- type: "resolvedImage",
- doc: "Name of image in sprite to use for drawing an image background.",
- tokens: !0,
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.35.0", android: "5.1.0", ios: "3.6.0", macos: "0.5.0"}
- },
- expression: {interpolated: !1, parameters: ["zoom", "feature"]},
- "property-type": "data-driven"
- },
- "icon-rotate": {
- type: "number",
- default: 0,
- period: 360,
- units: "degrees",
- doc: "Rotates the icon clockwise.",
- requires: ["icon-image"],
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.21.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature"]},
- "property-type": "data-driven"
- },
- "icon-padding": {
- type: "number",
- default: 2,
- minimum: 0,
- units: "pixels",
- doc: "Size of the additional area around the icon bounding box used for detecting symbol collisions.",
- requires: ["icon-image"],
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "icon-keep-upright": {
- type: "boolean",
- default: !1,
- doc: "If true, the icon may be flipped to prevent it from being rendered upside-down.",
- requires: ["icon-image", {"icon-rotation-alignment": "map"}, {"symbol-placement": ["line", "line-center"]}],
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "icon-offset": {
- type: "array",
- value: "number",
- length: 2,
- default: [0, 0],
- doc: "Offset distance of icon from its anchor. Positive values indicate right and down, while negative values indicate left and up. Each component is multiplied by the value of `icon-size` to obtain the final offset in pixels. When combined with `icon-rotate` the offset will be as if the rotated direction was up.",
- requires: ["icon-image"],
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.29.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature"]},
- "property-type": "data-driven"
- },
- "icon-anchor": {
- type: "enum",
- values: {
- center: {doc: "The center of the icon is placed closest to the anchor."},
- left: {doc: "The left side of the icon is placed closest to the anchor."},
- right: {doc: "The right side of the icon is placed closest to the anchor."},
- top: {doc: "The top of the icon is placed closest to the anchor."},
- bottom: {doc: "The bottom of the icon is placed closest to the anchor."},
- "top-left": {doc: "The top left corner of the icon is placed closest to the anchor."},
- "top-right": {doc: "The top right corner of the icon is placed closest to the anchor."},
- "bottom-left": {doc: "The bottom left corner of the icon is placed closest to the anchor."},
- "bottom-right": {doc: "The bottom right corner of the icon is placed closest to the anchor."}
- },
- default: "center",
- doc: "Part of the icon placed closest to the anchor.",
- requires: ["icon-image"],
- "sdk-support": {
- "basic functionality": {js: "0.40.0", android: "5.2.0", ios: "3.7.0", macos: "0.6.0"},
- "data-driven styling": {js: "0.40.0", android: "5.2.0", ios: "3.7.0", macos: "0.6.0"}
- },
- expression: {interpolated: !1, parameters: ["zoom", "feature"]},
- "property-type": "data-driven"
- },
- "icon-pitch-alignment": {
- type: "enum",
- values: {
- map: {doc: "The icon is aligned to the plane of the map."},
- viewport: {doc: "The icon is aligned to the plane of the viewport."},
- auto: {doc: "Automatically matches the value of `icon-rotation-alignment`."}
- },
- default: "auto",
- doc: "Orientation of icon when map is pitched.",
- requires: ["icon-image"],
- "sdk-support": {"basic functionality": {js: "0.39.0", android: "5.2.0", ios: "3.7.0", macos: "0.6.0"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "text-pitch-alignment": {
- type: "enum",
- values: {
- map: {doc: "The text is aligned to the plane of the map."},
- viewport: {doc: "The text is aligned to the plane of the viewport."},
- auto: {doc: "Automatically matches the value of `text-rotation-alignment`."}
- },
- default: "auto",
- doc: "Orientation of text when map is pitched.",
- requires: ["text-field"],
- "sdk-support": {
- "basic functionality": {js: "0.21.0", android: "4.2.0", ios: "3.4.0", macos: "0.2.1"},
- "`auto` value": {js: "0.25.0", android: "4.2.0", ios: "3.4.0", macos: "0.3.0"}
- },
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "text-rotation-alignment": {
- type: "enum",
- values: {
- map: {doc: "When `symbol-placement` is set to `point`, aligns text east-west. When `symbol-placement` is set to `line` or `line-center`, aligns text x-axes with the line."},
- viewport: {doc: "Produces glyphs whose x-axes are aligned with the x-axis of the viewport, regardless of the value of `symbol-placement`."},
- auto: {doc: "When `symbol-placement` is set to `point`, this is equivalent to `viewport`. When `symbol-placement` is set to `line` or `line-center`, this is equivalent to `map`."}
- },
- default: "auto",
- doc: "In combination with `symbol-placement`, determines the rotation behavior of the individual glyphs forming the text.",
- requires: ["text-field"],
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "`auto` value": {js: "0.25.0", android: "4.2.0", ios: "3.4.0", macos: "0.3.0"}
- },
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "text-field": {
- type: "formatted",
- default: "",
- tokens: !0,
- doc: "Value to use for a text label. If a plain `string` is provided, it will be treated as a `formatted` with default/inherited formatting options.",
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.33.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !1, parameters: ["zoom", "feature"]},
- "property-type": "data-driven"
- },
- "text-font": {
- type: "array",
- value: "string",
- default: ["Open Sans Regular", "Arial Unicode MS Regular"],
- doc: "Font stack to use for displaying text.",
- requires: ["text-field"],
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.43.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}
- },
- expression: {interpolated: !1, parameters: ["zoom", "feature"]},
- "property-type": "data-driven"
- },
- "text-size": {
- type: "number",
- default: 16,
- minimum: 0,
- units: "pixels",
- doc: "Font size.",
- requires: ["text-field"],
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.35.0", android: "5.1.0", ios: "3.6.0", macos: "0.5.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature"]},
- "property-type": "data-driven"
- },
- "text-max-width": {
- type: "number",
- default: 10,
- minimum: 0,
- units: "ems",
- doc: "The maximum line width for text wrapping.",
- requires: ["text-field"],
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.40.0", android: "5.2.0", ios: "3.7.0", macos: "0.6.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature"]},
- "property-type": "data-driven"
- },
- "text-line-height": {
- type: "number",
- default: 1.2,
- units: "ems",
- doc: "Text leading value for multi-line text.",
- requires: ["text-field"],
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "text-letter-spacing": {
- type: "number",
- default: 0,
- units: "ems",
- doc: "Text tracking amount.",
- requires: ["text-field"],
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.40.0", android: "5.2.0", ios: "3.7.0", macos: "0.6.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature"]},
- "property-type": "data-driven"
- },
- "text-justify": {
- type: "enum",
- values: {
- auto: {doc: "The text is aligned towards the anchor position."},
- left: {doc: "The text is aligned to the left."},
- center: {doc: "The text is centered."},
- right: {doc: "The text is aligned to the right."}
- },
- default: "center",
- doc: "Text justification options.",
- requires: ["text-field"],
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.39.0", android: "5.2.0", ios: "3.7.0", macos: "0.6.0"},
- auto: {js: "0.54.0", android: "7.4.0", ios: "4.10.0", macos: "0.14.0"}
- },
- expression: {interpolated: !1, parameters: ["zoom", "feature"]},
- "property-type": "data-driven"
- },
- "text-radial-offset": {
- type: "number",
- units: "ems",
- default: 0,
- doc: "Radial offset of text, in the direction of the symbol's anchor. Useful in combination with `text-variable-anchor`, which defaults to using the two-dimensional `text-offset` if present.",
- "sdk-support": {
- "basic functionality": {js: "0.54.0", android: "7.4.0", ios: "4.10.0", macos: "0.14.0"},
- "data-driven styling": {js: "0.54.0", android: "7.4.0", ios: "4.10.0", macos: "0.14.0"}
- },
- requires: ["text-field"],
- "property-type": "data-driven",
- expression: {interpolated: !0, parameters: ["zoom", "feature"]}
- },
- "text-variable-anchor": {
- type: "array",
- value: "enum",
- values: {
- center: {doc: "The center of the text is placed closest to the anchor."},
- left: {doc: "The left side of the text is placed closest to the anchor."},
- right: {doc: "The right side of the text is placed closest to the anchor."},
- top: {doc: "The top of the text is placed closest to the anchor."},
- bottom: {doc: "The bottom of the text is placed closest to the anchor."},
- "top-left": {doc: "The top left corner of the text is placed closest to the anchor."},
- "top-right": {doc: "The top right corner of the text is placed closest to the anchor."},
- "bottom-left": {doc: "The bottom left corner of the text is placed closest to the anchor."},
- "bottom-right": {doc: "The bottom right corner of the text is placed closest to the anchor."}
- },
- requires: ["text-field", {"symbol-placement": ["point"]}],
- doc: "To increase the chance of placing high-priority labels on the map, you can provide an array of `text-anchor` locations: the renderer will attempt to place the label at each location, in order, before moving onto the next label. Use `text-justify: auto` to choose justification based on anchor position. To apply an offset, use the `text-radial-offset` or the two-dimensional `text-offset`.",
- "sdk-support": {"basic functionality": {js: "0.54.0", android: "7.4.0", ios: "4.10.0", macos: "0.14.0"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "text-anchor": {
- type: "enum",
- values: {
- center: {doc: "The center of the text is placed closest to the anchor."},
- left: {doc: "The left side of the text is placed closest to the anchor."},
- right: {doc: "The right side of the text is placed closest to the anchor."},
- top: {doc: "The top of the text is placed closest to the anchor."},
- bottom: {doc: "The bottom of the text is placed closest to the anchor."},
- "top-left": {doc: "The top left corner of the text is placed closest to the anchor."},
- "top-right": {doc: "The top right corner of the text is placed closest to the anchor."},
- "bottom-left": {doc: "The bottom left corner of the text is placed closest to the anchor."},
- "bottom-right": {doc: "The bottom right corner of the text is placed closest to the anchor."}
- },
- default: "center",
- doc: "Part of the text placed closest to the anchor.",
- requires: ["text-field", {"!": "text-variable-anchor"}],
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.39.0", android: "5.2.0", ios: "3.7.0", macos: "0.6.0"}
- },
- expression: {interpolated: !1, parameters: ["zoom", "feature"]},
- "property-type": "data-driven"
- },
- "text-max-angle": {
- type: "number",
- default: 45,
- units: "degrees",
- doc: "Maximum angle change between adjacent characters.",
- requires: ["text-field", {"symbol-placement": ["line", "line-center"]}],
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "text-writing-mode": {
- type: "array",
- value: "enum",
- values: {
- horizontal: {doc: "If a text's language supports horizontal writing mode, symbols with point placement would be laid out horizontally."},
- vertical: {doc: "If a text's language supports vertical writing mode, symbols with point placement would be laid out vertically."}
- },
- doc: "The property allows control over a symbol's orientation. Note that the property values act as a hint, so that a symbol whose language doesn’t support the provided orientation will be laid out in its natural orientation. Example: English point symbol will be rendered horizontally even if array value contains single 'vertical' enum value. The order of elements in an array define priority order for the placement of an orientation variant.",
- requires: ["text-field", {"symbol-placement": ["point"]}],
- "sdk-support": {"basic functionality": {js: "1.3.0", android: "8.3.0", ios: "5.3.0", macos: "0.15.0"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "text-rotate": {
- type: "number",
- default: 0,
- period: 360,
- units: "degrees",
- doc: "Rotates the text clockwise.",
- requires: ["text-field"],
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.35.0", android: "5.1.0", ios: "3.6.0", macos: "0.5.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature"]},
- "property-type": "data-driven"
- },
- "text-padding": {
- type: "number",
- default: 2,
- minimum: 0,
- units: "pixels",
- doc: "Size of the additional area around the text bounding box used for detecting symbol collisions.",
- requires: ["text-field"],
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "text-keep-upright": {
- type: "boolean",
- default: !0,
- doc: "If true, the text may be flipped vertically to prevent it from being rendered upside-down.",
- requires: ["text-field", {"text-rotation-alignment": "map"}, {"symbol-placement": ["line", "line-center"]}],
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "text-transform": {
- type: "enum",
- values: {
- none: {doc: "The text is not altered."},
- uppercase: {doc: "Forces all letters to be displayed in uppercase."},
- lowercase: {doc: "Forces all letters to be displayed in lowercase."}
- },
- default: "none",
- doc: "Specifies how to capitalize text, similar to the CSS `text-transform` property.",
- requires: ["text-field"],
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.33.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !1, parameters: ["zoom", "feature"]},
- "property-type": "data-driven"
- },
- "text-offset": {
- type: "array",
- doc: "Offset distance of text from its anchor. Positive values indicate right and down, while negative values indicate left and up. If used with text-variable-anchor, input values will be taken as absolute values. Offsets along the x- and y-axis will be applied automatically based on the anchor position.",
- value: "number",
- units: "ems",
- length: 2,
- default: [0, 0],
- requires: ["text-field", {"!": "text-radial-offset"}],
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.35.0", android: "5.1.0", ios: "3.6.0", macos: "0.5.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature"]},
- "property-type": "data-driven"
- },
- "text-allow-overlap": {
- type: "boolean",
- default: !1,
- doc: "If true, the text will be visible even if it collides with other previously drawn symbols.",
- requires: ["text-field"],
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "text-ignore-placement": {
- type: "boolean",
- default: !1,
- doc: "If true, other symbols can be visible even if they collide with the text.",
- requires: ["text-field"],
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "text-optional": {
- type: "boolean",
- default: !1,
- doc: "If true, icons will display without their corresponding text when the text collides with other symbols and the icon does not.",
- requires: ["text-field", "icon-image"],
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- visibility: {
- type: "enum",
- values: {visible: {doc: "The layer is shown."}, none: {doc: "The layer is not shown."}},
- default: "visible",
- doc: "Whether this layer is displayed.",
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- "property-type": "constant"
- }
- },
- layout_raster: {
- visibility: {
- type: "enum",
- values: {visible: {doc: "The layer is shown."}, none: {doc: "The layer is not shown."}},
- default: "visible",
- doc: "Whether this layer is displayed.",
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- "property-type": "constant"
- }
- },
- layout_hillshade: {
- visibility: {
- type: "enum",
- values: {visible: {doc: "The layer is shown."}, none: {doc: "The layer is not shown."}},
- default: "visible",
- doc: "Whether this layer is displayed.",
- "sdk-support": {"basic functionality": {js: "0.43.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}},
- "property-type": "constant"
- }
- },
- filter: {type: "array", value: "*", doc: "A filter selects specific features from a layer."},
- filter_operator: {
- type: "enum",
- values: {
- "==": {doc: '`["==", key, value]` equality: `feature[key] = value`'},
- "!=": {doc: '`["!=", key, value]` inequality: `feature[key] ≠ value`'},
- ">": {doc: '`[">", key, value]` greater than: `feature[key] > value`'},
- ">=": {doc: '`[">=", key, value]` greater than or equal: `feature[key] ≥ value`'},
- "<": {doc: '`["<", key, value]` less than: `feature[key] < value`'},
- "<=": {doc: '`["<=", key, value]` less than or equal: `feature[key] ≤ value`'},
- in: {doc: '`["in", key, v0, ..., vn]` set inclusion: `feature[key] ∈ {v0, ..., vn}`'},
- "!in": {doc: '`["!in", key, v0, ..., vn]` set exclusion: `feature[key] ∉ {v0, ..., vn}`'},
- all: {doc: '`["all", f0, ..., fn]` logical `AND`: `f0 ∧ ... ∧ fn`'},
- any: {doc: '`["any", f0, ..., fn]` logical `OR`: `f0 ∨ ... ∨ fn`'},
- none: {doc: '`["none", f0, ..., fn]` logical `NOR`: `¬f0 ∧ ... ∧ ¬fn`'},
- has: {doc: '`["has", key]` `feature[key]` exists'},
- "!has": {doc: '`["!has", key]` `feature[key]` does not exist'},
- within: {doc: '`["within", object]` feature geometry is within object geometry'}
- },
- doc: "The filter operator."
- },
- geometry_type: {
- type: "enum",
- values: {
- Point: {doc: "Filter to point geometries."},
- LineString: {doc: "Filter to line geometries."},
- Polygon: {doc: "Filter to polygon geometries."}
- },
- doc: "The geometry type for the filter to select."
- },
- function: {
- expression: {type: "expression", doc: "An expression."},
- stops: {type: "array", doc: "An array of stops.", value: "function_stop"},
- base: {
- type: "number",
- default: 1,
- minimum: 0,
- doc: "The exponential base of the interpolation curve. It controls the rate at which the result increases. Higher values make the result increase more towards the high end of the range. With `1` the stops are interpolated linearly."
- },
- property: {
- type: "string",
- doc: "The name of a feature property to use as the function input.",
- default: "$zoom"
- },
- type: {
- type: "enum",
- values: {
- identity: {doc: "Return the input value as the output value."},
- exponential: {doc: "Generate an output by interpolating between stops just less than and just greater than the function input."},
- interval: {doc: "Return the output value of the stop just less than the function input."},
- categorical: {doc: "Return the output value of the stop equal to the function input."}
- },
- doc: "The interpolation strategy to use in function evaluation.",
- default: "exponential"
- },
- colorSpace: {
- type: "enum",
- values: {
- rgb: {doc: "Use the RGB color space to interpolate color values"},
- lab: {doc: "Use the LAB color space to interpolate color values."},
- hcl: {doc: "Use the HCL color space to interpolate color values, interpolating the Hue, Chroma, and Luminance channels individually."}
- },
- doc: "The color space in which colors interpolated. Interpolating colors in perceptual color spaces like LAB and HCL tend to produce color ramps that look more consistent and produce colors that can be differentiated more easily than those interpolated in RGB space.",
- default: "rgb"
- },
- default: {
- type: "*",
- required: !1,
- doc: "A value to serve as a fallback function result when a value isn't otherwise available. It is used in the following circumstances:\n* In categorical functions, when the feature value does not match any of the stop domain values.\n* In property and zoom-and-property functions, when a feature does not contain a value for the specified property.\n* In identity functions, when the feature value is not valid for the style property (for example, if the function is being used for a `circle-color` property but the feature property value is not a string or not a valid color).\n* In interval or exponential property and zoom-and-property functions, when the feature value is not numeric.\nIf no default is provided, the style property's default is used in these circumstances."
- }
- },
- function_stop: {
- type: "array",
- minimum: 0,
- maximum: 24,
- value: ["number", "color"],
- length: 2,
- doc: "Zoom level and value pair."
- },
- expression: {
- type: "array",
- value: "*",
- minimum: 1,
- doc: "An expression defines a function that can be used for data-driven style properties or feature filters."
- },
- expression_name: {
- doc: "", type: "enum", values: {
- let: {
- doc: 'Binds expressions to named variables, which can then be referenced in the result expression using ["var", "variable_name"].',
- group: "Variable binding",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- var: {
- doc: 'References variable bound using "let".',
- group: "Variable binding",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- literal: {
- doc: "Provides a literal array or object value.",
- group: "Types",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- array: {
- doc: "Asserts that the input is an array (optionally with a specific item type and length). If, when the input expression is evaluated, it is not of the asserted type, then this assertion will cause the whole expression to be aborted.",
- group: "Types",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- at: {
- doc: "Retrieves an item from an array.",
- group: "Lookup",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- in: {
- doc: "Determines whether an item exists in an array or a substring exists in a string.",
- group: "Lookup",
- "sdk-support": {"basic functionality": {js: "1.6.0", android: "9.1.0", ios: "5.8.0", macos: "0.15.0"}}
- },
- "index-of": {
- doc: "Returns the first position at which an item can be found in an array or a substring can be found in a string, or `-1` if the input cannot be found. Accepts an optional index from where to begin the search.",
- group: "Lookup",
- "sdk-support": {"basic functionality": {js: "1.10.0"}}
- },
- slice: {
- doc: "Returns an item from an array or a substring from a string from a specified start index, or between a start index and an end index if set. The return value is inclusive of the start index but not of the end index.",
- group: "Lookup",
- "sdk-support": {"basic functionality": {js: "1.10.0"}}
- },
- case: {
- doc: "Selects the first output whose corresponding test condition evaluates to true, or the fallback value otherwise.",
- group: "Decision",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- match: {
- doc: 'Selects the output whose label value matches the input value, or the fallback value if no match is found. The input can be any expression (e.g. `["get", "building_type"]`). Each label must be either:\n - a single literal value; or\n - an array of literal values, whose values must be all strings or all numbers (e.g. `[100, 101]` or `["c", "b"]`). The input matches if any of the values in the array matches, similar to the `"in"` operator.\nEach label must be unique. If the input type does not match the type of the labels, the result will be the fallback value.',
- group: "Decision",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- coalesce: {
- doc: "Evaluates each expression in turn until the first non-null value is obtained, and returns that value.",
- group: "Decision",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- step: {
- doc: 'Produces discrete, stepped results by evaluating a piecewise-constant function defined by pairs of input and output values ("stops"). The `input` may be any numeric expression (e.g., `["get", "population"]`). Stop inputs must be numeric literals in strictly ascending order. Returns the output value of the stop just less than the input, or the first output if the input is less than the first stop.',
- group: "Ramps, scales, curves",
- "sdk-support": {"basic functionality": {js: "0.42.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- interpolate: {
- doc: 'Produces continuous, smooth results by interpolating between pairs of input and output values ("stops"). The `input` may be any numeric expression (e.g., `["get", "population"]`). Stop inputs must be numeric literals in strictly ascending order. The output type must be `number`, `array<number>`, or `color`.\n\nInterpolation types:\n- `["linear"]`: Interpolates linearly between the pair of stops just less than and just greater than the input.\n- `["exponential", base]`: Interpolates exponentially between the stops just less than and just greater than the input. `base` controls the rate at which the output increases: higher values make the output increase more towards the high end of the range. With values close to 1 the output increases linearly.\n- `["cubic-bezier", x1, y1, x2, y2]`: Interpolates using the cubic bezier curve defined by the given control points.',
- group: "Ramps, scales, curves",
- "sdk-support": {"basic functionality": {js: "0.42.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- "interpolate-hcl": {
- doc: 'Produces continuous, smooth results by interpolating between pairs of input and output values ("stops"). Works like `interpolate`, but the output type must be `color`, and the interpolation is performed in the Hue-Chroma-Luminance color space.',
- group: "Ramps, scales, curves",
- "sdk-support": {"basic functionality": {js: "0.49.0"}}
- },
- "interpolate-lab": {
- doc: 'Produces continuous, smooth results by interpolating between pairs of input and output values ("stops"). Works like `interpolate`, but the output type must be `color`, and the interpolation is performed in the CIELAB color space.',
- group: "Ramps, scales, curves",
- "sdk-support": {"basic functionality": {js: "0.49.0"}}
- },
- ln2: {
- doc: "Returns mathematical constant ln(2).",
- group: "Math",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- pi: {
- doc: "Returns the mathematical constant pi.",
- group: "Math",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- e: {
- doc: "Returns the mathematical constant e.",
- group: "Math",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- typeof: {
- doc: "Returns a string describing the type of the given value.",
- group: "Types",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- string: {
- doc: "Asserts that the input value is a string. If multiple values are provided, each one is evaluated in order until a string is obtained. If none of the inputs are strings, the expression is an error.",
- group: "Types",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- number: {
- doc: "Asserts that the input value is a number. If multiple values are provided, each one is evaluated in order until a number is obtained. If none of the inputs are numbers, the expression is an error.",
- group: "Types",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- boolean: {
- doc: "Asserts that the input value is a boolean. If multiple values are provided, each one is evaluated in order until a boolean is obtained. If none of the inputs are booleans, the expression is an error.",
- group: "Types",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- object: {
- doc: "Asserts that the input value is an object. If multiple values are provided, each one is evaluated in order until an object is obtained. If none of the inputs are objects, the expression is an error.",
- group: "Types",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- collator: {
- doc: "Returns a `collator` for use in locale-dependent comparison operations. The `case-sensitive` and `diacritic-sensitive` options default to `false`. The `locale` argument specifies the IETF language tag of the locale to use. If none is provided, the default locale is used. If the requested locale is not available, the `collator` will use a system-defined fallback locale. Use `resolved-locale` to test the results of locale fallback behavior.",
- group: "Types",
- "sdk-support": {"basic functionality": {js: "0.45.0", android: "6.5.0", ios: "4.2.0", macos: "0.9.0"}}
- },
- format: {
- doc: 'Returns a `formatted` string for displaying mixed-format text in the `text-field` property. The input may contain a string literal or expression, including an [`\'image\'`](#types-image) expression. Strings may be followed by a style override object that supports the following properties:\n- `"text-font"`: Overrides the font stack specified by the root layout property.\n- `"text-color"`: Overrides the color specified by the root paint property.\n- `"font-scale"`: Applies a scaling factor on `text-size` as specified by the root layout property.',
- group: "Types",
- "sdk-support": {
- "basic functionality": {js: "0.48.0", android: "6.7.0", ios: "4.6.0", macos: "0.12.0"},
- "text-font": {js: "0.48.0", android: "6.7.0", ios: "4.6.0", macos: "0.12.0"},
- "font-scale": {js: "0.48.0", android: "6.7.0", ios: "4.6.0", macos: "0.12.0"},
- "text-color": {js: "1.3.0", android: "7.3.0", ios: "4.10.0", macos: "0.14.0"},
- image: {js: "1.6.0", android: "8.6.0", ios: "5.7.0", macos: "0.15.0"}
- }
- },
- image: {
- doc: "Returns an `image` type for use in `icon-image`, `*-pattern` entries and as a section in the `format` expression. If set, the `image` argument will check that the requested image exists in the style and will return either the resolved image name or `null`, depending on whether or not the image is currently in the style. This validation process is synchronous and requires the image to have been added to the style before requesting it in the `image` argument.",
- group: "Types",
- "sdk-support": {"basic functionality": {js: "1.4.0", android: "8.6.0", ios: "5.7.0", macos: "0.15.0"}}
- },
- "number-format": {
- doc: "Converts the input number into a string representation using the providing formatting rules. If set, the `locale` argument specifies the locale to use, as a BCP 47 language tag. If set, the `currency` argument specifies an ISO 4217 code to use for currency-style formatting. If set, the `min-fraction-digits` and `max-fraction-digits` arguments specify the minimum and maximum number of fractional digits to include.",
- group: "Types",
- "sdk-support": {"basic functionality": {js: "0.54.0"}}
- },
- "to-string": {
- doc: 'Converts the input value to a string. If the input is `null`, the result is `""`. If the input is a boolean, the result is `"true"` or `"false"`. If the input is a number, it is converted to a string as specified by the ["NumberToString" algorithm](https://tc39.github.io/ecma262/#sec-tostring-applied-to-the-number-type) of the ECMAScript Language Specification. If the input is a color, it is converted to a string of the form `"rgba(r,g,b,a)"`, where `r`, `g`, and `b` are numerals ranging from 0 to 255, and `a` ranges from 0 to 1. Otherwise, the input is converted to a string in the format specified by the [`JSON.stringify`](https://tc39.github.io/ecma262/#sec-json.stringify) function of the ECMAScript Language Specification.',
- group: "Types",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- "to-number": {
- doc: 'Converts the input value to a number, if possible. If the input is `null` or `false`, the result is 0. If the input is `true`, the result is 1. If the input is a string, it is converted to a number as specified by the ["ToNumber Applied to the String Type" algorithm](https://tc39.github.io/ecma262/#sec-tonumber-applied-to-the-string-type) of the ECMAScript Language Specification. If multiple values are provided, each one is evaluated in order until the first successful conversion is obtained. If none of the inputs can be converted, the expression is an error.',
- group: "Types",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- "to-boolean": {
- doc: "Converts the input value to a boolean. The result is `false` when then input is an empty string, 0, `false`, `null`, or `NaN`; otherwise it is `true`.",
- group: "Types",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- "to-rgba": {
- doc: "Returns a four-element array containing the input color's red, green, blue, and alpha components, in that order.",
- group: "Color",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- "to-color": {
- doc: "Converts the input value to a color. If multiple values are provided, each one is evaluated in order until the first successful conversion is obtained. If none of the inputs can be converted, the expression is an error.",
- group: "Types",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- rgb: {
- doc: "Creates a color value from red, green, and blue components, which must range between 0 and 255, and an alpha component of 1. If any component is out of range, the expression is an error.",
- group: "Color",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- rgba: {
- doc: "Creates a color value from red, green, blue components, which must range between 0 and 255, and an alpha component which must range between 0 and 1. If any component is out of range, the expression is an error.",
- group: "Color",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- get: {
- doc: "Retrieves a property value from the current feature's properties, or from another object if a second argument is provided. Returns null if the requested property is missing.",
- group: "Lookup",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- has: {
- doc: "Tests for the presence of an property value in the current feature's properties, or from another object if a second argument is provided.",
- group: "Lookup",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- length: {
- doc: "Gets the length of an array or string.",
- group: "Lookup",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- properties: {
- doc: 'Gets the feature properties object. Note that in some cases, it may be more efficient to use ["get", "property_name"] directly.',
- group: "Feature data",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- "feature-state": {
- doc: "Retrieves a property value from the current feature's state. Returns null if the requested property is not present on the feature's state. A feature's state is not part of the GeoJSON or vector tile data, and must be set programmatically on each feature. Features are identified by their `id` attribute, which must be an integer or a string that can be cast to an integer. Note that [\"feature-state\"] can only be used with paint properties that support data-driven styling.",
- group: "Feature data",
- "sdk-support": {"basic functionality": {js: "0.46.0"}}
- },
- "geometry-type": {
- doc: "Gets the feature's geometry type: `Point`, `MultiPoint`, `LineString`, `MultiLineString`, `Polygon`, `MultiPolygon`.",
- group: "Feature data",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- id: {
- doc: "Gets the feature's id, if it has one.",
- group: "Feature data",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- zoom: {
- doc: 'Gets the current zoom level. Note that in style layout and paint properties, ["zoom"] may only appear as the input to a top-level "step" or "interpolate" expression.',
- group: "Zoom",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- "heatmap-density": {
- doc: "Gets the kernel density estimation of a pixel in a heatmap layer, which is a relative measure of how many data points are crowded around a particular pixel. Can only be used in the `heatmap-color` property.",
- group: "Heatmap",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- "line-progress": {
- doc: "Gets the progress along a gradient line. Can only be used in the `line-gradient` property.",
- group: "Feature data",
- "sdk-support": {"basic functionality": {js: "0.45.0", android: "6.5.0", ios: "4.6.0", macos: "0.12.0"}}
- },
- "sky-radial-progress": {
- doc: "Gets the distance of a point on the sky from the sun position. Returns 0 at sun position and 1 when the distance reaches `sky-gradient-radius`. Can only be used in the `sky-gradient` property.",
- group: "sky",
- "sdk-support": {"basic functionality": {js: "2.0.0"}}
- },
- accumulated: {
- doc: "Gets the value of a cluster property accumulated so far. Can only be used in the `clusterProperties` option of a clustered GeoJSON source.",
- group: "Feature data",
- "sdk-support": {"basic functionality": {js: "0.53.0"}}
- },
- "+": {
- doc: "Returns the sum of the inputs.",
- group: "Math",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- "*": {
- doc: "Returns the product of the inputs.",
- group: "Math",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- "-": {
- doc: "For two inputs, returns the result of subtracting the second input from the first. For a single input, returns the result of subtracting it from 0.",
- group: "Math",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- "/": {
- doc: "Returns the result of floating point division of the first input by the second.",
- group: "Math",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- "%": {
- doc: "Returns the remainder after integer division of the first input by the second.",
- group: "Math",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- "^": {
- doc: "Returns the result of raising the first input to the power specified by the second.",
- group: "Math",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- sqrt: {
- doc: "Returns the square root of the input.",
- group: "Math",
- "sdk-support": {"basic functionality": {js: "0.42.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- log10: {
- doc: "Returns the base-ten logarithm of the input.",
- group: "Math",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- ln: {
- doc: "Returns the natural logarithm of the input.",
- group: "Math",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- log2: {
- doc: "Returns the base-two logarithm of the input.",
- group: "Math",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- sin: {
- doc: "Returns the sine of the input.",
- group: "Math",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- cos: {
- doc: "Returns the cosine of the input.",
- group: "Math",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- tan: {
- doc: "Returns the tangent of the input.",
- group: "Math",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- asin: {
- doc: "Returns the arcsine of the input.",
- group: "Math",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- acos: {
- doc: "Returns the arccosine of the input.",
- group: "Math",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- atan: {
- doc: "Returns the arctangent of the input.",
- group: "Math",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- min: {
- doc: "Returns the minimum value of the inputs.",
- group: "Math",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- max: {
- doc: "Returns the maximum value of the inputs.",
- group: "Math",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- round: {
- doc: 'Rounds the input to the nearest integer. Halfway values are rounded away from zero. For example, `["round", -1.5]` evaluates to -2.',
- group: "Math",
- "sdk-support": {"basic functionality": {js: "0.45.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- abs: {
- doc: "Returns the absolute value of the input.",
- group: "Math",
- "sdk-support": {"basic functionality": {js: "0.45.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- ceil: {
- doc: "Returns the smallest integer that is greater than or equal to the input.",
- group: "Math",
- "sdk-support": {"basic functionality": {js: "0.45.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- floor: {
- doc: "Returns the largest integer that is less than or equal to the input.",
- group: "Math",
- "sdk-support": {"basic functionality": {js: "0.45.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- distance: {
- doc: "Returns the shortest distance in meters between the evaluated feature and the input geometry. The input value can be a valid GeoJSON of type `Point`, `MultiPoint`, `LineString`, `MultiLineString`, `Polygon`, `MultiPolygon`, `Feature`, or `FeatureCollection`. Distance values returned may vary in precision due to loss in precision from encoding geometries, particularly below zoom level 13.",
- group: "Math",
- "sdk-support": {"basic functionality": {android: "9.2.0", ios: "5.9.0", macos: "0.16.0"}}
- },
- "==": {
- doc: "Returns `true` if the input values are equal, `false` otherwise. The comparison is strictly typed: values of different runtime types are always considered unequal. Cases where the types are known to be different at parse time are considered invalid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",
- group: "Decision",
- "sdk-support": {
- "basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"},
- collator: {js: "0.45.0", android: "6.5.0", ios: "4.2.0", macos: "0.9.0"}
- }
- },
- "!=": {
- doc: "Returns `true` if the input values are not equal, `false` otherwise. The comparison is strictly typed: values of different runtime types are always considered unequal. Cases where the types are known to be different at parse time are considered invalid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",
- group: "Decision",
- "sdk-support": {
- "basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"},
- collator: {js: "0.45.0", android: "6.5.0", ios: "4.2.0", macos: "0.9.0"}
- }
- },
- ">": {
- doc: "Returns `true` if the first input is strictly greater than the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",
- group: "Decision",
- "sdk-support": {
- "basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"},
- collator: {js: "0.45.0", android: "6.5.0", ios: "4.2.0", macos: "0.9.0"}
- }
- },
- "<": {
- doc: "Returns `true` if the first input is strictly less than the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",
- group: "Decision",
- "sdk-support": {
- "basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"},
- collator: {js: "0.45.0", android: "6.5.0", ios: "4.2.0", macos: "0.9.0"}
- }
- },
- ">=": {
- doc: "Returns `true` if the first input is greater than or equal to the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",
- group: "Decision",
- "sdk-support": {
- "basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"},
- collator: {js: "0.45.0", android: "6.5.0", ios: "4.2.0", macos: "0.9.0"}
- }
- },
- "<=": {
- doc: "Returns `true` if the first input is less than or equal to the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",
- group: "Decision",
- "sdk-support": {
- "basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"},
- collator: {js: "0.45.0", android: "6.5.0", ios: "4.2.0", macos: "0.9.0"}
- }
- },
- all: {
- doc: "Returns `true` if all the inputs are `true`, `false` otherwise. The inputs are evaluated in order, and evaluation is short-circuiting: once an input expression evaluates to `false`, the result is `false` and no further input expressions are evaluated.",
- group: "Decision",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- any: {
- doc: "Returns `true` if any of the inputs are `true`, `false` otherwise. The inputs are evaluated in order, and evaluation is short-circuiting: once an input expression evaluates to `true`, the result is `true` and no further input expressions are evaluated.",
- group: "Decision",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- "!": {
- doc: "Logical negation. Returns `true` if the input is `false`, and `false` if the input is `true`.",
- group: "Decision",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- within: {
- doc: "Returns `true` if the evaluated feature is fully contained inside a boundary of the input geometry, `false` otherwise. The input value can be a valid GeoJSON of type `Polygon`, `MultiPolygon`, `Feature`, or `FeatureCollection`. Supported features for evaluation:\n- `Point`: Returns `false` if a point is on the boundary or falls outside the boundary.\n- `LineString`: Returns `false` if any part of a line falls outside the boundary, the line intersects the boundary, or a line's endpoint is on the boundary.",
- group: "Decision",
- "sdk-support": {"basic functionality": {js: "1.9.0", android: "9.1.0", ios: "5.8.0", macos: "0.15.0"}}
- },
- "is-supported-script": {
- doc: "Returns `true` if the input string is expected to render legibly. Returns `false` if the input string contains sections that cannot be rendered without potential loss of meaning (e.g. Indic scripts that require complex text shaping, or right-to-left scripts if the the `mapbox-gl-rtl-text` plugin is not in use in Mapbox GL JS).",
- group: "String",
- "sdk-support": {"basic functionality": {js: "0.45.0", android: "6.6.0"}}
- },
- upcase: {
- doc: "Returns the input string converted to uppercase. Follows the Unicode Default Case Conversion algorithm and the locale-insensitive case mappings in the Unicode Character Database.",
- group: "String",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- downcase: {
- doc: "Returns the input string converted to lowercase. Follows the Unicode Default Case Conversion algorithm and the locale-insensitive case mappings in the Unicode Character Database.",
- group: "String",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- concat: {
- doc: "Returns a `string` consisting of the concatenation of the inputs. Each input is converted to a string as if by `to-string`.",
- group: "String",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}}
- },
- "resolved-locale": {
- doc: "Returns the IETF language tag of the locale being used by the provided `collator`. This can be used to determine the default system locale, or to determine if a requested locale was successfully loaded.",
- group: "String",
- "sdk-support": {"basic functionality": {js: "0.45.0", android: "6.5.0", ios: "4.2.0", macos: "0.9.0"}}
- }
- }
- },
- light: {
- anchor: {
- type: "enum",
- default: "viewport",
- values: {
- map: {doc: "The position of the light source is aligned to the rotation of the map."},
- viewport: {doc: "The position of the light source is aligned to the rotation of the viewport."}
- },
- "property-type": "data-constant",
- transition: !1,
- expression: {interpolated: !1, parameters: ["zoom"]},
- doc: "Whether extruded geometries are lit relative to the map or viewport.",
- example: "map",
- "sdk-support": {"basic functionality": {js: "0.27.0", android: "5.1.0", ios: "3.6.0", macos: "0.5.0"}}
- },
- position: {
- type: "array",
- default: [1.15, 210, 30],
- length: 3,
- value: "number",
- "property-type": "data-constant",
- transition: !0,
- expression: {interpolated: !0, parameters: ["zoom"]},
- doc: "Position of the light source relative to lit (extruded) geometries, in [r radial coordinate, a azimuthal angle, p polar angle] where r indicates the distance from the center of the base of an object to its light, a indicates the position of the light relative to 0° (0° when `light.anchor` is set to `viewport` corresponds to the top of the viewport, or 0° when `light.anchor` is set to `map` corresponds to due north, and degrees proceed clockwise), and p indicates the height of the light (from 0°, directly above, to 180°, directly below).",
- example: [1.5, 90, 80],
- "sdk-support": {"basic functionality": {js: "0.27.0", android: "5.1.0", ios: "3.6.0", macos: "0.5.0"}}
- },
- color: {
- type: "color",
- "property-type": "data-constant",
- default: "#ffffff",
- expression: {interpolated: !0, parameters: ["zoom"]},
- transition: !0,
- doc: "Color tint for lighting extruded geometries.",
- "sdk-support": {"basic functionality": {js: "0.27.0", android: "5.1.0", ios: "3.6.0", macos: "0.5.0"}}
- },
- intensity: {
- type: "number",
- "property-type": "data-constant",
- default: .5,
- minimum: 0,
- maximum: 1,
- expression: {interpolated: !0, parameters: ["zoom"]},
- transition: !0,
- doc: "Intensity of lighting (on a scale from 0 to 1). Higher numbers will present as more extreme contrast.",
- "sdk-support": {"basic functionality": {js: "0.27.0", android: "5.1.0", ios: "3.6.0", macos: "0.5.0"}}
- }
- },
- terrain: {
- source: {
- type: "string",
- doc: "Name of a source of `raster_dem` type to be used for terrain elevation.",
- required: !0
- },
- exaggeration: {
- type: "number",
- "property-type": "data-constant",
- default: 1,
- minimum: 0,
- maximum: 1e3,
- expression: {interpolated: !0, parameters: ["zoom"]},
- transition: !0,
- doc: "Exaggerates the elevation of the terrain by multiplying the data from the DEM with this value.",
- "sdk-support": {"basic functionality": {js: "2.0.0"}}
- }
- },
- paint: ["paint_fill", "paint_line", "paint_circle", "paint_heatmap", "paint_fill-extrusion", "paint_symbol", "paint_raster", "paint_hillshade", "paint_background", "paint_sky"],
- paint_fill: {
- "fill-antialias": {
- type: "boolean",
- default: !0,
- doc: "Whether or not the fill should be antialiased.",
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "fill-opacity": {
- type: "number",
- default: 1,
- minimum: 0,
- maximum: 1,
- doc: "The opacity of the entire fill layer. In contrast to the `fill-color`, this value will also affect the 1px stroke around the fill, if the stroke is used.",
- transition: !0,
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.21.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "fill-color": {
- type: "color",
- default: "#000000",
- doc: "The color of the filled part of this layer. This color can be specified as `rgba` with an alpha component and the color's opacity will not affect the opacity of the 1px stroke, if it is used.",
- transition: !0,
- requires: [{"!": "fill-pattern"}],
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.19.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "fill-outline-color": {
- type: "color",
- doc: "The outline color of the fill. Matches the value of `fill-color` if unspecified.",
- transition: !0,
- requires: [{"!": "fill-pattern"}, {"fill-antialias": !0}],
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.19.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "fill-translate": {
- type: "array",
- value: "number",
- length: 2,
- default: [0, 0],
- transition: !0,
- units: "pixels",
- doc: "The geometry's offset. Values are [x, y] where negatives indicate left and up, respectively.",
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "fill-translate-anchor": {
- type: "enum",
- values: {
- map: {doc: "The fill is translated relative to the map."},
- viewport: {doc: "The fill is translated relative to the viewport."}
- },
- doc: "Controls the frame of reference for `fill-translate`.",
- default: "map",
- requires: ["fill-translate"],
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "fill-pattern": {
- type: "resolvedImage",
- transition: !0,
- doc: "Name of image in sprite to use for drawing image fills. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.",
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.49.0", android: "6.5.0", macos: "0.11.0", ios: "4.4.0"}
- },
- expression: {interpolated: !1, parameters: ["zoom", "feature"]},
- "property-type": "cross-faded-data-driven"
- }
- },
- "paint_fill-extrusion": {
- "fill-extrusion-opacity": {
- type: "number",
- default: 1,
- minimum: 0,
- maximum: 1,
- doc: "The opacity of the entire fill extrusion layer. This is rendered on a per-layer, not per-feature, basis, and data-driven styling is not available.",
- transition: !0,
- "sdk-support": {"basic functionality": {js: "0.27.0", android: "5.1.0", ios: "3.6.0", macos: "0.5.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "fill-extrusion-color": {
- type: "color",
- default: "#000000",
- doc: "The base color of the extruded fill. The extrusion's surfaces will be shaded differently based on this color in combination with the root `light` settings. If this color is specified as `rgba` with an alpha component, the alpha component will be ignored; use `fill-extrusion-opacity` to set layer opacity.",
- transition: !0,
- requires: [{"!": "fill-extrusion-pattern"}],
- "sdk-support": {
- "basic functionality": {js: "0.27.0", android: "5.1.0", ios: "3.6.0", macos: "0.5.0"},
- "data-driven styling": {js: "0.27.0", android: "5.1.0", ios: "3.6.0", macos: "0.5.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "fill-extrusion-translate": {
- type: "array",
- value: "number",
- length: 2,
- default: [0, 0],
- transition: !0,
- units: "pixels",
- doc: "The geometry's offset. Values are [x, y] where negatives indicate left and up (on the flat plane), respectively.",
- "sdk-support": {"basic functionality": {js: "0.27.0", android: "5.1.0", ios: "3.6.0", macos: "0.5.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "fill-extrusion-translate-anchor": {
- type: "enum",
- values: {
- map: {doc: "The fill extrusion is translated relative to the map."},
- viewport: {doc: "The fill extrusion is translated relative to the viewport."}
- },
- doc: "Controls the frame of reference for `fill-extrusion-translate`.",
- default: "map",
- requires: ["fill-extrusion-translate"],
- "sdk-support": {"basic functionality": {js: "0.27.0", android: "5.1.0", ios: "3.6.0", macos: "0.5.0"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "fill-extrusion-pattern": {
- type: "resolvedImage",
- transition: !0,
- doc: "Name of image in sprite to use for drawing images on extruded fills. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.",
- "sdk-support": {
- "basic functionality": {js: "0.27.0", android: "5.1.0", ios: "3.6.0", macos: "0.5.0"},
- "data-driven styling": {js: "0.49.0", android: "6.5.0", macos: "0.11.0", ios: "4.4.0"}
- },
- expression: {interpolated: !1, parameters: ["zoom", "feature"]},
- "property-type": "cross-faded-data-driven"
- },
- "fill-extrusion-height": {
- type: "number",
- default: 0,
- minimum: 0,
- units: "meters",
- doc: "The height with which to extrude this layer.",
- transition: !0,
- "sdk-support": {
- "basic functionality": {js: "0.27.0", android: "5.1.0", ios: "3.6.0", macos: "0.5.0"},
- "data-driven styling": {js: "0.27.0", android: "5.1.0", ios: "3.6.0", macos: "0.5.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "fill-extrusion-base": {
- type: "number",
- default: 0,
- minimum: 0,
- units: "meters",
- doc: "The height with which to extrude the base of this layer. Must be less than or equal to `fill-extrusion-height`.",
- transition: !0,
- requires: ["fill-extrusion-height"],
- "sdk-support": {
- "basic functionality": {js: "0.27.0", android: "5.1.0", ios: "3.6.0", macos: "0.5.0"},
- "data-driven styling": {js: "0.27.0", android: "5.1.0", ios: "3.6.0", macos: "0.5.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "fill-extrusion-vertical-gradient": {
- type: "boolean",
- default: !0,
- doc: "Whether to apply a vertical gradient to the sides of a fill-extrusion layer. If true, sides will be shaded slightly darker farther down.",
- transition: !1,
- "sdk-support": {"basic functionality": {js: "0.50.0", ios: "4.7.0", macos: "0.13.0"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- }
- },
- paint_line: {
- "line-opacity": {
- type: "number",
- doc: "The opacity at which the line will be drawn.",
- default: 1,
- minimum: 0,
- maximum: 1,
- transition: !0,
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.29.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "line-color": {
- type: "color",
- doc: "The color with which the line will be drawn.",
- default: "#000000",
- transition: !0,
- requires: [{"!": "line-pattern"}],
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.23.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "line-translate": {
- type: "array",
- value: "number",
- length: 2,
- default: [0, 0],
- transition: !0,
- units: "pixels",
- doc: "The geometry's offset. Values are [x, y] where negatives indicate left and up, respectively.",
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "line-translate-anchor": {
- type: "enum",
- values: {
- map: {doc: "The line is translated relative to the map."},
- viewport: {doc: "The line is translated relative to the viewport."}
- },
- doc: "Controls the frame of reference for `line-translate`.",
- default: "map",
- requires: ["line-translate"],
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "line-width": {
- type: "number",
- default: 1,
- minimum: 0,
- transition: !0,
- units: "pixels",
- doc: "Stroke thickness.",
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.39.0", android: "5.2.0", ios: "3.7.0", macos: "0.6.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "line-gap-width": {
- type: "number",
- default: 0,
- minimum: 0,
- doc: "Draws a line casing outside of a line's actual path. Value indicates the width of the inner gap.",
- transition: !0,
- units: "pixels",
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.29.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "line-offset": {
- type: "number",
- default: 0,
- doc: "The line's offset. For linear features, a positive value offsets the line to the right, relative to the direction of the line, and a negative value to the left. For polygon features, a positive value results in an inset, and a negative value results in an outset.",
- transition: !0,
- units: "pixels",
- "sdk-support": {
- "basic functionality": {js: "0.12.1", android: "3.0.0", ios: "3.1.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.29.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "line-blur": {
- type: "number",
- default: 0,
- minimum: 0,
- transition: !0,
- units: "pixels",
- doc: "Blur applied to the line, in pixels.",
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.29.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "line-dasharray": {
- type: "array",
- value: "number",
- doc: "Specifies the lengths of the alternating dashes and gaps that form the dash pattern. The lengths are later scaled by the line width. To convert a dash length to pixels, multiply the length by the current line width. Note that GeoJSON sources with `lineMetrics: true` specified won't render dashed lines to the expected scale. Also note that zoom-dependent expressions will be evaluated only at integer zoom levels.",
- minimum: 0,
- transition: !0,
- units: "line widths",
- requires: [{"!": "line-pattern"}],
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {}
- },
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "cross-faded"
- },
- "line-pattern": {
- type: "resolvedImage",
- transition: !0,
- doc: "Name of image in sprite to use for drawing image lines. For seamless patterns, image width must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.",
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.49.0", android: "6.5.0", macos: "0.11.0", ios: "4.4.0"}
- },
- expression: {interpolated: !1, parameters: ["zoom", "feature"]},
- "property-type": "cross-faded-data-driven"
- },
- "line-gradient": {
- type: "color",
- doc: 'Defines a gradient with which to color a line feature. Can only be used with GeoJSON sources that specify `"lineMetrics": true`.',
- transition: !1,
- requires: [{"!": "line-dasharray"}, {"!": "line-pattern"}, {source: "geojson", has: {lineMetrics: !0}}],
- "sdk-support": {
- "basic functionality": {js: "0.45.0", android: "6.5.0", ios: "4.4.0", macos: "0.11.0"},
- "data-driven styling": {}
- },
- expression: {interpolated: !0, parameters: ["line-progress"]},
- "property-type": "color-ramp"
- }
- },
- paint_circle: {
- "circle-radius": {
- type: "number",
- default: 5,
- minimum: 0,
- transition: !0,
- units: "pixels",
- doc: "Circle radius.",
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.18.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "circle-color": {
- type: "color",
- default: "#000000",
- doc: "The fill color of the circle.",
- transition: !0,
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.18.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "circle-blur": {
- type: "number",
- default: 0,
- doc: "Amount to blur the circle. 1 blurs the circle such that only the centerpoint is full opacity.",
- transition: !0,
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.20.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "circle-opacity": {
- type: "number",
- doc: "The opacity at which the circle will be drawn.",
- default: 1,
- minimum: 0,
- maximum: 1,
- transition: !0,
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.20.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "circle-translate": {
- type: "array",
- value: "number",
- length: 2,
- default: [0, 0],
- transition: !0,
- units: "pixels",
- doc: "The geometry's offset. Values are [x, y] where negatives indicate left and up, respectively.",
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "circle-translate-anchor": {
- type: "enum",
- values: {
- map: {doc: "The circle is translated relative to the map."},
- viewport: {doc: "The circle is translated relative to the viewport."}
- },
- doc: "Controls the frame of reference for `circle-translate`.",
- default: "map",
- requires: ["circle-translate"],
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "circle-pitch-scale": {
- type: "enum",
- values: {
- map: {doc: "Circles are scaled according to their apparent distance to the camera."},
- viewport: {doc: "Circles are not scaled."}
- },
- default: "map",
- doc: "Controls the scaling behavior of the circle when the map is pitched.",
- "sdk-support": {"basic functionality": {js: "0.21.0", android: "4.2.0", ios: "3.4.0", macos: "0.2.1"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "circle-pitch-alignment": {
- type: "enum",
- values: {
- map: {doc: "The circle is aligned to the plane of the map."},
- viewport: {doc: "The circle is aligned to the plane of the viewport."}
- },
- default: "viewport",
- doc: "Orientation of circle when map is pitched.",
- "sdk-support": {"basic functionality": {js: "0.39.0", android: "5.2.0", ios: "3.7.0", macos: "0.6.0"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "circle-stroke-width": {
- type: "number",
- default: 0,
- minimum: 0,
- transition: !0,
- units: "pixels",
- doc: "The width of the circle's stroke. Strokes are placed outside of the `circle-radius`.",
- "sdk-support": {
- "basic functionality": {js: "0.29.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"},
- "data-driven styling": {js: "0.29.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "circle-stroke-color": {
- type: "color",
- default: "#000000",
- doc: "The stroke color of the circle.",
- transition: !0,
- "sdk-support": {
- "basic functionality": {js: "0.29.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"},
- "data-driven styling": {js: "0.29.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "circle-stroke-opacity": {
- type: "number",
- doc: "The opacity of the circle's stroke.",
- default: 1,
- minimum: 0,
- maximum: 1,
- transition: !0,
- "sdk-support": {
- "basic functionality": {js: "0.29.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"},
- "data-driven styling": {js: "0.29.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- }
- },
- paint_heatmap: {
- "heatmap-radius": {
- type: "number",
- default: 30,
- minimum: 1,
- transition: !0,
- units: "pixels",
- doc: "Radius of influence of one heatmap point in pixels. Increasing the value makes the heatmap smoother, but less detailed.",
- "sdk-support": {
- "basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"},
- "data-driven styling": {js: "0.43.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "heatmap-weight": {
- type: "number",
- default: 1,
- minimum: 0,
- transition: !1,
- doc: "A measure of how much an individual point contributes to the heatmap. A value of 10 would be equivalent to having 10 points of weight 1 in the same spot. Especially useful when combined with clustering.",
- "sdk-support": {
- "basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"},
- "data-driven styling": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "heatmap-intensity": {
- type: "number",
- default: 1,
- minimum: 0,
- transition: !0,
- doc: "Similar to `heatmap-weight` but controls the intensity of the heatmap globally. Primarily used for adjusting the heatmap based on zoom level.",
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "heatmap-color": {
- type: "color",
- default: ["interpolate", ["linear"], ["heatmap-density"], 0, "rgba(0, 0, 255, 0)", .1, "royalblue", .3, "cyan", .5, "lime", .7, "yellow", 1, "red"],
- doc: 'Defines the color of each pixel based on its density value in a heatmap. Should be an expression that uses `["heatmap-density"]` as input.',
- transition: !1,
- "sdk-support": {
- "basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"},
- "data-driven styling": {}
- },
- expression: {interpolated: !0, parameters: ["heatmap-density"]},
- "property-type": "color-ramp"
- },
- "heatmap-opacity": {
- type: "number",
- doc: "The global opacity at which the heatmap layer will be drawn.",
- default: 1,
- minimum: 0,
- maximum: 1,
- transition: !0,
- "sdk-support": {"basic functionality": {js: "0.41.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- }
- },
- paint_symbol: {
- "icon-opacity": {
- doc: "The opacity at which the icon will be drawn.",
- type: "number",
- default: 1,
- minimum: 0,
- maximum: 1,
- transition: !0,
- requires: ["icon-image"],
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.33.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "icon-color": {
- type: "color",
- default: "#000000",
- transition: !0,
- doc: "The color of the icon. This can only be used with sdf icons.",
- requires: ["icon-image"],
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.33.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "icon-halo-color": {
- type: "color",
- default: "rgba(0, 0, 0, 0)",
- transition: !0,
- doc: "The color of the icon's halo. Icon halos can only be used with SDF icons.",
- requires: ["icon-image"],
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.33.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "icon-halo-width": {
- type: "number",
- default: 0,
- minimum: 0,
- transition: !0,
- units: "pixels",
- doc: "Distance of halo to the icon outline.",
- requires: ["icon-image"],
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.33.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "icon-halo-blur": {
- type: "number",
- default: 0,
- minimum: 0,
- transition: !0,
- units: "pixels",
- doc: "Fade out the halo towards the outside.",
- requires: ["icon-image"],
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.33.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "icon-translate": {
- type: "array",
- value: "number",
- length: 2,
- default: [0, 0],
- transition: !0,
- units: "pixels",
- doc: "Distance that the icon's anchor is moved from its original placement. Positive values indicate right and down, while negative values indicate left and up.",
- requires: ["icon-image"],
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "icon-translate-anchor": {
- type: "enum",
- values: {
- map: {doc: "Icons are translated relative to the map."},
- viewport: {doc: "Icons are translated relative to the viewport."}
- },
- doc: "Controls the frame of reference for `icon-translate`.",
- default: "map",
- requires: ["icon-image", "icon-translate"],
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "text-opacity": {
- type: "number",
- doc: "The opacity at which the text will be drawn.",
- default: 1,
- minimum: 0,
- maximum: 1,
- transition: !0,
- requires: ["text-field"],
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.33.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "text-color": {
- type: "color",
- doc: "The color with which the text will be drawn.",
- default: "#000000",
- transition: !0,
- overridable: !0,
- requires: ["text-field"],
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.33.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "text-halo-color": {
- type: "color",
- default: "rgba(0, 0, 0, 0)",
- transition: !0,
- doc: "The color of the text's halo, which helps it stand out from backgrounds.",
- requires: ["text-field"],
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.33.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "text-halo-width": {
- type: "number",
- default: 0,
- minimum: 0,
- transition: !0,
- units: "pixels",
- doc: "Distance of halo to the font outline. Max text halo width is 1/4 of the font-size.",
- requires: ["text-field"],
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.33.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "text-halo-blur": {
- type: "number",
- default: 0,
- minimum: 0,
- transition: !0,
- units: "pixels",
- doc: "The halo's fadeout distance towards the outside.",
- requires: ["text-field"],
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {js: "0.33.0", android: "5.0.0", ios: "3.5.0", macos: "0.4.0"}
- },
- expression: {interpolated: !0, parameters: ["zoom", "feature", "feature-state"]},
- "property-type": "data-driven"
- },
- "text-translate": {
- type: "array",
- value: "number",
- length: 2,
- default: [0, 0],
- transition: !0,
- units: "pixels",
- doc: "Distance that the text's anchor is moved from its original placement. Positive values indicate right and down, while negative values indicate left and up.",
- requires: ["text-field"],
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "text-translate-anchor": {
- type: "enum",
- values: {
- map: {doc: "The text is translated relative to the map."},
- viewport: {doc: "The text is translated relative to the viewport."}
- },
- doc: "Controls the frame of reference for `text-translate`.",
- default: "map",
- requires: ["text-field", "text-translate"],
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- }
- },
- paint_raster: {
- "raster-opacity": {
- type: "number",
- doc: "The opacity at which the image will be drawn.",
- default: 1,
- minimum: 0,
- maximum: 1,
- transition: !0,
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "raster-hue-rotate": {
- type: "number",
- default: 0,
- period: 360,
- transition: !0,
- units: "degrees",
- doc: "Rotates hues around the color wheel.",
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "raster-brightness-min": {
- type: "number",
- doc: "Increase or reduce the brightness of the image. The value is the minimum brightness.",
- default: 0,
- minimum: 0,
- maximum: 1,
- transition: !0,
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "raster-brightness-max": {
- type: "number",
- doc: "Increase or reduce the brightness of the image. The value is the maximum brightness.",
- default: 1,
- minimum: 0,
- maximum: 1,
- transition: !0,
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "raster-saturation": {
- type: "number",
- doc: "Increase or reduce the saturation of the image.",
- default: 0,
- minimum: -1,
- maximum: 1,
- transition: !0,
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "raster-contrast": {
- type: "number",
- doc: "Increase or reduce the contrast of the image.",
- default: 0,
- minimum: -1,
- maximum: 1,
- transition: !0,
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "raster-resampling": {
- type: "enum",
- doc: "The resampling/interpolation method to use for overscaling, also known as texture magnification filter",
- values: {
- linear: {doc: "(Bi)linear filtering interpolates pixel values using the weighted average of the four closest original source pixels creating a smooth but blurry look when overscaled"},
- nearest: {doc: "Nearest neighbor filtering interpolates pixel values using the nearest original source pixel creating a sharp but pixelated look when overscaled"}
- },
- default: "linear",
- "sdk-support": {"basic functionality": {js: "0.47.0", android: "6.3.0", ios: "4.2.0", macos: "0.9.0"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "raster-fade-duration": {
- type: "number",
- default: 300,
- minimum: 0,
- transition: !1,
- units: "milliseconds",
- doc: "Fade duration when a new tile is added.",
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- }
- },
- paint_hillshade: {
- "hillshade-illumination-direction": {
- type: "number",
- default: 335,
- minimum: 0,
- maximum: 359,
- doc: "The direction of the light source used to generate the hillshading with 0 as the top of the viewport if `hillshade-illumination-anchor` is set to `viewport` and due north if `hillshade-illumination-anchor` is set to `map`.",
- transition: !1,
- "sdk-support": {"basic functionality": {js: "0.43.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "hillshade-illumination-anchor": {
- type: "enum",
- values: {
- map: {doc: "The hillshade illumination is relative to the north direction."},
- viewport: {doc: "The hillshade illumination is relative to the top of the viewport."}
- },
- default: "viewport",
- doc: "Direction of light source when map is rotated.",
- "sdk-support": {"basic functionality": {js: "0.43.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "hillshade-exaggeration": {
- type: "number",
- doc: "Intensity of the hillshade",
- default: .5,
- minimum: 0,
- maximum: 1,
- transition: !0,
- "sdk-support": {"basic functionality": {js: "0.43.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "hillshade-shadow-color": {
- type: "color",
- default: "#000000",
- doc: "The shading color of areas that face away from the light source.",
- transition: !0,
- "sdk-support": {"basic functionality": {js: "0.43.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "hillshade-highlight-color": {
- type: "color",
- default: "#FFFFFF",
- doc: "The shading color of areas that faces towards the light source.",
- transition: !0,
- "sdk-support": {"basic functionality": {js: "0.43.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "hillshade-accent-color": {
- type: "color",
- default: "#000000",
- doc: "The shading color used to accentuate rugged terrain like sharp cliffs and gorges.",
- transition: !0,
- "sdk-support": {"basic functionality": {js: "0.43.0", android: "6.0.0", ios: "4.0.0", macos: "0.7.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- }
- },
- paint_background: {
- "background-color": {
- type: "color",
- default: "#000000",
- doc: "The color with which the background will be drawn.",
- transition: !0,
- requires: [{"!": "background-pattern"}],
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "background-pattern": {
- type: "resolvedImage",
- transition: !0,
- doc: "Name of image in sprite to use for drawing an image background. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.",
- "sdk-support": {
- "basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"},
- "data-driven styling": {}
- },
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "cross-faded"
- },
- "background-opacity": {
- type: "number",
- default: 1,
- minimum: 0,
- maximum: 1,
- doc: "The opacity at which the background will be drawn.",
- transition: !0,
- "sdk-support": {"basic functionality": {js: "0.10.0", android: "2.0.1", ios: "2.0.0", macos: "0.1.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- }
- },
- paint_sky: {
- "sky-type": {
- type: "enum",
- values: {
- gradient: {doc: "Renders the sky with a gradient that can be configured with `sky-gradient-radius` and `sky-gradient`."},
- atmosphere: {doc: "Renders the sky with a simulated atmospheric scattering algorithm, the sun direction can be attached to the light position or explicitly set through `sky-atmosphere-sun`."}
- },
- default: "atmosphere",
- doc: "The type of the sky",
- "sdk-support": {"basic functionality": {js: "2.0.0"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "sky-atmosphere-sun": {
- type: "array",
- value: "number",
- length: 2,
- transition: !1,
- doc: "Position of the sun center [a azimuthal angle, p polar angle]. The azimuthal angle indicates the position of the sun relative to 0° north, where degrees proceed clockwise. The polar angle indicates the height of the sun, where 0° is directly above, at zenith, and 90° at the horizon. When this property is ommitted, the sun center is directly inherited from the light position.",
- "sdk-support": {"basic functionality": {js: "2.0.0"}},
- requires: [{"sky-type": "atmosphere"}],
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "sky-atmosphere-sun-intensity": {
- type: "number",
- requires: [{"sky-type": "atmosphere"}],
- default: 10,
- minimum: 0,
- maximum: 100,
- transition: !1,
- doc: "Intensity of the sun as a light source in the atmosphere (on a scale from 0 to a 100). Setting higher values will brighten up the sky.",
- "sdk-support": {"basic functionality": {js: "2.0.0"}},
- "property-type": "data-constant"
- },
- "sky-gradient-center": {
- type: "array",
- requires: [{"sky-type": "gradient"}],
- value: "number",
- default: [0, 0],
- length: 2,
- transition: !1,
- doc: "Position of the gradient center [a azimuthal angle, p polar angle]. The azimuthal angle indicates the position of the gradient center relative to 0° north, where degrees proceed clockwise. The polar angle indicates the height of the gradient center, where 0° is directly above, at zenith, and 90° at the horizon.",
- "sdk-support": {"basic functionality": {js: "2.0.0"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "sky-gradient-radius": {
- type: "number",
- requires: [{"sky-type": "gradient"}],
- default: 90,
- minimum: 0,
- maximum: 180,
- transition: !1,
- doc: "The angular distance (measured in degrees) from `sky-gradient-center` up to which the gradient extends. A value of 180 causes the gradient to wrap around to the opposite direction from `sky-gradient-center`.",
- "sdk-support": {"basic functionality": {js: "2.0.0"}},
- expression: {interpolated: !1, parameters: ["zoom"]},
- "property-type": "data-constant"
- },
- "sky-gradient": {
- type: "color",
- default: ["interpolate", ["linear"], ["sky-radial-progress"], .8, "#87ceeb", 1, "white"],
- doc: "Defines a radial color gradient with which to color the sky. The color values can be interpolated with an expression using `sky-radial-progress`. The range [0, 1] for the interpolant covers a radial distance (in degrees) of [0, `sky-gradient-radius`] centered at the position specified by `sky-gradient-center`.",
- transition: !1,
- requires: [{"sky-type": "gradient"}],
- "sdk-support": {"basic functionality": {js: "2.0.0"}, "data-driven styling": {}},
- expression: {interpolated: !0, parameters: ["sky-radial-progress"]},
- "property-type": "color-ramp"
- },
- "sky-atmosphere-halo-color": {
- type: "color",
- default: "white",
- doc: "A color applied to the atmosphere sun halo. The alpha channel describes how strongly the sun halo is represented in an atmosphere sky layer.",
- transition: !1,
- requires: [{"sky-type": "atmosphere"}],
- "sdk-support": {"basic functionality": {js: "2.0.0"}},
- "property-type": "data-constant"
- },
- "sky-atmosphere-color": {
- type: "color",
- default: "white",
- doc: "A color used to tweak the main atmospheric scattering coefficients. Using white applies the default coefficients giving the natural blue color to the atmosphere. This color affects how heavily the corresponding wavelength is represented during scattering. The alpha channel describes the density of the atmosphere, with 1 maximum density and 0 no density.",
- transition: !1,
- requires: [{"sky-type": "atmosphere"}],
- "sdk-support": {"basic functionality": {js: "2.0.0"}},
- "property-type": "data-constant"
- },
- "sky-opacity": {
- type: "number",
- default: 1,
- minimum: 0,
- maximum: 1,
- doc: "The opacity of the entire sky layer.",
- transition: !0,
- "sdk-support": {"basic functionality": {js: "2.0.0"}},
- expression: {interpolated: !0, parameters: ["zoom"]},
- "property-type": "data-constant"
- }
- },
- transition: {
- duration: {
- type: "number",
- default: 300,
- minimum: 0,
- units: "milliseconds",
- doc: "Time allotted for transitions to complete."
- },
- delay: {
- type: "number",
- default: 0,
- minimum: 0,
- units: "milliseconds",
- doc: "Length of time before a transition begins."
- }
- },
- "property-type": {
- "data-driven": {
- type: "property-type",
- doc: "Property is interpolable and can be represented using a property expression."
- },
- "cross-faded": {
- type: "property-type",
- doc: "Property is non-interpolable; rather, its values will be cross-faded to smoothly transition between integer zooms."
- },
- "cross-faded-data-driven": {
- type: "property-type",
- doc: "Property is non-interpolable; rather, its values will be cross-faded to smoothly transition between integer zooms. It can be represented using a property expression."
- },
- "color-ramp": {
- type: "property-type",
- doc: "Property should be specified using a color ramp from which the output color can be sampled based on a property calculation."
- },
- "data-constant": {
- type: "property-type",
- doc: "Property is interpolable but cannot be represented using a property expression."
- },
- constant: {type: "property-type", doc: "Property is constant across all zoom levels and property values."}
- },
- promoteId: {"*": {type: "string", doc: "A name of a feature property to use as ID for feature state."}}
- };
- var o = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof window ? window : void 0 !== t ? t : "undefined" != typeof self ? self : {};
-
- function a() {
- throw new Error("Dynamic requires are not currently supported by rollup-plugin-commonjs")
- }
-
- function s(t, e) {
- return t(e = {exports: {}}, e.exports), e.exports
- }
-
- var l = s((function (t, e) {
- !function (r) {
- var n = e && !e.nodeType && e, i = t && !t.nodeType && t, a = "object" == typeof o && o;
- a.global !== a && a.window !== a && a.self !== a || (r = a);
- var s, l, u = 2147483647, c = /^xn--/, h = /[^\x20-\x7E]/, p = /[\x2E\u3002\uFF0E\uFF61]/g, f = {
- overflow: "Overflow: input needs wider integers to process",
- "not-basic": "Illegal input >= 0x80 (not a basic code point)",
- "invalid-input": "Invalid input"
- }, d = Math.floor, g = String.fromCharCode;
-
- function y(t) {
- throw RangeError(f[t])
- }
-
- function m(t, e) {
- for (var r = t.length, n = []; r--;) n[r] = e(t[r]);
- return n
- }
-
- function v(t, e) {
- var r = t.split("@"), n = "";
- return r.length > 1 && (n = r[0] + "@", t = r[1]), n + m((t = t.replace(p, ".")).split("."), e).join(".")
- }
-
- function _(t) {
- for (var e, r, n = [], i = 0, o = t.length; i < o;) (e = t.charCodeAt(i++)) >= 55296 && e <= 56319 && i < o ? 56320 == (64512 & (r = t.charCodeAt(i++))) ? n.push(((1023 & e) << 10) + (1023 & r) + 65536) : (n.push(e), i--) : n.push(e);
- return n
- }
-
- function b(t) {
- return m(t, (function (t) {
- var e = "";
- return t > 65535 && (e += g((t -= 65536) >>> 10 & 1023 | 55296), t = 56320 | 1023 & t), e += g(t)
- })).join("")
- }
-
- function x(t, e) {
- return t + 22 + 75 * (t < 26) - ((0 != e) << 5)
- }
-
- function w(t, e, r) {
- var n = 0;
- for (t = r ? d(t / 700) : t >> 1, t += d(t / e); t > 455; n += 36) t = d(t / 35);
- return d(n + 36 * t / (t + 38))
- }
-
- function S(t) {
- var e, r, n, i, o, a, s, l, c, h, p, f = [], g = t.length, m = 0, v = 128, _ = 72;
- for ((r = t.lastIndexOf("-")) < 0 && (r = 0), n = 0; n < r; ++n) t.charCodeAt(n) >= 128 && y("not-basic"), f.push(t.charCodeAt(n));
- for (i = r > 0 ? r + 1 : 0; i < g;) {
- for (o = m, a = 1, s = 36; i >= g && y("invalid-input"), ((l = (p = t.charCodeAt(i++)) - 48 < 10 ? p - 22 : p - 65 < 26 ? p - 65 : p - 97 < 26 ? p - 97 : 36) >= 36 || l > d((u - m) / a)) && y("overflow"), m += l * a, !(l < (c = s <= _ ? 1 : s >= _ + 26 ? 26 : s - _)); s += 36) a > d(u / (h = 36 - c)) && y("overflow"), a *= h;
- _ = w(m - o, e = f.length + 1, 0 == o), d(m / e) > u - v && y("overflow"), v += d(m / e), m %= e, f.splice(m++, 0, v)
- }
- return b(f)
- }
-
- function E(t) {
- var e, r, n, i, o, a, s, l, c, h, p, f, m, v, b, S = [];
- for (f = (t = _(t)).length, e = 128, r = 0, o = 72, a = 0; a < f; ++a) (p = t[a]) < 128 && S.push(g(p));
- for (n = i = S.length, i && S.push("-"); n < f;) {
- for (s = u, a = 0; a < f; ++a) (p = t[a]) >= e && p < s && (s = p);
- for (s - e > d((u - r) / (m = n + 1)) && y("overflow"), r += (s - e) * m, e = s, a = 0; a < f; ++a) if ((p = t[a]) < e && ++r > u && y("overflow"), p == e) {
- for (l = r, c = 36; !(l < (h = c <= o ? 1 : c >= o + 26 ? 26 : c - o)); c += 36) b = l - h, v = 36 - h, S.push(g(x(h + b % v, 0))), l = d(b / v);
- S.push(g(x(l, 0))), o = w(r, m, n == i), r = 0, ++n
- }
- ++r, ++e
- }
- return S.join("")
- }
-
- if (s = {
- version: "1.3.2", ucs2: {decode: _, encode: b}, decode: S, encode: E, toASCII: function (t) {
- return v(t, (function (t) {
- return h.test(t) ? "xn--" + E(t) : t
- }))
- }, toUnicode: function (t) {
- return v(t, (function (t) {
- return c.test(t) ? S(t.slice(4).toLowerCase()) : t
- }))
- }
- }, n && i) if (t.exports == n) i.exports = s; else for (l in s) s.hasOwnProperty(l) && (n[l] = s[l]); else r.punycode = s
- }(o)
- })), u = function (t) {
- return "string" == typeof t
- }, c = function (t) {
- return "object" == typeof t && null !== t
- }, h = function (t) {
- return null === t
- }, p = function (t) {
- return null == t
- };
-
- function f(t, e) {
- return Object.prototype.hasOwnProperty.call(t, e)
- }
-
- var d = function (t, e, r, n) {
- e = e || "&", r = r || "=";
- var i = {};
- if ("string" != typeof t || 0 === t.length) return i;
- var o = /\+/g;
- t = t.split(e);
- var a = 1e3;
- n && "number" == typeof n.maxKeys && (a = n.maxKeys);
- var s = t.length;
- a > 0 && s > a && (s = a);
- for (var l = 0; l < s; ++l) {
- var u, c, h, p, d = t[l].replace(o, "%20"), g = d.indexOf(r);
- g >= 0 ? (u = d.substr(0, g), c = d.substr(g + 1)) : (u = d, c = ""), h = decodeURIComponent(u), p = decodeURIComponent(c), f(i, h) ? Array.isArray(i[h]) ? i[h].push(p) : i[h] = [i[h], p] : i[h] = p
- }
- return i
- }, g = function (t) {
- switch (typeof t) {
- case"string":
- return t;
- case"boolean":
- return t ? "true" : "false";
- case"number":
- return isFinite(t) ? t : "";
- default:
- return ""
- }
- }, y = function (t, e, r, n) {
- return e = e || "&", r = r || "=", null === t && (t = void 0), "object" == typeof t ? Object.keys(t).map((function (n) {
- var i = encodeURIComponent(g(n)) + r;
- return Array.isArray(t[n]) ? t[n].map((function (t) {
- return i + encodeURIComponent(g(t))
- })).join(e) : i + encodeURIComponent(g(t[n]))
- })).join(e) : n ? encodeURIComponent(g(n)) + r + encodeURIComponent(g(t)) : ""
- }, m = s((function (t, e) {
- e.decode = e.parse = d, e.encode = e.stringify = y
- }));
- m.decode, m.parse, m.encode, m.stringify;
-
- function v() {
- this.protocol = null, this.slashes = null, this.auth = null, this.host = null, this.port = null, this.hostname = null, this.hash = null, this.search = null, this.query = null, this.pathname = null, this.path = null, this.href = null
- }
-
- var _ = /^([a-z0-9.+-]+:)/i, b = /:[0-9]*$/, x = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,
- w = ["{", "}", "|", "\\", "^", "`"].concat(["<", ">", '"', "`", " ", "\r", "\n", "\t"]), S = ["'"].concat(w),
- E = ["%", "/", "?", ";", "#"].concat(S), T = ["/", "?", "#"], C = /^[+a-z0-9A-Z_-]{0,63}$/,
- O = /^([+a-z0-9A-Z_-]{0,63})(.*)$/, P = {javascript: !0, "javascript:": !0},
- R = {javascript: !0, "javascript:": !0}, I = {
- http: !0,
- https: !0,
- ftp: !0,
- gopher: !0,
- file: !0,
- "http:": !0,
- "https:": !0,
- "ftp:": !0,
- "gopher:": !0,
- "file:": !0
- };
-
- function L(t, e, r) {
- if (t && c(t) && t instanceof v) return t;
- var n = new v;
- return n.parse(t, e, r), n
- }
-
- v.prototype.parse = function (t, e, r) {
- if (!u(t)) throw new TypeError("Parameter 'url' must be a string, not " + typeof t);
- var n = t.indexOf("?"), i = -1 !== n && n < t.indexOf("#") ? "?" : "#", o = t.split(i);
- o[0] = o[0].replace(/\\/g, "/");
- var a = t = o.join(i);
- if (a = a.trim(), !r && 1 === t.split("#").length) {
- var s = x.exec(a);
- if (s) return this.path = a, this.href = a, this.pathname = s[1], s[2] ? (this.search = s[2], this.query = e ? m.parse(this.search.substr(1)) : this.search.substr(1)) : e && (this.search = "", this.query = {}), this
- }
- var c = _.exec(a);
- if (c) {
- var h = (c = c[0]).toLowerCase();
- this.protocol = h, a = a.substr(c.length)
- }
- if (r || c || a.match(/^\/\/[^@\/]+@[^@\/]+/)) {
- var p = "//" === a.substr(0, 2);
- !p || c && R[c] || (a = a.substr(2), this.slashes = !0)
- }
- if (!R[c] && (p || c && !I[c])) {
- for (var f, d, g = -1, y = 0; y < T.length; y++) {
- -1 !== (v = a.indexOf(T[y])) && (-1 === g || v < g) && (g = v)
- }
- -1 !== (d = -1 === g ? a.lastIndexOf("@") : a.lastIndexOf("@", g)) && (f = a.slice(0, d), a = a.slice(d + 1), this.auth = decodeURIComponent(f)), g = -1;
- for (y = 0; y < E.length; y++) {
- var v;
- -1 !== (v = a.indexOf(E[y])) && (-1 === g || v < g) && (g = v)
- }
- -1 === g && (g = a.length), this.host = a.slice(0, g), a = a.slice(g), this.parseHost(), this.hostname = this.hostname || "";
- var b = "[" === this.hostname[0] && "]" === this.hostname[this.hostname.length - 1];
- if (!b) for (var w = this.hostname.split(/\./), L = (y = 0, w.length); y < L; y++) {
- var M = w[y];
- if (M && !M.match(C)) {
- for (var F = "", A = 0, k = M.length; A < k; A++) M.charCodeAt(A) > 127 ? F += "x" : F += M[A];
- if (!F.match(C)) {
- var j = w.slice(0, y), N = w.slice(y + 1), D = M.match(O);
- D && (j.push(D[1]), N.unshift(D[2])), N.length && (a = "/" + N.join(".") + a), this.hostname = j.join(".");
- break
- }
- }
- }
- this.hostname.length > 255 ? this.hostname = "" : this.hostname = this.hostname.toLowerCase(), b || (this.hostname = l.toASCII(this.hostname));
- var G = this.port ? ":" + this.port : "", z = this.hostname || "";
- this.host = z + G, this.href += this.host, b && (this.hostname = this.hostname.substr(1, this.hostname.length - 2), "/" !== a[0] && (a = "/" + a))
- }
- if (!P[h]) for (y = 0, L = S.length; y < L; y++) {
- var U = S[y];
- if (-1 !== a.indexOf(U)) {
- var B = encodeURIComponent(U);
- B === U && (B = escape(U)), a = a.split(U).join(B)
- }
- }
- var V = a.indexOf("#");
- -1 !== V && (this.hash = a.substr(V), a = a.slice(0, V));
- var Y = a.indexOf("?");
- if (-1 !== Y ? (this.search = a.substr(Y), this.query = a.substr(Y + 1), e && (this.query = m.parse(this.query)), a = a.slice(0, Y)) : e && (this.search = "", this.query = {}), a && (this.pathname = a), I[h] && this.hostname && !this.pathname && (this.pathname = "/"), this.pathname || this.search) {
- G = this.pathname || "";
- var W = this.search || "";
- this.path = G + W
- }
- return this.href = this.format(), this
- }, v.prototype.format = function () {
- var t = this.auth || "";
- t && (t = (t = encodeURIComponent(t)).replace(/%3A/i, ":"), t += "@");
- var e = this.protocol || "", r = this.pathname || "", n = this.hash || "", i = !1, o = "";
- this.host ? i = t + this.host : this.hostname && (i = t + (-1 === this.hostname.indexOf(":") ? this.hostname : "[" + this.hostname + "]"), this.port && (i += ":" + this.port)), this.query && c(this.query) && Object.keys(this.query).length && (o = m.stringify(this.query));
- var a = this.search || o && "?" + o || "";
- return e && ":" !== e.substr(-1) && (e += ":"), this.slashes || (!e || I[e]) && !1 !== i ? (i = "//" + (i || ""), r && "/" !== r.charAt(0) && (r = "/" + r)) : i || (i = ""), n && "#" !== n.charAt(0) && (n = "#" + n), a && "?" !== a.charAt(0) && (a = "?" + a), e + i + (r = r.replace(/[?#]/g, (function (t) {
- return encodeURIComponent(t)
- }))) + (a = a.replace("#", "%23")) + n
- }, v.prototype.resolve = function (t) {
- return this.resolveObject(L(t, !1, !0)).format()
- }, v.prototype.resolveObject = function (t) {
- if (u(t)) {
- var e = new v;
- e.parse(t, !1, !0), t = e
- }
- for (var r = new v, n = Object.keys(this), i = 0; i < n.length; i++) {
- var o = n[i];
- r[o] = this[o]
- }
- if (r.hash = t.hash, "" === t.href) return r.href = r.format(), r;
- if (t.slashes && !t.protocol) {
- for (var a = Object.keys(t), s = 0; s < a.length; s++) {
- var l = a[s];
- "protocol" !== l && (r[l] = t[l])
- }
- return I[r.protocol] && r.hostname && !r.pathname && (r.path = r.pathname = "/"), r.href = r.format(), r
- }
- if (t.protocol && t.protocol !== r.protocol) {
- if (!I[t.protocol]) {
- for (var c = Object.keys(t), f = 0; f < c.length; f++) {
- var d = c[f];
- r[d] = t[d]
- }
- return r.href = r.format(), r
- }
- if (r.protocol = t.protocol, t.host || R[t.protocol]) r.pathname = t.pathname; else {
- for (var g = (t.pathname || "").split("/"); g.length && !(t.host = g.shift());) ;
- t.host || (t.host = ""), t.hostname || (t.hostname = ""), "" !== g[0] && g.unshift(""), g.length < 2 && g.unshift(""), r.pathname = g.join("/")
- }
- if (r.search = t.search, r.query = t.query, r.host = t.host || "", r.auth = t.auth, r.hostname = t.hostname || t.host, r.port = t.port, r.pathname || r.search) {
- var y = r.pathname || "", m = r.search || "";
- r.path = y + m
- }
- return r.slashes = r.slashes || t.slashes, r.href = r.format(), r
- }
- var _ = r.pathname && "/" === r.pathname.charAt(0), b = t.host || t.pathname && "/" === t.pathname.charAt(0),
- x = b || _ || r.host && t.pathname, w = x, S = r.pathname && r.pathname.split("/") || [],
- E = (g = t.pathname && t.pathname.split("/") || [], r.protocol && !I[r.protocol]);
- if (E && (r.hostname = "", r.port = null, r.host && ("" === S[0] ? S[0] = r.host : S.unshift(r.host)), r.host = "", t.protocol && (t.hostname = null, t.port = null, t.host && ("" === g[0] ? g[0] = t.host : g.unshift(t.host)), t.host = null), x = x && ("" === g[0] || "" === S[0])), b) r.host = t.host || "" === t.host ? t.host : r.host, r.hostname = t.hostname || "" === t.hostname ? t.hostname : r.hostname, r.search = t.search, r.query = t.query, S = g; else if (g.length) S || (S = []), S.pop(), S = S.concat(g), r.search = t.search, r.query = t.query; else if (!p(t.search)) {
- if (E) r.hostname = r.host = S.shift(), (L = !!(r.host && r.host.indexOf("@") > 0) && r.host.split("@")) && (r.auth = L.shift(), r.host = r.hostname = L.shift());
- return r.search = t.search, r.query = t.query, h(r.pathname) && h(r.search) || (r.path = (r.pathname ? r.pathname : "") + (r.search ? r.search : "")), r.href = r.format(), r
- }
- if (!S.length) return r.pathname = null, r.search ? r.path = "/" + r.search : r.path = null, r.href = r.format(), r;
- for (var T = S.slice(-1)[0], C = (r.host || t.host || S.length > 1) && ("." === T || ".." === T) || "" === T, O = 0, P = S.length; P >= 0; P--) "." === (T = S[P]) ? S.splice(P, 1) : ".." === T ? (S.splice(P, 1), O++) : O && (S.splice(P, 1), O--);
- if (!x && !w) for (; O--; O) S.unshift("..");
- !x || "" === S[0] || S[0] && "/" === S[0].charAt(0) || S.unshift(""), C && "/" !== S.join("/").substr(-1) && S.push("");
- var L, M = "" === S[0] || S[0] && "/" === S[0].charAt(0);
- E && (r.hostname = r.host = M ? "" : S.length ? S.shift() : "", (L = !!(r.host && r.host.indexOf("@") > 0) && r.host.split("@")) && (r.auth = L.shift(), r.host = r.hostname = L.shift()));
- return (x = x || r.host && S.length) && !M && S.unshift(""), S.length ? r.pathname = S.join("/") : (r.pathname = null, r.path = null), h(r.pathname) && h(r.search) || (r.path = (r.pathname ? r.pathname : "") + (r.search ? r.search : "")), r.auth = t.auth || r.auth, r.slashes = r.slashes || t.slashes, r.href = r.format(), r
- }, v.prototype.parseHost = function () {
- var t = this.host, e = b.exec(t);
- e && (":" !== (e = e[0]) && (this.port = e.substr(1)), t = t.substr(0, t.length - e.length)), t && (this.hostname = t)
- };
-
- function M(t, ...e) {
- for (const r of e) for (const e in r) t[e] = r[e];
- return t
- }
-
- class F extends Error {
- constructor(t, e) {
- super(e), this.message = e, this.key = t
- }
- }
-
- class A {
- constructor(t, e = []) {
- this.parent = t, this.bindings = {};
- for (const [t, r] of e) this.bindings[t] = r
- }
-
- concat(t) {
- return new A(this, t)
- }
-
- get(t) {
- if (this.bindings[t]) return this.bindings[t];
- if (this.parent) return this.parent.get(t);
- throw new Error(t + " not found in scope.")
- }
-
- has(t) {
- return !!this.bindings[t] || !!this.parent && this.parent.has(t)
- }
- }
-
- const k = {kind: "null"}, j = {kind: "number"}, N = {kind: "string"}, D = {kind: "boolean"}, G = {kind: "color"},
- z = {kind: "object"}, U = {kind: "value"}, B = {kind: "collator"}, V = {kind: "formatted"},
- Y = {kind: "resolvedImage"};
-
- function W(t, e) {
- return {kind: "array", itemType: t, N: e}
- }
-
- function q(t) {
- if ("array" === t.kind) {
- const e = q(t.itemType);
- return "number" == typeof t.N ? `array<${e}, ${t.N}>` : "value" === t.itemType.kind ? "array" : `array<${e}>`
- }
- return t.kind
- }
-
- const X = [k, j, N, D, G, V, z, W(U), Y];
-
- function Z(t, e) {
- if ("error" === e.kind) return null;
- if ("array" === t.kind) {
- if ("array" === e.kind && (0 === e.N && "value" === e.itemType.kind || !Z(t.itemType, e.itemType)) && ("number" != typeof t.N || t.N === e.N)) return null
- } else {
- if (t.kind === e.kind) return null;
- if ("value" === t.kind) for (const t of X) if (!Z(t, e)) return null
- }
- return `Expected ${q(t)} but found ${q(e)} instead.`
- }
-
- function K(t, e) {
- return e.some(e => e.kind === t.kind)
- }
-
- function H(t, e) {
- return e.some(e => "null" === e ? null === t : "array" === e ? Array.isArray(t) : "object" === e ? t && !Array.isArray(t) && "object" == typeof t : e === typeof t)
- }
-
- var $ = s((function (t, e) {
- var r = {
- transparent: [0, 0, 0, 0],
- aliceblue: [240, 248, 255, 1],
- antiquewhite: [250, 235, 215, 1],
- aqua: [0, 255, 255, 1],
- aquamarine: [127, 255, 212, 1],
- azure: [240, 255, 255, 1],
- beige: [245, 245, 220, 1],
- bisque: [255, 228, 196, 1],
- black: [0, 0, 0, 1],
- blanchedalmond: [255, 235, 205, 1],
- blue: [0, 0, 255, 1],
- blueviolet: [138, 43, 226, 1],
- brown: [165, 42, 42, 1],
- burlywood: [222, 184, 135, 1],
- cadetblue: [95, 158, 160, 1],
- chartreuse: [127, 255, 0, 1],
- chocolate: [210, 105, 30, 1],
- coral: [255, 127, 80, 1],
- cornflowerblue: [100, 149, 237, 1],
- cornsilk: [255, 248, 220, 1],
- crimson: [220, 20, 60, 1],
- cyan: [0, 255, 255, 1],
- darkblue: [0, 0, 139, 1],
- darkcyan: [0, 139, 139, 1],
- darkgoldenrod: [184, 134, 11, 1],
- darkgray: [169, 169, 169, 1],
- darkgreen: [0, 100, 0, 1],
- darkgrey: [169, 169, 169, 1],
- darkkhaki: [189, 183, 107, 1],
- darkmagenta: [139, 0, 139, 1],
- darkolivegreen: [85, 107, 47, 1],
- darkorange: [255, 140, 0, 1],
- darkorchid: [153, 50, 204, 1],
- darkred: [139, 0, 0, 1],
- darksalmon: [233, 150, 122, 1],
- darkseagreen: [143, 188, 143, 1],
- darkslateblue: [72, 61, 139, 1],
- darkslategray: [47, 79, 79, 1],
- darkslategrey: [47, 79, 79, 1],
- darkturquoise: [0, 206, 209, 1],
- darkviolet: [148, 0, 211, 1],
- deeppink: [255, 20, 147, 1],
- deepskyblue: [0, 191, 255, 1],
- dimgray: [105, 105, 105, 1],
- dimgrey: [105, 105, 105, 1],
- dodgerblue: [30, 144, 255, 1],
- firebrick: [178, 34, 34, 1],
- floralwhite: [255, 250, 240, 1],
- forestgreen: [34, 139, 34, 1],
- fuchsia: [255, 0, 255, 1],
- gainsboro: [220, 220, 220, 1],
- ghostwhite: [248, 248, 255, 1],
- gold: [255, 215, 0, 1],
- goldenrod: [218, 165, 32, 1],
- gray: [128, 128, 128, 1],
- green: [0, 128, 0, 1],
- greenyellow: [173, 255, 47, 1],
- grey: [128, 128, 128, 1],
- honeydew: [240, 255, 240, 1],
- hotpink: [255, 105, 180, 1],
- indianred: [205, 92, 92, 1],
- indigo: [75, 0, 130, 1],
- ivory: [255, 255, 240, 1],
- khaki: [240, 230, 140, 1],
- lavender: [230, 230, 250, 1],
- lavenderblush: [255, 240, 245, 1],
- lawngreen: [124, 252, 0, 1],
- lemonchiffon: [255, 250, 205, 1],
- lightblue: [173, 216, 230, 1],
- lightcoral: [240, 128, 128, 1],
- lightcyan: [224, 255, 255, 1],
- lightgoldenrodyellow: [250, 250, 210, 1],
- lightgray: [211, 211, 211, 1],
- lightgreen: [144, 238, 144, 1],
- lightgrey: [211, 211, 211, 1],
- lightpink: [255, 182, 193, 1],
- lightsalmon: [255, 160, 122, 1],
- lightseagreen: [32, 178, 170, 1],
- lightskyblue: [135, 206, 250, 1],
- lightslategray: [119, 136, 153, 1],
- lightslategrey: [119, 136, 153, 1],
- lightsteelblue: [176, 196, 222, 1],
- lightyellow: [255, 255, 224, 1],
- lime: [0, 255, 0, 1],
- limegreen: [50, 205, 50, 1],
- linen: [250, 240, 230, 1],
- magenta: [255, 0, 255, 1],
- maroon: [128, 0, 0, 1],
- mediumaquamarine: [102, 205, 170, 1],
- mediumblue: [0, 0, 205, 1],
- mediumorchid: [186, 85, 211, 1],
- mediumpurple: [147, 112, 219, 1],
- mediumseagreen: [60, 179, 113, 1],
- mediumslateblue: [123, 104, 238, 1],
- mediumspringgreen: [0, 250, 154, 1],
- mediumturquoise: [72, 209, 204, 1],
- mediumvioletred: [199, 21, 133, 1],
- midnightblue: [25, 25, 112, 1],
- mintcream: [245, 255, 250, 1],
- mistyrose: [255, 228, 225, 1],
- moccasin: [255, 228, 181, 1],
- navajowhite: [255, 222, 173, 1],
- navy: [0, 0, 128, 1],
- oldlace: [253, 245, 230, 1],
- olive: [128, 128, 0, 1],
- olivedrab: [107, 142, 35, 1],
- orange: [255, 165, 0, 1],
- orangered: [255, 69, 0, 1],
- orchid: [218, 112, 214, 1],
- palegoldenrod: [238, 232, 170, 1],
- palegreen: [152, 251, 152, 1],
- paleturquoise: [175, 238, 238, 1],
- palevioletred: [219, 112, 147, 1],
- papayawhip: [255, 239, 213, 1],
- peachpuff: [255, 218, 185, 1],
- peru: [205, 133, 63, 1],
- pink: [255, 192, 203, 1],
- plum: [221, 160, 221, 1],
- powderblue: [176, 224, 230, 1],
- purple: [128, 0, 128, 1],
- rebeccapurple: [102, 51, 153, 1],
- red: [255, 0, 0, 1],
- rosybrown: [188, 143, 143, 1],
- royalblue: [65, 105, 225, 1],
- saddlebrown: [139, 69, 19, 1],
- salmon: [250, 128, 114, 1],
- sandybrown: [244, 164, 96, 1],
- seagreen: [46, 139, 87, 1],
- seashell: [255, 245, 238, 1],
- sienna: [160, 82, 45, 1],
- silver: [192, 192, 192, 1],
- skyblue: [135, 206, 235, 1],
- slateblue: [106, 90, 205, 1],
- slategray: [112, 128, 144, 1],
- slategrey: [112, 128, 144, 1],
- snow: [255, 250, 250, 1],
- springgreen: [0, 255, 127, 1],
- steelblue: [70, 130, 180, 1],
- tan: [210, 180, 140, 1],
- teal: [0, 128, 128, 1],
- thistle: [216, 191, 216, 1],
- tomato: [255, 99, 71, 1],
- turquoise: [64, 224, 208, 1],
- violet: [238, 130, 238, 1],
- wheat: [245, 222, 179, 1],
- white: [255, 255, 255, 1],
- whitesmoke: [245, 245, 245, 1],
- yellow: [255, 255, 0, 1],
- yellowgreen: [154, 205, 50, 1]
- };
-
- function n(t) {
- return (t = Math.round(t)) < 0 ? 0 : t > 255 ? 255 : t
- }
-
- function i(t) {
- return t < 0 ? 0 : t > 1 ? 1 : t
- }
-
- function o(t) {
- return "%" === t[t.length - 1] ? n(parseFloat(t) / 100 * 255) : n(parseInt(t))
- }
-
- function a(t) {
- return "%" === t[t.length - 1] ? i(parseFloat(t) / 100) : i(parseFloat(t))
- }
-
- function s(t, e, r) {
- return r < 0 ? r += 1 : r > 1 && (r -= 1), 6 * r < 1 ? t + (e - t) * r * 6 : 2 * r < 1 ? e : 3 * r < 2 ? t + (e - t) * (2 / 3 - r) * 6 : t
- }
-
- try {
- e.parseCSSColor = function (t) {
- var e, i = t.replace(/ /g, "").toLowerCase();
- if (i in r) return r[i].slice();
- if ("#" === i[0]) return 4 === i.length ? (e = parseInt(i.substr(1), 16)) >= 0 && e <= 4095 ? [(3840 & e) >> 4 | (3840 & e) >> 8, 240 & e | (240 & e) >> 4, 15 & e | (15 & e) << 4, 1] : null : 7 === i.length && (e = parseInt(i.substr(1), 16)) >= 0 && e <= 16777215 ? [(16711680 & e) >> 16, (65280 & e) >> 8, 255 & e, 1] : null;
- var l = i.indexOf("("), u = i.indexOf(")");
- if (-1 !== l && u + 1 === i.length) {
- var c = i.substr(0, l), h = i.substr(l + 1, u - (l + 1)).split(","), p = 1;
- switch (c) {
- case"rgba":
- if (4 !== h.length) return null;
- p = a(h.pop());
- case"rgb":
- return 3 !== h.length ? null : [o(h[0]), o(h[1]), o(h[2]), p];
- case"hsla":
- if (4 !== h.length) return null;
- p = a(h.pop());
- case"hsl":
- if (3 !== h.length) return null;
- var f = (parseFloat(h[0]) % 360 + 360) % 360 / 360, d = a(h[1]), g = a(h[2]),
- y = g <= .5 ? g * (d + 1) : g + d - g * d, m = 2 * g - y;
- return [n(255 * s(m, y, f + 1 / 3)), n(255 * s(m, y, f)), n(255 * s(m, y, f - 1 / 3)), p];
- default:
- return null
- }
- }
- return null
- }
- } catch (t) {
- }
- })).parseCSSColor;
-
- class J {
- constructor(t, e, r, n = 1) {
- this.r = t, this.g = e, this.b = r, this.a = n
- }
-
- static parse(t) {
- if (!t) return;
- if (t instanceof J) return t;
- if ("string" != typeof t) return;
- const e = $(t);
- return e ? new J(e[0] / 255 * e[3], e[1] / 255 * e[3], e[2] / 255 * e[3], e[3]) : void 0
- }
-
- toString() {
- const [t, e, r, n] = this.toArray();
- return `rgba(${Math.round(t)},${Math.round(e)},${Math.round(r)},${n})`
- }
-
- toArray() {
- const {r: t, g: e, b: r, a: n} = this;
- return 0 === n ? [0, 0, 0, 0] : [255 * t / n, 255 * e / n, 255 * r / n, n]
- }
- }
-
- J.black = new J(0, 0, 0, 1), J.white = new J(1, 1, 1, 1), J.transparent = new J(0, 0, 0, 0), J.red = new J(1, 0, 0, 1), J.blue = new J(0, 0, 1, 1);
-
- class Q {
- constructor(t, e, r) {
- this.sensitivity = t ? e ? "variant" : "case" : e ? "accent" : "base", this.locale = r, this.collator = new Intl.Collator(this.locale ? this.locale : [], {
- sensitivity: this.sensitivity,
- usage: "search"
- })
- }
-
- compare(t, e) {
- return this.collator.compare(t, e)
- }
-
- resolvedLocale() {
- return new Intl.Collator(this.locale ? this.locale : []).resolvedOptions().locale
- }
- }
-
- class tt {
- constructor(t, e, r, n, i) {
- this.text = t, this.image = e, this.scale = r, this.fontStack = n, this.textColor = i
- }
- }
-
- class et {
- constructor(t) {
- this.sections = t
- }
-
- static fromString(t) {
- return new et([new tt(t, null, null, null, null)])
- }
-
- isEmpty() {
- return 0 === this.sections.length || !this.sections.some(t => 0 !== t.text.length || t.image && 0 !== t.image.name.length)
- }
-
- static factory(t) {
- return t instanceof et ? t : et.fromString(t)
- }
-
- toString() {
- return 0 === this.sections.length ? "" : this.sections.map(t => t.text).join("")
- }
-
- serialize() {
- const t = ["format"];
- for (const e of this.sections) {
- if (e.image) {
- t.push(["image", e.image.name]);
- continue
- }
- t.push(e.text);
- const r = {};
- e.fontStack && (r["text-font"] = ["literal", e.fontStack.split(",")]), e.scale && (r["font-scale"] = e.scale), e.textColor && (r["text-color"] = ["rgba"].concat(e.textColor.toArray())), t.push(r)
- }
- return t
- }
- }
-
- class rt {
- constructor(t) {
- this.name = t.name, this.available = t.available
- }
-
- toString() {
- return this.name
- }
-
- static fromString(t) {
- return t ? new rt({name: t, available: !1}) : null
- }
-
- serialize() {
- return ["image", this.name]
- }
- }
-
- function nt(t, e, r, n) {
- if (!("number" == typeof t && t >= 0 && t <= 255 && "number" == typeof e && e >= 0 && e <= 255 && "number" == typeof r && r >= 0 && r <= 255)) {
- return `Invalid rgba value [${("number" == typeof n ? [t, e, r, n] : [t, e, r]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`
- }
- return void 0 === n || "number" == typeof n && n >= 0 && n <= 1 ? null : `Invalid rgba value [${[t, e, r, n].join(", ")}]: 'a' must be between 0 and 1.`
- }
-
- function it(t) {
- if (null === t) return !0;
- if ("string" == typeof t) return !0;
- if ("boolean" == typeof t) return !0;
- if ("number" == typeof t) return !0;
- if (t instanceof J) return !0;
- if (t instanceof Q) return !0;
- if (t instanceof et) return !0;
- if (t instanceof rt) return !0;
- if (Array.isArray(t)) {
- for (const e of t) if (!it(e)) return !1;
- return !0
- }
- if ("object" == typeof t) {
- for (const e in t) if (!it(t[e])) return !1;
- return !0
- }
- return !1
- }
-
- function ot(t) {
- if (null === t) return k;
- if ("string" == typeof t) return N;
- if ("boolean" == typeof t) return D;
- if ("number" == typeof t) return j;
- if (t instanceof J) return G;
- if (t instanceof Q) return B;
- if (t instanceof et) return V;
- if (t instanceof rt) return Y;
- if (Array.isArray(t)) {
- const e = t.length;
- let r;
- for (const e of t) {
- const t = ot(e);
- if (r) {
- if (r === t) continue;
- r = U;
- break
- }
- r = t
- }
- return W(r || U, e)
- }
- return z
- }
-
- function at(t) {
- const e = typeof t;
- return null === t ? "" : "string" === e || "number" === e || "boolean" === e ? String(t) : t instanceof J || t instanceof et || t instanceof rt ? t.toString() : JSON.stringify(t)
- }
-
- class st {
- constructor(t, e) {
- this.type = t, this.value = e
- }
-
- static parse(t, e) {
- if (2 !== t.length) return e.error(`'literal' expression requires exactly one argument, but found ${t.length - 1} instead.`);
- if (!it(t[1])) return e.error("invalid value");
- const r = t[1];
- let n = ot(r);
- const i = e.expectedType;
- return "array" !== n.kind || 0 !== n.N || !i || "array" !== i.kind || "number" == typeof i.N && 0 !== i.N || (n = i), new st(n, r)
- }
-
- evaluate() {
- return this.value
- }
-
- eachChild() {
- }
-
- outputDefined() {
- return !0
- }
-
- serialize() {
- return "array" === this.type.kind || "object" === this.type.kind ? ["literal", this.value] : this.value instanceof J ? ["rgba"].concat(this.value.toArray()) : this.value instanceof et ? this.value.serialize() : this.value
- }
- }
-
- class lt {
- constructor(t) {
- this.name = "ExpressionEvaluationError", this.message = t
- }
-
- toJSON() {
- return this.message
- }
- }
-
- const ut = {string: N, number: j, boolean: D, object: z};
-
- class ct {
- constructor(t, e) {
- this.type = t, this.args = e
- }
-
- static parse(t, e) {
- if (t.length < 2) return e.error("Expected at least one argument.");
- let r, n = 1;
- const i = t[0];
- if ("array" === i) {
- let i, o;
- if (t.length > 2) {
- const r = t[1];
- if ("string" != typeof r || !(r in ut) || "object" === r) return e.error('The item type argument of "array" must be one of string, number, boolean', 1);
- i = ut[r], n++
- } else i = U;
- if (t.length > 3) {
- if (null !== t[2] && ("number" != typeof t[2] || t[2] < 0 || t[2] !== Math.floor(t[2]))) return e.error('The length argument to "array" must be a positive integer literal', 2);
- o = t[2], n++
- }
- r = W(i, o)
- } else r = ut[i];
- const o = [];
- for (; n < t.length; n++) {
- const r = e.parse(t[n], n, U);
- if (!r) return null;
- o.push(r)
- }
- return new ct(r, o)
- }
-
- evaluate(t) {
- for (let e = 0; e < this.args.length; e++) {
- const r = this.args[e].evaluate(t);
- if (!Z(this.type, ot(r))) return r;
- if (e === this.args.length - 1) throw new lt(`Expected value to be of type ${q(this.type)}, but found ${q(ot(r))} instead.`)
- }
- return null
- }
-
- eachChild(t) {
- this.args.forEach(t)
- }
-
- outputDefined() {
- return this.args.every(t => t.outputDefined())
- }
-
- serialize() {
- const t = this.type, e = [t.kind];
- if ("array" === t.kind) {
- const r = t.itemType;
- if ("string" === r.kind || "number" === r.kind || "boolean" === r.kind) {
- e.push(r.kind);
- const n = t.N;
- ("number" == typeof n || this.args.length > 1) && e.push(n)
- }
- }
- return e.concat(this.args.map(t => t.serialize()))
- }
- }
-
- class ht {
- constructor(t) {
- this.type = V, this.sections = t
- }
-
- static parse(t, e) {
- if (t.length < 2) return e.error("Expected at least one argument.");
- const r = t[1];
- if (!Array.isArray(r) && "object" == typeof r) return e.error("First argument must be an image or text section.");
- const n = [];
- let i = !1;
- for (let r = 1; r <= t.length - 1; ++r) {
- const o = t[r];
- if (i && "object" == typeof o && !Array.isArray(o)) {
- i = !1;
- let t = null;
- if (o["font-scale"] && (t = e.parse(o["font-scale"], 1, j), !t)) return null;
- let r = null;
- if (o["text-font"] && (r = e.parse(o["text-font"], 1, W(N)), !r)) return null;
- let a = null;
- if (o["text-color"] && (a = e.parse(o["text-color"], 1, G), !a)) return null;
- const s = n[n.length - 1];
- s.scale = t, s.font = r, s.textColor = a
- } else {
- const o = e.parse(t[r], 1, U);
- if (!o) return null;
- const a = o.type.kind;
- if ("string" !== a && "value" !== a && "null" !== a && "resolvedImage" !== a) return e.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");
- i = !0, n.push({content: o, scale: null, font: null, textColor: null})
- }
- }
- return new ht(n)
- }
-
- evaluate(t) {
- return new et(this.sections.map(e => {
- const r = e.content.evaluate(t);
- return ot(r) === Y ? new tt("", r, null, null, null) : new tt(at(r), null, e.scale ? e.scale.evaluate(t) : null, e.font ? e.font.evaluate(t).join(",") : null, e.textColor ? e.textColor.evaluate(t) : null)
- }))
- }
-
- eachChild(t) {
- for (const e of this.sections) t(e.content), e.scale && t(e.scale), e.font && t(e.font), e.textColor && t(e.textColor)
- }
-
- outputDefined() {
- return !1
- }
-
- serialize() {
- const t = ["format"];
- for (const e of this.sections) {
- t.push(e.content.serialize());
- const r = {};
- e.scale && (r["font-scale"] = e.scale.serialize()), e.font && (r["text-font"] = e.font.serialize()), e.textColor && (r["text-color"] = e.textColor.serialize()), t.push(r)
- }
- return t
- }
- }
-
- class pt {
- constructor(t) {
- this.type = Y, this.input = t
- }
-
- static parse(t, e) {
- if (2 !== t.length) return e.error("Expected two arguments.");
- const r = e.parse(t[1], 1, N);
- return r ? new pt(r) : e.error("No image name provided.")
- }
-
- evaluate(t) {
- const e = this.input.evaluate(t), r = rt.fromString(e);
- return r && t.availableImages && (r.available = t.availableImages.indexOf(e) > -1), r
- }
-
- eachChild(t) {
- t(this.input)
- }
-
- outputDefined() {
- return !1
- }
-
- serialize() {
- return ["image", this.input.serialize()]
- }
- }
-
- const ft = {"to-boolean": D, "to-color": G, "to-number": j, "to-string": N};
-
- class dt {
- constructor(t, e) {
- this.type = t, this.args = e
- }
-
- static parse(t, e) {
- if (t.length < 2) return e.error("Expected at least one argument.");
- const r = t[0];
- if (("to-boolean" === r || "to-string" === r) && 2 !== t.length) return e.error("Expected one argument.");
- const n = ft[r], i = [];
- for (let r = 1; r < t.length; r++) {
- const n = e.parse(t[r], r, U);
- if (!n) return null;
- i.push(n)
- }
- return new dt(n, i)
- }
-
- evaluate(t) {
- if ("boolean" === this.type.kind) return Boolean(this.args[0].evaluate(t));
- if ("color" === this.type.kind) {
- let e, r;
- for (const n of this.args) {
- if (e = n.evaluate(t), r = null, e instanceof J) return e;
- if ("string" == typeof e) {
- const r = t.parseColor(e);
- if (r) return r
- } else if (Array.isArray(e) && (r = e.length < 3 || e.length > 4 ? `Invalid rbga value ${JSON.stringify(e)}: expected an array containing either three or four numeric values.` : nt(e[0], e[1], e[2], e[3]), !r)) return new J(e[0] / 255, e[1] / 255, e[2] / 255, e[3])
- }
- throw new lt(r || `Could not parse color from value '${"string" == typeof e ? e : String(JSON.stringify(e))}'`)
- }
- if ("number" === this.type.kind) {
- let e = null;
- for (const r of this.args) {
- if (e = r.evaluate(t), null === e) return 0;
- const n = Number(e);
- if (!isNaN(n)) return n
- }
- throw new lt(`Could not convert ${JSON.stringify(e)} to number.`)
- }
- return "formatted" === this.type.kind ? et.fromString(at(this.args[0].evaluate(t))) : "resolvedImage" === this.type.kind ? rt.fromString(at(this.args[0].evaluate(t))) : at(this.args[0].evaluate(t))
- }
-
- eachChild(t) {
- this.args.forEach(t)
- }
-
- outputDefined() {
- return this.args.every(t => t.outputDefined())
- }
-
- serialize() {
- if ("formatted" === this.type.kind) return new ht([{
- content: this.args[0],
- scale: null,
- font: null,
- textColor: null
- }]).serialize();
- if ("resolvedImage" === this.type.kind) return new pt(this.args[0]).serialize();
- const t = ["to-" + this.type.kind];
- return this.eachChild(e => {
- t.push(e.serialize())
- }), t
- }
- }
-
- const gt = ["Unknown", "Point", "LineString", "Polygon"];
-
- class yt {
- constructor() {
- this.globals = null, this.feature = null, this.featureState = null, this.formattedSection = null, this._parseColorCache = {}, this.availableImages = null, this.canonical = null
- }
-
- id() {
- return this.feature && "id" in this.feature ? this.feature.id : null
- }
-
- geometryType() {
- return this.feature ? "number" == typeof this.feature.type ? gt[this.feature.type] : this.feature.type : null
- }
-
- geometry() {
- return this.feature && "geometry" in this.feature ? this.feature.geometry : null
- }
-
- canonicalID() {
- return this.canonical
- }
-
- properties() {
- return this.feature && this.feature.properties || {}
- }
-
- parseColor(t) {
- let e = this._parseColorCache[t];
- return e || (e = this._parseColorCache[t] = J.parse(t)), e
- }
- }
-
- class mt {
- constructor(t, e, r, n) {
- this.name = t, this.type = e, this._evaluate = r, this.args = n
- }
-
- evaluate(t) {
- return this._evaluate(t, this.args)
- }
-
- eachChild(t) {
- this.args.forEach(t)
- }
-
- outputDefined() {
- return !1
- }
-
- serialize() {
- return [this.name].concat(this.args.map(t => t.serialize()))
- }
-
- static parse(t, e) {
- const r = t[0], n = mt.definitions[r];
- if (!n) return e.error(`Unknown expression "${r}". If you wanted a literal array, use ["literal", [...]].`, 0);
- const i = Array.isArray(n) ? n[0] : n.type, o = Array.isArray(n) ? [[n[1], n[2]]] : n.overloads,
- a = o.filter(([e]) => !Array.isArray(e) || e.length === t.length - 1);
- let s = null;
- for (const [n, o] of a) {
- s = new zt(e.registry, e.path, null, e.scope);
- const a = [];
- let l = !1;
- for (let e = 1; e < t.length; e++) {
- const r = t[e], i = Array.isArray(n) ? n[e - 1] : n.type, o = s.parse(r, 1 + a.length, i);
- if (!o) {
- l = !0;
- break
- }
- a.push(o)
- }
- if (!l) if (Array.isArray(n) && n.length !== a.length) s.error(`Expected ${n.length} arguments, but found ${a.length} instead.`); else {
- for (let t = 0; t < a.length; t++) {
- const e = Array.isArray(n) ? n[t] : n.type, r = a[t];
- s.concat(t + 1).checkSubtype(e, r.type)
- }
- if (0 === s.errors.length) return new mt(r, i, o, a)
- }
- }
- if (1 === a.length) e.errors.push(...s.errors); else {
- const r = (a.length ? a : o).map(([t]) => {
- return e = t, Array.isArray(e) ? `(${e.map(q).join(", ")})` : `(${q(e.type)}...)`;
- var e
- }).join(" | "), n = [];
- for (let r = 1; r < t.length; r++) {
- const i = e.parse(t[r], 1 + n.length);
- if (!i) return null;
- n.push(q(i.type))
- }
- e.error(`Expected arguments of type ${r}, but found (${n.join(", ")}) instead.`)
- }
- return null
- }
-
- static register(t, e) {
- mt.definitions = e;
- for (const r in e) t[r] = mt
- }
- }
-
- class vt {
- constructor(t, e, r) {
- this.type = B, this.locale = r, this.caseSensitive = t, this.diacriticSensitive = e
- }
-
- static parse(t, e) {
- if (2 !== t.length) return e.error("Expected one argument.");
- const r = t[1];
- if ("object" != typeof r || Array.isArray(r)) return e.error("Collator options argument must be an object.");
- const n = e.parse(void 0 !== r["case-sensitive"] && r["case-sensitive"], 1, D);
- if (!n) return null;
- const i = e.parse(void 0 !== r["diacritic-sensitive"] && r["diacritic-sensitive"], 1, D);
- if (!i) return null;
- let o = null;
- return r.locale && (o = e.parse(r.locale, 1, N), !o) ? null : new vt(n, i, o)
- }
-
- evaluate(t) {
- return new Q(this.caseSensitive.evaluate(t), this.diacriticSensitive.evaluate(t), this.locale ? this.locale.evaluate(t) : null)
- }
-
- eachChild(t) {
- t(this.caseSensitive), t(this.diacriticSensitive), this.locale && t(this.locale)
- }
-
- outputDefined() {
- return !1
- }
-
- serialize() {
- const t = {};
- return t["case-sensitive"] = this.caseSensitive.serialize(), t["diacritic-sensitive"] = this.diacriticSensitive.serialize(), this.locale && (t.locale = this.locale.serialize()), ["collator", t]
- }
- }
-
- function _t(t, e) {
- t[0] = Math.min(t[0], e[0]), t[1] = Math.min(t[1], e[1]), t[2] = Math.max(t[2], e[0]), t[3] = Math.max(t[3], e[1])
- }
-
- function bt(t, e) {
- return !(t[0] <= e[0]) && (!(t[2] >= e[2]) && (!(t[1] <= e[1]) && !(t[3] >= e[3])))
- }
-
- function xt(t, e) {
- const r = (180 + t[0]) / 360;
- const n = (i = t[1], (180 - 180 / Math.PI * Math.log(Math.tan(Math.PI / 4 + i * Math.PI / 360))) / 360);
- var i;
- const o = Math.pow(2, e.z);
- return [Math.round(r * o * 8192), Math.round(n * o * 8192)]
- }
-
- function wt(t, e, r) {
- const n = t[0] - e[0], i = t[1] - e[1], o = t[0] - r[0], a = t[1] - r[1];
- return n * a - o * i == 0 && n * o <= 0 && i * a <= 0
- }
-
- function St(t, e) {
- let r = !1;
- for (let a = 0, s = e.length; a < s; a++) {
- const s = e[a];
- for (let e = 0, a = s.length; e < a - 1; e++) {
- if (wt(t, s[e], s[e + 1])) return !1;
- n = t, i = s[e], o = s[e + 1], i[1] > n[1] != o[1] > n[1] && n[0] < (o[0] - i[0]) * (n[1] - i[1]) / (o[1] - i[1]) + i[0] && (r = !r)
- }
- }
- var n, i, o;
- return r
- }
-
- function Et(t, e) {
- for (let r = 0; r < e.length; r++) if (St(t, e[r])) return !0;
- return !1
- }
-
- function Tt(t, e, r, n) {
- const i = t[0] - r[0], o = t[1] - r[1], a = e[0] - r[0], s = e[1] - r[1], l = n[0] - r[0], u = n[1] - r[1],
- c = i * u - l * o, h = a * u - l * s;
- return c > 0 && h < 0 || c < 0 && h > 0
- }
-
- function Ct(t, e, r, n) {
- const i = [e[0] - t[0], e[1] - t[1]], o = [n[0] - r[0], n[1] - r[1]];
- return 0 != (a = o)[0] * (s = i)[1] - a[1] * s[0] && !(!Tt(t, e, r, n) || !Tt(r, n, t, e));
- var a, s
- }
-
- function Ot(t, e, r) {
- for (const n of r) for (let r = 0; r < n.length - 1; ++r) if (Ct(t, e, n[r], n[r + 1])) return !0;
- return !1
- }
-
- function Pt(t, e) {
- for (let r = 0; r < t.length; ++r) if (!St(t[r], e)) return !1;
- for (let r = 0; r < t.length - 1; ++r) if (Ot(t[r], t[r + 1], e)) return !1;
- return !0
- }
-
- function Rt(t, e) {
- for (let r = 0; r < e.length; r++) if (Pt(t, e[r])) return !0;
- return !1
- }
-
- function It(t, e, r) {
- const n = [];
- for (let i = 0; i < t.length; i++) {
- const o = [];
- for (let n = 0; n < t[i].length; n++) {
- const a = xt(t[i][n], r);
- _t(e, a), o.push(a)
- }
- n.push(o)
- }
- return n
- }
-
- function Lt(t, e, r) {
- const n = [];
- for (let i = 0; i < t.length; i++) {
- const o = It(t[i], e, r);
- n.push(o)
- }
- return n
- }
-
- function Mt(t, e, r, n) {
- if (t[0] < r[0] || t[0] > r[2]) {
- const e = .5 * n;
- let i = t[0] - r[0] > e ? -n : r[0] - t[0] > e ? n : 0;
- 0 === i && (i = t[0] - r[2] > e ? -n : r[2] - t[0] > e ? n : 0), t[0] += i
- }
- _t(e, t)
- }
-
- function Ft(t, e, r, n) {
- const i = 8192 * Math.pow(2, n.z), o = [8192 * n.x, 8192 * n.y], a = [];
- for (const n of t) for (const t of n) {
- const n = [t.x + o[0], t.y + o[1]];
- Mt(n, e, r, i), a.push(n)
- }
- return a
- }
-
- function At(t, e, r, n) {
- const i = 8192 * Math.pow(2, n.z), o = [8192 * n.x, 8192 * n.y], a = [];
- for (const r of t) {
- const t = [];
- for (const n of r) {
- const r = [n.x + o[0], n.y + o[1]];
- _t(e, r), t.push(r)
- }
- a.push(t)
- }
- if (e[2] - e[0] <= i / 2) {
- (s = e)[0] = s[1] = 1 / 0, s[2] = s[3] = -1 / 0;
- for (const t of a) for (const n of t) Mt(n, e, r, i)
- }
- var s;
- return a
- }
-
- class kt {
- constructor(t, e) {
- this.type = D, this.geojson = t, this.geometries = e
- }
-
- static parse(t, e) {
- if (2 !== t.length) return e.error(`'within' expression requires exactly one argument, but found ${t.length - 1} instead.`);
- if (it(t[1])) {
- const e = t[1];
- if ("FeatureCollection" === e.type) for (let t = 0; t < e.features.length; ++t) {
- const r = e.features[t].geometry.type;
- if ("Polygon" === r || "MultiPolygon" === r) return new kt(e, e.features[t].geometry)
- } else if ("Feature" === e.type) {
- const t = e.geometry.type;
- if ("Polygon" === t || "MultiPolygon" === t) return new kt(e, e.geometry)
- } else if ("Polygon" === e.type || "MultiPolygon" === e.type) return new kt(e, e)
- }
- return e.error("'within' expression requires valid geojson object that contains polygon geometry type.")
- }
-
- evaluate(t) {
- if (null != t.geometry() && null != t.canonicalID()) {
- if ("Point" === t.geometryType()) return function (t, e) {
- const r = [1 / 0, 1 / 0, -1 / 0, -1 / 0], n = [1 / 0, 1 / 0, -1 / 0, -1 / 0], i = t.canonicalID();
- if ("Polygon" === e.type) {
- const o = It(e.coordinates, n, i), a = Ft(t.geometry(), r, n, i);
- if (!bt(r, n)) return !1;
- for (const t of a) if (!St(t, o)) return !1
- }
- if ("MultiPolygon" === e.type) {
- const o = Lt(e.coordinates, n, i), a = Ft(t.geometry(), r, n, i);
- if (!bt(r, n)) return !1;
- for (const t of a) if (!Et(t, o)) return !1
- }
- return !0
- }(t, this.geometries);
- if ("LineString" === t.geometryType()) return function (t, e) {
- const r = [1 / 0, 1 / 0, -1 / 0, -1 / 0], n = [1 / 0, 1 / 0, -1 / 0, -1 / 0], i = t.canonicalID();
- if ("Polygon" === e.type) {
- const o = It(e.coordinates, n, i), a = At(t.geometry(), r, n, i);
- if (!bt(r, n)) return !1;
- for (const t of a) if (!Pt(t, o)) return !1
- }
- if ("MultiPolygon" === e.type) {
- const o = Lt(e.coordinates, n, i), a = At(t.geometry(), r, n, i);
- if (!bt(r, n)) return !1;
- for (const t of a) if (!Rt(t, o)) return !1
- }
- return !0
- }(t, this.geometries)
- }
- return !1
- }
-
- eachChild() {
- }
-
- outputDefined() {
- return !0
- }
-
- serialize() {
- return ["within", this.geojson]
- }
- }
-
- function jt(t) {
- if (t instanceof mt) {
- if ("get" === t.name && 1 === t.args.length) return !1;
- if ("feature-state" === t.name) return !1;
- if ("has" === t.name && 1 === t.args.length) return !1;
- if ("properties" === t.name || "geometry-type" === t.name || "id" === t.name) return !1;
- if (/^filter-/.test(t.name)) return !1
- }
- if (t instanceof kt) return !1;
- let e = !0;
- return t.eachChild(t => {
- e && !jt(t) && (e = !1)
- }), e
- }
-
- function Nt(t) {
- if (t instanceof mt && "feature-state" === t.name) return !1;
- let e = !0;
- return t.eachChild(t => {
- e && !Nt(t) && (e = !1)
- }), e
- }
-
- function Dt(t, e) {
- if (t instanceof mt && e.indexOf(t.name) >= 0) return !1;
- let r = !0;
- return t.eachChild(t => {
- r && !Dt(t, e) && (r = !1)
- }), r
- }
-
- class Gt {
- constructor(t, e) {
- this.type = e.type, this.name = t, this.boundExpression = e
- }
-
- static parse(t, e) {
- if (2 !== t.length || "string" != typeof t[1]) return e.error("'var' expression requires exactly one string literal argument.");
- const r = t[1];
- return e.scope.has(r) ? new Gt(r, e.scope.get(r)) : e.error(`Unknown variable "${r}". Make sure "${r}" has been bound in an enclosing "let" expression before using it.`, 1)
- }
-
- evaluate(t) {
- return this.boundExpression.evaluate(t)
- }
-
- eachChild() {
- }
-
- outputDefined() {
- return !1
- }
-
- serialize() {
- return ["var", this.name]
- }
- }
-
- class zt {
- constructor(t, e = [], r, n = new A, i = []) {
- this.registry = t, this.path = e, this.key = e.map(t => `[${t}]`).join(""), this.scope = n, this.errors = i, this.expectedType = r
- }
-
- parse(t, e, r, n, i = {}) {
- return e ? this.concat(e, r, n)._parse(t, i) : this._parse(t, i)
- }
-
- _parse(t, e) {
- function r(t, e, r) {
- return "assert" === r ? new ct(e, [t]) : "coerce" === r ? new dt(e, [t]) : t
- }
-
- if (null !== t && "string" != typeof t && "boolean" != typeof t && "number" != typeof t || (t = ["literal", t]), Array.isArray(t)) {
- if (0 === t.length) return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');
- const n = t[0];
- if ("string" != typeof n) return this.error(`Expression name must be a string, but found ${typeof n} instead. If you wanted a literal array, use ["literal", [...]].`, 0), null;
- const i = this.registry[n];
- if (i) {
- let n = i.parse(t, this);
- if (!n) return null;
- if (this.expectedType) {
- const t = this.expectedType, i = n.type;
- if ("string" !== t.kind && "number" !== t.kind && "boolean" !== t.kind && "object" !== t.kind && "array" !== t.kind || "value" !== i.kind) if ("color" !== t.kind && "formatted" !== t.kind && "resolvedImage" !== t.kind || "value" !== i.kind && "string" !== i.kind) {
- if (this.checkSubtype(t, i)) return null
- } else n = r(n, t, e.typeAnnotation || "coerce"); else n = r(n, t, e.typeAnnotation || "assert")
- }
- if (!(n instanceof st) && "resolvedImage" !== n.type.kind && function t(e) {
- if (e instanceof Gt) return t(e.boundExpression);
- if (e instanceof mt && "error" === e.name) return !1;
- if (e instanceof vt) return !1;
- if (e instanceof kt) return !1;
- const r = e instanceof dt || e instanceof ct;
- let n = !0;
- if (e.eachChild(e => {
- n = r ? n && t(e) : n && e instanceof st
- }), !n) return !1;
- return jt(e) && Dt(e, ["zoom", "heatmap-density", "line-progress", "sky-radial-progress", "accumulated", "is-supported-script"])
- }(n)) {
- const t = new yt;
- try {
- n = new st(n.type, n.evaluate(t))
- } catch (t) {
- return this.error(t.message), null
- }
- }
- return n
- }
- return this.error(`Unknown expression "${n}". If you wanted a literal array, use ["literal", [...]].`, 0)
- }
- return void 0 === t ? this.error("'undefined' value invalid. Use null instead.") : "object" == typeof t ? this.error('Bare objects invalid. Use ["literal", {...}] instead.') : this.error(`Expected an array, but found ${typeof t} instead.`)
- }
-
- concat(t, e, r) {
- const n = "number" == typeof t ? this.path.concat(t) : this.path, i = r ? this.scope.concat(r) : this.scope;
- return new zt(this.registry, n, e || null, i, this.errors)
- }
-
- error(t, ...e) {
- const r = `${this.key}${e.map(t => `[${t}]`).join("")}`;
- this.errors.push(new F(r, t))
- }
-
- checkSubtype(t, e) {
- const r = Z(t, e);
- return r && this.error(r), r
- }
- }
-
- function Ut(t, e) {
- const r = t.length - 1;
- let n, i, o = 0, a = r, s = 0;
- for (; o <= a;) if (s = Math.floor((o + a) / 2), n = t[s], i = t[s + 1], n <= e) {
- if (s === r || e < i) return s;
- o = s + 1
- } else {
- if (!(n > e)) throw new lt("Input is not a number.");
- a = s - 1
- }
- return 0
- }
-
- class Bt {
- constructor(t, e, r) {
- this.type = t, this.input = e, this.labels = [], this.outputs = [];
- for (const [t, e] of r) this.labels.push(t), this.outputs.push(e)
- }
-
- static parse(t, e) {
- if (t.length - 1 < 4) return e.error(`Expected at least 4 arguments, but found only ${t.length - 1}.`);
- if ((t.length - 1) % 2 != 0) return e.error("Expected an even number of arguments.");
- const r = e.parse(t[1], 1, j);
- if (!r) return null;
- const n = [];
- let i = null;
- e.expectedType && "value" !== e.expectedType.kind && (i = e.expectedType);
- for (let r = 1; r < t.length; r += 2) {
- const o = 1 === r ? -1 / 0 : t[r], a = t[r + 1], s = r, l = r + 1;
- if ("number" != typeof o) return e.error('Input/output pairs for "step" expressions must be defined using literal numeric values (not computed expressions) for the input values.', s);
- if (n.length && n[n.length - 1][0] >= o) return e.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.', s);
- const u = e.parse(a, l, i);
- if (!u) return null;
- i = i || u.type, n.push([o, u])
- }
- return new Bt(i, r, n)
- }
-
- evaluate(t) {
- const e = this.labels, r = this.outputs;
- if (1 === e.length) return r[0].evaluate(t);
- const n = this.input.evaluate(t);
- if (n <= e[0]) return r[0].evaluate(t);
- const i = e.length;
- if (n >= e[i - 1]) return r[i - 1].evaluate(t);
- return r[Ut(e, n)].evaluate(t)
- }
-
- eachChild(t) {
- t(this.input);
- for (const e of this.outputs) t(e)
- }
-
- outputDefined() {
- return this.outputs.every(t => t.outputDefined())
- }
-
- serialize() {
- const t = ["step", this.input.serialize()];
- for (let e = 0; e < this.labels.length; e++) e > 0 && t.push(this.labels[e]), t.push(this.outputs[e].serialize());
- return t
- }
- }
-
- var Vt = Yt;
-
- function Yt(t, e, r, n) {
- this.cx = 3 * t, this.bx = 3 * (r - t) - this.cx, this.ax = 1 - this.cx - this.bx, this.cy = 3 * e, this.by = 3 * (n - e) - this.cy, this.ay = 1 - this.cy - this.by, this.p1x = t, this.p1y = n, this.p2x = r, this.p2y = n
- }
-
- function Wt(t, e, r) {
- return t * (1 - r) + e * r
- }
-
- Yt.prototype.sampleCurveX = function (t) {
- return ((this.ax * t + this.bx) * t + this.cx) * t
- }, Yt.prototype.sampleCurveY = function (t) {
- return ((this.ay * t + this.by) * t + this.cy) * t
- }, Yt.prototype.sampleCurveDerivativeX = function (t) {
- return (3 * this.ax * t + 2 * this.bx) * t + this.cx
- }, Yt.prototype.solveCurveX = function (t, e) {
- var r, n, i, o, a;
- for (void 0 === e && (e = 1e-6), i = t, a = 0; a < 8; a++) {
- if (o = this.sampleCurveX(i) - t, Math.abs(o) < e) return i;
- var s = this.sampleCurveDerivativeX(i);
- if (Math.abs(s) < 1e-6) break;
- i -= o / s
- }
- if ((i = t) < (r = 0)) return r;
- if (i > (n = 1)) return n;
- for (; r < n;) {
- if (o = this.sampleCurveX(i), Math.abs(o - t) < e) return i;
- t > o ? r = i : n = i, i = .5 * (n - r) + r
- }
- return i
- }, Yt.prototype.solve = function (t, e) {
- return this.sampleCurveY(this.solveCurveX(t, e))
- };
- var qt = Object.freeze({
- __proto__: null, number: Wt, color: function (t, e, r) {
- return new J(Wt(t.r, e.r, r), Wt(t.g, e.g, r), Wt(t.b, e.b, r), Wt(t.a, e.a, r))
- }, array: function (t, e, r) {
- return t.map((t, n) => Wt(t, e[n], r))
- }
- });
- const Xt = 6 / 29, Zt = 3 * Xt * Xt, Kt = Math.PI / 180, Ht = 180 / Math.PI;
-
- function $t(t) {
- return t > .008856451679035631 ? Math.pow(t, 1 / 3) : t / Zt + 4 / 29
- }
-
- function Jt(t) {
- return t > Xt ? t * t * t : Zt * (t - 4 / 29)
- }
-
- function Qt(t) {
- return 255 * (t <= .0031308 ? 12.92 * t : 1.055 * Math.pow(t, 1 / 2.4) - .055)
- }
-
- function te(t) {
- return (t /= 255) <= .04045 ? t / 12.92 : Math.pow((t + .055) / 1.055, 2.4)
- }
-
- function ee(t) {
- const e = te(t.r), r = te(t.g), n = te(t.b), i = $t((.4124564 * e + .3575761 * r + .1804375 * n) / .95047),
- o = $t((.2126729 * e + .7151522 * r + .072175 * n) / 1);
- return {
- l: 116 * o - 16,
- a: 500 * (i - o),
- b: 200 * (o - $t((.0193339 * e + .119192 * r + .9503041 * n) / 1.08883)),
- alpha: t.a
- }
- }
-
- function re(t) {
- let e = (t.l + 16) / 116, r = isNaN(t.a) ? e : e + t.a / 500, n = isNaN(t.b) ? e : e - t.b / 200;
- return e = 1 * Jt(e), r = .95047 * Jt(r), n = 1.08883 * Jt(n), new J(Qt(3.2404542 * r - 1.5371385 * e - .4985314 * n), Qt(-.969266 * r + 1.8760108 * e + .041556 * n), Qt(.0556434 * r - .2040259 * e + 1.0572252 * n), t.alpha)
- }
-
- function ne(t, e, r) {
- const n = e - t;
- return t + r * (n > 180 || n < -180 ? n - 360 * Math.round(n / 360) : n)
- }
-
- const ie = {
- forward: ee, reverse: re, interpolate: function (t, e, r) {
- return {l: Wt(t.l, e.l, r), a: Wt(t.a, e.a, r), b: Wt(t.b, e.b, r), alpha: Wt(t.alpha, e.alpha, r)}
- }
- }, oe = {
- forward: function (t) {
- const {l: e, a: r, b: n} = ee(t), i = Math.atan2(n, r) * Ht;
- return {h: i < 0 ? i + 360 : i, c: Math.sqrt(r * r + n * n), l: e, alpha: t.a}
- }, reverse: function (t) {
- const e = t.h * Kt, r = t.c;
- return re({l: t.l, a: Math.cos(e) * r, b: Math.sin(e) * r, alpha: t.alpha})
- }, interpolate: function (t, e, r) {
- return {h: ne(t.h, e.h, r), c: Wt(t.c, e.c, r), l: Wt(t.l, e.l, r), alpha: Wt(t.alpha, e.alpha, r)}
- }
- };
- var ae = Object.freeze({__proto__: null, lab: ie, hcl: oe});
-
- class se {
- constructor(t, e, r, n, i) {
- this.type = t, this.operator = e, this.interpolation = r, this.input = n, this.labels = [], this.outputs = [];
- for (const [t, e] of i) this.labels.push(t), this.outputs.push(e)
- }
-
- static interpolationFactor(t, e, r, n) {
- let i = 0;
- if ("exponential" === t.name) i = le(e, t.base, r, n); else if ("linear" === t.name) i = le(e, 1, r, n); else if ("cubic-bezier" === t.name) {
- const o = t.controlPoints;
- i = new Vt(o[0], o[1], o[2], o[3]).solve(le(e, 1, r, n))
- }
- return i
- }
-
- static parse(t, e) {
- let [r, n, i, ...o] = t;
- if (!Array.isArray(n) || 0 === n.length) return e.error("Expected an interpolation type expression.", 1);
- if ("linear" === n[0]) n = {name: "linear"}; else if ("exponential" === n[0]) {
- const t = n[1];
- if ("number" != typeof t) return e.error("Exponential interpolation requires a numeric base.", 1, 1);
- n = {name: "exponential", base: t}
- } else {
- if ("cubic-bezier" !== n[0]) return e.error("Unknown interpolation type " + String(n[0]), 1, 0);
- {
- const t = n.slice(1);
- if (4 !== t.length || t.some(t => "number" != typeof t || t < 0 || t > 1)) return e.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.", 1);
- n = {name: "cubic-bezier", controlPoints: t}
- }
- }
- if (t.length - 1 < 4) return e.error(`Expected at least 4 arguments, but found only ${t.length - 1}.`);
- if ((t.length - 1) % 2 != 0) return e.error("Expected an even number of arguments.");
- if (i = e.parse(i, 2, j), !i) return null;
- const a = [];
- let s = null;
- "interpolate-hcl" === r || "interpolate-lab" === r ? s = G : e.expectedType && "value" !== e.expectedType.kind && (s = e.expectedType);
- for (let t = 0; t < o.length; t += 2) {
- const r = o[t], n = o[t + 1], i = t + 3, l = t + 4;
- if ("number" != typeof r) return e.error('Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.', i);
- if (a.length && a[a.length - 1][0] >= r) return e.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.', i);
- const u = e.parse(n, l, s);
- if (!u) return null;
- s = s || u.type, a.push([r, u])
- }
- return "number" === s.kind || "color" === s.kind || "array" === s.kind && "number" === s.itemType.kind && "number" == typeof s.N ? new se(s, r, n, i, a) : e.error(`Type ${q(s)} is not interpolatable.`)
- }
-
- evaluate(t) {
- const e = this.labels, r = this.outputs;
- if (1 === e.length) return r[0].evaluate(t);
- const n = this.input.evaluate(t);
- if (n <= e[0]) return r[0].evaluate(t);
- const i = e.length;
- if (n >= e[i - 1]) return r[i - 1].evaluate(t);
- const o = Ut(e, n), a = e[o], s = e[o + 1], l = se.interpolationFactor(this.interpolation, n, a, s),
- u = r[o].evaluate(t), c = r[o + 1].evaluate(t);
- return "interpolate" === this.operator ? qt[this.type.kind.toLowerCase()](u, c, l) : "interpolate-hcl" === this.operator ? oe.reverse(oe.interpolate(oe.forward(u), oe.forward(c), l)) : ie.reverse(ie.interpolate(ie.forward(u), ie.forward(c), l))
- }
-
- eachChild(t) {
- t(this.input);
- for (const e of this.outputs) t(e)
- }
-
- outputDefined() {
- return this.outputs.every(t => t.outputDefined())
- }
-
- serialize() {
- let t;
- t = "linear" === this.interpolation.name ? ["linear"] : "exponential" === this.interpolation.name ? 1 === this.interpolation.base ? ["linear"] : ["exponential", this.interpolation.base] : ["cubic-bezier"].concat(this.interpolation.controlPoints);
- const e = [this.operator, t, this.input.serialize()];
- for (let t = 0; t < this.labels.length; t++) e.push(this.labels[t], this.outputs[t].serialize());
- return e
- }
- }
-
- function le(t, e, r, n) {
- const i = n - r, o = t - r;
- return 0 === i ? 0 : 1 === e ? o / i : (Math.pow(e, o) - 1) / (Math.pow(e, i) - 1)
- }
-
- class ue {
- constructor(t, e) {
- this.type = t, this.args = e
- }
-
- static parse(t, e) {
- if (t.length < 2) return e.error("Expectected at least one argument.");
- let r = null;
- const n = e.expectedType;
- n && "value" !== n.kind && (r = n);
- const i = [];
- for (const n of t.slice(1)) {
- const t = e.parse(n, 1 + i.length, r, void 0, {typeAnnotation: "omit"});
- if (!t) return null;
- r = r || t.type, i.push(t)
- }
- const o = n && i.some(t => Z(n, t.type));
- return new ue(o ? U : r, i)
- }
-
- evaluate(t) {
- let e, r = null, n = 0;
- for (const i of this.args) if (n++, r = i.evaluate(t), r && r instanceof rt && !r.available && (e || (e = r.name), r = null, n === this.args.length && (r = e)), null !== r) break;
- return r
- }
-
- eachChild(t) {
- this.args.forEach(t)
- }
-
- outputDefined() {
- return this.args.every(t => t.outputDefined())
- }
-
- serialize() {
- const t = ["coalesce"];
- return this.eachChild(e => {
- t.push(e.serialize())
- }), t
- }
- }
-
- class ce {
- constructor(t, e) {
- this.type = e.type, this.bindings = [].concat(t), this.result = e
- }
-
- evaluate(t) {
- return this.result.evaluate(t)
- }
-
- eachChild(t) {
- for (const e of this.bindings) t(e[1]);
- t(this.result)
- }
-
- static parse(t, e) {
- if (t.length < 4) return e.error(`Expected at least 3 arguments, but found ${t.length - 1} instead.`);
- const r = [];
- for (let n = 1; n < t.length - 1; n += 2) {
- const i = t[n];
- if ("string" != typeof i) return e.error(`Expected string, but found ${typeof i} instead.`, n);
- if (/[^a-zA-Z0-9_]/.test(i)) return e.error("Variable names must contain only alphanumeric characters or '_'.", n);
- const o = e.parse(t[n + 1], n + 1);
- if (!o) return null;
- r.push([i, o])
- }
- const n = e.parse(t[t.length - 1], t.length - 1, e.expectedType, r);
- return n ? new ce(r, n) : null
- }
-
- outputDefined() {
- return this.result.outputDefined()
- }
-
- serialize() {
- const t = ["let"];
- for (const [e, r] of this.bindings) t.push(e, r.serialize());
- return t.push(this.result.serialize()), t
- }
- }
-
- class he {
- constructor(t, e, r) {
- this.type = t, this.index = e, this.input = r
- }
-
- static parse(t, e) {
- if (3 !== t.length) return e.error(`Expected 2 arguments, but found ${t.length - 1} instead.`);
- const r = e.parse(t[1], 1, j), n = e.parse(t[2], 2, W(e.expectedType || U));
- if (!r || !n) return null;
- const i = n.type;
- return new he(i.itemType, r, n)
- }
-
- evaluate(t) {
- const e = this.index.evaluate(t), r = this.input.evaluate(t);
- if (e < 0) throw new lt(`Array index out of bounds: ${e} < 0.`);
- if (e >= r.length) throw new lt(`Array index out of bounds: ${e} > ${r.length - 1}.`);
- if (e !== Math.floor(e)) throw new lt(`Array index must be an integer, but found ${e} instead.`);
- return r[e]
- }
-
- eachChild(t) {
- t(this.index), t(this.input)
- }
-
- outputDefined() {
- return !1
- }
-
- serialize() {
- return ["at", this.index.serialize(), this.input.serialize()]
- }
- }
-
- class pe {
- constructor(t, e) {
- this.type = D, this.needle = t, this.haystack = e
- }
-
- static parse(t, e) {
- if (3 !== t.length) return e.error(`Expected 2 arguments, but found ${t.length - 1} instead.`);
- const r = e.parse(t[1], 1, U), n = e.parse(t[2], 2, U);
- return r && n ? K(r.type, [D, N, j, k, U]) ? new pe(r, n) : e.error(`Expected first argument to be of type boolean, string, number or null, but found ${q(r.type)} instead`) : null
- }
-
- evaluate(t) {
- const e = this.needle.evaluate(t), r = this.haystack.evaluate(t);
- if (!r) return !1;
- if (!H(e, ["boolean", "string", "number", "null"])) throw new lt(`Expected first argument to be of type boolean, string, number or null, but found ${q(ot(e))} instead.`);
- if (!H(r, ["string", "array"])) throw new lt(`Expected second argument to be of type array or string, but found ${q(ot(r))} instead.`);
- return r.indexOf(e) >= 0
- }
-
- eachChild(t) {
- t(this.needle), t(this.haystack)
- }
-
- outputDefined() {
- return !0
- }
-
- serialize() {
- return ["in", this.needle.serialize(), this.haystack.serialize()]
- }
- }
-
- class fe {
- constructor(t, e, r) {
- this.type = j, this.needle = t, this.haystack = e, this.fromIndex = r
- }
-
- static parse(t, e) {
- if (t.length <= 2 || t.length >= 5) return e.error(`Expected 3 or 4 arguments, but found ${t.length - 1} instead.`);
- const r = e.parse(t[1], 1, U), n = e.parse(t[2], 2, U);
- if (!r || !n) return null;
- if (!K(r.type, [D, N, j, k, U])) return e.error(`Expected first argument to be of type boolean, string, number or null, but found ${q(r.type)} instead`);
- if (4 === t.length) {
- const i = e.parse(t[3], 3, j);
- return i ? new fe(r, n, i) : null
- }
- return new fe(r, n)
- }
-
- evaluate(t) {
- const e = this.needle.evaluate(t), r = this.haystack.evaluate(t);
- if (!H(e, ["boolean", "string", "number", "null"])) throw new lt(`Expected first argument to be of type boolean, string, number or null, but found ${q(ot(e))} instead.`);
- if (!H(r, ["string", "array"])) throw new lt(`Expected second argument to be of type array or string, but found ${q(ot(r))} instead.`);
- if (this.fromIndex) {
- const n = this.fromIndex.evaluate(t);
- return r.indexOf(e, n)
- }
- return r.indexOf(e)
- }
-
- eachChild(t) {
- t(this.needle), t(this.haystack), this.fromIndex && t(this.fromIndex)
- }
-
- outputDefined() {
- return !1
- }
-
- serialize() {
- if (null != this.fromIndex && void 0 !== this.fromIndex) {
- const t = this.fromIndex.serialize();
- return ["index-of", this.needle.serialize(), this.haystack.serialize(), t]
- }
- return ["index-of", this.needle.serialize(), this.haystack.serialize()]
- }
- }
-
- class de {
- constructor(t, e, r, n, i, o) {
- this.inputType = t, this.type = e, this.input = r, this.cases = n, this.outputs = i, this.otherwise = o
- }
-
- static parse(t, e) {
- if (t.length < 5) return e.error(`Expected at least 4 arguments, but found only ${t.length - 1}.`);
- if (t.length % 2 != 1) return e.error("Expected an even number of arguments.");
- let r, n;
- e.expectedType && "value" !== e.expectedType.kind && (n = e.expectedType);
- const i = {}, o = [];
- for (let a = 2; a < t.length - 1; a += 2) {
- let s = t[a];
- const l = t[a + 1];
- Array.isArray(s) || (s = [s]);
- const u = e.concat(a);
- if (0 === s.length) return u.error("Expected at least one branch label.");
- for (const t of s) {
- if ("number" != typeof t && "string" != typeof t) return u.error("Branch labels must be numbers or strings.");
- if ("number" == typeof t && Math.abs(t) > Number.MAX_SAFE_INTEGER) return u.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);
- if ("number" == typeof t && Math.floor(t) !== t) return u.error("Numeric branch labels must be integer values.");
- if (r) {
- if (u.checkSubtype(r, ot(t))) return null
- } else r = ot(t);
- if (void 0 !== i[String(t)]) return u.error("Branch labels must be unique.");
- i[String(t)] = o.length
- }
- const c = e.parse(l, a, n);
- if (!c) return null;
- n = n || c.type, o.push(c)
- }
- const a = e.parse(t[1], 1, U);
- if (!a) return null;
- const s = e.parse(t[t.length - 1], t.length - 1, n);
- return s ? "value" !== a.type.kind && e.concat(1).checkSubtype(r, a.type) ? null : new de(r, n, a, i, o, s) : null
- }
-
- evaluate(t) {
- const e = this.input.evaluate(t);
- return (ot(e) === this.inputType && this.outputs[this.cases[e]] || this.otherwise).evaluate(t)
- }
-
- eachChild(t) {
- t(this.input), this.outputs.forEach(t), t(this.otherwise)
- }
-
- outputDefined() {
- return this.outputs.every(t => t.outputDefined()) && this.otherwise.outputDefined()
- }
-
- serialize() {
- const t = ["match", this.input.serialize()], e = Object.keys(this.cases).sort(), r = [], n = {};
- for (const t of e) {
- const e = n[this.cases[t]];
- void 0 === e ? (n[this.cases[t]] = r.length, r.push([this.cases[t], [t]])) : r[e][1].push(t)
- }
- const i = t => "number" === this.inputType.kind ? Number(t) : t;
- for (const [e, n] of r) 1 === n.length ? t.push(i(n[0])) : t.push(n.map(i)), t.push(this.outputs[e].serialize());
- return t.push(this.otherwise.serialize()), t
- }
- }
-
- class ge {
- constructor(t, e, r) {
- this.type = t, this.branches = e, this.otherwise = r
- }
-
- static parse(t, e) {
- if (t.length < 4) return e.error(`Expected at least 3 arguments, but found only ${t.length - 1}.`);
- if (t.length % 2 != 0) return e.error("Expected an odd number of arguments.");
- let r;
- e.expectedType && "value" !== e.expectedType.kind && (r = e.expectedType);
- const n = [];
- for (let i = 1; i < t.length - 1; i += 2) {
- const o = e.parse(t[i], i, D);
- if (!o) return null;
- const a = e.parse(t[i + 1], i + 1, r);
- if (!a) return null;
- n.push([o, a]), r = r || a.type
- }
- const i = e.parse(t[t.length - 1], t.length - 1, r);
- return i ? new ge(r, n, i) : null
- }
-
- evaluate(t) {
- for (const [e, r] of this.branches) if (e.evaluate(t)) return r.evaluate(t);
- return this.otherwise.evaluate(t)
- }
-
- eachChild(t) {
- for (const [e, r] of this.branches) t(e), t(r);
- t(this.otherwise)
- }
-
- outputDefined() {
- return this.branches.every(([t, e]) => e.outputDefined()) && this.otherwise.outputDefined()
- }
-
- serialize() {
- const t = ["case"];
- return this.eachChild(e => {
- t.push(e.serialize())
- }), t
- }
- }
-
- class ye {
- constructor(t, e, r, n) {
- this.type = t, this.input = e, this.beginIndex = r, this.endIndex = n
- }
-
- static parse(t, e) {
- if (t.length <= 2 || t.length >= 5) return e.error(`Expected 3 or 4 arguments, but found ${t.length - 1} instead.`);
- const r = e.parse(t[1], 1, U), n = e.parse(t[2], 2, j);
- if (!r || !n) return null;
- if (!K(r.type, [W(U), N, U])) return e.error(`Expected first argument to be of type array or string, but found ${q(r.type)} instead`);
- if (4 === t.length) {
- const i = e.parse(t[3], 3, j);
- return i ? new ye(r.type, r, n, i) : null
- }
- return new ye(r.type, r, n)
- }
-
- evaluate(t) {
- const e = this.input.evaluate(t), r = this.beginIndex.evaluate(t);
- if (!H(e, ["string", "array"])) throw new lt(`Expected first argument to be of type array or string, but found ${q(ot(e))} instead.`);
- if (this.endIndex) {
- const n = this.endIndex.evaluate(t);
- return e.slice(r, n)
- }
- return e.slice(r)
- }
-
- eachChild(t) {
- t(this.input), t(this.beginIndex), this.endIndex && t(this.endIndex)
- }
-
- outputDefined() {
- return !1
- }
-
- serialize() {
- if (null != this.endIndex && void 0 !== this.endIndex) {
- const t = this.endIndex.serialize();
- return ["slice", this.input.serialize(), this.beginIndex.serialize(), t]
- }
- return ["slice", this.input.serialize(), this.beginIndex.serialize()]
- }
- }
-
- function me(t, e) {
- return "==" === t || "!=" === t ? "boolean" === e.kind || "string" === e.kind || "number" === e.kind || "null" === e.kind || "value" === e.kind : "string" === e.kind || "number" === e.kind || "value" === e.kind
- }
-
- function ve(t, e, r, n) {
- return 0 === n.compare(e, r)
- }
-
- function _e(t, e, r) {
- const n = "==" !== t && "!=" !== t;
- return class i {
- constructor(t, e, r) {
- this.type = D, this.lhs = t, this.rhs = e, this.collator = r, this.hasUntypedArgument = "value" === t.type.kind || "value" === e.type.kind
- }
-
- static parse(t, e) {
- if (3 !== t.length && 4 !== t.length) return e.error("Expected two or three arguments.");
- const r = t[0];
- let o = e.parse(t[1], 1, U);
- if (!o) return null;
- if (!me(r, o.type)) return e.concat(1).error(`"${r}" comparisons are not supported for type '${q(o.type)}'.`);
- let a = e.parse(t[2], 2, U);
- if (!a) return null;
- if (!me(r, a.type)) return e.concat(2).error(`"${r}" comparisons are not supported for type '${q(a.type)}'.`);
- if (o.type.kind !== a.type.kind && "value" !== o.type.kind && "value" !== a.type.kind) return e.error(`Cannot compare types '${q(o.type)}' and '${q(a.type)}'.`);
- n && ("value" === o.type.kind && "value" !== a.type.kind ? o = new ct(a.type, [o]) : "value" !== o.type.kind && "value" === a.type.kind && (a = new ct(o.type, [a])));
- let s = null;
- if (4 === t.length) {
- if ("string" !== o.type.kind && "string" !== a.type.kind && "value" !== o.type.kind && "value" !== a.type.kind) return e.error("Cannot use collator to compare non-string types.");
- if (s = e.parse(t[3], 3, B), !s) return null
- }
- return new i(o, a, s)
- }
-
- evaluate(i) {
- const o = this.lhs.evaluate(i), a = this.rhs.evaluate(i);
- if (n && this.hasUntypedArgument) {
- const e = ot(o), r = ot(a);
- if (e.kind !== r.kind || "string" !== e.kind && "number" !== e.kind) throw new lt(`Expected arguments for "${t}" to be (string, string) or (number, number), but found (${e.kind}, ${r.kind}) instead.`)
- }
- if (this.collator && !n && this.hasUntypedArgument) {
- const t = ot(o), r = ot(a);
- if ("string" !== t.kind || "string" !== r.kind) return e(i, o, a)
- }
- return this.collator ? r(i, o, a, this.collator.evaluate(i)) : e(i, o, a)
- }
-
- eachChild(t) {
- t(this.lhs), t(this.rhs), this.collator && t(this.collator)
- }
-
- outputDefined() {
- return !0
- }
-
- serialize() {
- const e = [t];
- return this.eachChild(t => {
- e.push(t.serialize())
- }), e
- }
- }
- }
-
- const be = _e("==", (function (t, e, r) {
- return e === r
- }), ve), xe = _e("!=", (function (t, e, r) {
- return e !== r
- }), (function (t, e, r, n) {
- return !ve(0, e, r, n)
- })), we = _e("<", (function (t, e, r) {
- return e < r
- }), (function (t, e, r, n) {
- return n.compare(e, r) < 0
- })), Se = _e(">", (function (t, e, r) {
- return e > r
- }), (function (t, e, r, n) {
- return n.compare(e, r) > 0
- })), Ee = _e("<=", (function (t, e, r) {
- return e <= r
- }), (function (t, e, r, n) {
- return n.compare(e, r) <= 0
- })), Te = _e(">=", (function (t, e, r) {
- return e >= r
- }), (function (t, e, r, n) {
- return n.compare(e, r) >= 0
- }));
-
- class Ce {
- constructor(t, e, r, n, i) {
- this.type = N, this.number = t, this.locale = e, this.currency = r, this.minFractionDigits = n, this.maxFractionDigits = i
- }
-
- static parse(t, e) {
- if (3 !== t.length) return e.error("Expected two arguments.");
- const r = e.parse(t[1], 1, j);
- if (!r) return null;
- const n = t[2];
- if ("object" != typeof n || Array.isArray(n)) return e.error("NumberFormat options argument must be an object.");
- let i = null;
- if (n.locale && (i = e.parse(n.locale, 1, N), !i)) return null;
- let o = null;
- if (n.currency && (o = e.parse(n.currency, 1, N), !o)) return null;
- let a = null;
- if (n["min-fraction-digits"] && (a = e.parse(n["min-fraction-digits"], 1, j), !a)) return null;
- let s = null;
- return n["max-fraction-digits"] && (s = e.parse(n["max-fraction-digits"], 1, j), !s) ? null : new Ce(r, i, o, a, s)
- }
-
- evaluate(t) {
- return new Intl.NumberFormat(this.locale ? this.locale.evaluate(t) : [], {
- style: this.currency ? "currency" : "decimal",
- currency: this.currency ? this.currency.evaluate(t) : void 0,
- minimumFractionDigits: this.minFractionDigits ? this.minFractionDigits.evaluate(t) : void 0,
- maximumFractionDigits: this.maxFractionDigits ? this.maxFractionDigits.evaluate(t) : void 0
- }).format(this.number.evaluate(t))
- }
-
- eachChild(t) {
- t(this.number), this.locale && t(this.locale), this.currency && t(this.currency), this.minFractionDigits && t(this.minFractionDigits), this.maxFractionDigits && t(this.maxFractionDigits)
- }
-
- outputDefined() {
- return !1
- }
-
- serialize() {
- const t = {};
- return this.locale && (t.locale = this.locale.serialize()), this.currency && (t.currency = this.currency.serialize()), this.minFractionDigits && (t["min-fraction-digits"] = this.minFractionDigits.serialize()), this.maxFractionDigits && (t["max-fraction-digits"] = this.maxFractionDigits.serialize()), ["number-format", this.number.serialize(), t]
- }
- }
-
- class Oe {
- constructor(t) {
- this.type = j, this.input = t
- }
-
- static parse(t, e) {
- if (2 !== t.length) return e.error(`Expected 1 argument, but found ${t.length - 1} instead.`);
- const r = e.parse(t[1], 1);
- return r ? "array" !== r.type.kind && "string" !== r.type.kind && "value" !== r.type.kind ? e.error(`Expected argument of type string or array, but found ${q(r.type)} instead.`) : new Oe(r) : null
- }
-
- evaluate(t) {
- const e = this.input.evaluate(t);
- if ("string" == typeof e) return e.length;
- if (Array.isArray(e)) return e.length;
- throw new lt(`Expected value to be of type string or array, but found ${q(ot(e))} instead.`)
- }
-
- eachChild(t) {
- t(this.input)
- }
-
- outputDefined() {
- return !1
- }
-
- serialize() {
- const t = ["length"];
- return this.eachChild(e => {
- t.push(e.serialize())
- }), t
- }
- }
-
- const Pe = {
- "==": be,
- "!=": xe,
- ">": Se,
- "<": we,
- ">=": Te,
- "<=": Ee,
- array: ct,
- at: he,
- boolean: ct,
- case: ge,
- coalesce: ue,
- collator: vt,
- format: ht,
- image: pt,
- in: pe,
- "index-of": fe,
- interpolate: se,
- "interpolate-hcl": se,
- "interpolate-lab": se,
- length: Oe,
- let: ce,
- literal: st,
- match: de,
- number: ct,
- "number-format": Ce,
- object: ct,
- slice: ye,
- step: Bt,
- string: ct,
- "to-boolean": dt,
- "to-color": dt,
- "to-number": dt,
- "to-string": dt,
- var: Gt,
- within: kt
- };
-
- function Re(t, [e, r, n, i]) {
- e = e.evaluate(t), r = r.evaluate(t), n = n.evaluate(t);
- const o = i ? i.evaluate(t) : 1, a = nt(e, r, n, o);
- if (a) throw new lt(a);
- return new J(e / 255 * o, r / 255 * o, n / 255 * o, o)
- }
-
- function Ie(t, e) {
- return t in e
- }
-
- function Le(t, e) {
- const r = e[t];
- return void 0 === r ? null : r
- }
-
- function Me(t) {
- return {type: t}
- }
-
- function Fe(t) {
- return {result: "success", value: t}
- }
-
- function Ae(t) {
- return {result: "error", value: t}
- }
-
- function ke(t) {
- return "data-driven" === t["property-type"] || "cross-faded-data-driven" === t["property-type"]
- }
-
- function je(t) {
- return !!t.expression && t.expression.parameters.indexOf("zoom") > -1
- }
-
- function Ne(t) {
- return !!t.expression && t.expression.interpolated
- }
-
- function De(t) {
- return t instanceof Number ? "number" : t instanceof String ? "string" : t instanceof Boolean ? "boolean" : Array.isArray(t) ? "array" : null === t ? "null" : typeof t
- }
-
- function Ge(t) {
- return "object" == typeof t && null !== t && !Array.isArray(t)
- }
-
- function ze(t) {
- return t
- }
-
- function Ue(t, e) {
- const r = "color" === e.type, n = t.stops && "object" == typeof t.stops[0][0], i = n || void 0 !== t.property,
- o = n || !i, a = t.type || (Ne(e) ? "exponential" : "interval");
- if (r && ((t = M({}, t)).stops && (t.stops = t.stops.map(t => [t[0], J.parse(t[1])])), t.default ? t.default = J.parse(t.default) : t.default = J.parse(e.default)), t.colorSpace && "rgb" !== t.colorSpace && !ae[t.colorSpace]) throw new Error("Unknown color space: " + t.colorSpace);
- let s, l, u;
- if ("exponential" === a) s = We; else if ("interval" === a) s = Ye; else if ("categorical" === a) {
- s = Ve, l = Object.create(null);
- for (const e of t.stops) l[e[0]] = e[1];
- u = typeof t.stops[0][0]
- } else {
- if ("identity" !== a) throw new Error(`Unknown function type "${a}"`);
- s = qe
- }
- if (n) {
- const r = {}, n = [];
- for (let e = 0; e < t.stops.length; e++) {
- const i = t.stops[e], o = i[0].zoom;
- void 0 === r[o] && (r[o] = {
- zoom: o,
- type: t.type,
- property: t.property,
- default: t.default,
- stops: []
- }, n.push(o)), r[o].stops.push([i[0].value, i[1]])
- }
- const i = [];
- for (const t of n) i.push([r[t].zoom, Ue(r[t], e)]);
- const o = {name: "linear"};
- return {
- kind: "composite",
- interpolationType: o,
- interpolationFactor: se.interpolationFactor.bind(void 0, o),
- zoomStops: i.map(t => t[0]),
- evaluate: ({zoom: r}, n) => We({stops: i, base: t.base}, e, r).evaluate(r, n)
- }
- }
- if (o) {
- const r = "exponential" === a ? {name: "exponential", base: void 0 !== t.base ? t.base : 1} : null;
- return {
- kind: "camera",
- interpolationType: r,
- interpolationFactor: se.interpolationFactor.bind(void 0, r),
- zoomStops: t.stops.map(t => t[0]),
- evaluate: ({zoom: r}) => s(t, e, r, l, u)
- }
- }
- return {
- kind: "source", evaluate(r, n) {
- const i = n && n.properties ? n.properties[t.property] : void 0;
- return void 0 === i ? Be(t.default, e.default) : s(t, e, i, l, u)
- }
- }
- }
-
- function Be(t, e, r) {
- return void 0 !== t ? t : void 0 !== e ? e : void 0 !== r ? r : void 0
- }
-
- function Ve(t, e, r, n, i) {
- return Be(typeof r === i ? n[r] : void 0, t.default, e.default)
- }
-
- function Ye(t, e, r) {
- if ("number" !== De(r)) return Be(t.default, e.default);
- const n = t.stops.length;
- if (1 === n) return t.stops[0][1];
- if (r <= t.stops[0][0]) return t.stops[0][1];
- if (r >= t.stops[n - 1][0]) return t.stops[n - 1][1];
- const i = Ut(t.stops.map(t => t[0]), r);
- return t.stops[i][1]
- }
-
- function We(t, e, r) {
- const n = void 0 !== t.base ? t.base : 1;
- if ("number" !== De(r)) return Be(t.default, e.default);
- const i = t.stops.length;
- if (1 === i) return t.stops[0][1];
- if (r <= t.stops[0][0]) return t.stops[0][1];
- if (r >= t.stops[i - 1][0]) return t.stops[i - 1][1];
- const o = Ut(t.stops.map(t => t[0]), r), a = function (t, e, r, n) {
- const i = n - r, o = t - r;
- return 0 === i ? 0 : 1 === e ? o / i : (Math.pow(e, o) - 1) / (Math.pow(e, i) - 1)
- }(r, n, t.stops[o][0], t.stops[o + 1][0]), s = t.stops[o][1], l = t.stops[o + 1][1];
- let u = qt[e.type] || ze;
- if (t.colorSpace && "rgb" !== t.colorSpace) {
- const e = ae[t.colorSpace];
- u = (t, r) => e.reverse(e.interpolate(e.forward(t), e.forward(r), a))
- }
- return "function" == typeof s.evaluate ? {
- evaluate(...t) {
- const e = s.evaluate.apply(void 0, t), r = l.evaluate.apply(void 0, t);
- if (void 0 !== e && void 0 !== r) return u(e, r, a)
- }
- } : u(s, l, a)
- }
-
- function qe(t, e, r) {
- return "color" === e.type ? r = J.parse(r) : "formatted" === e.type ? r = et.fromString(r.toString()) : "resolvedImage" === e.type ? r = rt.fromString(r.toString()) : De(r) === e.type || "enum" === e.type && e.values[r] || (r = void 0), Be(r, t.default, e.default)
- }
-
- mt.register(Pe, {
- error: [{kind: "error"}, [N], (t, [e]) => {
- throw new lt(e.evaluate(t))
- }],
- typeof: [N, [U], (t, [e]) => q(ot(e.evaluate(t)))],
- "to-rgba": [W(j, 4), [G], (t, [e]) => e.evaluate(t).toArray()],
- rgb: [G, [j, j, j], Re],
- rgba: [G, [j, j, j, j], Re],
- has: {
- type: D,
- overloads: [[[N], (t, [e]) => Ie(e.evaluate(t), t.properties())], [[N, z], (t, [e, r]) => Ie(e.evaluate(t), r.evaluate(t))]]
- },
- get: {
- type: U,
- overloads: [[[N], (t, [e]) => Le(e.evaluate(t), t.properties())], [[N, z], (t, [e, r]) => Le(e.evaluate(t), r.evaluate(t))]]
- },
- "feature-state": [U, [N], (t, [e]) => Le(e.evaluate(t), t.featureState || {})],
- properties: [z, [], t => t.properties()],
- "geometry-type": [N, [], t => t.geometryType()],
- id: [U, [], t => t.id()],
- zoom: [j, [], t => t.globals.zoom],
- "heatmap-density": [j, [], t => t.globals.heatmapDensity || 0],
- "line-progress": [j, [], t => t.globals.lineProgress || 0],
- "sky-radial-progress": [j, [], t => t.globals.skyRadialProgress || 0],
- accumulated: [U, [], t => void 0 === t.globals.accumulated ? null : t.globals.accumulated],
- "+": [j, Me(j), (t, e) => {
- let r = 0;
- for (const n of e) r += n.evaluate(t);
- return r
- }],
- "*": [j, Me(j), (t, e) => {
- let r = 1;
- for (const n of e) r *= n.evaluate(t);
- return r
- }],
- "-": {
- type: j,
- overloads: [[[j, j], (t, [e, r]) => e.evaluate(t) - r.evaluate(t)], [[j], (t, [e]) => -e.evaluate(t)]]
- },
- "/": [j, [j, j], (t, [e, r]) => e.evaluate(t) / r.evaluate(t)],
- "%": [j, [j, j], (t, [e, r]) => e.evaluate(t) % r.evaluate(t)],
- ln2: [j, [], () => Math.LN2],
- pi: [j, [], () => Math.PI],
- e: [j, [], () => Math.E],
- "^": [j, [j, j], (t, [e, r]) => Math.pow(e.evaluate(t), r.evaluate(t))],
- sqrt: [j, [j], (t, [e]) => Math.sqrt(e.evaluate(t))],
- log10: [j, [j], (t, [e]) => Math.log(e.evaluate(t)) / Math.LN10],
- ln: [j, [j], (t, [e]) => Math.log(e.evaluate(t))],
- log2: [j, [j], (t, [e]) => Math.log(e.evaluate(t)) / Math.LN2],
- sin: [j, [j], (t, [e]) => Math.sin(e.evaluate(t))],
- cos: [j, [j], (t, [e]) => Math.cos(e.evaluate(t))],
- tan: [j, [j], (t, [e]) => Math.tan(e.evaluate(t))],
- asin: [j, [j], (t, [e]) => Math.asin(e.evaluate(t))],
- acos: [j, [j], (t, [e]) => Math.acos(e.evaluate(t))],
- atan: [j, [j], (t, [e]) => Math.atan(e.evaluate(t))],
- min: [j, Me(j), (t, e) => Math.min(...e.map(e => e.evaluate(t)))],
- max: [j, Me(j), (t, e) => Math.max(...e.map(e => e.evaluate(t)))],
- abs: [j, [j], (t, [e]) => Math.abs(e.evaluate(t))],
- round: [j, [j], (t, [e]) => {
- const r = e.evaluate(t);
- return r < 0 ? -Math.round(-r) : Math.round(r)
- }],
- floor: [j, [j], (t, [e]) => Math.floor(e.evaluate(t))],
- ceil: [j, [j], (t, [e]) => Math.ceil(e.evaluate(t))],
- "filter-==": [D, [N, U], (t, [e, r]) => t.properties()[e.value] === r.value],
- "filter-id-==": [D, [U], (t, [e]) => t.id() === e.value],
- "filter-type-==": [D, [N], (t, [e]) => t.geometryType() === e.value],
- "filter-<": [D, [N, U], (t, [e, r]) => {
- const n = t.properties()[e.value], i = r.value;
- return typeof n == typeof i && n < i
- }],
- "filter-id-<": [D, [U], (t, [e]) => {
- const r = t.id(), n = e.value;
- return typeof r == typeof n && r < n
- }],
- "filter->": [D, [N, U], (t, [e, r]) => {
- const n = t.properties()[e.value], i = r.value;
- return typeof n == typeof i && n > i
- }],
- "filter-id->": [D, [U], (t, [e]) => {
- const r = t.id(), n = e.value;
- return typeof r == typeof n && r > n
- }],
- "filter-<=": [D, [N, U], (t, [e, r]) => {
- const n = t.properties()[e.value], i = r.value;
- return typeof n == typeof i && n <= i
- }],
- "filter-id-<=": [D, [U], (t, [e]) => {
- const r = t.id(), n = e.value;
- return typeof r == typeof n && r <= n
- }],
- "filter->=": [D, [N, U], (t, [e, r]) => {
- const n = t.properties()[e.value], i = r.value;
- return typeof n == typeof i && n >= i
- }],
- "filter-id->=": [D, [U], (t, [e]) => {
- const r = t.id(), n = e.value;
- return typeof r == typeof n && r >= n
- }],
- "filter-has": [D, [U], (t, [e]) => e.value in t.properties()],
- "filter-has-id": [D, [], t => null !== t.id() && void 0 !== t.id()],
- "filter-type-in": [D, [W(N)], (t, [e]) => e.value.indexOf(t.geometryType()) >= 0],
- "filter-id-in": [D, [W(U)], (t, [e]) => e.value.indexOf(t.id()) >= 0],
- "filter-in-small": [D, [N, W(U)], (t, [e, r]) => r.value.indexOf(t.properties()[e.value]) >= 0],
- "filter-in-large": [D, [N, W(U)], (t, [e, r]) => function (t, e, r, n) {
- for (; r <= n;) {
- const i = r + n >> 1;
- if (e[i] === t) return !0;
- e[i] > t ? n = i - 1 : r = i + 1
- }
- return !1
- }(t.properties()[e.value], r.value, 0, r.value.length - 1)],
- all: {
- type: D, overloads: [[[D, D], (t, [e, r]) => e.evaluate(t) && r.evaluate(t)], [Me(D), (t, e) => {
- for (const r of e) if (!r.evaluate(t)) return !1;
- return !0
- }]]
- },
- any: {
- type: D, overloads: [[[D, D], (t, [e, r]) => e.evaluate(t) || r.evaluate(t)], [Me(D), (t, e) => {
- for (const r of e) if (r.evaluate(t)) return !0;
- return !1
- }]]
- },
- "!": [D, [D], (t, [e]) => !e.evaluate(t)],
- "is-supported-script": [D, [N], (t, [e]) => {
- const r = t.globals && t.globals.isSupportedScript;
- return !r || r(e.evaluate(t))
- }],
- upcase: [N, [N], (t, [e]) => e.evaluate(t).toUpperCase()],
- downcase: [N, [N], (t, [e]) => e.evaluate(t).toLowerCase()],
- concat: [N, Me(U), (t, e) => e.map(e => at(e.evaluate(t))).join("")],
- "resolved-locale": [N, [B], (t, [e]) => e.evaluate(t).resolvedLocale()]
- });
-
- class Xe {
- constructor(t, e) {
- var r;
- this.expression = t, this._warningHistory = {}, this._evaluator = new yt, this._defaultValue = e ? "color" === (r = e).type && Ge(r.default) ? new J(0, 0, 0, 0) : "color" === r.type ? J.parse(r.default) || null : void 0 === r.default ? null : r.default : null, this._enumValues = e && "enum" === e.type ? e.values : null
- }
-
- evaluateWithoutErrorHandling(t, e, r, n, i, o) {
- return this._evaluator.globals = t, this._evaluator.feature = e, this._evaluator.featureState = r, this._evaluator.canonical = n, this._evaluator.availableImages = i || null, this._evaluator.formattedSection = o, this.expression.evaluate(this._evaluator)
- }
-
- evaluate(t, e, r, n, i, o) {
- this._evaluator.globals = t, this._evaluator.feature = e || null, this._evaluator.featureState = r || null, this._evaluator.canonical = n, this._evaluator.availableImages = i || null, this._evaluator.formattedSection = o || null;
- try {
- const t = this.expression.evaluate(this._evaluator);
- if (null == t || "number" == typeof t && t != t) return this._defaultValue;
- if (this._enumValues && !(t in this._enumValues)) throw new lt(`Expected value to be one of ${Object.keys(this._enumValues).map(t => JSON.stringify(t)).join(", ")}, but found ${JSON.stringify(t)} instead.`);
- return t
- } catch (t) {
- return this._warningHistory[t.message] || (this._warningHistory[t.message] = !0, "undefined" != typeof console && console.warn(t.message)), this._defaultValue
- }
- }
- }
-
- function Ze(t) {
- return Array.isArray(t) && t.length > 0 && "string" == typeof t[0] && t[0] in Pe
- }
-
- function Ke(t, e) {
- const r = new zt(Pe, [], e ? function (t) {
- const e = {color: G, string: N, number: j, enum: N, boolean: D, formatted: V, resolvedImage: Y};
- if ("array" === t.type) return W(e[t.value] || U, t.length);
- return e[t.type]
- }(e) : void 0),
- n = r.parse(t, void 0, void 0, void 0, e && "string" === e.type ? {typeAnnotation: "coerce"} : void 0);
- return n ? Fe(new Xe(n, e)) : Ae(r.errors)
- }
-
- class He {
- constructor(t, e) {
- this.kind = t, this._styleExpression = e, this.isStateDependent = "constant" !== t && !Nt(e.expression)
- }
-
- evaluateWithoutErrorHandling(t, e, r, n, i, o) {
- return this._styleExpression.evaluateWithoutErrorHandling(t, e, r, n, i, o)
- }
-
- evaluate(t, e, r, n, i, o) {
- return this._styleExpression.evaluate(t, e, r, n, i, o)
- }
- }
-
- class $e {
- constructor(t, e, r, n) {
- this.kind = t, this.zoomStops = r, this._styleExpression = e, this.isStateDependent = "camera" !== t && !Nt(e.expression), this.interpolationType = n
- }
-
- evaluateWithoutErrorHandling(t, e, r, n, i, o) {
- return this._styleExpression.evaluateWithoutErrorHandling(t, e, r, n, i, o)
- }
-
- evaluate(t, e, r, n, i, o) {
- return this._styleExpression.evaluate(t, e, r, n, i, o)
- }
-
- interpolationFactor(t, e, r) {
- return this.interpolationType ? se.interpolationFactor(this.interpolationType, t, e, r) : 0
- }
- }
-
- function Je(t, e) {
- if ("error" === (t = Ke(t, e)).result) return t;
- const r = t.value.expression, n = jt(r);
- if (!n && !ke(e)) return Ae([new F("", "data expressions not supported")]);
- const i = Dt(r, ["zoom"]);
- if (!i && !je(e)) return Ae([new F("", "zoom expressions not supported")]);
- const o = function t(e) {
- let r = null;
- if (e instanceof ce) r = t(e.result); else if (e instanceof ue) {
- for (const n of e.args) if (r = t(n), r) break
- } else (e instanceof Bt || e instanceof se) && e.input instanceof mt && "zoom" === e.input.name && (r = e);
- if (r instanceof F) return r;
- return e.eachChild(e => {
- const n = t(e);
- n instanceof F ? r = n : !r && n ? r = new F("", '"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.') : r && n && r !== n && (r = new F("", 'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))
- }), r
- }(r);
- if (!o && !i) return Ae([new F("", '"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')]);
- if (o instanceof F) return Ae([o]);
- if (o instanceof se && !Ne(e)) return Ae([new F("", '"interpolate" expressions cannot be used with this property')]);
- if (!o) return Fe(new He(n ? "constant" : "source", t.value));
- const a = o instanceof se ? o.interpolation : void 0;
- return Fe(new $e(n ? "camera" : "composite", t.value, o.labels, a))
- }
-
- class Qe {
- constructor(t, e) {
- this._parameters = t, this._specification = e, M(this, Ue(this._parameters, this._specification))
- }
-
- static deserialize(t) {
- return new Qe(t._parameters, t._specification)
- }
-
- static serialize(t) {
- return {_parameters: t._parameters, _specification: t._specification}
- }
- }
-
- function tr(t) {
- return "object" == typeof t ? ["literal", t] : t
- }
-
- function er(t, e) {
- let r = t.stops;
- if (!r) return function (t, e) {
- const r = ["get", t.property];
- if (void 0 === t.default) return "string" === e.type ? ["string", r] : r;
- if ("enum" === e.type) return ["match", r, Object.keys(e.values), r, t.default];
- {
- const n = ["color" === e.type ? "to-color" : e.type, r, tr(t.default)];
- return "array" === e.type && n.splice(1, 0, e.value, e.length || null), n
- }
- }(t, e);
- const n = r && "object" == typeof r[0][0], i = n || void 0 !== t.property, o = n || !i;
- return r = r.map(t => !i && e.tokens && "string" == typeof t[1] ? [t[0], lr(t[1])] : [t[0], tr(t[1])]), n ? function (t, e, r) {
- const n = {}, i = {}, o = [];
- for (let e = 0; e < r.length; e++) {
- const a = r[e], s = a[0].zoom;
- void 0 === n[s] && (n[s] = {
- zoom: s,
- type: t.type,
- property: t.property,
- default: t.default
- }, i[s] = [], o.push(s)), i[s].push([a[0].value, a[1]])
- }
- if ("exponential" === sr({}, e)) {
- const r = [rr(t), ["linear"], ["zoom"]];
- for (const t of o) {
- const o = ir(n[t], e, i[t]);
- ar(r, t, o, !1)
- }
- return r
- }
- {
- const t = ["step", ["zoom"]];
- for (const r of o) {
- const o = ir(n[r], e, i[r]);
- ar(t, r, o, !0)
- }
- return or(t), t
- }
- }(t, e, r) : o ? function (t, e, r, n = ["zoom"]) {
- const i = sr(t, e);
- let o, a = !1;
- if ("interval" === i) o = ["step", n], a = !0; else {
- if ("exponential" !== i) throw new Error(`Unknown zoom function type "${i}"`);
- {
- const e = void 0 !== t.base ? t.base : 1;
- o = [rr(t), 1 === e ? ["linear"] : ["exponential", e], n]
- }
- }
- for (const t of r) ar(o, t[0], t[1], a);
- return or(o), o
- }(t, e, r) : ir(t, e, r)
- }
-
- function rr(t) {
- switch (t.colorSpace) {
- case"hcl":
- return "interpolate-hcl";
- case"lab":
- return "interpolate-lab";
- default:
- return "interpolate"
- }
- }
-
- function nr(t, e) {
- const r = tr((n = t.default, i = e.default, void 0 !== n ? n : void 0 !== i ? i : void 0));
- var n, i;
- return void 0 === r && "resolvedImage" === e.type ? "" : r
- }
-
- function ir(t, e, r) {
- const n = sr(t, e), i = ["get", t.property];
- if ("categorical" === n && "boolean" == typeof r[0][0]) {
- const n = ["case"];
- for (const t of r) n.push(["==", i, t[0]], t[1]);
- return n.push(nr(t, e)), n
- }
- if ("categorical" === n) {
- const n = ["match", i];
- for (const t of r) ar(n, t[0], t[1], !1);
- return n.push(nr(t, e)), n
- }
- if ("interval" === n) {
- const e = ["step", ["number", i]];
- for (const t of r) ar(e, t[0], t[1], !0);
- return or(e), void 0 === t.default ? e : ["case", ["==", ["typeof", i], "number"], e, tr(t.default)]
- }
- if ("exponential" === n) {
- const e = void 0 !== t.base ? t.base : 1,
- n = [rr(t), 1 === e ? ["linear"] : ["exponential", e], ["number", i]];
- for (const t of r) ar(n, t[0], t[1], !1);
- return void 0 === t.default ? n : ["case", ["==", ["typeof", i], "number"], n, tr(t.default)]
- }
- throw new Error("Unknown property function type " + n)
- }
-
- function or(t) {
- "step" === t[0] && 3 === t.length && (t.push(0), t.push(t[3]))
- }
-
- function ar(t, e, r, n) {
- t.length > 3 && e === t[t.length - 2] || (n && 2 === t.length || t.push(e), t.push(r))
- }
-
- function sr(t, e) {
- return t.type ? t.type : e.expression.interpolated ? "exponential" : "interval"
- }
-
- function lr(t) {
- const e = ["concat"], r = /{([^{}]+)}/g;
- let n = 0;
- for (let i = r.exec(t); null !== i; i = r.exec(t)) {
- const o = t.slice(n, r.lastIndex - i[0].length);
- n = r.lastIndex, o.length > 0 && e.push(o), e.push(["get", i[1]])
- }
- if (1 === e.length) return t;
- if (n < t.length) e.push(t.slice(n)); else if (2 === e.length) return ["to-string", e[1]];
- return e
- }
-
- function ur(t) {
- if (!0 === t || !1 === t) return !0;
- if (!Array.isArray(t) || 0 === t.length) return !1;
- switch (t[0]) {
- case"has":
- return t.length >= 2 && "$id" !== t[1] && "$type" !== t[1];
- case"in":
- return t.length >= 3 && ("string" != typeof t[1] || Array.isArray(t[2]));
- case"!in":
- case"!has":
- case"none":
- return !1;
- case"==":
- case"!=":
- case">":
- case">=":
- case"<":
- case"<=":
- return 3 !== t.length || Array.isArray(t[1]) || Array.isArray(t[2]);
- case"any":
- case"all":
- for (const e of t.slice(1)) if (!ur(e) && "boolean" != typeof e) return !1;
- return !0;
- default:
- return !0
- }
- }
-
- const cr = {
- type: "boolean",
- default: !1,
- transition: !1,
- "property-type": "data-driven",
- expression: {interpolated: !1, parameters: ["zoom", "feature"]}
- };
-
- function hr(t) {
- if (null == t) return {filter: () => !0, needGeometry: !1};
- ur(t) || (t = fr(t));
- const e = Ke(t, cr);
- if ("error" === e.result) throw new Error(e.value.map(t => `${t.key}: ${t.message}`).join(", "));
- return {
- filter: (t, r, n) => e.value.evaluate(t, r, {}, n), needGeometry: function t(e) {
- if (!Array.isArray(e)) return !1;
- if ("within" === e[0]) return !0;
- for (let r = 1; r < e.length; r++) if (t(e[r])) return !0;
- return !1
- }(t)
- }
- }
-
- function pr(t, e) {
- return t < e ? -1 : t > e ? 1 : 0
- }
-
- function fr(t) {
- if (!t) return !0;
- const e = t[0];
- if (t.length <= 1) return "any" !== e;
- var r;
- return "==" === e ? dr(t[1], t[2], "==") : "!=" === e ? mr(dr(t[1], t[2], "==")) : "<" === e || ">" === e || "<=" === e || ">=" === e ? dr(t[1], t[2], e) : "any" === e ? (r = t.slice(1), ["any"].concat(r.map(fr))) : "all" === e ? ["all"].concat(t.slice(1).map(fr)) : "none" === e ? ["all"].concat(t.slice(1).map(fr).map(mr)) : "in" === e ? gr(t[1], t.slice(2)) : "!in" === e ? mr(gr(t[1], t.slice(2))) : "has" === e ? yr(t[1]) : "!has" === e ? mr(yr(t[1])) : "within" !== e || t
- }
-
- function dr(t, e, r) {
- switch (t) {
- case"$type":
- return ["filter-type-" + r, e];
- case"$id":
- return ["filter-id-" + r, e];
- default:
- return ["filter-" + r, t, e]
- }
- }
-
- function gr(t, e) {
- if (0 === e.length) return !1;
- switch (t) {
- case"$type":
- return ["filter-type-in", ["literal", e]];
- case"$id":
- return ["filter-id-in", ["literal", e]];
- default:
- return e.length > 200 && !e.some(t => typeof t != typeof e[0]) ? ["filter-in-large", t, ["literal", e.sort(pr)]] : ["filter-in-small", t, ["literal", e]]
- }
- }
-
- function yr(t) {
- switch (t) {
- case"$type":
- return !0;
- case"$id":
- return ["filter-has-id"];
- default:
- return ["filter-has", t]
- }
- }
-
- function mr(t) {
- return ["!", t]
- }
-
- var vr = ["type", "source", "source-layer", "minzoom", "maxzoom", "filter", "layout"];
-
- function _r(t, e) {
- const r = {};
- for (const e in t) "ref" !== e && (r[e] = t[e]);
- return vr.forEach(t => {
- t in e && (r[t] = e[t])
- }), r
- }
-
- function br(t) {
- t = t.slice();
- const e = Object.create(null);
- for (let r = 0; r < t.length; r++) e[t[r].id] = t[r];
- for (let r = 0; r < t.length; r++) "ref" in t[r] && (t[r] = _r(t[r], e[t[r].ref]));
- return t
- }
-
- class xr {
- constructor(t, e, r, n) {
- this.message = (t ? t + ": " : "") + r, n && (this.identifier = n), null != e && e.__line__ && (this.line = e.__line__)
- }
- }
-
- class wr {
- constructor(t) {
- this.error = t, this.message = t.message;
- const e = t.message.match(/line (\d+)/);
- this.line = e ? parseInt(e[1], 10) : 0
- }
- }
-
- function Sr(t) {
- const e = t.key, r = t.value;
- return r ? [new xr(e, r, "constants have been deprecated as of v8")] : []
- }
-
- function Er(t) {
- return t instanceof Number || t instanceof String || t instanceof Boolean ? t.valueOf() : t
- }
-
- function Tr(t) {
- if (Array.isArray(t)) return t.map(Tr);
- if (t instanceof Object && !(t instanceof Number || t instanceof String || t instanceof Boolean)) {
- const e = {};
- for (const r in t) e[r] = Tr(t[r]);
- return e
- }
- return Er(t)
- }
-
- function Cr(t) {
- const e = t.key, r = t.value, n = t.valueSpec || {}, i = t.objectElementValidators || {}, o = t.style,
- a = t.styleSpec;
- let s = [];
- const l = De(r);
- if ("object" !== l) return [new xr(e, r, `object expected, ${l} found`)];
- for (const t in r) {
- const l = t.split(".")[0], u = n[l] || n["*"];
- let c;
- if (i[l]) c = i[l]; else if (n[l]) c = Vr; else if (i["*"]) c = i["*"]; else {
- if (!n["*"]) {
- s.push(new xr(e, r[t], `unknown property "${t}"`));
- continue
- }
- c = Vr
- }
- s = s.concat(c({
- key: (e ? e + "." : e) + t,
- value: r[t],
- valueSpec: u,
- style: o,
- styleSpec: a,
- object: r,
- objectKey: t
- }, r))
- }
- for (const t in n) i[t] || n[t].required && void 0 === n[t].default && void 0 === r[t] && s.push(new xr(e, r, `missing required property "${t}"`));
- return s
- }
-
- function Or(t) {
- const e = t.value, r = t.valueSpec, n = t.style, i = t.styleSpec, o = t.key, a = t.arrayElementValidator || Vr;
- if ("array" !== De(e)) return [new xr(o, e, `array expected, ${De(e)} found`)];
- if (r.length && e.length !== r.length) return [new xr(o, e, `array length ${r.length} expected, length ${e.length} found`)];
- if (r["min-length"] && e.length < r["min-length"]) return [new xr(o, e, `array length at least ${r["min-length"]} expected, length ${e.length} found`)];
- let s = {type: r.value, values: r.values};
- i.$version < 7 && (s.function = r.function), "object" === De(r.value) && (s = r.value);
- let l = [];
- for (let t = 0; t < e.length; t++) l = l.concat(a({
- array: e,
- arrayIndex: t,
- value: e[t],
- valueSpec: s,
- style: n,
- styleSpec: i,
- key: `${o}[${t}]`
- }));
- return l
- }
-
- function Pr(t) {
- const e = t.key, r = t.value, n = t.valueSpec;
- let i = De(r);
- return "number" === i && r != r && (i = "NaN"), "number" !== i ? [new xr(e, r, `number expected, ${i} found`)] : "minimum" in n && r < n.minimum ? [new xr(e, r, `${r} is less than the minimum value ${n.minimum}`)] : "maximum" in n && r > n.maximum ? [new xr(e, r, `${r} is greater than the maximum value ${n.maximum}`)] : []
- }
-
- function Rr(t) {
- const e = t.valueSpec, r = Er(t.value.type);
- let n, i, o, a = {};
- const s = "categorical" !== r && void 0 === t.value.property, l = !s,
- u = "array" === De(t.value.stops) && "array" === De(t.value.stops[0]) && "object" === De(t.value.stops[0][0]),
- c = Cr({
- key: t.key,
- value: t.value,
- valueSpec: t.styleSpec.function,
- style: t.style,
- styleSpec: t.styleSpec,
- objectElementValidators: {
- stops: function (t) {
- if ("identity" === r) return [new xr(t.key, t.value, 'identity function may not have a "stops" property')];
- let e = [];
- const n = t.value;
- e = e.concat(Or({
- key: t.key,
- value: n,
- valueSpec: t.valueSpec,
- style: t.style,
- styleSpec: t.styleSpec,
- arrayElementValidator: h
- })), "array" === De(n) && 0 === n.length && e.push(new xr(t.key, n, "array must have at least one stop"));
- return e
- }, default: function (t) {
- return Vr({key: t.key, value: t.value, valueSpec: e, style: t.style, styleSpec: t.styleSpec})
- }
- }
- });
- return "identity" === r && s && c.push(new xr(t.key, t.value, 'missing required property "property"')), "identity" === r || t.value.stops || c.push(new xr(t.key, t.value, 'missing required property "stops"')), "exponential" === r && t.valueSpec.expression && !Ne(t.valueSpec) && c.push(new xr(t.key, t.value, "exponential functions not supported")), t.styleSpec.$version >= 8 && (l && !ke(t.valueSpec) ? c.push(new xr(t.key, t.value, "property functions not supported")) : s && !je(t.valueSpec) && c.push(new xr(t.key, t.value, "zoom functions not supported"))), "categorical" !== r && !u || void 0 !== t.value.property || c.push(new xr(t.key, t.value, '"property" property is required')), c;
-
- function h(t) {
- let r = [];
- const n = t.value, s = t.key;
- if ("array" !== De(n)) return [new xr(s, n, `array expected, ${De(n)} found`)];
- if (2 !== n.length) return [new xr(s, n, `array length 2 expected, length ${n.length} found`)];
- if (u) {
- if ("object" !== De(n[0])) return [new xr(s, n, `object expected, ${De(n[0])} found`)];
- if (void 0 === n[0].zoom) return [new xr(s, n, "object stop key must have zoom")];
- if (void 0 === n[0].value) return [new xr(s, n, "object stop key must have value")];
- if (o && o > Er(n[0].zoom)) return [new xr(s, n[0].zoom, "stop zoom values must appear in ascending order")];
- Er(n[0].zoom) !== o && (o = Er(n[0].zoom), i = void 0, a = {}), r = r.concat(Cr({
- key: s + "[0]",
- value: n[0],
- valueSpec: {zoom: {}},
- style: t.style,
- styleSpec: t.styleSpec,
- objectElementValidators: {zoom: Pr, value: p}
- }))
- } else r = r.concat(p({
- key: s + "[0]",
- value: n[0],
- valueSpec: {},
- style: t.style,
- styleSpec: t.styleSpec
- }, n));
- return Ze(Tr(n[1])) ? r.concat([new xr(s + "[1]", n[1], "expressions are not allowed in function stops.")]) : r.concat(Vr({
- key: s + "[1]",
- value: n[1],
- valueSpec: e,
- style: t.style,
- styleSpec: t.styleSpec
- }))
- }
-
- function p(t, o) {
- const s = De(t.value), l = Er(t.value), u = null !== t.value ? t.value : o;
- if (n) {
- if (s !== n) return [new xr(t.key, u, `${s} stop domain type must match previous stop domain type ${n}`)]
- } else n = s;
- if ("number" !== s && "string" !== s && "boolean" !== s) return [new xr(t.key, u, "stop domain value must be a number, string, or boolean")];
- if ("number" !== s && "categorical" !== r) {
- let n = `number expected, ${s} found`;
- return ke(e) && void 0 === r && (n += '\nIf you intended to use a categorical function, specify `"type": "categorical"`.'), [new xr(t.key, u, n)]
- }
- return "categorical" !== r || "number" !== s || isFinite(l) && Math.floor(l) === l ? "categorical" !== r && "number" === s && void 0 !== i && l < i ? [new xr(t.key, u, "stop domain values must appear in ascending order")] : (i = l, "categorical" === r && l in a ? [new xr(t.key, u, "stop domain values must be unique")] : (a[l] = !0, [])) : [new xr(t.key, u, "integer expected, found " + l)]
- }
- }
-
- function Ir(t) {
- const e = ("property" === t.expressionContext ? Je : Ke)(Tr(t.value), t.valueSpec);
- if ("error" === e.result) return e.value.map(e => new xr(`${t.key}${e.key}`, t.value, e.message));
- const r = e.value.expression || e.value._styleExpression.expression;
- if ("property" === t.expressionContext && "text-font" === t.propertyKey && !r.outputDefined()) return [new xr(t.key, t.value, `Invalid data expression for "${t.propertyKey}". Output values must be contained as literals within the expression.`)];
- if ("property" === t.expressionContext && "layout" === t.propertyType && !Nt(r)) return [new xr(t.key, t.value, '"feature-state" data expressions are not supported with layout properties.')];
- if ("filter" === t.expressionContext && !Nt(r)) return [new xr(t.key, t.value, '"feature-state" data expressions are not supported with filters.')];
- if (t.expressionContext && 0 === t.expressionContext.indexOf("cluster")) {
- if (!Dt(r, ["zoom", "feature-state"])) return [new xr(t.key, t.value, '"zoom" and "feature-state" expressions are not supported with cluster properties.')];
- if ("cluster-initial" === t.expressionContext && !jt(r)) return [new xr(t.key, t.value, "Feature data expressions are not supported with initial expression part of cluster properties.")]
- }
- return []
- }
-
- function Lr(t) {
- const e = t.key, r = t.value, n = t.valueSpec, i = [];
- return Array.isArray(n.values) ? -1 === n.values.indexOf(Er(r)) && i.push(new xr(e, r, `expected one of [${n.values.join(", ")}], ${JSON.stringify(r)} found`)) : -1 === Object.keys(n.values).indexOf(Er(r)) && i.push(new xr(e, r, `expected one of [${Object.keys(n.values).join(", ")}], ${JSON.stringify(r)} found`)), i
- }
-
- function Mr(t) {
- return ur(Tr(t.value)) ? Ir(M({}, t, {
- expressionContext: "filter",
- valueSpec: {value: "boolean"}
- })) : function t(e) {
- const r = e.value, n = e.key;
- if ("array" !== De(r)) return [new xr(n, r, `array expected, ${De(r)} found`)];
- const i = e.styleSpec;
- let o, a = [];
- if (r.length < 1) return [new xr(n, r, "filter array must have at least 1 element")];
- switch (a = a.concat(Lr({
- key: n + "[0]",
- value: r[0],
- valueSpec: i.filter_operator,
- style: e.style,
- styleSpec: e.styleSpec
- })), Er(r[0])) {
- case"<":
- case"<=":
- case">":
- case">=":
- r.length >= 2 && "$type" === Er(r[1]) && a.push(new xr(n, r, `"$type" cannot be use with operator "${r[0]}"`));
- case"==":
- case"!=":
- 3 !== r.length && a.push(new xr(n, r, `filter array for operator "${r[0]}" must have 3 elements`));
- case"in":
- case"!in":
- r.length >= 2 && (o = De(r[1]), "string" !== o && a.push(new xr(n + "[1]", r[1], `string expected, ${o} found`)));
- for (let t = 2; t < r.length; t++) o = De(r[t]), "$type" === Er(r[1]) ? a = a.concat(Lr({
- key: `${n}[${t}]`,
- value: r[t],
- valueSpec: i.geometry_type,
- style: e.style,
- styleSpec: e.styleSpec
- })) : "string" !== o && "number" !== o && "boolean" !== o && a.push(new xr(`${n}[${t}]`, r[t], `string, number, or boolean expected, ${o} found`));
- break;
- case"any":
- case"all":
- case"none":
- for (let i = 1; i < r.length; i++) a = a.concat(t({
- key: `${n}[${i}]`,
- value: r[i],
- style: e.style,
- styleSpec: e.styleSpec
- }));
- break;
- case"has":
- case"!has":
- o = De(r[1]), 2 !== r.length ? a.push(new xr(n, r, `filter array for "${r[0]}" operator must have 2 elements`)) : "string" !== o && a.push(new xr(n + "[1]", r[1], `string expected, ${o} found`));
- break;
- case"within":
- o = De(r[1]), 2 !== r.length ? a.push(new xr(n, r, `filter array for "${r[0]}" operator must have 2 elements`)) : "object" !== o && a.push(new xr(n + "[1]", r[1], `object expected, ${o} found`))
- }
- return a
- }(t)
- }
-
- function Fr(t, e) {
- const r = t.key, n = t.style, i = t.styleSpec, o = t.value, a = t.objectKey, s = i[`${e}_${t.layerType}`];
- if (!s) return [];
- const l = a.match(/^(.*)-transition$/);
- if ("paint" === e && l && s[l[1]] && s[l[1]].transition) return Vr({
- key: r,
- value: o,
- valueSpec: i.transition,
- style: n,
- styleSpec: i
- });
- const u = t.valueSpec || s[a];
- if (!u) return [new xr(r, o, `unknown property "${a}"`)];
- let c;
- if ("string" === De(o) && ke(u) && !u.tokens && (c = /^{([^}]+)}$/.exec(o))) return [new xr(r, o, `"${a}" does not support interpolation syntax\nUse an identity property function instead: \`{ "type": "identity", "property": ${JSON.stringify(c[1])} }\`.`)];
- const h = [];
- return "symbol" === t.layerType && ("text-field" === a && n && !n.glyphs && h.push(new xr(r, o, 'use of "text-field" requires a style "glyphs" property')), "text-font" === a && Ge(Tr(o)) && "identity" === Er(o.type) && h.push(new xr(r, o, '"text-font" does not support identity functions'))), h.concat(Vr({
- key: t.key,
- value: o,
- valueSpec: u,
- style: n,
- styleSpec: i,
- expressionContext: "property",
- propertyType: e,
- propertyKey: a
- }))
- }
-
- function Ar(t) {
- return Fr(t, "paint")
- }
-
- function kr(t) {
- return Fr(t, "layout")
- }
-
- function jr(t) {
- let e = [];
- const r = t.value, n = t.key, i = t.style, o = t.styleSpec;
- r.type || r.ref || e.push(new xr(n, r, 'either "type" or "ref" is required'));
- let a = Er(r.type);
- const s = Er(r.ref);
- if (r.id) {
- const o = Er(r.id);
- for (let a = 0; a < t.arrayIndex; a++) {
- const t = i.layers[a];
- Er(t.id) === o && e.push(new xr(n, r.id, `duplicate layer id "${r.id}", previously used at line ${t.id.__line__}`))
- }
- }
- if ("ref" in r) {
- let t;
- ["type", "source", "source-layer", "filter", "layout"].forEach(t => {
- t in r && e.push(new xr(n, r[t], `"${t}" is prohibited for ref layers`))
- }), i.layers.forEach(e => {
- Er(e.id) === s && (t = e)
- }), t ? t.ref ? e.push(new xr(n, r.ref, "ref cannot reference another ref layer")) : a = Er(t.type) : e.push(new xr(n, r.ref, `ref layer "${s}" not found`))
- } else if ("background" !== a && "sky" !== a) if (r.source) {
- const t = i.sources && i.sources[r.source], o = t && Er(t.type);
- t ? "vector" === o && "raster" === a ? e.push(new xr(n, r.source, `layer "${r.id}" requires a raster source`)) : "raster" === o && "raster" !== a ? e.push(new xr(n, r.source, `layer "${r.id}" requires a vector source`)) : "vector" !== o || r["source-layer"] ? "raster-dem" === o && "hillshade" !== a ? e.push(new xr(n, r.source, "raster-dem source can only be used with layer type 'hillshade'.")) : "line" !== a || !r.paint || !r.paint["line-gradient"] || "geojson" === o && t.lineMetrics || e.push(new xr(n, r, `layer "${r.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)) : e.push(new xr(n, r, `layer "${r.id}" must specify a "source-layer"`)) : e.push(new xr(n, r.source, `source "${r.source}" not found`))
- } else e.push(new xr(n, r, 'missing required property "source"'));
- return e = e.concat(Cr({
- key: n,
- value: r,
- valueSpec: o.layer,
- style: t.style,
- styleSpec: t.styleSpec,
- objectElementValidators: {
- "*": () => [],
- type: () => Vr({
- key: n + ".type",
- value: r.type,
- valueSpec: o.layer.type,
- style: t.style,
- styleSpec: t.styleSpec,
- object: r,
- objectKey: "type"
- }),
- filter: Mr,
- layout: t => Cr({
- layer: r,
- key: t.key,
- value: t.value,
- style: t.style,
- styleSpec: t.styleSpec,
- objectElementValidators: {"*": t => kr(M({layerType: a}, t))}
- }),
- paint: t => Cr({
- layer: r,
- key: t.key,
- value: t.value,
- style: t.style,
- styleSpec: t.styleSpec,
- objectElementValidators: {"*": t => Ar(M({layerType: a}, t))}
- })
- }
- })), e
- }
-
- function Nr(t) {
- const e = t.value, r = t.key, n = De(e);
- return "string" !== n ? [new xr(r, e, `string expected, ${n} found`)] : []
- }
-
- const Dr = {
- promoteId: function ({key: t, value: e}) {
- if ("string" === De(e)) return Nr({key: t, value: e});
- {
- const r = [];
- for (const n in e) r.push(...Nr({key: `${t}.${n}`, value: e[n]}));
- return r
- }
- }
- };
-
- function Gr(t) {
- const e = t.value, r = t.key, n = t.styleSpec, i = t.style;
- if (!e.type) return [new xr(r, e, '"type" is required')];
- const o = Er(e.type);
- let a;
- switch (o) {
- case"vector":
- case"raster":
- case"raster-dem":
- return a = Cr({
- key: r,
- value: e,
- valueSpec: n["source_" + o.replace("-", "_")],
- style: t.style,
- styleSpec: n,
- objectElementValidators: Dr
- }), a;
- case"geojson":
- if (a = Cr({
- key: r,
- value: e,
- valueSpec: n.source_geojson,
- style: i,
- styleSpec: n,
- objectElementValidators: Dr
- }), e.cluster) for (const t in e.clusterProperties) {
- const [n, i] = e.clusterProperties[t], o = "string" == typeof n ? [n, ["accumulated"], ["get", t]] : n;
- a.push(...Ir({
- key: `${r}.${t}.map`,
- value: i,
- expressionContext: "cluster-map"
- })), a.push(...Ir({key: `${r}.${t}.reduce`, value: o, expressionContext: "cluster-reduce"}))
- }
- return a;
- case"video":
- return Cr({key: r, value: e, valueSpec: n.source_video, style: i, styleSpec: n});
- case"image":
- return Cr({key: r, value: e, valueSpec: n.source_image, style: i, styleSpec: n});
- case"canvas":
- return [new xr(r, null, "Please use runtime APIs to add canvas sources, rather than including them in stylesheets.", "source.canvas")];
- default:
- return Lr({
- key: r + ".type",
- value: e.type,
- valueSpec: {values: ["vector", "raster", "raster-dem", "geojson", "video", "image"]},
- style: i,
- styleSpec: n
- })
- }
- }
-
- function zr(t) {
- const e = t.value, r = t.styleSpec, n = r.light, i = t.style;
- let o = [];
- const a = De(e);
- if (void 0 === e) return o;
- if ("object" !== a) return o = o.concat([new xr("light", e, `object expected, ${a} found`)]), o;
- for (const t in e) {
- const a = t.match(/^(.*)-transition$/);
- o = a && n[a[1]] && n[a[1]].transition ? o.concat(Vr({
- key: t,
- value: e[t],
- valueSpec: r.transition,
- style: i,
- styleSpec: r
- })) : n[t] ? o.concat(Vr({
- key: t,
- value: e[t],
- valueSpec: n[t],
- style: i,
- styleSpec: r
- })) : o.concat([new xr(t, e[t], `unknown property "${t}"`)])
- }
- return o
- }
-
- function Ur(t) {
- const e = t.value, r = t.key, n = t.style, i = t.styleSpec, o = i.terrain;
- let a = [];
- const s = De(e);
- if (void 0 === e) return a;
- if ("object" !== s) return a = a.concat([new xr("terrain", e, `object expected, ${s} found`)]), a;
- for (const t in e) {
- const r = t.match(/^(.*)-transition$/);
- a = r && o[r[1]] && o[r[1]].transition ? a.concat(Vr({
- key: t,
- value: e[t],
- valueSpec: i.transition,
- style: n,
- styleSpec: i
- })) : o[t] ? a.concat(Vr({
- key: t,
- value: e[t],
- valueSpec: o[t],
- style: n,
- styleSpec: i
- })) : a.concat([new xr(t, e[t], `unknown property "${t}"`)])
- }
- if (e.source) {
- const t = n.sources && n.sources[e.source], i = t && Er(t.type);
- t ? "raster-dem" !== i && a.push(new xr(r, e.source, `terrain cannot be used with a source of type ${i}, it only be used with a "raster-dem" source type`)) : a.push(new xr(r, e.source, `source "${e.source}" not found`))
- } else a.push(new xr(r, e, 'terrain is missing required property "source"'));
- return a
- }
-
- const Br = {
- "*": () => [],
- array: Or,
- boolean: function (t) {
- const e = t.value, r = t.key, n = De(e);
- return "boolean" !== n ? [new xr(r, e, `boolean expected, ${n} found`)] : []
- },
- number: Pr,
- color: function (t) {
- const e = t.key, r = t.value, n = De(r);
- return "string" !== n ? [new xr(e, r, `color expected, ${n} found`)] : null === $(r) ? [new xr(e, r, `color expected, "${r}" found`)] : []
- },
- constants: Sr,
- enum: Lr,
- filter: Mr,
- function: Rr,
- layer: jr,
- object: Cr,
- source: Gr,
- light: zr,
- terrain: Ur,
- string: Nr,
- formatted: function (t) {
- return 0 === Nr(t).length ? [] : Ir(t)
- },
- resolvedImage: function (t) {
- return 0 === Nr(t).length ? [] : Ir(t)
- }
- };
-
- function Vr(t) {
- const e = t.value, r = t.valueSpec, n = t.styleSpec;
- if (r.expression && Ge(Er(e))) return Rr(t);
- if (r.expression && Ze(Tr(e))) return Ir(t);
- if (r.type && Br[r.type]) return Br[r.type](t);
- return Cr(M({}, t, {valueSpec: r.type ? n[r.type] : r}))
- }
-
- function Yr(t) {
- const e = t.value, r = t.key, n = Nr(t);
- return n.length || (-1 === e.indexOf("{fontstack}") && n.push(new xr(r, e, '"glyphs" url must include a "{fontstack}" token')), -1 === e.indexOf("{range}") && n.push(new xr(r, e, '"glyphs" url must include a "{range}" token'))), n
- }
-
- function Wr(t, e = i) {
- let r = [];
- return r = r.concat(Vr({
- key: "",
- value: t,
- valueSpec: e.$root,
- styleSpec: e,
- style: t,
- objectElementValidators: {glyphs: Yr, "*": () => []}
- })), t.constants && (r = r.concat(Sr({key: "constants", value: t.constants, style: t, styleSpec: e}))), qr(r)
- }
-
- function qr(t) {
- return [].concat(t).sort((t, e) => t.line - e.line)
- }
-
- function Xr(t) {
- return function (...e) {
- return qr(t.apply(this, e))
- }
- }
-
- Wr.source = Xr(Gr), Wr.light = Xr(zr), Wr.terrain = Xr(Ur), Wr.layer = Xr(jr), Wr.filter = Xr(Mr), Wr.paintProperty = Xr(Ar), Wr.layoutProperty = Xr(kr);
- var Zr = s((function (t, e) {
- var r = function () {
- var t = function (t, e, r, n) {
- for (r = r || {}, n = t.length; n--; r[t[n]] = e) ;
- return r
- }, e = [1, 12], r = [1, 13], n = [1, 9], i = [1, 10], o = [1, 11], a = [1, 14], s = [1, 15],
- l = [14, 18, 22, 24], u = [18, 22], c = [22, 24], h = {
- trace: function () {
- },
- yy: {},
- symbols_: {
- error: 2,
- JSONString: 3,
- STRING: 4,
- JSONNumber: 5,
- NUMBER: 6,
- JSONNullLiteral: 7,
- NULL: 8,
- JSONBooleanLiteral: 9,
- TRUE: 10,
- FALSE: 11,
- JSONText: 12,
- JSONValue: 13,
- EOF: 14,
- JSONObject: 15,
- JSONArray: 16,
- "{": 17,
- "}": 18,
- JSONMemberList: 19,
- JSONMember: 20,
- ":": 21,
- ",": 22,
- "[": 23,
- "]": 24,
- JSONElementList: 25,
- $accept: 0,
- $end: 1
- },
- terminals_: {
- 2: "error",
- 4: "STRING",
- 6: "NUMBER",
- 8: "NULL",
- 10: "TRUE",
- 11: "FALSE",
- 14: "EOF",
- 17: "{",
- 18: "}",
- 21: ":",
- 22: ",",
- 23: "[",
- 24: "]"
- },
- productions_: [0, [3, 1], [5, 1], [7, 1], [9, 1], [9, 1], [12, 2], [13, 1], [13, 1], [13, 1], [13, 1], [13, 1], [13, 1], [15, 2], [15, 3], [20, 3], [19, 1], [19, 3], [16, 2], [16, 3], [25, 1], [25, 3]],
- performAction: function (t, e, r, n, i, o, a) {
- var s = o.length - 1;
- switch (i) {
- case 1:
- this.$ = new String(t.replace(/\\(\\|")/g, "$1").replace(/\\n/g, "\n").replace(/\\r/g, "\r").replace(/\\t/g, "\t").replace(/\\v/g, "\v").replace(/\\f/g, "\f").replace(/\\b/g, "\b")), this.$.__line__ = this._$.first_line;
- break;
- case 2:
- this.$ = new Number(t), this.$.__line__ = this._$.first_line;
- break;
- case 3:
- this.$ = null;
- break;
- case 4:
- this.$ = new Boolean(!0), this.$.__line__ = this._$.first_line;
- break;
- case 5:
- this.$ = new Boolean(!1), this.$.__line__ = this._$.first_line;
- break;
- case 6:
- return this.$ = o[s - 1];
- case 13:
- this.$ = {}, Object.defineProperty(this.$, "__line__", {value: this._$.first_line, enumerable: !1});
- break;
- case 14:
- case 19:
- this.$ = o[s - 1], Object.defineProperty(this.$, "__line__", {
- value: this._$.first_line,
- enumerable: !1
- });
- break;
- case 15:
- this.$ = [o[s - 2], o[s]];
- break;
- case 16:
- this.$ = {}, this.$[o[s][0]] = o[s][1];
- break;
- case 17:
- this.$ = o[s - 2], o[s - 2][o[s][0]] = o[s][1];
- break;
- case 18:
- this.$ = [], Object.defineProperty(this.$, "__line__", {value: this._$.first_line, enumerable: !1});
- break;
- case 20:
- this.$ = [o[s]];
- break;
- case 21:
- this.$ = o[s - 2], o[s - 2].push(o[s])
- }
- },
- table: [{
- 3: 5,
- 4: e,
- 5: 6,
- 6: r,
- 7: 3,
- 8: n,
- 9: 4,
- 10: i,
- 11: o,
- 12: 1,
- 13: 2,
- 15: 7,
- 16: 8,
- 17: a,
- 23: s
- }, {1: [3]}, {14: [1, 16]}, t(l, [2, 7]), t(l, [2, 8]), t(l, [2, 9]), t(l, [2, 10]), t(l, [2, 11]), t(l, [2, 12]), t(l, [2, 3]), t(l, [2, 4]), t(l, [2, 5]), t([14, 18, 21, 22, 24], [2, 1]), t(l, [2, 2]), {
- 3: 20,
- 4: e,
- 18: [1, 17],
- 19: 18,
- 20: 19
- }, {
- 3: 5,
- 4: e,
- 5: 6,
- 6: r,
- 7: 3,
- 8: n,
- 9: 4,
- 10: i,
- 11: o,
- 13: 23,
- 15: 7,
- 16: 8,
- 17: a,
- 23: s,
- 24: [1, 21],
- 25: 22
- }, {1: [2, 6]}, t(l, [2, 13]), {
- 18: [1, 24],
- 22: [1, 25]
- }, t(u, [2, 16]), {21: [1, 26]}, t(l, [2, 18]), {
- 22: [1, 28],
- 24: [1, 27]
- }, t(c, [2, 20]), t(l, [2, 14]), {3: 20, 4: e, 20: 29}, {
- 3: 5,
- 4: e,
- 5: 6,
- 6: r,
- 7: 3,
- 8: n,
- 9: 4,
- 10: i,
- 11: o,
- 13: 30,
- 15: 7,
- 16: 8,
- 17: a,
- 23: s
- }, t(l, [2, 19]), {
- 3: 5,
- 4: e,
- 5: 6,
- 6: r,
- 7: 3,
- 8: n,
- 9: 4,
- 10: i,
- 11: o,
- 13: 31,
- 15: 7,
- 16: 8,
- 17: a,
- 23: s
- }, t(u, [2, 17]), t(u, [2, 15]), t(c, [2, 21])],
- defaultActions: {16: [2, 6]},
- parseError: function (t, e) {
- if (!e.recoverable) throw new Error(t);
- this.trace(t)
- },
- parse: function (t) {
- var e = this, r = [0], n = [null], i = [], o = this.table, a = "", s = 0, l = 0, u = 2, c = 1,
- h = i.slice.call(arguments, 1), p = Object.create(this.lexer), f = {yy: {}};
- for (var d in this.yy) Object.prototype.hasOwnProperty.call(this.yy, d) && (f.yy[d] = this.yy[d]);
- p.setInput(t, f.yy), f.yy.lexer = p, f.yy.parser = this, void 0 === p.yylloc && (p.yylloc = {});
- var g = p.yylloc;
- i.push(g);
- var y = p.options && p.options.ranges;
-
- function m() {
- var t;
- return "number" != typeof (t = p.lex() || c) && (t = e.symbols_[t] || t), t
- }
-
- "function" == typeof f.yy.parseError ? this.parseError = f.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError;
- for (var v, _, b, x, w, S, E, T, C = {}; ;) {
- if (_ = r[r.length - 1], this.defaultActions[_] ? b = this.defaultActions[_] : (null == v && (v = m()), b = o[_] && o[_][v]), void 0 === b || !b.length || !b[0]) {
- var O = "";
- for (w in T = [], o[_]) this.terminals_[w] && w > u && T.push("'" + this.terminals_[w] + "'");
- O = p.showPosition ? "Parse error on line " + (s + 1) + ":\n" + p.showPosition() + "\nExpecting " + T.join(", ") + ", got '" + (this.terminals_[v] || v) + "'" : "Parse error on line " + (s + 1) + ": Unexpected " + (v == c ? "end of input" : "'" + (this.terminals_[v] || v) + "'"), this.parseError(O, {
- text: p.match,
- token: this.terminals_[v] || v,
- line: p.yylineno,
- loc: g,
- expected: T
- })
- }
- if (b[0] instanceof Array && b.length > 1) throw new Error("Parse Error: multiple actions possible at state: " + _ + ", token: " + v);
- switch (b[0]) {
- case 1:
- r.push(v), n.push(p.yytext), i.push(p.yylloc), r.push(b[1]), v = null, l = p.yyleng, a = p.yytext, s = p.yylineno, g = p.yylloc;
- break;
- case 2:
- if (S = this.productions_[b[1]][1], C.$ = n[n.length - S], C._$ = {
- first_line: i[i.length - (S || 1)].first_line,
- last_line: i[i.length - 1].last_line,
- first_column: i[i.length - (S || 1)].first_column,
- last_column: i[i.length - 1].last_column
- }, y && (C._$.range = [i[i.length - (S || 1)].range[0], i[i.length - 1].range[1]]), void 0 !== (x = this.performAction.apply(C, [a, l, s, f.yy, b[1], n, i].concat(h)))) return x;
- S && (r = r.slice(0, -1 * S * 2), n = n.slice(0, -1 * S), i = i.slice(0, -1 * S)), r.push(this.productions_[b[1]][0]), n.push(C.$), i.push(C._$), E = o[r[r.length - 2]][r[r.length - 1]], r.push(E);
- break;
- case 3:
- return !0
- }
- }
- return !0
- }
- }, p = {
- EOF: 1,
- parseError: function (t, e) {
- if (!this.yy.parser) throw new Error(t);
- this.yy.parser.parseError(t, e)
- },
- setInput: function (t, e) {
- return this.yy = e || this.yy || {}, this._input = t, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = {
- first_line: 1,
- first_column: 0,
- last_line: 1,
- last_column: 0
- }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this
- },
- input: function () {
- var t = this._input[0];
- return this.yytext += t, this.yyleng++, this.offset++, this.match += t, this.matched += t, t.match(/(?:\r\n?|\n).*/g) ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), t
- },
- unput: function (t) {
- var e = t.length, r = t.split(/(?:\r\n?|\n)/g);
- this._input = t + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - e), this.offset -= e;
- var n = this.match.split(/(?:\r\n?|\n)/g);
- this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), r.length - 1 && (this.yylineno -= r.length - 1);
- var i = this.yylloc.range;
- return this.yylloc = {
- first_line: this.yylloc.first_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.first_column,
- last_column: r ? (r.length === n.length ? this.yylloc.first_column : 0) + n[n.length - r.length].length - r[0].length : this.yylloc.first_column - e
- }, this.options.ranges && (this.yylloc.range = [i[0], i[0] + this.yyleng - e]), this.yyleng = this.yytext.length, this
- },
- more: function () {
- return this._more = !0, this
- },
- reject: function () {
- return this.options.backtrack_lexer ? (this._backtrack = !0, this) : this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- })
- },
- less: function (t) {
- this.unput(this.match.slice(t))
- },
- pastInput: function () {
- var t = this.matched.substr(0, this.matched.length - this.match.length);
- return (t.length > 20 ? "..." : "") + t.substr(-20).replace(/\n/g, "")
- },
- upcomingInput: function () {
- var t = this.match;
- return t.length < 20 && (t += this._input.substr(0, 20 - t.length)), (t.substr(0, 20) + (t.length > 20 ? "..." : "")).replace(/\n/g, "")
- },
- showPosition: function () {
- var t = this.pastInput(), e = new Array(t.length + 1).join("-");
- return t + this.upcomingInput() + "\n" + e + "^"
- },
- test_match: function (t, e) {
- var r, n, i;
- if (this.options.backtrack_lexer && (i = {
- yylineno: this.yylineno,
- yylloc: {
- first_line: this.yylloc.first_line,
- last_line: this.last_line,
- first_column: this.yylloc.first_column,
- last_column: this.yylloc.last_column
- },
- yytext: this.yytext,
- match: this.match,
- matches: this.matches,
- matched: this.matched,
- yyleng: this.yyleng,
- offset: this.offset,
- _more: this._more,
- _input: this._input,
- yy: this.yy,
- conditionStack: this.conditionStack.slice(0),
- done: this.done
- }, this.options.ranges && (i.yylloc.range = this.yylloc.range.slice(0))), (n = t[0].match(/(?:\r\n?|\n).*/g)) && (this.yylineno += n.length), this.yylloc = {
- first_line: this.yylloc.last_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.last_column,
- last_column: n ? n[n.length - 1].length - n[n.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + t[0].length
- }, this.yytext += t[0], this.match += t[0], this.matches = t, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(t[0].length), this.matched += t[0], r = this.performAction.call(this, this.yy, this, e, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), r) return r;
- if (this._backtrack) {
- for (var o in i) this[o] = i[o];
- return !1
- }
- return !1
- },
- next: function () {
- if (this.done) return this.EOF;
- var t, e, r, n;
- this._input || (this.done = !0), this._more || (this.yytext = "", this.match = "");
- for (var i = this._currentRules(), o = 0; o < i.length; o++) if ((r = this._input.match(this.rules[i[o]])) && (!e || r[0].length > e[0].length)) {
- if (e = r, n = o, this.options.backtrack_lexer) {
- if (!1 !== (t = this.test_match(r, i[o]))) return t;
- if (this._backtrack) {
- e = !1;
- continue
- }
- return !1
- }
- if (!this.options.flex) break
- }
- return e ? !1 !== (t = this.test_match(e, i[n])) && t : "" === this._input ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- })
- },
- lex: function () {
- var t = this.next();
- return t || this.lex()
- },
- begin: function (t) {
- this.conditionStack.push(t)
- },
- popState: function () {
- return this.conditionStack.length - 1 > 0 ? this.conditionStack.pop() : this.conditionStack[0]
- },
- _currentRules: function () {
- return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules
- },
- topState: function (t) {
- return (t = this.conditionStack.length - 1 - Math.abs(t || 0)) >= 0 ? this.conditionStack[t] : "INITIAL"
- },
- pushState: function (t) {
- this.begin(t)
- },
- stateStackSize: function () {
- return this.conditionStack.length
- },
- options: {},
- performAction: function (t, e, r, n) {
- switch (r) {
- case 0:
- break;
- case 1:
- return 6;
- case 2:
- return e.yytext = e.yytext.substr(1, e.yyleng - 2), 4;
- case 3:
- return 17;
- case 4:
- return 18;
- case 5:
- return 23;
- case 6:
- return 24;
- case 7:
- return 22;
- case 8:
- return 21;
- case 9:
- return 10;
- case 10:
- return 11;
- case 11:
- return 8;
- case 12:
- return 14;
- case 13:
- return "INVALID"
- }
- },
- rules: [/^(?:\s+)/, /^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/, /^(?:"(?:\\[\\"bfnrt/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/, /^(?:\{)/, /^(?:\})/, /^(?:\[)/, /^(?:\])/, /^(?:,)/, /^(?::)/, /^(?:true\b)/, /^(?:false\b)/, /^(?:null\b)/, /^(?:$)/, /^(?:.)/],
- conditions: {INITIAL: {rules: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], inclusive: !0}}
- };
-
- function f() {
- this.yy = {}
- }
-
- return h.lexer = p, f.prototype = h, h.Parser = f, new f
- }();
- void 0 !== a && (e.parser = r, e.Parser = r.Parser, e.parse = function () {
- return r.parse.apply(r, arguments)
- })
- }));
- Zr.parser, Zr.Parser, Zr.parse;
-
- function Kr(t) {
- if (t instanceof String || "string" == typeof t || t instanceof n) try {
- return Zr.parse(t.toString())
- } catch (t) {
- throw new wr(t)
- }
- return t
- }
-
- function Hr(t, e = i) {
- let r = t;
- try {
- r = Kr(r)
- } catch (t) {
- return [t]
- }
- return Wr(r, e)
- }
-
- const $r = {
- StyleExpression: Xe,
- isExpression: Ze,
- isExpressionFilter: ur,
- createExpression: Ke,
- createPropertyExpression: Je,
- normalizePropertyExpression: function (t, e) {
- if (Ge(t)) return new Qe(t, e);
- if (Ze(t)) {
- const r = Je(t, e);
- if ("error" === r.result) throw new Error(r.value.map(t => `${t.key}: ${t.message}`).join(", "));
- return r.value
- }
- {
- let r = t;
- return "string" == typeof t && "color" === e.type && (r = J.parse(t)), {kind: "constant", evaluate: () => r}
- }
- },
- ZoomConstantExpression: He,
- ZoomDependentExpression: $e,
- StylePropertyFunction: Qe
- }, Jr = {convertFunction: er, createFunction: Ue, isFunction: Ge};
- Hr.parsed = Hr, Hr.latest = Hr
- }).call(this, r(4), r(7).Buffer)
- }, function (t, e, r) {
- t.exports = function () {
- "use strict";
-
- function t(t, n, i, o, a) {
- !function t(r, n, i, o, a) {
- for (; o > i;) {
- if (o - i > 600) {
- var s = o - i + 1, l = n - i + 1, u = Math.log(s), c = .5 * Math.exp(2 * u / 3),
- h = .5 * Math.sqrt(u * c * (s - c) / s) * (l - s / 2 < 0 ? -1 : 1);
- t(r, n, Math.max(i, Math.floor(n - l * c / s + h)), Math.min(o, Math.floor(n + (s - l) * c / s + h)), a)
- }
- var p = r[n], f = i, d = o;
- for (e(r, i, n), a(r[o], p) > 0 && e(r, i, o); f < d;) {
- for (e(r, f, d), f++, d--; a(r[f], p) < 0;) f++;
- for (; a(r[d], p) > 0;) d--
- }
- 0 === a(r[i], p) ? e(r, i, d) : e(r, ++d, o), d <= n && (i = d + 1), n <= d && (o = d - 1)
- }
- }(t, n, i || 0, o || t.length - 1, a || r)
- }
-
- function e(t, e, r) {
- var n = t[e];
- t[e] = t[r], t[r] = n
- }
-
- function r(t, e) {
- return t < e ? -1 : t > e ? 1 : 0
- }
-
- var n = 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 i(t, e, r) {
- if (!r) return e.indexOf(t);
- for (var n = 0; n < e.length; n++) if (r(t, e[n])) return n;
- return -1
- }
-
- function o(t, e) {
- a(t, 0, t.children.length, e, t)
- }
-
- function a(t, e, r, n, i) {
- i || (i = d(null)), i.minX = 1 / 0, i.minY = 1 / 0, i.maxX = -1 / 0, i.maxY = -1 / 0;
- for (var o = e; o < r; o++) {
- var a = t.children[o];
- s(i, t.leaf ? n(a) : a)
- }
- return i
- }
-
- function s(t, e) {
- return t.minX = Math.min(t.minX, e.minX), t.minY = Math.min(t.minY, e.minY), t.maxX = Math.max(t.maxX, e.maxX), t.maxY = Math.max(t.maxY, e.maxY), t
- }
-
- function l(t, e) {
- return t.minX - e.minX
- }
-
- function u(t, e) {
- return t.minY - e.minY
- }
-
- function c(t) {
- return (t.maxX - t.minX) * (t.maxY - t.minY)
- }
-
- function h(t) {
- return t.maxX - t.minX + (t.maxY - t.minY)
- }
-
- function p(t, e) {
- return t.minX <= e.minX && t.minY <= e.minY && e.maxX <= t.maxX && e.maxY <= t.maxY
- }
-
- function f(t, e) {
- return e.minX <= t.maxX && e.minY <= t.maxY && e.maxX >= t.minX && e.maxY >= t.minY
- }
-
- function d(t) {
- return {children: t, height: 1, leaf: !0, minX: 1 / 0, minY: 1 / 0, maxX: -1 / 0, maxY: -1 / 0}
- }
-
- function g(e, r, n, i, o) {
- for (var a = [r, n]; a.length;) if (!((n = a.pop()) - (r = a.pop()) <= i)) {
- var s = r + Math.ceil((n - r) / i / 2) * i;
- t(e, s, r, n, o), a.push(r, s, s, n)
- }
- }
-
- return n.prototype.all = function () {
- return this._all(this.data, [])
- }, n.prototype.search = function (t) {
- var e = this.data, r = [];
- if (!f(t, e)) return r;
- for (var n = this.toBBox, i = []; e;) {
- for (var o = 0; o < e.children.length; o++) {
- var a = e.children[o], s = e.leaf ? n(a) : a;
- f(t, s) && (e.leaf ? r.push(a) : p(t, s) ? this._all(a, r) : i.push(a))
- }
- e = i.pop()
- }
- return r
- }, n.prototype.collides = function (t) {
- var e = this.data;
- if (!f(t, e)) return !1;
- for (var r = []; e;) {
- for (var n = 0; n < e.children.length; n++) {
- var i = e.children[n], o = e.leaf ? this.toBBox(i) : i;
- if (f(t, o)) {
- if (e.leaf || p(t, o)) return !0;
- r.push(i)
- }
- }
- e = r.pop()
- }
- return !1
- }, n.prototype.load = function (t) {
- if (!t || !t.length) return this;
- if (t.length < this._minEntries) {
- for (var e = 0; e < t.length; e++) this.insert(t[e]);
- return this
- }
- var r = this._build(t.slice(), 0, t.length - 1, 0);
- if (this.data.children.length) if (this.data.height === r.height) this._splitRoot(this.data, r); else {
- if (this.data.height < r.height) {
- var n = this.data;
- this.data = r, r = n
- }
- this._insert(r, this.data.height - r.height - 1, !0)
- } else this.data = r;
- return this
- }, n.prototype.insert = function (t) {
- return t && this._insert(t, this.data.height - 1), this
- }, n.prototype.clear = function () {
- return this.data = d([]), this
- }, n.prototype.remove = function (t, e) {
- if (!t) return this;
- for (var r, n, o, a = this.data, s = this.toBBox(t), l = [], u = []; a || l.length;) {
- if (a || (a = l.pop(), n = l[l.length - 1], r = u.pop(), o = !0), a.leaf) {
- var c = i(t, a.children, e);
- if (-1 !== c) return a.children.splice(c, 1), l.push(a), this._condense(l), this
- }
- o || a.leaf || !p(a, s) ? n ? (r++, a = n.children[r], o = !1) : a = null : (l.push(a), u.push(r), r = 0, n = a, a = a.children[0])
- }
- return this
- }, n.prototype.toBBox = function (t) {
- return t
- }, n.prototype.compareMinX = function (t, e) {
- return t.minX - e.minX
- }, n.prototype.compareMinY = function (t, e) {
- return t.minY - e.minY
- }, n.prototype.toJSON = function () {
- return this.data
- }, n.prototype.fromJSON = function (t) {
- return this.data = t, this
- }, n.prototype._all = function (t, e) {
- for (var r = []; t;) t.leaf ? e.push.apply(e, t.children) : r.push.apply(r, t.children), t = r.pop();
- return e
- }, n.prototype._build = function (t, e, r, n) {
- var i, a = r - e + 1, s = this._maxEntries;
- if (a <= s) return o(i = d(t.slice(e, r + 1)), this.toBBox), i;
- n || (n = Math.ceil(Math.log(a) / Math.log(s)), s = Math.ceil(a / Math.pow(s, n - 1))), (i = d([])).leaf = !1, i.height = n;
- var l = Math.ceil(a / s), u = l * Math.ceil(Math.sqrt(s));
- g(t, e, r, u, this.compareMinX);
- for (var c = e; c <= r; c += u) {
- var h = Math.min(c + u - 1, r);
- g(t, c, h, l, this.compareMinY);
- for (var p = c; p <= h; p += l) {
- var f = Math.min(p + l - 1, h);
- i.children.push(this._build(t, p, f, n - 1))
- }
- }
- return o(i, this.toBBox), i
- }, n.prototype._chooseSubtree = function (t, e, r, n) {
- for (; n.push(e), !e.leaf && n.length - 1 !== r;) {
- for (var i = 1 / 0, o = 1 / 0, a = void 0, s = 0; s < e.children.length; s++) {
- var l = e.children[s], u = c(l),
- h = (p = t, f = l, (Math.max(f.maxX, p.maxX) - Math.min(f.minX, p.minX)) * (Math.max(f.maxY, p.maxY) - Math.min(f.minY, p.minY)) - u);
- h < o ? (o = h, i = u < i ? u : i, a = l) : h === o && u < i && (i = u, a = l)
- }
- e = a || e.children[0]
- }
- var p, f;
- return e
- }, n.prototype._insert = function (t, e, r) {
- var n = r ? t : this.toBBox(t), i = [], o = this._chooseSubtree(n, this.data, e, i);
- for (o.children.push(t), s(o, n); e >= 0 && i[e].children.length > this._maxEntries;) this._split(i, e), e--;
- this._adjustParentBBoxes(n, i, e)
- }, n.prototype._split = function (t, e) {
- var r = t[e], n = r.children.length, i = this._minEntries;
- this._chooseSplitAxis(r, i, n);
- var a = this._chooseSplitIndex(r, i, n), s = d(r.children.splice(a, r.children.length - a));
- s.height = r.height, s.leaf = r.leaf, o(r, this.toBBox), o(s, this.toBBox), e ? t[e - 1].children.push(s) : this._splitRoot(r, s)
- }, n.prototype._splitRoot = function (t, e) {
- this.data = d([t, e]), this.data.height = t.height + 1, this.data.leaf = !1, o(this.data, this.toBBox)
- }, n.prototype._chooseSplitIndex = function (t, e, r) {
- for (var n, i, o, s, l, u, h, p = 1 / 0, f = 1 / 0, d = e; d <= r - e; d++) {
- var g = a(t, 0, d, this.toBBox), y = a(t, d, r, this.toBBox),
- m = (i = g, o = y, s = Math.max(i.minX, o.minX), l = Math.max(i.minY, o.minY), u = Math.min(i.maxX, o.maxX), h = Math.min(i.maxY, o.maxY), Math.max(0, u - s) * Math.max(0, h - l)),
- v = c(g) + c(y);
- m < p ? (p = m, n = d, f = v < f ? v : f) : m === p && v < f && (f = v, n = d)
- }
- return n || r - e
- }, n.prototype._chooseSplitAxis = function (t, e, r) {
- var n = t.leaf ? this.compareMinX : l, i = t.leaf ? this.compareMinY : u;
- this._allDistMargin(t, e, r, n) < this._allDistMargin(t, e, r, i) && t.children.sort(n)
- }, n.prototype._allDistMargin = function (t, e, r, n) {
- t.children.sort(n);
- for (var i = this.toBBox, o = a(t, 0, e, i), l = a(t, r - e, r, i), u = h(o) + h(l), c = e; c < r - e; c++) {
- var p = t.children[c];
- s(o, t.leaf ? i(p) : p), u += h(o)
- }
- for (var f = r - e - 1; f >= e; f--) {
- var d = t.children[f];
- s(l, t.leaf ? i(d) : d), u += h(l)
- }
- return u
- }, n.prototype._adjustParentBBoxes = function (t, e, r) {
- for (var n = r; n >= 0; n--) s(e[n], t)
- }, n.prototype._condense = function (t) {
- for (var e = t.length - 1, r = void 0; e >= 0; e--) 0 === t[e].children.length ? e > 0 ? (r = t[e - 1].children).splice(r.indexOf(t[e]), 1) : this.clear() : o(t[e], this.toBBox)
- }, n
- }()
- }, function (t, e) {
- var r = {
- thin: 100,
- hairline: 100,
- "ultra-light": 100,
- "extra-light": 100,
- light: 200,
- book: 300,
- regular: 400,
- normal: 400,
- plain: 400,
- roman: 400,
- standard: 400,
- medium: 500,
- "semi-bold": 600,
- "demi-bold": 600,
- bold: 700,
- heavy: 800,
- black: 800,
- "extra-bold": 800,
- "ultra-black": 900,
- "extra-black": 900,
- "ultra-bold": 900,
- "heavy-black": 900,
- fat: 900,
- poster: 900
- }, n = /(italic|oblique)$/i, i = {};
- t.exports = function (t, e, o) {
- var a = i[t];
- if (!a) {
- Array.isArray(t) || (t = [t]);
- for (var s = 400, l = "normal", u = [], c = 0, h = t.length; c < h; ++c) {
- var p = t[c].split(" "), f = p[p.length - 1].toLowerCase();
- for (var d in "normal" == f || "italic" == f || "oblique" == f ? (l = f, p.pop(), f = p[p.length - 1].toLowerCase()) : n.test(f) && (f = f.replace(n, ""), l = p[p.length - 1].replace(f, "")), r) if (f == d || f == d.replace("-", "") || f == d.replace("-", " ")) {
- s = r[d], p.pop();
- break
- }
- "number" == typeof f && (s = f);
- var g = p.join(" ").replace("Klokantech Noto Sans", "Noto Sans");
- -1 !== g.indexOf(" ") && (g = '"' + g + '"'), u.push(g)
- }
- a = i[t] = [l, s, u]
- }
- return a[0] + " " + a[1] + " " + e + "px" + (o ? "/" + o : "") + " " + a[2]
- }
- }, function (t, e) {
- e.read = function (t, e, r, n, i) {
- var o, a, s = 8 * i - n - 1, l = (1 << s) - 1, u = l >> 1, c = -7, h = r ? i - 1 : 0, p = r ? -1 : 1,
- f = t[e + h];
- for (h += p, o = f & (1 << -c) - 1, f >>= -c, c += s; c > 0; o = 256 * o + t[e + h], h += p, c -= 8) ;
- for (a = o & (1 << -c) - 1, o >>= -c, c += n; c > 0; a = 256 * a + t[e + h], h += p, c -= 8) ;
- if (0 === o) o = 1 - u; else {
- if (o === l) return a ? NaN : 1 / 0 * (f ? -1 : 1);
- a += Math.pow(2, n), o -= u
- }
- return (f ? -1 : 1) * a * Math.pow(2, o - n)
- }, e.write = function (t, e, r, n, i, o) {
- var a, s, l, u = 8 * o - i - 1, c = (1 << u) - 1, h = c >> 1,
- p = 23 === i ? Math.pow(2, -24) - Math.pow(2, -77) : 0, f = n ? 0 : o - 1, d = n ? 1 : -1,
- g = e < 0 || 0 === e && 1 / e < 0 ? 1 : 0;
- for (e = Math.abs(e), isNaN(e) || e === 1 / 0 ? (s = isNaN(e) ? 1 : 0, a = c) : (a = Math.floor(Math.log(e) / Math.LN2), e * (l = Math.pow(2, -a)) < 1 && (a--, l *= 2), (e += a + h >= 1 ? p / l : p * Math.pow(2, 1 - h)) * l >= 2 && (a++, l /= 2), a + h >= c ? (s = 0, a = c) : a + h >= 1 ? (s = (e * l - 1) * Math.pow(2, i), a += h) : (s = e * Math.pow(2, h - 1) * Math.pow(2, i), a = 0)); i >= 8; t[r + f] = 255 & s, f += d, s /= 256, i -= 8) ;
- for (a = a << i | s, u += i; u > 0; t[r + f] = 255 & a, f += d, a /= 256, u -= 8) ;
- t[r + f - d] |= 128 * g
- }
- }, function (t, e) {
- var r;
- r = function () {
- return this
- }();
- try {
- r = r || new Function("return this")()
- } catch (t) {
- "object" == typeof window && (r = window)
- }
- t.exports = r
- }, function (t, e, r) {
- "use strict";
- t.exports = i;
- var n = r(3);
-
- function i(t) {
- this.buf = ArrayBuffer.isView && ArrayBuffer.isView(t) ? t : new Uint8Array(t || 0), this.pos = 0, this.type = 0, this.length = this.buf.length
- }
-
- i.Varint = 0, i.Fixed64 = 1, i.Bytes = 2, i.Fixed32 = 5;
- var o = "undefined" == typeof TextDecoder ? null : new TextDecoder("utf8");
-
- function a(t) {
- return t.type === i.Bytes ? t.readVarint() + t.pos : t.pos + 1
- }
-
- function s(t, e, r) {
- return r ? 4294967296 * e + (t >>> 0) : 4294967296 * (e >>> 0) + (t >>> 0)
- }
-
- function l(t, e, r) {
- var n = e <= 16383 ? 1 : e <= 2097151 ? 2 : e <= 268435455 ? 3 : Math.floor(Math.log(e) / (7 * Math.LN2));
- r.realloc(n);
- for (var i = r.pos - 1; i >= t; i--) r.buf[i + n] = r.buf[i]
- }
-
- function u(t, e) {
- for (var r = 0; r < t.length; r++) e.writeVarint(t[r])
- }
-
- function c(t, e) {
- for (var r = 0; r < t.length; r++) e.writeSVarint(t[r])
- }
-
- function h(t, e) {
- for (var r = 0; r < t.length; r++) e.writeFloat(t[r])
- }
-
- function p(t, e) {
- for (var r = 0; r < t.length; r++) e.writeDouble(t[r])
- }
-
- function f(t, e) {
- for (var r = 0; r < t.length; r++) e.writeBoolean(t[r])
- }
-
- function d(t, e) {
- for (var r = 0; r < t.length; r++) e.writeFixed32(t[r])
- }
-
- function g(t, e) {
- for (var r = 0; r < t.length; r++) e.writeSFixed32(t[r])
- }
-
- function y(t, e) {
- for (var r = 0; r < t.length; r++) e.writeFixed64(t[r])
- }
-
- function m(t, e) {
- for (var r = 0; r < t.length; r++) e.writeSFixed64(t[r])
- }
-
- function v(t, e) {
- return (t[e] | t[e + 1] << 8 | t[e + 2] << 16) + 16777216 * t[e + 3]
- }
-
- function _(t, e, r) {
- t[r] = e, t[r + 1] = e >>> 8, t[r + 2] = e >>> 16, t[r + 3] = e >>> 24
- }
-
- function b(t, e) {
- return (t[e] | t[e + 1] << 8 | t[e + 2] << 16) + (t[e + 3] << 24)
- }
-
- i.prototype = {
- destroy: function () {
- this.buf = null
- }, readFields: function (t, e, r) {
- for (r = r || this.length; this.pos < r;) {
- var n = this.readVarint(), i = n >> 3, o = this.pos;
- this.type = 7 & n, t(i, e, this), this.pos === o && this.skip(n)
- }
- return e
- }, readMessage: function (t, e) {
- return this.readFields(t, e, this.readVarint() + this.pos)
- }, readFixed32: function () {
- var t = v(this.buf, this.pos);
- return this.pos += 4, t
- }, readSFixed32: function () {
- var t = b(this.buf, this.pos);
- return this.pos += 4, t
- }, readFixed64: function () {
- var t = v(this.buf, this.pos) + 4294967296 * v(this.buf, this.pos + 4);
- return this.pos += 8, t
- }, readSFixed64: function () {
- var t = v(this.buf, this.pos) + 4294967296 * b(this.buf, this.pos + 4);
- return this.pos += 8, t
- }, readFloat: function () {
- var t = n.read(this.buf, this.pos, !0, 23, 4);
- return this.pos += 4, t
- }, readDouble: function () {
- var t = n.read(this.buf, this.pos, !0, 52, 8);
- return this.pos += 8, t
- }, readVarint: function (t) {
- var e, r, n = this.buf;
- return e = 127 & (r = n[this.pos++]), r < 128 ? e : (e |= (127 & (r = n[this.pos++])) << 7, r < 128 ? e : (e |= (127 & (r = n[this.pos++])) << 14, r < 128 ? e : (e |= (127 & (r = n[this.pos++])) << 21, r < 128 ? e : function (t, e, r) {
- var n, i, o = r.buf;
- if (i = o[r.pos++], n = (112 & i) >> 4, i < 128) return s(t, n, e);
- if (i = o[r.pos++], n |= (127 & i) << 3, i < 128) return s(t, n, e);
- if (i = o[r.pos++], n |= (127 & i) << 10, i < 128) return s(t, n, e);
- if (i = o[r.pos++], n |= (127 & i) << 17, i < 128) return s(t, n, e);
- if (i = o[r.pos++], n |= (127 & i) << 24, i < 128) return s(t, n, e);
- if (i = o[r.pos++], n |= (1 & i) << 31, i < 128) return s(t, n, e);
- throw new Error("Expected varint not more than 10 bytes")
- }(e |= (15 & (r = n[this.pos])) << 28, t, this))))
- }, readVarint64: function () {
- return this.readVarint(!0)
- }, readSVarint: function () {
- var t = this.readVarint();
- return t % 2 == 1 ? (t + 1) / -2 : t / 2
- }, readBoolean: function () {
- return Boolean(this.readVarint())
- }, readString: function () {
- var t = this.readVarint() + this.pos, e = this.pos;
- return this.pos = t, t - e >= 12 && o ? function (t, e, r) {
- return o.decode(t.subarray(e, r))
- }(this.buf, e, t) : function (t, e, r) {
- var n = "", i = e;
- for (; i < r;) {
- var o, a, s, l = t[i], u = null, c = l > 239 ? 4 : l > 223 ? 3 : l > 191 ? 2 : 1;
- if (i + c > r) break;
- 1 === c ? l < 128 && (u = l) : 2 === c ? 128 == (192 & (o = t[i + 1])) && (u = (31 & l) << 6 | 63 & o) <= 127 && (u = null) : 3 === c ? (o = t[i + 1], a = t[i + 2], 128 == (192 & o) && 128 == (192 & a) && ((u = (15 & l) << 12 | (63 & o) << 6 | 63 & a) <= 2047 || u >= 55296 && u <= 57343) && (u = null)) : 4 === c && (o = t[i + 1], a = t[i + 2], s = t[i + 3], 128 == (192 & o) && 128 == (192 & a) && 128 == (192 & s) && ((u = (15 & l) << 18 | (63 & o) << 12 | (63 & a) << 6 | 63 & s) <= 65535 || u >= 1114112) && (u = null)), null === u ? (u = 65533, c = 1) : u > 65535 && (u -= 65536, n += String.fromCharCode(u >>> 10 & 1023 | 55296), u = 56320 | 1023 & u), n += String.fromCharCode(u), i += c
- }
- return n
- }(this.buf, e, t)
- }, readBytes: function () {
- var t = this.readVarint() + this.pos, e = this.buf.subarray(this.pos, t);
- return this.pos = t, e
- }, readPackedVarint: function (t, e) {
- if (this.type !== i.Bytes) return t.push(this.readVarint(e));
- var r = a(this);
- for (t = t || []; this.pos < r;) t.push(this.readVarint(e));
- return t
- }, readPackedSVarint: function (t) {
- if (this.type !== i.Bytes) return t.push(this.readSVarint());
- var e = a(this);
- for (t = t || []; this.pos < e;) t.push(this.readSVarint());
- return t
- }, readPackedBoolean: function (t) {
- if (this.type !== i.Bytes) return t.push(this.readBoolean());
- var e = a(this);
- for (t = t || []; this.pos < e;) t.push(this.readBoolean());
- return t
- }, readPackedFloat: function (t) {
- if (this.type !== i.Bytes) return t.push(this.readFloat());
- var e = a(this);
- for (t = t || []; this.pos < e;) t.push(this.readFloat());
- return t
- }, readPackedDouble: function (t) {
- if (this.type !== i.Bytes) return t.push(this.readDouble());
- var e = a(this);
- for (t = t || []; this.pos < e;) t.push(this.readDouble());
- return t
- }, readPackedFixed32: function (t) {
- if (this.type !== i.Bytes) return t.push(this.readFixed32());
- var e = a(this);
- for (t = t || []; this.pos < e;) t.push(this.readFixed32());
- return t
- }, readPackedSFixed32: function (t) {
- if (this.type !== i.Bytes) return t.push(this.readSFixed32());
- var e = a(this);
- for (t = t || []; this.pos < e;) t.push(this.readSFixed32());
- return t
- }, readPackedFixed64: function (t) {
- if (this.type !== i.Bytes) return t.push(this.readFixed64());
- var e = a(this);
- for (t = t || []; this.pos < e;) t.push(this.readFixed64());
- return t
- }, readPackedSFixed64: function (t) {
- if (this.type !== i.Bytes) return t.push(this.readSFixed64());
- var e = a(this);
- for (t = t || []; this.pos < e;) t.push(this.readSFixed64());
- return t
- }, skip: function (t) {
- var e = 7 & t;
- if (e === i.Varint) for (; this.buf[this.pos++] > 127;) ; else if (e === i.Bytes) this.pos = this.readVarint() + this.pos; else if (e === i.Fixed32) this.pos += 4; else {
- if (e !== i.Fixed64) throw new Error("Unimplemented type: " + e);
- this.pos += 8
- }
- }, writeTag: function (t, e) {
- this.writeVarint(t << 3 | e)
- }, realloc: function (t) {
- for (var e = this.length || 16; e < this.pos + t;) e *= 2;
- if (e !== this.length) {
- var r = new Uint8Array(e);
- r.set(this.buf), this.buf = r, this.length = e
- }
- }, finish: function () {
- return this.length = this.pos, this.pos = 0, this.buf.subarray(0, this.length)
- }, writeFixed32: function (t) {
- this.realloc(4), _(this.buf, t, this.pos), this.pos += 4
- }, writeSFixed32: function (t) {
- this.realloc(4), _(this.buf, t, this.pos), this.pos += 4
- }, writeFixed64: function (t) {
- this.realloc(8), _(this.buf, -1 & t, this.pos), _(this.buf, Math.floor(t * (1 / 4294967296)), this.pos + 4), this.pos += 8
- }, writeSFixed64: function (t) {
- this.realloc(8), _(this.buf, -1 & t, this.pos), _(this.buf, Math.floor(t * (1 / 4294967296)), this.pos + 4), this.pos += 8
- }, writeVarint: function (t) {
- (t = +t || 0) > 268435455 || t < 0 ? function (t, e) {
- var r, n;
- t >= 0 ? (r = t % 4294967296 | 0, n = t / 4294967296 | 0) : (n = ~(-t / 4294967296), 4294967295 ^ (r = ~(-t % 4294967296)) ? r = r + 1 | 0 : (r = 0, n = n + 1 | 0));
- if (t >= 0x10000000000000000 || t < -0x10000000000000000) throw new Error("Given varint doesn't fit into 10 bytes");
- e.realloc(10), function (t, e, r) {
- r.buf[r.pos++] = 127 & t | 128, t >>>= 7, r.buf[r.pos++] = 127 & t | 128, t >>>= 7, r.buf[r.pos++] = 127 & t | 128, t >>>= 7, r.buf[r.pos++] = 127 & t | 128, t >>>= 7, r.buf[r.pos] = 127 & t
- }(r, 0, e), function (t, e) {
- var r = (7 & t) << 4;
- if (e.buf[e.pos++] |= r | ((t >>>= 3) ? 128 : 0), !t) return;
- if (e.buf[e.pos++] = 127 & t | ((t >>>= 7) ? 128 : 0), !t) return;
- if (e.buf[e.pos++] = 127 & t | ((t >>>= 7) ? 128 : 0), !t) return;
- if (e.buf[e.pos++] = 127 & t | ((t >>>= 7) ? 128 : 0), !t) return;
- if (e.buf[e.pos++] = 127 & t | ((t >>>= 7) ? 128 : 0), !t) return;
- e.buf[e.pos++] = 127 & t
- }(n, e)
- }(t, this) : (this.realloc(4), this.buf[this.pos++] = 127 & t | (t > 127 ? 128 : 0), t <= 127 || (this.buf[this.pos++] = 127 & (t >>>= 7) | (t > 127 ? 128 : 0), t <= 127 || (this.buf[this.pos++] = 127 & (t >>>= 7) | (t > 127 ? 128 : 0), t <= 127 || (this.buf[this.pos++] = t >>> 7 & 127))))
- }, writeSVarint: function (t) {
- this.writeVarint(t < 0 ? 2 * -t - 1 : 2 * t)
- }, writeBoolean: function (t) {
- this.writeVarint(Boolean(t))
- }, writeString: function (t) {
- t = String(t), this.realloc(4 * t.length), this.pos++;
- var e = this.pos;
- this.pos = function (t, e, r) {
- for (var n, i, o = 0; o < e.length; o++) {
- if ((n = e.charCodeAt(o)) > 55295 && n < 57344) {
- if (!i) {
- n > 56319 || o + 1 === e.length ? (t[r++] = 239, t[r++] = 191, t[r++] = 189) : i = n;
- continue
- }
- if (n < 56320) {
- t[r++] = 239, t[r++] = 191, t[r++] = 189, i = n;
- continue
- }
- n = i - 55296 << 10 | n - 56320 | 65536, i = null
- } else i && (t[r++] = 239, t[r++] = 191, t[r++] = 189, i = null);
- n < 128 ? t[r++] = n : (n < 2048 ? t[r++] = n >> 6 | 192 : (n < 65536 ? t[r++] = n >> 12 | 224 : (t[r++] = n >> 18 | 240, t[r++] = n >> 12 & 63 | 128), t[r++] = n >> 6 & 63 | 128), t[r++] = 63 & n | 128)
- }
- return r
- }(this.buf, t, this.pos);
- var r = this.pos - e;
- r >= 128 && l(e, r, this), this.pos = e - 1, this.writeVarint(r), this.pos += r
- }, writeFloat: function (t) {
- this.realloc(4), n.write(this.buf, t, this.pos, !0, 23, 4), this.pos += 4
- }, writeDouble: function (t) {
- this.realloc(8), n.write(this.buf, t, this.pos, !0, 52, 8), this.pos += 8
- }, writeBytes: function (t) {
- var e = t.length;
- this.writeVarint(e), this.realloc(e);
- for (var r = 0; r < e; r++) this.buf[this.pos++] = t[r]
- }, writeRawMessage: function (t, e) {
- this.pos++;
- var r = this.pos;
- t(e, this);
- var n = this.pos - r;
- n >= 128 && l(r, n, this), this.pos = r - 1, this.writeVarint(n), this.pos += n
- }, writeMessage: function (t, e, r) {
- this.writeTag(t, i.Bytes), this.writeRawMessage(e, r)
- }, writePackedVarint: function (t, e) {
- e.length && this.writeMessage(t, u, e)
- }, writePackedSVarint: function (t, e) {
- e.length && this.writeMessage(t, c, e)
- }, writePackedBoolean: function (t, e) {
- e.length && this.writeMessage(t, f, e)
- }, writePackedFloat: function (t, e) {
- e.length && this.writeMessage(t, h, e)
- }, writePackedDouble: function (t, e) {
- e.length && this.writeMessage(t, p, e)
- }, writePackedFixed32: function (t, e) {
- e.length && this.writeMessage(t, d, e)
- }, writePackedSFixed32: function (t, e) {
- e.length && this.writeMessage(t, g, e)
- }, writePackedFixed64: function (t, e) {
- e.length && this.writeMessage(t, y, e)
- }, writePackedSFixed64: function (t, e) {
- e.length && this.writeMessage(t, m, e)
- }, writeBytesField: function (t, e) {
- this.writeTag(t, i.Bytes), this.writeBytes(e)
- }, writeFixed32Field: function (t, e) {
- this.writeTag(t, i.Fixed32), this.writeFixed32(e)
- }, writeSFixed32Field: function (t, e) {
- this.writeTag(t, i.Fixed32), this.writeSFixed32(e)
- }, writeFixed64Field: function (t, e) {
- this.writeTag(t, i.Fixed64), this.writeFixed64(e)
- }, writeSFixed64Field: function (t, e) {
- this.writeTag(t, i.Fixed64), this.writeSFixed64(e)
- }, writeVarintField: function (t, e) {
- this.writeTag(t, i.Varint), this.writeVarint(e)
- }, writeSVarintField: function (t, e) {
- this.writeTag(t, i.Varint), this.writeSVarint(e)
- }, writeStringField: function (t, e) {
- this.writeTag(t, i.Bytes), this.writeString(e)
- }, writeFloatField: function (t, e) {
- this.writeTag(t, i.Fixed32), this.writeFloat(e)
- }, writeDoubleField: function (t, e) {
- this.writeTag(t, i.Fixed64), this.writeDouble(e)
- }, writeBooleanField: function (t, e) {
- this.writeVarintField(t, Boolean(e))
- }
- }
- }, function (t, e) {
- (function () {
- var e;
- t.exports = {
- icon: "icons/google.svg",
- name: "google",
- title: "Google Fonts",
- link: "google.com/fonts",
- getNames: function () {
- return e
- },
- getLink: function (t) {
- return "https://fonts.google.com/specimen/" + t.replace(/( )/g, "+")
- },
- normalizeName: function (t) {
- return t
- }
- }, e = ["ABeeZee", "Abel", "Abril Fatface", "Aclonica", "Acme", "Actor", "Adamina", "Advent Pro", "Aguafina Script", "Akronim", "Aladin", "Aldrich", "Alef", "Alegreya", "Alegreya SC", "Alegreya Sans", "Alegreya Sans SC", "Alex Brush", "Alfa Slab One", "Alice", "Alike", "Alike Angular", "Allan", "Allerta", "Allerta Stencil", "Allura", "Almendra", "Almendra Display", "Almendra SC", "Amarante", "Amaranth", "Amatic SC", "Amethysta", "Amiri", "Amita", "Anaheim", "Andada", "Andika", "Angkor", "Annie Use Your Telescope", "Anonymous Pro", "Antic", "Antic Didone", "Antic Slab", "Anton", "Arapey", "Arbutus", "Arbutus Slab", "Architects Daughter", "Archivo Black", "Archivo Narrow", "Arimo", "Arizonia", "Armata", "Artifika", "Arvo", "Arya", "Asap", "Asar", "Asset", "Astloch", "Asul", "Atomic Age", "Aubrey", "Audiowide", "Autour One", "Average", "Average Sans", "Averia Gruesa Libre", "Averia Libre", "Averia Sans Libre", "Averia Serif Libre", "Bad Script", "Balthazar", "Bangers", "Basic", "Battambang", "Baumans", "Bayon", "Belgrano", "Belleza", "BenchNine", "Bentham", "Berkshire Swash", "Bevan", "Bigelow Rules", "Bigshot One", "Bilbo", "Bilbo Swash Caps", "Biryani", "Bitter", "Black Ops One", "Bokor", "Bonbon", "Boogaloo", "Bowlby One", "Bowlby One SC", "Brawler", "Bree Serif", "Bubblegum Sans", "Bubbler One", "Buda", "Buenard", "Butcherman", "Butterfly Kids", "Cabin", "Cabin Condensed", "Cabin Sketch", "Caesar Dressing", "Cagliostro", "Calligraffitti", "Cambay", "Cambo", "Candal", "Cantarell", "Cantata One", "Cantora One", "Capriola", "Cardo", "Carme", "Carrois Gothic", "Carrois Gothic SC", "Carter One", "Catamaran", "Caudex", "Caveat", "Caveat Brush", "Cedarville Cursive", "Ceviche One", "Changa One", "Chango", "Chau Philomene One", "Chela One", "Chelsea Market", "Chenla", "Cherry Cream Soda", "Cherry Swash", "Chewy", "Chicle", "Chivo", "Chonburi", "Cinzel", "Cinzel Decorative", "Clicker Script", "Coda", "Coda Caption", "Codystar", "Combo", "Comfortaa", "Coming Soon", "Concert One", "Condiment", "Content", "Contrail One", "Convergence", "Cookie", "Copse", "Corben", "Courgette", "Cousine", "Coustard", "Covered By Your Grace", "Crafty Girls", "Creepster", "Crete Round", "Crimson Text", "Croissant One", "Crushed", "Cuprum", "Cutive", "Cutive Mono", "Damion", "Dancing Script", "Dangrek", "Dawning of a New Day", "Days One", "Dekko", "Delius", "Delius Swash Caps", "Delius Unicase", "Della Respira", "Denk One", "Devonshire", "Dhurjati", "Didact Gothic", "Diplomata", "Diplomata SC", "Domine", "Donegal One", "Doppio One", "Dorsa", "Dosis", "Dr Sugiyama", "Droid Sans", "Droid Sans Mono", "Droid Serif", "Duru Sans", "Dynalight", "EB Garamond", "Eagle Lake", "Eater", "Economica", "Eczar", "Ek Mukta", "Electrolize", "Elsie", "Elsie Swash Caps", "Emblema One", "Emilys Candy", "Engagement", "Englebert", "Enriqueta", "Erica One", "Esteban", "Euphoria Script", "Ewert", "Exo", "Exo 2", "Expletus Sans", "Fanwood Text", "Fascinate", "Fascinate Inline", "Faster One", "Fasthand", "Fauna One", "Federant", "Federo", "Felipa", "Fenix", "Finger Paint", "Fira Mono", "Fira Sans", "Fjalla One", "Fjord One", "Flamenco", "Flavors", "Fondamento", "Fontdiner Swanky", "Forum", "Francois One", "Freckle Face", "Fredericka the Great", "Fredoka One", "Freehand", "Fresca", "Frijole", "Fruktur", "Fugaz One", "GFS Didot", "GFS Neohellenic", "Gabriela", "Gafata", "Galdeano", "Galindo", "Gentium Basic", "Gentium Book Basic", "Geo", "Geostar", "Geostar Fill", "Germania One", "Gidugu", "Gilda Display", "Give You Glory", "Glass Antiqua", "Glegoo", "Gloria Hallelujah", "Goblin One", "Gochi Hand", "Gorditas", "Goudy Bookletter 1911", "Graduate", "Grand Hotel", "Gravitas One", "Great Vibes", "Griffy", "Gruppo", "Gudea", "Gurajada", "Habibi", "Halant", "Hammersmith One", "Hanalei", "Hanalei Fill", "Handlee", "Hanuman", "Happy Monkey", "Headland One", "Henny Penny", "Herr Von Muellerhoff", "Hind", "Hind Siliguri", "Hind Vadodara", "Holtwood One SC", "Homemade Apple", "Homenaje", "IM Fell DW Pica", "IM Fell DW Pica SC", "IM Fell Double Pica", "IM Fell Double Pica SC", "IM Fell
- }).call(this)
- }, function (t, e, r) {
- "use strict";
- (function (t) {
- /*!
- * The buffer module from node.js, for the browser.
- *
- * @author Feross Aboukhadijeh <http://feross.org>
- * @license MIT
- */
- var n = r(8), i = r(3), o = r(9);
-
- function a() {
- return l.TYPED_ARRAY_SUPPORT ? 2147483647 : 1073741823
- }
-
- function s(t, e) {
- if (a() < e) throw new RangeError("Invalid typed array length");
- return l.TYPED_ARRAY_SUPPORT ? (t = new Uint8Array(e)).__proto__ = l.prototype : (null === t && (t = new l(e)), t.length = e), t
- }
-
- function l(t, e, r) {
- if (!(l.TYPED_ARRAY_SUPPORT || this instanceof l)) return new l(t, e, r);
- if ("number" == typeof t) {
- if ("string" == typeof e) throw new Error("If encoding is specified then the first argument must be a string");
- return h(this, t)
- }
- return u(this, t, e, r)
- }
-
- function u(t, e, r, n) {
- if ("number" == typeof e) throw new TypeError('"value" argument must not be a number');
- return "undefined" != typeof ArrayBuffer && e instanceof ArrayBuffer ? function (t, e, r, n) {
- if (e.byteLength, r < 0 || e.byteLength < r) throw new RangeError("'offset' is out of bounds");
- if (e.byteLength < r + (n || 0)) throw new RangeError("'length' is out of bounds");
- e = void 0 === r && void 0 === n ? new Uint8Array(e) : void 0 === n ? new Uint8Array(e, r) : new Uint8Array(e, r, n);
- l.TYPED_ARRAY_SUPPORT ? (t = e).__proto__ = l.prototype : t = p(t, e);
- return t
- }(t, e, r, n) : "string" == typeof e ? function (t, e, r) {
- "string" == typeof r && "" !== r || (r = "utf8");
- if (!l.isEncoding(r)) throw new TypeError('"encoding" must be a valid string encoding');
- var n = 0 | d(e, r), i = (t = s(t, n)).write(e, r);
- i !== n && (t = t.slice(0, i));
- return t
- }(t, e, r) : function (t, e) {
- if (l.isBuffer(e)) {
- var r = 0 | f(e.length);
- return 0 === (t = s(t, r)).length || e.copy(t, 0, 0, r), t
- }
- if (e) {
- if ("undefined" != typeof ArrayBuffer && e.buffer instanceof ArrayBuffer || "length" in e) return "number" != typeof e.length || (n = e.length) != n ? s(t, 0) : p(t, e);
- if ("Buffer" === e.type && o(e.data)) return p(t, e.data)
- }
- var n;
- throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")
- }(t, e)
- }
-
- function c(t) {
- if ("number" != typeof t) throw new TypeError('"size" argument must be a number');
- if (t < 0) throw new RangeError('"size" argument must not be negative')
- }
-
- function h(t, e) {
- if (c(e), t = s(t, e < 0 ? 0 : 0 | f(e)), !l.TYPED_ARRAY_SUPPORT) for (var r = 0; r < e; ++r) t[r] = 0;
- return t
- }
-
- function p(t, e) {
- var r = e.length < 0 ? 0 : 0 | f(e.length);
- t = s(t, r);
- for (var n = 0; n < r; n += 1) t[n] = 255 & e[n];
- return t
- }
-
- function f(t) {
- if (t >= a()) throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + a().toString(16) + " bytes");
- return 0 | t
- }
-
- function d(t, e) {
- if (l.isBuffer(t)) return t.length;
- if ("undefined" != typeof ArrayBuffer && "function" == typeof ArrayBuffer.isView && (ArrayBuffer.isView(t) || t instanceof ArrayBuffer)) return t.byteLength;
- "string" != typeof t && (t = "" + t);
- var r = t.length;
- if (0 === r) return 0;
- for (var n = !1; ;) switch (e) {
- case"ascii":
- case"latin1":
- case"binary":
- return r;
- case"utf8":
- case"utf-8":
- case void 0:
- return z(t).length;
- case"ucs2":
- case"ucs-2":
- case"utf16le":
- case"utf-16le":
- return 2 * r;
- case"hex":
- return r >>> 1;
- case"base64":
- return U(t).length;
- default:
- if (n) return z(t).length;
- e = ("" + e).toLowerCase(), n = !0
- }
- }
-
- function g(t, e, r) {
- var n = !1;
- if ((void 0 === e || e < 0) && (e = 0), e > this.length) return "";
- if ((void 0 === r || r > this.length) && (r = this.length), r <= 0) return "";
- if ((r >>>= 0) <= (e >>>= 0)) return "";
- for (t || (t = "utf8"); ;) switch (t) {
- case"hex":
- return R(this, e, r);
- case"utf8":
- case"utf-8":
- return C(this, e, r);
- case"ascii":
- return O(this, e, r);
- case"latin1":
- case"binary":
- return P(this, e, r);
- case"base64":
- return T(this, e, r);
- case"ucs2":
- case"ucs-2":
- case"utf16le":
- case"utf-16le":
- return I(this, e, r);
- default:
- if (n) throw new TypeError("Unknown encoding: " + t);
- t = (t + "").toLowerCase(), n = !0
- }
- }
-
- function y(t, e, r) {
- var n = t[e];
- t[e] = t[r], t[r] = n
- }
-
- function m(t, e, r, n, i) {
- if (0 === t.length) return -1;
- if ("string" == typeof r ? (n = r, r = 0) : r > 2147483647 ? r = 2147483647 : r < -2147483648 && (r = -2147483648), r = +r, isNaN(r) && (r = i ? 0 : t.length - 1), r < 0 && (r = t.length + r), r >= t.length) {
- if (i) return -1;
- r = t.length - 1
- } else if (r < 0) {
- if (!i) return -1;
- r = 0
- }
- if ("string" == typeof e && (e = l.from(e, n)), l.isBuffer(e)) return 0 === e.length ? -1 : v(t, e, r, n, i);
- if ("number" == typeof e) return e &= 255, l.TYPED_ARRAY_SUPPORT && "function" == typeof Uint8Array.prototype.indexOf ? i ? Uint8Array.prototype.indexOf.call(t, e, r) : Uint8Array.prototype.lastIndexOf.call(t, e, r) : v(t, [e], r, n, i);
- throw new TypeError("val must be string, number or Buffer")
- }
-
- function v(t, e, r, n, i) {
- var o, a = 1, s = t.length, l = e.length;
- if (void 0 !== n && ("ucs2" === (n = String(n).toLowerCase()) || "ucs-2" === n || "utf16le" === n || "utf-16le" === n)) {
- if (t.length < 2 || e.length < 2) return -1;
- a = 2, s /= 2, l /= 2, r /= 2
- }
-
- function u(t, e) {
- return 1 === a ? t[e] : t.readUInt16BE(e * a)
- }
-
- if (i) {
- var c = -1;
- for (o = r; o < s; o++) if (u(t, o) === u(e, -1 === c ? 0 : o - c)) {
- if (-1 === c && (c = o), o - c + 1 === l) return c * a
- } else -1 !== c && (o -= o - c), c = -1
- } else for (r + l > s && (r = s - l), o = r; o >= 0; o--) {
- for (var h = !0, p = 0; p < l; p++) if (u(t, o + p) !== u(e, p)) {
- h = !1;
- break
- }
- if (h) return o
- }
- return -1
- }
-
- function _(t, e, r, n) {
- r = Number(r) || 0;
- var i = t.length - r;
- n ? (n = Number(n)) > i && (n = i) : n = i;
- var o = e.length;
- if (o % 2 != 0) throw new TypeError("Invalid hex string");
- n > o / 2 && (n = o / 2);
- for (var a = 0; a < n; ++a) {
- var s = parseInt(e.substr(2 * a, 2), 16);
- if (isNaN(s)) return a;
- t[r + a] = s
- }
- return a
- }
-
- function b(t, e, r, n) {
- return B(z(e, t.length - r), t, r, n)
- }
-
- function x(t, e, r, n) {
- return B(function (t) {
- for (var e = [], r = 0; r < t.length; ++r) e.push(255 & t.charCodeAt(r));
- return e
- }(e), t, r, n)
- }
-
- function w(t, e, r, n) {
- return x(t, e, r, n)
- }
-
- function S(t, e, r, n) {
- return B(U(e), t, r, n)
- }
-
- function E(t, e, r, n) {
- return B(function (t, e) {
- for (var r, n, i, o = [], a = 0; a < t.length && !((e -= 2) < 0); ++a) r = t.charCodeAt(a), n = r >> 8, i = r % 256, o.push(i), o.push(n);
- return o
- }(e, t.length - r), t, r, n)
- }
-
- function T(t, e, r) {
- return 0 === e && r === t.length ? n.fromByteArray(t) : n.fromByteArray(t.slice(e, r))
- }
-
- function C(t, e, r) {
- r = Math.min(t.length, r);
- for (var n = [], i = e; i < r;) {
- var o, a, s, l, u = t[i], c = null, h = u > 239 ? 4 : u > 223 ? 3 : u > 191 ? 2 : 1;
- if (i + h <= r) switch (h) {
- case 1:
- u < 128 && (c = u);
- break;
- case 2:
- 128 == (192 & (o = t[i + 1])) && (l = (31 & u) << 6 | 63 & o) > 127 && (c = l);
- break;
- case 3:
- o = t[i + 1], a = t[i + 2], 128 == (192 & o) && 128 == (192 & a) && (l = (15 & u) << 12 | (63 & o) << 6 | 63 & a) > 2047 && (l < 55296 || l > 57343) && (c = l);
- break;
- case 4:
- o = t[i + 1], a = t[i + 2], s = t[i + 3], 128 == (192 & o) && 128 == (192 & a) && 128 == (192 & s) && (l = (15 & u) << 18 | (63 & o) << 12 | (63 & a) << 6 | 63 & s) > 65535 && l < 1114112 && (c = l)
- }
- null === c ? (c = 65533, h = 1) : c > 65535 && (c -= 65536, n.push(c >>> 10 & 1023 | 55296), c = 56320 | 1023 & c), n.push(c), i += h
- }
- return function (t) {
- var e = t.length;
- if (e <= 4096) return String.fromCharCode.apply(String, t);
- var r = "", n = 0;
- for (; n < e;) r += String.fromCharCode.apply(String, t.slice(n, n += 4096));
- return r
- }(n)
- }
-
- e.Buffer = l, e.SlowBuffer = function (t) {
- +t != t && (t = 0);
- return l.alloc(+t)
- }, e.INSPECT_MAX_BYTES = 50, l.TYPED_ARRAY_SUPPORT = void 0 !== t.TYPED_ARRAY_SUPPORT ? t.TYPED_ARRAY_SUPPORT : function () {
- try {
- var t = new Uint8Array(1);
- return t.__proto__ = {
- __proto__: Uint8Array.prototype, foo: function () {
- return 42
- }
- }, 42 === t.foo() && "function" == typeof t.subarray && 0 === t.subarray(1, 1).byteLength
- } catch (t) {
- return !1
- }
- }(), e.kMaxLength = a(), l.poolSize = 8192, l._augment = function (t) {
- return t.__proto__ = l.prototype, t
- }, l.from = function (t, e, r) {
- return u(null, t, e, r)
- }, l.TYPED_ARRAY_SUPPORT && (l.prototype.__proto__ = Uint8Array.prototype, l.__proto__ = Uint8Array, "undefined" != typeof Symbol && Symbol.species && l[Symbol.species] === l && Object.defineProperty(l, Symbol.species, {
- value: null,
- configurable: !0
- })), l.alloc = function (t, e, r) {
- return function (t, e, r, n) {
- return c(e), e <= 0 ? s(t, e) : void 0 !== r ? "string" == typeof n ? s(t, e).fill(r, n) : s(t, e).fill(r) : s(t, e)
- }(null, t, e, r)
- }, l.allocUnsafe = function (t) {
- return h(null, t)
- }, l.allocUnsafeSlow = function (t) {
- return h(null, t)
- }, l.isBuffer = function (t) {
- return !(null == t || !t._isBuffer)
- }, l.compare = function (t, e) {
- if (!l.isBuffer(t) || !l.isBuffer(e)) throw new TypeError("Arguments must be Buffers");
- if (t === e) return 0;
- for (var r = t.length, n = e.length, i = 0, o = Math.min(r, n); i < o; ++i) if (t[i] !== e[i]) {
- r = t[i], n = e[i];
- break
- }
- return r < n ? -1 : n < r ? 1 : 0
- }, l.isEncoding = function (t) {
- switch (String(t).toLowerCase()) {
- case"hex":
- case"utf8":
- case"utf-8":
- case"ascii":
- case"latin1":
- case"binary":
- case"base64":
- case"ucs2":
- case"ucs-2":
- case"utf16le":
- case"utf-16le":
- return !0;
- default:
- return !1
- }
- }, l.concat = function (t, e) {
- if (!o(t)) throw new TypeError('"list" argument must be an Array of Buffers');
- if (0 === t.length) return l.alloc(0);
- var r;
- if (void 0 === e) for (e = 0, r = 0; r < t.length; ++r) e += t[r].length;
- var n = l.allocUnsafe(e), i = 0;
- for (r = 0; r < t.length; ++r) {
- var a = t[r];
- if (!l.isBuffer(a)) throw new TypeError('"list" argument must be an Array of Buffers');
- a.copy(n, i), i += a.length
- }
- return n
- }, l.byteLength = d, l.prototype._isBuffer = !0, l.prototype.swap16 = function () {
- var t = this.length;
- if (t % 2 != 0) throw new RangeError("Buffer size must be a multiple of 16-bits");
- for (var e = 0; e < t; e += 2) y(this, e, e + 1);
- return this
- }, l.prototype.swap32 = function () {
- var t = this.length;
- if (t % 4 != 0) throw new RangeError("Buffer size must be a multiple of 32-bits");
- for (var e = 0; e < t; e += 4) y(this, e, e + 3), y(this, e + 1, e + 2);
- return this
- }, l.prototype.swap64 = function () {
- var t = this.length;
- if (t % 8 != 0) throw new RangeError("Buffer size must be a multiple of 64-bits");
- for (var e = 0; e < t; e += 8) y(this, e, e + 7), y(this, e + 1, e + 6), y(this, e + 2, e + 5), y(this, e + 3, e + 4);
- return this
- }, l.prototype.toString = function () {
- var t = 0 | this.length;
- return 0 === t ? "" : 0 === arguments.length ? C(this, 0, t) : g.apply(this, arguments)
- }, l.prototype.equals = function (t) {
- if (!l.isBuffer(t)) throw new TypeError("Argument must be a Buffer");
- return this === t || 0 === l.compare(this, t)
- }, l.prototype.inspect = function () {
- var t = "", r = e.INSPECT_MAX_BYTES;
- return this.length > 0 && (t = this.toString("hex", 0, r).match(/.{2}/g).join(" "), this.length > r && (t += " ... ")), "<Buffer " + t + ">"
- }, l.prototype.compare = function (t, e, r, n, i) {
- if (!l.isBuffer(t)) throw new TypeError("Argument must be a Buffer");
- if (void 0 === e && (e = 0), void 0 === r && (r = t ? t.length : 0), void 0 === n && (n = 0), void 0 === i && (i = this.length), e < 0 || r > t.length || n < 0 || i > this.length) throw new RangeError("out of range index");
- if (n >= i && e >= r) return 0;
- if (n >= i) return -1;
- if (e >= r) return 1;
- if (this === t) return 0;
- for (var o = (i >>>= 0) - (n >>>= 0), a = (r >>>= 0) - (e >>>= 0), s = Math.min(o, a), u = this.slice(n, i), c = t.slice(e, r), h = 0; h < s; ++h) if (u[h] !== c[h]) {
- o = u[h], a = c[h];
- break
- }
- return o < a ? -1 : a < o ? 1 : 0
- }, l.prototype.includes = function (t, e, r) {
- return -1 !== this.indexOf(t, e, r)
- }, l.prototype.indexOf = function (t, e, r) {
- return m(this, t, e, r, !0)
- }, l.prototype.lastIndexOf = function (t, e, r) {
- return m(this, t, e, r, !1)
- }, l.prototype.write = function (t, e, r, n) {
- if (void 0 === e) n = "utf8", r = this.length, e = 0; else if (void 0 === r && "string" == typeof e) n = e, r = this.length, e = 0; else {
- if (!isFinite(e)) throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");
- e |= 0, isFinite(r) ? (r |= 0, void 0 === n && (n = "utf8")) : (n = r, r = void 0)
- }
- var i = this.length - e;
- if ((void 0 === r || r > i) && (r = i), t.length > 0 && (r < 0 || e < 0) || e > this.length) throw new RangeError("Attempt to write outside buffer bounds");
- n || (n = "utf8");
- for (var o = !1; ;) switch (n) {
- case"hex":
- return _(this, t, e, r);
- case"utf8":
- case"utf-8":
- return b(this, t, e, r);
- case"ascii":
- return x(this, t, e, r);
- case"latin1":
- case"binary":
- return w(this, t, e, r);
- case"base64":
- return S(this, t, e, r);
- case"ucs2":
- case"ucs-2":
- case"utf16le":
- case"utf-16le":
- return E(this, t, e, r);
- default:
- if (o) throw new TypeError("Unknown encoding: " + n);
- n = ("" + n).toLowerCase(), o = !0
- }
- }, l.prototype.toJSON = function () {
- return {type: "Buffer", data: Array.prototype.slice.call(this._arr || this, 0)}
- };
-
- function O(t, e, r) {
- var n = "";
- r = Math.min(t.length, r);
- for (var i = e; i < r; ++i) n += String.fromCharCode(127 & t[i]);
- return n
- }
-
- function P(t, e, r) {
- var n = "";
- r = Math.min(t.length, r);
- for (var i = e; i < r; ++i) n += String.fromCharCode(t[i]);
- return n
- }
-
- function R(t, e, r) {
- var n = t.length;
- (!e || e < 0) && (e = 0), (!r || r < 0 || r > n) && (r = n);
- for (var i = "", o = e; o < r; ++o) i += G(t[o]);
- return i
- }
-
- function I(t, e, r) {
- for (var n = t.slice(e, r), i = "", o = 0; o < n.length; o += 2) i += String.fromCharCode(n[o] + 256 * n[o + 1]);
- return i
- }
-
- function L(t, e, r) {
- if (t % 1 != 0 || t < 0) throw new RangeError("offset is not uint");
- if (t + e > r) throw new RangeError("Trying to access beyond buffer length")
- }
-
- function M(t, e, r, n, i, o) {
- if (!l.isBuffer(t)) throw new TypeError('"buffer" argument must be a Buffer instance');
- if (e > i || e < o) throw new RangeError('"value" argument is out of bounds');
- if (r + n > t.length) throw new RangeError("Index out of range")
- }
-
- function F(t, e, r, n) {
- e < 0 && (e = 65535 + e + 1);
- for (var i = 0, o = Math.min(t.length - r, 2); i < o; ++i) t[r + i] = (e & 255 << 8 * (n ? i : 1 - i)) >>> 8 * (n ? i : 1 - i)
- }
-
- function A(t, e, r, n) {
- e < 0 && (e = 4294967295 + e + 1);
- for (var i = 0, o = Math.min(t.length - r, 4); i < o; ++i) t[r + i] = e >>> 8 * (n ? i : 3 - i) & 255
- }
-
- function k(t, e, r, n, i, o) {
- if (r + n > t.length) throw new RangeError("Index out of range");
- if (r < 0) throw new RangeError("Index out of range")
- }
-
- function j(t, e, r, n, o) {
- return o || k(t, 0, r, 4), i.write(t, e, r, n, 23, 4), r + 4
- }
-
- function N(t, e, r, n, o) {
- return o || k(t, 0, r, 8), i.write(t, e, r, n, 52, 8), r + 8
- }
-
- l.prototype.slice = function (t, e) {
- var r, n = this.length;
- if ((t = ~~t) < 0 ? (t += n) < 0 && (t = 0) : t > n && (t = n), (e = void 0 === e ? n : ~~e) < 0 ? (e += n) < 0 && (e = 0) : e > n && (e = n), e < t && (e = t), l.TYPED_ARRAY_SUPPORT) (r = this.subarray(t, e)).__proto__ = l.prototype; else {
- var i = e - t;
- r = new l(i, void 0);
- for (var o = 0; o < i; ++o) r[o] = this[o + t]
- }
- return r
- }, l.prototype.readUIntLE = function (t, e, r) {
- t |= 0, e |= 0, r || L(t, e, this.length);
- for (var n = this[t], i = 1, o = 0; ++o < e && (i *= 256);) n += this[t + o] * i;
- return n
- }, l.prototype.readUIntBE = function (t, e, r) {
- t |= 0, e |= 0, r || L(t, e, this.length);
- for (var n = this[t + --e], i = 1; e > 0 && (i *= 256);) n += this[t + --e] * i;
- return n
- }, l.prototype.readUInt8 = function (t, e) {
- return e || L(t, 1, this.length), this[t]
- }, l.prototype.readUInt16LE = function (t, e) {
- return e || L(t, 2, this.length), this[t] | this[t + 1] << 8
- }, l.prototype.readUInt16BE = function (t, e) {
- return e || L(t, 2, this.length), this[t] << 8 | this[t + 1]
- }, l.prototype.readUInt32LE = function (t, e) {
- return e || L(t, 4, this.length), (this[t] | this[t + 1] << 8 | this[t + 2] << 16) + 16777216 * this[t + 3]
- }, l.prototype.readUInt32BE = function (t, e) {
- return e || L(t, 4, this.length), 16777216 * this[t] + (this[t + 1] << 16 | this[t + 2] << 8 | this[t + 3])
- }, l.prototype.readIntLE = function (t, e, r) {
- t |= 0, e |= 0, r || L(t, e, this.length);
- for (var n = this[t], i = 1, o = 0; ++o < e && (i *= 256);) n += this[t + o] * i;
- return n >= (i *= 128) && (n -= Math.pow(2, 8 * e)), n
- }, l.prototype.readIntBE = function (t, e, r) {
- t |= 0, e |= 0, r || L(t, e, this.length);
- for (var n = e, i = 1, o = this[t + --n]; n > 0 && (i *= 256);) o += this[t + --n] * i;
- return o >= (i *= 128) && (o -= Math.pow(2, 8 * e)), o
- }, l.prototype.readInt8 = function (t, e) {
- return e || L(t, 1, this.length), 128 & this[t] ? -1 * (255 - this[t] + 1) : this[t]
- }, l.prototype.readInt16LE = function (t, e) {
- e || L(t, 2, this.length);
- var r = this[t] | this[t + 1] << 8;
- return 32768 & r ? 4294901760 | r : r
- }, l.prototype.readInt16BE = function (t, e) {
- e || L(t, 2, this.length);
- var r = this[t + 1] | this[t] << 8;
- return 32768 & r ? 4294901760 | r : r
- }, l.prototype.readInt32LE = function (t, e) {
- return e || L(t, 4, this.length), this[t] | this[t + 1] << 8 | this[t + 2] << 16 | this[t + 3] << 24
- }, l.prototype.readInt32BE = function (t, e) {
- return e || L(t, 4, this.length), this[t] << 24 | this[t + 1] << 16 | this[t + 2] << 8 | this[t + 3]
- }, l.prototype.readFloatLE = function (t, e) {
- return e || L(t, 4, this.length), i.read(this, t, !0, 23, 4)
- }, l.prototype.readFloatBE = function (t, e) {
- return e || L(t, 4, this.length), i.read(this, t, !1, 23, 4)
- }, l.prototype.readDoubleLE = function (t, e) {
- return e || L(t, 8, this.length), i.read(this, t, !0, 52, 8)
- }, l.prototype.readDoubleBE = function (t, e) {
- return e || L(t, 8, this.length), i.read(this, t, !1, 52, 8)
- }, l.prototype.writeUIntLE = function (t, e, r, n) {
- (t = +t, e |= 0, r |= 0, n) || M(this, t, e, r, Math.pow(2, 8 * r) - 1, 0);
- var i = 1, o = 0;
- for (this[e] = 255 & t; ++o < r && (i *= 256);) this[e + o] = t / i & 255;
- return e + r
- }, l.prototype.writeUIntBE = function (t, e, r, n) {
- (t = +t, e |= 0, r |= 0, n) || M(this, t, e, r, Math.pow(2, 8 * r) - 1, 0);
- var i = r - 1, o = 1;
- for (this[e + i] = 255 & t; --i >= 0 && (o *= 256);) this[e + i] = t / o & 255;
- return e + r
- }, l.prototype.writeUInt8 = function (t, e, r) {
- return t = +t, e |= 0, r || M(this, t, e, 1, 255, 0), l.TYPED_ARRAY_SUPPORT || (t = Math.floor(t)), this[e] = 255 & t, e + 1
- }, l.prototype.writeUInt16LE = function (t, e, r) {
- return t = +t, e |= 0, r || M(this, t, e, 2, 65535, 0), l.TYPED_ARRAY_SUPPORT ? (this[e] = 255 & t, this[e + 1] = t >>> 8) : F(this, t, e, !0), e + 2
- }, l.prototype.writeUInt16BE = function (t, e, r) {
- return t = +t, e |= 0, r || M(this, t, e, 2, 65535, 0), l.TYPED_ARRAY_SUPPORT ? (this[e] = t >>> 8, this[e + 1] = 255 & t) : F(this, t, e, !1), e + 2
- }, l.prototype.writeUInt32LE = function (t, e, r) {
- return t = +t, e |= 0, r || M(this, t, e, 4, 4294967295, 0), l.TYPED_ARRAY_SUPPORT ? (this[e + 3] = t >>> 24, this[e + 2] = t >>> 16, this[e + 1] = t >>> 8, this[e] = 255 & t) : A(this, t, e, !0), e + 4
- }, l.prototype.writeUInt32BE = function (t, e, r) {
- return t = +t, e |= 0, r || M(this, t, e, 4, 4294967295, 0), l.TYPED_ARRAY_SUPPORT ? (this[e] = t >>> 24, this[e + 1] = t >>> 16, this[e + 2] = t >>> 8, this[e + 3] = 255 & t) : A(this, t, e, !1), e + 4
- }, l.prototype.writeIntLE = function (t, e, r, n) {
- if (t = +t, e |= 0, !n) {
- var i = Math.pow(2, 8 * r - 1);
- M(this, t, e, r, i - 1, -i)
- }
- var o = 0, a = 1, s = 0;
- for (this[e] = 255 & t; ++o < r && (a *= 256);) t < 0 && 0 === s && 0 !== this[e + o - 1] && (s = 1), this[e + o] = (t / a >> 0) - s & 255;
- return e + r
- }, l.prototype.writeIntBE = function (t, e, r, n) {
- if (t = +t, e |= 0, !n) {
- var i = Math.pow(2, 8 * r - 1);
- M(this, t, e, r, i - 1, -i)
- }
- var o = r - 1, a = 1, s = 0;
- for (this[e + o] = 255 & t; --o >= 0 && (a *= 256);) t < 0 && 0 === s && 0 !== this[e + o + 1] && (s = 1), this[e + o] = (t / a >> 0) - s & 255;
- return e + r
- }, l.prototype.writeInt8 = function (t, e, r) {
- return t = +t, e |= 0, r || M(this, t, e, 1, 127, -128), l.TYPED_ARRAY_SUPPORT || (t = Math.floor(t)), t < 0 && (t = 255 + t + 1), this[e] = 255 & t, e + 1
- }, l.prototype.writeInt16LE = function (t, e, r) {
- return t = +t, e |= 0, r || M(this, t, e, 2, 32767, -32768), l.TYPED_ARRAY_SUPPORT ? (this[e] = 255 & t, this[e + 1] = t >>> 8) : F(this, t, e, !0), e + 2
- }, l.prototype.writeInt16BE = function (t, e, r) {
- return t = +t, e |= 0, r || M(this, t, e, 2, 32767, -32768), l.TYPED_ARRAY_SUPPORT ? (this[e] = t >>> 8, this[e + 1] = 255 & t) : F(this, t, e, !1), e + 2
- }, l.prototype.writeInt32LE = function (t, e, r) {
- return t = +t, e |= 0, r || M(this, t, e, 4, 2147483647, -2147483648), l.TYPED_ARRAY_SUPPORT ? (this[e] = 255 & t, this[e + 1] = t >>> 8, this[e + 2] = t >>> 16, this[e + 3] = t >>> 24) : A(this, t, e, !0), e + 4
- }, l.prototype.writeInt32BE = function (t, e, r) {
- return t = +t, e |= 0, r || M(this, t, e, 4, 2147483647, -2147483648), t < 0 && (t = 4294967295 + t + 1), l.TYPED_ARRAY_SUPPORT ? (this[e] = t >>> 24, this[e + 1] = t >>> 16, this[e + 2] = t >>> 8, this[e + 3] = 255 & t) : A(this, t, e, !1), e + 4
- }, l.prototype.writeFloatLE = function (t, e, r) {
- return j(this, t, e, !0, r)
- }, l.prototype.writeFloatBE = function (t, e, r) {
- return j(this, t, e, !1, r)
- }, l.prototype.writeDoubleLE = function (t, e, r) {
- return N(this, t, e, !0, r)
- }, l.prototype.writeDoubleBE = function (t, e, r) {
- return N(this, t, e, !1, r)
- }, l.prototype.copy = function (t, e, r, n) {
- if (r || (r = 0), n || 0 === n || (n = this.length), e >= t.length && (e = t.length), e || (e = 0), n > 0 && n < r && (n = r), n === r) return 0;
- if (0 === t.length || 0 === this.length) return 0;
- if (e < 0) throw new RangeError("targetStart out of bounds");
- if (r < 0 || r >= this.length) throw new RangeError("sourceStart out of bounds");
- if (n < 0) throw new RangeError("sourceEnd out of bounds");
- n > this.length && (n = this.length), t.length - e < n - r && (n = t.length - e + r);
- var i, o = n - r;
- if (this === t && r < e && e < n) for (i = o - 1; i >= 0; --i) t[i + e] = this[i + r]; else if (o < 1e3 || !l.TYPED_ARRAY_SUPPORT) for (i = 0; i < o; ++i) t[i + e] = this[i + r]; else Uint8Array.prototype.set.call(t, this.subarray(r, r + o), e);
- return o
- }, l.prototype.fill = function (t, e, r, n) {
- if ("string" == typeof t) {
- if ("string" == typeof e ? (n = e, e = 0, r = this.length) : "string" == typeof r && (n = r, r = this.length), 1 === t.length) {
- var i = t.charCodeAt(0);
- i < 256 && (t = i)
- }
- if (void 0 !== n && "string" != typeof n) throw new TypeError("encoding must be a string");
- if ("string" == typeof n && !l.isEncoding(n)) throw new TypeError("Unknown encoding: " + n)
- } else "number" == typeof t && (t &= 255);
- if (e < 0 || this.length < e || this.length < r) throw new RangeError("Out of range index");
- if (r <= e) return this;
- var o;
- if (e >>>= 0, r = void 0 === r ? this.length : r >>> 0, t || (t = 0), "number" == typeof t) for (o = e; o < r; ++o) this[o] = t; else {
- var a = l.isBuffer(t) ? t : z(new l(t, n).toString()), s = a.length;
- for (o = 0; o < r - e; ++o) this[o + e] = a[o % s]
- }
- return this
- };
- var D = /[^+\/0-9A-Za-z-_]/g;
-
- function G(t) {
- return t < 16 ? "0" + t.toString(16) : t.toString(16)
- }
-
- function z(t, e) {
- var r;
- e = e || 1 / 0;
- for (var n = t.length, i = null, o = [], a = 0; a < n; ++a) {
- if ((r = t.charCodeAt(a)) > 55295 && r < 57344) {
- if (!i) {
- if (r > 56319) {
- (e -= 3) > -1 && o.push(239, 191, 189);
- continue
- }
- if (a + 1 === n) {
- (e -= 3) > -1 && o.push(239, 191, 189);
- continue
- }
- i = r;
- continue
- }
- if (r < 56320) {
- (e -= 3) > -1 && o.push(239, 191, 189), i = r;
- continue
- }
- r = 65536 + (i - 55296 << 10 | r - 56320)
- } else i && (e -= 3) > -1 && o.push(239, 191, 189);
- if (i = null, r < 128) {
- if ((e -= 1) < 0) break;
- o.push(r)
- } else if (r < 2048) {
- if ((e -= 2) < 0) break;
- o.push(r >> 6 | 192, 63 & r | 128)
- } else if (r < 65536) {
- if ((e -= 3) < 0) break;
- o.push(r >> 12 | 224, r >> 6 & 63 | 128, 63 & r | 128)
- } else {
- if (!(r < 1114112)) throw new Error("Invalid code point");
- if ((e -= 4) < 0) break;
- o.push(r >> 18 | 240, r >> 12 & 63 | 128, r >> 6 & 63 | 128, 63 & r | 128)
- }
- }
- return o
- }
-
- function U(t) {
- return n.toByteArray(function (t) {
- if ((t = function (t) {
- return t.trim ? t.trim() : t.replace(/^\s+|\s+$/g, "")
- }(t).replace(D, "")).length < 2) return "";
- for (; t.length % 4 != 0;) t += "=";
- return t
- }(t))
- }
-
- function B(t, e, r, n) {
- for (var i = 0; i < n && !(i + r >= e.length || i >= t.length); ++i) e[i + r] = t[i];
- return i
- }
- }).call(this, r(4))
- }, function (t, e, r) {
- "use strict";
- e.byteLength = function (t) {
- var e = u(t), r = e[0], n = e[1];
- return 3 * (r + n) / 4 - n
- }, e.toByteArray = function (t) {
- var e, r, n = u(t), a = n[0], s = n[1], l = new o(function (t, e, r) {
- return 3 * (e + r) / 4 - r
- }(0, a, s)), c = 0, h = s > 0 ? a - 4 : a;
- for (r = 0; r < h; r += 4) e = i[t.charCodeAt(r)] << 18 | i[t.charCodeAt(r + 1)] << 12 | i[t.charCodeAt(r + 2)] << 6 | i[t.charCodeAt(r + 3)], l[c++] = e >> 16 & 255, l[c++] = e >> 8 & 255, l[c++] = 255 & e;
- 2 === s && (e = i[t.charCodeAt(r)] << 2 | i[t.charCodeAt(r + 1)] >> 4, l[c++] = 255 & e);
- 1 === s && (e = i[t.charCodeAt(r)] << 10 | i[t.charCodeAt(r + 1)] << 4 | i[t.charCodeAt(r + 2)] >> 2, l[c++] = e >> 8 & 255, l[c++] = 255 & e);
- return l
- }, e.fromByteArray = function (t) {
- for (var e, r = t.length, i = r % 3, o = [], a = 0, s = r - i; a < s; a += 16383) o.push(c(t, a, a + 16383 > s ? s : a + 16383));
- 1 === i ? (e = t[r - 1], o.push(n[e >> 2] + n[e << 4 & 63] + "==")) : 2 === i && (e = (t[r - 2] << 8) + t[r - 1], o.push(n[e >> 10] + n[e >> 4 & 63] + n[e << 2 & 63] + "="));
- return o.join("")
- };
- for (var n = [], i = [], o = "undefined" != typeof Uint8Array ? Uint8Array : Array, a = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", s = 0, l = a.length; s < l; ++s) n[s] = a[s], i[a.charCodeAt(s)] = s;
-
- function u(t) {
- var e = t.length;
- if (e % 4 > 0) throw new Error("Invalid string. Length must be a multiple of 4");
- var r = t.indexOf("=");
- return -1 === r && (r = e), [r, r === e ? 0 : 4 - r % 4]
- }
-
- function c(t, e, r) {
- for (var i, o, a = [], s = e; s < r; s += 3) i = (t[s] << 16 & 16711680) + (t[s + 1] << 8 & 65280) + (255 & t[s + 2]), a.push(n[(o = i) >> 18 & 63] + n[o >> 12 & 63] + n[o >> 6 & 63] + n[63 & o]);
- return a.join("")
- }
-
- i["-".charCodeAt(0)] = 62, i["_".charCodeAt(0)] = 63
- }, function (t, e) {
- var r = {}.toString;
- t.exports = Array.isArray || function (t) {
- return "[object Array]" == r.call(t)
- }
- }, function (t, e, r) {
- "use strict";
-
- function n() {
- return function () {
- throw new Error("Unimplemented abstract method.")
- }()
- }
-
- r.r(e);
- var i = 0;
-
- function o(t) {
- return t.ol_uid || (t.ol_uid = String(++i))
- }
-
- var a, s = (a = function (t, e) {
- return (a = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(t, e)
- }, function (t, e) {
- function r() {
- this.constructor = t
- }
-
- a(t, e), t.prototype = null === e ? Object.create(e) : (r.prototype = e.prototype, new r)
- }), l = function (t) {
- function e(e) {
- var r = this,
- n = "Assertion failed. See https://openlayers.org/en/" + ("v" + "6.5.0".split("-")[0]) + "/doc/errors/#" + e + " for details.";
- return (r = t.call(this, n) || this).code = e, r.name = "AssertionError", r.message = n, r
- }
-
- return s(e, t), e
- }(Error);
-
- function u(t) {
- t.stopPropagation()
- }
-
- var c = function () {
- function t(t) {
- this.propagationStopped, this.type = t, this.target = null
- }
-
- return t.prototype.preventDefault = function () {
- this.propagationStopped = !0
- }, t.prototype.stopPropagation = function () {
- this.propagationStopped = !0
- }, t
- }(), h = "propertychange", p = function () {
- function t() {
- this.disposed = !1
- }
-
- return t.prototype.dispose = function () {
- this.disposed || (this.disposed = !0, this.disposeInternal())
- }, t.prototype.disposeInternal = function () {
- }, t
- }();
-
- function f(t, e, r) {
- for (var n, i, o = r || d, a = 0, s = t.length, l = !1; a < s;) (i = +o(t[n = a + (s - a >> 1)], e)) < 0 ? a = n + 1 : (s = n, l = !i);
- return l ? a : ~a
- }
-
- function d(t, e) {
- return t > e ? 1 : t < e ? -1 : 0
- }
-
- function g(t, e) {
- return t.indexOf(e) >= 0
- }
-
- function y(t, e, r) {
- var n = t.length;
- if (t[0] <= e) return 0;
- if (e <= t[n - 1]) return n - 1;
- var i = void 0;
- if (r > 0) {
- for (i = 1; i < n; ++i) if (t[i] < e) return i - 1
- } else if (r < 0) {
- for (i = 1; i < n; ++i) if (t[i] <= e) return i
- } else for (i = 1; i < n; ++i) {
- if (t[i] == e) return i;
- if (t[i] < e) return t[i - 1] - e < e - t[i] ? i - 1 : i
- }
- return n - 1
- }
-
- function m(t, e, r) {
- for (; e < r;) {
- var n = t[e];
- t[e] = t[r], t[r] = n, ++e, --r
- }
- }
-
- function v(t, e) {
- for (var r = Array.isArray(e) ? e : [e], n = r.length, i = 0; i < n; i++) t[t.length] = r[i]
- }
-
- function _(t, e) {
- for (var r, n = t.length >>> 0, i = 0; i < n; i++) if (e(r = t[i], i, t)) return r;
- return null
- }
-
- function b(t, e) {
- var r = t.length;
- if (r !== e.length) return !1;
- for (var n = 0; n < r; n++) if (t[n] !== e[n]) return !1;
- return !0
- }
-
- function x(t, e) {
- var r;
- return !t.every((function (n, i) {
- return r = i, !e(n, i, t)
- })) ? r : -1
- }
-
- function w(t, e, r) {
- var n = e || d;
- return t.every((function (e, i) {
- if (0 === i) return !0;
- var o = n(t[i - 1], e);
- return !(o > 0 || r && 0 === o)
- }))
- }
-
- function S() {
- return !0
- }
-
- function E() {
- return !1
- }
-
- function T() {
- }
-
- function C(t) {
- var e, r, n, i = !1;
- return function () {
- var o = Array.prototype.slice.call(arguments);
- return i && this === n && b(o, r) || (i = !0, n = this, r = o, e = t.apply(this, arguments)), e
- }
- }
-
- var O = "function" == typeof Object.assign ? Object.assign : function (t, e) {
- if (null == t) throw new TypeError("Cannot convert undefined or null to object");
- for (var r = Object(t), n = 1, i = arguments.length; n < i; ++n) {
- var o = arguments[n];
- if (null != o) for (var a in o) o.hasOwnProperty(a) && (r[a] = o[a])
- }
- return r
- };
-
- function P(t) {
- for (var e in t) delete t[e]
- }
-
- var R = "function" == typeof Object.values ? Object.values : function (t) {
- var e = [];
- for (var r in t) e.push(t[r]);
- return e
- };
-
- function I(t) {
- var e;
- for (e in t) return !1;
- return !e
- }
-
- var L = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), M = function (t) {
- function e(e) {
- var r = t.call(this) || this;
- return r.eventTarget_ = e, r.pendingRemovals_ = null, r.dispatching_ = null, r.listeners_ = null, r
- }
-
- return L(e, t), e.prototype.addEventListener = function (t, e) {
- if (t && e) {
- var r = this.listeners_ || (this.listeners_ = {}), n = r[t] || (r[t] = []);
- -1 === n.indexOf(e) && n.push(e)
- }
- }, e.prototype.dispatchEvent = function (t) {
- var e = "string" == typeof t ? new c(t) : t, r = e.type;
- e.target || (e.target = this.eventTarget_ || this);
- var n, i = this.listeners_ && this.listeners_[r];
- if (i) {
- var o = this.dispatching_ || (this.dispatching_ = {}),
- a = this.pendingRemovals_ || (this.pendingRemovals_ = {});
- r in o || (o[r] = 0, a[r] = 0), ++o[r];
- for (var s = 0, l = i.length; s < l; ++s) if (!1 === (n = "handleEvent" in i[s] ? i[s].handleEvent(e) : i[s].call(this, e)) || e.propagationStopped) {
- n = !1;
- break
- }
- if (--o[r], 0 === o[r]) {
- var u = a[r];
- for (delete a[r]; u--;) this.removeEventListener(r, T);
- delete o[r]
- }
- return n
- }
- }, e.prototype.disposeInternal = function () {
- this.listeners_ && P(this.listeners_)
- }, e.prototype.getListeners = function (t) {
- return this.listeners_ && this.listeners_[t] || void 0
- }, e.prototype.hasListener = function (t) {
- return !!this.listeners_ && (t ? t in this.listeners_ : Object.keys(this.listeners_).length > 0)
- }, e.prototype.removeEventListener = function (t, e) {
- var r = this.listeners_ && this.listeners_[t];
- if (r) {
- var n = r.indexOf(e);
- -1 !== n && (this.pendingRemovals_ && t in this.pendingRemovals_ ? (r[n] = T, ++this.pendingRemovals_[t]) : (r.splice(n, 1), 0 === r.length && delete this.listeners_[t]))
- }
- }, e
- }(p), F = "change", A = "error", k = "clear", j = "contextmenu", N = "click", D = "dblclick", G = "dragenter",
- z = "dragover", U = "drop", B = "keydown", V = "keypress", Y = "load", W = "resize", q = "touchmove", X = "wheel";
-
- function Z(t, e, r, n, i) {
- if (n && n !== t && (r = r.bind(n)), i) {
- var o = r;
- r = function () {
- t.removeEventListener(e, r), o.apply(this, arguments)
- }
- }
- var a = {target: t, type: e, listener: r};
- return t.addEventListener(e, r), a
- }
-
- function K(t, e, r, n) {
- return Z(t, e, r, n, !0)
- }
-
- function H(t) {
- t && t.target && (t.target.removeEventListener(t.type, t.listener), P(t))
- }
-
- var $ = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }();
-
- function J(t) {
- if (Array.isArray(t)) for (var e = 0, r = t.length; e < r; ++e) H(t[e]); else H(t)
- }
-
- var Q = function (t) {
- function e() {
- var e = t.call(this) || this;
- return e.revision_ = 0, e
- }
-
- return $(e, t), e.prototype.changed = function () {
- ++this.revision_, this.dispatchEvent(F)
- }, e.prototype.getRevision = function () {
- return this.revision_
- }, e.prototype.on = function (t, e) {
- if (Array.isArray(t)) {
- for (var r = t.length, n = new Array(r), i = 0; i < r; ++i) n[i] = Z(this, t[i], e);
- return n
- }
- return Z(this, t, e)
- }, e.prototype.once = function (t, e) {
- var r;
- if (Array.isArray(t)) {
- var n = t.length;
- r = new Array(n);
- for (var i = 0; i < n; ++i) r[i] = K(this, t[i], e)
- } else r = K(this, t, e);
- return e.ol_key = r, r
- }, e.prototype.un = function (t, e) {
- var r = e.ol_key;
- if (r) J(r); else if (Array.isArray(t)) for (var n = 0, i = t.length; n < i; ++n) this.removeEventListener(t[n], e); else this.removeEventListener(t, e)
- }, e
- }(M), tt = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), et = function (t) {
- function e(e, r, n) {
- var i = t.call(this, e) || this;
- return i.key = r, i.oldValue = n, i
- }
-
- return tt(e, t), e
- }(c), rt = function (t) {
- function e(e) {
- var r = t.call(this) || this;
- return o(r), r.values_ = null, void 0 !== e && r.setProperties(e), r
- }
-
- return tt(e, t), e.prototype.get = function (t) {
- var e;
- return this.values_ && this.values_.hasOwnProperty(t) && (e = this.values_[t]), e
- }, e.prototype.getKeys = function () {
- return this.values_ && Object.keys(this.values_) || []
- }, e.prototype.getProperties = function () {
- return this.values_ && O({}, this.values_) || {}
- }, e.prototype.hasProperties = function () {
- return !!this.values_
- }, e.prototype.notify = function (t, e) {
- var r;
- r = it(t), this.dispatchEvent(new et(r, t, e)), r = h, this.dispatchEvent(new et(r, t, e))
- }, e.prototype.set = function (t, e, r) {
- var n = this.values_ || (this.values_ = {});
- if (r) n[t] = e; else {
- var i = n[t];
- n[t] = e, i !== e && this.notify(t, i)
- }
- }, e.prototype.setProperties = function (t, e) {
- for (var r in t) this.set(r, t[r], e)
- }, e.prototype.applyProperties = function (t) {
- t.values_ && O(this.values_ || (this.values_ = {}), t.values_)
- }, e.prototype.unset = function (t, e) {
- if (this.values_ && t in this.values_) {
- var r = this.values_[t];
- delete this.values_[t], I(this.values_) && (this.values_ = null), e || this.notify(t, r)
- }
- }, e
- }(Q), nt = {};
-
- function it(t) {
- return nt.hasOwnProperty(t) ? nt[t] : nt[t] = "change:" + t
- }
-
- var ot = rt, at = "add", st = "remove", lt = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), ut = "length", ct = function (t) {
- function e(e, r, n) {
- var i = t.call(this, e) || this;
- return i.element = r, i.index = n, i
- }
-
- return lt(e, t), e
- }(c), ht = function (t) {
- function e(e, r) {
- var n = t.call(this) || this, i = r || {};
- if (n.unique_ = !!i.unique, n.array_ = e || [], n.unique_) for (var o = 0, a = n.array_.length; o < a; ++o) n.assertUnique_(n.array_[o], o);
- return n.updateLength_(), n
- }
-
- return lt(e, t), e.prototype.clear = function () {
- for (; this.getLength() > 0;) this.pop()
- }, e.prototype.extend = function (t) {
- for (var e = 0, r = t.length; e < r; ++e) this.push(t[e]);
- return this
- }, e.prototype.forEach = function (t) {
- for (var e = this.array_, r = 0, n = e.length; r < n; ++r) t(e[r], r, e)
- }, e.prototype.getArray = function () {
- return this.array_
- }, e.prototype.item = function (t) {
- return this.array_[t]
- }, e.prototype.getLength = function () {
- return this.get(ut)
- }, e.prototype.insertAt = function (t, e) {
- this.unique_ && this.assertUnique_(e), this.array_.splice(t, 0, e), this.updateLength_(), this.dispatchEvent(new ct(at, e, t))
- }, e.prototype.pop = function () {
- return this.removeAt(this.getLength() - 1)
- }, e.prototype.push = function (t) {
- this.unique_ && this.assertUnique_(t);
- var e = this.getLength();
- return this.insertAt(e, t), this.getLength()
- }, e.prototype.remove = function (t) {
- for (var e = this.array_, r = 0, n = e.length; r < n; ++r) if (e[r] === t) return this.removeAt(r)
- }, e.prototype.removeAt = function (t) {
- var e = this.array_[t];
- return this.array_.splice(t, 1), this.updateLength_(), this.dispatchEvent(new ct(st, e, t)), e
- }, e.prototype.setAt = function (t, e) {
- var r = this.getLength();
- if (t < r) {
- this.unique_ && this.assertUnique_(e, t);
- var n = this.array_[t];
- this.array_[t] = e, this.dispatchEvent(new ct(st, n, t)), this.dispatchEvent(new ct(at, e, t))
- } else {
- for (var i = r; i < t; ++i) this.insertAt(i, void 0);
- this.insertAt(t, e)
- }
- }, e.prototype.updateLength_ = function () {
- this.set(ut, this.array_.length)
- }, e.prototype.assertUnique_ = function (t, e) {
- for (var r = 0, n = this.array_.length; r < n; ++r) if (this.array_[r] === t && r !== e) throw new l(58)
- }, e
- }(ot);
-
- function pt(t, e) {
- if (!t) throw new l(e)
- }
-
- var ft = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }();
-
- function dt(t) {
- return "function" == typeof t ? t : (Array.isArray(t) ? e = t : (pt("function" == typeof t.getZIndex, 41), e = [t]), function () {
- return e
- });
- var e
- }
-
- var gt = function (t) {
- function e(e) {
- var r = t.call(this) || this;
- if (r.id_ = void 0, r.geometryName_ = "geometry", r.style_ = null, r.styleFunction_ = void 0, r.geometryChangeKey_ = null, r.addEventListener(it(r.geometryName_), r.handleGeometryChanged_), e) if ("function" == typeof e.getSimplifiedGeometry) {
- var n = e;
- r.setGeometry(n)
- } else {
- var i = e;
- r.setProperties(i)
- }
- return r
- }
-
- return ft(e, t), e.prototype.clone = function () {
- var t = new e(this.hasProperties() ? this.getProperties() : null);
- t.setGeometryName(this.getGeometryName());
- var r = this.getGeometry();
- r && t.setGeometry(r.clone());
- var n = this.getStyle();
- return n && t.setStyle(n), t
- }, e.prototype.getGeometry = function () {
- return this.get(this.geometryName_)
- }, e.prototype.getId = function () {
- return this.id_
- }, e.prototype.getGeometryName = function () {
- return this.geometryName_
- }, e.prototype.getStyle = function () {
- return this.style_
- }, e.prototype.getStyleFunction = function () {
- return this.styleFunction_
- }, e.prototype.handleGeometryChange_ = function () {
- this.changed()
- }, e.prototype.handleGeometryChanged_ = function () {
- this.geometryChangeKey_ && (H(this.geometryChangeKey_), this.geometryChangeKey_ = null);
- var t = this.getGeometry();
- t && (this.geometryChangeKey_ = Z(t, F, this.handleGeometryChange_, this)), this.changed()
- }, e.prototype.setGeometry = function (t) {
- this.set(this.geometryName_, t)
- }, e.prototype.setStyle = function (t) {
- this.style_ = t, this.styleFunction_ = t ? dt(t) : void 0, this.changed()
- }, e.prototype.setId = function (t) {
- this.id_ = t, this.changed()
- }, e.prototype.setGeometryName = function (t) {
- this.removeEventListener(it(this.geometryName_), this.handleGeometryChanged_), this.geometryName_ = t, this.addEventListener(it(this.geometryName_), this.handleGeometryChanged_), this.handleGeometryChanged_()
- }, e
- }(ot), yt = "XY", mt = "XYZ", vt = "XYM", _t = "XYZM", bt = {
- POINT: "Point",
- LINE_STRING: "LineString",
- LINEAR_RING: "LinearRing",
- POLYGON: "Polygon",
- MULTI_POINT: "MultiPoint",
- MULTI_LINE_STRING: "MultiLineString",
- MULTI_POLYGON: "MultiPolygon",
- GEOMETRY_COLLECTION: "GeometryCollection",
- CIRCLE: "Circle"
- },
- xt = {DEGREES: "degrees", FEET: "ft", METERS: "m", PIXELS: "pixels", TILE_PIXELS: "tile-pixels", USFEET: "us-ft"},
- wt = {};
- wt[xt.DEGREES] = 2 * Math.PI * 6370997 / 360, wt[xt.FEET] = .3048, wt[xt.METERS] = 1, wt[xt.USFEET] = 1200 / 3937;
- var St = xt, Et = new Array(6);
-
- function Tt() {
- return [1, 0, 0, 1, 0, 0]
- }
-
- function Ct(t) {
- return Pt(t, 1, 0, 0, 1, 0, 0)
- }
-
- function Ot(t, e) {
- var r = t[0], n = t[1], i = t[2], o = t[3], a = t[4], s = t[5], l = e[0], u = e[1], c = e[2], h = e[3], p = e[4],
- f = e[5];
- return t[0] = r * l + i * u, t[1] = n * l + o * u, t[2] = r * c + i * h, t[3] = n * c + o * h, t[4] = r * p + i * f + a, t[5] = n * p + o * f + s, t
- }
-
- function Pt(t, e, r, n, i, o, a) {
- return t[0] = e, t[1] = r, t[2] = n, t[3] = i, t[4] = o, t[5] = a, t
- }
-
- function Rt(t, e) {
- return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t[4] = e[4], t[5] = e[5], t
- }
-
- function It(t, e) {
- var r = e[0], n = e[1];
- return e[0] = t[0] * r + t[2] * n + t[4], e[1] = t[1] * r + t[3] * n + t[5], e
- }
-
- function Lt(t, e) {
- var r = Math.cos(e), n = Math.sin(e);
- return Ot(t, Pt(Et, r, n, -n, r, 0, 0))
- }
-
- function Mt(t, e, r) {
- return Ot(t, Pt(Et, e, 0, 0, r, 0, 0))
- }
-
- function Ft(t, e, r) {
- return Pt(t, e, 0, 0, r, 0, 0)
- }
-
- function At(t, e, r) {
- return Ot(t, Pt(Et, 1, 0, 0, 1, e, r))
- }
-
- function kt(t, e, r, n, i, o, a, s) {
- var l = Math.sin(o), u = Math.cos(o);
- return t[0] = n * u, t[1] = i * l, t[2] = -n * l, t[3] = i * u, t[4] = a * n * u - s * n * l + e, t[5] = a * i * l + s * i * u + r, t
- }
-
- function jt(t, e) {
- var r = Nt(e);
- pt(0 !== r, 32);
- var n = e[0], i = e[1], o = e[2], a = e[3], s = e[4], l = e[5];
- return t[0] = a / r, t[1] = -i / r, t[2] = -o / r, t[3] = n / r, t[4] = (o * l - a * s) / r, t[5] = -(n * l - i * s) / r, t
- }
-
- function Nt(t) {
- return t[0] * t[3] - t[1] * t[2]
- }
-
- function Dt(t) {
- return "matrix(" + t.join(", ") + ")"
- }
-
- var Gt = "bottom-left", zt = "bottom-right", Ut = "top-left", Bt = "top-right", Vt = 0, Yt = 1, Wt = 2, qt = 4,
- Xt = 8, Zt = 16;
-
- function Kt(t) {
- for (var e = ne(), r = 0, n = t.length; r < n; ++r) pe(e, t[r]);
- return e
- }
-
- function Ht(t, e, r) {
- return r ? (r[0] = t[0] - e, r[1] = t[1] - e, r[2] = t[2] + e, r[3] = t[3] + e, r) : [t[0] - e, t[1] - e, t[2] + e, t[3] + e]
- }
-
- function $t(t, e) {
- return e ? (e[0] = t[0], e[1] = t[1], e[2] = t[2], e[3] = t[3], e) : t.slice()
- }
-
- function Jt(t, e, r) {
- var n, i;
- return (n = e < t[0] ? t[0] - e : t[2] < e ? e - t[2] : 0) * n + (i = r < t[1] ? t[1] - r : t[3] < r ? r - t[3] : 0) * i
- }
-
- function Qt(t, e) {
- return ee(t, e[0], e[1])
- }
-
- function te(t, e) {
- return t[0] <= e[0] && e[2] <= t[2] && t[1] <= e[1] && e[3] <= t[3]
- }
-
- function ee(t, e, r) {
- return t[0] <= e && e <= t[2] && t[1] <= r && r <= t[3]
- }
-
- function re(t, e) {
- var r = t[0], n = t[1], i = t[2], o = t[3], a = e[0], s = e[1], l = Vt;
- return a < r ? l |= Zt : a > i && (l |= qt), s < n ? l |= Xt : s > o && (l |= Wt), l === Vt && (l = Yt), l
- }
-
- function ne() {
- return [1 / 0, 1 / 0, -1 / 0, -1 / 0]
- }
-
- function ie(t, e, r, n, i) {
- return i ? (i[0] = t, i[1] = e, i[2] = r, i[3] = n, i) : [t, e, r, n]
- }
-
- function oe(t) {
- return ie(1 / 0, 1 / 0, -1 / 0, -1 / 0, t)
- }
-
- function ae(t, e) {
- var r = t[0], n = t[1];
- return ie(r, n, r, n, e)
- }
-
- function se(t, e) {
- return fe(oe(e), t)
- }
-
- function le(t, e, r, n, i) {
- return de(oe(i), t, e, r, n)
- }
-
- function ue(t, e) {
- return t[0] == e[0] && t[2] == e[2] && t[1] == e[1] && t[3] == e[3]
- }
-
- function ce(t, e, r) {
- return Math.abs(t[0] - e[0]) < r && Math.abs(t[2] - e[2]) < r && Math.abs(t[1] - e[1]) < r && Math.abs(t[3] - e[3]) < r
- }
-
- function he(t, e) {
- return e[0] < t[0] && (t[0] = e[0]), e[2] > t[2] && (t[2] = e[2]), e[1] < t[1] && (t[1] = e[1]), e[3] > t[3] && (t[3] = e[3]), t
- }
-
- function pe(t, e) {
- e[0] < t[0] && (t[0] = e[0]), e[0] > t[2] && (t[2] = e[0]), e[1] < t[1] && (t[1] = e[1]), e[1] > t[3] && (t[3] = e[1])
- }
-
- function fe(t, e) {
- for (var r = 0, n = e.length; r < n; ++r) pe(t, e[r]);
- return t
- }
-
- function de(t, e, r, n, i) {
- for (; r < n; r += i) ye(t, e[r], e[r + 1]);
- return t
- }
-
- function ge(t, e) {
- for (var r = 0, n = e.length; r < n; ++r) fe(t, e[r]);
- return t
- }
-
- function ye(t, e, r) {
- t[0] = Math.min(t[0], e), t[1] = Math.min(t[1], r), t[2] = Math.max(t[2], e), t[3] = Math.max(t[3], r)
- }
-
- function me(t, e) {
- var r;
- return (r = e(_e(t))) || (r = e(be(t))) || (r = e(Oe(t))) ? r : (r = e(Ce(t))) || !1
- }
-
- function ve(t) {
- var e = 0;
- return Ie(t) || (e = Pe(t) * Ee(t)), e
- }
-
- function _e(t) {
- return [t[0], t[1]]
- }
-
- function be(t) {
- return [t[2], t[1]]
- }
-
- function xe(t) {
- return [(t[0] + t[2]) / 2, (t[1] + t[3]) / 2]
- }
-
- function we(t, e) {
- var r;
- return e === Gt ? r = _e(t) : e === zt ? r = be(t) : e === Ut ? r = Ce(t) : e === Bt ? r = Oe(t) : pt(!1, 13), r
- }
-
- function Se(t, e, r, n, i) {
- var o = e * n[0] / 2, a = e * n[1] / 2, s = Math.cos(r), l = Math.sin(r), u = o * s, c = o * l, h = a * s,
- p = a * l, f = t[0], d = t[1], g = f - u + p, y = f - u - p, m = f + u - p, v = f + u + p, _ = d - c - h,
- b = d - c + h, x = d + c + h, w = d + c - h;
- return ie(Math.min(g, y, m, v), Math.min(_, b, x, w), Math.max(g, y, m, v), Math.max(_, b, x, w), i)
- }
-
- function Ee(t) {
- return t[3] - t[1]
- }
-
- function Te(t, e, r) {
- var n = r || [1 / 0, 1 / 0, -1 / 0, -1 / 0];
- return Re(t, e) ? (t[0] > e[0] ? n[0] = t[0] : n[0] = e[0], t[1] > e[1] ? n[1] = t[1] : n[1] = e[1], t[2] < e[2] ? n[2] = t[2] : n[2] = e[2], t[3] < e[3] ? n[3] = t[3] : n[3] = e[3]) : oe(n), n
- }
-
- function Ce(t) {
- return [t[0], t[3]]
- }
-
- function Oe(t) {
- return [t[2], t[3]]
- }
-
- function Pe(t) {
- return t[2] - t[0]
- }
-
- function Re(t, e) {
- return t[0] <= e[2] && t[2] >= e[0] && t[1] <= e[3] && t[3] >= e[1]
- }
-
- function Ie(t) {
- return t[2] < t[0] || t[3] < t[1]
- }
-
- function Le(t, e) {
- return e ? (e[0] = t[0], e[1] = t[1], e[2] = t[2], e[3] = t[3], e) : t
- }
-
- function Me(t, e) {
- var r = (t[2] - t[0]) / 2 * (e - 1), n = (t[3] - t[1]) / 2 * (e - 1);
- t[0] -= r, t[2] += r, t[1] -= n, t[3] += n
- }
-
- function Fe(t, e, r) {
- var n = !1, i = re(t, e), o = re(t, r);
- if (i === Yt || o === Yt) n = !0; else {
- var a = t[0], s = t[1], l = t[2], u = t[3], c = e[0], h = e[1], p = r[0], f = r[1], d = (f - h) / (p - c),
- g = void 0, y = void 0;
- o & Wt && !(i & Wt) && (n = (g = p - (f - u) / d) >= a && g <= l), n || !(o & qt) || i & qt || (n = (y = f - (p - l) * d) >= s && y <= u), n || !(o & Xt) || i & Xt || (n = (g = p - (f - s) / d) >= a && g <= l), n || !(o & Zt) || i & Zt || (n = (y = f - (p - a) * d) >= s && y <= u)
- }
- return n
- }
-
- function Ae(t, e, r, n) {
- var i = [];
- if (n > 1) for (var o = t[2] - t[0], a = t[3] - t[1], s = 0; s < n; ++s) i.push(t[0] + o * s / n, t[1], t[2], t[1] + a * s / n, t[2] - o * s / n, t[3], t[0], t[3] - a * s / n); else i = [t[0], t[1], t[2], t[1], t[2], t[3], t[0], t[3]];
- e(i, i, 2);
- for (var l = [], u = [], c = (s = 0, i.length); s < c; s += 2) l.push(i[s]), u.push(i[s + 1]);
- return function (t, e, r) {
- return ie(Math.min.apply(null, t), Math.min.apply(null, e), Math.max.apply(null, t), Math.max.apply(null, e), r)
- }(l, u, r)
- }
-
- function ke(t, e) {
- var r = e.getExtent(), n = xe(t);
- if (e.canWrapX() && (n[0] < r[0] || n[0] >= r[2])) {
- var i = Pe(r), o = Math.floor((n[0] - r[0]) / i) * i;
- t[0] -= o, t[2] -= o
- }
- return t
- }
-
- var je = function () {
- function t(t) {
- this.code_ = t.code, this.units_ = t.units, this.extent_ = void 0 !== t.extent ? t.extent : null, this.worldExtent_ = void 0 !== t.worldExtent ? t.worldExtent : null, this.axisOrientation_ = void 0 !== t.axisOrientation ? t.axisOrientation : "enu", this.global_ = void 0 !== t.global && t.global, this.canWrapX_ = !(!this.global_ || !this.extent_), this.getPointResolutionFunc_ = t.getPointResolution, this.defaultTileGrid_ = null, this.metersPerUnit_ = t.metersPerUnit
- }
-
- return t.prototype.canWrapX = function () {
- return this.canWrapX_
- }, t.prototype.getCode = function () {
- return this.code_
- }, t.prototype.getExtent = function () {
- return this.extent_
- }, t.prototype.getUnits = function () {
- return this.units_
- }, t.prototype.getMetersPerUnit = function () {
- return this.metersPerUnit_ || wt[this.units_]
- }, t.prototype.getWorldExtent = function () {
- return this.worldExtent_
- }, t.prototype.getAxisOrientation = function () {
- return this.axisOrientation_
- }, t.prototype.isGlobal = function () {
- return this.global_
- }, t.prototype.setGlobal = function (t) {
- this.global_ = t, this.canWrapX_ = !(!t || !this.extent_)
- }, t.prototype.getDefaultTileGrid = function () {
- return this.defaultTileGrid_
- }, t.prototype.setDefaultTileGrid = function (t) {
- this.defaultTileGrid_ = t
- }, t.prototype.setExtent = function (t) {
- this.extent_ = t, this.canWrapX_ = !(!this.global_ || !t)
- }, t.prototype.setWorldExtent = function (t) {
- this.worldExtent_ = t
- }, t.prototype.setGetPointResolution = function (t) {
- this.getPointResolutionFunc_ = t
- }, t.prototype.getPointResolutionFunc = function () {
- return this.getPointResolutionFunc_
- }, t
- }();
-
- function Ne(t, e, r) {
- return Math.min(Math.max(t, e), r)
- }
-
- var De = "cosh" in Math ? Math.cosh : function (t) {
- var e = Math.exp(t);
- return (e + 1 / e) / 2
- }, Ge = "log2" in Math ? Math.log2 : function (t) {
- return Math.log(t) * Math.LOG2E
- };
-
- function ze(t, e, r, n, i, o) {
- var a = i - r, s = o - n;
- if (0 !== a || 0 !== s) {
- var l = ((t - r) * a + (e - n) * s) / (a * a + s * s);
- l > 1 ? (r = i, n = o) : l > 0 && (r += a * l, n += s * l)
- }
- return Ue(t, e, r, n)
- }
-
- function Ue(t, e, r, n) {
- var i = r - t, o = n - e;
- return i * i + o * o
- }
-
- function Be(t) {
- for (var e = t.length, r = 0; r < e; r++) {
- for (var n = r, i = Math.abs(t[r][r]), o = r + 1; o < e; o++) {
- var a = Math.abs(t[o][r]);
- a > i && (i = a, n = o)
- }
- if (0 === i) return null;
- var s = t[n];
- t[n] = t[r], t[r] = s;
- for (var l = r + 1; l < e; l++) for (var u = -t[l][r] / t[r][r], c = r; c < e + 1; c++) r == c ? t[l][c] = 0 : t[l][c] += u * t[r][c]
- }
- for (var h = new Array(e), p = e - 1; p >= 0; p--) {
- h[p] = t[p][e] / t[p][p];
- for (var f = p - 1; f >= 0; f--) t[f][e] -= t[f][p] * h[p]
- }
- return h
- }
-
- function Ve(t) {
- return 180 * t / Math.PI
- }
-
- function Ye(t) {
- return t * Math.PI / 180
- }
-
- function We(t, e) {
- var r = t % e;
- return r * e < 0 ? r + e : r
- }
-
- function qe(t, e, r) {
- return t + r * (e - t)
- }
-
- var Xe = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Ze = 6378137 * Math.PI, Ke = [-Ze, -Ze, Ze, Ze], He = [-180, -85, 180, 85],
- $e = 6378137 * Math.log(Math.tan(Math.PI / 2)), Je = function (t) {
- function e(e) {
- return t.call(this, {
- code: e,
- units: St.METERS,
- extent: Ke,
- global: !0,
- worldExtent: He,
- getPointResolution: function (t, e) {
- return t / De(e[1] / 6378137)
- }
- }) || this
- }
-
- return Xe(e, t), e
- }(je),
- Qe = [new Je("EPSG:3857"), new Je("EPSG:102100"), new Je("EPSG:102113"), new Je("EPSG:900913"), new Je("http://www.opengis.net/gml/srs/epsg.xml#3857")];
-
- function tr(t, e, r) {
- var n = t.length, i = r > 1 ? r : 2, o = e;
- void 0 === o && (o = i > 2 ? t.slice() : new Array(n));
- for (var a = 0; a < n; a += i) {
- o[a] = Ze * t[a] / 180;
- var s = 6378137 * Math.log(Math.tan(Math.PI * (+t[a + 1] + 90) / 360));
- s > $e ? s = $e : s < -$e && (s = -$e), o[a + 1] = s
- }
- return o
- }
-
- function er(t, e, r) {
- var n = t.length, i = r > 1 ? r : 2, o = e;
- void 0 === o && (o = i > 2 ? t.slice() : new Array(n));
- for (var a = 0; a < n; a += i) o[a] = 180 * t[a] / Ze, o[a + 1] = 360 * Math.atan(Math.exp(t[a + 1] / 6378137)) / Math.PI - 90;
- return o
- }
-
- var rr = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), nr = [-180, -90, 180, 90], ir = 6378137 * Math.PI / 180, or = function (t) {
- function e(e, r) {
- return t.call(this, {
- code: e,
- units: St.DEGREES,
- extent: nr,
- axisOrientation: r,
- global: !0,
- metersPerUnit: ir,
- worldExtent: nr
- }) || this
- }
-
- return rr(e, t), e
- }(je),
- ar = [new or("CRS:84"), new or("EPSG:4326", "neu"), new or("urn:ogc:def:crs:OGC:1.3:CRS84"), new or("urn:ogc:def:crs:OGC:2:84"), new or("http://www.opengis.net/gml/srs/epsg.xml#4326", "neu")],
- sr = {};
-
- function lr() {
- sr = {}
- }
-
- function ur(t) {
- return sr[t] || sr[t.replace(/urn:(x-)?ogc:def:crs:EPSG:(.*:)?(\w+)$/, "EPSG:$3")] || null
- }
-
- function cr(t, e) {
- sr[t] = e
- }
-
- var hr = {};
-
- function pr() {
- hr = {}
- }
-
- function fr(t, e, r) {
- var n = t.getCode(), i = e.getCode();
- n in hr || (hr[n] = {}), hr[n][i] = r
- }
-
- function dr(t, e) {
- var r;
- return t in hr && e in hr[t] && (r = hr[t][e]), r
- }
-
- function gr(t, e, r) {
- var n = r || 6371008.8, i = Ye(t[1]), o = Ye(e[1]), a = (o - i) / 2, s = Ye(e[0] - t[0]) / 2,
- l = Math.sin(a) * Math.sin(a) + Math.sin(s) * Math.sin(s) * Math.cos(i) * Math.cos(o);
- return 2 * n * Math.atan2(Math.sqrt(l), Math.sqrt(1 - l))
- }
-
- function yr(t, e) {
- for (var r = 0, n = 0, i = t.length; n < i - 1; ++n) r += gr(t[n], t[n + 1], e);
- return r
- }
-
- function mr(t, e) {
- for (var r = 0, n = t.length, i = t[n - 1][0], o = t[n - 1][1], a = 0; a < n; a++) {
- var s = t[a][0], l = t[a][1];
- r += Ye(s - i) * (2 + Math.sin(Ye(o)) + Math.sin(Ye(l))), i = s, o = l
- }
- return r * e * e / 2
- }
-
- function vr(t, e, r, n) {
- var i = n || 6371008.8, o = Ye(t[1]), a = Ye(t[0]), s = e / i,
- l = Math.asin(Math.sin(o) * Math.cos(s) + Math.cos(o) * Math.sin(s) * Math.cos(r));
- return [Ve(a + Math.atan2(Math.sin(r) * Math.sin(s) * Math.cos(o), Math.cos(s) - Math.sin(o) * Math.sin(l))), Ve(l)]
- }
-
- function _r(t, e, r) {
- var n = void 0 !== r ? t.toFixed(r) : "" + t, i = n.indexOf(".");
- return (i = -1 === i ? n.length : i) > e ? n : new Array(1 + e - i).join("0") + n
- }
-
- function br(t, e) {
- for (var r = ("" + t).split("."), n = ("" + e).split("."), i = 0; i < Math.max(r.length, n.length); i++) {
- var o = parseInt(r[i] || "0", 10), a = parseInt(n[i] || "0", 10);
- if (o > a) return 1;
- if (a > o) return -1
- }
- return 0
- }
-
- function xr(t, e) {
- return t[0] += +e[0], t[1] += +e[1], t
- }
-
- function wr(t, e) {
- var r = e.getRadius(), n = e.getCenter(), i = n[0], o = n[1], a = t[0] - i, s = t[1] - o;
- 0 === a && 0 === s && (a = 1);
- var l = Math.sqrt(a * a + s * s);
- return [i + r * a / l, o + r * s / l]
- }
-
- function Sr(t, e) {
- var r, n, i = t[0], o = t[1], a = e[0], s = e[1], l = a[0], u = a[1], c = s[0], h = s[1], p = c - l, f = h - u,
- d = 0 === p && 0 === f ? 0 : (p * (i - l) + f * (o - u)) / (p * p + f * f || 0);
- return d <= 0 ? (r = l, n = u) : d >= 1 ? (r = c, n = h) : (r = l + d * p, n = u + d * f), [r, n]
- }
-
- function Er(t, e, r) {
- var n = We(e + 180, 360) - 180, i = Math.abs(3600 * n), o = r || 0, a = Math.pow(10, o), s = Math.floor(i / 3600),
- l = Math.floor((i - 3600 * s) / 60), u = i - 3600 * s - 60 * l;
- return (u = Math.ceil(u * a) / a) >= 60 && (u = 0, l += 1), l >= 60 && (l = 0, s += 1), s + "° " + _r(l, 2) + "′ " + _r(u, 2, o) + "″" + (0 == n ? "" : " " + t.charAt(n < 0 ? 1 : 0))
- }
-
- function Tr(t, e, r) {
- return t ? e.replace("{x}", t[0].toFixed(r)).replace("{y}", t[1].toFixed(r)) : ""
- }
-
- function Cr(t, e) {
- for (var r = !0, n = t.length - 1; n >= 0; --n) if (t[n] != e[n]) {
- r = !1;
- break
- }
- return r
- }
-
- function Or(t, e) {
- var r = Math.cos(e), n = Math.sin(e), i = t[0] * r - t[1] * n, o = t[1] * r + t[0] * n;
- return t[0] = i, t[1] = o, t
- }
-
- function Pr(t, e) {
- return t[0] *= e, t[1] *= e, t
- }
-
- function Rr(t, e) {
- var r = t[0] - e[0], n = t[1] - e[1];
- return r * r + n * n
- }
-
- function Ir(t, e) {
- return Math.sqrt(Rr(t, e))
- }
-
- function Lr(t, e) {
- return Rr(t, Sr(t, e))
- }
-
- function Mr(t, e) {
- return Tr(t, "{x}, {y}", e)
- }
-
- function Fr(t, e) {
- if (e.canWrapX()) {
- var r = Pe(e.getExtent()), n = Ar(t, e, r);
- n && (t[0] -= n * r)
- }
- return t
- }
-
- function Ar(t, e, r) {
- var n = e.getExtent(), i = 0;
- if (e.canWrapX() && (t[0] < n[0] || t[0] > n[2])) {
- var o = r || Pe(n);
- i = Math.floor((t[0] - n[0]) / o)
- }
- return i
- }
-
- function kr(t, e, r) {
- var n;
- if (void 0 !== e) {
- for (var i = 0, o = t.length; i < o; ++i) e[i] = t[i];
- n = e
- } else n = t.slice();
- return n
- }
-
- function jr(t, e, r) {
- if (void 0 !== e && t !== e) {
- for (var n = 0, i = t.length; n < i; ++n) e[n] = t[n];
- t = e
- }
- return t
- }
-
- function Nr(t) {
- cr(t.getCode(), t), fr(t, t, kr)
- }
-
- function Dr(t) {
- t.forEach(Nr)
- }
-
- function Gr(t) {
- return "string" == typeof t ? ur(t) : t || null
- }
-
- function zr(t, e, r, n) {
- var i, o = (t = Gr(t)).getPointResolutionFunc();
- if (o) {
- if (i = o(e, r), n && n !== t.getUnits()) (s = t.getMetersPerUnit()) && (i = i * s / wt[n])
- } else {
- var a = t.getUnits();
- if (a == St.DEGREES && !n || n == St.DEGREES) i = e; else {
- var s, l = Zr(t, Gr("EPSG:4326"));
- if (l === jr && a !== St.DEGREES) i = e * t.getMetersPerUnit(); else {
- var u = [r[0] - e / 2, r[1], r[0] + e / 2, r[1], r[0], r[1] - e / 2, r[0], r[1] + e / 2];
- i = (gr((u = l(u, u, 2)).slice(0, 2), u.slice(2, 4)) + gr(u.slice(4, 6), u.slice(6, 8))) / 2
- }
- void 0 !== (s = n ? wt[n] : t.getMetersPerUnit()) && (i /= s)
- }
- }
- return i
- }
-
- function Ur(t) {
- Dr(t), t.forEach((function (e) {
- t.forEach((function (t) {
- e !== t && fr(e, t, kr)
- }))
- }))
- }
-
- function Br(t, e, r, n) {
- t.forEach((function (t) {
- e.forEach((function (e) {
- fr(t, e, r), fr(e, t, n)
- }))
- }))
- }
-
- function Vr(t, e) {
- return t ? "string" == typeof t ? Gr(t) : t : Gr(e)
- }
-
- function Yr(t) {
- return function (e, r, n) {
- for (var i = e.length, o = void 0 !== n ? n : 2, a = void 0 !== r ? r : new Array(i), s = 0; s < i; s += o) {
- var l = t([e[s], e[s + 1]]);
- a[s] = l[0], a[s + 1] = l[1];
- for (var u = o - 1; u >= 2; --u) a[s + u] = e[s + u]
- }
- return a
- }
- }
-
- function Wr(t, e, r, n) {
- var i = Gr(t), o = Gr(e);
- fr(i, o, Yr(r)), fr(o, i, Yr(n))
- }
-
- function qr(t, e) {
- return Hr(t, "EPSG:4326", void 0 !== e ? e : "EPSG:3857")
- }
-
- function Xr(t, e) {
- if (t === e) return !0;
- var r = t.getUnits() === e.getUnits();
- return (t.getCode() === e.getCode() || Zr(t, e) === kr) && r
- }
-
- function Zr(t, e) {
- var r = dr(t.getCode(), e.getCode());
- return r || (r = jr), r
- }
-
- function Kr(t, e) {
- return Zr(Gr(t), Gr(e))
- }
-
- function Hr(t, e, r) {
- return Kr(e, r)(t, void 0, t.length)
- }
-
- function $r(t, e, r, n) {
- return Ae(t, Kr(e, r), void 0, n)
- }
-
- var Jr = null;
-
- function Qr(t) {
- Jr = Gr(t)
- }
-
- function tn() {
- return Jr
- }
-
- function en(t, e) {
- return Jr ? Hr(t, e, Jr) : t
- }
-
- function rn(t, e) {
- return Jr ? Hr(t, Jr, e) : t
- }
-
- function nn(t, e) {
- return Jr ? $r(t, e, Jr) : t
- }
-
- function on(t, e) {
- return Jr ? $r(t, Jr, e) : t
- }
-
- function an(t, e, r) {
- return function (n) {
- var i, o, a = n[0], s = n[1];
- if (t.canWrapX()) {
- var l = t.getExtent(), u = Pe(l);
- (o = Ar(n, t, u)) && (a -= o * u), a = Ne(a, l[0], l[2]), s = Ne(s, l[1], l[3]), i = r([a, s])
- } else i = r(n);
- return o && e.canWrapX() && (i[0] += o * Pe(e.getExtent())), i
- }
- }
-
- function sn() {
- Ur(Qe), Ur(ar), Br(ar, Qe, tr, er)
- }
-
- function ln(t, e, r, n, i, o) {
- for (var a = o || [], s = 0, l = e; l < r; l += n) {
- var u = t[l], c = t[l + 1];
- a[s++] = i[0] * u + i[2] * c + i[4], a[s++] = i[1] * u + i[3] * c + i[5]
- }
- return o && a.length != s && (a.length = s), a
- }
-
- function un(t, e, r, n, i, o, a) {
- for (var s = a || [], l = Math.cos(i), u = Math.sin(i), c = o[0], h = o[1], p = 0, f = e; f < r; f += n) {
- var d = t[f] - c, g = t[f + 1] - h;
- s[p++] = c + d * l - g * u, s[p++] = h + d * u + g * l;
- for (var y = f + 2; y < f + n; ++y) s[p++] = t[y]
- }
- return a && s.length != p && (s.length = p), s
- }
-
- function cn(t, e, r, n, i, o, a, s) {
- for (var l = s || [], u = a[0], c = a[1], h = 0, p = e; p < r; p += n) {
- var f = t[p] - u, d = t[p + 1] - c;
- l[h++] = u + i * f, l[h++] = c + o * d;
- for (var g = p + 2; g < p + n; ++g) l[h++] = t[g]
- }
- return s && l.length != h && (l.length = h), l
- }
-
- function hn(t, e, r, n, i, o, a) {
- for (var s = a || [], l = 0, u = e; u < r; u += n) {
- s[l++] = t[u] + i, s[l++] = t[u + 1] + o;
- for (var c = u + 2; c < u + n; ++c) s[l++] = t[c]
- }
- return a && s.length != l && (s.length = l), s
- }
-
- sn();
- var pn = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), fn = [1, 0, 0, 1, 0, 0], dn = function (t) {
- function e() {
- var e = t.call(this) || this;
- return e.extent_ = [1 / 0, 1 / 0, -1 / 0, -1 / 0], e.extentRevision_ = -1, e.simplifiedGeometryMaxMinSquaredTolerance = 0, e.simplifiedGeometryRevision = 0, e.simplifyTransformedInternal = C((function (t, e, r) {
- if (!r) return this.getSimplifiedGeometry(e);
- var n = this.clone();
- return n.applyTransform(r), n.getSimplifiedGeometry(e)
- })), e
- }
-
- return pn(e, t), e.prototype.simplifyTransformed = function (t, e) {
- return this.simplifyTransformedInternal(this.getRevision(), t, e)
- }, e.prototype.clone = function () {
- return n()
- }, e.prototype.closestPointXY = function (t, e, r, i) {
- return n()
- }, e.prototype.containsXY = function (t, e) {
- var r = this.getClosestPoint([t, e]);
- return r[0] === t && r[1] === e
- }, e.prototype.getClosestPoint = function (t, e) {
- var r = e || [NaN, NaN];
- return this.closestPointXY(t[0], t[1], r, 1 / 0), r
- }, e.prototype.intersectsCoordinate = function (t) {
- return this.containsXY(t[0], t[1])
- }, e.prototype.computeExtent = function (t) {
- return n()
- }, e.prototype.getExtent = function (t) {
- if (this.extentRevision_ != this.getRevision()) {
- var e = this.computeExtent(this.extent_);
- (isNaN(e[0]) || isNaN(e[1])) && oe(e), this.extentRevision_ = this.getRevision()
- }
- return Le(this.extent_, t)
- }, e.prototype.rotate = function (t, e) {
- n()
- }, e.prototype.scale = function (t, e, r) {
- n()
- }, e.prototype.simplify = function (t) {
- return this.getSimplifiedGeometry(t * t)
- }, e.prototype.getSimplifiedGeometry = function (t) {
- return n()
- }, e.prototype.getType = function () {
- return n()
- }, e.prototype.applyTransform = function (t) {
- n()
- }, e.prototype.intersectsExtent = function (t) {
- return n()
- }, e.prototype.translate = function (t, e) {
- n()
- }, e.prototype.transform = function (t, e) {
- var r = Gr(t), n = r.getUnits() == St.TILE_PIXELS ? function (t, n, i) {
- var o = r.getExtent(), a = r.getWorldExtent(), s = Ee(a) / Ee(o);
- return kt(fn, a[0], a[3], s, -s, 0, 0, 0), ln(t, 0, t.length, i, fn, n), Kr(r, e)(t, n, i)
- } : Kr(r, e);
- return this.applyTransform(n), this
- }, e
- }(ot), gn = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }();
-
- function yn(t) {
- var e;
- return t == yt ? e = 2 : t == mt || t == vt ? e = 3 : t == _t && (e = 4), e
- }
-
- function mn(t, e, r) {
- var n = t.getFlatCoordinates();
- if (n) {
- var i = t.getStride();
- return ln(n, 0, n.length, i, e, r)
- }
- return null
- }
-
- var vn = function (t) {
- function e() {
- var e = t.call(this) || this;
- return e.layout = yt, e.stride = 2, e.flatCoordinates = null, e
- }
-
- return gn(e, t), e.prototype.computeExtent = function (t) {
- return le(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, t)
- }, e.prototype.getCoordinates = function () {
- return n()
- }, e.prototype.getFirstCoordinate = function () {
- return this.flatCoordinates.slice(0, this.stride)
- }, e.prototype.getFlatCoordinates = function () {
- return this.flatCoordinates
- }, e.prototype.getLastCoordinate = function () {
- return this.flatCoordinates.slice(this.flatCoordinates.length - this.stride)
- }, e.prototype.getLayout = function () {
- return this.layout
- }, e.prototype.getSimplifiedGeometry = function (t) {
- if (this.simplifiedGeometryRevision !== this.getRevision() && (this.simplifiedGeometryMaxMinSquaredTolerance = 0, this.simplifiedGeometryRevision = this.getRevision()), t < 0 || 0 !== this.simplifiedGeometryMaxMinSquaredTolerance && t <= this.simplifiedGeometryMaxMinSquaredTolerance) return this;
- var e = this.getSimplifiedGeometryInternal(t);
- return e.getFlatCoordinates().length < this.flatCoordinates.length ? e : (this.simplifiedGeometryMaxMinSquaredTolerance = t, this)
- }, e.prototype.getSimplifiedGeometryInternal = function (t) {
- return this
- }, e.prototype.getStride = function () {
- return this.stride
- }, e.prototype.setFlatCoordinates = function (t, e) {
- this.stride = yn(t), this.layout = t, this.flatCoordinates = e
- }, e.prototype.setCoordinates = function (t, e) {
- n()
- }, e.prototype.setLayout = function (t, e, r) {
- var n;
- if (t) n = yn(t); else {
- for (var i = 0; i < r; ++i) {
- if (0 === e.length) return this.layout = yt, void (this.stride = 2);
- e = e[0]
- }
- t = function (t) {
- var e;
- 2 == t ? e = yt : 3 == t ? e = mt : 4 == t && (e = _t);
- return e
- }(n = e.length)
- }
- this.layout = t, this.stride = n
- }, e.prototype.applyTransform = function (t) {
- this.flatCoordinates && (t(this.flatCoordinates, this.flatCoordinates, this.stride), this.changed())
- }, e.prototype.rotate = function (t, e) {
- var r = this.getFlatCoordinates();
- if (r) {
- var n = this.getStride();
- un(r, 0, r.length, n, t, e, r), this.changed()
- }
- }, e.prototype.scale = function (t, e, r) {
- var n = e;
- void 0 === n && (n = t);
- var i = r;
- i || (i = xe(this.getExtent()));
- var o = this.getFlatCoordinates();
- if (o) {
- var a = this.getStride();
- cn(o, 0, o.length, a, t, n, i, o), this.changed()
- }
- }, e.prototype.translate = function (t, e) {
- var r = this.getFlatCoordinates();
- if (r) {
- var n = this.getStride();
- hn(r, 0, r.length, n, t, e, r), this.changed()
- }
- }, e
- }(dn);
-
- function _n(t, e, r, n, i, o, a) {
- var s, l = t[e], u = t[e + 1], c = t[r] - l, h = t[r + 1] - u;
- if (0 === c && 0 === h) s = e; else {
- var p = ((i - l) * c + (o - u) * h) / (c * c + h * h);
- if (p > 1) s = r; else {
- if (p > 0) {
- for (var f = 0; f < n; ++f) a[f] = qe(t[e + f], t[r + f], p);
- return void (a.length = n)
- }
- s = e
- }
- }
- for (f = 0; f < n; ++f) a[f] = t[s + f];
- a.length = n
- }
-
- function bn(t, e, r, n, i) {
- var o = t[e], a = t[e + 1];
- for (e += n; e < r; e += n) {
- var s = t[e], l = t[e + 1], u = Ue(o, a, s, l);
- u > i && (i = u), o = s, a = l
- }
- return i
- }
-
- function xn(t, e, r, n, i) {
- for (var o = 0, a = r.length; o < a; ++o) {
- var s = r[o];
- i = bn(t, e, s, n, i), e = s
- }
- return i
- }
-
- function wn(t, e, r, n, i) {
- for (var o = 0, a = r.length; o < a; ++o) {
- var s = r[o];
- i = xn(t, e, s, n, i), e = s[s.length - 1]
- }
- return i
- }
-
- function Sn(t, e, r, n, i, o, a, s, l, u, c) {
- if (e == r) return u;
- var h, p;
- if (0 === i) {
- if ((p = Ue(a, s, t[e], t[e + 1])) < u) {
- for (h = 0; h < n; ++h) l[h] = t[e + h];
- return l.length = n, p
- }
- return u
- }
- for (var f = c || [NaN, NaN], d = e + n; d < r;) if (_n(t, d - n, d, n, a, s, f), (p = Ue(a, s, f[0], f[1])) < u) {
- for (u = p, h = 0; h < n; ++h) l[h] = f[h];
- l.length = n, d += n
- } else d += n * Math.max((Math.sqrt(p) - Math.sqrt(u)) / i | 0, 1);
- if (o && (_n(t, r - n, e, n, a, s, f), (p = Ue(a, s, f[0], f[1])) < u)) {
- for (u = p, h = 0; h < n; ++h) l[h] = f[h];
- l.length = n
- }
- return u
- }
-
- function En(t, e, r, n, i, o, a, s, l, u, c) {
- for (var h = c || [NaN, NaN], p = 0, f = r.length; p < f; ++p) {
- var d = r[p];
- u = Sn(t, e, d, n, i, o, a, s, l, u, h), e = d
- }
- return u
- }
-
- function Tn(t, e, r, n, i, o, a, s, l, u, c) {
- for (var h = c || [NaN, NaN], p = 0, f = r.length; p < f; ++p) {
- var d = r[p];
- u = En(t, e, d, n, i, o, a, s, l, u, h), e = d[d.length - 1]
- }
- return u
- }
-
- function Cn(t, e, r, n) {
- for (var i = 0, o = r.length; i < o; ++i) t[e++] = r[i];
- return e
- }
-
- function On(t, e, r, n) {
- for (var i = 0, o = r.length; i < o; ++i) for (var a = r[i], s = 0; s < n; ++s) t[e++] = a[s];
- return e
- }
-
- function Pn(t, e, r, n, i) {
- for (var o = i || [], a = 0, s = 0, l = r.length; s < l; ++s) {
- var u = On(t, e, r[s], n);
- o[a++] = u, e = u
- }
- return o.length = a, o
- }
-
- function Rn(t, e, r, n, i) {
- for (var o = i || [], a = 0, s = 0, l = r.length; s < l; ++s) {
- var u = Pn(t, e, r[s], n, o[a]);
- o[a++] = u, e = u[u.length - 1]
- }
- return o.length = a, o
- }
-
- function In(t, e, r, n, i, o, a) {
- var s = (r - e) / n;
- if (s < 3) {
- for (; e < r; e += n) o[a++] = t[e], o[a++] = t[e + 1];
- return a
- }
- var l = new Array(s);
- l[0] = 1, l[s - 1] = 1;
- for (var u = [e, r - n], c = 0; u.length > 0;) {
- for (var h = u.pop(), p = u.pop(), f = 0, d = t[p], g = t[p + 1], y = t[h], m = t[h + 1], v = p + n; v < h; v += n) {
- var _ = ze(t[v], t[v + 1], d, g, y, m);
- _ > f && (c = v, f = _)
- }
- f > i && (l[(c - e) / n] = 1, p + n < c && u.push(p, c), c + n < h && u.push(c, h))
- }
- for (v = 0; v < s; ++v) l[v] && (o[a++] = t[e + v * n], o[a++] = t[e + v * n + 1]);
- return a
- }
-
- function Ln(t, e, r, n, i, o, a, s) {
- for (var l = 0, u = r.length; l < u; ++l) {
- var c = r[l];
- a = In(t, e, c, n, i, o, a), s.push(a), e = c
- }
- return a
- }
-
- function Mn(t, e, r, n, i, o, a) {
- if (r <= e + n) {
- for (; e < r; e += n) o[a++] = t[e], o[a++] = t[e + 1];
- return a
- }
- var s = t[e], l = t[e + 1];
- o[a++] = s, o[a++] = l;
- var u = s, c = l;
- for (e += n; e < r; e += n) Ue(s, l, u = t[e], c = t[e + 1]) > i && (o[a++] = u, o[a++] = c, s = u, l = c);
- return u == s && c == l || (o[a++] = u, o[a++] = c), a
- }
-
- function Fn(t, e) {
- return e * Math.round(t / e)
- }
-
- function An(t, e, r, n, i, o, a) {
- if (e == r) return a;
- var s, l, u = Fn(t[e], i), c = Fn(t[e + 1], i);
- e += n, o[a++] = u, o[a++] = c;
- do {
- if (s = Fn(t[e], i), l = Fn(t[e + 1], i), (e += n) == r) return o[a++] = s, o[a++] = l, a
- } while (s == u && l == c);
- for (; e < r;) {
- var h = Fn(t[e], i), p = Fn(t[e + 1], i);
- if (e += n, h != s || p != l) {
- var f = s - u, d = l - c, g = h - u, y = p - c;
- f * y == d * g && (f < 0 && g < f || f == g || f > 0 && g > f) && (d < 0 && y < d || d == y || d > 0 && y > d) ? (s = h, l = p) : (o[a++] = s, o[a++] = l, u = s, c = l, s = h, l = p)
- }
- }
- return o[a++] = s, o[a++] = l, a
- }
-
- function kn(t, e, r, n, i, o, a, s) {
- for (var l = 0, u = r.length; l < u; ++l) {
- var c = r[l];
- a = An(t, e, c, n, i, o, a), s.push(a), e = c
- }
- return a
- }
-
- function jn(t, e, r, n, i, o, a, s) {
- for (var l = 0, u = r.length; l < u; ++l) {
- var c = r[l], h = [];
- a = kn(t, e, c, n, i, o, a, h), s.push(h), e = c[c.length - 1]
- }
- return a
- }
-
- function Nn(t, e, r, n, i) {
- for (var o = void 0 !== i ? i : [], a = 0, s = e; s < r; s += n) o[a++] = t.slice(s, s + n);
- return o.length = a, o
- }
-
- function Dn(t, e, r, n, i) {
- for (var o = void 0 !== i ? i : [], a = 0, s = 0, l = r.length; s < l; ++s) {
- var u = r[s];
- o[a++] = Nn(t, e, u, n, o[a]), e = u
- }
- return o.length = a, o
- }
-
- function Gn(t, e, r, n, i) {
- for (var o = void 0 !== i ? i : [], a = 0, s = 0, l = r.length; s < l; ++s) {
- var u = r[s];
- o[a++] = Dn(t, e, u, n, o[a]), e = u[u.length - 1]
- }
- return o.length = a, o
- }
-
- function zn(t, e, r, n) {
- for (var i = 0, o = t[r - n], a = t[r - n + 1]; e < r; e += n) {
- var s = t[e], l = t[e + 1];
- i += a * s - o * l, o = s, a = l
- }
- return i / 2
- }
-
- function Un(t, e, r, n) {
- for (var i = 0, o = 0, a = r.length; o < a; ++o) {
- var s = r[o];
- i += zn(t, e, s, n), e = s
- }
- return i
- }
-
- function Bn(t, e, r, n) {
- for (var i = 0, o = 0, a = r.length; o < a; ++o) {
- var s = r[o];
- i += Un(t, e, s, n), e = s[s.length - 1]
- }
- return i
- }
-
- var Vn = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Yn = function (t) {
- function e(e, r) {
- var n = t.call(this) || this;
- return n.maxDelta_ = -1, n.maxDeltaRevision_ = -1, void 0 === r || Array.isArray(e[0]) ? n.setCoordinates(e, r) : n.setFlatCoordinates(r, e), n
- }
-
- return Vn(e, t), e.prototype.clone = function () {
- return new e(this.flatCoordinates.slice(), this.layout)
- }, e.prototype.closestPointXY = function (t, e, r, n) {
- return n < Jt(this.getExtent(), t, e) ? n : (this.maxDeltaRevision_ != this.getRevision() && (this.maxDelta_ = Math.sqrt(bn(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, 0)), this.maxDeltaRevision_ = this.getRevision()), Sn(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, this.maxDelta_, !0, t, e, r, n))
- }, e.prototype.getArea = function () {
- return zn(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride)
- }, e.prototype.getCoordinates = function () {
- return Nn(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride)
- }, e.prototype.getSimplifiedGeometryInternal = function (t) {
- var r = [];
- return r.length = In(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, t, r, 0), new e(r, yt)
- }, e.prototype.getType = function () {
- return bt.LINEAR_RING
- }, e.prototype.intersectsExtent = function (t) {
- return !1
- }, e.prototype.setCoordinates = function (t, e) {
- this.setLayout(e, t, 1), this.flatCoordinates || (this.flatCoordinates = []), this.flatCoordinates.length = On(this.flatCoordinates, 0, t, this.stride), this.changed()
- }, e
- }(vn), Wn = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), qn = function (t) {
- function e(e, r) {
- var n = t.call(this) || this;
- return n.setCoordinates(e, r), n
- }
-
- return Wn(e, t), e.prototype.clone = function () {
- var t = new e(this.flatCoordinates.slice(), this.layout);
- return t.applyProperties(this), t
- }, e.prototype.closestPointXY = function (t, e, r, n) {
- var i = this.flatCoordinates, o = Ue(t, e, i[0], i[1]);
- if (o < n) {
- for (var a = this.stride, s = 0; s < a; ++s) r[s] = i[s];
- return r.length = a, o
- }
- return n
- }, e.prototype.getCoordinates = function () {
- return this.flatCoordinates ? this.flatCoordinates.slice() : []
- }, e.prototype.computeExtent = function (t) {
- return ae(this.flatCoordinates, t)
- }, e.prototype.getType = function () {
- return bt.POINT
- }, e.prototype.intersectsExtent = function (t) {
- return ee(t, this.flatCoordinates[0], this.flatCoordinates[1])
- }, e.prototype.setCoordinates = function (t, e) {
- this.setLayout(e, t, 0), this.flatCoordinates || (this.flatCoordinates = []), this.flatCoordinates.length = Cn(this.flatCoordinates, 0, t, this.stride), this.changed()
- }, e
- }(vn);
-
- function Xn(t, e, r, n, i) {
- return !me(i, (function (i) {
- return !Zn(t, e, r, n, i[0], i[1])
- }))
- }
-
- function Zn(t, e, r, n, i, o) {
- for (var a = 0, s = t[r - n], l = t[r - n + 1]; e < r; e += n) {
- var u = t[e], c = t[e + 1];
- l <= o ? c > o && (u - s) * (o - l) - (i - s) * (c - l) > 0 && a++ : c <= o && (u - s) * (o - l) - (i - s) * (c - l) < 0 && a--, s = u, l = c
- }
- return 0 !== a
- }
-
- function Kn(t, e, r, n, i, o) {
- if (0 === r.length) return !1;
- if (!Zn(t, e, r[0], n, i, o)) return !1;
- for (var a = 1, s = r.length; a < s; ++a) if (Zn(t, r[a - 1], r[a], n, i, o)) return !1;
- return !0
- }
-
- function Hn(t, e, r, n, i, o) {
- if (0 === r.length) return !1;
- for (var a = 0, s = r.length; a < s; ++a) {
- var l = r[a];
- if (Kn(t, e, l, n, i, o)) return !0;
- e = l[l.length - 1]
- }
- return !1
- }
-
- function $n(t, e, r, n, i, o, a) {
- for (var s, l, u, c, h, p, f, g = i[o + 1], y = [], m = 0, v = r.length; m < v; ++m) {
- var _ = r[m];
- for (c = t[_ - n], p = t[_ - n + 1], s = e; s < _; s += n) h = t[s], f = t[s + 1], (g <= p && f <= g || p <= g && g <= f) && (u = (g - p) / (f - p) * (h - c) + c, y.push(u)), c = h, p = f
- }
- var b = NaN, x = -1 / 0;
- for (y.sort(d), c = y[0], s = 1, l = y.length; s < l; ++s) {
- h = y[s];
- var w = Math.abs(h - c);
- w > x && Kn(t, e, r, n, u = (c + h) / 2, g) && (b = u, x = w), c = h
- }
- return isNaN(b) && (b = i[o]), a ? (a.push(b, g, x), a) : [b, g, x]
- }
-
- function Jn(t, e, r, n, i) {
- for (var o = [], a = 0, s = r.length; a < s; ++a) {
- var l = r[a];
- o = $n(t, e, l, n, i, 2 * a, o), e = l[l.length - 1]
- }
- return o
- }
-
- function Qn(t, e, r, n, i) {
- for (var o, a = [t[e], t[e + 1]], s = []; e + n < r; e += n) {
- if (s[0] = t[e + n], s[1] = t[e + n + 1], o = i(a, s)) return o;
- a[0] = s[0], a[1] = s[1]
- }
- return !1
- }
-
- function ti(t, e, r, n, i) {
- var o = de([1 / 0, 1 / 0, -1 / 0, -1 / 0], t, e, r, n);
- return !!Re(i, o) && (!!te(i, o) || (o[0] >= i[0] && o[2] <= i[2] || (o[1] >= i[1] && o[3] <= i[3] || Qn(t, e, r, n, (function (t, e) {
- return Fe(i, t, e)
- })))))
- }
-
- function ei(t, e, r, n, i) {
- for (var o = 0, a = r.length; o < a; ++o) {
- if (ti(t, e, r[o], n, i)) return !0;
- e = r[o]
- }
- return !1
- }
-
- function ri(t, e, r, n, i) {
- return !!ti(t, e, r, n, i) || (!!Zn(t, e, r, n, i[0], i[1]) || (!!Zn(t, e, r, n, i[0], i[3]) || (!!Zn(t, e, r, n, i[2], i[1]) || !!Zn(t, e, r, n, i[2], i[3]))))
- }
-
- function ni(t, e, r, n, i) {
- if (!ri(t, e, r[0], n, i)) return !1;
- if (1 === r.length) return !0;
- for (var o = 1, a = r.length; o < a; ++o) if (Xn(t, r[o - 1], r[o], n, i) && !ti(t, r[o - 1], r[o], n, i)) return !1;
- return !0
- }
-
- function ii(t, e, r, n, i) {
- for (var o = 0, a = r.length; o < a; ++o) {
- var s = r[o];
- if (ni(t, e, s, n, i)) return !0;
- e = s[s.length - 1]
- }
- return !1
- }
-
- function oi(t, e, r, n) {
- for (; e < r - n;) {
- for (var i = 0; i < n; ++i) {
- var o = t[e + i];
- t[e + i] = t[r - n + i], t[r - n + i] = o
- }
- e += n, r -= n
- }
- }
-
- function ai(t, e, r, n) {
- for (var i = 0, o = t[r - n], a = t[r - n + 1]; e < r; e += n) {
- var s = t[e], l = t[e + 1];
- i += (s - o) * (l + a), o = s, a = l
- }
- return 0 === i ? void 0 : i > 0
- }
-
- function si(t, e, r, n, i) {
- for (var o = void 0 !== i && i, a = 0, s = r.length; a < s; ++a) {
- var l = r[a], u = ai(t, e, l, n);
- if (0 === a) {
- if (o && u || !o && !u) return !1
- } else if (o && !u || !o && u) return !1;
- e = l
- }
- return !0
- }
-
- function li(t, e, r, n, i) {
- for (var o = 0, a = r.length; o < a; ++o) {
- var s = r[o];
- if (!si(t, e, s, n, i)) return !1;
- s.length && (e = s[s.length - 1])
- }
- return !0
- }
-
- function ui(t, e, r, n, i) {
- for (var o = void 0 !== i && i, a = 0, s = r.length; a < s; ++a) {
- var l = r[a], u = ai(t, e, l, n);
- (0 === a ? o && u || !o && !u : o && !u || !o && u) && oi(t, e, l, n), e = l
- }
- return e
- }
-
- function ci(t, e, r, n, i) {
- for (var o = 0, a = r.length; o < a; ++o) e = ui(t, e, r[o], n, i);
- return e
- }
-
- var hi = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), pi = function (t) {
- function e(e, r, n) {
- var i = t.call(this) || this;
- return i.ends_ = [], i.flatInteriorPointRevision_ = -1, i.flatInteriorPoint_ = null, i.maxDelta_ = -1, i.maxDeltaRevision_ = -1, i.orientedRevision_ = -1, i.orientedFlatCoordinates_ = null, void 0 !== r && n ? (i.setFlatCoordinates(r, e), i.ends_ = n) : i.setCoordinates(e, r), i
- }
-
- return hi(e, t), e.prototype.appendLinearRing = function (t) {
- this.flatCoordinates ? v(this.flatCoordinates, t.getFlatCoordinates()) : this.flatCoordinates = t.getFlatCoordinates().slice(), this.ends_.push(this.flatCoordinates.length), this.changed()
- }, e.prototype.clone = function () {
- var t = new e(this.flatCoordinates.slice(), this.layout, this.ends_.slice());
- return t.applyProperties(this), t
- }, e.prototype.closestPointXY = function (t, e, r, n) {
- return n < Jt(this.getExtent(), t, e) ? n : (this.maxDeltaRevision_ != this.getRevision() && (this.maxDelta_ = Math.sqrt(xn(this.flatCoordinates, 0, this.ends_, this.stride, 0)), this.maxDeltaRevision_ = this.getRevision()), En(this.flatCoordinates, 0, this.ends_, this.stride, this.maxDelta_, !0, t, e, r, n))
- }, e.prototype.containsXY = function (t, e) {
- return Kn(this.getOrientedFlatCoordinates(), 0, this.ends_, this.stride, t, e)
- }, e.prototype.getArea = function () {
- return Un(this.getOrientedFlatCoordinates(), 0, this.ends_, this.stride)
- }, e.prototype.getCoordinates = function (t) {
- var e;
- return void 0 !== t ? ui(e = this.getOrientedFlatCoordinates().slice(), 0, this.ends_, this.stride, t) : e = this.flatCoordinates, Dn(e, 0, this.ends_, this.stride)
- }, e.prototype.getEnds = function () {
- return this.ends_
- }, e.prototype.getFlatInteriorPoint = function () {
- if (this.flatInteriorPointRevision_ != this.getRevision()) {
- var t = xe(this.getExtent());
- this.flatInteriorPoint_ = $n(this.getOrientedFlatCoordinates(), 0, this.ends_, this.stride, t, 0), this.flatInteriorPointRevision_ = this.getRevision()
- }
- return this.flatInteriorPoint_
- }, e.prototype.getInteriorPoint = function () {
- return new qn(this.getFlatInteriorPoint(), vt)
- }, e.prototype.getLinearRingCount = function () {
- return this.ends_.length
- }, e.prototype.getLinearRing = function (t) {
- return t < 0 || this.ends_.length <= t ? null : new Yn(this.flatCoordinates.slice(0 === t ? 0 : this.ends_[t - 1], this.ends_[t]), this.layout)
- }, e.prototype.getLinearRings = function () {
- for (var t = this.layout, e = this.flatCoordinates, r = this.ends_, n = [], i = 0, o = 0, a = r.length; o < a; ++o) {
- var s = r[o], l = new Yn(e.slice(i, s), t);
- n.push(l), i = s
- }
- return n
- }, e.prototype.getOrientedFlatCoordinates = function () {
- if (this.orientedRevision_ != this.getRevision()) {
- var t = this.flatCoordinates;
- si(t, 0, this.ends_, this.stride) ? this.orientedFlatCoordinates_ = t : (this.orientedFlatCoordinates_ = t.slice(), this.orientedFlatCoordinates_.length = ui(this.orientedFlatCoordinates_, 0, this.ends_, this.stride)), this.orientedRevision_ = this.getRevision()
- }
- return this.orientedFlatCoordinates_
- }, e.prototype.getSimplifiedGeometryInternal = function (t) {
- var r = [], n = [];
- return r.length = kn(this.flatCoordinates, 0, this.ends_, this.stride, Math.sqrt(t), r, 0, n), new e(r, yt, n)
- }, e.prototype.getType = function () {
- return bt.POLYGON
- }, e.prototype.intersectsExtent = function (t) {
- return ni(this.getOrientedFlatCoordinates(), 0, this.ends_, this.stride, t)
- }, e.prototype.setCoordinates = function (t, e) {
- this.setLayout(e, t, 2), this.flatCoordinates || (this.flatCoordinates = []);
- var r = Pn(this.flatCoordinates, 0, t, this.stride, this.ends_);
- this.flatCoordinates.length = 0 === r.length ? 0 : r[r.length - 1], this.changed()
- }, e
- }(vn), fi = pi;
-
- function di(t, e, r, n) {
- for (var i = r || 32, o = [], a = 0; a < i; ++a) v(o, vr(t, e, 2 * Math.PI * a / i, n));
- return o.push(o[0], o[1]), new pi(o, yt, [o.length])
- }
-
- function gi(t) {
- var e = t[0], r = t[1], n = t[2], i = t[3], o = [e, r, e, i, n, i, n, r, e, r];
- return new pi(o, yt, [o.length])
- }
-
- function yi(t, e, r) {
- for (var n = e || 32, i = t.getStride(), o = t.getLayout(), a = t.getCenter(), s = i * (n + 1), l = new Array(s), u = 0; u < s; u += i) {
- l[u] = 0, l[u + 1] = 0;
- for (var c = 2; c < i; c++) l[u + c] = a[c]
- }
- var h = [l.length], p = new pi(l, o, h);
- return mi(p, a, t.getRadius(), r), p
- }
-
- function mi(t, e, r, n) {
- for (var i = t.getFlatCoordinates(), o = t.getStride(), a = i.length / o - 1, s = n || 0, l = 0; l <= a; ++l) {
- var u = l * o, c = s + 2 * We(l, a) * Math.PI / a;
- i[u] = e[0] + r * Math.cos(c), i[u + 1] = e[1] + r * Math.sin(c)
- }
- t.changed()
- }
-
- var vi = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), _i = "accuracy", bi = "accuracyGeometry", xi = "altitude", wi = "altitudeAccuracy", Si = "heading",
- Ei = "position", Ti = "projection", Ci = "speed", Oi = "tracking", Pi = "trackingOptions", Ri = function (t) {
- function e(e) {
- var r = t.call(this, A) || this;
- return r.code = e.code, r.message = e.message, r
- }
-
- return vi(e, t), e
- }(c), Ii = function (t) {
- function e(e) {
- var r = t.call(this) || this, n = e || {};
- return r.position_ = null, r.transform_ = jr, r.watchId_ = void 0, r.addEventListener(it(Ti), r.handleProjectionChanged_), r.addEventListener(it(Oi), r.handleTrackingChanged_), void 0 !== n.projection && r.setProjection(n.projection), void 0 !== n.trackingOptions && r.setTrackingOptions(n.trackingOptions), r.setTracking(void 0 !== n.tracking && n.tracking), r
- }
-
- return vi(e, t), e.prototype.disposeInternal = function () {
- this.setTracking(!1), t.prototype.disposeInternal.call(this)
- }, e.prototype.handleProjectionChanged_ = function () {
- var t = this.getProjection();
- t && (this.transform_ = Zr(Gr("EPSG:4326"), t), this.position_ && this.set(Ei, this.transform_(this.position_)))
- }, e.prototype.handleTrackingChanged_ = function () {
- if ("geolocation" in navigator) {
- var t = this.getTracking();
- t && void 0 === this.watchId_ ? this.watchId_ = navigator.geolocation.watchPosition(this.positionChange_.bind(this), this.positionError_.bind(this), this.getTrackingOptions()) : t || void 0 === this.watchId_ || (navigator.geolocation.clearWatch(this.watchId_), this.watchId_ = void 0)
- }
- }, e.prototype.positionChange_ = function (t) {
- var e = t.coords;
- this.set(_i, e.accuracy), this.set(xi, null === e.altitude ? void 0 : e.altitude), this.set(wi, null === e.altitudeAccuracy ? void 0 : e.altitudeAccuracy), this.set(Si, null === e.heading ? void 0 : Ye(e.heading)), this.position_ ? (this.position_[0] = e.longitude, this.position_[1] = e.latitude) : this.position_ = [e.longitude, e.latitude];
- var r = this.transform_(this.position_);
- this.set(Ei, r), this.set(Ci, null === e.speed ? void 0 : e.speed);
- var n = di(this.position_, e.accuracy);
- n.applyTransform(this.transform_), this.set(bi, n), this.changed()
- }, e.prototype.positionError_ = function (t) {
- this.dispatchEvent(new Ri(t))
- }, e.prototype.getAccuracy = function () {
- return this.get(_i)
- }, e.prototype.getAccuracyGeometry = function () {
- return this.get(bi) || null
- }, e.prototype.getAltitude = function () {
- return this.get(xi)
- }, e.prototype.getAltitudeAccuracy = function () {
- return this.get(wi)
- }, e.prototype.getHeading = function () {
- return this.get(Si)
- }, e.prototype.getPosition = function () {
- return this.get(Ei)
- }, e.prototype.getProjection = function () {
- return this.get(Ti)
- }, e.prototype.getSpeed = function () {
- return this.get(Ci)
- }, e.prototype.getTracking = function () {
- return this.get(Oi)
- }, e.prototype.getTrackingOptions = function () {
- return this.get(Pi)
- }, e.prototype.setProjection = function (t) {
- this.set(Ti, Gr(t))
- }, e.prototype.setTracking = function (t) {
- this.set(Oi, t)
- }, e.prototype.setTrackingOptions = function (t) {
- this.set(Pi, t)
- }, e
- }(ot), Li = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Mi = function (t) {
- function e(e, r, n, i) {
- var o = t.call(this) || this;
- return o.extent = e, o.pixelRatio_ = n, o.resolution = r, o.state = i, o
- }
-
- return Li(e, t), e.prototype.changed = function () {
- this.dispatchEvent(F)
- }, e.prototype.getExtent = function () {
- return this.extent
- }, e.prototype.getImage = function () {
- return n()
- }, e.prototype.getPixelRatio = function () {
- return this.pixelRatio_
- }, e.prototype.getResolution = function () {
- return this.resolution
- }, e.prototype.getState = function () {
- return this.state
- }, e.prototype.load = function () {
- n()
- }, e
- }(M), Fi = 0, Ai = 1, ki = 2, ji = 3, Ni = 4,
- Di = "undefined" != typeof navigator && void 0 !== navigator.userAgent ? navigator.userAgent.toLowerCase() : "",
- Gi = -1 !== Di.indexOf("firefox"), zi = -1 !== Di.indexOf("safari") && -1 == Di.indexOf("chrom"),
- Ui = -1 !== Di.indexOf("webkit") && -1 == Di.indexOf("edge"), Bi = -1 !== Di.indexOf("macintosh"),
- Vi = "undefined" != typeof devicePixelRatio ? devicePixelRatio : 1,
- Yi = "undefined" != typeof WorkerGlobalScope && "undefined" != typeof OffscreenCanvas && self instanceof WorkerGlobalScope,
- Wi = "undefined" != typeof Image && Image.prototype.decode, qi = function () {
- var t = !1;
- try {
- var e = Object.defineProperty({}, "passive", {
- get: function () {
- t = !0
- }
- });
- window.addEventListener("_", null, e), window.removeEventListener("_", null, e)
- } catch (t) {
- }
- return t
- }(), Xi = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }();
-
- function Zi(t, e, r) {
- var n = t;
- if (n.src && Wi) {
- var i = n.decode(), o = !0;
- return i.then((function () {
- o && e()
- })).catch((function (t) {
- o && ("EncodingError" === t.name && "Invalid image type." === t.message ? e() : r())
- })), function () {
- o = !1
- }
- }
- var a = [K(n, Y, e), K(n, A, r)];
- return function () {
- a.forEach(H)
- }
- }
-
- var Ki = function (t) {
- function e(e, r, n, i, o, a) {
- var s = t.call(this, e, r, n, Fi) || this;
- return s.src_ = i, s.image_ = new Image, null !== o && (s.image_.crossOrigin = o), s.unlisten_ = null, s.state = Fi, s.imageLoadFunction_ = a, s
- }
-
- return Xi(e, t), e.prototype.getImage = function () {
- return this.image_
- }, e.prototype.handleImageError_ = function () {
- this.state = ji, this.unlistenImage_(), this.changed()
- }, e.prototype.handleImageLoad_ = function () {
- void 0 === this.resolution && (this.resolution = Ee(this.extent) / this.image_.height), this.state = ki, this.unlistenImage_(), this.changed()
- }, e.prototype.load = function () {
- this.state != Fi && this.state != ji || (this.state = Ai, this.changed(), this.imageLoadFunction_(this, this.src_), this.unlisten_ = Zi(this.image_, this.handleImageLoad_.bind(this), this.handleImageError_.bind(this)))
- }, e.prototype.setImage = function (t) {
- this.image_ = t
- }, e.prototype.unlistenImage_ = function () {
- this.unlisten_ && (this.unlisten_(), this.unlisten_ = null)
- }, e
- }(Mi), Hi = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), $i = function (t) {
- function e(e, r, n, i, o) {
- var a = this, s = void 0 !== o ? Fi : ki;
- return (a = t.call(this, e, r, n, s) || this).loader_ = void 0 !== o ? o : null, a.canvas_ = i, a.error_ = null, a
- }
-
- return Hi(e, t), e.prototype.getError = function () {
- return this.error_
- }, e.prototype.handleLoad_ = function (t) {
- t ? (this.error_ = t, this.state = ji) : this.state = ki, this.changed()
- }, e.prototype.load = function () {
- this.state == Fi && (this.state = Ai, this.changed(), this.loader_(this.handleLoad_.bind(this)))
- }, e.prototype.getImage = function () {
- return this.canvas_
- }, e
- }(Mi), Ji = 0, Qi = 1, to = 2, eo = 3, ro = 4;
-
- function no(t) {
- return Math.pow(t, 3)
- }
-
- function io(t) {
- return 1 - no(1 - t)
- }
-
- function oo(t) {
- return 3 * t * t - 2 * t * t * t
- }
-
- function ao(t) {
- return t
- }
-
- var so = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), lo = function (t) {
- function e(e, r, n) {
- var i = t.call(this) || this, o = n || {};
- return i.tileCoord = e, i.state = r, i.interimTile = null, i.hifi = !0, i.key = "", i.transition_ = void 0 === o.transition ? 250 : o.transition, i.transitionStarts_ = {}, i
- }
-
- return so(e, t), e.prototype.changed = function () {
- this.dispatchEvent(F)
- }, e.prototype.release = function () {
- }, e.prototype.getKey = function () {
- return this.key + "/" + this.tileCoord
- }, e.prototype.getInterimTile = function () {
- if (!this.interimTile) return this;
- var t = this.interimTile;
- do {
- if (t.getState() == to) return this.transition_ = 0, t;
- t = t.interimTile
- } while (t);
- return this
- }, e.prototype.refreshInterimChain = function () {
- if (this.interimTile) {
- var t = this.interimTile, e = this;
- do {
- if (t.getState() == to) {
- t.interimTile = null;
- break
- }
- t.getState() == Qi ? e = t : t.getState() == Ji ? e.interimTile = t.interimTile : e = t, t = e.interimTile
- } while (t)
- }
- }, e.prototype.getTileCoord = function () {
- return this.tileCoord
- }, e.prototype.getState = function () {
- return this.state
- }, e.prototype.setState = function (t) {
- if (this.state !== eo && this.state > t) throw new Error("Tile load sequence violation");
- this.state = t, this.changed()
- }, e.prototype.load = function () {
- n()
- }, e.prototype.getAlpha = function (t, e) {
- if (!this.transition_) return 1;
- var r = this.transitionStarts_[t];
- if (r) {
- if (-1 === r) return 1
- } else r = e, this.transitionStarts_[t] = r;
- var n = e - r + 1e3 / 60;
- return n >= this.transition_ ? 1 : no(n / this.transition_)
- }, e.prototype.inTransition = function (t) {
- return !!this.transition_ && -1 !== this.transitionStarts_[t]
- }, e.prototype.endTransition = function (t) {
- this.transition_ && (this.transitionStarts_[t] = -1)
- }, e
- }(M);
-
- function uo(t, e, r) {
- var n = r && r.length ? r.shift() : Yi ? new OffscreenCanvas(t || 300, e || 300) : document.createElement("canvas");
- return t && (n.width = t), e && (n.height = e), n.getContext("2d")
- }
-
- function co(t) {
- var e = t.offsetWidth, r = getComputedStyle(t);
- return e += parseInt(r.marginLeft, 10) + parseInt(r.marginRight, 10)
- }
-
- function ho(t) {
- var e = t.offsetHeight, r = getComputedStyle(t);
- return e += parseInt(r.marginTop, 10) + parseInt(r.marginBottom, 10)
- }
-
- function po(t, e) {
- var r = e.parentNode;
- r && r.replaceChild(t, e)
- }
-
- function fo(t) {
- return t && t.parentNode ? t.parentNode.removeChild(t) : null
- }
-
- function go(t) {
- for (; t.lastChild;) t.removeChild(t.lastChild)
- }
-
- function yo(t, e) {
- for (var r = t.childNodes, n = 0; ; ++n) {
- var i = r[n], o = e[n];
- if (!i && !o) break;
- i !== o && (i ? o ? t.insertBefore(o, i) : (t.removeChild(i), --n) : t.appendChild(o))
- }
- }
-
- var mo = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }();
- var vo = function (t) {
- function e(e, r, n, i, o, a) {
- var s = t.call(this, e, r, a) || this;
- return s.crossOrigin_ = i, s.src_ = n, s.key = n, s.image_ = new Image, null !== i && (s.image_.crossOrigin = i), s.unlisten_ = null, s.tileLoadFunction_ = o, s
- }
-
- return mo(e, t), e.prototype.getImage = function () {
- return this.image_
- }, e.prototype.handleImageError_ = function () {
- var t;
- this.state = eo, this.unlistenImage_(), this.image_ = ((t = uo(1, 1)).fillStyle = "rgba(0,0,0,0)", t.fillRect(0, 0, 1, 1), t.canvas), this.changed()
- }, e.prototype.handleImageLoad_ = function () {
- var t = this.image_;
- t.naturalWidth && t.naturalHeight ? this.state = to : this.state = ro, this.unlistenImage_(), this.changed()
- }, e.prototype.load = function () {
- this.state == eo && (this.state = Ji, this.image_ = new Image, null !== this.crossOrigin_ && (this.image_.crossOrigin = this.crossOrigin_)), this.state == Ji && (this.state = Qi, this.changed(), this.tileLoadFunction_(this, this.src_), this.unlisten_ = Zi(this.image_, this.handleImageLoad_.bind(this), this.handleImageError_.bind(this)))
- }, e.prototype.unlistenImage_ = function () {
- this.unlisten_ && (this.unlisten_(), this.unlisten_ = null)
- }, e
- }(lo), _o = function () {
- function t(t, e, r) {
- this.decay_ = t, this.minVelocity_ = e, this.delay_ = r, this.points_ = [], this.angle_ = 0, this.initialVelocity_ = 0
- }
-
- return t.prototype.begin = function () {
- this.points_.length = 0, this.angle_ = 0, this.initialVelocity_ = 0
- }, t.prototype.update = function (t, e) {
- this.points_.push(t, e, Date.now())
- }, t.prototype.end = function () {
- if (this.points_.length < 6) return !1;
- var t = Date.now() - this.delay_, e = this.points_.length - 3;
- if (this.points_[e + 2] < t) return !1;
- for (var r = e - 3; r > 0 && this.points_[r + 2] > t;) r -= 3;
- var n = this.points_[e + 2] - this.points_[r + 2];
- if (n < 1e3 / 60) return !1;
- var i = this.points_[e] - this.points_[r], o = this.points_[e + 1] - this.points_[r + 1];
- return this.angle_ = Math.atan2(o, i), this.initialVelocity_ = Math.sqrt(i * i + o * o) / n, this.initialVelocity_ > this.minVelocity_
- }, t.prototype.getDistance = function () {
- return (this.minVelocity_ - this.initialVelocity_) / this.decay_
- }, t.prototype.getAngle = function () {
- return this.angle_
- }, t
- }(), bo = /^#([a-f0-9]{3}|[a-f0-9]{4}(?:[a-f0-9]{2}){0,2})$/i, xo = /^([a-z]*)$|^hsla?\(.*\)$/i;
-
- function wo(t) {
- return "string" == typeof t ? t : Ro(t)
- }
-
- function So(t) {
- var e = document.createElement("div");
- if (e.style.color = t, "" !== e.style.color) {
- document.body.appendChild(e);
- var r = getComputedStyle(e).color;
- return document.body.removeChild(e), r
- }
- return ""
- }
-
- var Eo, To, Co = (Eo = {}, To = 0, function (t) {
- var e;
- if (Eo.hasOwnProperty(t)) e = Eo[t]; else {
- if (To >= 1024) {
- var r = 0;
- for (var n in Eo) 0 == (3 & r++) && (delete Eo[n], --To)
- }
- e = function (t) {
- var e, r, n, i, o;
- if (xo.exec(t) && (t = So(t)), bo.exec(t)) {
- var a = t.length - 1, s = void 0;
- s = a <= 4 ? 1 : 2;
- var l = 4 === a || 8 === a;
- e = parseInt(t.substr(1 + 0 * s, s), 16), r = parseInt(t.substr(1 + 1 * s, s), 16), n = parseInt(t.substr(1 + 2 * s, s), 16), i = l ? parseInt(t.substr(1 + 3 * s, s), 16) : 255, 1 == s && (e = (e << 4) + e, r = (r << 4) + r, n = (n << 4) + n, l && (i = (i << 4) + i)), o = [e, r, n, i / 255]
- } else 0 == t.indexOf("rgba(") ? Po(o = t.slice(5, -1).split(",").map(Number)) : 0 == t.indexOf("rgb(") ? ((o = t.slice(4, -1).split(",").map(Number)).push(1), Po(o)) : pt(!1, 14);
- return o
- }(t), Eo[t] = e, ++To
- }
- return e
- });
-
- function Oo(t) {
- return Array.isArray(t) ? t : Co(t)
- }
-
- function Po(t) {
- return t[0] = Ne(t[0] + .5 | 0, 0, 255), t[1] = Ne(t[1] + .5 | 0, 0, 255), t[2] = Ne(t[2] + .5 | 0, 0, 255), t[3] = Ne(t[3], 0, 1), t
- }
-
- function Ro(t) {
- var e = t[0];
- e != (0 | e) && (e = e + .5 | 0);
- var r = t[1];
- r != (0 | r) && (r = r + .5 | 0);
- var n = t[2];
- return n != (0 | n) && (n = n + .5 | 0), "rgba(" + e + "," + r + "," + n + "," + (void 0 === t[3] ? 1 : t[3]) + ")"
- }
-
- function Io(t) {
- return xo.test(t) && (t = So(t)), bo.test(t) || 0 === t.indexOf("rgba(") || 0 === t.indexOf("rgb(")
- }
-
- var Lo = function () {
- function t() {
- this.cache_ = {}, this.cacheSize_ = 0, this.maxCacheSize_ = 32
- }
-
- return t.prototype.clear = function () {
- this.cache_ = {}, this.cacheSize_ = 0
- }, t.prototype.canExpireCache = function () {
- return this.cacheSize_ > this.maxCacheSize_
- }, t.prototype.expire = function () {
- if (this.canExpireCache()) {
- var t = 0;
- for (var e in this.cache_) {
- var r = this.cache_[e];
- 0 != (3 & t++) || r.hasListener() || (delete this.cache_[e], --this.cacheSize_)
- }
- }
- }, t.prototype.get = function (t, e, r) {
- var n = Mo(t, e, r);
- return n in this.cache_ ? this.cache_[n] : null
- }, t.prototype.set = function (t, e, r, n) {
- var i = Mo(t, e, r);
- this.cache_[i] = n, ++this.cacheSize_
- }, t.prototype.setSize = function (t) {
- this.maxCacheSize_ = t, this.expire()
- }, t
- }();
-
- function Mo(t, e, r) {
- return e + ":" + t + ":" + (r ? wo(r) : "null")
- }
-
- var Fo = Lo, Ao = new Lo, ko = "opacity", jo = "visible", No = "extent", Do = "zIndex", Go = "maxResolution",
- zo = "minResolution", Uo = "maxZoom", Bo = "minZoom", Vo = "source", Yo = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Wo = function (t) {
- function e(e) {
- var r = t.call(this) || this, n = O({}, e);
- return n[ko] = void 0 !== e.opacity ? e.opacity : 1, pt("number" == typeof n[ko], 64), n[jo] = void 0 === e.visible || e.visible, n[Do] = e.zIndex, n[Go] = void 0 !== e.maxResolution ? e.maxResolution : 1 / 0, n[zo] = void 0 !== e.minResolution ? e.minResolution : 0, n[Bo] = void 0 !== e.minZoom ? e.minZoom : -1 / 0, n[Uo] = void 0 !== e.maxZoom ? e.maxZoom : 1 / 0, r.className_ = void 0 !== n.className ? e.className : "ol-layer", delete n.className, r.setProperties(n), r.state_ = null, r
- }
-
- return Yo(e, t), e.prototype.getClassName = function () {
- return this.className_
- }, e.prototype.getLayerState = function (t) {
- var e = this.state_ || {layer: this, managed: void 0 === t || t}, r = this.getZIndex();
- return e.opacity = Ne(Math.round(100 * this.getOpacity()) / 100, 0, 1), e.sourceState = this.getSourceState(), e.visible = this.getVisible(), e.extent = this.getExtent(), e.zIndex = void 0 !== r ? r : !1 === e.managed ? 1 / 0 : 0, e.maxResolution = this.getMaxResolution(), e.minResolution = Math.max(this.getMinResolution(), 0), e.minZoom = this.getMinZoom(), e.maxZoom = this.getMaxZoom(), this.state_ = e, e
- }, e.prototype.getLayersArray = function (t) {
- return n()
- }, e.prototype.getLayerStatesArray = function (t) {
- return n()
- }, e.prototype.getExtent = function () {
- return this.get(No)
- }, e.prototype.getMaxResolution = function () {
- return this.get(Go)
- }, e.prototype.getMinResolution = function () {
- return this.get(zo)
- }, e.prototype.getMinZoom = function () {
- return this.get(Bo)
- }, e.prototype.getMaxZoom = function () {
- return this.get(Uo)
- }, e.prototype.getOpacity = function () {
- return this.get(ko)
- }, e.prototype.getSourceState = function () {
- return n()
- }, e.prototype.getVisible = function () {
- return this.get(jo)
- }, e.prototype.getZIndex = function () {
- return this.get(Do)
- }, e.prototype.setExtent = function (t) {
- this.set(No, t)
- }, e.prototype.setMaxResolution = function (t) {
- this.set(Go, t)
- }, e.prototype.setMinResolution = function (t) {
- this.set(zo, t)
- }, e.prototype.setMaxZoom = function (t) {
- this.set(Uo, t)
- }, e.prototype.setMinZoom = function (t) {
- this.set(Bo, t)
- }, e.prototype.setOpacity = function (t) {
- pt("number" == typeof t, 64), this.set(ko, t)
- }, e.prototype.setVisible = function (t) {
- this.set(jo, t)
- }, e.prototype.setZIndex = function (t) {
- this.set(Do, t)
- }, e.prototype.disposeInternal = function () {
- this.state_ && (this.state_.layer = null, this.state_ = null), t.prototype.disposeInternal.call(this)
- }, e
- }(ot), qo = "prerender", Xo = "postrender", Zo = "precompose", Ko = "postcompose", Ho = "rendercomplete",
- $o = "undefined", Jo = "loading", Qo = "ready", ta = "error", ea = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }();
-
- function ra(t, e) {
- if (!t.visible) return !1;
- var r = e.resolution;
- if (r < t.minResolution || r >= t.maxResolution) return !1;
- var n = e.zoom;
- return n > t.minZoom && n <= t.maxZoom
- }
-
- var na = function (t) {
- function e(e) {
- var r = this, n = O({}, e);
- delete n.source, (r = t.call(this, n) || this).mapPrecomposeKey_ = null, r.mapRenderKey_ = null, r.sourceChangeKey_ = null, r.renderer_ = null, e.render && (r.render = e.render), e.map && r.setMap(e.map), r.addEventListener(it(Vo), r.handleSourcePropertyChange_);
- var i = e.source ? e.source : null;
- return r.setSource(i), r
- }
-
- return ea(e, t), e.prototype.getLayersArray = function (t) {
- var e = t || [];
- return e.push(this), e
- }, e.prototype.getLayerStatesArray = function (t) {
- var e = t || [];
- return e.push(this.getLayerState()), e
- }, e.prototype.getSource = function () {
- return this.get(Vo) || null
- }, e.prototype.getSourceState = function () {
- var t = this.getSource();
- return t ? t.getState() : $o
- }, e.prototype.handleSourceChange_ = function () {
- this.changed()
- }, e.prototype.handleSourcePropertyChange_ = function () {
- this.sourceChangeKey_ && (H(this.sourceChangeKey_), this.sourceChangeKey_ = null);
- var t = this.getSource();
- t && (this.sourceChangeKey_ = Z(t, F, this.handleSourceChange_, this)), this.changed()
- }, e.prototype.getFeatures = function (t) {
- return this.renderer_.getFeatures(t)
- }, e.prototype.render = function (t, e) {
- var r = this.getRenderer();
- if (r.prepareFrame(t)) return r.renderFrame(t, e)
- }, e.prototype.setMap = function (t) {
- this.mapPrecomposeKey_ && (H(this.mapPrecomposeKey_), this.mapPrecomposeKey_ = null), t || this.changed(), this.mapRenderKey_ && (H(this.mapRenderKey_), this.mapRenderKey_ = null), t && (this.mapPrecomposeKey_ = Z(t, Zo, (function (t) {
- var e = t.frameState.layerStatesArray, r = this.getLayerState(!1);
- pt(!e.some((function (t) {
- return t.layer === r.layer
- })), 67), e.push(r)
- }), this), this.mapRenderKey_ = Z(this, F, t.render, t), this.changed())
- }, e.prototype.setSource = function (t) {
- this.set(Vo, t)
- }, e.prototype.getRenderer = function () {
- return this.renderer_ || (this.renderer_ = this.createRenderer()), this.renderer_
- }, e.prototype.hasRenderer = function () {
- return !!this.renderer_
- }, e.prototype.createRenderer = function () {
- return null
- }, e.prototype.disposeInternal = function () {
- this.setSource(null), t.prototype.disposeInternal.call(this)
- }, e
- }(Wo), ia = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }();
-
- function oa(t, e) {
- Ao.expire()
- }
-
- var aa = function (t) {
- function e(e) {
- var r = t.call(this) || this;
- return r.map_ = e, r
- }
-
- return ia(e, t), e.prototype.dispatchRenderEvent = function (t, e) {
- n()
- }, e.prototype.calculateMatrices2D = function (t) {
- var e = t.viewState, r = t.coordinateToPixelTransform, n = t.pixelToCoordinateTransform;
- kt(r, t.size[0] / 2, t.size[1] / 2, 1 / e.resolution, -1 / e.resolution, -e.rotation, -e.center[0], -e.center[1]), jt(n, r)
- }, e.prototype.forEachFeatureAtCoordinate = function (t, e, r, n, i, o, a, s) {
- var l, u = e.viewState;
-
- function c(t, e, r, n) {
- return i.call(o, e, t ? r : null, n)
- }
-
- var h = u.projection, p = Fr(t.slice(), h), f = [[0, 0]];
- if (h.canWrapX() && n) {
- var d = Pe(h.getExtent());
- f.push([-d, 0], [d, 0])
- }
- for (var g = e.layerStatesArray, y = g.length, m = [], v = [], _ = 0; _ < f.length; _++) for (var b = y - 1; b >= 0; --b) {
- var x = g[b], w = x.layer;
- if (w.hasRenderer() && ra(x, u) && a.call(s, w)) {
- var S = w.getRenderer(), E = w.getSource();
- if (S && E) {
- var T = E.getWrapX() ? p : t, C = c.bind(null, x.managed);
- v[0] = T[0] + f[_][0], v[1] = T[1] + f[_][1], l = S.forEachFeatureAtCoordinate(v, e, r, C, m)
- }
- if (l) return l
- }
- }
- if (0 !== m.length) {
- var O = 1 / m.length;
- return m.forEach((function (t, e) {
- return t.distanceSq += e * O
- })), m.sort((function (t, e) {
- return t.distanceSq - e.distanceSq
- })), m.some((function (t) {
- return l = t.callback(t.feature, t.layer, t.geometry)
- })), l
- }
- }, e.prototype.forEachLayerAtPixel = function (t, e, r, i, o) {
- return n()
- }, e.prototype.hasFeatureAtCoordinate = function (t, e, r, n, i, o) {
- return void 0 !== this.forEachFeatureAtCoordinate(t, e, r, n, S, this, i, o)
- }, e.prototype.getMap = function () {
- return this.map_
- }, e.prototype.renderFrame = function (t) {
- n()
- }, e.prototype.scheduleExpireIconCache = function (t) {
- Ao.canExpireCache() && t.postRenderFunctions.push(oa)
- }, e
- }(p), sa = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), la = function (t) {
- function e(e, r, n, i) {
- var o = t.call(this, e) || this;
- return o.inversePixelTransform = r, o.frameState = n, o.context = i, o
- }
-
- return sa(e, t), e
- }(c),
- ua = new RegExp(["^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)", "(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)", "(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00 ))?)", "(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?", "(?:small|large)|medium|smaller|larger|[\\.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))", "(?:\\s*\\/\\s*(normal|[\\.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])?))", "?\\s*([-,\\\"\\'\\sa-z]+?)\\s*$"].join(""), "i"),
- ca = ["style", "variant", "weight", "size", "lineHeight", "family"], ha = function (t) {
- var e = t.match(ua);
- if (!e) return null;
- for (var r = {
- lineHeight: "normal",
- size: "1.2em",
- style: "normal",
- weight: "normal",
- variant: "normal"
- }, n = 0, i = ca.length; n < i; ++n) {
- var o = e[n + 1];
- void 0 !== o && (r[ca[n]] = o)
- }
- return r.families = r.family.split(/,\s?/), r
- }, pa = [], fa = [0, 0, 0, 0], da = new ot, ga = new M;
- ga.setSize = function () {
- console.warn("labelCache is deprecated.")
- };
- var ya, ma, va = null, _a = {}, ba = function () {
- var t, e, r = ["monospace", "serif"], n = r.length, i = "wmytzilWMYTZIL@#/&?$%10";
-
- function o(t, o, a) {
- for (var s = !0, l = 0; l < n; ++l) {
- var u = r[l];
- if (e = Sa(t + " " + o + " 32px " + u, i), a != u) {
- var c = Sa(t + " " + o + " 32px " + a + "," + u, i);
- s = s && c != e
- }
- }
- return !!s
- }
-
- function a() {
- for (var e = !0, r = da.getKeys(), n = 0, i = r.length; n < i; ++n) {
- var a = r[n];
- da.get(a) < 100 && (o.apply(this, a.split("\n")) ? (P(_a), va = null, ya = void 0, da.set(a, 100)) : (da.set(a, da.get(a) + 1, !0), e = !1))
- }
- e && (clearInterval(t), t = void 0)
- }
-
- return function (e) {
- var r = ha(e);
- if (r) for (var n = r.families, i = 0, s = n.length; i < s; ++i) {
- var l = n[i], u = r.style + "\n" + r.weight + "\n" + l;
- void 0 === da.get(u) && (da.set(u, 100, !0), o(r.style, r.weight, l) || (da.set(u, 0, !0), void 0 === t && (t = setInterval(a, 32))))
- }
- }
- }(), xa = function (t) {
- var e = _a[t];
- if (null == e) {
- if (Yi) {
- var r = ha(t), n = wa(t, "Žg");
- e = (isNaN(Number(r.lineHeight)) ? 1.2 : Number(r.lineHeight)) * (n.actualBoundingBoxAscent + n.actualBoundingBoxDescent)
- } else ma || ((ma = document.createElement("div")).innerHTML = "M", ma.style.margin = "0 !important", ma.style.padding = "0 !important", ma.style.position = "absolute !important", ma.style.left = "-99999px !important"), ma.style.font = t, document.body.appendChild(ma), e = ma.offsetHeight, document.body.removeChild(ma);
- _a[t] = e
- }
- return e
- };
-
- function wa(t, e) {
- return va || (va = uo(1, 1)), t != ya && (va.font = t, ya = va.font), va.measureText(e)
- }
-
- function Sa(t, e) {
- return wa(t, e).width
- }
-
- function Ea(t, e, r) {
- if (e in r) return r[e];
- var n = Sa(t, e);
- return r[e] = n, n
- }
-
- function Ta(t, e, r) {
- for (var n = e.length, i = 0, o = 0; o < n; ++o) {
- var a = Sa(t, e[o]);
- i = Math.max(i, a), r.push(a)
- }
- return i
- }
-
- function Ca(t, e, r, n) {
- 0 !== e && (t.translate(r, n), t.rotate(e), t.translate(-r, -n))
- }
-
- function Oa(t, e, r, n, i, o, a, s, l, u, c) {
- t.save(), 1 !== r && (t.globalAlpha *= r), e && t.setTransform.apply(t, e), n.contextInstructions ? (t.translate(l, u), t.scale(c[0], c[1]), function (t, e) {
- for (var r = t.contextInstructions, n = 0, i = r.length; n < i; n += 2) Array.isArray(r[n + 1]) ? e[r[n]].apply(e, r[n + 1]) : e[r[n]] = r[n + 1]
- }(n, t)) : c[0] < 0 || c[1] < 0 ? (t.translate(l, u), t.scale(c[0], c[1]), t.drawImage(n, i, o, a, s, 0, 0, a, s)) : t.drawImage(n, i, o, a, s, l, u, a * c[0], s * c[1]), t.restore()
- }
-
- var Pa = null;
-
- function Ra(t) {
- return Yi ? Dt(t) : (Pa || (Pa = uo(1, 1).canvas), Pa.style.transform = Dt(t), Pa.style.transform)
- }
-
- var Ia = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), La = function (t) {
- function e(e) {
- var r = t.call(this, e) || this;
- r.fontChangeListenerKey_ = Z(da, h, e.redrawText.bind(e)), r.element_ = document.createElement("div");
- var n = r.element_.style;
- n.position = "absolute", n.width = "100%", n.height = "100%", n.zIndex = "0", r.element_.className = "ol-unselectable ol-layers";
- var i = e.getViewport();
- return i.insertBefore(r.element_, i.firstChild || null), r.children_ = [], r.renderedVisible_ = !0, r
- }
-
- return Ia(e, t), e.prototype.dispatchRenderEvent = function (t, e) {
- var r = this.getMap();
- if (r.hasListener(t)) {
- var n = new la(t, void 0, e);
- r.dispatchEvent(n)
- }
- }, e.prototype.disposeInternal = function () {
- H(this.fontChangeListenerKey_), this.element_.parentNode.removeChild(this.element_), t.prototype.disposeInternal.call(this)
- }, e.prototype.renderFrame = function (t) {
- if (t) {
- this.calculateMatrices2D(t), this.dispatchRenderEvent(Zo, t);
- var e = t.layerStatesArray.sort((function (t, e) {
- return t.zIndex - e.zIndex
- })), r = t.viewState;
- this.children_.length = 0;
- for (var n = [], i = null, o = 0, a = e.length; o < a; ++o) {
- var s = e[o];
- if (t.layerIndex = o, ra(s, r) && (s.sourceState == Qo || s.sourceState == $o)) {
- var l = s.layer, u = l.render(t, i);
- u && (u !== i && (this.children_.push(u), i = u), "getDeclutter" in l && n.push(l))
- }
- }
- for (o = n.length - 1; o >= 0; --o) n[o].renderDeclutter(t);
- yo(this.element_, this.children_), this.dispatchRenderEvent(Ko, t), this.renderedVisible_ || (this.element_.style.display = "", this.renderedVisible_ = !0), this.scheduleExpireIconCache(t)
- } else this.renderedVisible_ && (this.element_.style.display = "none", this.renderedVisible_ = !1)
- }, e.prototype.forEachLayerAtPixel = function (t, e, r, n, i) {
- for (var o = e.viewState, a = e.layerStatesArray, s = a.length - 1; s >= 0; --s) {
- var l = a[s], u = l.layer;
- if (u.hasRenderer() && ra(l, o) && i(u)) {
- var c = u.getRenderer().getDataAtPixel(t, e, r);
- if (c) {
- var h = n(u, c);
- if (h) return h
- }
- }
- }
- }, e
- }(aa), Ma = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Fa = "layers", Aa = function (t) {
- function e(e) {
- var r = this, n = e || {}, i = O({}, n);
- delete i.layers;
- var o = n.layers;
- return (r = t.call(this, i) || this).layersListenerKeys_ = [], r.listenerKeys_ = {}, r.addEventListener(it(Fa), r.handleLayersChanged_), o ? Array.isArray(o) ? o = new ht(o.slice(), {unique: !0}) : pt("function" == typeof o.getArray, 43) : o = new ht(void 0, {unique: !0}), r.setLayers(o), r
- }
-
- return Ma(e, t), e.prototype.handleLayerChange_ = function () {
- this.changed()
- }, e.prototype.handleLayersChanged_ = function () {
- this.layersListenerKeys_.forEach(H), this.layersListenerKeys_.length = 0;
- var t = this.getLayers();
- for (var e in this.layersListenerKeys_.push(Z(t, at, this.handleLayersAdd_, this), Z(t, st, this.handleLayersRemove_, this)), this.listenerKeys_) this.listenerKeys_[e].forEach(H);
- P(this.listenerKeys_);
- for (var r = t.getArray(), n = 0, i = r.length; n < i; n++) {
- var a = r[n];
- this.listenerKeys_[o(a)] = [Z(a, h, this.handleLayerChange_, this), Z(a, F, this.handleLayerChange_, this)]
- }
- this.changed()
- }, e.prototype.handleLayersAdd_ = function (t) {
- var e = t.element;
- this.listenerKeys_[o(e)] = [Z(e, h, this.handleLayerChange_, this), Z(e, F, this.handleLayerChange_, this)], this.changed()
- }, e.prototype.handleLayersRemove_ = function (t) {
- var e = o(t.element);
- this.listenerKeys_[e].forEach(H), delete this.listenerKeys_[e], this.changed()
- }, e.prototype.getLayers = function () {
- return this.get(Fa)
- }, e.prototype.setLayers = function (t) {
- this.set(Fa, t)
- }, e.prototype.getLayersArray = function (t) {
- var e = void 0 !== t ? t : [];
- return this.getLayers().forEach((function (t) {
- t.getLayersArray(e)
- })), e
- }, e.prototype.getLayerStatesArray = function (t) {
- var e = void 0 !== t ? t : [], r = e.length;
- this.getLayers().forEach((function (t) {
- t.getLayerStatesArray(e)
- }));
- for (var n = this.getLayerState(), i = r, o = e.length; i < o; i++) {
- var a = e[i];
- a.opacity *= n.opacity, a.visible = a.visible && n.visible, a.maxResolution = Math.min(a.maxResolution, n.maxResolution), a.minResolution = Math.max(a.minResolution, n.minResolution), a.minZoom = Math.max(a.minZoom, n.minZoom), a.maxZoom = Math.min(a.maxZoom, n.maxZoom), void 0 !== n.extent && (void 0 !== a.extent ? a.extent = Te(a.extent, n.extent) : a.extent = n.extent)
- }
- return e
- }, e.prototype.getSourceState = function () {
- return Qo
- }, e
- }(Wo), ka = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), ja = function (t) {
- function e(e, r, n) {
- var i = t.call(this, e) || this;
- return i.map = r, i.frameState = void 0 !== n ? n : null, i
- }
-
- return ka(e, t), e
- }(c), Na = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Da = function (t) {
- function e(e, r, n, i, o) {
- var a = t.call(this, e, r, o) || this;
- return a.originalEvent = n, a.pixel_ = null, a.coordinate_ = null, a.dragging = void 0 !== i && i, a
- }
-
- return Na(e, t), Object.defineProperty(e.prototype, "pixel", {
- get: function () {
- return this.pixel_ || (this.pixel_ = this.map.getEventPixel(this.originalEvent)), this.pixel_
- }, set: function (t) {
- this.pixel_ = t
- }, enumerable: !1, configurable: !0
- }), Object.defineProperty(e.prototype, "coordinate", {
- get: function () {
- return this.coordinate_ || (this.coordinate_ = this.map.getCoordinateFromPixel(this.pixel)), this.coordinate_
- }, set: function (t) {
- this.coordinate_ = t
- }, enumerable: !1, configurable: !0
- }), e.prototype.preventDefault = function () {
- t.prototype.preventDefault.call(this), this.originalEvent.preventDefault()
- }, e.prototype.stopPropagation = function () {
- t.prototype.stopPropagation.call(this), this.originalEvent.stopPropagation()
- }, e
- }(ja), Ga = {
- SINGLECLICK: "singleclick",
- CLICK: N,
- DBLCLICK: D,
- POINTERDRAG: "pointerdrag",
- POINTERMOVE: "pointermove",
- POINTERDOWN: "pointerdown",
- POINTERUP: "pointerup",
- POINTEROVER: "pointerover",
- POINTEROUT: "pointerout",
- POINTERENTER: "pointerenter",
- POINTERLEAVE: "pointerleave",
- POINTERCANCEL: "pointercancel"
- }, za = "pointermove", Ua = "pointerdown", Ba = "pointerup", Va = "pointerout", Ya = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Wa = function (t) {
- function e(e, r) {
- var n = t.call(this, e) || this;
- n.map_ = e, n.clickTimeoutId_, n.emulateClicks_ = !1, n.dragging_ = !1, n.dragListenerKeys_ = [], n.moveTolerance_ = r ? r * Vi : Vi, n.down_ = null;
- var i = n.map_.getViewport();
- return n.activePointers_ = 0, n.trackedTouches_ = {}, n.element_ = i, n.pointerdownListenerKey_ = Z(i, Ua, n.handlePointerDown_, n), n.originalPointerMoveEvent_, n.relayedListenerKey_ = Z(i, za, n.relayEvent_, n), n.boundHandleTouchMove_ = n.handleTouchMove_.bind(n), n.element_.addEventListener(q, n.boundHandleTouchMove_, !!qi && {passive: !1}), n
- }
-
- return Ya(e, t), e.prototype.emulateClick_ = function (t) {
- var e = new Da(Ga.CLICK, this.map_, t);
- this.dispatchEvent(e), void 0 !== this.clickTimeoutId_ ? (clearTimeout(this.clickTimeoutId_), this.clickTimeoutId_ = void 0, e = new Da(Ga.DBLCLICK, this.map_, t), this.dispatchEvent(e)) : this.clickTimeoutId_ = setTimeout(function () {
- this.clickTimeoutId_ = void 0;
- var e = new Da(Ga.SINGLECLICK, this.map_, t);
- this.dispatchEvent(e)
- }.bind(this), 250)
- }, e.prototype.updateActivePointers_ = function (t) {
- var e = t;
- e.type == Ga.POINTERUP || e.type == Ga.POINTERCANCEL ? delete this.trackedTouches_[e.pointerId] : e.type == Ga.POINTERDOWN && (this.trackedTouches_[e.pointerId] = !0), this.activePointers_ = Object.keys(this.trackedTouches_).length
- }, e.prototype.handlePointerUp_ = function (t) {
- this.updateActivePointers_(t);
- var e = new Da(Ga.POINTERUP, this.map_, t);
- this.dispatchEvent(e), this.emulateClicks_ && !e.propagationStopped && !this.dragging_ && this.isMouseActionButton_(t) && this.emulateClick_(this.down_), 0 === this.activePointers_ && (this.dragListenerKeys_.forEach(H), this.dragListenerKeys_.length = 0, this.dragging_ = !1, this.down_ = null)
- }, e.prototype.isMouseActionButton_ = function (t) {
- return 0 === t.button
- }, e.prototype.handlePointerDown_ = function (t) {
- this.emulateClicks_ = 0 === this.activePointers_, this.updateActivePointers_(t);
- var e = new Da(Ga.POINTERDOWN, this.map_, t);
- if (this.dispatchEvent(e), this.down_ = t, 0 === this.dragListenerKeys_.length) {
- var r = this.map_.getOwnerDocument();
- this.dragListenerKeys_.push(Z(r, Ga.POINTERMOVE, this.handlePointerMove_, this), Z(r, Ga.POINTERUP, this.handlePointerUp_, this), Z(this.element_, Ga.POINTERCANCEL, this.handlePointerUp_, this)), this.element_.getRootNode && this.element_.getRootNode() !== r && this.dragListenerKeys_.push(Z(this.element_.getRootNode(), Ga.POINTERUP, this.handlePointerUp_, this))
- }
- }, e.prototype.handlePointerMove_ = function (t) {
- if (this.isMoving_(t)) {
- this.dragging_ = !0;
- var e = new Da(Ga.POINTERDRAG, this.map_, t, this.dragging_);
- this.dispatchEvent(e)
- }
- }, e.prototype.relayEvent_ = function (t) {
- this.originalPointerMoveEvent_ = t;
- var e = !(!this.down_ || !this.isMoving_(t));
- this.dispatchEvent(new Da(t.type, this.map_, t, e))
- }, e.prototype.handleTouchMove_ = function (t) {
- this.originalPointerMoveEvent_ && !this.originalPointerMoveEvent_.defaultPrevented || t.preventDefault()
- }, e.prototype.isMoving_ = function (t) {
- return this.dragging_ || Math.abs(t.clientX - this.down_.clientX) > this.moveTolerance_ || Math.abs(t.clientY - this.down_.clientY) > this.moveTolerance_
- }, e.prototype.disposeInternal = function () {
- this.relayedListenerKey_ && (H(this.relayedListenerKey_), this.relayedListenerKey_ = null), this.element_.removeEventListener(q, this.boundHandleTouchMove_), this.pointerdownListenerKey_ && (H(this.pointerdownListenerKey_), this.pointerdownListenerKey_ = null), this.dragListenerKeys_.forEach(H), this.dragListenerKeys_.length = 0, this.element_ = null, t.prototype.disposeInternal.call(this)
- }, e
- }(M), qa = "postrender", Xa = "movestart", Za = "moveend", Ka = "layergroup", Ha = "size", $a = "target",
- Ja = "view", Qa = function () {
- function t(t, e) {
- this.priorityFunction_ = t, this.keyFunction_ = e, this.elements_ = [], this.priorities_ = [], this.queuedElements_ = {}
- }
-
- return t.prototype.clear = function () {
- this.elements_.length = 0, this.priorities_.length = 0, P(this.queuedElements_)
- }, t.prototype.dequeue = function () {
- var t = this.elements_, e = this.priorities_, r = t[0];
- 1 == t.length ? (t.length = 0, e.length = 0) : (t[0] = t.pop(), e[0] = e.pop(), this.siftUp_(0));
- var n = this.keyFunction_(r);
- return delete this.queuedElements_[n], r
- }, t.prototype.enqueue = function (t) {
- pt(!(this.keyFunction_(t) in this.queuedElements_), 31);
- var e = this.priorityFunction_(t);
- return e != 1 / 0 && (this.elements_.push(t), this.priorities_.push(e), this.queuedElements_[this.keyFunction_(t)] = !0, this.siftDown_(0, this.elements_.length - 1), !0)
- }, t.prototype.getCount = function () {
- return this.elements_.length
- }, t.prototype.getLeftChildIndex_ = function (t) {
- return 2 * t + 1
- }, t.prototype.getRightChildIndex_ = function (t) {
- return 2 * t + 2
- }, t.prototype.getParentIndex_ = function (t) {
- return t - 1 >> 1
- }, t.prototype.heapify_ = function () {
- var t;
- for (t = (this.elements_.length >> 1) - 1; t >= 0; t--) this.siftUp_(t)
- }, t.prototype.isEmpty = function () {
- return 0 === this.elements_.length
- }, t.prototype.isKeyQueued = function (t) {
- return t in this.queuedElements_
- }, t.prototype.isQueued = function (t) {
- return this.isKeyQueued(this.keyFunction_(t))
- }, t.prototype.siftUp_ = function (t) {
- for (var e = this.elements_, r = this.priorities_, n = e.length, i = e[t], o = r[t], a = t; t < n >> 1;) {
- var s = this.getLeftChildIndex_(t), l = this.getRightChildIndex_(t), u = l < n && r[l] < r[s] ? l : s;
- e[t] = e[u], r[t] = r[u], t = u
- }
- e[t] = i, r[t] = o, this.siftDown_(a, t)
- }, t.prototype.siftDown_ = function (t, e) {
- for (var r = this.elements_, n = this.priorities_, i = r[e], o = n[e]; e > t;) {
- var a = this.getParentIndex_(e);
- if (!(n[a] > o)) break;
- r[e] = r[a], n[e] = n[a], e = a
- }
- r[e] = i, n[e] = o
- }, t.prototype.reprioritize = function () {
- var t, e, r, n = this.priorityFunction_, i = this.elements_, o = this.priorities_, a = 0, s = i.length;
- for (e = 0; e < s; ++e) (r = n(t = i[e])) == 1 / 0 ? delete this.queuedElements_[this.keyFunction_(t)] : (o[a] = r, i[a++] = t);
- i.length = a, o.length = a, this.heapify_()
- }, t
- }(), ts = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), es = function (t) {
- function e(e, r) {
- var n = t.call(this, (function (t) {
- return e.apply(null, t)
- }), (function (t) {
- return t[0].getKey()
- })) || this;
- return n.boundHandleTileChange_ = n.handleTileChange.bind(n), n.tileChangeCallback_ = r, n.tilesLoading_ = 0, n.tilesLoadingKeys_ = {}, n
- }
-
- return ts(e, t), e.prototype.enqueue = function (e) {
- var r = t.prototype.enqueue.call(this, e);
- r && e[0].addEventListener(F, this.boundHandleTileChange_);
- return r
- }, e.prototype.getTilesLoading = function () {
- return this.tilesLoading_
- }, e.prototype.handleTileChange = function (t) {
- var e = t.target, r = e.getState();
- if (e.hifi && r === to || r === eo || r === ro) {
- e.removeEventListener(F, this.boundHandleTileChange_);
- var n = e.getKey();
- n in this.tilesLoadingKeys_ && (delete this.tilesLoadingKeys_[n], --this.tilesLoading_), this.tileChangeCallback_()
- }
- }, e.prototype.loadMoreTiles = function (t, e) {
- for (var r, n, i = 0; this.tilesLoading_ < t && i < e && this.getCount() > 0;) n = (r = this.dequeue()[0]).getKey(), r.getState() !== Ji || n in this.tilesLoadingKeys_ || (this.tilesLoadingKeys_[n] = !0, ++this.tilesLoading_, ++i, r.load())
- }, e
- }(Qa);
-
- function rs(t, e, r, n, i) {
- if (!t || !(r in t.wantedTiles)) return 1 / 0;
- if (!t.wantedTiles[r][e.getKey()]) return 1 / 0;
- var o = t.viewState.center, a = n[0] - o[0], s = n[1] - o[1];
- return 65536 * Math.log(i) + Math.sqrt(a * a + s * s) / i
- }
-
- var ns = 0, is = 1, os = "center", as = "resolution", ss = "rotation";
-
- function ls(t, e, r) {
- return function (n, i, o, a, s) {
- if (n) {
- var l = e ? 0 : o[0] * i, u = e ? 0 : o[1] * i, c = s ? s[0] : 0, h = s ? s[1] : 0, p = t[0] + l / 2 + c,
- f = t[2] - l / 2 + c, d = t[1] + u / 2 + h, g = t[3] - u / 2 + h;
- p > f && (f = p = (f + p) / 2), d > g && (g = d = (g + d) / 2);
- var y = Ne(n[0], p, f), m = Ne(n[1], d, g), v = 30 * i;
- return a && r && (y += -v * Math.log(1 + Math.max(0, p - n[0]) / v) + v * Math.log(1 + Math.max(0, n[0] - f) / v), m += -v * Math.log(1 + Math.max(0, d - n[1]) / v) + v * Math.log(1 + Math.max(0, n[1] - g) / v)), [y, m]
- }
- }
- }
-
- function us(t) {
- return t
- }
-
- function cs(t, e, r, n) {
- var i = Pe(e) / r[0], o = Ee(e) / r[1];
- return n ? Math.min(t, Math.max(i, o)) : Math.min(t, Math.min(i, o))
- }
-
- function hs(t, e, r) {
- var n = Math.min(t, e);
- return n *= Math.log(1 + 50 * Math.max(0, t / e - 1)) / 50 + 1, r && (n = Math.max(n, r), n /= Math.log(1 + 50 * Math.max(0, r / t - 1)) / 50 + 1), Ne(n, r / 2, 2 * e)
- }
-
- function ps(t, e, r, n) {
- return function (i, o, a, s) {
- if (void 0 !== i) {
- var l = t[0], u = t[t.length - 1], c = r ? cs(l, r, a, n) : l;
- if (s) return void 0 === e || e ? hs(i, c, u) : Ne(i, u, c);
- var h = Math.min(c, i), p = Math.floor(y(t, h, o));
- return t[p] > c && p < t.length - 1 ? t[p + 1] : t[p]
- }
- }
- }
-
- function fs(t, e, r, n, i, o) {
- return function (a, s, l, u) {
- if (void 0 !== a) {
- var c = i ? cs(e, i, l, o) : e, h = void 0 !== r ? r : 0;
- if (u) return void 0 === n || n ? hs(a, c, h) : Ne(a, h, c);
- var p = Math.ceil(Math.log(e / c) / Math.log(t) - 1e-9), f = -s * (.5 - 1e-9) + .5, d = Math.min(c, a),
- g = Math.floor(Math.log(e / d) / Math.log(t) + f), y = Math.max(p, g);
- return Ne(e / Math.pow(t, y), h, c)
- }
- }
- }
-
- function ds(t, e, r, n, i) {
- return function (o, a, s, l) {
- if (void 0 !== o) {
- var u = n ? cs(t, n, s, i) : t;
- return (void 0 === r || r) && l ? hs(o, u, e) : Ne(o, e, u)
- }
- }
- }
-
- function gs(t) {
- return void 0 !== t ? 0 : void 0
- }
-
- function ys(t) {
- return void 0 !== t ? t : void 0
- }
-
- function ms(t) {
- var e = 2 * Math.PI / t;
- return function (t, r) {
- return r ? t : void 0 !== t ? t = Math.floor(t / e + .5) * e : void 0
- }
- }
-
- function vs(t) {
- var e = t || Ye(5);
- return function (t, r) {
- return r ? t : void 0 !== t ? Math.abs(t) <= e ? 0 : t : void 0
- }
- }
-
- var _s = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }();
-
- function bs(t, e) {
- setTimeout((function () {
- t(e)
- }), 0)
- }
-
- function xs(t) {
- if (void 0 !== t.extent) {
- var e = void 0 === t.smoothExtentConstraint || t.smoothExtentConstraint;
- return ls(t.extent, t.constrainOnlyCenter, e)
- }
- var r = Vr(t.projection, "EPSG:3857");
- if (!0 !== t.multiWorld && r.isGlobal()) {
- var n = r.getExtent().slice();
- return n[0] = -1 / 0, n[2] = 1 / 0, ls(n, !1, !1)
- }
- return us
- }
-
- function ws(t) {
- var e, r, n, i = void 0 !== t.minZoom ? t.minZoom : 0, o = void 0 !== t.maxZoom ? t.maxZoom : 28,
- a = void 0 !== t.zoomFactor ? t.zoomFactor : 2, s = void 0 !== t.multiWorld && t.multiWorld,
- l = void 0 === t.smoothResolutionConstraint || t.smoothResolutionConstraint,
- u = void 0 !== t.showFullExtent && t.showFullExtent, c = Vr(t.projection, "EPSG:3857"), h = c.getExtent(),
- p = t.constrainOnlyCenter, f = t.extent;
- if (s || f || !c.isGlobal() || (p = !1, f = h), void 0 !== t.resolutions) {
- var d = t.resolutions;
- r = d[i], n = void 0 !== d[o] ? d[o] : d[d.length - 1], e = t.constrainResolution ? ps(d, l, !p && f, u) : ds(r, n, l, !p && f, u)
- } else {
- var g = (h ? Math.max(Pe(h), Ee(h)) : 360 * wt[St.DEGREES] / c.getMetersPerUnit()) / 256 / Math.pow(2, 0),
- y = g / Math.pow(2, 28);
- void 0 !== (r = t.maxResolution) ? i = 0 : r = g / Math.pow(a, i), void 0 === (n = t.minResolution) && (n = void 0 !== t.maxZoom ? void 0 !== t.maxResolution ? r / Math.pow(a, o) : g / Math.pow(a, o) : y), o = i + Math.floor(Math.log(r / n) / Math.log(a)), n = r / Math.pow(a, o - i), e = t.constrainResolution ? fs(a, r, n, l, !p && f, u) : ds(r, n, l, !p && f, u)
- }
- return {constraint: e, maxResolution: r, minResolution: n, minZoom: i, zoomFactor: a}
- }
-
- function Ss(t) {
- if (void 0 === t.enableRotation || t.enableRotation) {
- var e = t.constrainRotation;
- return void 0 === e || !0 === e ? vs() : !1 === e ? ys : "number" == typeof e ? ms(e) : ys
- }
- return gs
- }
-
- function Es(t) {
- return !(t.sourceCenter && t.targetCenter && !Cr(t.sourceCenter, t.targetCenter)) && (t.sourceResolution === t.targetResolution && t.sourceRotation === t.targetRotation)
- }
-
- function Ts(t, e, r, n, i) {
- var o = Math.cos(-i), a = Math.sin(-i), s = t[0] * o - t[1] * a, l = t[1] * o + t[0] * a;
- return [(s += (e[0] / 2 - r[0]) * n) * o - (l += (r[1] - e[1] / 2) * n) * (a = -a), l * o + s * a]
- }
-
- var Cs = function (t) {
- function e(e) {
- var r = t.call(this) || this, n = O({}, e);
- return r.hints_ = [0, 0], r.animations_ = [], r.updateAnimationKey_, r.projection_ = Vr(n.projection, "EPSG:3857"), r.viewportSize_ = [100, 100], r.targetCenter_ = null, r.targetResolution_, r.targetRotation_, r.cancelAnchor_ = void 0, n.center && (n.center = rn(n.center, r.projection_)), n.extent && (n.extent = on(n.extent, r.projection_)), r.applyOptions_(n), r
- }
-
- return _s(e, t), e.prototype.applyOptions_ = function (t) {
- var e = ws(t);
- this.maxResolution_ = e.maxResolution, this.minResolution_ = e.minResolution, this.zoomFactor_ = e.zoomFactor, this.resolutions_ = t.resolutions, this.padding = t.padding, this.minZoom_ = e.minZoom;
- var r = xs(t), n = e.constraint, i = Ss(t);
- this.constraints_ = {
- center: r,
- resolution: n,
- rotation: i
- }, this.setRotation(void 0 !== t.rotation ? t.rotation : 0), this.setCenterInternal(void 0 !== t.center ? t.center : null), void 0 !== t.resolution ? this.setResolution(t.resolution) : void 0 !== t.zoom && this.setZoom(t.zoom), this.setProperties({}), this.options_ = t
- }, e.prototype.getUpdatedOptions_ = function (t) {
- var e = O({}, this.options_);
- return void 0 !== e.resolution ? e.resolution = this.getResolution() : e.zoom = this.getZoom(), e.center = this.getCenterInternal(), e.rotation = this.getRotation(), O({}, e, t)
- }, e.prototype.animate = function (t) {
- this.isDef() && !this.getAnimating() && this.resolveConstraints(0);
- for (var e = new Array(arguments.length), r = 0; r < e.length; ++r) {
- var n = arguments[r];
- n.center && ((n = O({}, n)).center = rn(n.center, this.getProjection())), n.anchor && ((n = O({}, n)).anchor = rn(n.anchor, this.getProjection())), e[r] = n
- }
- this.animateInternal.apply(this, e)
- }, e.prototype.animateInternal = function (t) {
- var e, r = arguments.length;
- if (r > 1 && "function" == typeof arguments[r - 1] && (e = arguments[r - 1], --r), !this.isDef()) {
- var n = arguments[r - 1];
- return n.center && this.setCenterInternal(n.center), void 0 !== n.zoom && this.setZoom(n.zoom), void 0 !== n.rotation && this.setRotation(n.rotation), void (e && bs(e, !0))
- }
- for (var i = Date.now(), o = this.targetCenter_.slice(), a = this.targetResolution_, s = this.targetRotation_, l = [], u = 0; u < r; ++u) {
- var c = arguments[u], h = {
- start: i,
- complete: !1,
- anchor: c.anchor,
- duration: void 0 !== c.duration ? c.duration : 1e3,
- easing: c.easing || oo,
- callback: e
- };
- if (c.center && (h.sourceCenter = o, h.targetCenter = c.center.slice(), o = h.targetCenter), void 0 !== c.zoom ? (h.sourceResolution = a, h.targetResolution = this.getResolutionForZoom(c.zoom), a = h.targetResolution) : c.resolution && (h.sourceResolution = a, h.targetResolution = c.resolution, a = h.targetResolution), void 0 !== c.rotation) {
- h.sourceRotation = s;
- var p = We(c.rotation - s + Math.PI, 2 * Math.PI) - Math.PI;
- h.targetRotation = s + p, s = h.targetRotation
- }
- Es(h) ? h.complete = !0 : i += h.duration, l.push(h)
- }
- this.animations_.push(l), this.setHint(ns, 1), this.updateAnimations_()
- }, e.prototype.getAnimating = function () {
- return this.hints_[ns] > 0
- }, e.prototype.getInteracting = function () {
- return this.hints_[is] > 0
- }, e.prototype.cancelAnimations = function () {
- var t;
- this.setHint(ns, -this.hints_[ns]);
- for (var e = 0, r = this.animations_.length; e < r; ++e) {
- var n = this.animations_[e];
- if (n[0].callback && bs(n[0].callback, !1), !t) for (var i = 0, o = n.length; i < o; ++i) {
- var a = n[i];
- if (!a.complete) {
- t = a.anchor;
- break
- }
- }
- }
- this.animations_.length = 0, this.cancelAnchor_ = t
- }, e.prototype.updateAnimations_ = function () {
- if (void 0 !== this.updateAnimationKey_ && (cancelAnimationFrame(this.updateAnimationKey_), this.updateAnimationKey_ = void 0), this.getAnimating()) {
- for (var t = Date.now(), e = !1, r = this.animations_.length - 1; r >= 0; --r) {
- for (var n = this.animations_[r], i = !0, o = 0, a = n.length; o < a; ++o) {
- var s = n[o];
- if (!s.complete) {
- var l = t - s.start, u = s.duration > 0 ? l / s.duration : 1;
- u >= 1 ? (s.complete = !0, u = 1) : i = !1;
- var c = s.easing(u);
- if (s.sourceCenter) {
- var h = s.sourceCenter[0], p = s.sourceCenter[1], f = h + c * (s.targetCenter[0] - h),
- d = p + c * (s.targetCenter[1] - p);
- this.targetCenter_ = [f, d]
- }
- if (s.sourceResolution && s.targetResolution) {
- var g = 1 === c ? s.targetResolution : s.sourceResolution + c * (s.targetResolution - s.sourceResolution);
- if (s.anchor) {
- var y = this.getViewportSize_(this.getRotation()), m = this.constraints_.resolution(g, 0, y, !0);
- this.targetCenter_ = this.calculateCenterZoom(m, s.anchor)
- }
- this.targetResolution_ = g, this.applyTargetState_(!0)
- }
- if (void 0 !== s.sourceRotation && void 0 !== s.targetRotation) {
- var v = 1 === c ? We(s.targetRotation + Math.PI, 2 * Math.PI) - Math.PI : s.sourceRotation + c * (s.targetRotation - s.sourceRotation);
- if (s.anchor) {
- var _ = this.constraints_.rotation(v, !0);
- this.targetCenter_ = this.calculateCenterRotate(_, s.anchor)
- }
- this.targetRotation_ = v
- }
- if (this.applyTargetState_(!0), e = !0, !s.complete) break
- }
- }
- if (i) {
- this.animations_[r] = null, this.setHint(ns, -1);
- var b = n[0].callback;
- b && bs(b, !0)
- }
- }
- this.animations_ = this.animations_.filter(Boolean), e && void 0 === this.updateAnimationKey_ && (this.updateAnimationKey_ = requestAnimationFrame(this.updateAnimations_.bind(this)))
- }
- }, e.prototype.calculateCenterRotate = function (t, e) {
- var r, n = this.getCenterInternal();
- return void 0 !== n && (Or(r = [n[0] - e[0], n[1] - e[1]], t - this.getRotation()), xr(r, e)), r
- }, e.prototype.calculateCenterZoom = function (t, e) {
- var r, n = this.getCenterInternal(), i = this.getResolution();
- void 0 !== n && void 0 !== i && (r = [e[0] - t * (e[0] - n[0]) / i, e[1] - t * (e[1] - n[1]) / i]);
- return r
- }, e.prototype.getViewportSize_ = function (t) {
- var e = this.viewportSize_;
- if (t) {
- var r = e[0], n = e[1];
- return [Math.abs(r * Math.cos(t)) + Math.abs(n * Math.sin(t)), Math.abs(r * Math.sin(t)) + Math.abs(n * Math.cos(t))]
- }
- return e
- }, e.prototype.setViewportSize = function (t) {
- this.viewportSize_ = Array.isArray(t) ? t.slice() : [100, 100], this.getAnimating() || this.resolveConstraints(0)
- }, e.prototype.getCenter = function () {
- var t = this.getCenterInternal();
- return t ? en(t, this.getProjection()) : t
- }, e.prototype.getCenterInternal = function () {
- return this.get(os)
- }, e.prototype.getConstraints = function () {
- return this.constraints_
- }, e.prototype.getConstrainResolution = function () {
- return this.options_.constrainResolution
- }, e.prototype.getHints = function (t) {
- return void 0 !== t ? (t[0] = this.hints_[0], t[1] = this.hints_[1], t) : this.hints_.slice()
- }, e.prototype.calculateExtent = function (t) {
- return nn(this.calculateExtentInternal(t), this.getProjection())
- }, e.prototype.calculateExtentInternal = function (t) {
- var e = t || this.getViewportSize_(), r = this.getCenterInternal();
- pt(r, 1);
- var n = this.getResolution();
- pt(void 0 !== n, 2);
- var i = this.getRotation();
- return pt(void 0 !== i, 3), Se(r, n, i, e)
- }, e.prototype.getMaxResolution = function () {
- return this.maxResolution_
- }, e.prototype.getMinResolution = function () {
- return this.minResolution_
- }, e.prototype.getMaxZoom = function () {
- return this.getZoomForResolution(this.minResolution_)
- }, e.prototype.setMaxZoom = function (t) {
- this.applyOptions_(this.getUpdatedOptions_({maxZoom: t}))
- }, e.prototype.getMinZoom = function () {
- return this.getZoomForResolution(this.maxResolution_)
- }, e.prototype.setMinZoom = function (t) {
- this.applyOptions_(this.getUpdatedOptions_({minZoom: t}))
- }, e.prototype.setConstrainResolution = function (t) {
- this.applyOptions_(this.getUpdatedOptions_({constrainResolution: t}))
- }, e.prototype.getProjection = function () {
- return this.projection_
- }, e.prototype.getResolution = function () {
- return this.get(as)
- }, e.prototype.getResolutions = function () {
- return this.resolutions_
- }, e.prototype.getResolutionForExtent = function (t, e) {
- return this.getResolutionForExtentInternal(on(t, this.getProjection()), e)
- }, e.prototype.getResolutionForExtentInternal = function (t, e) {
- var r = e || this.getViewportSize_(), n = Pe(t) / r[0], i = Ee(t) / r[1];
- return Math.max(n, i)
- }, e.prototype.getResolutionForValueFunction = function (t) {
- var e = t || 2, r = this.getConstrainedResolution(this.maxResolution_), n = this.minResolution_,
- i = Math.log(r / n) / Math.log(e);
- return function (t) {
- return r / Math.pow(e, t * i)
- }
- }, e.prototype.getRotation = function () {
- return this.get(ss)
- }, e.prototype.getValueForResolutionFunction = function (t) {
- var e = Math.log(t || 2), r = this.getConstrainedResolution(this.maxResolution_), n = this.minResolution_,
- i = Math.log(r / n) / e;
- return function (t) {
- return Math.log(r / t) / e / i
- }
- }, e.prototype.getViewportSizeMinusPadding_ = function (t) {
- var e = this.getViewportSize_(t), r = this.padding;
- return r && (e = [e[0] - r[1] - r[3], e[1] - r[0] - r[2]]), e
- }, e.prototype.getState = function () {
- var t = this.getProjection(), e = this.getResolution(), r = this.getRotation(), n = this.getCenterInternal(),
- i = this.padding;
- if (i) {
- var o = this.getViewportSizeMinusPadding_();
- n = Ts(n, this.getViewportSize_(), [o[0] / 2 + i[3], o[1] / 2 + i[0]], e, r)
- }
- return {
- center: n.slice(0),
- projection: void 0 !== t ? t : null,
- resolution: e,
- rotation: r,
- zoom: this.getZoom()
- }
- }, e.prototype.getZoom = function () {
- var t, e = this.getResolution();
- return void 0 !== e && (t = this.getZoomForResolution(e)), t
- }, e.prototype.getZoomForResolution = function (t) {
- var e, r, n = this.minZoom_ || 0;
- if (this.resolutions_) {
- var i = y(this.resolutions_, t, 1);
- n = i, e = this.resolutions_[i], r = i == this.resolutions_.length - 1 ? 2 : e / this.resolutions_[i + 1]
- } else e = this.maxResolution_, r = this.zoomFactor_;
- return n + Math.log(e / t) / Math.log(r)
- }, e.prototype.getResolutionForZoom = function (t) {
- if (this.resolutions_) {
- if (this.resolutions_.length <= 1) return 0;
- var e = Ne(Math.floor(t), 0, this.resolutions_.length - 2),
- r = this.resolutions_[e] / this.resolutions_[e + 1];
- return this.resolutions_[e] / Math.pow(r, Ne(t - e, 0, 1))
- }
- return this.maxResolution_ / Math.pow(this.zoomFactor_, t - this.minZoom_)
- }, e.prototype.fit = function (t, e) {
- var r;
- if (pt(Array.isArray(t) || "function" == typeof t.getSimplifiedGeometry, 24), Array.isArray(t)) pt(!Ie(t), 25), r = gi(n = on(t, this.getProjection())); else if (t.getType() === bt.CIRCLE) {
- var n;
- (r = gi(n = on(t.getExtent(), this.getProjection()))).rotate(this.getRotation(), xe(n))
- } else {
- var i = tn();
- r = i ? t.clone().transform(i, this.getProjection()) : t
- }
- this.fitInternal(r, e)
- }, e.prototype.fitInternal = function (t, e) {
- var r = e || {}, n = r.size;
- n || (n = this.getViewportSizeMinusPadding_());
- var i, o = void 0 !== r.padding ? r.padding : [0, 0, 0, 0], a = void 0 !== r.nearest && r.nearest;
- i = void 0 !== r.minResolution ? r.minResolution : void 0 !== r.maxZoom ? this.getResolutionForZoom(r.maxZoom) : 0;
- for (var s = t.getFlatCoordinates(), l = this.getRotation(), u = Math.cos(-l), c = Math.sin(-l), h = 1 / 0, p = 1 / 0, f = -1 / 0, d = -1 / 0, g = t.getStride(), y = 0, m = s.length; y < m; y += g) {
- var v = s[y] * u - s[y + 1] * c, _ = s[y] * c + s[y + 1] * u;
- h = Math.min(h, v), p = Math.min(p, _), f = Math.max(f, v), d = Math.max(d, _)
- }
- var b = this.getResolutionForExtentInternal([h, p, f, d], [n[0] - o[1] - o[3], n[1] - o[0] - o[2]]);
- b = isNaN(b) ? i : Math.max(b, i), b = this.getConstrainedResolution(b, a ? 0 : 1), c = -c;
- var x = (h + f) / 2, w = (p + d) / 2, S = (x += (o[1] - o[3]) / 2 * b) * u - (w += (o[0] - o[2]) / 2 * b) * c,
- E = w * u + x * c, C = this.getConstrainedCenter([S, E], b), O = r.callback ? r.callback : T;
- void 0 !== r.duration ? this.animateInternal({
- resolution: b,
- center: C,
- duration: r.duration,
- easing: r.easing
- }, O) : (this.targetResolution_ = b, this.targetCenter_ = C, this.applyTargetState_(!1, !0), bs(O, !0))
- }, e.prototype.centerOn = function (t, e, r) {
- this.centerOnInternal(rn(t, this.getProjection()), e, r)
- }, e.prototype.centerOnInternal = function (t, e, r) {
- this.setCenterInternal(Ts(t, e, r, this.getResolution(), this.getRotation()))
- }, e.prototype.calculateCenterShift = function (t, e, r, n) {
- var i, o = this.padding;
- if (o && t) {
- var a = this.getViewportSizeMinusPadding_(-r), s = Ts(t, n, [a[0] / 2 + o[3], a[1] / 2 + o[0]], e, r);
- i = [t[0] - s[0], t[1] - s[1]]
- }
- return i
- }, e.prototype.isDef = function () {
- return !!this.getCenterInternal() && void 0 !== this.getResolution()
- }, e.prototype.adjustCenter = function (t) {
- var e = en(this.targetCenter_, this.getProjection());
- this.setCenter([e[0] + t[0], e[1] + t[1]])
- }, e.prototype.adjustCenterInternal = function (t) {
- var e = this.targetCenter_;
- this.setCenterInternal([e[0] + t[0], e[1] + t[1]])
- }, e.prototype.adjustResolution = function (t, e) {
- var r = e && rn(e, this.getProjection());
- this.adjustResolutionInternal(t, r)
- }, e.prototype.adjustResolutionInternal = function (t, e) {
- var r = this.getAnimating() || this.getInteracting(), n = this.getViewportSize_(this.getRotation()),
- i = this.constraints_.resolution(this.targetResolution_ * t, 0, n, r);
- e && (this.targetCenter_ = this.calculateCenterZoom(i, e)), this.targetResolution_ *= t, this.applyTargetState_()
- }, e.prototype.adjustZoom = function (t, e) {
- this.adjustResolution(Math.pow(this.zoomFactor_, -t), e)
- }, e.prototype.adjustRotation = function (t, e) {
- e && (e = rn(e, this.getProjection())), this.adjustRotationInternal(t, e)
- }, e.prototype.adjustRotationInternal = function (t, e) {
- var r = this.getAnimating() || this.getInteracting(),
- n = this.constraints_.rotation(this.targetRotation_ + t, r);
- e && (this.targetCenter_ = this.calculateCenterRotate(n, e)), this.targetRotation_ += t, this.applyTargetState_()
- }, e.prototype.setCenter = function (t) {
- this.setCenterInternal(rn(t, this.getProjection()))
- }, e.prototype.setCenterInternal = function (t) {
- this.targetCenter_ = t, this.applyTargetState_()
- }, e.prototype.setHint = function (t, e) {
- return this.hints_[t] += e, this.changed(), this.hints_[t]
- }, e.prototype.setResolution = function (t) {
- this.targetResolution_ = t, this.applyTargetState_()
- }, e.prototype.setRotation = function (t) {
- this.targetRotation_ = t, this.applyTargetState_()
- }, e.prototype.setZoom = function (t) {
- this.setResolution(this.getResolutionForZoom(t))
- }, e.prototype.applyTargetState_ = function (t, e) {
- var r = this.getAnimating() || this.getInteracting() || e,
- n = this.constraints_.rotation(this.targetRotation_, r), i = this.getViewportSize_(n),
- o = this.constraints_.resolution(this.targetResolution_, 0, i, r),
- a = this.constraints_.center(this.targetCenter_, o, i, r, this.calculateCenterShift(this.targetCenter_, o, n, i));
- this.get(ss) !== n && this.set(ss, n), this.get(as) !== o && this.set(as, o), this.get(os) && Cr(this.get(os), a) || this.set(os, a), this.getAnimating() && !t && this.cancelAnimations(), this.cancelAnchor_ = void 0
- }, e.prototype.resolveConstraints = function (t, e, r) {
- var n = void 0 !== t ? t : 200, i = e || 0, o = this.constraints_.rotation(this.targetRotation_),
- a = this.getViewportSize_(o), s = this.constraints_.resolution(this.targetResolution_, i, a),
- l = this.constraints_.center(this.targetCenter_, s, a, !1, this.calculateCenterShift(this.targetCenter_, s, o, a));
- if (0 === n && !this.cancelAnchor_) return this.targetResolution_ = s, this.targetRotation_ = o, this.targetCenter_ = l, void this.applyTargetState_();
- var u = r || (0 === n ? this.cancelAnchor_ : void 0);
- this.cancelAnchor_ = void 0, this.getResolution() === s && this.getRotation() === o && this.getCenterInternal() && Cr(this.getCenterInternal(), l) || (this.getAnimating() && this.cancelAnimations(), this.animateInternal({
- rotation: o,
- center: l,
- resolution: s,
- duration: n,
- easing: io,
- anchor: u
- }))
- }, e.prototype.beginInteraction = function () {
- this.resolveConstraints(0), this.setHint(is, 1)
- }, e.prototype.endInteraction = function (t, e, r) {
- var n = r && rn(r, this.getProjection());
- this.endInteractionInternal(t, e, n)
- }, e.prototype.endInteractionInternal = function (t, e, r) {
- this.setHint(is, -1), this.resolveConstraints(t, e, r)
- }, e.prototype.getConstrainedCenter = function (t, e) {
- var r = this.getViewportSize_(this.getRotation());
- return this.constraints_.center(t, e || this.getResolution(), r)
- }, e.prototype.getConstrainedZoom = function (t, e) {
- var r = this.getResolutionForZoom(t);
- return this.getZoomForResolution(this.getConstrainedResolution(r, e))
- }, e.prototype.getConstrainedResolution = function (t, e) {
- var r = e || 0, n = this.getViewportSize_(this.getRotation());
- return this.constraints_.resolution(t, r, n)
- }, e
- }(ot);
-
- function Os(t, e, r) {
- return void 0 === r && (r = [0, 0]), r[0] = t[0] + 2 * e, r[1] = t[1] + 2 * e, r
- }
-
- function Ps(t) {
- return t[0] > 0 && t[1] > 0
- }
-
- function Rs(t, e, r) {
- return void 0 === r && (r = [0, 0]), r[0] = t[0] * e + .5 | 0, r[1] = t[1] * e + .5 | 0, r
- }
-
- function Is(t, e) {
- return Array.isArray(t) ? t : (void 0 === e ? e = [t, t] : (e[0] = t, e[1] = t), e)
- }
-
- var Ls = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }();
- var Ms = function (t) {
- function e(e) {
- var r = t.call(this) || this, n = function (t) {
- var e = null;
- void 0 !== t.keyboardEventTarget && (e = "string" == typeof t.keyboardEventTarget ? document.getElementById(t.keyboardEventTarget) : t.keyboardEventTarget);
- var r, n, i, o = {},
- a = t.layers && "function" == typeof t.layers.getLayers ? t.layers : new Aa({layers: t.layers});
- o[Ka] = a, o[$a] = t.target, o[Ja] = void 0 !== t.view ? t.view : new Cs, void 0 !== t.controls && (Array.isArray(t.controls) ? r = new ht(t.controls.slice()) : (pt("function" == typeof t.controls.getArray, 47), r = t.controls));
- void 0 !== t.interactions && (Array.isArray(t.interactions) ? n = new ht(t.interactions.slice()) : (pt("function" == typeof t.interactions.getArray, 48), n = t.interactions));
- void 0 !== t.overlays ? Array.isArray(t.overlays) ? i = new ht(t.overlays.slice()) : (pt("function" == typeof t.overlays.getArray, 49), i = t.overlays) : i = new ht;
- return {controls: r, interactions: n, keyboardEventTarget: e, overlays: i, values: o}
- }(e);
- return r.boundHandleBrowserEvent_ = r.handleBrowserEvent.bind(r), r.maxTilesLoading_ = void 0 !== e.maxTilesLoading ? e.maxTilesLoading : 16, r.pixelRatio_ = void 0 !== e.pixelRatio ? e.pixelRatio : Vi, r.postRenderTimeoutHandle_, r.animationDelayKey_, r.animationDelay_ = function () {
- this.animationDelayKey_ = void 0, this.renderFrame_(Date.now())
- }.bind(r), r.coordinateToPixelTransform_ = [1, 0, 0, 1, 0, 0], r.pixelToCoordinateTransform_ = [1, 0, 0, 1, 0, 0], r.frameIndex_ = 0, r.frameState_ = null, r.previousExtent_ = null, r.viewPropertyListenerKey_ = null, r.viewChangeListenerKey_ = null, r.layerGroupPropertyListenerKeys_ = null, r.viewport_ = document.createElement("div"), r.viewport_.className = "ol-viewport" + ("ontouchstart" in window ? " ol-touch" : ""), r.viewport_.style.position = "relative", r.viewport_.style.overflow = "hidden", r.viewport_.style.width = "100%", r.viewport_.style.height = "100%", r.overlayContainer_ = document.createElement("div"), r.overlayContainer_.style.position = "absolute", r.overlayContainer_.style.zIndex = "0", r.overlayContainer_.style.width = "100%", r.overlayContainer_.style.height = "100%", r.overlayContainer_.style.pointerEvents = "none", r.overlayContainer_.className = "ol-overlaycontainer", r.viewport_.appendChild(r.overlayContainer_), r.overlayContainerStopEvent_ = document.createElement("div"), r.overlayContainerStopEvent_.style.position = "absolute", r.overlayContainerStopEvent_.style.zIndex = "0", r.overlayContainerStopEvent_.style.width = "100%", r.overlayContainerStopEvent_.style.height = "100%", r.overlayContainerStopEvent_.style.pointerEvents = "none", r.overlayContainerStopEvent_.className = "ol-overlaycontainer-stopevent", r.viewport_.appendChild(r.overlayContainerStopEvent_), r.mapBrowserEventHandler_ = null, r.moveTolerance_ = e.moveTolerance, r.keyboardEventTarget_ = n.keyboardEventTarget, r.keyHandlerKeys_ = null, r.controls = n.controls || new ht, r.interactions = n.interactions || new ht, r.overlays_ = n.overlays, r.overlayIdIndex_ = {}, r.renderer_ = null, r.handleResize_, r.postRenderFunctions_ = [], r.tileQueue_ = new es(r.getTilePriority.bind(r), r.handleTileChange_.bind(r)), r.addEventListener(it(Ka), r.handleLayerGroupChanged_), r.addEventListener(it(Ja), r.handleViewChanged_), r.addEventListener(it(Ha), r.handleSizeChanged_), r.addEventListener(it($a), r.handleTargetChanged_), r.setProperties(n.values), r.controls.forEach(function (t) {
- t.setMap(this)
- }.bind(r)), r.controls.addEventListener(at, function (t) {
- t.element.setMap(this)
- }.bind(r)), r.controls.addEventListener(st, function (t) {
- t.element.setMap(null)
- }.bind(r)), r.interactions.forEach(function (t) {
- t.setMap(this)
- }.bind(r)), r.interactions.addEventListener(at, function (t) {
- t.element.setMap(this)
- }.bind(r)), r.interactions.addEventListener(st, function (t) {
- t.element.setMap(null)
- }.bind(r)), r.overlays_.forEach(r.addOverlayInternal_.bind(r)), r.overlays_.addEventListener(at, function (t) {
- this.addOverlayInternal_(t.element)
- }.bind(r)), r.overlays_.addEventListener(st, function (t) {
- var e = t.element.getId();
- void 0 !== e && delete this.overlayIdIndex_[e.toString()], t.element.setMap(null)
- }.bind(r)), r
- }
-
- return Ls(e, t), e.prototype.createRenderer = function () {
- throw new Error("Use a map type that has a createRenderer method")
- }, e.prototype.addControl = function (t) {
- this.getControls().push(t)
- }, e.prototype.addInteraction = function (t) {
- this.getInteractions().push(t)
- }, e.prototype.addLayer = function (t) {
- this.getLayerGroup().getLayers().push(t)
- }, e.prototype.addOverlay = function (t) {
- this.getOverlays().push(t)
- }, e.prototype.addOverlayInternal_ = function (t) {
- var e = t.getId();
- void 0 !== e && (this.overlayIdIndex_[e.toString()] = t), t.setMap(this)
- }, e.prototype.disposeInternal = function () {
- this.setTarget(null), t.prototype.disposeInternal.call(this)
- }, e.prototype.forEachFeatureAtPixel = function (t, e, r) {
- if (this.frameState_) {
- var n = this.getCoordinateFromPixelInternal(t),
- i = void 0 !== (r = void 0 !== r ? r : {}).hitTolerance ? r.hitTolerance : 0,
- o = void 0 !== r.layerFilter ? r.layerFilter : S, a = !1 !== r.checkWrapped;
- return this.renderer_.forEachFeatureAtCoordinate(n, this.frameState_, i, a, e, null, o, null)
- }
- }, e.prototype.getFeaturesAtPixel = function (t, e) {
- var r = [];
- return this.forEachFeatureAtPixel(t, (function (t) {
- r.push(t)
- }), e), r
- }, e.prototype.forEachLayerAtPixel = function (t, e, r) {
- if (this.frameState_) {
- var n = r || {}, i = void 0 !== n.hitTolerance ? n.hitTolerance : 0, o = n.layerFilter || S;
- return this.renderer_.forEachLayerAtPixel(t, this.frameState_, i, e, o)
- }
- }, e.prototype.hasFeatureAtPixel = function (t, e) {
- if (!this.frameState_) return !1;
- var r = this.getCoordinateFromPixelInternal(t),
- n = void 0 !== (e = void 0 !== e ? e : {}).layerFilter ? e.layerFilter : S,
- i = void 0 !== e.hitTolerance ? e.hitTolerance : 0, o = !1 !== e.checkWrapped;
- return this.renderer_.hasFeatureAtCoordinate(r, this.frameState_, i, o, n, null)
- }, e.prototype.getEventCoordinate = function (t) {
- return this.getCoordinateFromPixel(this.getEventPixel(t))
- }, e.prototype.getEventCoordinateInternal = function (t) {
- return this.getCoordinateFromPixelInternal(this.getEventPixel(t))
- }, e.prototype.getEventPixel = function (t) {
- var e = this.viewport_.getBoundingClientRect(), r = "changedTouches" in t ? t.changedTouches[0] : t;
- return [r.clientX - e.left, r.clientY - e.top]
- }, e.prototype.getTarget = function () {
- return this.get($a)
- }, e.prototype.getTargetElement = function () {
- var t = this.getTarget();
- return void 0 !== t ? "string" == typeof t ? document.getElementById(t) : t : null
- }, e.prototype.getCoordinateFromPixel = function (t) {
- return en(this.getCoordinateFromPixelInternal(t), this.getView().getProjection())
- }, e.prototype.getCoordinateFromPixelInternal = function (t) {
- var e = this.frameState_;
- return e ? It(e.pixelToCoordinateTransform, t.slice()) : null
- }, e.prototype.getControls = function () {
- return this.controls
- }, e.prototype.getOverlays = function () {
- return this.overlays_
- }, e.prototype.getOverlayById = function (t) {
- var e = this.overlayIdIndex_[t.toString()];
- return void 0 !== e ? e : null
- }, e.prototype.getInteractions = function () {
- return this.interactions
- }, e.prototype.getLayerGroup = function () {
- return this.get(Ka)
- }, e.prototype.getLayers = function () {
- return this.getLayerGroup().getLayers()
- }, e.prototype.getLoading = function () {
- for (var t = this.getLayerGroup().getLayerStatesArray(), e = 0, r = t.length; e < r; ++e) {
- var n = t[e].layer.getSource();
- if (n && n.loading) return !0
- }
- return !1
- }, e.prototype.getPixelFromCoordinate = function (t) {
- var e = rn(t, this.getView().getProjection());
- return this.getPixelFromCoordinateInternal(e)
- }, e.prototype.getPixelFromCoordinateInternal = function (t) {
- var e = this.frameState_;
- return e ? It(e.coordinateToPixelTransform, t.slice(0, 2)) : null
- }, e.prototype.getRenderer = function () {
- return this.renderer_
- }, e.prototype.getSize = function () {
- return this.get(Ha)
- }, e.prototype.getView = function () {
- return this.get(Ja)
- }, e.prototype.getViewport = function () {
- return this.viewport_
- }, e.prototype.getOverlayContainer = function () {
- return this.overlayContainer_
- }, e.prototype.getOverlayContainerStopEvent = function () {
- return this.overlayContainerStopEvent_
- }, e.prototype.getOwnerDocument = function () {
- return this.getTargetElement() ? this.getTargetElement().ownerDocument : document
- }, e.prototype.getTilePriority = function (t, e, r, n) {
- return rs(this.frameState_, t, e, r, n)
- }, e.prototype.handleBrowserEvent = function (t, e) {
- var r = e || t.type, n = new Da(r, this, t);
- this.handleMapBrowserEvent(n)
- }, e.prototype.handleMapBrowserEvent = function (t) {
- if (this.frameState_) {
- var e = t.originalEvent, r = e.type;
- if (r === Ua || r === X || r === B) {
- var n = this.getOwnerDocument(), i = this.viewport_.getRootNode ? this.viewport_.getRootNode() : n,
- o = "host" in i ? i.elementFromPoint(e.clientX, e.clientY) : e.target;
- if (this.overlayContainerStopEvent_.contains(o) || !(i === n ? n.documentElement : i).contains(o)) return
- }
- if (t.frameState = this.frameState_, !1 !== this.dispatchEvent(t)) for (var a = this.getInteractions().getArray().slice(), s = a.length - 1; s >= 0; s--) {
- var l = a[s];
- if (l.getMap() === this && l.getActive() && this.getTargetElement()) if (!l.handleEvent(t) || t.propagationStopped) break
- }
- }
- }, e.prototype.handlePostRender = function () {
- var t = this.frameState_, e = this.tileQueue_;
- if (!e.isEmpty()) {
- var r = this.maxTilesLoading_, n = r;
- if (t) {
- var i = t.viewHints;
- if (i[ns] || i[is]) {
- var o = !Wi && Date.now() - t.time > 8;
- r = o ? 0 : 8, n = o ? 0 : 2
- }
- }
- e.getTilesLoading() < r && (e.reprioritize(), e.loadMoreTiles(r, n))
- }
- !t || !this.hasListener(Ho) || t.animate || this.tileQueue_.getTilesLoading() || this.getLoading() || this.renderer_.dispatchRenderEvent(Ho, t);
- for (var a = this.postRenderFunctions_, s = 0, l = a.length; s < l; ++s) a[s](this, t);
- a.length = 0
- }, e.prototype.handleSizeChanged_ = function () {
- this.getView() && !this.getView().getAnimating() && this.getView().resolveConstraints(0), this.render()
- }, e.prototype.handleTargetChanged_ = function () {
- var t;
- if (this.getTarget() && (t = this.getTargetElement()), this.mapBrowserEventHandler_) {
- for (var e = 0, r = this.keyHandlerKeys_.length; e < r; ++e) H(this.keyHandlerKeys_[e]);
- this.keyHandlerKeys_ = null, this.viewport_.removeEventListener(j, this.boundHandleBrowserEvent_), this.viewport_.removeEventListener(X, this.boundHandleBrowserEvent_), void 0 !== this.handleResize_ && (removeEventListener(W, this.handleResize_, !1), this.handleResize_ = void 0), this.mapBrowserEventHandler_.dispose(), this.mapBrowserEventHandler_ = null, fo(this.viewport_)
- }
- if (t) {
- for (var n in t.appendChild(this.viewport_), this.renderer_ || (this.renderer_ = this.createRenderer()), this.mapBrowserEventHandler_ = new Wa(this, this.moveTolerance_), Ga) this.mapBrowserEventHandler_.addEventListener(Ga[n], this.handleMapBrowserEvent.bind(this));
- this.viewport_.addEventListener(j, this.boundHandleBrowserEvent_, !1), this.viewport_.addEventListener(X, this.boundHandleBrowserEvent_, !!qi && {passive: !1});
- var i = this.keyboardEventTarget_ ? this.keyboardEventTarget_ : t;
- this.keyHandlerKeys_ = [Z(i, B, this.handleBrowserEvent, this), Z(i, V, this.handleBrowserEvent, this)], this.handleResize_ || (this.handleResize_ = this.updateSize.bind(this), window.addEventListener(W, this.handleResize_, !1))
- } else this.renderer_ && (clearTimeout(this.postRenderTimeoutHandle_), this.postRenderTimeoutHandle_ = void 0, this.postRenderFunctions_.length = 0, this.renderer_.dispose(), this.renderer_ = null), this.animationDelayKey_ && (cancelAnimationFrame(this.animationDelayKey_), this.animationDelayKey_ = void 0);
- this.updateSize()
- }, e.prototype.handleTileChange_ = function () {
- this.render()
- }, e.prototype.handleViewPropertyChanged_ = function () {
- this.render()
- }, e.prototype.handleViewChanged_ = function () {
- this.viewPropertyListenerKey_ && (H(this.viewPropertyListenerKey_), this.viewPropertyListenerKey_ = null), this.viewChangeListenerKey_ && (H(this.viewChangeListenerKey_), this.viewChangeListenerKey_ = null);
- var t = this.getView();
- t && (this.updateViewportSize_(), this.viewPropertyListenerKey_ = Z(t, h, this.handleViewPropertyChanged_, this), this.viewChangeListenerKey_ = Z(t, F, this.handleViewPropertyChanged_, this), t.resolveConstraints(0)), this.render()
- }, e.prototype.handleLayerGroupChanged_ = function () {
- this.layerGroupPropertyListenerKeys_ && (this.layerGroupPropertyListenerKeys_.forEach(H), this.layerGroupPropertyListenerKeys_ = null);
- var t = this.getLayerGroup();
- t && (this.layerGroupPropertyListenerKeys_ = [Z(t, h, this.render, this), Z(t, F, this.render, this)]), this.render()
- }, e.prototype.isRendered = function () {
- return !!this.frameState_
- }, e.prototype.renderSync = function () {
- this.animationDelayKey_ && cancelAnimationFrame(this.animationDelayKey_), this.animationDelay_()
- }, e.prototype.redrawText = function () {
- for (var t = this.getLayerGroup().getLayerStatesArray(), e = 0, r = t.length; e < r; ++e) {
- var n = t[e].layer;
- n.hasRenderer() && n.getRenderer().handleFontsChanged()
- }
- }, e.prototype.render = function () {
- this.renderer_ && void 0 === this.animationDelayKey_ && (this.animationDelayKey_ = requestAnimationFrame(this.animationDelay_))
- }, e.prototype.removeControl = function (t) {
- return this.getControls().remove(t)
- }, e.prototype.removeInteraction = function (t) {
- return this.getInteractions().remove(t)
- }, e.prototype.removeLayer = function (t) {
- return this.getLayerGroup().getLayers().remove(t)
- }, e.prototype.removeOverlay = function (t) {
- return this.getOverlays().remove(t)
- }, e.prototype.renderFrame_ = function (t) {
- var e = this, r = this.getSize(), n = this.getView(), i = this.frameState_, o = null;
- if (void 0 !== r && Ps(r) && n && n.isDef()) {
- var a = n.getHints(this.frameState_ ? this.frameState_.viewHints : void 0), s = n.getState();
- o = {
- animate: !1,
- coordinateToPixelTransform: this.coordinateToPixelTransform_,
- declutterTree: null,
- extent: Se(s.center, s.resolution, s.rotation, r),
- index: this.frameIndex_++,
- layerIndex: 0,
- layerStatesArray: this.getLayerGroup().getLayerStatesArray(),
- pixelRatio: this.pixelRatio_,
- pixelToCoordinateTransform: this.pixelToCoordinateTransform_,
- postRenderFunctions: [],
- size: r,
- tileQueue: this.tileQueue_,
- time: t,
- usedTiles: {},
- viewState: s,
- viewHints: a,
- wantedTiles: {}
- }
- }
- if (this.frameState_ = o, this.renderer_.renderFrame(o), o) {
- if (o.animate && this.render(), Array.prototype.push.apply(this.postRenderFunctions_, o.postRenderFunctions), i) (!this.previousExtent_ || !Ie(this.previousExtent_) && !ue(o.extent, this.previousExtent_)) && (this.dispatchEvent(new ja(Xa, this, i)), this.previousExtent_ = oe(this.previousExtent_));
- this.previousExtent_ && !o.viewHints[ns] && !o.viewHints[is] && !ue(o.extent, this.previousExtent_) && (this.dispatchEvent(new ja(Za, this, o)), $t(o.extent, this.previousExtent_))
- }
- this.dispatchEvent(new ja(qa, this, o)), this.postRenderTimeoutHandle_ || (this.postRenderTimeoutHandle_ = setTimeout((function () {
- e.postRenderTimeoutHandle_ = void 0, e.handlePostRender()
- }), 0))
- }, e.prototype.setLayerGroup = function (t) {
- this.set(Ka, t)
- }, e.prototype.setSize = function (t) {
- this.set(Ha, t)
- }, e.prototype.setTarget = function (t) {
- this.set($a, t)
- }, e.prototype.setView = function (t) {
- this.set(Ja, t)
- }, e.prototype.updateSize = function () {
- var t = this.getTargetElement();
- if (t) {
- var e = getComputedStyle(t);
- this.setSize([t.offsetWidth - parseFloat(e.borderLeftWidth) - parseFloat(e.paddingLeft) - parseFloat(e.paddingRight) - parseFloat(e.borderRightWidth), t.offsetHeight - parseFloat(e.borderTopWidth) - parseFloat(e.paddingTop) - parseFloat(e.paddingBottom) - parseFloat(e.borderBottomWidth)])
- } else this.setSize(void 0);
- this.updateViewportSize_()
- }, e.prototype.updateViewportSize_ = function () {
- var t = this.getView();
- if (t) {
- var e = void 0, r = getComputedStyle(this.viewport_);
- r.width && r.height && (e = [parseInt(r.width, 10), parseInt(r.height, 10)]), t.setViewportSize(e)
- }
- }, e
- }(ot), Fs = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), As = function (t) {
- function e(e) {
- var r = t.call(this) || this, n = e.element;
- return !n || e.target || n.style.pointerEvents || (n.style.pointerEvents = "auto"), r.element = n || null, r.target_ = null, r.map_ = null, r.listenerKeys = [], e.render && (r.render = e.render), e.target && r.setTarget(e.target), r
- }
-
- return Fs(e, t), e.prototype.disposeInternal = function () {
- fo(this.element), t.prototype.disposeInternal.call(this)
- }, e.prototype.getMap = function () {
- return this.map_
- }, e.prototype.setMap = function (t) {
- this.map_ && fo(this.element);
- for (var e = 0, r = this.listenerKeys.length; e < r; ++e) H(this.listenerKeys[e]);
- (this.listenerKeys.length = 0, this.map_ = t, this.map_) && ((this.target_ ? this.target_ : t.getOverlayContainerStopEvent()).appendChild(this.element), this.render !== T && this.listenerKeys.push(Z(t, qa, this.render, this)), t.render())
- }, e.prototype.render = function (t) {
- }, e.prototype.setTarget = function (t) {
- this.target_ = "string" == typeof t ? document.getElementById(t) : t
- }, e
- }(ot), ks = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), js = function (t) {
- function e(e) {
- var r = this, n = e || {};
- (r = t.call(this, {
- element: document.createElement("div"),
- render: n.render,
- target: n.target
- }) || this).ulElement_ = document.createElement("ul"), r.collapsed_ = void 0 === n.collapsed || n.collapsed, r.userCollapsed_ = r.collapsed_, r.overrideCollapsible_ = void 0 !== n.collapsible, r.collapsible_ = void 0 === n.collapsible || n.collapsible, r.collapsible_ || (r.collapsed_ = !1);
- var i = void 0 !== n.className ? n.className : "ol-attribution",
- o = void 0 !== n.tipLabel ? n.tipLabel : "Attributions",
- a = void 0 !== n.expandClassName ? n.expandClassName : i + "-expand",
- s = void 0 !== n.collapseLabel ? n.collapseLabel : "»",
- l = void 0 !== n.collapseClassName ? n.collapseClassName : i + "-collpase";
- "string" == typeof s ? (r.collapseLabel_ = document.createElement("span"), r.collapseLabel_.textContent = s, r.collapseLabel_.className = l) : r.collapseLabel_ = s;
- var u = void 0 !== n.label ? n.label : "i";
- "string" == typeof u ? (r.label_ = document.createElement("span"), r.label_.textContent = u, r.label_.className = a) : r.label_ = u;
- var c = r.collapsible_ && !r.collapsed_ ? r.collapseLabel_ : r.label_, h = document.createElement("button");
- h.setAttribute("type", "button"), h.title = o, h.appendChild(c), h.addEventListener(N, r.handleClick_.bind(r), !1);
- var p = i + " ol-unselectable ol-control" + (r.collapsed_ && r.collapsible_ ? " ol-collapsed" : "") + (r.collapsible_ ? "" : " ol-uncollapsible"),
- f = r.element;
- return f.className = p, f.appendChild(r.ulElement_), f.appendChild(h), r.renderedAttributions_ = [], r.renderedVisible_ = !0, r
- }
-
- return ks(e, t), e.prototype.collectSourceAttributions_ = function (t) {
- for (var e = {}, r = [], n = !0, i = t.layerStatesArray, o = 0, a = i.length; o < a; ++o) {
- var s = i[o];
- if (ra(s, t.viewState)) {
- var l = s.layer.getSource();
- if (l) {
- var u = l.getAttributions();
- if (u) {
- var c = u(t);
- if (c) if (n = n && !1 !== l.getAttributionsCollapsible(), Array.isArray(c)) for (var h = 0, p = c.length; h < p; ++h) c[h] in e || (r.push(c[h]), e[c[h]] = !0); else c in e || (r.push(c), e[c] = !0)
- }
- }
- }
- }
- return this.overrideCollapsible_ || this.setCollapsible(n), r
- }, e.prototype.updateElement_ = function (t) {
- if (t) {
- var e = this.collectSourceAttributions_(t), r = e.length > 0;
- if (this.renderedVisible_ != r && (this.element.style.display = r ? "" : "none", this.renderedVisible_ = r), !b(e, this.renderedAttributions_)) {
- go(this.ulElement_);
- for (var n = 0, i = e.length; n < i; ++n) {
- var o = document.createElement("li");
- o.innerHTML = e[n], this.ulElement_.appendChild(o)
- }
- this.renderedAttributions_ = e
- }
- } else this.renderedVisible_ && (this.element.style.display = "none", this.renderedVisible_ = !1)
- }, e.prototype.handleClick_ = function (t) {
- t.preventDefault(), this.handleToggle_(), this.userCollapsed_ = this.collapsed_
- }, e.prototype.handleToggle_ = function () {
- this.element.classList.toggle("ol-collapsed"), this.collapsed_ ? po(this.collapseLabel_, this.label_) : po(this.label_, this.collapseLabel_), this.collapsed_ = !this.collapsed_
- }, e.prototype.getCollapsible = function () {
- return this.collapsible_
- }, e.prototype.setCollapsible = function (t) {
- this.collapsible_ !== t && (this.collapsible_ = t, this.element.classList.toggle("ol-uncollapsible"), this.userCollapsed_ && this.handleToggle_())
- }, e.prototype.setCollapsed = function (t) {
- this.userCollapsed_ = t, this.collapsible_ && this.collapsed_ !== t && this.handleToggle_()
- }, e.prototype.getCollapsed = function () {
- return this.collapsed_
- }, e.prototype.render = function (t) {
- this.updateElement_(t.frameState)
- }, e
- }(As), Ns = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Ds = function (t) {
- function e(e) {
- var r = this, n = e || {};
- r = t.call(this, {element: document.createElement("div"), render: n.render, target: n.target}) || this;
- var i = void 0 !== n.className ? n.className : "ol-rotate", o = void 0 !== n.label ? n.label : "⇧",
- a = void 0 !== n.compassClassName ? n.compassClassName : "ol-compass";
- r.label_ = null, "string" == typeof o ? (r.label_ = document.createElement("span"), r.label_.className = a, r.label_.textContent = o) : (r.label_ = o, r.label_.classList.add(a));
- var s = n.tipLabel ? n.tipLabel : "Reset rotation", l = document.createElement("button");
- l.className = i + "-reset", l.setAttribute("type", "button"), l.title = s, l.appendChild(r.label_), l.addEventListener(N, r.handleClick_.bind(r), !1);
- var u = i + " ol-unselectable ol-control", c = r.element;
- return c.className = u, c.appendChild(l), r.callResetNorth_ = n.resetNorth ? n.resetNorth : void 0, r.duration_ = void 0 !== n.duration ? n.duration : 250, r.autoHide_ = void 0 === n.autoHide || n.autoHide, r.rotation_ = void 0, r.autoHide_ && r.element.classList.add("ol-hidden"), r
- }
-
- return Ns(e, t), e.prototype.handleClick_ = function (t) {
- t.preventDefault(), void 0 !== this.callResetNorth_ ? this.callResetNorth_() : this.resetNorth_()
- }, e.prototype.resetNorth_ = function () {
- var t = this.getMap().getView();
- if (t) {
- var e = t.getRotation();
- void 0 !== e && (this.duration_ > 0 && e % (2 * Math.PI) != 0 ? t.animate({
- rotation: 0,
- duration: this.duration_,
- easing: io
- }) : t.setRotation(0))
- }
- }, e.prototype.render = function (t) {
- var e = t.frameState;
- if (e) {
- var r = e.viewState.rotation;
- if (r != this.rotation_) {
- var n = "rotate(" + r + "rad)";
- if (this.autoHide_) {
- var i = this.element.classList.contains("ol-hidden");
- i || 0 !== r ? i && 0 !== r && this.element.classList.remove("ol-hidden") : this.element.classList.add("ol-hidden")
- }
- this.label_.style.transform = n
- }
- this.rotation_ = r
- }
- }, e
- }(As), Gs = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), zs = function (t) {
- function e(e) {
- var r = this, n = e || {};
- r = t.call(this, {element: document.createElement("div"), target: n.target}) || this;
- var i = void 0 !== n.className ? n.className : "ol-zoom", o = void 0 !== n.delta ? n.delta : 1,
- a = void 0 !== n.zoomInClassName ? n.zoomInClassName : i + "-in",
- s = void 0 !== n.zoomOutClassName ? n.zoomOutClassName : i + "-out",
- l = void 0 !== n.zoomInLabel ? n.zoomInLabel : "+", u = void 0 !== n.zoomOutLabel ? n.zoomOutLabel : "−",
- c = void 0 !== n.zoomInTipLabel ? n.zoomInTipLabel : "Zoom in",
- h = void 0 !== n.zoomOutTipLabel ? n.zoomOutTipLabel : "Zoom out", p = document.createElement("button");
- p.className = a, p.setAttribute("type", "button"), p.title = c, p.appendChild("string" == typeof l ? document.createTextNode(l) : l), p.addEventListener(N, r.handleClick_.bind(r, o), !1);
- var f = document.createElement("button");
- f.className = s, f.setAttribute("type", "button"), f.title = h, f.appendChild("string" == typeof u ? document.createTextNode(u) : u), f.addEventListener(N, r.handleClick_.bind(r, -o), !1);
- var d = i + " ol-unselectable ol-control", g = r.element;
- return g.className = d, g.appendChild(p), g.appendChild(f), r.duration_ = void 0 !== n.duration ? n.duration : 250, r
- }
-
- return Gs(e, t), e.prototype.handleClick_ = function (t, e) {
- e.preventDefault(), this.zoomByDelta_(t)
- }, e.prototype.zoomByDelta_ = function (t) {
- var e = this.getMap().getView();
- if (e) {
- var r = e.getZoom();
- if (void 0 !== r) {
- var n = e.getConstrainedZoom(r + t);
- this.duration_ > 0 ? (e.getAnimating() && e.cancelAnimations(), e.animate({
- zoom: n,
- duration: this.duration_,
- easing: io
- })) : e.setZoom(n)
- }
- }
- }, e
- }(As);
-
- function Us(t) {
- var e = t || {}, r = new ht;
- return (void 0 === e.zoom || e.zoom) && r.push(new zs(e.zoomOptions)), (void 0 === e.rotate || e.rotate) && r.push(new Ds(e.rotateOptions)), (void 0 === e.attribution || e.attribution) && r.push(new js(e.attributionOptions)), r
- }
-
- var Bs = "active", Vs = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }();
-
- function Ys(t, e, r) {
- var n = t.getCenterInternal();
- if (n) {
- var i = [n[0] + e[0], n[1] + e[1]];
- t.animateInternal({duration: void 0 !== r ? r : 250, easing: ao, center: t.getConstrainedCenter(i)})
- }
- }
-
- function Ws(t, e, r, n) {
- var i = t.getZoom();
- if (void 0 !== i) {
- var o = t.getConstrainedZoom(i + e), a = t.getResolutionForZoom(o);
- t.getAnimating() && t.cancelAnimations(), t.animate({
- resolution: a,
- anchor: r,
- duration: void 0 !== n ? n : 250,
- easing: io
- })
- }
- }
-
- var qs = function (t) {
- function e(e) {
- var r = t.call(this) || this;
- return e && e.handleEvent && (r.handleEvent = e.handleEvent), r.map_ = null, r.setActive(!0), r
- }
-
- return Vs(e, t), e.prototype.getActive = function () {
- return this.get(Bs)
- }, e.prototype.getMap = function () {
- return this.map_
- }, e.prototype.handleEvent = function (t) {
- return !0
- }, e.prototype.setActive = function (t) {
- this.set(Bs, t)
- }, e.prototype.setMap = function (t) {
- this.map_ = t
- }, e
- }(ot), Xs = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Zs = function (t) {
- function e(e) {
- var r = t.call(this) || this, n = e || {};
- return r.delta_ = n.delta ? n.delta : 1, r.duration_ = void 0 !== n.duration ? n.duration : 250, r
- }
-
- return Xs(e, t), e.prototype.handleEvent = function (t) {
- var e = !1;
- if (t.type == Ga.DBLCLICK) {
- var r = t.originalEvent, n = t.map, i = t.coordinate, o = r.shiftKey ? -this.delta_ : this.delta_;
- Ws(n.getView(), o, i, this.duration_), r.preventDefault(), e = !0
- }
- return !e
- }, e
- }(qs), Ks = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }();
-
- function Hs(t) {
- for (var e = t.length, r = 0, n = 0, i = 0; i < e; i++) r += t[i].clientX, n += t[i].clientY;
- return [r / e, n / e]
- }
-
- var $s = function (t) {
- function e(e) {
- var r = this, n = e || {};
- return r = t.call(this, n) || this, n.handleDownEvent && (r.handleDownEvent = n.handleDownEvent), n.handleDragEvent && (r.handleDragEvent = n.handleDragEvent), n.handleMoveEvent && (r.handleMoveEvent = n.handleMoveEvent), n.handleUpEvent && (r.handleUpEvent = n.handleUpEvent), n.stopDown && (r.stopDown = n.stopDown), r.handlingDownUpSequence = !1, r.trackedPointers_ = {}, r.targetPointers = [], r
- }
-
- return Ks(e, t), e.prototype.getPointerCount = function () {
- return this.targetPointers.length
- }, e.prototype.handleDownEvent = function (t) {
- return !1
- }, e.prototype.handleDragEvent = function (t) {
- }, e.prototype.handleEvent = function (t) {
- if (!t.originalEvent) return !0;
- var e = !1;
- if (this.updateTrackedPointers_(t), this.handlingDownUpSequence) {
- if (t.type == Ga.POINTERDRAG) this.handleDragEvent(t), t.originalEvent.preventDefault(); else if (t.type == Ga.POINTERUP) {
- var r = this.handleUpEvent(t);
- this.handlingDownUpSequence = r && this.targetPointers.length > 0
- }
- } else if (t.type == Ga.POINTERDOWN) {
- var n = this.handleDownEvent(t);
- this.handlingDownUpSequence = n, e = this.stopDown(n)
- } else t.type == Ga.POINTERMOVE && this.handleMoveEvent(t);
- return !e
- }, e.prototype.handleMoveEvent = function (t) {
- }, e.prototype.handleUpEvent = function (t) {
- return !1
- }, e.prototype.stopDown = function (t) {
- return t
- }, e.prototype.updateTrackedPointers_ = function (t) {
- if (function (t) {
- var e = t.type;
- return e === Ga.POINTERDOWN || e === Ga.POINTERDRAG || e === Ga.POINTERUP
- }(t)) {
- var e = t.originalEvent, r = e.pointerId.toString();
- t.type == Ga.POINTERUP ? delete this.trackedPointers_[r] : (t.type == Ga.POINTERDOWN || r in this.trackedPointers_) && (this.trackedPointers_[r] = e), this.targetPointers = R(this.trackedPointers_)
- }
- }, e
- }(qs);
-
- function Js(t) {
- var e = arguments;
- return function (t) {
- for (var r = !0, n = 0, i = e.length; n < i && (r = r && e[n](t)); ++n) ;
- return r
- }
- }
-
- var Qs = function (t) {
- var e = t.originalEvent;
- return e.altKey && !(e.metaKey || e.ctrlKey) && !e.shiftKey
- }, tl = function (t) {
- var e = t.originalEvent;
- return e.altKey && !(e.metaKey || e.ctrlKey) && e.shiftKey
- }, el = function (t) {
- return t.target.getTargetElement().contains(document.activeElement)
- }, rl = function (t) {
- return !t.map.getTargetElement().hasAttribute("tabindex") || el(t)
- }, nl = S, il = function (t) {
- var e = t.originalEvent;
- return 0 == e.button && !(Ui && Bi && e.ctrlKey)
- }, ol = E, al = function (t) {
- return t.type == Ga.SINGLECLICK
- }, sl = function (t) {
- var e = t.originalEvent;
- return !e.altKey && !(e.metaKey || e.ctrlKey) && !e.shiftKey
- }, ll = function (t) {
- var e = t.originalEvent;
- return !e.altKey && !(e.metaKey || e.ctrlKey) && e.shiftKey
- }, ul = function (t) {
- var e = t.originalEvent.target.tagName;
- return "INPUT" !== e && "SELECT" !== e && "TEXTAREA" !== e
- }, cl = function (t) {
- var e = t.originalEvent;
- return pt(void 0 !== e, 56), "mouse" == e.pointerType
- }, hl = function (t) {
- var e = t.originalEvent;
- return pt(void 0 !== e, 56), e.isPrimary && 0 === e.button
- }, pl = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), fl = function (t) {
- function e(e) {
- var r = t.call(this, {stopDown: E}) || this, n = e || {};
- r.kinetic_ = n.kinetic, r.lastCentroid = null, r.lastPointersCount_, r.panning_ = !1;
- var i = n.condition ? n.condition : Js(sl, hl);
- return r.condition_ = n.onFocusOnly ? Js(rl, i) : i, r.noKinetic_ = !1, r
- }
-
- return pl(e, t), e.prototype.handleDragEvent = function (t) {
- this.panning_ || (this.panning_ = !0, this.getMap().getView().beginInteraction());
- var e = this.targetPointers, r = Hs(e);
- if (e.length == this.lastPointersCount_) {
- if (this.kinetic_ && this.kinetic_.update(r[0], r[1]), this.lastCentroid) {
- var n = [this.lastCentroid[0] - r[0], r[1] - this.lastCentroid[1]], i = t.map.getView();
- Pr(n, i.getResolution()), Or(n, i.getRotation()), i.adjustCenterInternal(n)
- }
- } else this.kinetic_ && this.kinetic_.begin();
- this.lastCentroid = r, this.lastPointersCount_ = e.length, t.originalEvent.preventDefault()
- }, e.prototype.handleUpEvent = function (t) {
- var e = t.map, r = e.getView();
- if (0 === this.targetPointers.length) {
- if (!this.noKinetic_ && this.kinetic_ && this.kinetic_.end()) {
- var n = this.kinetic_.getDistance(), i = this.kinetic_.getAngle(), o = r.getCenterInternal(),
- a = e.getPixelFromCoordinateInternal(o),
- s = e.getCoordinateFromPixelInternal([a[0] - n * Math.cos(i), a[1] - n * Math.sin(i)]);
- r.animateInternal({center: r.getConstrainedCenter(s), duration: 500, easing: io})
- }
- return this.panning_ && (this.panning_ = !1, r.endInteraction()), !1
- }
- return this.kinetic_ && this.kinetic_.begin(), this.lastCentroid = null, !0
- }, e.prototype.handleDownEvent = function (t) {
- if (this.targetPointers.length > 0 && this.condition_(t)) {
- var e = t.map.getView();
- return this.lastCentroid = null, e.getAnimating() && e.cancelAnimations(), this.kinetic_ && this.kinetic_.begin(), this.noKinetic_ = this.targetPointers.length > 1, !0
- }
- return !1
- }, e
- }($s), dl = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), gl = function (t) {
- function e(e) {
- var r = this, n = e || {};
- return (r = t.call(this, {stopDown: E}) || this).condition_ = n.condition ? n.condition : tl, r.lastAngle_ = void 0, r.duration_ = void 0 !== n.duration ? n.duration : 250, r
- }
-
- return dl(e, t), e.prototype.handleDragEvent = function (t) {
- if (cl(t)) {
- var e = t.map, r = e.getView();
- if (r.getConstraints().rotation !== gs) {
- var n = e.getSize(), i = t.pixel, o = Math.atan2(n[1] / 2 - i[1], i[0] - n[0] / 2);
- if (void 0 !== this.lastAngle_) {
- var a = o - this.lastAngle_;
- r.adjustRotationInternal(-a)
- }
- this.lastAngle_ = o
- }
- }
- }, e.prototype.handleUpEvent = function (t) {
- return !cl(t) || (t.map.getView().endInteraction(this.duration_), !1)
- }, e.prototype.handleDownEvent = function (t) {
- return !!cl(t) && (!(!il(t) || !this.condition_(t)) && (t.map.getView().beginInteraction(), this.lastAngle_ = void 0, !0))
- }, e
- }($s), yl = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), ml = function (t) {
- function e(e) {
- var r = t.call(this) || this;
- return r.geometry_ = null, r.element_ = document.createElement("div"), r.element_.style.position = "absolute", r.element_.style.pointerEvents = "auto", r.element_.className = "ol-box " + e, r.map_ = null, r.startPixel_ = null, r.endPixel_ = null, r
- }
-
- return yl(e, t), e.prototype.disposeInternal = function () {
- this.setMap(null)
- }, e.prototype.render_ = function () {
- var t = this.startPixel_, e = this.endPixel_, r = this.element_.style;
- r.left = Math.min(t[0], e[0]) + "px", r.top = Math.min(t[1], e[1]) + "px", r.width = Math.abs(e[0] - t[0]) + "px", r.height = Math.abs(e[1] - t[1]) + "px"
- }, e.prototype.setMap = function (t) {
- if (this.map_) {
- this.map_.getOverlayContainer().removeChild(this.element_);
- var e = this.element_.style;
- e.left = "inherit", e.top = "inherit", e.width = "inherit", e.height = "inherit"
- }
- this.map_ = t, this.map_ && this.map_.getOverlayContainer().appendChild(this.element_)
- }, e.prototype.setPixels = function (t, e) {
- this.startPixel_ = t, this.endPixel_ = e, this.createOrUpdateGeometry(), this.render_()
- }, e.prototype.createOrUpdateGeometry = function () {
- var t = this.startPixel_, e = this.endPixel_,
- r = [t, [t[0], e[1]], e, [e[0], t[1]]].map(this.map_.getCoordinateFromPixelInternal, this.map_);
- r[4] = r[0].slice(), this.geometry_ ? this.geometry_.setCoordinates([r]) : this.geometry_ = new fi([r])
- }, e.prototype.getGeometry = function () {
- return this.geometry_
- }, e
- }(p), vl = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), _l = "boxstart", bl = "boxdrag", xl = "boxend", wl = "boxcancel", Sl = function (t) {
- function e(e, r, n) {
- var i = t.call(this, e) || this;
- return i.coordinate = r, i.mapBrowserEvent = n, i
- }
-
- return vl(e, t), e
- }(c), El = function (t) {
- function e(e) {
- var r = t.call(this) || this, n = e || {};
- return r.box_ = new ml(n.className || "ol-dragbox"), r.minArea_ = void 0 !== n.minArea ? n.minArea : 64, n.onBoxEnd && (r.onBoxEnd = n.onBoxEnd), r.startPixel_ = null, r.condition_ = n.condition ? n.condition : il, r.boxEndCondition_ = n.boxEndCondition ? n.boxEndCondition : r.defaultBoxEndCondition, r
- }
-
- return vl(e, t), e.prototype.defaultBoxEndCondition = function (t, e, r) {
- var n = r[0] - e[0], i = r[1] - e[1];
- return n * n + i * i >= this.minArea_
- }, e.prototype.getGeometry = function () {
- return this.box_.getGeometry()
- }, e.prototype.handleDragEvent = function (t) {
- this.box_.setPixels(this.startPixel_, t.pixel), this.dispatchEvent(new Sl(bl, t.coordinate, t))
- }, e.prototype.handleUpEvent = function (t) {
- this.box_.setMap(null);
- var e = this.boxEndCondition_(t, this.startPixel_, t.pixel);
- return e && this.onBoxEnd(t), this.dispatchEvent(new Sl(e ? xl : wl, t.coordinate, t)), !1
- }, e.prototype.handleDownEvent = function (t) {
- return !!this.condition_(t) && (this.startPixel_ = t.pixel, this.box_.setMap(t.map), this.box_.setPixels(this.startPixel_, this.startPixel_), this.dispatchEvent(new Sl(_l, t.coordinate, t)), !0)
- }, e.prototype.onBoxEnd = function (t) {
- }, e
- }($s), Tl = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Cl = function (t) {
- function e(e) {
- var r = this, n = e || {}, i = n.condition ? n.condition : ll;
- return (r = t.call(this, {
- condition: i,
- className: n.className || "ol-dragzoom",
- minArea: n.minArea
- }) || this).duration_ = void 0 !== n.duration ? n.duration : 200, r.out_ = void 0 !== n.out && n.out, r
- }
-
- return Tl(e, t), e.prototype.onBoxEnd = function (t) {
- var e = this.getMap(), r = e.getView(), n = e.getSize(), i = this.getGeometry().getExtent();
- if (this.out_) {
- var o = r.calculateExtentInternal(n),
- a = se([e.getPixelFromCoordinateInternal(_e(i)), e.getPixelFromCoordinateInternal(Oe(i))]);
- Me(o, 1 / r.getResolutionForExtentInternal(a, n)), i = o
- }
- var s = r.getConstrainedResolution(r.getResolutionForExtentInternal(i, n)),
- l = r.getConstrainedCenter(xe(i), s);
- r.animateInternal({resolution: s, center: l, duration: this.duration_, easing: io})
- }, e
- }(El), Ol = 37, Pl = 38, Rl = 39, Il = 40, Ll = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Ml = function (t) {
- function e(e) {
- var r = t.call(this) || this, n = e || {};
- return r.defaultCondition_ = function (t) {
- return sl(t) && ul(t)
- }, r.condition_ = void 0 !== n.condition ? n.condition : r.defaultCondition_, r.duration_ = void 0 !== n.duration ? n.duration : 100, r.pixelDelta_ = void 0 !== n.pixelDelta ? n.pixelDelta : 128, r
- }
-
- return Ll(e, t), e.prototype.handleEvent = function (t) {
- var e = !1;
- if (t.type == B) {
- var r = t.originalEvent, n = r.keyCode;
- if (this.condition_(t) && (n == Il || n == Ol || n == Rl || n == Pl)) {
- var i = t.map.getView(), o = i.getResolution() * this.pixelDelta_, a = 0, s = 0;
- n == Il ? s = -o : n == Ol ? a = -o : n == Rl ? a = o : s = o;
- var l = [a, s];
- Or(l, i.getRotation()), Ys(i, l, this.duration_), r.preventDefault(), e = !0
- }
- }
- return !e
- }, e
- }(qs), Fl = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Al = function (t) {
- function e(e) {
- var r = t.call(this) || this, n = e || {};
- return r.condition_ = n.condition ? n.condition : ul, r.delta_ = n.delta ? n.delta : 1, r.duration_ = void 0 !== n.duration ? n.duration : 100, r
- }
-
- return Fl(e, t), e.prototype.handleEvent = function (t) {
- var e = !1;
- if (t.type == B || t.type == V) {
- var r = t.originalEvent, n = r.charCode;
- if (this.condition_(t) && (n == "+".charCodeAt(0) || n == "-".charCodeAt(0))) {
- var i = t.map, o = n == "+".charCodeAt(0) ? this.delta_ : -this.delta_;
- Ws(i.getView(), o, void 0, this.duration_), r.preventDefault(), e = !0
- }
- }
- return !e
- }, e
- }(qs), kl = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), jl = "trackpad", Nl = "wheel", Dl = function (t) {
- function e(e) {
- var r = this, n = e || {};
- (r = t.call(this, n) || this).totalDelta_ = 0, r.lastDelta_ = 0, r.maxDelta_ = void 0 !== n.maxDelta ? n.maxDelta : 1, r.duration_ = void 0 !== n.duration ? n.duration : 250, r.timeout_ = void 0 !== n.timeout ? n.timeout : 80, r.useAnchor_ = void 0 === n.useAnchor || n.useAnchor, r.constrainResolution_ = void 0 !== n.constrainResolution && n.constrainResolution;
- var i = n.condition ? n.condition : nl;
- return r.condition_ = n.onFocusOnly ? Js(rl, i) : i, r.lastAnchor_ = null, r.startTime_ = void 0, r.timeoutId_, r.mode_ = void 0, r.trackpadEventGap_ = 400, r.trackpadTimeoutId_, r.deltaPerZoom_ = 300, r
- }
-
- return kl(e, t), e.prototype.endInteraction_ = function () {
- this.trackpadTimeoutId_ = void 0, this.getMap().getView().endInteraction(void 0, this.lastDelta_ ? this.lastDelta_ > 0 ? 1 : -1 : 0, this.lastAnchor_)
- }, e.prototype.handleEvent = function (t) {
- if (!this.condition_(t)) return !0;
- if (t.type !== X) return !0;
- var e, r = t.map, n = t.originalEvent;
- if (n.preventDefault(), this.useAnchor_ && (this.lastAnchor_ = t.coordinate), t.type == X && (e = n.deltaY, Gi && n.deltaMode === WheelEvent.DOM_DELTA_PIXEL && (e /= Vi), n.deltaMode === WheelEvent.DOM_DELTA_LINE && (e *= 40)), 0 === e) return !1;
- this.lastDelta_ = e;
- var i = Date.now();
- void 0 === this.startTime_ && (this.startTime_ = i), (!this.mode_ || i - this.startTime_ > this.trackpadEventGap_) && (this.mode_ = Math.abs(e) < 4 ? jl : Nl);
- var o = r.getView();
- if (this.mode_ === jl && !o.getConstrainResolution() && !this.constrainResolution_) return this.trackpadTimeoutId_ ? clearTimeout(this.trackpadTimeoutId_) : (o.getAnimating() && o.cancelAnimations(), o.beginInteraction()), this.trackpadTimeoutId_ = setTimeout(this.endInteraction_.bind(this), this.timeout_), o.adjustZoom(-e / this.deltaPerZoom_, this.lastAnchor_), this.startTime_ = i, !1;
- this.totalDelta_ += e;
- var a = Math.max(this.timeout_ - (i - this.startTime_), 0);
- return clearTimeout(this.timeoutId_), this.timeoutId_ = setTimeout(this.handleWheelZoom_.bind(this, r), a), !1
- }, e.prototype.handleWheelZoom_ = function (t) {
- var e = t.getView();
- e.getAnimating() && e.cancelAnimations();
- var r = -Ne(this.totalDelta_, -this.maxDelta_ * this.deltaPerZoom_, this.maxDelta_ * this.deltaPerZoom_) / this.deltaPerZoom_;
- (e.getConstrainResolution() || this.constrainResolution_) && (r = r ? r > 0 ? 1 : -1 : 0), Ws(e, r, this.lastAnchor_, this.duration_), this.mode_ = void 0, this.totalDelta_ = 0, this.lastAnchor_ = null, this.startTime_ = void 0, this.timeoutId_ = void 0
- }, e.prototype.setMouseAnchor = function (t) {
- this.useAnchor_ = t, t || (this.lastAnchor_ = null)
- }, e
- }(qs), Gl = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), zl = function (t) {
- function e(e) {
- var r = this, n = e || {}, i = n;
- return i.stopDown || (i.stopDown = E), (r = t.call(this, i) || this).anchor_ = null, r.lastAngle_ = void 0, r.rotating_ = !1, r.rotationDelta_ = 0, r.threshold_ = void 0 !== n.threshold ? n.threshold : .3, r.duration_ = void 0 !== n.duration ? n.duration : 250, r
- }
-
- return Gl(e, t), e.prototype.handleDragEvent = function (t) {
- var e = 0, r = this.targetPointers[0], n = this.targetPointers[1],
- i = Math.atan2(n.clientY - r.clientY, n.clientX - r.clientX);
- if (void 0 !== this.lastAngle_) {
- var o = i - this.lastAngle_;
- this.rotationDelta_ += o, !this.rotating_ && Math.abs(this.rotationDelta_) > this.threshold_ && (this.rotating_ = !0), e = o
- }
- this.lastAngle_ = i;
- var a = t.map, s = a.getView();
- if (s.getConstraints().rotation !== gs) {
- var l = a.getViewport().getBoundingClientRect(), u = Hs(this.targetPointers);
- u[0] -= l.left, u[1] -= l.top, this.anchor_ = a.getCoordinateFromPixelInternal(u), this.rotating_ && (a.render(), s.adjustRotationInternal(e, this.anchor_))
- }
- }, e.prototype.handleUpEvent = function (t) {
- return !(this.targetPointers.length < 2) || (t.map.getView().endInteraction(this.duration_), !1)
- }, e.prototype.handleDownEvent = function (t) {
- if (this.targetPointers.length >= 2) {
- var e = t.map;
- return this.anchor_ = null, this.lastAngle_ = void 0, this.rotating_ = !1, this.rotationDelta_ = 0, this.handlingDownUpSequence || e.getView().beginInteraction(), !0
- }
- return !1
- }, e
- }($s), Ul = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Bl = function (t) {
- function e(e) {
- var r = this, n = e || {}, i = n;
- return i.stopDown || (i.stopDown = E), (r = t.call(this, i) || this).anchor_ = null, r.duration_ = void 0 !== n.duration ? n.duration : 400, r.lastDistance_ = void 0, r.lastScaleDelta_ = 1, r
- }
-
- return Ul(e, t), e.prototype.handleDragEvent = function (t) {
- var e = 1, r = this.targetPointers[0], n = this.targetPointers[1], i = r.clientX - n.clientX,
- o = r.clientY - n.clientY, a = Math.sqrt(i * i + o * o);
- void 0 !== this.lastDistance_ && (e = this.lastDistance_ / a), this.lastDistance_ = a;
- var s = t.map, l = s.getView();
- 1 != e && (this.lastScaleDelta_ = e);
- var u = s.getViewport().getBoundingClientRect(), c = Hs(this.targetPointers);
- c[0] -= u.left, c[1] -= u.top, this.anchor_ = s.getCoordinateFromPixelInternal(c), s.render(), l.adjustResolutionInternal(e, this.anchor_)
- }, e.prototype.handleUpEvent = function (t) {
- if (this.targetPointers.length < 2) {
- var e = t.map.getView(), r = this.lastScaleDelta_ > 1 ? 1 : -1;
- return e.endInteraction(this.duration_, r), !1
- }
- return !0
- }, e.prototype.handleDownEvent = function (t) {
- if (this.targetPointers.length >= 2) {
- var e = t.map;
- return this.anchor_ = null, this.lastDistance_ = void 0, this.lastScaleDelta_ = 1, this.handlingDownUpSequence || e.getView().beginInteraction(), !0
- }
- return !1
- }, e
- }($s);
-
- function Vl(t) {
- var e = t || {}, r = new ht, n = new _o(-.005, .05, 100);
- return (void 0 === e.altShiftDragRotate || e.altShiftDragRotate) && r.push(new gl), (void 0 === e.doubleClickZoom || e.doubleClickZoom) && r.push(new Zs({
- delta: e.zoomDelta,
- duration: e.zoomDuration
- })), (void 0 === e.dragPan || e.dragPan) && r.push(new fl({
- onFocusOnly: e.onFocusOnly,
- kinetic: n
- })), (void 0 === e.pinchRotate || e.pinchRotate) && r.push(new zl), (void 0 === e.pinchZoom || e.pinchZoom) && r.push(new Bl({duration: e.zoomDuration})), (void 0 === e.keyboard || e.keyboard) && (r.push(new Ml), r.push(new Al({
- delta: e.zoomDelta,
- duration: e.zoomDuration
- }))), (void 0 === e.mouseWheelZoom || e.mouseWheelZoom) && r.push(new Dl({
- onFocusOnly: e.onFocusOnly,
- duration: e.zoomDuration
- })), (void 0 === e.shiftDragZoom || e.shiftDragZoom) && r.push(new Cl({duration: e.zoomDuration})), r
- }
-
- var Yl = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Wl = function (t) {
- function e(e) {
- return (e = O({}, e)).controls || (e.controls = Us()), e.interactions || (e.interactions = Vl({onFocusOnly: !0})), t.call(this, e) || this
- }
-
- return Yl(e, t), e.prototype.createRenderer = function () {
- return new La(this)
- }, e
- }(Ms), ql = "bottom-left", Xl = "bottom-center", Zl = "bottom-right", Kl = "center-left", Hl = "center-center",
- $l = "center-right", Jl = "top-left", Ql = "top-center", tu = "top-right", eu = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), ru = "element", nu = "map", iu = "offset", ou = "position", au = "positioning", su = function (t) {
- function e(e) {
- var r = t.call(this) || this;
- r.options = e, r.id = e.id, r.insertFirst = void 0 === e.insertFirst || e.insertFirst, r.stopEvent = void 0 === e.stopEvent || e.stopEvent, r.element = document.createElement("div"), r.element.className = void 0 !== e.className ? e.className : "ol-overlay-container ol-selectable", r.element.style.position = "absolute", r.element.style.pointerEvents = "auto";
- var n = e.autoPan;
- return n && "object" != typeof n && (n = {
- animation: e.autoPanAnimation,
- margin: e.autoPanMargin
- }), r.autoPan = n || !1, r.rendered = {
- transform_: "",
- visible: !0
- }, r.mapPostrenderListenerKey = null, r.addEventListener(it(ru), r.handleElementChanged), r.addEventListener(it(nu), r.handleMapChanged), r.addEventListener(it(iu), r.handleOffsetChanged), r.addEventListener(it(ou), r.handlePositionChanged), r.addEventListener(it(au), r.handlePositioningChanged), void 0 !== e.element && r.setElement(e.element), r.setOffset(void 0 !== e.offset ? e.offset : [0, 0]), r.setPositioning(void 0 !== e.positioning ? e.positioning : Jl), void 0 !== e.position && r.setPosition(e.position), r
- }
-
- return eu(e, t), e.prototype.getElement = function () {
- return this.get(ru)
- }, e.prototype.getId = function () {
- return this.id
- }, e.prototype.getMap = function () {
- return this.get(nu)
- }, e.prototype.getOffset = function () {
- return this.get(iu)
- }, e.prototype.getPosition = function () {
- return this.get(ou)
- }, e.prototype.getPositioning = function () {
- return this.get(au)
- }, e.prototype.handleElementChanged = function () {
- go(this.element);
- var t = this.getElement();
- t && this.element.appendChild(t)
- }, e.prototype.handleMapChanged = function () {
- this.mapPostrenderListenerKey && (fo(this.element), H(this.mapPostrenderListenerKey), this.mapPostrenderListenerKey = null);
- var t = this.getMap();
- if (t) {
- this.mapPostrenderListenerKey = Z(t, qa, this.render, this), this.updatePixelPosition();
- var e = this.stopEvent ? t.getOverlayContainerStopEvent() : t.getOverlayContainer();
- this.insertFirst ? e.insertBefore(this.element, e.childNodes[0] || null) : e.appendChild(this.element), this.performAutoPan()
- }
- }, e.prototype.render = function () {
- this.updatePixelPosition()
- }, e.prototype.handleOffsetChanged = function () {
- this.updatePixelPosition()
- }, e.prototype.handlePositionChanged = function () {
- this.updatePixelPosition(), this.performAutoPan()
- }, e.prototype.handlePositioningChanged = function () {
- this.updatePixelPosition()
- }, e.prototype.setElement = function (t) {
- this.set(ru, t)
- }, e.prototype.setMap = function (t) {
- this.set(nu, t)
- }, e.prototype.setOffset = function (t) {
- this.set(iu, t)
- }, e.prototype.setPosition = function (t) {
- this.set(ou, t)
- }, e.prototype.performAutoPan = function () {
- this.autoPan && this.panIntoView(this.autoPan)
- }, e.prototype.panIntoView = function (t) {
- var e = this.getMap();
- if (e && e.getTargetElement() && this.get(ou)) {
- var r = this.getRect(e.getTargetElement(), e.getSize()), n = this.getElement(),
- i = this.getRect(n, [co(n), ho(n)]), o = t || {}, a = void 0 === o.margin ? 20 : o.margin;
- if (!te(r, i)) {
- var s = i[0] - r[0], l = r[2] - i[2], u = i[1] - r[1], c = r[3] - i[3], h = [0, 0];
- if (s < 0 ? h[0] = s - a : l < 0 && (h[0] = Math.abs(l) + a), u < 0 ? h[1] = u - a : c < 0 && (h[1] = Math.abs(c) + a), 0 !== h[0] || 0 !== h[1]) {
- var p = e.getView().getCenterInternal(), f = e.getPixelFromCoordinateInternal(p);
- if (!f) return;
- var d = [f[0] + h[0], f[1] + h[1]], g = o.animation || {};
- e.getView().animateInternal({
- center: e.getCoordinateFromPixelInternal(d),
- duration: g.duration,
- easing: g.easing
- })
- }
- }
- }
- }, e.prototype.getRect = function (t, e) {
- var r = t.getBoundingClientRect(), n = r.left + window.pageXOffset, i = r.top + window.pageYOffset;
- return [n, i, n + e[0], i + e[1]]
- }, e.prototype.setPositioning = function (t) {
- this.set(au, t)
- }, e.prototype.setVisible = function (t) {
- this.rendered.visible !== t && (this.element.style.display = t ? "" : "none", this.rendered.visible = t)
- }, e.prototype.updatePixelPosition = function () {
- var t = this.getMap(), e = this.getPosition();
- if (t && t.isRendered() && e) {
- var r = t.getPixelFromCoordinate(e), n = t.getSize();
- this.updateRenderedPosition(r, n)
- } else this.setVisible(!1)
- }, e.prototype.updateRenderedPosition = function (t, e) {
- var r = this.element.style, n = this.getOffset(), i = this.getPositioning();
- this.setVisible(!0);
- var o = Math.round(t[0] + n[0]) + "px", a = Math.round(t[1] + n[1]) + "px", s = "0%", l = "0%";
- i == Zl || i == $l || i == tu ? s = "-100%" : i != Xl && i != Hl && i != Ql || (s = "-50%"), i == ql || i == Xl || i == Zl ? l = "-100%" : i != Kl && i != Hl && i != $l || (l = "-50%");
- var u = "translate(" + s + ", " + l + ") translate(" + o + ", " + a + ")";
- this.rendered.transform_ != u && (this.rendered.transform_ = u, r.transform = u, r.msTransform = u)
- }, e.prototype.getOptions = function () {
- return this.options
- }, e
- }(ot), lu = function () {
- function t(t) {
- this.highWaterMark = void 0 !== t ? t : 2048, this.count_ = 0, this.entries_ = {}, this.oldest_ = null, this.newest_ = null
- }
-
- return t.prototype.canExpireCache = function () {
- return this.highWaterMark > 0 && this.getCount() > this.highWaterMark
- }, t.prototype.clear = function () {
- this.count_ = 0, this.entries_ = {}, this.oldest_ = null, this.newest_ = null
- }, t.prototype.containsKey = function (t) {
- return this.entries_.hasOwnProperty(t)
- }, t.prototype.forEach = function (t) {
- for (var e = this.oldest_; e;) t(e.value_, e.key_, this), e = e.newer
- }, t.prototype.get = function (t, e) {
- var r = this.entries_[t];
- return pt(void 0 !== r, 15), r === this.newest_ || (r === this.oldest_ ? (this.oldest_ = this.oldest_.newer, this.oldest_.older = null) : (r.newer.older = r.older, r.older.newer = r.newer), r.newer = null, r.older = this.newest_, this.newest_.newer = r, this.newest_ = r), r.value_
- }, t.prototype.remove = function (t) {
- var e = this.entries_[t];
- return pt(void 0 !== e, 15), e === this.newest_ ? (this.newest_ = e.older, this.newest_ && (this.newest_.newer = null)) : e === this.oldest_ ? (this.oldest_ = e.newer, this.oldest_ && (this.oldest_.older = null)) : (e.newer.older = e.older, e.older.newer = e.newer), delete this.entries_[t], --this.count_, e.value_
- }, t.prototype.getCount = function () {
- return this.count_
- }, t.prototype.getKeys = function () {
- var t, e = new Array(this.count_), r = 0;
- for (t = this.newest_; t; t = t.older) e[r++] = t.key_;
- return e
- }, t.prototype.getValues = function () {
- var t, e = new Array(this.count_), r = 0;
- for (t = this.newest_; t; t = t.older) e[r++] = t.value_;
- return e
- }, t.prototype.peekLast = function () {
- return this.oldest_.value_
- }, t.prototype.peekLastKey = function () {
- return this.oldest_.key_
- }, t.prototype.peekFirstKey = function () {
- return this.newest_.key_
- }, t.prototype.pop = function () {
- var t = this.oldest_;
- return delete this.entries_[t.key_], t.newer && (t.newer.older = null), this.oldest_ = t.newer, this.oldest_ || (this.newest_ = null), --this.count_, t.value_
- }, t.prototype.replace = function (t, e) {
- this.get(t), this.entries_[t].value_ = e
- }, t.prototype.set = function (t, e) {
- pt(!(t in this.entries_), 16);
- var r = {key_: t, newer: null, older: this.newest_, value_: e};
- this.newest_ ? this.newest_.newer = r : this.oldest_ = r, this.newest_ = r, this.entries_[t] = r, ++this.count_
- }, t.prototype.setSize = function (t) {
- this.highWaterMark = t
- }, t
- }();
-
- function uu(t, e, r, n) {
- return void 0 !== n ? (n[0] = t, n[1] = e, n[2] = r, n) : [t, e, r]
- }
-
- function cu(t, e, r) {
- return t + "/" + e + "/" + r
- }
-
- function hu(t) {
- return cu(t[0], t[1], t[2])
- }
-
- function pu(t) {
- return t.split("/").map(Number)
- }
-
- function fu(t) {
- return (t[1] << t[0]) + t[2]
- }
-
- function du(t, e) {
- var r = t[0], n = t[1], i = t[2];
- if (e.getMinZoom() > r || r > e.getMaxZoom()) return !1;
- var o = e.getFullTileRange(r);
- return !o || o.containsXY(n, i)
- }
-
- var gu = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), yu = function (t) {
- function e() {
- return null !== t && t.apply(this, arguments) || this
- }
-
- return gu(e, t), e.prototype.expireCache = function (t) {
- for (; this.canExpireCache();) {
- if (this.peekLast().getKey() in t) break;
- this.pop().release()
- }
- }, e.prototype.pruneExceptNewestZ = function () {
- if (0 !== this.getCount()) {
- var t = pu(this.peekFirstKey())[0];
- this.forEach(function (e) {
- e.tileCoord[0] !== t && (this.remove(hu(e.tileCoord)), e.release())
- }.bind(this))
- }
- }, e
- }(lu), mu = function () {
- function t(t, e, r, n) {
- this.minX = t, this.maxX = e, this.minY = r, this.maxY = n
- }
-
- return t.prototype.contains = function (t) {
- return this.containsXY(t[1], t[2])
- }, t.prototype.containsTileRange = function (t) {
- return this.minX <= t.minX && t.maxX <= this.maxX && this.minY <= t.minY && t.maxY <= this.maxY
- }, t.prototype.containsXY = function (t, e) {
- return this.minX <= t && t <= this.maxX && this.minY <= e && e <= this.maxY
- }, t.prototype.equals = function (t) {
- return this.minX == t.minX && this.minY == t.minY && this.maxX == t.maxX && this.maxY == t.maxY
- }, t.prototype.extend = function (t) {
- t.minX < this.minX && (this.minX = t.minX), t.maxX > this.maxX && (this.maxX = t.maxX), t.minY < this.minY && (this.minY = t.minY), t.maxY > this.maxY && (this.maxY = t.maxY)
- }, t.prototype.getHeight = function () {
- return this.maxY - this.minY + 1
- }, t.prototype.getSize = function () {
- return [this.getWidth(), this.getHeight()]
- }, t.prototype.getWidth = function () {
- return this.maxX - this.minX + 1
- }, t.prototype.intersects = function (t) {
- return this.minX <= t.maxX && this.maxX >= t.minX && this.minY <= t.maxY && this.maxY >= t.minY
- }, t
- }();
-
- function vu(t, e, r, n, i) {
- return void 0 !== i ? (i.minX = t, i.maxX = e, i.minY = r, i.maxY = n, i) : new mu(t, e, r, n)
- }
-
- var _u = mu, bu = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), xu = [], wu = function (t) {
- function e(e, r, n, i) {
- var o = t.call(this, e, r, {transition: 0}) || this;
- return o.context_ = {}, o.executorGroups = {}, o.declutterExecutorGroups = {}, o.loadingSourceTiles = 0, o.errorSourceTileKeys = {}, o.hitDetectionImageData = {}, o.replayState_ = {}, o.sourceTiles = null, o.wantedResolution, o.getSourceTiles = i.bind(void 0, o), o.sourceZ = -1, o.hifi = !1, o.wrappedTileCoord = n, o
- }
-
- return bu(e, t), e.prototype.getContext = function (t) {
- var e = o(t);
- return e in this.context_ || (this.context_[e] = uo(1, 1, xu)), this.context_[e]
- }, e.prototype.hasContext = function (t) {
- return o(t) in this.context_
- }, e.prototype.getImage = function (t) {
- return this.hasContext(t) ? this.getContext(t).canvas : null
- }, e.prototype.getReplayState = function (t) {
- var e = o(t);
- return e in this.replayState_ || (this.replayState_[e] = {
- dirty: !1,
- renderedRenderOrder: null,
- renderedResolution: NaN,
- renderedRevision: -1,
- renderedTileResolution: NaN,
- renderedTileRevision: -1,
- renderedZ: -1,
- renderedTileZ: -1
- }), this.replayState_[e]
- }, e.prototype.load = function () {
- this.getSourceTiles()
- }, e.prototype.release = function () {
- for (var e in this.context_) xu.push(this.context_[e].canvas), delete this.context_[e];
- t.prototype.release.call(this)
- }, e
- }(lo), Su = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Eu = function (t) {
- function e(e, r, n, i, o, a) {
- var s = t.call(this, e, r, a) || this;
- return s.extent = null, s.format_ = i, s.features_ = null, s.loader_, s.projection = null, s.resolution, s.tileLoadFunction_ = o, s.url_ = n, s.key = n, s
- }
-
- return Su(e, t), e.prototype.getFormat = function () {
- return this.format_
- }, e.prototype.getFeatures = function () {
- return this.features_
- }, e.prototype.load = function () {
- this.state == Ji && (this.setState(Qi), this.tileLoadFunction_(this, this.url_), this.loader_ && this.loader_(this.extent, this.resolution, this.projection))
- }, e.prototype.onLoad = function (t, e) {
- this.setFeatures(t)
- }, e.prototype.onError = function () {
- this.setState(eo)
- }, e.prototype.setFeatures = function (t) {
- this.features_ = t, this.setState(to)
- }, e.prototype.setLoader = function (t) {
- this.loader_ = t
- }, e
- }(lo);
-
- function Tu(t) {
- return Array.isArray(t) ? Ro(t) : t
- }
-
- var Cu = "arraybuffer", Ou = "json", Pu = "text", Ru = "xml", Iu = !1;
-
- function Lu(t, e, r, n, i, o, a) {
- var s = new XMLHttpRequest;
- s.open("GET", "function" == typeof t ? t(r, n, i) : t, !0), e.getType() == Cu && (s.responseType = "arraybuffer"), s.withCredentials = Iu, s.onload = function (t) {
- if (!s.status || s.status >= 200 && s.status < 300) {
- var n = e.getType(), l = void 0;
- n == Ou || n == Pu ? l = s.responseText : n == Ru ? (l = s.responseXML) || (l = (new DOMParser).parseFromString(s.responseText, "application/xml")) : n == Cu && (l = s.response), l ? o(e.readFeatures(l, {
- extent: r,
- featureProjection: i
- }), e.readProjection(l)) : a()
- } else a()
- }, s.onerror = a, s.send()
- }
-
- function Mu(t, e) {
- return function (r, n, i, o, a) {
- var s = this;
- Lu(t, e, r, n, i, (function (t, e) {
- void 0 !== o && o(t), s.addFeatures(t)
- }), a || T)
- }
- }
-
- function Fu(t, e) {
- return [[-1 / 0, -1 / 0, 1 / 0, 1 / 0]]
- }
-
- function Au(t, e, r, n) {
- var i = document.createElement("script"), a = "olc_" + o(e);
-
- function s() {
- delete window[a], i.parentNode.removeChild(i)
- }
-
- i.async = !0, i.src = t + (-1 == t.indexOf("?") ? "?" : "&") + (n || "callback") + "=" + a;
- var l = setTimeout((function () {
- s(), r && r()
- }), 1e4);
- window[a] = function (t) {
- clearTimeout(l), s(), e(t)
- }, document.getElementsByTagName("head")[0].appendChild(i)
- }
-
- var ku = function () {
- function t() {
- }
-
- return t.prototype.drawCustom = function (t, e, r) {
- }, t.prototype.drawGeometry = function (t) {
- }, t.prototype.setStyle = function (t) {
- }, t.prototype.drawCircle = function (t, e) {
- }, t.prototype.drawFeature = function (t, e) {
- }, t.prototype.drawGeometryCollection = function (t, e) {
- }, t.prototype.drawLineString = function (t, e) {
- }, t.prototype.drawMultiLineString = function (t, e) {
- }, t.prototype.drawMultiPoint = function (t, e) {
- }, t.prototype.drawMultiPolygon = function (t, e) {
- }, t.prototype.drawPoint = function (t, e) {
- }, t.prototype.drawPolygon = function (t, e) {
- }, t.prototype.drawText = function (t, e) {
- }, t.prototype.setFillStrokeStyle = function (t, e) {
- }, t.prototype.setImageStyle = function (t, e) {
- }, t.prototype.setTextStyle = function (t, e) {
- }, t
- }(), ju = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Nu = function (t) {
- function e(e, r, n, i, o, a, s) {
- var l = t.call(this) || this;
- return l.context_ = e, l.pixelRatio_ = r, l.extent_ = n, l.transform_ = i, l.viewRotation_ = o, l.squaredTolerance_ = a, l.userTransform_ = s, l.contextFillState_ = null, l.contextStrokeState_ = null, l.contextTextState_ = null, l.fillState_ = null, l.strokeState_ = null, l.image_ = null, l.imageAnchorX_ = 0, l.imageAnchorY_ = 0, l.imageHeight_ = 0, l.imageOpacity_ = 0, l.imageOriginX_ = 0, l.imageOriginY_ = 0, l.imageRotateWithView_ = !1, l.imageRotation_ = 0, l.imageScale_ = [0, 0], l.imageWidth_ = 0, l.text_ = "", l.textOffsetX_ = 0, l.textOffsetY_ = 0, l.textRotateWithView_ = !1, l.textRotation_ = 0, l.textScale_ = [0, 0], l.textFillState_ = null, l.textStrokeState_ = null, l.textState_ = null, l.pixelCoordinates_ = [], l.tmpLocalTransform_ = [1, 0, 0, 1, 0, 0], l
- }
-
- return ju(e, t), e.prototype.drawImages_ = function (t, e, r, n) {
- if (this.image_) {
- var i = ln(t, e, r, 2, this.transform_, this.pixelCoordinates_), o = this.context_,
- a = this.tmpLocalTransform_, s = o.globalAlpha;
- 1 != this.imageOpacity_ && (o.globalAlpha = s * this.imageOpacity_);
- var l = this.imageRotation_;
- this.imageRotateWithView_ && (l += this.viewRotation_);
- for (var u = 0, c = i.length; u < c; u += 2) {
- var h = i[u] - this.imageAnchorX_, p = i[u + 1] - this.imageAnchorY_;
- if (0 !== l || 1 != this.imageScale_[0] || 1 != this.imageScale_[1]) {
- var f = h + this.imageAnchorX_, d = p + this.imageAnchorY_;
- kt(a, f, d, 1, 1, l, -f, -d), o.setTransform.apply(o, a), o.translate(f, d), o.scale(this.imageScale_[0], this.imageScale_[1]), o.drawImage(this.image_, this.imageOriginX_, this.imageOriginY_, this.imageWidth_, this.imageHeight_, -this.imageAnchorX_, -this.imageAnchorY_, this.imageWidth_, this.imageHeight_), o.setTransform(1, 0, 0, 1, 0, 0)
- } else o.drawImage(this.image_, this.imageOriginX_, this.imageOriginY_, this.imageWidth_, this.imageHeight_, h, p, this.imageWidth_, this.imageHeight_)
- }
- 1 != this.imageOpacity_ && (o.globalAlpha = s)
- }
- }, e.prototype.drawText_ = function (t, e, r, n) {
- if (this.textState_ && "" !== this.text_) {
- this.textFillState_ && this.setContextFillState_(this.textFillState_), this.textStrokeState_ && this.setContextStrokeState_(this.textStrokeState_), this.setContextTextState_(this.textState_);
- var i = ln(t, e, r, n, this.transform_, this.pixelCoordinates_), o = this.context_, a = this.textRotation_;
- for (this.textRotateWithView_ && (a += this.viewRotation_); e < r; e += n) {
- var s = i[e] + this.textOffsetX_, l = i[e + 1] + this.textOffsetY_;
- if (0 !== a || 1 != this.textScale_[0] || 1 != this.textScale_[1]) {
- var u = kt(this.tmpLocalTransform_, s, l, 1, 1, a, -s, -l);
- o.setTransform.apply(o, u), o.translate(s, l), o.scale(this.textScale_[0], this.textScale_[1]), this.textStrokeState_ && o.strokeText(this.text_, 0, 0), this.textFillState_ && o.fillText(this.text_, 0, 0), o.setTransform(1, 0, 0, 1, 0, 0)
- } else this.textStrokeState_ && o.strokeText(this.text_, s, l), this.textFillState_ && o.fillText(this.text_, s, l)
- }
- }
- }, e.prototype.moveToLineTo_ = function (t, e, r, n, i) {
- var o = this.context_, a = ln(t, e, r, n, this.transform_, this.pixelCoordinates_);
- o.moveTo(a[0], a[1]);
- var s = a.length;
- i && (s -= 2);
- for (var l = 2; l < s; l += 2) o.lineTo(a[l], a[l + 1]);
- return i && o.closePath(), r
- }, e.prototype.drawRings_ = function (t, e, r, n) {
- for (var i = 0, o = r.length; i < o; ++i) e = this.moveToLineTo_(t, e, r[i], n, !0);
- return e
- }, e.prototype.drawCircle = function (t) {
- if (Re(this.extent_, t.getExtent())) {
- if (this.fillState_ || this.strokeState_) {
- this.fillState_ && this.setContextFillState_(this.fillState_), this.strokeState_ && this.setContextStrokeState_(this.strokeState_);
- var e = mn(t, this.transform_, this.pixelCoordinates_), r = e[2] - e[0], n = e[3] - e[1],
- i = Math.sqrt(r * r + n * n), o = this.context_;
- o.beginPath(), o.arc(e[0], e[1], i, 0, 2 * Math.PI), this.fillState_ && o.fill(), this.strokeState_ && o.stroke()
- }
- "" !== this.text_ && this.drawText_(t.getCenter(), 0, 2, 2)
- }
- }, e.prototype.setStyle = function (t) {
- this.setFillStrokeStyle(t.getFill(), t.getStroke()), this.setImageStyle(t.getImage()), this.setTextStyle(t.getText())
- }, e.prototype.setTransform = function (t) {
- this.transform_ = t
- }, e.prototype.drawGeometry = function (t) {
- switch (t.getType()) {
- case bt.POINT:
- this.drawPoint(t);
- break;
- case bt.LINE_STRING:
- this.drawLineString(t);
- break;
- case bt.POLYGON:
- this.drawPolygon(t);
- break;
- case bt.MULTI_POINT:
- this.drawMultiPoint(t);
- break;
- case bt.MULTI_LINE_STRING:
- this.drawMultiLineString(t);
- break;
- case bt.MULTI_POLYGON:
- this.drawMultiPolygon(t);
- break;
- case bt.GEOMETRY_COLLECTION:
- this.drawGeometryCollection(t);
- break;
- case bt.CIRCLE:
- this.drawCircle(t)
- }
- }, e.prototype.drawFeature = function (t, e) {
- var r = e.getGeometryFunction()(t);
- r && Re(this.extent_, r.getExtent()) && (this.setStyle(e), this.drawGeometry(r))
- }, e.prototype.drawGeometryCollection = function (t) {
- for (var e = t.getGeometriesArray(), r = 0, n = e.length; r < n; ++r) this.drawGeometry(e[r])
- }, e.prototype.drawPoint = function (t) {
- this.squaredTolerance_ && (t = t.simplifyTransformed(this.squaredTolerance_, this.userTransform_));
- var e = t.getFlatCoordinates(), r = t.getStride();
- this.image_ && this.drawImages_(e, 0, e.length, r), "" !== this.text_ && this.drawText_(e, 0, e.length, r)
- }, e.prototype.drawMultiPoint = function (t) {
- this.squaredTolerance_ && (t = t.simplifyTransformed(this.squaredTolerance_, this.userTransform_));
- var e = t.getFlatCoordinates(), r = t.getStride();
- this.image_ && this.drawImages_(e, 0, e.length, r), "" !== this.text_ && this.drawText_(e, 0, e.length, r)
- }, e.prototype.drawLineString = function (t) {
- if (this.squaredTolerance_ && (t = t.simplifyTransformed(this.squaredTolerance_, this.userTransform_)), Re(this.extent_, t.getExtent())) {
- if (this.strokeState_) {
- this.setContextStrokeState_(this.strokeState_);
- var e = this.context_, r = t.getFlatCoordinates();
- e.beginPath(), this.moveToLineTo_(r, 0, r.length, t.getStride(), !1), e.stroke()
- }
- if ("" !== this.text_) {
- var n = t.getFlatMidpoint();
- this.drawText_(n, 0, 2, 2)
- }
- }
- }, e.prototype.drawMultiLineString = function (t) {
- this.squaredTolerance_ && (t = t.simplifyTransformed(this.squaredTolerance_, this.userTransform_));
- var e = t.getExtent();
- if (Re(this.extent_, e)) {
- if (this.strokeState_) {
- this.setContextStrokeState_(this.strokeState_);
- var r = this.context_, n = t.getFlatCoordinates(), i = 0, o = t.getEnds(), a = t.getStride();
- r.beginPath();
- for (var s = 0, l = o.length; s < l; ++s) i = this.moveToLineTo_(n, i, o[s], a, !1);
- r.stroke()
- }
- if ("" !== this.text_) {
- var u = t.getFlatMidpoints();
- this.drawText_(u, 0, u.length, 2)
- }
- }
- }, e.prototype.drawPolygon = function (t) {
- if (this.squaredTolerance_ && (t = t.simplifyTransformed(this.squaredTolerance_, this.userTransform_)), Re(this.extent_, t.getExtent())) {
- if (this.strokeState_ || this.fillState_) {
- this.fillState_ && this.setContextFillState_(this.fillState_), this.strokeState_ && this.setContextStrokeState_(this.strokeState_);
- var e = this.context_;
- e.beginPath(), this.drawRings_(t.getOrientedFlatCoordinates(), 0, t.getEnds(), t.getStride()), this.fillState_ && e.fill(), this.strokeState_ && e.stroke()
- }
- if ("" !== this.text_) {
- var r = t.getFlatInteriorPoint();
- this.drawText_(r, 0, 2, 2)
- }
- }
- }, e.prototype.drawMultiPolygon = function (t) {
- if (this.squaredTolerance_ && (t = t.simplifyTransformed(this.squaredTolerance_, this.userTransform_)), Re(this.extent_, t.getExtent())) {
- if (this.strokeState_ || this.fillState_) {
- this.fillState_ && this.setContextFillState_(this.fillState_), this.strokeState_ && this.setContextStrokeState_(this.strokeState_);
- var e = this.context_, r = t.getOrientedFlatCoordinates(), n = 0, i = t.getEndss(), o = t.getStride();
- e.beginPath();
- for (var a = 0, s = i.length; a < s; ++a) {
- var l = i[a];
- n = this.drawRings_(r, n, l, o)
- }
- this.fillState_ && e.fill(), this.strokeState_ && e.stroke()
- }
- if ("" !== this.text_) {
- var u = t.getFlatInteriorPoints();
- this.drawText_(u, 0, u.length, 2)
- }
- }
- }, e.prototype.setContextFillState_ = function (t) {
- var e = this.context_, r = this.contextFillState_;
- r ? r.fillStyle != t.fillStyle && (r.fillStyle = t.fillStyle, e.fillStyle = t.fillStyle) : (e.fillStyle = t.fillStyle, this.contextFillState_ = {fillStyle: t.fillStyle})
- }, e.prototype.setContextStrokeState_ = function (t) {
- var e = this.context_, r = this.contextStrokeState_;
- r ? (r.lineCap != t.lineCap && (r.lineCap = t.lineCap, e.lineCap = t.lineCap), e.setLineDash && (b(r.lineDash, t.lineDash) || e.setLineDash(r.lineDash = t.lineDash), r.lineDashOffset != t.lineDashOffset && (r.lineDashOffset = t.lineDashOffset, e.lineDashOffset = t.lineDashOffset)), r.lineJoin != t.lineJoin && (r.lineJoin = t.lineJoin, e.lineJoin = t.lineJoin), r.lineWidth != t.lineWidth && (r.lineWidth = t.lineWidth, e.lineWidth = t.lineWidth), r.miterLimit != t.miterLimit && (r.miterLimit = t.miterLimit, e.miterLimit = t.miterLimit), r.strokeStyle != t.strokeStyle && (r.strokeStyle = t.strokeStyle, e.strokeStyle = t.strokeStyle)) : (e.lineCap = t.lineCap, e.setLineDash && (e.setLineDash(t.lineDash), e.lineDashOffset = t.lineDashOffset), e.lineJoin = t.lineJoin, e.lineWidth = t.lineWidth, e.miterLimit = t.miterLimit, e.strokeStyle = t.strokeStyle, this.contextStrokeState_ = {
- lineCap: t.lineCap,
- lineDash: t.lineDash,
- lineDashOffset: t.lineDashOffset,
- lineJoin: t.lineJoin,
- lineWidth: t.lineWidth,
- miterLimit: t.miterLimit,
- strokeStyle: t.strokeStyle
- })
- }, e.prototype.setContextTextState_ = function (t) {
- var e = this.context_, r = this.contextTextState_, n = t.textAlign ? t.textAlign : "center";
- r ? (r.font != t.font && (r.font = t.font, e.font = t.font), r.textAlign != n && (r.textAlign = n, e.textAlign = n), r.textBaseline != t.textBaseline && (r.textBaseline = t.textBaseline, e.textBaseline = t.textBaseline)) : (e.font = t.font, e.textAlign = n, e.textBaseline = t.textBaseline, this.contextTextState_ = {
- font: t.font,
- textAlign: n,
- textBaseline: t.textBaseline
- })
- }, e.prototype.setFillStrokeStyle = function (t, e) {
- if (t) {
- var r = t.getColor();
- this.fillState_ = {fillStyle: Tu(r || "#000")}
- } else this.fillState_ = null;
- if (e) {
- var n = e.getColor(), i = e.getLineCap(), o = e.getLineDash(), a = e.getLineDashOffset(), s = e.getLineJoin(),
- l = e.getWidth(), u = e.getMiterLimit();
- this.strokeState_ = {
- lineCap: void 0 !== i ? i : "round",
- lineDash: o || pa,
- lineDashOffset: a || 0,
- lineJoin: void 0 !== s ? s : "round",
- lineWidth: this.pixelRatio_ * (void 0 !== l ? l : 1),
- miterLimit: void 0 !== u ? u : 10,
- strokeStyle: Tu(n || "#000")
- }
- } else this.strokeState_ = null
- }, e.prototype.setImageStyle = function (t) {
- if (t) {
- var e = t.getSize();
- if (e) {
- var r = t.getAnchor(), n = t.getImage(1), i = t.getOrigin(), o = t.getScaleArray();
- this.imageAnchorX_ = r[0], this.imageAnchorY_ = r[1], this.imageHeight_ = e[1], this.image_ = n, this.imageOpacity_ = t.getOpacity(), this.imageOriginX_ = i[0], this.imageOriginY_ = i[1], this.imageRotateWithView_ = t.getRotateWithView(), this.imageRotation_ = t.getRotation(), this.imageScale_ = [this.pixelRatio_ * o[0], this.pixelRatio_ * o[1]], this.imageWidth_ = e[0]
- } else this.image_ = null
- } else this.image_ = null
- }, e.prototype.setTextStyle = function (t) {
- if (t) {
- var e = t.getFill();
- if (e) {
- var r = e.getColor();
- this.textFillState_ = {fillStyle: Tu(r || "#000")}
- } else this.textFillState_ = null;
- var n = t.getStroke();
- if (n) {
- var i = n.getColor(), o = n.getLineCap(), a = n.getLineDash(), s = n.getLineDashOffset(),
- l = n.getLineJoin(), u = n.getWidth(), c = n.getMiterLimit();
- this.textStrokeState_ = {
- lineCap: void 0 !== o ? o : "round",
- lineDash: a || pa,
- lineDashOffset: s || 0,
- lineJoin: void 0 !== l ? l : "round",
- lineWidth: void 0 !== u ? u : 1,
- miterLimit: void 0 !== c ? c : 10,
- strokeStyle: Tu(i || "#000")
- }
- } else this.textStrokeState_ = null;
- var h = t.getFont(), p = t.getOffsetX(), f = t.getOffsetY(), d = t.getRotateWithView(), g = t.getRotation(),
- y = t.getScaleArray(), m = t.getText(), v = t.getTextAlign(), _ = t.getTextBaseline();
- this.textState_ = {
- font: void 0 !== h ? h : "10px sans-serif",
- textAlign: void 0 !== v ? v : "center",
- textBaseline: void 0 !== _ ? _ : "middle"
- }, this.text_ = void 0 !== m ? m : "", this.textOffsetX_ = void 0 !== p ? this.pixelRatio_ * p : 0, this.textOffsetY_ = void 0 !== f ? this.pixelRatio_ * f : 0, this.textRotateWithView_ = void 0 !== d && d, this.textRotation_ = void 0 !== g ? g : 0, this.textScale_ = [this.pixelRatio_ * y[0], this.pixelRatio_ * y[1]]
- } else this.text_ = ""
- }, e
- }(ku), Du = "Circle", Gu = "Default", zu = "Image", Uu = "LineString", Bu = "Polygon", Vu = "Text", Yu = {
- Point: function (t, e, r, n, i) {
- var o, a = r.getImage(), s = r.getText();
- i && (t = i, o = a && s && s.getText() ? {} : void 0);
- if (a) {
- if (a.getImageState() != ki) return;
- var l = t.getBuilder(r.getZIndex(), zu);
- l.setImageStyle(a, o), l.drawPoint(e, n)
- }
- if (s && s.getText()) {
- var u = t.getBuilder(r.getZIndex(), Vu);
- u.setTextStyle(s, o), u.drawText(e, n)
- }
- }, LineString: function (t, e, r, n, i) {
- var o = r.getStroke();
- if (o) {
- var a = t.getBuilder(r.getZIndex(), Uu);
- a.setFillStrokeStyle(null, o), a.drawLineString(e, n)
- }
- var s = r.getText();
- if (s && s.getText()) {
- var l = (i || t).getBuilder(r.getZIndex(), Vu);
- l.setTextStyle(s), l.drawText(e, n)
- }
- }, Polygon: function (t, e, r, n, i) {
- var o = r.getFill(), a = r.getStroke();
- if (o || a) {
- var s = t.getBuilder(r.getZIndex(), Bu);
- s.setFillStrokeStyle(o, a), s.drawPolygon(e, n)
- }
- var l = r.getText();
- if (l && l.getText()) {
- var u = (i || t).getBuilder(r.getZIndex(), Vu);
- u.setTextStyle(l), u.drawText(e, n)
- }
- }, MultiPoint: function (t, e, r, n, i) {
- var o, a = r.getImage(), s = r.getText();
- i && (t = i, o = a && s && s.getText() ? {} : void 0);
- if (a) {
- if (a.getImageState() != ki) return;
- var l = t.getBuilder(r.getZIndex(), zu);
- l.setImageStyle(a, o), l.drawMultiPoint(e, n)
- }
- if (s && s.getText()) {
- var u = (i || t).getBuilder(r.getZIndex(), Vu);
- u.setTextStyle(s, o), u.drawText(e, n)
- }
- }, MultiLineString: function (t, e, r, n, i) {
- var o = r.getStroke();
- if (o) {
- var a = t.getBuilder(r.getZIndex(), Uu);
- a.setFillStrokeStyle(null, o), a.drawMultiLineString(e, n)
- }
- var s = r.getText();
- if (s && s.getText()) {
- var l = (i || t).getBuilder(r.getZIndex(), Vu);
- l.setTextStyle(s), l.drawText(e, n)
- }
- }, MultiPolygon: function (t, e, r, n, i) {
- var o = r.getFill(), a = r.getStroke();
- if (a || o) {
- var s = t.getBuilder(r.getZIndex(), Bu);
- s.setFillStrokeStyle(o, a), s.drawMultiPolygon(e, n)
- }
- var l = r.getText();
- if (l && l.getText()) {
- var u = (i || t).getBuilder(r.getZIndex(), Vu);
- u.setTextStyle(l), u.drawText(e, n)
- }
- }, GeometryCollection: function (t, e, r, n, i) {
- var o, a, s = e.getGeometriesArray();
- for (o = 0, a = s.length; o < a; ++o) {
- (0, Yu[s[o].getType()])(t, s[o], r, n, i)
- }
- }, Circle: function (t, e, r, n, i) {
- var o = r.getFill(), a = r.getStroke();
- if (o || a) {
- var s = t.getBuilder(r.getZIndex(), Du);
- s.setFillStrokeStyle(o, a), s.drawCircle(e, n)
- }
- var l = r.getText();
- if (l && l.getText()) {
- var u = (i || t).getBuilder(r.getZIndex(), Vu);
- u.setTextStyle(l), u.drawText(e, n)
- }
- }
- };
-
- function Wu(t, e) {
- return parseInt(o(t), 10) - parseInt(o(e), 10)
- }
-
- function qu(t, e) {
- var r = Xu(t, e);
- return r * r
- }
-
- function Xu(t, e) {
- return .5 * t / e
- }
-
- function Zu(t, e, r, n, i, o, a) {
- var s = !1, l = r.getImage();
- if (l) {
- var u = l.getImageState();
- u == ki || u == ji ? l.unlistenImageChange(i) : (u == Fi && l.load(), u = l.getImageState(), l.listenImageChange(i), s = !0)
- }
- return function (t, e, r, n, i, o) {
- var a = r.getGeometryFunction()(e);
- if (!a) return;
- var s = a.simplifyTransformed(n, i);
- if (r.getRenderer()) !function t(e, r, n, i) {
- if (r.getType() == bt.GEOMETRY_COLLECTION) {
- for (var o = r.getGeometries(), a = 0, s = o.length; a < s; ++a) t(e, o[a], n, i);
- return
- }
- e.getBuilder(n.getZIndex(), Gu).drawCustom(r, i, n.getRenderer())
- }(t, s, r, e); else {
- (0, Yu[s.getType()])(t, s, r, e, o)
- }
- }(t, e, r, n, o, a), s
- }
-
- function Ku(t) {
- var e, r = t.frameState, n = Ot(t.inversePixelTransform.slice(), r.coordinateToPixelTransform),
- i = qu(r.viewState.resolution, r.pixelRatio), o = tn();
- return o && (e = Zr(o, r.viewState.projection)), new Nu(t.context, r.pixelRatio, r.extent, n, r.viewState.rotation, i, e)
- }
-
- var Hu, $u = {imageSmoothingEnabled: !1, msImageSmoothingEnabled: !1};
-
- function Ju(t, e, r, n, i) {
- t.beginPath(), t.moveTo(0, 0), t.lineTo(e, r), t.lineTo(n, i), t.closePath(), t.save(), t.clip(), t.fillRect(0, 0, Math.max(e, n) + 1, Math.max(r, i)), t.restore()
- }
-
- function Qu(t, e) {
- return Math.abs(t[4 * e] - 210) > 2 || Math.abs(t[4 * e + 3] - 191.25) > 2
- }
-
- function tc(t, e, r, n) {
- var i = Hr(r, e, t), o = zr(e, n, r), a = e.getMetersPerUnit();
- void 0 !== a && (o *= a);
- var s = t.getMetersPerUnit();
- void 0 !== s && (o /= s);
- var l = t.getExtent();
- if (!l || Qt(l, i)) {
- var u = zr(t, o, i) / o;
- isFinite(u) && u > 0 && (o /= u)
- }
- return o
- }
-
- function ec(t, e, r, n) {
- var i = xe(r), o = tc(t, e, i, n);
- return (!isFinite(o) || o <= 0) && me(r, (function (r) {
- return o = tc(t, e, r, n), isFinite(o) && o > 0
- })), o
- }
-
- function rc(t, e, r, n, i, o, a, s, l, u, c, h) {
- var p = uo(Math.round(r * t), Math.round(r * e));
- if (O(p, h), 0 === l.length) return p.canvas;
-
- function f(t) {
- return Math.round(t * r) / r
- }
-
- p.scale(r, r), p.globalCompositeOperation = "lighter";
- var d = [1 / 0, 1 / 0, -1 / 0, -1 / 0];
- l.forEach((function (t, e, r) {
- he(d, t.extent)
- }));
- var g = Pe(d), y = Ee(d), m = uo(Math.round(r * g / n), Math.round(r * y / n));
- O(m, h);
- var v = r / n;
- l.forEach((function (t, e, r) {
- var n = t.extent[0] - d[0], i = -(t.extent[3] - d[3]), o = Pe(t.extent), a = Ee(t.extent);
- t.image.width > 0 && t.image.height > 0 && m.drawImage(t.image, u, u, t.image.width - 2 * u, t.image.height - 2 * u, n * v, i * v, o * v, a * v)
- }));
- var _ = Ce(a);
- return s.getTriangles().forEach((function (t, e, i) {
- var a = t.source, s = t.target, l = a[0][0], u = a[0][1], c = a[1][0], g = a[1][1], y = a[2][0], v = a[2][1],
- b = f((s[0][0] - _[0]) / o), x = f(-(s[0][1] - _[1]) / o), w = f((s[1][0] - _[0]) / o),
- S = f(-(s[1][1] - _[1]) / o), E = f((s[2][0] - _[0]) / o), T = f(-(s[2][1] - _[1]) / o), C = l, O = u;
- l = 0, u = 0;
- var P = Be([[c -= C, g -= O, 0, 0, w - b], [y -= C, v -= O, 0, 0, E - b], [0, 0, c, g, S - x], [0, 0, y, v, T - x]]);
- if (P) {
- if (p.save(), p.beginPath(), function () {
- if (void 0 === Hu) {
- var t = document.createElement("canvas").getContext("2d");
- t.globalCompositeOperation = "lighter", t.fillStyle = "rgba(210, 0, 0, 0.75)", Ju(t, 4, 5, 4, 0), Ju(t, 4, 5, 0, 5);
- var e = t.getImageData(0, 0, 3, 3).data;
- Hu = Qu(e, 0) || Qu(e, 4) || Qu(e, 8)
- }
- return Hu
- }() || h === $u) {
- p.moveTo(w, S);
- for (var R = b - w, I = x - S, L = 0; L < 4; L++) p.lineTo(w + f((L + 1) * R / 4), S + f(L * I / 3)), 3 != L && p.lineTo(w + f((L + 1) * R / 4), S + f((L + 1) * I / 3));
- p.lineTo(E, T)
- } else p.moveTo(w, S), p.lineTo(b, x), p.lineTo(E, T);
- p.clip(), p.transform(P[0], P[2], P[1], P[3], b, x), p.translate(d[0] - C, d[3] - O), p.scale(n / r, -n / r), p.drawImage(m.canvas, 0, 0), p.restore()
- }
- })), c && (p.save(), p.globalCompositeOperation = "source-over", p.strokeStyle = "black", p.lineWidth = 1, s.getTriangles().forEach((function (t, e, r) {
- var n = t.target, i = (n[0][0] - _[0]) / o, a = -(n[0][1] - _[1]) / o, s = (n[1][0] - _[0]) / o,
- l = -(n[1][1] - _[1]) / o, u = (n[2][0] - _[0]) / o, c = -(n[2][1] - _[1]) / o;
- p.beginPath(), p.moveTo(s, l), p.lineTo(i, a), p.lineTo(u, c), p.closePath(), p.stroke()
- })), p.restore()), p.canvas
- }
-
- var nc = [0, 0, 0], ic = function () {
- function t(t) {
- var e;
- if (this.minZoom = void 0 !== t.minZoom ? t.minZoom : 0, this.resolutions_ = t.resolutions, pt(w(this.resolutions_, (function (t, e) {
- return e - t
- }), !0), 17), !t.origins) for (var r = 0, n = this.resolutions_.length - 1; r < n; ++r) if (e) {
- if (this.resolutions_[r] / this.resolutions_[r + 1] !== e) {
- e = void 0;
- break
- }
- } else e = this.resolutions_[r] / this.resolutions_[r + 1];
- this.zoomFactor_ = e, this.maxZoom = this.resolutions_.length - 1, this.origin_ = void 0 !== t.origin ? t.origin : null, this.origins_ = null, void 0 !== t.origins && (this.origins_ = t.origins, pt(this.origins_.length == this.resolutions_.length, 20));
- var i = t.extent;
- void 0 === i || this.origin_ || this.origins_ || (this.origin_ = Ce(i)), pt(!this.origin_ && this.origins_ || this.origin_ && !this.origins_, 18), this.tileSizes_ = null, void 0 !== t.tileSizes && (this.tileSizes_ = t.tileSizes, pt(this.tileSizes_.length == this.resolutions_.length, 19)), this.tileSize_ = void 0 !== t.tileSize ? t.tileSize : this.tileSizes_ ? null : 256, pt(!this.tileSize_ && this.tileSizes_ || this.tileSize_ && !this.tileSizes_, 22), this.extent_ = void 0 !== i ? i : null, this.fullTileRanges_ = null, this.tmpSize_ = [0, 0], void 0 !== t.sizes ? this.fullTileRanges_ = t.sizes.map((function (t, e) {
- var r = new _u(Math.min(0, t[0]), Math.max(t[0] - 1, -1), Math.min(0, t[1]), Math.max(t[1] - 1, -1));
- if (i) {
- var n = this.getTileRangeForExtentAndZ(i, e);
- r.minX = Math.max(n.minX, r.minX), r.maxX = Math.min(n.maxX, r.maxX), r.minY = Math.max(n.minY, r.minY), r.maxY = Math.min(n.maxY, r.maxY)
- }
- return r
- }), this) : i && this.calculateTileRanges_(i)
- }
-
- return t.prototype.forEachTileCoord = function (t, e, r) {
- for (var n = this.getTileRangeForExtentAndZ(t, e), i = n.minX, o = n.maxX; i <= o; ++i) for (var a = n.minY, s = n.maxY; a <= s; ++a) r([e, i, a])
- }, t.prototype.forEachTileCoordParentTileRange = function (t, e, r, n) {
- var i, o, a = null, s = t[0] - 1;
- for (2 === this.zoomFactor_ ? (i = t[1], o = t[2]) : a = this.getTileCoordExtent(t, n); s >= this.minZoom;) {
- if (e(s, 2 === this.zoomFactor_ ? vu(i = Math.floor(i / 2), i, o = Math.floor(o / 2), o, r) : this.getTileRangeForExtentAndZ(a, s, r))) return !0;
- --s
- }
- return !1
- }, t.prototype.getExtent = function () {
- return this.extent_
- }, t.prototype.getMaxZoom = function () {
- return this.maxZoom
- }, t.prototype.getMinZoom = function () {
- return this.minZoom
- }, t.prototype.getOrigin = function (t) {
- return this.origin_ ? this.origin_ : this.origins_[t]
- }, t.prototype.getResolution = function (t) {
- return this.resolutions_[t]
- }, t.prototype.getResolutions = function () {
- return this.resolutions_
- }, t.prototype.getTileCoordChildTileRange = function (t, e, r) {
- if (t[0] < this.maxZoom) {
- if (2 === this.zoomFactor_) {
- var n = 2 * t[1], i = 2 * t[2];
- return vu(n, n + 1, i, i + 1, e)
- }
- var o = this.getTileCoordExtent(t, r);
- return this.getTileRangeForExtentAndZ(o, t[0] + 1, e)
- }
- return null
- }, t.prototype.getTileRangeExtent = function (t, e, r) {
- var n = this.getOrigin(t), i = this.getResolution(t), o = Is(this.getTileSize(t), this.tmpSize_),
- a = n[0] + e.minX * o[0] * i, s = n[0] + (e.maxX + 1) * o[0] * i;
- return ie(a, n[1] + e.minY * o[1] * i, s, n[1] + (e.maxY + 1) * o[1] * i, r)
- }, t.prototype.getTileRangeForExtentAndZ = function (t, e, r) {
- var n = nc;
- this.getTileCoordForXYAndZ_(t[0], t[3], e, !1, n);
- var i = n[1], o = n[2];
- return this.getTileCoordForXYAndZ_(t[2], t[1], e, !0, n), vu(i, n[1], o, n[2], r)
- }, t.prototype.getTileCoordCenter = function (t) {
- var e = this.getOrigin(t[0]), r = this.getResolution(t[0]), n = Is(this.getTileSize(t[0]), this.tmpSize_);
- return [e[0] + (t[1] + .5) * n[0] * r, e[1] - (t[2] + .5) * n[1] * r]
- }, t.prototype.getTileCoordExtent = function (t, e) {
- var r = this.getOrigin(t[0]), n = this.getResolution(t[0]), i = Is(this.getTileSize(t[0]), this.tmpSize_),
- o = r[0] + t[1] * i[0] * n, a = r[1] - (t[2] + 1) * i[1] * n;
- return ie(o, a, o + i[0] * n, a + i[1] * n, e)
- }, t.prototype.getTileCoordForCoordAndResolution = function (t, e, r) {
- return this.getTileCoordForXYAndResolution_(t[0], t[1], e, !1, r)
- }, t.prototype.getTileCoordForXYAndResolution_ = function (t, e, r, n, i) {
- var o = this.getZForResolution(r), a = r / this.getResolution(o), s = this.getOrigin(o),
- l = Is(this.getTileSize(o), this.tmpSize_), u = n ? .5 : 0, c = n ? .5 : 0,
- h = Math.floor((t - s[0]) / r + u), p = Math.floor((s[1] - e) / r + c), f = a * h / l[0], d = a * p / l[1];
- return n ? (f = Math.ceil(f) - 1, d = Math.ceil(d) - 1) : (f = Math.floor(f), d = Math.floor(d)), uu(o, f, d, i)
- }, t.prototype.getTileCoordForXYAndZ_ = function (t, e, r, n, i) {
- var o = this.getOrigin(r), a = this.getResolution(r), s = Is(this.getTileSize(r), this.tmpSize_),
- l = n ? .5 : 0, u = n ? .5 : 0, c = Math.floor((t - o[0]) / a + l), h = Math.floor((o[1] - e) / a + u),
- p = c / s[0], f = h / s[1];
- return n ? (p = Math.ceil(p) - 1, f = Math.ceil(f) - 1) : (p = Math.floor(p), f = Math.floor(f)), uu(r, p, f, i)
- }, t.prototype.getTileCoordForCoordAndZ = function (t, e, r) {
- return this.getTileCoordForXYAndZ_(t[0], t[1], e, !1, r)
- }, t.prototype.getTileCoordResolution = function (t) {
- return this.resolutions_[t[0]]
- }, t.prototype.getTileSize = function (t) {
- return this.tileSize_ ? this.tileSize_ : this.tileSizes_[t]
- }, t.prototype.getFullTileRange = function (t) {
- return this.fullTileRanges_ ? this.fullTileRanges_[t] : this.extent_ ? this.getTileRangeForExtentAndZ(this.extent_, t) : null
- }, t.prototype.getZForResolution = function (t, e) {
- return Ne(y(this.resolutions_, t, e || 0), this.minZoom, this.maxZoom)
- }, t.prototype.calculateTileRanges_ = function (t) {
- for (var e = this.resolutions_.length, r = new Array(e), n = this.minZoom; n < e; ++n) r[n] = this.getTileRangeForExtentAndZ(t, n);
- this.fullTileRanges_ = r
- }, t
- }();
-
- function oc(t) {
- var e = t.getDefaultTileGrid();
- return e || (e = cc(t), t.setDefaultTileGrid(e)), e
- }
-
- function ac(t, e, r) {
- var n = e[0], i = t.getTileCoordCenter(e), o = hc(r);
- if (Qt(o, i)) return e;
- var a = Pe(o), s = Math.ceil((o[0] - i[0]) / a);
- return i[0] += a * s, t.getTileCoordForCoordAndZ(i, n)
- }
-
- function sc(t, e, r, n) {
- var i = void 0 !== n ? n : Ut, o = uc(t, e, r);
- return new ic({extent: t, origin: we(t, i), resolutions: o, tileSize: r})
- }
-
- function lc(t) {
- var e = t || {}, r = e.extent || Gr("EPSG:3857").getExtent(), n = {
- extent: r,
- minZoom: e.minZoom,
- tileSize: e.tileSize,
- resolutions: uc(r, e.maxZoom, e.tileSize, e.maxResolution)
- };
- return new ic(n)
- }
-
- function uc(t, e, r, n) {
- for (var i = void 0 !== e ? e : 42, o = Ee(t), a = Pe(t), s = Is(void 0 !== r ? r : 256), l = n > 0 ? n : Math.max(a / s[0], o / s[1]), u = i + 1, c = new Array(u), h = 0; h < u; ++h) c[h] = l / Math.pow(2, h);
- return c
- }
-
- function cc(t, e, r, n) {
- return sc(hc(t), e, r, n)
- }
-
- function hc(t) {
- var e = (t = Gr(t)).getExtent();
- if (!e) {
- var r = 180 * wt[St.DEGREES] / t.getMetersPerUnit();
- e = ie(-r, -r, r, r)
- }
- return e
- }
-
- function pc(t, e) {
- var r = /\{z\}/g, n = /\{x\}/g, i = /\{y\}/g, o = /\{-y\}/g;
- return function (a, s, l) {
- return a ? t.replace(r, a[0].toString()).replace(n, a[1].toString()).replace(i, a[2].toString()).replace(o, (function () {
- var t = a[0], r = e.getFullTileRange(t);
- return pt(r, 55), (r.getHeight() - a[2] - 1).toString()
- })) : void 0
- }
- }
-
- function fc(t, e) {
- for (var r = t.length, n = new Array(r), i = 0; i < r; ++i) n[i] = pc(t[i], e);
- return dc(n)
- }
-
- function dc(t) {
- return 1 === t.length ? t[0] : function (e, r, n) {
- if (e) {
- var i = We(fu(e), t.length);
- return t[i](e, r, n)
- }
- }
- }
-
- function gc(t, e, r) {
- }
-
- function yc(t) {
- var e = [], r = /\{([a-z])-([a-z])\}/.exec(t);
- if (r) {
- var n = r[1].charCodeAt(0), i = r[2].charCodeAt(0), o = void 0;
- for (o = n; o <= i; ++o) e.push(t.replace(r[0], String.fromCharCode(o)));
- return e
- }
- if (r = /\{(\d+)-(\d+)\}/.exec(t)) {
- for (var a = parseInt(r[2], 10), s = parseInt(r[1], 10); s <= a; s++) e.push(t.replace(r[0], s.toString()));
- return e
- }
- return e.push(t), e
- }
-
- function mc(t, e) {
- var r = [];
- Object.keys(e).forEach((function (t) {
- null !== e[t] && void 0 !== e[t] && r.push(t + "=" + encodeURIComponent(e[t]))
- }));
- var n = r.join("&");
- return (t = -1 === (t = t.replace(/[?&]$/, "")).indexOf("?") ? t + "?" : t + "&") + n
- }
-
- var vc, _c = ["experimental-webgl", "webgl", "webkit-3d", "moz-webgl"];
-
- function bc(t, e) {
- for (var r = _c.length, n = 0; n < r; ++n) try {
- var i = t.getContext(_c[n], e);
- if (i) return i
- } catch (t) {
- }
- return null
- }
-
- function xc() {
- if (!vc) {
- var t = bc(document.createElement("canvas"));
- t && (vc = t.getSupportedExtensions())
- }
- return vc
- }
-
- var wc = "http://www.w3.org/2001/XMLSchema-instance";
-
- function Sc(t, e) {
- return Xc().createElementNS(t, e)
- }
-
- function Ec(t, e) {
- return Tc(t, e, []).join("")
- }
-
- function Tc(t, e, r) {
- if (t.nodeType == Node.CDATA_SECTION_NODE || t.nodeType == Node.TEXT_NODE) e ? r.push(String(t.nodeValue).replace(/(\r\n|\r|\n)/g, "")) : r.push(t.nodeValue); else {
- var n = void 0;
- for (n = t.firstChild; n; n = n.nextSibling) Tc(n, e, r)
- }
- return r
- }
-
- function Cc(t) {
- return "documentElement" in t
- }
-
- function Oc(t, e, r) {
- return t.getAttributeNS(e, r) || ""
- }
-
- function Pc(t) {
- return (new DOMParser).parseFromString(t, "application/xml")
- }
-
- function Rc(t, e) {
- return function (r, n) {
- var i = t.call(void 0 !== e ? e : this, r, n);
- void 0 !== i && v(n[n.length - 1], i)
- }
- }
-
- function Ic(t, e) {
- return function (r, n) {
- var i = t.call(void 0 !== e ? e : this, r, n);
- void 0 !== i && n[n.length - 1].push(i)
- }
- }
-
- function Lc(t, e) {
- return function (r, n) {
- var i = t.call(void 0 !== e ? e : this, r, n);
- void 0 !== i && (n[n.length - 1] = i)
- }
- }
-
- function Mc(t, e, r) {
- return function (n, i) {
- var o = t.call(void 0 !== r ? r : this, n, i);
- if (void 0 !== o) {
- var a = i[i.length - 1], s = void 0 !== e ? e : n.localName, l = void 0;
- s in a ? l = a[s] : (l = [], a[s] = l), l.push(o)
- }
- }
- }
-
- function Fc(t, e, r) {
- return function (n, i) {
- var o = t.call(void 0 !== r ? r : this, n, i);
- void 0 !== o && (i[i.length - 1][void 0 !== e ? e : n.localName] = o)
- }
- }
-
- function Ac(t, e) {
- return function (r, n, i) {
- t.call(void 0 !== e ? e : this, r, n, i), i[i.length - 1].node.appendChild(r)
- }
- }
-
- function kc(t, e) {
- var r, n;
- return function (e, i, o) {
- if (void 0 === r) {
- r = {};
- var a = {};
- a[e.localName] = t, r[e.namespaceURI] = a, n = jc(e.localName)
- }
- Bc(r, n, i, o)
- }
- }
-
- function jc(t, e) {
- var r = t;
- return function (t, n, i) {
- var o = n[n.length - 1].node, a = r;
- return void 0 === a && (a = i), Sc(void 0 !== e ? e : o.namespaceURI, a)
- }
- }
-
- var Nc = jc();
-
- function Dc(t, e) {
- for (var r = e.length, n = new Array(r), i = 0; i < r; ++i) n[i] = t[e[i]];
- return n
- }
-
- function Gc(t, e, r) {
- var n, i, o = void 0 !== r ? r : {};
- for (n = 0, i = t.length; n < i; ++n) o[t[n]] = e;
- return o
- }
-
- function zc(t, e, r, n) {
- var i;
- for (i = e.firstElementChild; i; i = i.nextElementSibling) {
- var o = t[i.namespaceURI];
- if (void 0 !== o) {
- var a = o[i.localName];
- void 0 !== a && a.call(n, i, r)
- }
- }
- }
-
- function Uc(t, e, r, n, i) {
- return n.push(t), zc(e, r, n, i), n.pop()
- }
-
- function Bc(t, e, r, n, i, o) {
- for (var a, s, l = (void 0 !== i ? i : r).length, u = 0; u < l; ++u) void 0 !== (a = r[u]) && void 0 !== (s = e.call(void 0 !== o ? o : this, a, n, void 0 !== i ? i[u] : void 0)) && t[s.namespaceURI][s.localName].call(o, s, a, n)
- }
-
- function Vc(t, e, r, n, i, o, a) {
- return i.push(t), Bc(e, r, n, i, o, a), i.pop()
- }
-
- var Yc = void 0;
-
- function Wc() {
- return void 0 === Yc && "undefined" != typeof XMLSerializer && (Yc = new XMLSerializer), Yc
- }
-
- var qc = void 0;
-
- function Xc() {
- return void 0 === qc && "undefined" != typeof document && (qc = document.implementation.createDocument("", "", null)), qc
- }
-
- var Zc = new Blob(['var e=self;e.onmessage=function(s){console.log("version worker received message:",s.data),e.postMessage("version: ".concat("latest"))};'], {type: "application/javascript"});
- URL.createObjectURL(Zc);
- var Kc = new Blob(['var e="function"==typeof Object.assign?Object.assign:function(e,n){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),r=1,o=arguments.length;r<o;++r){var i=arguments[r];if(null!=i)for(var f in i)i.hasOwnProperty(f)&&(t[f]=i[f])}return t},n="GENERATE_BUFFERS",t=[],r={vertexPosition:0,indexPosition:0};function o(e,n,t,r,o){e[n+0]=t,e[n+1]=r,e[n+2]=o}function i(e,n,i,f,s,u){var a=3+s,l=e[n+0],v=e[n+1],c=t;c.length=s;for(var g=0;g<c.length;g++)c[g]=e[n+2+g];var b=u?u.vertexPosition:0,h=u?u.indexPosition:0,d=b/a;return o(i,b,l,v,0),c.length&&i.set(c,b+3),o(i,b+=a,l,v,1),c.length&&i.set(c,b+3),o(i,b+=a,l,v,2),c.length&&i.set(c,b+3),o(i,b+=a,l,v,3),c.length&&i.set(c,b+3),b+=a,f[h++]=d,f[h++]=d+1,f[h++]=d+3,f[h++]=d+1,f[h++]=d+2,f[h++]=d+3,r.vertexPosition=b,r.indexPosition=h,r}var f=self;f.onmessage=function(t){var r=t.data;if(r.type===n){for(var o=r.customAttributesCount,s=2+o,u=new Float32Array(r.renderInstructions),a=u.length/s,l=4*a*(o+3),v=new Uint32Array(6*a),c=new Float32Array(l),g=null,b=0;b<u.length;b+=s)g=i(u,b,c,v,o,g);var h=e({vertexBuffer:c.buffer,indexBuffer:v.buffer,renderInstructions:u.buffer},r);f.postMessage(h,[c.buffer,v.buffer,u.buffer])}};'], {type: "application/javascript"}),
- Hc = URL.createObjectURL(Kc);
- var $c = 35044;
-
- function Jc(t) {
- switch (t) {
- case 34962:
- return Float32Array;
- case 34963:
- return Uint32Array;
- default:
- return Float32Array
- }
- }
-
- var Qc = function () {
- function t(t, e) {
- this.array = null, this.type = t, pt(34962 === t || 34963 === t, 62), this.usage = void 0 !== e ? e : $c
- }
-
- return t.prototype.ofSize = function (t) {
- this.array = new (Jc(this.type))(t)
- }, t.prototype.fromArray = function (t) {
- this.array = Jc(this.type).from(t)
- }, t.prototype.fromArrayBuffer = function (t) {
- this.array = new (Jc(this.type))(t)
- }, t.prototype.getType = function () {
- return this.type
- }, t.prototype.getArray = function () {
- return this.array
- }, t.prototype.getUsage = function () {
- return this.usage
- }, t.prototype.getSize = function () {
- return this.array ? this.array.length : 0
- }, t
- }(), th = "webglcontextlost", eh = "webglcontextrestored", rh = function () {
- function t(t) {
- this.gl_ = t.webGlContext;
- var e = this.gl_;
- this.scaleRatio_ = t.scaleRatio || 1, this.renderTargetTexture_ = e.createTexture(), this.renderTargetTextureSize_ = null, this.frameBuffer_ = e.createFramebuffer();
- var r = e.createShader(e.VERTEX_SHADER);
- e.shaderSource(r, t.vertexShader || "\n precision mediump float;\n \n attribute vec2 a_position;\n varying vec2 v_texCoord;\n varying vec2 v_screenCoord;\n \n uniform vec2 u_screenSize;\n \n void main() {\n v_texCoord = a_position * 0.5 + 0.5;\n v_screenCoord = v_texCoord * u_screenSize;\n gl_Position = vec4(a_position, 0.0, 1.0);\n }\n"), e.compileShader(r);
- var n = e.createShader(e.FRAGMENT_SHADER);
- e.shaderSource(n, t.fragmentShader || "\n precision mediump float;\n \n uniform sampler2D u_image;\n \n varying vec2 v_texCoord;\n \n void main() {\n gl_FragColor = texture2D(u_image, v_texCoord);\n }\n"), e.compileShader(n), this.renderTargetProgram_ = e.createProgram(), e.attachShader(this.renderTargetProgram_, r), e.attachShader(this.renderTargetProgram_, n), e.linkProgram(this.renderTargetProgram_), this.renderTargetVerticesBuffer_ = e.createBuffer();
- e.bindBuffer(e.ARRAY_BUFFER, this.renderTargetVerticesBuffer_), e.bufferData(e.ARRAY_BUFFER, new Float32Array([-1, -1, 1, -1, -1, 1, 1, -1, 1, 1, -1, 1]), e.STATIC_DRAW), this.renderTargetAttribLocation_ = e.getAttribLocation(this.renderTargetProgram_, "a_position"), this.renderTargetUniformLocation_ = e.getUniformLocation(this.renderTargetProgram_, "u_screenSize"), this.renderTargetTextureLocation_ = e.getUniformLocation(this.renderTargetProgram_, "u_image"), this.uniforms_ = [], t.uniforms && Object.keys(t.uniforms).forEach(function (r) {
- this.uniforms_.push({value: t.uniforms[r], location: e.getUniformLocation(this.renderTargetProgram_, r)})
- }.bind(this))
- }
-
- return t.prototype.getGL = function () {
- return this.gl_
- }, t.prototype.init = function (t) {
- var e = this.getGL(), r = [e.drawingBufferWidth * this.scaleRatio_, e.drawingBufferHeight * this.scaleRatio_];
- if (e.bindFramebuffer(e.FRAMEBUFFER, this.getFrameBuffer()), e.viewport(0, 0, r[0], r[1]), !this.renderTargetTextureSize_ || this.renderTargetTextureSize_[0] !== r[0] || this.renderTargetTextureSize_[1] !== r[1]) {
- this.renderTargetTextureSize_ = r;
- var n = e.RGBA, i = e.RGBA, o = e.UNSIGNED_BYTE;
- e.bindTexture(e.TEXTURE_2D, this.renderTargetTexture_), e.texImage2D(e.TEXTURE_2D, 0, n, r[0], r[1], 0, i, o, null), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MIN_FILTER, e.LINEAR), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_S, e.CLAMP_TO_EDGE), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_T, e.CLAMP_TO_EDGE), e.framebufferTexture2D(e.FRAMEBUFFER, e.COLOR_ATTACHMENT0, e.TEXTURE_2D, this.renderTargetTexture_, 0)
- }
- }, t.prototype.apply = function (t, e) {
- var r = this.getGL(), n = t.size;
- r.bindFramebuffer(r.FRAMEBUFFER, e ? e.getFrameBuffer() : null), r.activeTexture(r.TEXTURE0), r.bindTexture(r.TEXTURE_2D, this.renderTargetTexture_), r.clearColor(0, 0, 0, 0), r.clear(r.COLOR_BUFFER_BIT), r.enable(r.BLEND), r.blendFunc(r.ONE, r.ONE_MINUS_SRC_ALPHA), r.viewport(0, 0, r.drawingBufferWidth, r.drawingBufferHeight), r.bindBuffer(r.ARRAY_BUFFER, this.renderTargetVerticesBuffer_), r.useProgram(this.renderTargetProgram_), r.enableVertexAttribArray(this.renderTargetAttribLocation_), r.vertexAttribPointer(this.renderTargetAttribLocation_, 2, r.FLOAT, !1, 0, 0), r.uniform2f(this.renderTargetUniformLocation_, n[0], n[1]), r.uniform1i(this.renderTargetTextureLocation_, 0), this.applyUniforms(t), r.drawArrays(r.TRIANGLES, 0, 6)
- }, t.prototype.getFrameBuffer = function () {
- return this.frameBuffer_
- }, t.prototype.applyUniforms = function (t) {
- var e, r = this.getGL(), n = 1;
- this.uniforms_.forEach((function (i) {
- if ((e = "function" == typeof i.value ? i.value(t) : i.value) instanceof HTMLCanvasElement || e instanceof ImageData) i.texture || (i.texture = r.createTexture()), r.activeTexture(r["TEXTURE" + n]), r.bindTexture(r.TEXTURE_2D, i.texture), r.texParameteri(r.TEXTURE_2D, r.TEXTURE_MIN_FILTER, r.LINEAR), r.texParameteri(r.TEXTURE_2D, r.TEXTURE_WRAP_S, r.CLAMP_TO_EDGE), r.texParameteri(r.TEXTURE_2D, r.TEXTURE_WRAP_T, r.CLAMP_TO_EDGE), e instanceof ImageData ? r.texImage2D(r.TEXTURE_2D, 0, r.RGBA, r.RGBA, e.width, e.height, 0, r.UNSIGNED_BYTE, new Uint8Array(e.data)) : r.texImage2D(r.TEXTURE_2D, 0, r.RGBA, r.RGBA, r.UNSIGNED_BYTE, e), r.uniform1i(i.location, n++); else if (Array.isArray(e)) switch (e.length) {
- case 2:
- return void r.uniform2f(i.location, e[0], e[1]);
- case 3:
- return void r.uniform3f(i.location, e[0], e[1], e[2]);
- case 4:
- return void r.uniform4f(i.location, e[0], e[1], e[2], e[3]);
- default:
- return
- } else "number" == typeof e && r.uniform1f(i.location, e)
- }))
- }, t
- }();
-
- function nh() {
- return [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]
- }
-
- function ih(t, e) {
- return t[0] = e[0], t[1] = e[1], t[4] = e[2], t[5] = e[3], t[12] = e[4], t[13] = e[5], t
- }
-
- var oh = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), ah = "u_projectionMatrix", sh = "u_offsetScaleMatrix", lh = "u_offsetRotateMatrix", uh = "u_time",
- ch = "u_zoom", hh = "u_resolution",
- ph = {UNSIGNED_BYTE: 5121, UNSIGNED_SHORT: 5123, UNSIGNED_INT: 5125, FLOAT: 5126};
-
- function fh(t) {
- for (var e = 0, r = 0; r < t.length; r++) {
- var n = t[r];
- e += n.size * dh(n.type)
- }
- return e
- }
-
- function dh(t) {
- switch (t) {
- case ph.UNSIGNED_BYTE:
- return Uint8Array.BYTES_PER_ELEMENT;
- case ph.UNSIGNED_SHORT:
- return Uint16Array.BYTES_PER_ELEMENT;
- case ph.UNSIGNED_INT:
- return Uint32Array.BYTES_PER_ELEMENT;
- case ph.FLOAT:
- default:
- return Float32Array.BYTES_PER_ELEMENT
- }
- }
-
- var gh = function (t) {
- function e(e) {
- var r = t.call(this) || this, n = e || {};
- r.boundHandleWebGLContextLost_ = r.handleWebGLContextLost.bind(r), r.boundHandleWebGLContextRestored_ = r.handleWebGLContextRestored.bind(r), r.canvas_ = document.createElement("canvas"), r.canvas_.style.position = "absolute", r.canvas_.style.left = "0", r.gl_ = bc(r.canvas_);
- var i = r.getGL();
- if (r.bufferCache_ = {}, r.currentProgram_ = null, pt(g(xc(), "OES_element_index_uint"), 63), i.getExtension("OES_element_index_uint"), r.canvas_.addEventListener(th, r.boundHandleWebGLContextLost_), r.canvas_.addEventListener(eh, r.boundHandleWebGLContextRestored_), r.offsetRotateMatrix_ = [1, 0, 0, 1, 0, 0], r.offsetScaleMatrix_ = [1, 0, 0, 1, 0, 0], r.tmpMat4_ = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], r.uniformLocations_ = {}, r.attribLocations_ = {}, r.uniforms_ = [], n.uniforms) for (var o in n.uniforms) r.uniforms_.push({
- name: o,
- value: n.uniforms[o]
- });
- return r.postProcessPasses_ = n.postProcesses ? n.postProcesses.map((function (t) {
- return new rh({
- webGlContext: i,
- scaleRatio: t.scaleRatio,
- vertexShader: t.vertexShader,
- fragmentShader: t.fragmentShader,
- uniforms: t.uniforms
- })
- })) : [new rh({webGlContext: i})], r.shaderCompileErrors_ = null, r.startTime_ = Date.now(), r
- }
-
- return oh(e, t), e.prototype.bindBuffer = function (t) {
- var e = this.getGL(), r = o(t), n = this.bufferCache_[r];
- n || (n = {buffer: t, webGlBuffer: e.createBuffer()}, this.bufferCache_[r] = n);
- e.bindBuffer(t.getType(), n.webGlBuffer)
- }, e.prototype.flushBufferData = function (t) {
- var e = this.getGL();
- this.bindBuffer(t), e.bufferData(t.getType(), t.getArray(), t.getUsage())
- }, e.prototype.deleteBuffer = function (t) {
- var e = this.getGL(), r = o(t), n = this.bufferCache_[r];
- e.isContextLost() || e.deleteBuffer(n.buffer), delete this.bufferCache_[r]
- }, e.prototype.disposeInternal = function () {
- this.canvas_.removeEventListener(th, this.boundHandleWebGLContextLost_), this.canvas_.removeEventListener(eh, this.boundHandleWebGLContextRestored_)
- }, e.prototype.prepareDraw = function (t) {
- var e = this.getGL(), r = this.getCanvas(), n = t.size, i = t.pixelRatio;
- r.width = n[0] * i, r.height = n[1] * i, r.style.width = n[0] + "px", r.style.height = n[1] + "px", e.useProgram(this.currentProgram_);
- for (var o = this.postProcessPasses_.length - 1; o >= 0; o--) this.postProcessPasses_[o].init(t);
- e.bindTexture(e.TEXTURE_2D, null), e.clearColor(0, 0, 0, 0), e.clear(e.COLOR_BUFFER_BIT), e.enable(e.BLEND), e.blendFunc(e.ONE, e.ONE_MINUS_SRC_ALPHA), e.useProgram(this.currentProgram_), this.applyFrameState(t), this.applyUniforms(t)
- }, e.prototype.prepareDrawToRenderTarget = function (t, e, r) {
- var n = this.getGL(), i = e.getSize();
- n.bindFramebuffer(n.FRAMEBUFFER, e.getFramebuffer()), n.viewport(0, 0, i[0], i[1]), n.bindTexture(n.TEXTURE_2D, e.getTexture()), n.clearColor(0, 0, 0, 0), n.clear(n.COLOR_BUFFER_BIT), n.enable(n.BLEND), n.blendFunc(n.ONE, r ? n.ZERO : n.ONE_MINUS_SRC_ALPHA), n.useProgram(this.currentProgram_), this.applyFrameState(t), this.applyUniforms(t)
- }, e.prototype.drawElements = function (t, e) {
- var r = this.getGL(), n = r.UNSIGNED_INT, i = e - t, o = 4 * t;
- r.drawElements(r.TRIANGLES, i, n, o)
- }, e.prototype.finalizeDraw = function (t) {
- for (var e = 0; e < this.postProcessPasses_.length; e++) this.postProcessPasses_[e].apply(t, this.postProcessPasses_[e + 1] || null)
- }, e.prototype.getCanvas = function () {
- return this.canvas_
- }, e.prototype.getGL = function () {
- return this.gl_
- }, e.prototype.applyFrameState = function (t) {
- var e = t.size, r = t.viewState.rotation, n = Ct(this.offsetScaleMatrix_);
- Mt(n, 2 / e[0], 2 / e[1]);
- var i = Ct(this.offsetRotateMatrix_);
- 0 !== r && Lt(i, -r), this.setUniformMatrixValue(sh, ih(this.tmpMat4_, n)), this.setUniformMatrixValue(lh, ih(this.tmpMat4_, i)), this.setUniformFloatValue(uh, .001 * (Date.now() - this.startTime_)), this.setUniformFloatValue(ch, t.viewState.zoom), this.setUniformFloatValue(hh, t.viewState.resolution)
- }, e.prototype.applyUniforms = function (t) {
- var e, r = this.getGL(), n = 0;
- this.uniforms_.forEach(function (i) {
- if ((e = "function" == typeof i.value ? i.value(t) : i.value) instanceof HTMLCanvasElement || e instanceof HTMLImageElement || e instanceof ImageData) i.texture || (i.prevValue = void 0, i.texture = r.createTexture()), r.activeTexture(r["TEXTURE" + n]), r.bindTexture(r.TEXTURE_2D, i.texture), r.texParameteri(r.TEXTURE_2D, r.TEXTURE_MIN_FILTER, r.LINEAR), r.texParameteri(r.TEXTURE_2D, r.TEXTURE_WRAP_S, r.CLAMP_TO_EDGE), r.texParameteri(r.TEXTURE_2D, r.TEXTURE_WRAP_T, r.CLAMP_TO_EDGE), (!(e instanceof HTMLImageElement) || e.complete) && i.prevValue !== e && (i.prevValue = e, r.texImage2D(r.TEXTURE_2D, 0, r.RGBA, r.RGBA, r.UNSIGNED_BYTE, e)), r.uniform1i(this.getUniformLocation(i.name), n++); else if (Array.isArray(e) && 6 === e.length) this.setUniformMatrixValue(i.name, ih(this.tmpMat4_, e)); else if (Array.isArray(e) && e.length <= 4) switch (e.length) {
- case 2:
- return void r.uniform2f(this.getUniformLocation(i.name), e[0], e[1]);
- case 3:
- return void r.uniform3f(this.getUniformLocation(i.name), e[0], e[1], e[2]);
- case 4:
- return void r.uniform4f(this.getUniformLocation(i.name), e[0], e[1], e[2], e[3]);
- default:
- return
- } else "number" == typeof e && r.uniform1f(this.getUniformLocation(i.name), e)
- }.bind(this))
- }, e.prototype.useProgram = function (t) {
- return t != this.currentProgram_ && (this.getGL().useProgram(t), this.currentProgram_ = t, this.uniformLocations_ = {}, this.attribLocations_ = {}, !0)
- }, e.prototype.compileShader = function (t, e) {
- var r = this.getGL(), n = r.createShader(e);
- return r.shaderSource(n, t), r.compileShader(n), n
- }, e.prototype.getProgram = function (t, e) {
- var r = this.getGL(), n = this.compileShader(t, r.FRAGMENT_SHADER), i = this.compileShader(e, r.VERTEX_SHADER);
- this.shaderCompileErrors_ = null, r.getShaderInfoLog(n) && (this.shaderCompileErrors_ = "Fragment shader compilation failed:\n" + r.getShaderInfoLog(n)), r.getShaderInfoLog(i) && (this.shaderCompileErrors_ = (this.shaderCompileErrors_ || "") + "Vertex shader compilation failed:\n" + r.getShaderInfoLog(i));
- var o = r.createProgram();
- return r.attachShader(o, n), r.attachShader(o, i), r.linkProgram(o), o
- }, e.prototype.getShaderCompileErrors = function () {
- return this.shaderCompileErrors_
- }, e.prototype.getUniformLocation = function (t) {
- return void 0 === this.uniformLocations_[t] && (this.uniformLocations_[t] = this.getGL().getUniformLocation(this.currentProgram_, t)), this.uniformLocations_[t]
- }, e.prototype.getAttributeLocation = function (t) {
- return void 0 === this.attribLocations_[t] && (this.attribLocations_[t] = this.getGL().getAttribLocation(this.currentProgram_, t)), this.attribLocations_[t]
- }, e.prototype.makeProjectionTransform = function (t, e) {
- var r = t.size, n = t.viewState.rotation, i = t.viewState.resolution, o = t.viewState.center;
- return Ct(e), kt(e, 0, 0, 2 / (i * r[0]), 2 / (i * r[1]), -n, -o[0], -o[1]), e
- }, e.prototype.setUniformFloatValue = function (t, e) {
- this.getGL().uniform1f(this.getUniformLocation(t), e)
- }, e.prototype.setUniformMatrixValue = function (t, e) {
- this.getGL().uniformMatrix4fv(this.getUniformLocation(t), !1, e)
- }, e.prototype.enableAttributeArray_ = function (t, e, r, n, i) {
- var o = this.getAttributeLocation(t);
- o < 0 || (this.getGL().enableVertexAttribArray(o), this.getGL().vertexAttribPointer(o, e, r, !1, n, i))
- }, e.prototype.enableAttributes = function (t) {
- for (var e = fh(t), r = 0, n = 0; n < t.length; n++) {
- var i = t[n];
- this.enableAttributeArray_(i.name, i.size, i.type || 5126, e, r), r += i.size * dh(i.type)
- }
- }, e.prototype.handleWebGLContextLost = function () {
- P(this.bufferCache_), this.currentProgram_ = null
- }, e.prototype.handleWebGLContextRestored = function () {
- }, e.prototype.createTexture = function (t, e, r) {
- var n = this.getGL(), i = r || n.createTexture(), o = n.RGBA, a = n.RGBA, s = n.UNSIGNED_BYTE;
- return n.bindTexture(n.TEXTURE_2D, i), e ? n.texImage2D(n.TEXTURE_2D, 0, o, a, s, e) : n.texImage2D(n.TEXTURE_2D, 0, o, t[0], t[1], 0, a, s, null), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_MIN_FILTER, n.LINEAR), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_WRAP_S, n.CLAMP_TO_EDGE), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_WRAP_T, n.CLAMP_TO_EDGE), i
- }, e
- }(p), yh = new Uint8Array(4), mh = function () {
- function t(t, e) {
- this.helper_ = t;
- var r = t.getGL();
- this.texture_ = r.createTexture(), this.framebuffer_ = r.createFramebuffer(), this.size_ = e || [1, 1], this.data_ = new Uint8Array(0), this.dataCacheDirty_ = !0, this.updateSize_()
- }
-
- return t.prototype.setSize = function (t) {
- b(t, this.size_) || (this.size_[0] = t[0], this.size_[1] = t[1], this.updateSize_())
- }, t.prototype.getSize = function () {
- return this.size_
- }, t.prototype.clearCachedData = function () {
- this.dataCacheDirty_ = !0
- }, t.prototype.readAll = function () {
- if (this.dataCacheDirty_) {
- var t = this.size_, e = this.helper_.getGL();
- e.bindFramebuffer(e.FRAMEBUFFER, this.framebuffer_), e.readPixels(0, 0, t[0], t[1], e.RGBA, e.UNSIGNED_BYTE, this.data_), this.dataCacheDirty_ = !1
- }
- return this.data_
- }, t.prototype.readPixel = function (t, e) {
- if (t < 0 || e < 0 || t > this.size_[0] || e >= this.size_[1]) return yh[0] = 0, yh[1] = 0, yh[2] = 0, yh[3] = 0, yh;
- this.readAll();
- var r = Math.floor(t) + (this.size_[1] - Math.floor(e) - 1) * this.size_[0];
- return yh[0] = this.data_[4 * r], yh[1] = this.data_[4 * r + 1], yh[2] = this.data_[4 * r + 2], yh[3] = this.data_[4 * r + 3], yh
- }, t.prototype.getTexture = function () {
- return this.texture_
- }, t.prototype.getFramebuffer = function () {
- return this.framebuffer_
- }, t.prototype.updateSize_ = function () {
- var t = this.size_, e = this.helper_.getGL();
- this.texture_ = this.helper_.createTexture(t, null, this.texture_), e.bindFramebuffer(e.FRAMEBUFFER, this.framebuffer_), e.viewport(0, 0, t[0], t[1]), e.framebufferTexture2D(e.FRAMEBUFFER, e.COLOR_ATTACHMENT0, e.TEXTURE_2D, this.texture_, 0), this.data_ = new Uint8Array(t[0] * t[1] * 4)
- }, t
- }(), vh = 1, _h = 2, bh = 4, xh = 8, wh = 16, Sh = 31, Eh = {};
-
- function Th(t) {
- if ("number" == typeof t) return vh;
- if ("boolean" == typeof t) return xh;
- if ("string" == typeof t) return Io(t) ? bh | _h : _h;
- if (!Array.isArray(t)) throw new Error("Unhandled value type: " + JSON.stringify(t));
- var e = t;
- if (e.every((function (t) {
- return "number" == typeof t
- }))) return 3 === e.length || 4 === e.length ? bh | wh : wh;
- if ("string" != typeof e[0]) throw new Error("Expected an expression operator but received: " + JSON.stringify(e));
- var r = Eh[e[0]];
- if (void 0 === r) throw new Error("Unrecognized expression operator: " + JSON.stringify(e));
- return r.getReturnType(e.slice(1))
- }
-
- function Ch(t) {
- return Math.log2(t) % 1 == 0
- }
-
- function Oh(t) {
- var e = t.toString();
- return -1 === e.indexOf(".") ? e + ".0" : e
- }
-
- function Ph(t) {
- if (t.length < 2 || t.length > 4) throw new Error("`formatArray` can only output `vec2`, `vec3` or `vec4` arrays.");
- return "vec" + t.length + "(" + t.map(Oh).join(", ") + ")"
- }
-
- function Rh(t) {
- var e = Oo(t).slice();
- return e.length < 4 && e.push(1), Ph(e.map((function (t, e) {
- return e < 3 ? t / 255 : t
- })))
- }
-
- function Ih(t, e) {
- return void 0 === t.stringLiteralsMap[e] && (t.stringLiteralsMap[e] = Object.keys(t.stringLiteralsMap).length), t.stringLiteralsMap[e]
- }
-
- function Lh(t, e) {
- return Oh(Ih(t, e))
- }
-
- function Mh(t, e, r) {
- if (Array.isArray(e) && "string" == typeof e[0]) {
- var n = Eh[e[0]];
- if (void 0 === n) throw new Error("Unrecognized expression operator: " + JSON.stringify(e));
- return n.toGlsl(t, e.slice(1), r)
- }
- var i = Th(e);
- return (i & vh) > 0 ? Oh(e) : (i & xh) > 0 ? e.toString() : (i & _h) > 0 && (void 0 === r || r == _h) ? Lh(t, e.toString()) : (i & bh) > 0 && (void 0 === r || r == bh) ? Rh(e) : (i & wh) > 0 ? Ph(e) : void 0
- }
-
- function Fh(t) {
- if (!(Th(t) & vh)) throw new Error("A numeric value was expected, got " + JSON.stringify(t) + " instead")
- }
-
- function Ah(t) {
- for (var e = 0; e < t.length; e++) Fh(t[e])
- }
-
- function kh(t) {
- if (!(Th(t) & _h)) throw new Error("A string value was expected, got " + JSON.stringify(t) + " instead")
- }
-
- function jh(t) {
- if (!(Th(t) & xh)) throw new Error("A boolean value was expected, got " + JSON.stringify(t) + " instead")
- }
-
- function Nh(t, e) {
- if (t.length !== e) throw new Error("Exactly " + e + " arguments were expected, got " + t.length + " instead")
- }
-
- function Dh(t, e) {
- if (t.length < e) throw new Error("At least " + e + " arguments were expected, got " + t.length + " instead")
- }
-
- function Gh(t, e) {
- if (t.length > e) throw new Error("At most " + e + " arguments were expected, got " + t.length + " instead")
- }
-
- function zh(t) {
- if (t.length % 2 != 0) throw new Error("An even amount of arguments was expected, got " + t + " instead")
- }
-
- function Uh(t, e) {
- if (!Ch(e)) throw new Error("Could not infer only one type from the following expression: " + JSON.stringify(t))
- }
-
- function Bh(t) {
- return {
- getReturnType: function (t) {
- return xh
- }, toGlsl: function (e, r) {
- Nh(r, 2);
- for (var n = Sh, i = 0; i < r.length; i++) n &= Th(r[i]);
- if (0 === n) throw new Error("All arguments should be of compatible type, got " + JSON.stringify(r) + " instead");
- return "(" + Mh(e, r[0], n) + " " + t + " " + Mh(e, r[1], n) + ")"
- }
- }
- }
-
- function Vh(t) {
- return {
- getReturnType: function (t) {
- return xh
- }, toGlsl: function (e, r) {
- Dh(r, 2);
- for (var n = 0; n < r.length; n++) jh(r[n]);
- return "(" + r.map((function (t) {
- return Mh(e, t)
- })).join(" " + t + " ") + ")"
- }
- }
- }
-
- Eh.get = {
- getReturnType: function (t) {
- return Sh
- }, toGlsl: function (t, e) {
- Nh(e, 1), kh(e[0]);
- var r = e[0].toString();
- return -1 === t.attributes.indexOf(r) && t.attributes.push(r), (t.inFragmentShader ? "v_" : "a_") + r
- }
- }, Eh.var = {
- getReturnType: function (t) {
- return Sh
- }, toGlsl: function (t, e) {
- Nh(e, 1), kh(e[0]);
- var r = e[0].toString();
- return -1 === t.variables.indexOf(r) && t.variables.push(r), "u_" + r
- }
- }, Eh.time = {
- getReturnType: function (t) {
- return vh
- }, toGlsl: function (t, e) {
- return Nh(e, 0), "u_time"
- }
- }, Eh.zoom = {
- getReturnType: function (t) {
- return vh
- }, toGlsl: function (t, e) {
- return Nh(e, 0), "u_zoom"
- }
- }, Eh.resolution = {
- getReturnType: function (t) {
- return vh
- }, toGlsl: function (t, e) {
- return Nh(e, 0), "u_resolution"
- }
- }, Eh["*"] = {
- getReturnType: function (t) {
- return vh
- }, toGlsl: function (t, e) {
- return Nh(e, 2), Ah(e), "(" + Mh(t, e[0]) + " * " + Mh(t, e[1]) + ")"
- }
- }, Eh["/"] = {
- getReturnType: function (t) {
- return vh
- }, toGlsl: function (t, e) {
- return Nh(e, 2), Ah(e), "(" + Mh(t, e[0]) + " / " + Mh(t, e[1]) + ")"
- }
- }, Eh["+"] = {
- getReturnType: function (t) {
- return vh
- }, toGlsl: function (t, e) {
- return Nh(e, 2), Ah(e), "(" + Mh(t, e[0]) + " + " + Mh(t, e[1]) + ")"
- }
- }, Eh["-"] = {
- getReturnType: function (t) {
- return vh
- }, toGlsl: function (t, e) {
- return Nh(e, 2), Ah(e), "(" + Mh(t, e[0]) + " - " + Mh(t, e[1]) + ")"
- }
- }, Eh.clamp = {
- getReturnType: function (t) {
- return vh
- }, toGlsl: function (t, e) {
- Nh(e, 3), Ah(e);
- var r = Mh(t, e[1]), n = Mh(t, e[2]);
- return "clamp(" + Mh(t, e[0]) + ", " + r + ", " + n + ")"
- }
- }, Eh["%"] = {
- getReturnType: function (t) {
- return vh
- }, toGlsl: function (t, e) {
- return Nh(e, 2), Ah(e), "mod(" + Mh(t, e[0]) + ", " + Mh(t, e[1]) + ")"
- }
- }, Eh["^"] = {
- getReturnType: function (t) {
- return vh
- }, toGlsl: function (t, e) {
- return Nh(e, 2), Ah(e), "pow(" + Mh(t, e[0]) + ", " + Mh(t, e[1]) + ")"
- }
- }, Eh[">"] = {
- getReturnType: function (t) {
- return xh
- }, toGlsl: function (t, e) {
- return Nh(e, 2), Ah(e), "(" + Mh(t, e[0]) + " > " + Mh(t, e[1]) + ")"
- }
- }, Eh[">="] = {
- getReturnType: function (t) {
- return xh
- }, toGlsl: function (t, e) {
- return Nh(e, 2), Ah(e), "(" + Mh(t, e[0]) + " >= " + Mh(t, e[1]) + ")"
- }
- }, Eh["<"] = {
- getReturnType: function (t) {
- return xh
- }, toGlsl: function (t, e) {
- return Nh(e, 2), Ah(e), "(" + Mh(t, e[0]) + " < " + Mh(t, e[1]) + ")"
- }
- }, Eh["<="] = {
- getReturnType: function (t) {
- return xh
- }, toGlsl: function (t, e) {
- return Nh(e, 2), Ah(e), "(" + Mh(t, e[0]) + " <= " + Mh(t, e[1]) + ")"
- }
- }, Eh["=="] = Bh("=="), Eh["!="] = Bh("!="), Eh["!"] = {
- getReturnType: function (t) {
- return xh
- }, toGlsl: function (t, e) {
- return Nh(e, 1), jh(e[0]), "(!" + Mh(t, e[0]) + ")"
- }
- }, Eh.all = Vh("&&"), Eh.any = Vh("||"), Eh.between = {
- getReturnType: function (t) {
- return xh
- }, toGlsl: function (t, e) {
- Nh(e, 3), Ah(e);
- var r = Mh(t, e[1]), n = Mh(t, e[2]), i = Mh(t, e[0]);
- return "(" + i + " >= " + r + " && " + i + " <= " + n + ")"
- }
- }, Eh.array = {
- getReturnType: function (t) {
- return wh
- }, toGlsl: function (t, e) {
- Dh(e, 2), Gh(e, 4), Ah(e);
- var r = e.map((function (e) {
- return Mh(t, e, vh)
- }));
- return "vec" + e.length + "(" + r.join(", ") + ")"
- }
- }, Eh.color = {
- getReturnType: function (t) {
- return bh
- }, toGlsl: function (t, e) {
- Dh(e, 3), Gh(e, 4), Ah(e);
- var r = e;
- 3 === e.length && r.push(1);
- var n = e.map((function (e, r) {
- return Mh(t, e, vh) + (r < 3 ? " / 255.0" : "")
- }));
- return "vec" + e.length + "(" + n.join(", ") + ")"
- }
- }, Eh.interpolate = {
- getReturnType: function (t) {
- for (var e = bh | vh, r = 3; r < t.length; r += 2) e &= Th(t[r]);
- return e
- }, toGlsl: function (t, e, r) {
- zh(e), Dh(e, 6);
- var n, i = e[0];
- switch (i[0]) {
- case"linear":
- n = 1;
- break;
- case"exponential":
- n = i[1];
- break;
- default:
- n = null
- }
- if (!n) throw new Error('Invalid interpolation type for "interpolate" operator, received: ' + JSON.stringify(i));
- var o = void 0 !== r ? r : Sh, a = Eh.interpolate.getReturnType(e) & o;
- Uh(e, a);
- for (var s = Mh(t, e[1]), l = null, u = 2; u < e.length - 2; u += 2) {
- var c = Mh(t, e[u]), h = Mh(t, e[u + 1], a), p = Mh(t, e[u + 2]);
- l = "mix(" + (l || h) + ", " + Mh(t, e[u + 3], a) + ", pow(clamp((" + s + " - " + c + ") / (" + p + " - " + c + "), 0.0, 1.0), " + Oh(n) + "))"
- }
- return l
- }
- }, Eh.match = {
- getReturnType: function (t) {
- for (var e = Sh, r = 2; r < t.length; r += 2) e &= Th(t[r]);
- return e &= Th(t[t.length - 1])
- }, toGlsl: function (t, e, r) {
- zh(e), Dh(e, 4);
- var n = void 0 !== r ? r : Sh, i = Eh.match.getReturnType(e) & n;
- Uh(e, i);
- for (var o = Mh(t, e[0]), a = Mh(t, e[e.length - 1], i), s = null, l = e.length - 3; l >= 1; l -= 2) {
- s = "(" + o + " == " + Mh(t, e[l]) + " ? " + Mh(t, e[l + 1], i) + " : " + (s || a) + ")"
- }
- return s
- }
- }, Eh.case = {
- getReturnType: function (t) {
- for (var e = Sh, r = 1; r < t.length; r += 2) e &= Th(t[r]);
- return e &= Th(t[t.length - 1])
- }, toGlsl: function (t, e, r) {
- !function (t) {
- if (t.length % 2 == 0) throw new Error("An odd amount of arguments was expected, got " + t + " instead")
- }(e), Dh(e, 3);
- var n = void 0 !== r ? r : Sh, i = Eh.case.getReturnType(e) & n;
- Uh(e, i);
- for (var o = 0; o < e.length - 1; o += 2) jh(e[o]);
- var a = Mh(t, e[e.length - 1], i), s = null;
- for (o = e.length - 3; o >= 0; o -= 2) {
- s = "(" + Mh(t, e[o]) + " ? " + Mh(t, e[o + 1], i) + " : " + (s || a) + ")"
- }
- return s
- }
- };
- var Yh = function () {
- function t() {
- this.uniforms = [], this.attributes = [], this.varyings = [], this.sizeExpression = "vec2(1.0)", this.rotationExpression = "0.0", this.offsetExpression = "vec2(0.0)", this.colorExpression = "vec4(1.0)", this.texCoordExpression = "vec4(0.0, 0.0, 1.0, 1.0)", this.discardExpression = "false", this.rotateWithView = !1
- }
-
- return t.prototype.addUniform = function (t) {
- return this.uniforms.push(t), this
- }, t.prototype.addAttribute = function (t) {
- return this.attributes.push(t), this
- }, t.prototype.addVarying = function (t, e, r) {
- return this.varyings.push({name: t, type: e, expression: r}), this
- }, t.prototype.setSizeExpression = function (t) {
- return this.sizeExpression = t, this
- }, t.prototype.setRotationExpression = function (t) {
- return this.rotationExpression = t, this
- }, t.prototype.setSymbolOffsetExpression = function (t) {
- return this.offsetExpression = t, this
- }, t.prototype.setColorExpression = function (t) {
- return this.colorExpression = t, this
- }, t.prototype.setTextureCoordinateExpression = function (t) {
- return this.texCoordExpression = t, this
- }, t.prototype.setFragmentDiscardExpression = function (t) {
- return this.discardExpression = t, this
- }, t.prototype.setSymbolRotateWithView = function (t) {
- return this.rotateWithView = t, this
- }, t.prototype.getSizeExpression = function () {
- return this.sizeExpression
- }, t.prototype.getOffsetExpression = function () {
- return this.offsetExpression
- }, t.prototype.getColorExpression = function () {
- return this.colorExpression
- }, t.prototype.getTextureCoordinateExpression = function () {
- return this.texCoordExpression
- }, t.prototype.getFragmentDiscardExpression = function () {
- return this.discardExpression
- }, t.prototype.getSymbolVertexShader = function (t) {
- var e = this.rotateWithView ? "u_offsetScaleMatrix * u_offsetRotateMatrix" : "u_offsetScaleMatrix",
- r = this.attributes, n = this.varyings;
- return t && (r = r.concat("vec4 a_hitColor"), n = n.concat({
- name: "v_hitColor",
- type: "vec4",
- expression: "a_hitColor"
- })), "precision mediump float;\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\nuniform float u_time;\nuniform float u_zoom;\nuniform float u_resolution;\n" + this.uniforms.map((function (t) {
- return "uniform " + t + ";"
- })).join("\n") + "\nattribute vec2 a_position;\nattribute float a_index;\n" + r.map((function (t) {
- return "attribute " + t + ";"
- })).join("\n") + "\nvarying vec2 v_texCoord;\nvarying vec2 v_quadCoord;\n" + n.map((function (t) {
- return "varying " + t.type + " " + t.name + ";"
- })).join("\n") + "\nvoid main(void) {\n mat4 offsetMatrix = " + e + ";\n vec2 halfSize = " + this.sizeExpression + " * 0.5;\n vec2 offset = " + this.offsetExpression + ";\n float angle = " + this.rotationExpression + ";\n float offsetX;\n float offsetY;\n if (a_index == 0.0) {\n offsetX = (offset.x - halfSize.x) * cos(angle) + (offset.y - halfSize.y) * sin(angle);\n offsetY = (offset.y - halfSize.y) * cos(angle) - (offset.x - halfSize.x) * sin(angle);\n } else if (a_index == 1.0) {\n offsetX = (offset.x + halfSize.x) * cos(angle) + (offset.y - halfSize.y) * sin(angle);\n offsetY = (offset.y - halfSize.y) * cos(angle) - (offset.x + halfSize.x) * sin(angle);\n } else if (a_index == 2.0) {\n offsetX = (offset.x + halfSize.x) * cos(angle) + (offset.y + halfSize.y) * sin(angle);\n offsetY = (offset.y + halfSize.y) * cos(angle) - (offset.x + halfSize.x) * sin(angle);\n } else {\n offsetX = (offset.x - halfSize.x) * cos(angle) + (offset.y + halfSize.y) * sin(angle);\n offsetY = (offset.y + halfSize.y) * cos(angle) - (offset.x - halfSize.x) * sin(angle);\n }\n vec4 offsets = offsetMatrix * vec4(offsetX, offsetY, 0.0, 0.0);\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0) + offsets;\n vec4 texCoord = " + this.texCoordExpression + ";\n float u = a_index == 0.0 || a_index == 3.0 ? texCoord.s : texCoord.p;\n float v = a_index == 2.0 || a_index == 3.0 ? texCoord.t : texCoord.q;\n v_texCoord = vec2(u, v);\n u = a_index == 0.0 || a_index == 3.0 ? 0.0 : 1.0;\n v = a_index == 2.0 || a_index == 3.0 ? 0.0 : 1.0;\n v_quadCoord = vec2(u, v);\n" + n.map((function (t) {
- return " " + t.name + " = " + t.expression + ";"
- })).join("\n") + "\n}"
- }, t.prototype.getSymbolFragmentShader = function (t) {
- var e = t ? " if (gl_FragColor.a < 0.1) { discard; } gl_FragColor = v_hitColor;" : "", r = this.varyings;
- return t && (r = r.concat({
- name: "v_hitColor",
- type: "vec4",
- expression: "a_hitColor"
- })), "precision mediump float;\nuniform float u_time;\nuniform float u_zoom;\nuniform float u_resolution;\n" + this.uniforms.map((function (t) {
- return "uniform " + t + ";"
- })).join("\n") + "\nvarying vec2 v_texCoord;\nvarying vec2 v_quadCoord;\n" + r.map((function (t) {
- return "varying " + t.type + " " + t.name + ";"
- })).join("\n") + "\nvoid main(void) {\n if (" + this.discardExpression + ") { discard; }\n gl_FragColor = " + this.colorExpression + ";\n gl_FragColor.rgb *= gl_FragColor.a;\n" + e + "\n}"
- }, t
- }();
-
- function Wh(t) {
- var e = t.symbol, r = void 0 !== e.size ? e.size : 1, n = e.color || "white", i = e.textureCoord || [0, 0, 1, 1],
- o = e.offset || [0, 0], a = void 0 !== e.opacity ? e.opacity : 1, s = void 0 !== e.rotation ? e.rotation : 0,
- l = {inFragmentShader: !1, variables: [], attributes: [], stringLiteralsMap: {}}, u = Mh(l, r, wh | vh),
- c = Mh(l, o, wh), h = Mh(l, i, wh), p = Mh(l, s, vh),
- f = {inFragmentShader: !0, variables: l.variables, attributes: [], stringLiteralsMap: l.stringLiteralsMap},
- d = Mh(f, n, bh), g = Mh(f, a, vh), y = "1.0", m = "vec2(" + Mh(f, r, wh | vh) + ").x";
- switch (e.symbolType) {
- case"square":
- case"image":
- break;
- case"circle":
- y = "(1.0-smoothstep(1.-4./" + m + ",1.,dot(v_quadCoord-.5,v_quadCoord-.5)*4.))";
- break;
- case"triangle":
- var v = "(v_quadCoord*2.-1.)", _ = "(atan(" + v + ".x," + v + ".y))";
- y = "(1.0-smoothstep(.5-3./" + m + ",.5,cos(floor(.5+" + _ + "/2.094395102)*2.094395102-" + _ + ")*length(" + v + ")))";
- break;
- default:
- throw new Error("Unexpected symbol type: " + e.symbolType)
- }
- var b = (new Yh).setSizeExpression("vec2(" + u + ")").setRotationExpression(p).setSymbolOffsetExpression(c).setTextureCoordinateExpression(h).setSymbolRotateWithView(!!e.rotateWithView).setColorExpression("vec4(" + d + ".rgb, " + d + ".a * " + g + " * " + y + ")");
- if (t.filter) {
- var x = Mh(f, t.filter, xh);
- b.setFragmentDiscardExpression("!" + x)
- }
- var w = {};
- if (f.variables.forEach((function (e) {
- b.addUniform("float u_" + e), w["u_" + e] = function () {
- if (!t.variables || void 0 === t.variables[e]) throw new Error("The following variable is missing from the style: " + e);
- var r = t.variables[e];
- return "string" == typeof r && (r = Ih(l, r)), void 0 !== r ? r : -9999999
- }
- })), "image" === e.symbolType && e.src) {
- var S = new Image;
- S.src = e.src, b.addUniform("sampler2D u_texture").setColorExpression(b.getColorExpression() + " * texture2D(u_texture, v_texCoord)"), w.u_texture = S
- }
- return f.attributes.forEach((function (t) {
- -1 === l.attributes.indexOf(t) && l.attributes.push(t), b.addVarying("v_" + t, "float", "a_" + t)
- })), l.attributes.forEach((function (t) {
- b.addAttribute("float a_" + t)
- })), {
- builder: b, attributes: l.attributes.map((function (t) {
- return {
- name: t, callback: function (e, r) {
- var n = r[t];
- return "string" == typeof n && (n = Ih(l, n)), void 0 !== n ? n : -9999999
- }
- }
- })), uniforms: w
- }
- }
-
- var qh = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Xh = function (t) {
- function e(e) {
- var r = t.call(this, {
- extent: e.extent,
- origin: e.origin,
- origins: e.origins,
- resolutions: e.resolutions,
- tileSize: e.tileSize,
- tileSizes: e.tileSizes,
- sizes: e.sizes
- }) || this;
- return r.matrixIds_ = e.matrixIds, r
- }
-
- return qh(e, t), e.prototype.getMatrixId = function (t) {
- return this.matrixIds_[t]
- }, e.prototype.getMatrixIds = function () {
- return this.matrixIds_
- }, e
- }(ic), Zh = Xh;
-
- function Kh(t, e, r) {
- var n = [], i = [], o = [], a = [], s = [], l = void 0 !== r ? r : [], u = Gr(t.SupportedCRS),
- c = u.getMetersPerUnit(), h = "ne" == u.getAxisOrientation().substr(0, 2);
- return t.TileMatrix.sort((function (t, e) {
- return e.ScaleDenominator - t.ScaleDenominator
- })), t.TileMatrix.forEach((function (e) {
- if (!(l.length > 0) || _(l, (function (r) {
- return e.Identifier == r.TileMatrix || -1 === e.Identifier.indexOf(":") && t.Identifier + ":" + e.Identifier === r.TileMatrix
- }))) {
- i.push(e.Identifier);
- var r = 28e-5 * e.ScaleDenominator / c, u = e.TileWidth, p = e.TileHeight;
- h ? o.push([e.TopLeftCorner[1], e.TopLeftCorner[0]]) : o.push(e.TopLeftCorner), n.push(r), a.push(u == p ? u : [u, p]), s.push([e.MatrixWidth, e.MatrixHeight])
- }
- })), new Xh({extent: e, origins: o, resolutions: n, matrixIds: i, tileSizes: a, sizes: s})
- }
-
- var Hh = function () {
- function t(t) {
- this.opacity_ = t.opacity, this.rotateWithView_ = t.rotateWithView, this.rotation_ = t.rotation, this.scale_ = t.scale, this.scaleArray_ = Is(t.scale), this.displacement_ = t.displacement
- }
-
- return t.prototype.clone = function () {
- var e = this.getScale();
- return new t({
- opacity: this.getOpacity(),
- scale: Array.isArray(e) ? e.slice() : e,
- rotation: this.getRotation(),
- rotateWithView: this.getRotateWithView(),
- displacement: this.getDisplacement().slice()
- })
- }, t.prototype.getOpacity = function () {
- return this.opacity_
- }, t.prototype.getRotateWithView = function () {
- return this.rotateWithView_
- }, t.prototype.getRotation = function () {
- return this.rotation_
- }, t.prototype.getScale = function () {
- return this.scale_
- }, t.prototype.getScaleArray = function () {
- return this.scaleArray_
- }, t.prototype.getDisplacement = function () {
- return this.displacement_
- }, t.prototype.getAnchor = function () {
- return n()
- }, t.prototype.getImage = function (t) {
- return n()
- }, t.prototype.getHitDetectionImage = function () {
- return n()
- }, t.prototype.getPixelRatio = function (t) {
- return 1
- }, t.prototype.getImageState = function () {
- return n()
- }, t.prototype.getImageSize = function () {
- return n()
- }, t.prototype.getHitDetectionImageSize = function () {
- return n()
- }, t.prototype.getOrigin = function () {
- return n()
- }, t.prototype.getSize = function () {
- return n()
- }, t.prototype.setOpacity = function (t) {
- this.opacity_ = t
- }, t.prototype.setRotateWithView = function (t) {
- this.rotateWithView_ = t
- }, t.prototype.setRotation = function (t) {
- this.rotation_ = t
- }, t.prototype.setScale = function (t) {
- this.scale_ = t, this.scaleArray_ = Is(t)
- }, t.prototype.listenImageChange = function (t) {
- n()
- }, t.prototype.load = function () {
- n()
- }, t.prototype.unlistenImageChange = function (t) {
- n()
- }, t
- }(), $h = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Jh = function (t) {
- function e(e) {
- var r = this, n = void 0 !== e.rotateWithView && e.rotateWithView;
- return (r = t.call(this, {
- opacity: 1,
- rotateWithView: n,
- rotation: void 0 !== e.rotation ? e.rotation : 0,
- scale: void 0 !== e.scale ? e.scale : 1,
- displacement: void 0 !== e.displacement ? e.displacement : [0, 0]
- }) || this).canvas_ = {}, r.hitDetectionCanvas_ = null, r.fill_ = void 0 !== e.fill ? e.fill : null, r.origin_ = [0, 0], r.points_ = e.points, r.radius_ = void 0 !== e.radius ? e.radius : e.radius1, r.radius2_ = e.radius2, r.angle_ = void 0 !== e.angle ? e.angle : 0, r.stroke_ = void 0 !== e.stroke ? e.stroke : null, r.anchor_ = null, r.size_ = null, r.imageSize_ = null, r.hitDetectionImageSize_ = null, r.render(), r
- }
-
- return $h(e, t), e.prototype.clone = function () {
- var t = this.getScale(), r = new e({
- fill: this.getFill() ? this.getFill().clone() : void 0,
- points: this.getPoints(),
- radius: this.getRadius(),
- radius2: this.getRadius2(),
- angle: this.getAngle(),
- stroke: this.getStroke() ? this.getStroke().clone() : void 0,
- rotation: this.getRotation(),
- rotateWithView: this.getRotateWithView(),
- scale: Array.isArray(t) ? t.slice() : t,
- displacement: this.getDisplacement().slice()
- });
- return r.setOpacity(this.getOpacity()), r
- }, e.prototype.getAnchor = function () {
- return this.anchor_
- }, e.prototype.getAngle = function () {
- return this.angle_
- }, e.prototype.getFill = function () {
- return this.fill_
- }, e.prototype.getHitDetectionImage = function () {
- if (!this.hitDetectionCanvas_) {
- var t = this.createRenderOptions();
- this.createHitDetectionCanvas_(t)
- }
- return this.hitDetectionCanvas_
- }, e.prototype.getImage = function (t) {
- if (!this.canvas_[t || 1]) {
- var e = this.createRenderOptions(), r = uo(e.size * t || 1, e.size * t || 1);
- this.draw_(e, r, 0, 0, t || 1), this.canvas_[t || 1] = r.canvas
- }
- return this.canvas_[t || 1]
- }, e.prototype.getPixelRatio = function (t) {
- return t
- }, e.prototype.getImageSize = function () {
- return this.imageSize_
- }, e.prototype.getHitDetectionImageSize = function () {
- return this.hitDetectionImageSize_
- }, e.prototype.getImageState = function () {
- return ki
- }, e.prototype.getOrigin = function () {
- return this.origin_
- }, e.prototype.getPoints = function () {
- return this.points_
- }, e.prototype.getRadius = function () {
- return this.radius_
- }, e.prototype.getRadius2 = function () {
- return this.radius2_
- }, e.prototype.getSize = function () {
- return this.size_
- }, e.prototype.getStroke = function () {
- return this.stroke_
- }, e.prototype.listenImageChange = function (t) {
- }, e.prototype.load = function () {
- }, e.prototype.unlistenImageChange = function (t) {
- }, e.prototype.createRenderOptions = function () {
- var t, e = "round", r = "round", n = 0, i = null, o = 0, a = 0;
- return this.stroke_ && (null === (t = this.stroke_.getColor()) && (t = "#000"), t = Tu(t), void 0 === (a = this.stroke_.getWidth()) && (a = 1), i = this.stroke_.getLineDash(), o = this.stroke_.getLineDashOffset(), void 0 === (r = this.stroke_.getLineJoin()) && (r = "round"), void 0 === (e = this.stroke_.getLineCap()) && (e = "round"), void 0 === (n = this.stroke_.getMiterLimit()) && (n = 10)), {
- strokeStyle: t,
- strokeWidth: a,
- size: 2 * (this.radius_ + a) + 1,
- lineCap: e,
- lineDash: i,
- lineDashOffset: o,
- lineJoin: r,
- miterLimit: n
- }
- }, e.prototype.render = function () {
- var t = this.createRenderOptions(), e = uo(t.size, t.size);
- this.draw_(t, e, 0, 0, 1), this.canvas_ = {}, this.canvas_[1] = e.canvas;
- var r = e.canvas.width, n = r, i = this.getDisplacement();
- this.hitDetectionImageSize_ = [t.size, t.size], this.createHitDetectionCanvas_(t), this.anchor_ = [r / 2 - i[0], r / 2 + i[1]], this.size_ = [r, r], this.imageSize_ = [n, n]
- }, e.prototype.draw_ = function (t, e, r, n, i) {
- var o, a, s;
- e.setTransform(i, 0, 0, i, 0, 0), e.translate(r, n), e.beginPath();
- var l = this.points_;
- if (l === 1 / 0) e.arc(t.size / 2, t.size / 2, this.radius_, 0, 2 * Math.PI, !0); else {
- var u = void 0 !== this.radius2_ ? this.radius2_ : this.radius_;
- for (u !== this.radius_ && (l *= 2), o = 0; o <= l; o++) a = 2 * o * Math.PI / l - Math.PI / 2 + this.angle_, s = o % 2 == 0 ? this.radius_ : u, e.lineTo(t.size / 2 + s * Math.cos(a), t.size / 2 + s * Math.sin(a))
- }
- if (this.fill_) {
- var c = this.fill_.getColor();
- null === c && (c = "#000"), e.fillStyle = Tu(c), e.fill()
- }
- this.stroke_ && (e.strokeStyle = t.strokeStyle, e.lineWidth = t.strokeWidth, e.setLineDash && t.lineDash && (e.setLineDash(t.lineDash), e.lineDashOffset = t.lineDashOffset), e.lineCap = t.lineCap, e.lineJoin = t.lineJoin, e.miterLimit = t.miterLimit, e.stroke()), e.closePath()
- }, e.prototype.createHitDetectionCanvas_ = function (t) {
- if (this.hitDetectionCanvas_ = this.getImage(1), this.fill_) {
- var e = this.fill_.getColor(), r = 0;
- if ("string" == typeof e && (e = Oo(e)), null === e ? r = 1 : Array.isArray(e) && (r = 4 === e.length ? e[3] : 1), 0 === r) {
- var n = uo(t.size, t.size);
- this.hitDetectionCanvas_ = n.canvas, this.drawHitDetectionCanvas_(t, n, 0, 0)
- }
- }
- }, e.prototype.drawHitDetectionCanvas_ = function (t, e, r, n) {
- e.translate(r, n), e.beginPath();
- var i = this.points_;
- if (i === 1 / 0) e.arc(t.size / 2, t.size / 2, this.radius_, 0, 2 * Math.PI, !0); else {
- var o = void 0 !== this.radius2_ ? this.radius2_ : this.radius_;
- o !== this.radius_ && (i *= 2);
- var a = void 0, s = void 0, l = void 0;
- for (a = 0; a <= i; a++) l = 2 * a * Math.PI / i - Math.PI / 2 + this.angle_, s = a % 2 == 0 ? this.radius_ : o, e.lineTo(t.size / 2 + s * Math.cos(l), t.size / 2 + s * Math.sin(l))
- }
- e.fillStyle = "#000", e.fill(), this.stroke_ && (e.strokeStyle = t.strokeStyle, e.lineWidth = t.strokeWidth, t.lineDash && (e.setLineDash(t.lineDash), e.lineDashOffset = t.lineDashOffset), e.stroke()), e.closePath()
- }, e
- }(Hh), Qh = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), tp = function (t) {
- function e(e) {
- var r = e || {};
- return t.call(this, {
- points: 1 / 0,
- fill: r.fill,
- radius: r.radius,
- stroke: r.stroke,
- scale: void 0 !== r.scale ? r.scale : 1,
- rotation: void 0 !== r.rotation ? r.rotation : 0,
- rotateWithView: void 0 !== r.rotateWithView && r.rotateWithView,
- displacement: void 0 !== r.displacement ? r.displacement : [0, 0]
- }) || this
- }
-
- return Qh(e, t), e.prototype.clone = function () {
- var t = this.getScale(), r = new e({
- fill: this.getFill() ? this.getFill().clone() : void 0,
- stroke: this.getStroke() ? this.getStroke().clone() : void 0,
- radius: this.getRadius(),
- scale: Array.isArray(t) ? t.slice() : t,
- rotation: this.getRotation(),
- rotateWithView: this.getRotateWithView(),
- displacement: this.getDisplacement().slice()
- });
- return r.setOpacity(this.getOpacity()), r
- }, e.prototype.setRadius = function (t) {
- this.radius_ = t, this.render()
- }, e
- }(Jh), ep = function () {
- function t(t) {
- var e = t || {};
- this.color_ = void 0 !== e.color ? e.color : null
- }
-
- return t.prototype.clone = function () {
- var e = this.getColor();
- return new t({color: Array.isArray(e) ? e.slice() : e || void 0})
- }, t.prototype.getColor = function () {
- return this.color_
- }, t.prototype.setColor = function (t) {
- this.color_ = t
- }, t
- }(), rp = "fraction", np = "pixels", ip = "bottom-left", op = "bottom-right", ap = "top-left", sp = "top-right",
- lp = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), up = null, cp = function (t) {
- function e(e, r, n, i, o, a) {
- var s = t.call(this) || this;
- return s.hitDetectionImage_ = null, s.image_ = e || new Image, null !== i && (s.image_.crossOrigin = i), s.canvas_ = {}, s.color_ = a, s.unlisten_ = null, s.imageState_ = o, s.size_ = n, s.src_ = r, s.tainted_, s
- }
-
- return lp(e, t), e.prototype.isTainted_ = function () {
- if (void 0 === this.tainted_ && this.imageState_ === ki) {
- up || (up = uo(1, 1)), up.drawImage(this.image_, 0, 0);
- try {
- up.getImageData(0, 0, 1, 1), this.tainted_ = !1
- } catch (t) {
- up = null, this.tainted_ = !0
- }
- }
- return !0 === this.tainted_
- }, e.prototype.dispatchChangeEvent_ = function () {
- this.dispatchEvent(F)
- }, e.prototype.handleImageError_ = function () {
- this.imageState_ = ji, this.unlistenImage_(), this.dispatchChangeEvent_()
- }, e.prototype.handleImageLoad_ = function () {
- this.imageState_ = ki, this.size_ ? (this.image_.width = this.size_[0], this.image_.height = this.size_[1]) : this.size_ = [this.image_.width, this.image_.height], this.unlistenImage_(), this.dispatchChangeEvent_()
- }, e.prototype.getImage = function (t) {
- return this.replaceColor_(t), this.canvas_[t] ? this.canvas_[t] : this.image_
- }, e.prototype.getPixelRatio = function (t) {
- return this.replaceColor_(t), this.canvas_[t] ? t : 1
- }, e.prototype.getImageState = function () {
- return this.imageState_
- }, e.prototype.getHitDetectionImage = function () {
- if (!this.hitDetectionImage_) if (this.isTainted_()) {
- var t = this.size_[0], e = this.size_[1], r = uo(t, e);
- r.fillRect(0, 0, t, e), this.hitDetectionImage_ = r.canvas
- } else this.hitDetectionImage_ = this.image_;
- return this.hitDetectionImage_
- }, e.prototype.getSize = function () {
- return this.size_
- }, e.prototype.getSrc = function () {
- return this.src_
- }, e.prototype.load = function () {
- if (this.imageState_ == Fi) {
- this.imageState_ = Ai;
- try {
- this.image_.src = this.src_
- } catch (t) {
- this.handleImageError_()
- }
- this.unlisten_ = Zi(this.image_, this.handleImageLoad_.bind(this), this.handleImageError_.bind(this))
- }
- }, e.prototype.replaceColor_ = function (t) {
- if (this.color_ && !this.canvas_[t]) {
- var e = document.createElement("canvas");
- this.canvas_[t] = e, e.width = Math.ceil(this.image_.width * t), e.height = Math.ceil(this.image_.height * t);
- var r = e.getContext("2d");
- if (r.scale(t, t), r.drawImage(this.image_, 0, 0), r.globalCompositeOperation = "multiply", "multiply" === r.globalCompositeOperation || this.isTainted_()) r.fillStyle = wo(this.color_), r.fillRect(0, 0, e.width, e.height), r.globalCompositeOperation = "destination-in", r.drawImage(this.image_, 0, 0); else {
- for (var n = r.getImageData(0, 0, e.width, e.height), i = n.data, o = this.color_[0] / 255, a = this.color_[1] / 255, s = this.color_[2] / 255, l = this.color_[3], u = 0, c = i.length; u < c; u += 4) i[u] *= o, i[u + 1] *= a, i[u + 2] *= s, i[u + 3] *= l;
- r.putImageData(n, 0, 0)
- }
- }
- }, e.prototype.unlistenImage_ = function () {
- this.unlisten_ && (this.unlisten_(), this.unlisten_ = null)
- }, e
- }(M);
-
- function hp(t, e, r, n, i, o) {
- var a = Ao.get(e, n, o);
- return a || (a = new cp(t, e, r, n, i, o), Ao.set(e, n, o, a)), a
- }
-
- var pp = cp, fp = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), dp = function (t) {
- function e(e) {
- var r = this, n = e || {}, i = void 0 !== n.opacity ? n.opacity : 1, a = void 0 !== n.rotation ? n.rotation : 0,
- s = void 0 !== n.scale ? n.scale : 1, l = void 0 !== n.rotateWithView && n.rotateWithView;
- (r = t.call(this, {
- opacity: i,
- rotation: a,
- scale: s,
- displacement: void 0 !== n.displacement ? n.displacement : [0, 0],
- rotateWithView: l
- }) || this).anchor_ = void 0 !== n.anchor ? n.anchor : [.5, .5], r.normalizedAnchor_ = null, r.anchorOrigin_ = void 0 !== n.anchorOrigin ? n.anchorOrigin : ap, r.anchorXUnits_ = void 0 !== n.anchorXUnits ? n.anchorXUnits : rp, r.anchorYUnits_ = void 0 !== n.anchorYUnits ? n.anchorYUnits : rp, r.crossOrigin_ = void 0 !== n.crossOrigin ? n.crossOrigin : null;
- var u = void 0 !== n.img ? n.img : null, c = void 0 !== n.imgSize ? n.imgSize : null, h = n.src;
- pt(!(void 0 !== h && u), 4), pt(!u || u && c, 5), void 0 !== h && 0 !== h.length || !u || (h = u.src || o(u)), pt(void 0 !== h && h.length > 0, 6);
- var p = void 0 !== n.src ? Fi : ki;
- return r.color_ = void 0 !== n.color ? Oo(n.color) : null, r.iconImage_ = hp(u, h, c, r.crossOrigin_, p, r.color_), r.offset_ = void 0 !== n.offset ? n.offset : [0, 0], r.offsetOrigin_ = void 0 !== n.offsetOrigin ? n.offsetOrigin : ap, r.origin_ = null, r.size_ = void 0 !== n.size ? n.size : null, r
- }
-
- return fp(e, t), e.prototype.clone = function () {
- var t = this.getScale();
- return new e({
- anchor: this.anchor_.slice(),
- anchorOrigin: this.anchorOrigin_,
- anchorXUnits: this.anchorXUnits_,
- anchorYUnits: this.anchorYUnits_,
- crossOrigin: this.crossOrigin_,
- color: this.color_ && this.color_.slice ? this.color_.slice() : this.color_ || void 0,
- src: this.getSrc(),
- offset: this.offset_.slice(),
- offsetOrigin: this.offsetOrigin_,
- size: null !== this.size_ ? this.size_.slice() : void 0,
- opacity: this.getOpacity(),
- scale: Array.isArray(t) ? t.slice() : t,
- rotation: this.getRotation(),
- rotateWithView: this.getRotateWithView()
- })
- }, e.prototype.getAnchor = function () {
- if (this.normalizedAnchor_) return this.normalizedAnchor_;
- var t = this.anchor_, e = this.getSize();
- if (this.anchorXUnits_ == rp || this.anchorYUnits_ == rp) {
- if (!e) return null;
- t = this.anchor_.slice(), this.anchorXUnits_ == rp && (t[0] *= e[0]), this.anchorYUnits_ == rp && (t[1] *= e[1])
- }
- if (this.anchorOrigin_ != ap) {
- if (!e) return null;
- t === this.anchor_ && (t = this.anchor_.slice()), this.anchorOrigin_ != sp && this.anchorOrigin_ != op || (t[0] = -t[0] + e[0]), this.anchorOrigin_ != ip && this.anchorOrigin_ != op || (t[1] = -t[1] + e[1])
- }
- return this.normalizedAnchor_ = t, this.normalizedAnchor_
- }, e.prototype.setAnchor = function (t) {
- this.anchor_ = t, this.normalizedAnchor_ = null
- }, e.prototype.getColor = function () {
- return this.color_
- }, e.prototype.getImage = function (t) {
- return this.iconImage_.getImage(t)
- }, e.prototype.getPixelRatio = function (t) {
- return this.iconImage_.getPixelRatio(t)
- }, e.prototype.getImageSize = function () {
- return this.iconImage_.getSize()
- }, e.prototype.getHitDetectionImageSize = function () {
- return this.getImageSize()
- }, e.prototype.getImageState = function () {
- return this.iconImage_.getImageState()
- }, e.prototype.getHitDetectionImage = function () {
- return this.iconImage_.getHitDetectionImage()
- }, e.prototype.getOrigin = function () {
- if (this.origin_) return this.origin_;
- var t = this.offset_, e = this.getDisplacement();
- if (this.offsetOrigin_ != ap) {
- var r = this.getSize(), n = this.iconImage_.getSize();
- if (!r || !n) return null;
- t = t.slice(), this.offsetOrigin_ != sp && this.offsetOrigin_ != op || (t[0] = n[0] - r[0] - t[0]), this.offsetOrigin_ != ip && this.offsetOrigin_ != op || (t[1] = n[1] - r[1] - t[1])
- }
- return t[0] += e[0], t[1] += e[1], this.origin_ = t, this.origin_
- }, e.prototype.getSrc = function () {
- return this.iconImage_.getSrc()
- }, e.prototype.getSize = function () {
- return this.size_ ? this.size_ : this.iconImage_.getSize()
- }, e.prototype.listenImageChange = function (t) {
- this.iconImage_.addEventListener(F, t)
- }, e.prototype.load = function () {
- this.iconImage_.load()
- }, e.prototype.unlistenImageChange = function (t) {
- this.iconImage_.removeEventListener(F, t)
- }, e
- }(Hh), gp = function () {
- function t(t) {
- var e = t || {};
- this.color_ = void 0 !== e.color ? e.color : null, this.lineCap_ = e.lineCap, this.lineDash_ = void 0 !== e.lineDash ? e.lineDash : null, this.lineDashOffset_ = e.lineDashOffset, this.lineJoin_ = e.lineJoin, this.miterLimit_ = e.miterLimit, this.width_ = e.width
- }
-
- return t.prototype.clone = function () {
- var e = this.getColor();
- return new t({
- color: Array.isArray(e) ? e.slice() : e || void 0,
- lineCap: this.getLineCap(),
- lineDash: this.getLineDash() ? this.getLineDash().slice() : void 0,
- lineDashOffset: this.getLineDashOffset(),
- lineJoin: this.getLineJoin(),
- miterLimit: this.getMiterLimit(),
- width: this.getWidth()
- })
- }, t.prototype.getColor = function () {
- return this.color_
- }, t.prototype.getLineCap = function () {
- return this.lineCap_
- }, t.prototype.getLineDash = function () {
- return this.lineDash_
- }, t.prototype.getLineDashOffset = function () {
- return this.lineDashOffset_
- }, t.prototype.getLineJoin = function () {
- return this.lineJoin_
- }, t.prototype.getMiterLimit = function () {
- return this.miterLimit_
- }, t.prototype.getWidth = function () {
- return this.width_
- }, t.prototype.setColor = function (t) {
- this.color_ = t
- }, t.prototype.setLineCap = function (t) {
- this.lineCap_ = t
- }, t.prototype.setLineDash = function (t) {
- this.lineDash_ = t
- }, t.prototype.setLineDashOffset = function (t) {
- this.lineDashOffset_ = t
- }, t.prototype.setLineJoin = function (t) {
- this.lineJoin_ = t
- }, t.prototype.setMiterLimit = function (t) {
- this.miterLimit_ = t
- }, t.prototype.setWidth = function (t) {
- this.width_ = t
- }, t
- }(), yp = function () {
- function t(t) {
- var e = t || {};
- this.geometry_ = null, this.geometryFunction_ = xp, void 0 !== e.geometry && this.setGeometry(e.geometry), this.fill_ = void 0 !== e.fill ? e.fill : null, this.image_ = void 0 !== e.image ? e.image : null, this.renderer_ = void 0 !== e.renderer ? e.renderer : null, this.stroke_ = void 0 !== e.stroke ? e.stroke : null, this.text_ = void 0 !== e.text ? e.text : null, this.zIndex_ = e.zIndex
- }
-
- return t.prototype.clone = function () {
- var e = this.getGeometry();
- return e && "object" == typeof e && (e = e.clone()), new t({
- geometry: e,
- fill: this.getFill() ? this.getFill().clone() : void 0,
- image: this.getImage() ? this.getImage().clone() : void 0,
- stroke: this.getStroke() ? this.getStroke().clone() : void 0,
- text: this.getText() ? this.getText().clone() : void 0,
- zIndex: this.getZIndex()
- })
- }, t.prototype.getRenderer = function () {
- return this.renderer_
- }, t.prototype.setRenderer = function (t) {
- this.renderer_ = t
- }, t.prototype.getGeometry = function () {
- return this.geometry_
- }, t.prototype.getGeometryFunction = function () {
- return this.geometryFunction_
- }, t.prototype.getFill = function () {
- return this.fill_
- }, t.prototype.setFill = function (t) {
- this.fill_ = t
- }, t.prototype.getImage = function () {
- return this.image_
- }, t.prototype.setImage = function (t) {
- this.image_ = t
- }, t.prototype.getStroke = function () {
- return this.stroke_
- }, t.prototype.setStroke = function (t) {
- this.stroke_ = t
- }, t.prototype.getText = function () {
- return this.text_
- }, t.prototype.setText = function (t) {
- this.text_ = t
- }, t.prototype.getZIndex = function () {
- return this.zIndex_
- }, t.prototype.setGeometry = function (t) {
- "function" == typeof t ? this.geometryFunction_ = t : "string" == typeof t ? this.geometryFunction_ = function (e) {
- return e.get(t)
- } : t ? void 0 !== t && (this.geometryFunction_ = function () {
- return t
- }) : this.geometryFunction_ = xp, this.geometry_ = t
- }, t.prototype.setZIndex = function (t) {
- this.zIndex_ = t
- }, t
- }();
-
- function mp(t) {
- var e;
- if ("function" == typeof t) e = t; else {
- var r;
- if (Array.isArray(t)) r = t; else pt("function" == typeof t.getZIndex, 41), r = [t];
- e = function () {
- return r
- }
- }
- return e
- }
-
- var vp = null;
-
- function _p(t, e) {
- if (!vp) {
- var r = new ep({color: "rgba(255,255,255,0.4)"}), n = new gp({color: "#3399CC", width: 1.25});
- vp = [new yp({image: new tp({fill: r, stroke: n, radius: 5}), fill: r, stroke: n})]
- }
- return vp
- }
-
- function bp() {
- var t = {}, e = [255, 255, 255, 1], r = [0, 153, 255, 1];
- return t[bt.POLYGON] = [new yp({fill: new ep({color: [255, 255, 255, .5]})})], t[bt.MULTI_POLYGON] = t[bt.POLYGON], t[bt.LINE_STRING] = [new yp({
- stroke: new gp({
- color: e,
- width: 5
- })
- }), new yp({
- stroke: new gp({
- color: r,
- width: 3
- })
- })], t[bt.MULTI_LINE_STRING] = t[bt.LINE_STRING], t[bt.CIRCLE] = t[bt.POLYGON].concat(t[bt.LINE_STRING]), t[bt.POINT] = [new yp({
- image: new tp({
- radius: 6,
- fill: new ep({color: r}),
- stroke: new gp({color: e, width: 1.5})
- }), zIndex: 1 / 0
- })], t[bt.MULTI_POINT] = t[bt.POINT], t[bt.GEOMETRY_COLLECTION] = t[bt.POLYGON].concat(t[bt.LINE_STRING], t[bt.POINT]), t
- }
-
- function xp(t) {
- return t.getGeometry()
- }
-
- var wp = yp, Sp = "point", Ep = "line", Tp = function () {
- function t(t) {
- var e = t || {};
- this.font_ = e.font, this.rotation_ = e.rotation, this.rotateWithView_ = e.rotateWithView, this.scale_ = e.scale, this.scaleArray_ = Is(void 0 !== e.scale ? e.scale : 1), this.text_ = e.text, this.textAlign_ = e.textAlign, this.textBaseline_ = e.textBaseline, this.fill_ = void 0 !== e.fill ? e.fill : new ep({color: "#333"}), this.maxAngle_ = void 0 !== e.maxAngle ? e.maxAngle : Math.PI / 4, this.placement_ = void 0 !== e.placement ? e.placement : Sp, this.overflow_ = !!e.overflow, this.stroke_ = void 0 !== e.stroke ? e.stroke : null, this.offsetX_ = void 0 !== e.offsetX ? e.offsetX : 0, this.offsetY_ = void 0 !== e.offsetY ? e.offsetY : 0, this.backgroundFill_ = e.backgroundFill ? e.backgroundFill : null, this.backgroundStroke_ = e.backgroundStroke ? e.backgroundStroke : null, this.padding_ = void 0 === e.padding ? null : e.padding
- }
-
- return t.prototype.clone = function () {
- var e = this.getScale();
- return new t({
- font: this.getFont(),
- placement: this.getPlacement(),
- maxAngle: this.getMaxAngle(),
- overflow: this.getOverflow(),
- rotation: this.getRotation(),
- rotateWithView: this.getRotateWithView(),
- scale: Array.isArray(e) ? e.slice() : e,
- text: this.getText(),
- textAlign: this.getTextAlign(),
- textBaseline: this.getTextBaseline(),
- fill: this.getFill() ? this.getFill().clone() : void 0,
- stroke: this.getStroke() ? this.getStroke().clone() : void 0,
- offsetX: this.getOffsetX(),
- offsetY: this.getOffsetY(),
- backgroundFill: this.getBackgroundFill() ? this.getBackgroundFill().clone() : void 0,
- backgroundStroke: this.getBackgroundStroke() ? this.getBackgroundStroke().clone() : void 0,
- padding: this.getPadding()
- })
- }, t.prototype.getOverflow = function () {
- return this.overflow_
- }, t.prototype.getFont = function () {
- return this.font_
- }, t.prototype.getMaxAngle = function () {
- return this.maxAngle_
- }, t.prototype.getPlacement = function () {
- return this.placement_
- }, t.prototype.getOffsetX = function () {
- return this.offsetX_
- }, t.prototype.getOffsetY = function () {
- return this.offsetY_
- }, t.prototype.getFill = function () {
- return this.fill_
- }, t.prototype.getRotateWithView = function () {
- return this.rotateWithView_
- }, t.prototype.getRotation = function () {
- return this.rotation_
- }, t.prototype.getScale = function () {
- return this.scale_
- }, t.prototype.getScaleArray = function () {
- return this.scaleArray_
- }, t.prototype.getStroke = function () {
- return this.stroke_
- }, t.prototype.getText = function () {
- return this.text_
- }, t.prototype.getTextAlign = function () {
- return this.textAlign_
- }, t.prototype.getTextBaseline = function () {
- return this.textBaseline_
- }, t.prototype.getBackgroundFill = function () {
- return this.backgroundFill_
- }, t.prototype.getBackgroundStroke = function () {
- return this.backgroundStroke_
- }, t.prototype.getPadding = function () {
- return this.padding_
- }, t.prototype.setOverflow = function (t) {
- this.overflow_ = t
- }, t.prototype.setFont = function (t) {
- this.font_ = t
- }, t.prototype.setMaxAngle = function (t) {
- this.maxAngle_ = t
- }, t.prototype.setOffsetX = function (t) {
- this.offsetX_ = t
- }, t.prototype.setOffsetY = function (t) {
- this.offsetY_ = t
- }, t.prototype.setPlacement = function (t) {
- this.placement_ = t
- }, t.prototype.setRotateWithView = function (t) {
- this.rotateWithView_ = t
- }, t.prototype.setFill = function (t) {
- this.fill_ = t
- }, t.prototype.setRotation = function (t) {
- this.rotation_ = t
- }, t.prototype.setScale = function (t) {
- this.scale_ = t, this.scaleArray_ = Is(void 0 !== t ? t : 1)
- }, t.prototype.setStroke = function (t) {
- this.stroke_ = t
- }, t.prototype.setText = function (t) {
- this.text_ = t
- }, t.prototype.setTextAlign = function (t) {
- this.textAlign_ = t
- }, t.prototype.setTextBaseline = function (t) {
- this.textBaseline_ = t
- }, t.prototype.setBackgroundFill = function (t) {
- this.backgroundFill_ = t
- }, t.prototype.setBackgroundStroke = function (t) {
- this.backgroundStroke_ = t
- }, t.prototype.setPadding = function (t) {
- this.padding_ = t
- }, t
- }(), Cp = function () {
- function t(t) {
- this.first_, this.last_, this.head_, this.circular_ = void 0 === t || t, this.length_ = 0
- }
-
- return t.prototype.insertItem = function (t) {
- var e = {prev: void 0, next: void 0, data: t}, r = this.head_;
- if (r) {
- var n = r.next;
- e.prev = r, e.next = n, r.next = e, n && (n.prev = e), r === this.last_ && (this.last_ = e)
- } else this.first_ = e, this.last_ = e, this.circular_ && (e.next = e, e.prev = e);
- this.head_ = e, this.length_++
- }, t.prototype.removeItem = function () {
- var t = this.head_;
- if (t) {
- var e = t.next, r = t.prev;
- e && (e.prev = r), r && (r.next = e), this.head_ = e || r, this.first_ === this.last_ ? (this.head_ = void 0, this.first_ = void 0, this.last_ = void 0) : this.first_ === t ? this.first_ = this.head_ : this.last_ === t && (this.last_ = r ? this.head_.prev : this.head_), this.length_--
- }
- }, t.prototype.firstItem = function () {
- if (this.head_ = this.first_, this.head_) return this.head_.data
- }, t.prototype.lastItem = function () {
- if (this.head_ = this.last_, this.head_) return this.head_.data
- }, t.prototype.nextItem = function () {
- if (this.head_ && this.head_.next) return this.head_ = this.head_.next, this.head_.data
- }, t.prototype.getNextItem = function () {
- if (this.head_ && this.head_.next) return this.head_.next.data
- }, t.prototype.prevItem = function () {
- if (this.head_ && this.head_.prev) return this.head_ = this.head_.prev, this.head_.data
- }, t.prototype.getPrevItem = function () {
- if (this.head_ && this.head_.prev) return this.head_.prev.data
- }, t.prototype.getCurrItem = function () {
- if (this.head_) return this.head_.data
- }, t.prototype.setFirstItem = function () {
- this.circular_ && this.head_ && (this.first_ = this.head_, this.last_ = this.head_.prev)
- }, t.prototype.concat = function (t) {
- if (t.head_) {
- if (this.head_) {
- var e = this.head_.next;
- this.head_.next = t.first_, t.first_.prev = this.head_, e.prev = t.last_, t.last_.next = e, this.length_ += t.length_
- } else this.head_ = t.head_, this.first_ = t.first_, this.last_ = t.last_, this.length_ = t.length_;
- t.head_ = void 0, t.first_ = void 0, t.last_ = void 0, t.length_ = 0
- }
- }, t.prototype.getLength = function () {
- return this.length_
- }, t
- }(), Op = r(1), Pp = r.n(Op), Rp = function () {
- function t(t) {
- this.rbush_ = new Pp.a(t), this.items_ = {}
- }
-
- return t.prototype.insert = function (t, e) {
- var r = {minX: t[0], minY: t[1], maxX: t[2], maxY: t[3], value: e};
- this.rbush_.insert(r), this.items_[o(e)] = r
- }, t.prototype.load = function (t, e) {
- for (var r = new Array(e.length), n = 0, i = e.length; n < i; n++) {
- var a = t[n], s = e[n], l = {minX: a[0], minY: a[1], maxX: a[2], maxY: a[3], value: s};
- r[n] = l, this.items_[o(s)] = l
- }
- this.rbush_.load(r)
- }, t.prototype.remove = function (t) {
- var e = o(t), r = this.items_[e];
- return delete this.items_[e], null !== this.rbush_.remove(r)
- }, t.prototype.update = function (t, e) {
- var r = this.items_[o(e)];
- ue([r.minX, r.minY, r.maxX, r.maxY], t) || (this.remove(e), this.insert(t, e))
- }, t.prototype.getAll = function () {
- return this.rbush_.all().map((function (t) {
- return t.value
- }))
- }, t.prototype.getInExtent = function (t) {
- var e = {minX: t[0], minY: t[1], maxX: t[2], maxY: t[3]};
- return this.rbush_.search(e).map((function (t) {
- return t.value
- }))
- }, t.prototype.forEach = function (t) {
- return this.forEach_(this.getAll(), t)
- }, t.prototype.forEachInExtent = function (t, e) {
- return this.forEach_(this.getInExtent(t), e)
- }, t.prototype.forEach_ = function (t, e) {
- for (var r, n = 0, i = t.length; n < i; n++) if (r = e(t[n])) return r;
- return r
- }, t.prototype.isEmpty = function () {
- return I(this.items_)
- }, t.prototype.clear = function () {
- this.rbush_.clear(), this.items_ = {}
- }, t.prototype.getExtent = function (t) {
- var e = this.rbush_.toJSON();
- return ie(e.minX, e.minY, e.maxX, e.maxY, t)
- }, t.prototype.concat = function (t) {
- for (var e in this.rbush_.load(t.rbush_.all()), t.items_) this.items_[e] = t.items_[e]
- }, t
- }(), Ip = function () {
- function t(t, e, r, n, i, o) {
- this.sourceProj_ = t, this.targetProj_ = e;
- var a = {}, s = Kr(this.targetProj_, this.sourceProj_);
- this.transformInv_ = function (t) {
- var e = t[0] + "/" + t[1];
- return a[e] || (a[e] = s(t)), a[e]
- }, this.maxSourceExtent_ = n, this.errorThresholdSquared_ = i * i, this.triangles_ = [], this.wrapsXInSource_ = !1, this.canWrapXInSource_ = this.sourceProj_.canWrapX() && !!n && !!this.sourceProj_.getExtent() && Pe(n) == Pe(this.sourceProj_.getExtent()), this.sourceWorldWidth_ = this.sourceProj_.getExtent() ? Pe(this.sourceProj_.getExtent()) : null, this.targetWorldWidth_ = this.targetProj_.getExtent() ? Pe(this.targetProj_.getExtent()) : null;
- var l = Ce(r), u = Oe(r), c = be(r), h = _e(r), p = this.transformInv_(l), f = this.transformInv_(u),
- d = this.transformInv_(c), g = this.transformInv_(h),
- y = 10 + (o ? Math.max(0, Math.ceil(Ge(ve(r) / (o * o * 256 * 256)))) : 0);
- if (this.addQuad_(l, u, c, h, p, f, d, g, y), this.wrapsXInSource_) {
- var m = 1 / 0;
- this.triangles_.forEach((function (t, e, r) {
- m = Math.min(m, t.source[0][0], t.source[1][0], t.source[2][0])
- })), this.triangles_.forEach(function (t) {
- if (Math.max(t.source[0][0], t.source[1][0], t.source[2][0]) - m > this.sourceWorldWidth_ / 2) {
- var e = [[t.source[0][0], t.source[0][1]], [t.source[1][0], t.source[1][1]], [t.source[2][0], t.source[2][1]]];
- e[0][0] - m > this.sourceWorldWidth_ / 2 && (e[0][0] -= this.sourceWorldWidth_), e[1][0] - m > this.sourceWorldWidth_ / 2 && (e[1][0] -= this.sourceWorldWidth_), e[2][0] - m > this.sourceWorldWidth_ / 2 && (e[2][0] -= this.sourceWorldWidth_);
- var r = Math.min(e[0][0], e[1][0], e[2][0]);
- Math.max(e[0][0], e[1][0], e[2][0]) - r < this.sourceWorldWidth_ / 2 && (t.source = e)
- }
- }.bind(this))
- }
- a = {}
- }
-
- return t.prototype.addTriangle_ = function (t, e, r, n, i, o) {
- this.triangles_.push({source: [n, i, o], target: [t, e, r]})
- }, t.prototype.addQuad_ = function (t, e, r, n, i, o, a, s, l) {
- var u = Kt([i, o, a, s]), c = this.sourceWorldWidth_ ? Pe(u) / this.sourceWorldWidth_ : null,
- h = this.sourceWorldWidth_, p = this.sourceProj_.canWrapX() && c > .5 && c < 1, f = !1;
- if (l > 0) {
- if (this.targetProj_.isGlobal() && this.targetWorldWidth_) f = Pe(Kt([t, e, r, n])) / this.targetWorldWidth_ > .25 || f;
- !p && this.sourceProj_.isGlobal() && c && (f = c > .25 || f)
- }
- if (!(!f && this.maxSourceExtent_ && isFinite(u[0]) && isFinite(u[1]) && isFinite(u[2]) && isFinite(u[3])) || Re(u, this.maxSourceExtent_)) {
- var d = 0;
- if (!(f || isFinite(i[0]) && isFinite(i[1]) && isFinite(o[0]) && isFinite(o[1]) && isFinite(a[0]) && isFinite(a[1]) && isFinite(s[0]) && isFinite(s[1]))) if (l > 0) f = !0; else if (1 != (d = (isFinite(i[0]) && isFinite(i[1]) ? 0 : 8) + (isFinite(o[0]) && isFinite(o[1]) ? 0 : 4) + (isFinite(a[0]) && isFinite(a[1]) ? 0 : 2) + (isFinite(s[0]) && isFinite(s[1]) ? 0 : 1)) && 2 != d && 4 != d && 8 != d) return;
- if (l > 0) {
- if (!f) {
- var g = [(t[0] + r[0]) / 2, (t[1] + r[1]) / 2], y = this.transformInv_(g), m = void 0;
- if (p) m = (We(i[0], h) + We(a[0], h)) / 2 - We(y[0], h); else m = (i[0] + a[0]) / 2 - y[0];
- var v = (i[1] + a[1]) / 2 - y[1];
- f = m * m + v * v > this.errorThresholdSquared_
- }
- if (f) {
- if (Math.abs(t[0] - r[0]) <= Math.abs(t[1] - r[1])) {
- var _ = [(e[0] + r[0]) / 2, (e[1] + r[1]) / 2], b = this.transformInv_(_),
- x = [(n[0] + t[0]) / 2, (n[1] + t[1]) / 2], w = this.transformInv_(x);
- this.addQuad_(t, e, _, x, i, o, b, w, l - 1), this.addQuad_(x, _, r, n, w, b, a, s, l - 1)
- } else {
- var S = [(t[0] + e[0]) / 2, (t[1] + e[1]) / 2], E = this.transformInv_(S),
- T = [(r[0] + n[0]) / 2, (r[1] + n[1]) / 2], C = this.transformInv_(T);
- this.addQuad_(t, S, T, n, i, E, C, s, l - 1), this.addQuad_(S, e, r, T, E, o, a, C, l - 1)
- }
- return
- }
- }
- if (p) {
- if (!this.canWrapXInSource_) return;
- this.wrapsXInSource_ = !0
- }
- 0 == (11 & d) && this.addTriangle_(t, r, n, i, a, s), 0 == (14 & d) && this.addTriangle_(t, r, e, i, a, o), d && (0 == (13 & d) && this.addTriangle_(e, n, t, o, s, i), 0 == (7 & d) && this.addTriangle_(e, n, r, o, s, a))
- }
- }, t.prototype.calculateSourceExtent = function () {
- var t = [1 / 0, 1 / 0, -1 / 0, -1 / 0];
- return this.triangles_.forEach((function (e, r, n) {
- var i = e.source;
- pe(t, i[0]), pe(t, i[1]), pe(t, i[2])
- })), t
- }, t.prototype.getTriangles = function () {
- return this.triangles_
- }, t
- }(), Lp = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Mp = function (t) {
- function e(e, r, n, i, o, a, s, l, u, c, h, p) {
- var f = t.call(this, o, Ji) || this;
- f.renderEdges_ = void 0 !== h && h, f.contextOptions_ = p, f.pixelRatio_ = s, f.gutter_ = l, f.canvas_ = null, f.sourceTileGrid_ = r, f.targetTileGrid_ = i, f.wrappedTileCoord_ = a || o, f.sourceTiles_ = [], f.sourcesListenerKeys_ = null, f.sourceZ_ = 0;
- var d = i.getTileCoordExtent(f.wrappedTileCoord_), g = f.targetTileGrid_.getExtent(),
- y = f.sourceTileGrid_.getExtent(), m = g ? Te(d, g) : d;
- if (0 === ve(m)) return f.state = ro, f;
- var v = e.getExtent();
- v && (y = y ? Te(y, v) : v);
- var _ = i.getResolution(f.wrappedTileCoord_[0]), b = ec(e, n, m, _);
- if (!isFinite(b) || b <= 0) return f.state = ro, f;
- var x = void 0 !== c ? c : .5;
- if (f.triangulation_ = new Ip(e, n, m, y, b * x, _), 0 === f.triangulation_.getTriangles().length) return f.state = ro, f;
- f.sourceZ_ = r.getZForResolution(b);
- var w = f.triangulation_.calculateSourceExtent();
- if (y && (e.canWrapX() ? (w[1] = Ne(w[1], y[1], y[3]), w[3] = Ne(w[3], y[1], y[3])) : w = Te(w, y)), ve(w)) {
- for (var S = r.getTileRangeForExtentAndZ(w, f.sourceZ_), E = S.minX; E <= S.maxX; E++) for (var T = S.minY; T <= S.maxY; T++) {
- var C = u(f.sourceZ_, E, T, s);
- C && f.sourceTiles_.push(C)
- }
- 0 === f.sourceTiles_.length && (f.state = ro)
- } else f.state = ro;
- return f
- }
-
- return Lp(e, t), e.prototype.getImage = function () {
- return this.canvas_
- }, e.prototype.reproject_ = function () {
- var t = [];
- if (this.sourceTiles_.forEach(function (e, r, n) {
- e && e.getState() == to && t.push({
- extent: this.sourceTileGrid_.getTileCoordExtent(e.tileCoord),
- image: e.getImage()
- })
- }.bind(this)), this.sourceTiles_.length = 0, 0 === t.length) this.state = eo; else {
- var e = this.wrappedTileCoord_[0], r = this.targetTileGrid_.getTileSize(e),
- n = "number" == typeof r ? r : r[0], i = "number" == typeof r ? r : r[1],
- o = this.targetTileGrid_.getResolution(e), a = this.sourceTileGrid_.getResolution(this.sourceZ_),
- s = this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);
- this.canvas_ = rc(n, i, this.pixelRatio_, a, this.sourceTileGrid_.getExtent(), o, s, this.triangulation_, t, this.gutter_, this.renderEdges_, this.contextOptions_), this.state = to
- }
- this.changed()
- }, e.prototype.load = function () {
- if (this.state == Ji) {
- this.state = Qi, this.changed();
- var t = 0;
- this.sourcesListenerKeys_ = [], this.sourceTiles_.forEach(function (e, r, n) {
- var i = e.getState();
- if (i == Ji || i == Qi) {
- t++;
- var o = Z(e, F, (function (r) {
- var n = e.getState();
- n != to && n != eo && n != ro || (H(o), 0 === --t && (this.unlistenSources_(), this.reproject_()))
- }), this);
- this.sourcesListenerKeys_.push(o)
- }
- }.bind(this)), this.sourceTiles_.forEach((function (t, e, r) {
- t.getState() == Ji && t.load()
- })), 0 === t && setTimeout(this.reproject_.bind(this), 0)
- }
- }, e.prototype.unlistenSources_ = function () {
- this.sourcesListenerKeys_.forEach(H), this.sourcesListenerKeys_ = null
- }, e
- }(lo), Fp = "tileloadstart", Ap = "tileloadend", kp = "tileloaderror", jp = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }();
-
- function Np(t) {
- return t ? Array.isArray(t) ? function (e) {
- return t
- } : "function" == typeof t ? t : function (e) {
- return [t]
- } : null
- }
-
- var Dp = function (t) {
- function e(e) {
- var r = t.call(this) || this;
- return r.projection_ = Gr(e.projection), r.attributions_ = Np(e.attributions), r.attributionsCollapsible_ = void 0 === e.attributionsCollapsible || e.attributionsCollapsible, r.loading = !1, r.state_ = void 0 !== e.state ? e.state : Qo, r.wrapX_ = void 0 !== e.wrapX && e.wrapX, r
- }
-
- return jp(e, t), e.prototype.getAttributions = function () {
- return this.attributions_
- }, e.prototype.getAttributionsCollapsible = function () {
- return this.attributionsCollapsible_
- }, e.prototype.getProjection = function () {
- return this.projection_
- }, e.prototype.getResolutions = function () {
- return n()
- }, e.prototype.getState = function () {
- return this.state_
- }, e.prototype.getWrapX = function () {
- return this.wrapX_
- }, e.prototype.getContextOptions = function () {
- }, e.prototype.refresh = function () {
- this.changed()
- }, e.prototype.setAttributions = function (t) {
- this.attributions_ = Np(t), this.changed()
- }, e.prototype.setState = function (t) {
- this.state_ = t, this.changed()
- }, e
- }(ot), Gp = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), zp = function (t) {
- function e(e) {
- var r = t.call(this, {
- attributions: e.attributions,
- attributionsCollapsible: e.attributionsCollapsible,
- projection: e.projection,
- state: e.state,
- wrapX: e.wrapX
- }) || this;
- r.opaque_ = void 0 !== e.opaque && e.opaque, r.tilePixelRatio_ = void 0 !== e.tilePixelRatio ? e.tilePixelRatio : 1, r.tileGrid = void 0 !== e.tileGrid ? e.tileGrid : null;
- var n = e.tileGrid;
- return n && Is(n.getTileSize(n.getMinZoom()), [256, 256]), r.tileCache = new yu(e.cacheSize || 0), r.tmpSize = [0, 0], r.key_ = e.key || "", r.tileOptions = {transition: e.transition}, r.zDirection = e.zDirection ? e.zDirection : 0, r
- }
-
- return Gp(e, t), e.prototype.canExpireCache = function () {
- return this.tileCache.canExpireCache()
- }, e.prototype.expireCache = function (t, e) {
- var r = this.getTileCacheForProjection(t);
- r && r.expireCache(e)
- }, e.prototype.forEachLoadedTile = function (t, e, r, n) {
- var i = this.getTileCacheForProjection(t);
- if (!i) return !1;
- for (var o, a, s, l = !0, u = r.minX; u <= r.maxX; ++u) for (var c = r.minY; c <= r.maxY; ++c) a = cu(e, u, c), s = !1, i.containsKey(a) && (s = (o = i.get(a)).getState() === to) && (s = !1 !== n(o)), s || (l = !1);
- return l
- }, e.prototype.getGutterForProjection = function (t) {
- return 0
- }, e.prototype.getKey = function () {
- return this.key_
- }, e.prototype.setKey = function (t) {
- this.key_ !== t && (this.key_ = t, this.changed())
- }, e.prototype.getOpaque = function (t) {
- return this.opaque_
- }, e.prototype.getResolutions = function () {
- return this.tileGrid.getResolutions()
- }, e.prototype.getTile = function (t, e, r, i, o) {
- return n()
- }, e.prototype.getTileGrid = function () {
- return this.tileGrid
- }, e.prototype.getTileGridForProjection = function (t) {
- return this.tileGrid ? this.tileGrid : oc(t)
- }, e.prototype.getTileCacheForProjection = function (t) {
- return pt(Xr(this.getProjection(), t), 68), this.tileCache
- }, e.prototype.getTilePixelRatio = function (t) {
- return this.tilePixelRatio_
- }, e.prototype.getTilePixelSize = function (t, e, r) {
- var n = this.getTileGridForProjection(r), i = this.getTilePixelRatio(e), o = Is(n.getTileSize(t), this.tmpSize);
- return 1 == i ? o : Rs(o, i, this.tmpSize)
- }, e.prototype.getTileCoordForTileUrlFunction = function (t, e) {
- var r = void 0 !== e ? e : this.getProjection(), n = this.getTileGridForProjection(r);
- return this.getWrapX() && r.isGlobal() && (t = ac(n, t, r)), du(t, n) ? t : null
- }, e.prototype.clear = function () {
- this.tileCache.clear()
- }, e.prototype.refresh = function () {
- this.clear(), t.prototype.refresh.call(this)
- }, e.prototype.updateCacheSize = function (t, e) {
- var r = this.getTileCacheForProjection(e);
- t > r.highWaterMark && (r.highWaterMark = t)
- }, e.prototype.useTile = function (t, e, r, n) {
- }, e
- }(Dp), Up = function (t) {
- function e(e, r) {
- var n = t.call(this, e) || this;
- return n.tile = r, n
- }
-
- return Gp(e, t), e
- }(c), Bp = zp, Vp = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Yp = function (t) {
- function e(r) {
- var n = t.call(this, {
- attributions: r.attributions,
- cacheSize: r.cacheSize,
- opaque: r.opaque,
- projection: r.projection,
- state: r.state,
- tileGrid: r.tileGrid,
- tilePixelRatio: r.tilePixelRatio,
- wrapX: r.wrapX,
- transition: r.transition,
- key: r.key,
- attributionsCollapsible: r.attributionsCollapsible,
- zDirection: r.zDirection
- }) || this;
- return n.generateTileUrlFunction_ = n.tileUrlFunction === e.prototype.tileUrlFunction, n.tileLoadFunction = r.tileLoadFunction, r.tileUrlFunction && (n.tileUrlFunction = r.tileUrlFunction), n.urls = null, r.urls ? n.setUrls(r.urls) : r.url && n.setUrl(r.url), n.tileLoadingKeys_ = {}, n
- }
-
- return Vp(e, t), e.prototype.getTileLoadFunction = function () {
- return this.tileLoadFunction
- }, e.prototype.getTileUrlFunction = function () {
- return Object.getPrototypeOf(this).tileUrlFunction === this.tileUrlFunction ? this.tileUrlFunction.bind(this) : this.tileUrlFunction
- }, e.prototype.getUrls = function () {
- return this.urls
- }, e.prototype.handleTileChange = function (t) {
- var e, r = t.target, n = o(r), i = r.getState();
- i == Qi ? (this.tileLoadingKeys_[n] = !0, e = Fp) : n in this.tileLoadingKeys_ && (delete this.tileLoadingKeys_[n], e = i == eo ? kp : i == to ? Ap : void 0), null != e && this.dispatchEvent(new Up(e, r))
- }, e.prototype.setTileLoadFunction = function (t) {
- this.tileCache.clear(), this.tileLoadFunction = t, this.changed()
- }, e.prototype.setTileUrlFunction = function (t, e) {
- this.tileUrlFunction = t, this.tileCache.pruneExceptNewestZ(), void 0 !== e ? this.setKey(e) : this.changed()
- }, e.prototype.setUrl = function (t) {
- var e = yc(t);
- this.urls = e, this.setUrls(e)
- }, e.prototype.setUrls = function (t) {
- this.urls = t;
- var e = t.join("\n");
- this.generateTileUrlFunction_ ? this.setTileUrlFunction(fc(t, this.tileGrid), e) : this.setKey(e)
- }, e.prototype.tileUrlFunction = function (t, e, r) {
- }, e.prototype.useTile = function (t, e, r) {
- var n = cu(t, e, r);
- this.tileCache.containsKey(n) && this.tileCache.get(n)
- }, e
- }(Bp), Wp = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }();
-
- function qp(t, e) {
- t.getImage().src = e
- }
-
- var Xp = function (t) {
- function e(e) {
- var r = t.call(this, {
- attributions: e.attributions,
- cacheSize: e.cacheSize,
- opaque: e.opaque,
- projection: e.projection,
- state: e.state,
- tileGrid: e.tileGrid,
- tileLoadFunction: e.tileLoadFunction ? e.tileLoadFunction : qp,
- tilePixelRatio: e.tilePixelRatio,
- tileUrlFunction: e.tileUrlFunction,
- url: e.url,
- urls: e.urls,
- wrapX: e.wrapX,
- transition: e.transition,
- key: e.key,
- attributionsCollapsible: e.attributionsCollapsible,
- zDirection: e.zDirection
- }) || this;
- return r.crossOrigin = void 0 !== e.crossOrigin ? e.crossOrigin : null, r.tileClass = void 0 !== e.tileClass ? e.tileClass : vo, r.tileCacheForProjection = {}, r.tileGridForProjection = {}, r.reprojectionErrorThreshold_ = e.reprojectionErrorThreshold, r.contextOptions_ = !1 === e.imageSmoothing ? $u : void 0, r.renderReprojectionEdges_ = !1, r
- }
-
- return Wp(e, t), e.prototype.canExpireCache = function () {
- if (this.tileCache.canExpireCache()) return !0;
- for (var t in this.tileCacheForProjection) if (this.tileCacheForProjection[t].canExpireCache()) return !0;
- return !1
- }, e.prototype.expireCache = function (t, e) {
- var r = this.getTileCacheForProjection(t);
- for (var n in this.tileCache.expireCache(this.tileCache == r ? e : {}), this.tileCacheForProjection) {
- var i = this.tileCacheForProjection[n];
- i.expireCache(i == r ? e : {})
- }
- }, e.prototype.getContextOptions = function () {
- return this.contextOptions_
- }, e.prototype.getGutterForProjection = function (t) {
- return this.getProjection() && t && !Xr(this.getProjection(), t) ? 0 : this.getGutter()
- }, e.prototype.getGutter = function () {
- return 0
- }, e.prototype.getKey = function () {
- return t.prototype.getKey.call(this) + (this.contextOptions_ ? "\n" + JSON.stringify(this.contextOptions_) : "")
- }, e.prototype.getOpaque = function (e) {
- return !(this.getProjection() && e && !Xr(this.getProjection(), e)) && t.prototype.getOpaque.call(this, e)
- }, e.prototype.getTileGridForProjection = function (t) {
- var e = this.getProjection();
- if (!this.tileGrid || e && !Xr(e, t)) {
- var r = o(t);
- return r in this.tileGridForProjection || (this.tileGridForProjection[r] = oc(t)), this.tileGridForProjection[r]
- }
- return this.tileGrid
- }, e.prototype.getTileCacheForProjection = function (t) {
- var e = this.getProjection();
- if (!e || Xr(e, t)) return this.tileCache;
- var r = o(t);
- return r in this.tileCacheForProjection || (this.tileCacheForProjection[r] = new yu(this.tileCache.highWaterMark)), this.tileCacheForProjection[r]
- }, e.prototype.createTile_ = function (t, e, r, n, i, o) {
- var a = [t, e, r], s = this.getTileCoordForTileUrlFunction(a, i),
- l = s ? this.tileUrlFunction(s, n, i) : void 0,
- u = new this.tileClass(a, void 0 !== l ? Ji : ro, void 0 !== l ? l : "", this.crossOrigin, this.tileLoadFunction, this.tileOptions);
- return u.key = o, u.addEventListener(F, this.handleTileChange.bind(this)), u
- }, e.prototype.getTile = function (t, e, r, n, i) {
- var o = this.getProjection();
- if (o && i && !Xr(o, i)) {
- var a = this.getTileCacheForProjection(i), s = [t, e, r], l = void 0, u = hu(s);
- a.containsKey(u) && (l = a.get(u));
- var c = this.getKey();
- if (l && l.key == c) return l;
- var h = this.getTileGridForProjection(o), p = this.getTileGridForProjection(i),
- f = this.getTileCoordForTileUrlFunction(s, i),
- d = new Mp(o, h, i, p, s, f, this.getTilePixelRatio(n), this.getGutter(), function (t, e, r, n) {
- return this.getTileInternal(t, e, r, n, o)
- }.bind(this), this.reprojectionErrorThreshold_, this.renderReprojectionEdges_, this.contextOptions_);
- return d.key = c, l ? (d.interimTile = l, d.refreshInterimChain(), a.replace(u, d)) : a.set(u, d), d
- }
- return this.getTileInternal(t, e, r, n, o || i)
- }, e.prototype.getTileInternal = function (t, e, r, n, i) {
- var o = null, a = cu(t, e, r), s = this.getKey();
- if (this.tileCache.containsKey(a)) {
- if ((o = this.tileCache.get(a)).key != s) {
- var l = o;
- o = this.createTile_(t, e, r, n, i, s), l.getState() == Ji ? o.interimTile = l.interimTile : o.interimTile = l, o.refreshInterimChain(), this.tileCache.replace(a, o)
- }
- } else o = this.createTile_(t, e, r, n, i, s), this.tileCache.set(a, o);
- return o
- }, e.prototype.setRenderReprojectionEdges = function (t) {
- if (this.renderReprojectionEdges_ != t) {
- for (var e in this.renderReprojectionEdges_ = t, this.tileCacheForProjection) this.tileCacheForProjection[e].clear();
- this.changed()
- }
- }, e.prototype.setTileGridForProjection = function (t, e) {
- var r = Gr(t);
- if (r) {
- var n = o(r);
- n in this.tileGridForProjection || (this.tileGridForProjection[n] = e)
- }
- }, e
- }(Yp), Zp = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }();
-
- function Kp(t) {
- var e, r, n = t[0], i = new Array(n), o = 1 << n - 1;
- for (e = 0; e < n; ++e) r = 48, t[1] & o && (r += 1), t[2] & o && (r += 2), i[e] = String.fromCharCode(r), o >>= 1;
- return i.join("")
- }
-
- var Hp = function (t) {
- function e(e) {
- var r = this, n = void 0 !== e.hidpi && e.hidpi;
- return (r = t.call(this, {
- cacheSize: e.cacheSize,
- crossOrigin: "anonymous",
- imageSmoothing: e.imageSmoothing,
- opaque: !0,
- projection: Gr("EPSG:3857"),
- reprojectionErrorThreshold: e.reprojectionErrorThreshold,
- state: Jo,
- tileLoadFunction: e.tileLoadFunction,
- tilePixelRatio: n ? 2 : 1,
- wrapX: void 0 === e.wrapX || e.wrapX,
- transition: e.transition
- }) || this).hidpi_ = n, r.culture_ = void 0 !== e.culture ? e.culture : "en-us", r.maxZoom_ = void 0 !== e.maxZoom ? e.maxZoom : -1, r.apiKey_ = e.key, r.imagerySet_ = e.imagerySet, Au("https://dev.virtualearth.net/REST/v1/Imagery/Metadata/" + r.imagerySet_ + "?uriScheme=https&include=ImageryProviders&key=" + r.apiKey_ + "&c=" + r.culture_, r.handleImageryMetadataResponse.bind(r), void 0, "jsonp"), r
- }
-
- return Zp(e, t), e.prototype.getApiKey = function () {
- return this.apiKey_
- }, e.prototype.getImagerySet = function () {
- return this.imagerySet_
- }, e.prototype.handleImageryMetadataResponse = function (t) {
- if (200 == t.statusCode && "OK" == t.statusDescription && "ValidCredentials" == t.authenticationResultCode && 1 == t.resourceSets.length && 1 == t.resourceSets[0].resources.length) {
- var e = t.resourceSets[0].resources[0], r = -1 == this.maxZoom_ ? e.zoomMax : this.maxZoom_,
- n = hc(this.getProjection()), i = this.hidpi_ ? 2 : 1,
- o = e.imageWidth == e.imageHeight ? e.imageWidth / i : [e.imageWidth / i, e.imageHeight / i],
- a = lc({extent: n, minZoom: e.zoomMin, maxZoom: r, tileSize: o});
- this.tileGrid = a;
- var s = this.culture_, l = this.hidpi_;
- if (this.tileUrlFunction = dc(e.imageUrlSubdomains.map((function (t) {
- var r = [0, 0, 0], n = e.imageUrl.replace("{subdomain}", t).replace("{culture}", s);
- return function (t, e, i) {
- if (t) {
- uu(t[0], t[1], t[2], r);
- var o = n;
- return l && (o += "&dpi=d1&device=mobile"), o.replace("{quadkey}", Kp(r))
- }
- }
- }))), e.imageryProviders) {
- var u = Zr(Gr("EPSG:4326"), this.getProjection());
- this.setAttributions(function (t) {
- var r = [], n = t.viewState, i = this.getTileGrid(),
- o = i.getZForResolution(n.resolution, this.zDirection), a = i.getTileCoordForCoordAndZ(n.center, o)[0];
- return e.imageryProviders.map((function (e) {
- for (var n = !1, i = e.coverageAreas, o = 0, s = i.length; o < s; ++o) {
- var l = i[o];
- if (a >= l.zoomMin && a <= l.zoomMax) {
- var c = l.bbox;
- if (Re(Ae([c[1], c[0], c[3], c[2]], u), t.extent)) {
- n = !0;
- break
- }
- }
- }
- n && r.push(e.attribution)
- })), r.push('<a class="ol-attribution-bing-tos" href="https://www.microsoft.com/maps/product/terms.html" target="_blank">Terms of Use</a>'), r
- }.bind(this))
- }
- this.setState(Qo)
- } else this.setState(ta)
- }, e
- }(Xp), $p = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Jp = function (t) {
- function e(e) {
- var r = e || {}, n = void 0 !== r.projection ? r.projection : "EPSG:3857",
- i = void 0 !== r.tileGrid ? r.tileGrid : lc({
- extent: hc(n),
- maxResolution: r.maxResolution,
- maxZoom: r.maxZoom,
- minZoom: r.minZoom,
- tileSize: r.tileSize
- });
- return t.call(this, {
- attributions: r.attributions,
- cacheSize: r.cacheSize,
- crossOrigin: r.crossOrigin,
- imageSmoothing: r.imageSmoothing,
- opaque: r.opaque,
- projection: n,
- reprojectionErrorThreshold: r.reprojectionErrorThreshold,
- tileGrid: i,
- tileLoadFunction: r.tileLoadFunction,
- tilePixelRatio: r.tilePixelRatio,
- tileUrlFunction: r.tileUrlFunction,
- url: r.url,
- urls: r.urls,
- wrapX: void 0 === r.wrapX || r.wrapX,
- transition: r.transition,
- attributionsCollapsible: r.attributionsCollapsible,
- zDirection: r.zDirection
- }) || this
- }
-
- return $p(e, t), e
- }(Xp), Qp = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), tf = function (t) {
- function e(e) {
- var r = t.call(this, {
- attributions: e.attributions,
- cacheSize: e.cacheSize,
- crossOrigin: e.crossOrigin,
- maxZoom: void 0 !== e.maxZoom ? e.maxZoom : 18,
- minZoom: e.minZoom,
- projection: e.projection,
- transition: e.transition,
- wrapX: e.wrapX
- }) || this;
- return r.account_ = e.account, r.mapId_ = e.map || "", r.config_ = e.config || {}, r.templateCache_ = {}, r.initializeMap_(), r
- }
-
- return Qp(e, t), e.prototype.getConfig = function () {
- return this.config_
- }, e.prototype.updateConfig = function (t) {
- O(this.config_, t), this.initializeMap_()
- }, e.prototype.setConfig = function (t) {
- this.config_ = t || {}, this.initializeMap_()
- }, e.prototype.initializeMap_ = function () {
- var t = JSON.stringify(this.config_);
- if (this.templateCache_[t]) this.applyTemplate_(this.templateCache_[t]); else {
- var e = "https://" + this.account_ + ".carto.com/api/v1/map";
- this.mapId_ && (e += "/named/" + this.mapId_);
- var r = new XMLHttpRequest;
- r.addEventListener("load", this.handleInitResponse_.bind(this, t)), r.addEventListener("error", this.handleInitError_.bind(this)), r.open("POST", e), r.setRequestHeader("Content-type", "application/json"), r.send(JSON.stringify(this.config_))
- }
- }, e.prototype.handleInitResponse_ = function (t, e) {
- var r = e.target;
- if (!r.status || r.status >= 200 && r.status < 300) {
- var n = void 0;
- try {
- n = JSON.parse(r.responseText)
- } catch (t) {
- return void this.setState(ta)
- }
- this.applyTemplate_(n), this.templateCache_[t] = n, this.setState(Qo)
- } else this.setState(ta)
- }, e.prototype.handleInitError_ = function (t) {
- this.setState(ta)
- }, e.prototype.applyTemplate_ = function (t) {
- var e = "https://" + t.cdn_url.https + "/" + this.account_ + "/api/v1/map/" + t.layergroupid + "/{z}/{x}/{y}.png";
- this.setUrl(e)
- }, e
- }(Jp), ef = "addfeature", rf = "changefeature", nf = "clear", of = "removefeature", af = "featuresloadstart",
- sf = "featuresloadend", lf = "featuresloaderror", uf = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), cf = function (t) {
- function e(e, r, n) {
- var i = t.call(this, e) || this;
- return i.feature = r, i.features = n, i
- }
-
- return uf(e, t), e
- }(c), hf = function (t) {
- function e(e) {
- var r = this, n = e || {};
- (r = t.call(this, {
- attributions: n.attributions,
- projection: void 0,
- state: Qo,
- wrapX: void 0 === n.wrapX || n.wrapX
- }) || this).loader_ = T, r.format_ = n.format, r.overlaps_ = void 0 === n.overlaps || n.overlaps, r.url_ = n.url, void 0 !== n.loader ? r.loader_ = n.loader : void 0 !== r.url_ && (pt(r.format_, 7), r.loader_ = Mu(r.url_, r.format_)), r.strategy_ = void 0 !== n.strategy ? n.strategy : Fu;
- var i, o, a = void 0 === n.useSpatialIndex || n.useSpatialIndex;
- return r.featuresRtree_ = a ? new Rp : null, r.loadedExtentsRtree_ = new Rp, r.nullGeometryFeatures_ = {}, r.idIndex_ = {}, r.uidIndex_ = {}, r.featureChangeKeys_ = {}, r.featuresCollection_ = null, Array.isArray(n.features) ? o = n.features : n.features && (o = (i = n.features).getArray()), a || void 0 !== i || (i = new ht(o)), void 0 !== o && r.addFeaturesInternal(o), void 0 !== i && r.bindFeaturesCollection_(i), r
- }
-
- return uf(e, t), e.prototype.addFeature = function (t) {
- this.addFeatureInternal(t), this.changed()
- }, e.prototype.addFeatureInternal = function (t) {
- var e = o(t);
- if (this.addToIndex_(e, t)) {
- this.setupChangeEvents_(e, t);
- var r = t.getGeometry();
- if (r) {
- var n = r.getExtent();
- this.featuresRtree_ && this.featuresRtree_.insert(n, t)
- } else this.nullGeometryFeatures_[e] = t;
- this.dispatchEvent(new cf(ef, t))
- } else this.featuresCollection_ && this.featuresCollection_.remove(t)
- }, e.prototype.setupChangeEvents_ = function (t, e) {
- this.featureChangeKeys_[t] = [Z(e, F, this.handleFeatureChange_, this), Z(e, h, this.handleFeatureChange_, this)]
- }, e.prototype.addToIndex_ = function (t, e) {
- var r = !0, n = e.getId();
- return void 0 !== n && (n.toString() in this.idIndex_ ? r = !1 : this.idIndex_[n.toString()] = e), r && (pt(!(t in this.uidIndex_), 30), this.uidIndex_[t] = e), r
- }, e.prototype.addFeatures = function (t) {
- this.addFeaturesInternal(t), this.changed()
- }, e.prototype.addFeaturesInternal = function (t) {
- for (var e = [], r = [], n = [], i = 0, a = t.length; i < a; i++) {
- var s = o(u = t[i]);
- this.addToIndex_(s, u) && r.push(u)
- }
- i = 0;
- for (var l = r.length; i < l; i++) {
- var u;
- s = o(u = r[i]);
- this.setupChangeEvents_(s, u);
- var c = u.getGeometry();
- if (c) {
- var h = c.getExtent();
- e.push(h), n.push(u)
- } else this.nullGeometryFeatures_[s] = u
- }
- this.featuresRtree_ && this.featuresRtree_.load(e, n);
- i = 0;
- for (var p = r.length; i < p; i++) this.dispatchEvent(new cf(ef, r[i]))
- }, e.prototype.bindFeaturesCollection_ = function (t) {
- var e = !1;
- this.addEventListener(ef, (function (r) {
- e || (e = !0, t.push(r.feature), e = !1)
- })), this.addEventListener(of, (function (r) {
- e || (e = !0, t.remove(r.feature), e = !1)
- })), t.addEventListener(at, function (t) {
- e || (e = !0, this.addFeature(t.element), e = !1)
- }.bind(this)), t.addEventListener(st, function (t) {
- e || (e = !0, this.removeFeature(t.element), e = !1)
- }.bind(this)), this.featuresCollection_ = t
- }, e.prototype.clear = function (t) {
- if (t) {
- for (var e in this.featureChangeKeys_) {
- this.featureChangeKeys_[e].forEach(H)
- }
- this.featuresCollection_ || (this.featureChangeKeys_ = {}, this.idIndex_ = {}, this.uidIndex_ = {})
- } else if (this.featuresRtree_) for (var r in this.featuresRtree_.forEach(this.removeFeatureInternal.bind(this)), this.nullGeometryFeatures_) this.removeFeatureInternal(this.nullGeometryFeatures_[r]);
- this.featuresCollection_ && this.featuresCollection_.clear(), this.featuresRtree_ && this.featuresRtree_.clear(), this.nullGeometryFeatures_ = {};
- var n = new cf(nf);
- this.dispatchEvent(n), this.changed()
- }, e.prototype.forEachFeature = function (t) {
- if (this.featuresRtree_) return this.featuresRtree_.forEach(t);
- this.featuresCollection_ && this.featuresCollection_.forEach(t)
- }, e.prototype.forEachFeatureAtCoordinateDirect = function (t, e) {
- var r = [t[0], t[1], t[0], t[1]];
- return this.forEachFeatureInExtent(r, (function (r) {
- return r.getGeometry().intersectsCoordinate(t) ? e(r) : void 0
- }))
- }, e.prototype.forEachFeatureInExtent = function (t, e) {
- if (this.featuresRtree_) return this.featuresRtree_.forEachInExtent(t, e);
- this.featuresCollection_ && this.featuresCollection_.forEach(e)
- }, e.prototype.forEachFeatureIntersectingExtent = function (t, e) {
- return this.forEachFeatureInExtent(t, (function (r) {
- if (r.getGeometry().intersectsExtent(t)) {
- var n = e(r);
- if (n) return n
- }
- }))
- }, e.prototype.getFeaturesCollection = function () {
- return this.featuresCollection_
- }, e.prototype.getFeatures = function () {
- var t;
- return this.featuresCollection_ ? t = this.featuresCollection_.getArray() : this.featuresRtree_ && (t = this.featuresRtree_.getAll(), I(this.nullGeometryFeatures_) || v(t, R(this.nullGeometryFeatures_))), t
- }, e.prototype.getFeaturesAtCoordinate = function (t) {
- var e = [];
- return this.forEachFeatureAtCoordinateDirect(t, (function (t) {
- e.push(t)
- })), e
- }, e.prototype.getFeaturesInExtent = function (t) {
- return this.featuresRtree_ ? this.featuresRtree_.getInExtent(t) : this.featuresCollection_ ? this.featuresCollection_.getArray() : []
- }, e.prototype.getClosestFeatureToCoordinate = function (t, e) {
- var r = t[0], n = t[1], i = null, o = [NaN, NaN], a = 1 / 0, s = [-1 / 0, -1 / 0, 1 / 0, 1 / 0], l = e || S;
- return this.featuresRtree_.forEachInExtent(s, (function (t) {
- if (l(t)) {
- var e = t.getGeometry(), u = a;
- if ((a = e.closestPointXY(r, n, o, a)) < u) {
- i = t;
- var c = Math.sqrt(a);
- s[0] = r - c, s[1] = n - c, s[2] = r + c, s[3] = n + c
- }
- }
- })), i
- }, e.prototype.getExtent = function (t) {
- return this.featuresRtree_.getExtent(t)
- }, e.prototype.getFeatureById = function (t) {
- var e = this.idIndex_[t.toString()];
- return void 0 !== e ? e : null
- }, e.prototype.getFeatureByUid = function (t) {
- var e = this.uidIndex_[t];
- return void 0 !== e ? e : null
- }, e.prototype.getFormat = function () {
- return this.format_
- }, e.prototype.getOverlaps = function () {
- return this.overlaps_
- }, e.prototype.getUrl = function () {
- return this.url_
- }, e.prototype.handleFeatureChange_ = function (t) {
- var e = t.target, r = o(e), n = e.getGeometry();
- if (n) {
- var i = n.getExtent();
- r in this.nullGeometryFeatures_ ? (delete this.nullGeometryFeatures_[r], this.featuresRtree_ && this.featuresRtree_.insert(i, e)) : this.featuresRtree_ && this.featuresRtree_.update(i, e)
- } else r in this.nullGeometryFeatures_ || (this.featuresRtree_ && this.featuresRtree_.remove(e), this.nullGeometryFeatures_[r] = e);
- var a = e.getId();
- if (void 0 !== a) {
- var s = a.toString();
- this.idIndex_[s] !== e && (this.removeFromIdIndex_(e), this.idIndex_[s] = e)
- } else this.removeFromIdIndex_(e), this.uidIndex_[r] = e;
- this.changed(), this.dispatchEvent(new cf(rf, e))
- }, e.prototype.hasFeature = function (t) {
- var e = t.getId();
- return void 0 !== e ? e in this.idIndex_ : o(t) in this.uidIndex_
- }, e.prototype.isEmpty = function () {
- return this.featuresRtree_.isEmpty() && I(this.nullGeometryFeatures_)
- }, e.prototype.loadFeatures = function (t, e, r) {
- var n = this.loadedExtentsRtree_, i = this.strategy_(t, e);
- this.loading = !1;
- for (var o = function (t, o) {
- var s = i[t];
- n.forEachInExtent(s, (function (t) {
- return te(t.extent, s)
- })) || (a.dispatchEvent(new cf(af)), a.loader_.call(a, s, e, r, function (t) {
- this.dispatchEvent(new cf(sf, void 0, t))
- }.bind(a), function () {
- this.dispatchEvent(new cf(lf))
- }.bind(a)), n.insert(s, {extent: s.slice()}), a.loading = a.loader_ !== T)
- }, a = this, s = 0, l = i.length; s < l; ++s) o(s)
- }, e.prototype.refresh = function () {
- this.clear(!0), this.loadedExtentsRtree_.clear(), t.prototype.refresh.call(this)
- }, e.prototype.removeLoadedExtent = function (t) {
- var e, r = this.loadedExtentsRtree_;
- r.forEachInExtent(t, (function (r) {
- if (ue(r.extent, t)) return e = r, !0
- })), e && r.remove(e)
- }, e.prototype.removeFeature = function (t) {
- var e = o(t);
- e in this.nullGeometryFeatures_ ? delete this.nullGeometryFeatures_[e] : this.featuresRtree_ && this.featuresRtree_.remove(t), this.removeFeatureInternal(t), this.changed()
- }, e.prototype.removeFeatureInternal = function (t) {
- var e = o(t);
- this.featureChangeKeys_[e].forEach(H), delete this.featureChangeKeys_[e];
- var r = t.getId();
- void 0 !== r && delete this.idIndex_[r.toString()], delete this.uidIndex_[e], this.dispatchEvent(new cf(of, t))
- }, e.prototype.removeFromIdIndex_ = function (t) {
- var e = !1;
- for (var r in this.idIndex_) if (this.idIndex_[r] === t) {
- delete this.idIndex_[r], e = !0;
- break
- }
- return e
- }, e.prototype.setLoader = function (t) {
- this.loader_ = t
- }, e.prototype.setUrl = function (t) {
- pt(this.format_, 7), this.setLoader(Mu(t, this.format_))
- }, e
- }(Dp), pf = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), ff = function (t) {
- function e(e) {
- var r = t.call(this, {attributions: e.attributions, wrapX: e.wrapX}) || this;
- return r.resolution = void 0, r.distance = void 0 !== e.distance ? e.distance : 20, r.features = [], r.geometryFunction = e.geometryFunction || function (t) {
- var e = t.getGeometry();
- return pt(e.getType() == bt.POINT, 10), e
- }, r.boundRefresh_ = r.refresh.bind(r), r.setSource(e.source || null), r
- }
-
- return pf(e, t), e.prototype.clear = function (e) {
- this.features.length = 0, t.prototype.clear.call(this, e)
- }, e.prototype.getDistance = function () {
- return this.distance
- }, e.prototype.getSource = function () {
- return this.source
- }, e.prototype.loadFeatures = function (t, e, r) {
- this.source.loadFeatures(t, e, r), e !== this.resolution && (this.clear(), this.resolution = e, this.cluster(), this.addFeatures(this.features))
- }, e.prototype.setDistance = function (t) {
- this.distance = t, this.refresh()
- }, e.prototype.setSource = function (t) {
- this.source && this.source.removeEventListener(F, this.boundRefresh_), this.source = t, t && t.addEventListener(F, this.boundRefresh_), this.refresh()
- }, e.prototype.refresh = function () {
- this.clear(), this.cluster(), this.addFeatures(this.features)
- }, e.prototype.cluster = function () {
- if (void 0 !== this.resolution && this.source) for (var t = [1 / 0, 1 / 0, -1 / 0, -1 / 0], e = this.distance * this.resolution, r = this.source.getFeatures(), n = {}, i = 0, a = r.length; i < a; i++) {
- var s = r[i];
- if (!(o(s) in n)) {
- var l = this.geometryFunction(s);
- if (l) {
- ae(l.getCoordinates(), t), Ht(t, e, t);
- var u = this.source.getFeaturesInExtent(t);
- u = u.filter((function (t) {
- var e = o(t);
- return !(e in n) && (n[e] = !0, !0)
- })), this.features.push(this.createCluster(u))
- }
- }
- }
- }, e.prototype.createCluster = function (t) {
- for (var e = [0, 0], r = t.length - 1; r >= 0; --r) {
- var n = this.geometryFunction(t[r]);
- n ? xr(e, n.getCoordinates()) : t.splice(r, 1)
- }
- Pr(e, 1 / t.length);
- var i = new gt(new qn(e));
- return i.set("features", t), i
- }, e
- }(hf), df = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), gf = "default", yf = "truncated", mf = function (t) {
- function e(e, r, n, i, o, a, s) {
- var l = t.call(this, r, n, i, o, a, s) || this;
- return l.zoomifyImage_ = null, l.tileSize_ = e, l
- }
-
- return df(e, t), e.prototype.getImage = function () {
- if (this.zoomifyImage_) return this.zoomifyImage_;
- var e = t.prototype.getImage.call(this);
- if (this.state == to) {
- var r = this.tileSize_;
- if (e.width == r[0] && e.height == r[1]) return this.zoomifyImage_ = e, e;
- var n = uo(r[0], r[1]);
- return n.drawImage(e, 0, 0), this.zoomifyImage_ = n.canvas, n.canvas
- }
- return e
- }, e
- }(vo), vf = function (t) {
- function e(e) {
- var r = this, n = e, i = n.size, o = void 0 !== n.tierSizeCalculation ? n.tierSizeCalculation : gf,
- a = n.tilePixelRatio || 1, s = i[0], l = i[1], u = [], c = n.tileSize || 256, h = c * a;
- switch (o) {
- case gf:
- for (; s > h || l > h;) u.push([Math.ceil(s / h), Math.ceil(l / h)]), h += h;
- break;
- case yf:
- for (var p = s, f = l; p > h || f > h;) u.push([Math.ceil(p / h), Math.ceil(f / h)]), p >>= 1, f >>= 1;
- break;
- default:
- pt(!1, 53)
- }
- u.push([1, 1]), u.reverse();
- for (var d = [a], g = [0], y = 1, m = u.length; y < m; y++) d.push(a << y), g.push(u[y - 1][0] * u[y - 1][1] + g[y - 1]);
- d.reverse();
- var v = new ic({tileSize: c, extent: n.extent || [0, -l, s, 0], resolutions: d}), _ = n.url;
- _ && -1 == _.indexOf("{TileGroup}") && -1 == _.indexOf("{tileIndex}") && (_ += "{TileGroup}/{z}-{x}-{y}.jpg");
- var b = yc(_), x = c * a;
- var w = dc(b.map((function (t) {
- return function (e, r, n) {
- if (e) {
- var i = e[0], o = e[1], a = e[2], s = o + a * u[i][0],
- l = {z: i, x: o, y: a, tileIndex: s, TileGroup: "TileGroup" + ((s + g[i]) / x | 0)};
- return t.replace(/\{(\w+?)\}/g, (function (t, e) {
- return l[e]
- }))
- }
- }
- }))), S = mf.bind(null, Is(c * a));
- (r = t.call(this, {
- attributions: n.attributions,
- cacheSize: n.cacheSize,
- crossOrigin: n.crossOrigin,
- imageSmoothing: n.imageSmoothing,
- projection: n.projection,
- tilePixelRatio: a,
- reprojectionErrorThreshold: n.reprojectionErrorThreshold,
- tileClass: S,
- tileGrid: v,
- tileUrlFunction: w,
- transition: n.transition
- }) || this).zDirection = n.zDirection;
- var E = w(v.getTileCoordForCoordAndResolution(xe(v.getExtent()), d[d.length - 1]), 1, null), T = new Image;
- return T.addEventListener("error", function () {
- x = c, this.changed()
- }.bind(r)), T.src = E, r
- }
-
- return df(e, t), e
- }(Xp), _f = function () {
- for (var t = 0, e = 0, r = arguments.length; e < r; e++) t += arguments[e].length;
- var n = Array(t), i = 0;
- for (e = 0; e < r; e++) for (var o = arguments[e], a = 0, s = o.length; a < s; a++, i++) n[i] = o[a];
- return n
- }, bf = "version1", xf = "version2", wf = "version3", Sf = {};
- Sf[bf] = {
- level0: {supports: [], formats: [], qualities: ["native"]},
- level1: {supports: ["regionByPx", "sizeByW", "sizeByH", "sizeByPct"], formats: ["jpg"], qualities: ["native"]},
- level2: {
- supports: ["regionByPx", "regionByPct", "sizeByW", "sizeByH", "sizeByPct", "sizeByConfinedWh", "sizeByWh"],
- formats: ["jpg", "png"],
- qualities: ["native", "color", "grey", "bitonal"]
- }
- }, Sf[xf] = {
- level0: {supports: [], formats: ["jpg"], qualities: ["default"]},
- level1: {supports: ["regionByPx", "sizeByW", "sizeByH", "sizeByPct"], formats: ["jpg"], qualities: ["default"]},
- level2: {
- supports: ["regionByPx", "regionByPct", "sizeByW", "sizeByH", "sizeByPct", "sizeByConfinedWh", "sizeByDistortedWh", "sizeByWh"],
- formats: ["jpg", "png"],
- qualities: ["default", "bitonal"]
- }
- }, Sf[wf] = {
- level0: {supports: [], formats: ["jpg"], qualities: ["default"]},
- level1: {
- supports: ["regionByPx", "regionSquare", "sizeByW", "sizeByH", "sizeByWh"],
- formats: ["jpg"],
- qualities: ["default"]
- },
- level2: {
- supports: ["regionByPx", "regionSquare", "regionByPct", "sizeByW", "sizeByH", "sizeByPct", "sizeByConfinedWh", "sizeByWh"],
- formats: ["jpg", "png"],
- qualities: ["default"]
- }
- }, Sf.none = {none: {supports: [], formats: [], qualities: []}};
- var Ef = /^https?:\/\/library\.stanford\.edu\/iiif\/image-api\/(?:1\.1\/)?compliance\.html#level[0-2]$/,
- Tf = /^https?:\/\/iiif\.io\/api\/image\/2\/level[0-2](?:\.json)?$/,
- Cf = /(^https?:\/\/iiif\.io\/api\/image\/3\/level[0-2](?:\.json)?$)|(^level[0-2]$)/;
- var Of = {};
- Of[bf] = function (t) {
- var e = t.getComplianceLevelSupportedFeatures();
- return void 0 === e && (e = Sf[bf].level0), {
- url: void 0 === t.imageInfo["@id"] ? void 0 : t.imageInfo["@id"].replace(/\/?(?:info\.json)?$/g, ""),
- supports: e.supports,
- formats: _f(e.formats, [void 0 === t.imageInfo.formats ? [] : t.imageInfo.formats]),
- qualities: _f(e.qualities, [void 0 === t.imageInfo.qualities ? [] : t.imageInfo.qualities]),
- resolutions: t.imageInfo.scale_factors,
- tileSize: void 0 !== t.imageInfo.tile_width ? void 0 !== t.imageInfo.tile_height ? [t.imageInfo.tile_width, t.imageInfo.tile_height] : [t.imageInfo.tile_width, t.imageInfo.tile_width] : null != t.imageInfo.tile_height ? [t.imageInfo.tile_height, t.imageInfo.tile_height] : void 0
- }
- }, Of[xf] = function (t) {
- var e = t.getComplianceLevelSupportedFeatures(),
- r = Array.isArray(t.imageInfo.profile) && t.imageInfo.profile.length > 1,
- n = r && t.imageInfo.profile[1].supports ? t.imageInfo.profile[1].supports : [],
- i = r && t.imageInfo.profile[1].formats ? t.imageInfo.profile[1].formats : [],
- o = r && t.imageInfo.profile[1].qualities ? t.imageInfo.profile[1].qualities : [];
- return {
- url: t.imageInfo["@id"].replace(/\/?(?:info\.json)?$/g, ""),
- sizes: void 0 === t.imageInfo.sizes ? void 0 : t.imageInfo.sizes.map((function (t) {
- return [t.width, t.height]
- })),
- tileSize: void 0 === t.imageInfo.tiles ? void 0 : [t.imageInfo.tiles.map((function (t) {
- return t.width
- }))[0], t.imageInfo.tiles.map((function (t) {
- return void 0 === t.height ? t.width : t.height
- }))[0]],
- resolutions: void 0 === t.imageInfo.tiles ? void 0 : t.imageInfo.tiles.map((function (t) {
- return t.scaleFactors
- }))[0],
- supports: _f(e.supports, n),
- formats: _f(e.formats, i),
- qualities: _f(e.qualities, o)
- }
- }, Of[wf] = function (t) {
- var e = t.getComplianceLevelSupportedFeatures(),
- r = void 0 === t.imageInfo.extraFormats ? e.formats : _f(e.formats, t.imageInfo.extraFormats),
- n = void 0 !== t.imageInfo.preferredFormats && Array.isArray(t.imageInfo.preferredFormats) && t.imageInfo.preferredFormats.length > 0 ? t.imageInfo.preferredFormats.filter((function (t) {
- return ["jpg", "png", "gif"].includes(t)
- })).reduce((function (t, e) {
- return void 0 === t && r.includes(e) ? e : t
- }), void 0) : void 0;
- return {
- url: t.imageInfo.id,
- sizes: void 0 === t.imageInfo.sizes ? void 0 : t.imageInfo.sizes.map((function (t) {
- return [t.width, t.height]
- })),
- tileSize: void 0 === t.imageInfo.tiles ? void 0 : [t.imageInfo.tiles.map((function (t) {
- return t.width
- }))[0], t.imageInfo.tiles.map((function (t) {
- return t.height
- }))[0]],
- resolutions: void 0 === t.imageInfo.tiles ? void 0 : t.imageInfo.tiles.map((function (t) {
- return t.scaleFactors
- }))[0],
- supports: void 0 === t.imageInfo.extraFeatures ? e.supports : _f(e.supports, t.imageInfo.extraFeatures),
- formats: r,
- qualities: void 0 === t.imageInfo.extraQualities ? e.qualities : _f(e.qualities, t.imageInfo.extraQualities),
- preferredFormat: n
- }
- };
- var Pf = function () {
- function t(t) {
- this.setImageInfo(t)
- }
-
- return t.prototype.setImageInfo = function (t) {
- this.imageInfo = "string" == typeof t ? JSON.parse(t) : t
- }, t.prototype.getImageApiVersion = function () {
- if (void 0 !== this.imageInfo) {
- var t = this.imageInfo["@context"] || "ol-no-context";
- "string" == typeof t && (t = [t]);
- for (var e = 0; e < t.length; e++) switch (t[e]) {
- case"http://library.stanford.edu/iiif/image-api/1.1/context.json":
- case"http://iiif.io/api/image/1/context.json":
- return bf;
- case"http://iiif.io/api/image/2/context.json":
- return xf;
- case"http://iiif.io/api/image/3/context.json":
- return wf;
- case"ol-no-context":
- if (this.getComplianceLevelEntryFromProfile(bf) && this.imageInfo.identifier) return bf
- }
- pt(!1, 61)
- }
- }, t.prototype.getComplianceLevelEntryFromProfile = function (t) {
- if (void 0 !== this.imageInfo && void 0 !== this.imageInfo.profile) switch (void 0 === t && (t = this.getImageApiVersion()), t) {
- case bf:
- if (Ef.test(this.imageInfo.profile)) return this.imageInfo.profile;
- break;
- case wf:
- if (Cf.test(this.imageInfo.profile)) return this.imageInfo.profile;
- break;
- case xf:
- if ("string" == typeof this.imageInfo.profile && Tf.test(this.imageInfo.profile)) return this.imageInfo.profile;
- if (Array.isArray(this.imageInfo.profile) && this.imageInfo.profile.length > 0 && "string" == typeof this.imageInfo.profile[0] && Tf.test(this.imageInfo.profile[0])) return this.imageInfo.profile[0]
- }
- }, t.prototype.getComplianceLevelFromProfile = function (t) {
- var e = this.getComplianceLevelEntryFromProfile(t);
- if (void 0 !== e) {
- var r = e.match(/level[0-2](?:\.json)?$/g);
- return Array.isArray(r) ? r[0].replace(".json", "") : void 0
- }
- }, t.prototype.getComplianceLevelSupportedFeatures = function () {
- if (void 0 !== this.imageInfo) {
- var t = this.getImageApiVersion(), e = this.getComplianceLevelFromProfile(t);
- return void 0 === e ? Sf.none.none : Sf[t][e]
- }
- }, t.prototype.getTileSourceOptions = function (t) {
- var e = t || {}, r = this.getImageApiVersion();
- if (void 0 !== r) {
- var n = void 0 === r ? void 0 : Of[r](this);
- if (void 0 !== n) return {
- url: n.url,
- version: r,
- size: [this.imageInfo.width, this.imageInfo.height],
- sizes: n.sizes,
- format: void 0 !== e.format && n.formats.includes(e.format) ? e.format : void 0 !== n.preferredFormat ? n.preferredFormat : "jpg",
- supports: n.supports,
- quality: e.quality && n.qualities.includes(e.quality) ? e.quality : n.qualities.includes("native") ? "native" : "default",
- resolutions: Array.isArray(n.resolutions) ? n.resolutions.sort((function (t, e) {
- return e - t
- })) : void 0,
- tileSize: n.tileSize
- }
- }
- }, t
- }(), Rf = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }();
-
- function If(t) {
- return t.toLocaleString("en", {maximumFractionDigits: 10})
- }
-
- var Lf = function (t) {
- function e(e) {
- var r = this, n = e || {}, i = n.url || "";
- i += i.lastIndexOf("/") === i.length - 1 || "" === i ? "" : "/";
- var o = n.version || xf, a = n.sizes || [], s = n.size;
- pt(null != s && Array.isArray(s) && 2 == s.length && !isNaN(s[0]) && s[0] > 0 && !isNaN(s[1]) && s[1] > 0, 60);
- var l, u, c, h = s[0], p = s[1], f = n.tileSize, d = n.tilePixelRatio || 1, g = n.format || "jpg",
- y = n.quality || (n.version == bf ? "native" : "default"), m = n.resolutions || [], v = n.supports || [],
- _ = n.extent || [0, -p, h, 0], b = null != a && Array.isArray(a) && a.length > 0,
- x = void 0 !== f && ("number" == typeof f && Number.isInteger(f) && f > 0 || Array.isArray(f) && f.length > 0),
- w = null != v && Array.isArray(v) && (v.includes("regionByPx") || v.includes("regionByPct")) && (v.includes("sizeByWh") || v.includes("sizeByH") || v.includes("sizeByW") || v.includes("sizeByPct"));
- if (m.sort((function (t, e) {
- return e - t
- })), x || w) if (null != f && ("number" == typeof f && Number.isInteger(f) && f > 0 ? (l = f, u = f) : Array.isArray(f) && f.length > 0 && ((1 == f.length || null == f[1] && Number.isInteger(f[0])) && (l = f[0], u = f[0]), 2 == f.length && (Number.isInteger(f[0]) && Number.isInteger(f[1]) ? (l = f[0], u = f[1]) : null == f[0] && Number.isInteger(f[1]) && (l = f[1], u = f[1])))), void 0 !== l && void 0 !== u || (l = 256, u = 256), 0 == m.length) for (var S = c = Math.max(Math.ceil(Math.log(h / l) / Math.LN2), Math.ceil(Math.log(p / u) / Math.LN2)); S >= 0; S--) m.push(Math.pow(2, S)); else {
- var E = Math.max.apply(Math, m);
- c = Math.round(Math.log(E) / Math.LN2)
- } else if (l = h, u = p, m = [], b) {
- a.sort((function (t, e) {
- return t[0] - e[0]
- })), c = -1;
- var T = [];
- for (S = 0; S < a.length; S++) {
- var C = h / a[S][0];
- m.length > 0 && m[m.length - 1] == C ? T.push(S) : (m.push(C), c++)
- }
- if (T.length > 0) for (S = 0; S < T.length; S++) a.splice(T[S] - S, 1)
- } else m.push(1), a.push([h, p]), c = 0;
- var O = new ic({tileSize: [l, u], extent: _, origin: Ce(_), resolutions: m}),
- P = mf.bind(null, Is(f || 256).map((function (t) {
- return t * d
- })));
- return (r = t.call(this, {
- attributions: n.attributions,
- attributionsCollapsible: n.attributionsCollapsible,
- cacheSize: n.cacheSize,
- crossOrigin: n.crossOrigin,
- imageSmoothing: n.imageSmoothing,
- projection: n.projection,
- reprojectionErrorThreshold: n.reprojectionErrorThreshold,
- state: n.state,
- tileClass: P,
- tileGrid: O,
- tilePixelRatio: n.tilePixelRatio,
- tileUrlFunction: function (t, e, r) {
- var n, s, f = t[0];
- if (!(f > c)) {
- var d = t[1], _ = t[2], S = m[f];
- if (!(void 0 === d || void 0 === _ || void 0 === S || d < 0 || Math.ceil(h / S / l) <= d || _ < 0 || Math.ceil(p / S / u) <= _)) {
- if (w || x) {
- var E = d * l * S, T = _ * u * S, C = l * S, O = u * S, P = l, R = u;
- if (E + C > h && (C = h - E), T + O > p && (O = p - T), E + l * S > h && (P = Math.floor((h - E + S - 1) / S)), T + u * S > p && (R = Math.floor((p - T + S - 1) / S)), 0 == E && C == h && 0 == T && O == p) n = "full"; else if (!w || v.includes("regionByPx")) n = E + "," + T + "," + C + "," + O; else if (v.includes("regionByPct")) {
- n = "pct:" + If(E / h * 100) + "," + If(T / p * 100) + "," + If(C / h * 100) + "," + If(O / p * 100)
- }
- o != wf || w && !v.includes("sizeByWh") ? !w || v.includes("sizeByW") ? s = P + "," : v.includes("sizeByH") ? s = "," + R : v.includes("sizeByWh") ? s = P + "," + R : v.includes("sizeByPct") && (s = "pct:" + If(100 / S)) : s = P + "," + R
- } else if (n = "full", b) {
- var I = a[f][0], L = a[f][1];
- s = o == wf ? I == h && L == p ? "max" : I + "," + L : I == h ? "full" : I + ","
- } else s = o == wf ? "max" : "full";
- return i + n + "/" + s + "/0/" + y + "." + g
- }
- }
- },
- transition: n.transition
- }) || this).zDirection = n.zDirection, r
- }
-
- return Rf(e, t), e
- }(Xp), Mf = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Ff = function (t) {
- function e(e, r, n, i, o, a, s) {
- var l = this, u = e.getExtent(), c = r.getExtent(), h = c ? Te(n, c) : n, p = tc(e, r, xe(h), i),
- f = new Ip(e, r, h, u, .5 * p, i), d = a(f.calculateSourceExtent(), p, o), g = d ? Fi : Ni,
- y = d ? d.getPixelRatio() : 1;
- return (l = t.call(this, n, i, y, g) || this).targetProj_ = r, l.maxSourceExtent_ = u, l.triangulation_ = f, l.targetResolution_ = i, l.targetExtent_ = n, l.sourceImage_ = d, l.sourcePixelRatio_ = y, l.contextOptions_ = s, l.canvas_ = null, l.sourceListenerKey_ = null, l
- }
-
- return Mf(e, t), e.prototype.disposeInternal = function () {
- this.state == Ai && this.unlistenSource_(), t.prototype.disposeInternal.call(this)
- }, e.prototype.getImage = function () {
- return this.canvas_
- }, e.prototype.getProjection = function () {
- return this.targetProj_
- }, e.prototype.reproject_ = function () {
- var t = this.sourceImage_.getState();
- if (t == ki) {
- var e = Pe(this.targetExtent_) / this.targetResolution_, r = Ee(this.targetExtent_) / this.targetResolution_;
- this.canvas_ = rc(e, r, this.sourcePixelRatio_, this.sourceImage_.getResolution(), this.maxSourceExtent_, this.targetResolution_, this.targetExtent_, this.triangulation_, [{
- extent: this.sourceImage_.getExtent(),
- image: this.sourceImage_.getImage()
- }], 0, void 0, this.contextOptions_)
- }
- this.state = t, this.changed()
- }, e.prototype.load = function () {
- if (this.state == Fi) {
- this.state = Ai, this.changed();
- var t = this.sourceImage_.getState();
- t == ki || t == ji ? this.reproject_() : (this.sourceListenerKey_ = Z(this.sourceImage_, F, (function (t) {
- var e = this.sourceImage_.getState();
- e != ki && e != ji || (this.unlistenSource_(), this.reproject_())
- }), this), this.sourceImage_.load())
- }
- }, e.prototype.unlistenSource_ = function () {
- H(this.sourceListenerKey_), this.sourceListenerKey_ = null
- }, e
- }(Mi), Af = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), kf = "imageloadstart", jf = "imageloadend", Nf = "imageloaderror", Df = function (t) {
- function e(e, r) {
- var n = t.call(this, e) || this;
- return n.image = r, n
- }
-
- return Af(e, t), e
- }(c);
-
- function Gf(t, e) {
- t.getImage().src = e
- }
-
- var zf = function (t) {
- function e(e) {
- var r = t.call(this, {attributions: e.attributions, projection: e.projection, state: e.state}) || this;
- return r.resolutions_ = void 0 !== e.resolutions ? e.resolutions : null, r.reprojectedImage_ = null, r.reprojectedRevision_ = 0, r.contextOptions_ = !1 === e.imageSmoothing ? $u : void 0, r
- }
-
- return Af(e, t), e.prototype.getResolutions = function () {
- return this.resolutions_
- }, e.prototype.getContextOptions = function () {
- return this.contextOptions_
- }, e.prototype.findNearestResolution = function (t) {
- if (this.resolutions_) {
- var e = y(this.resolutions_, t, 0);
- t = this.resolutions_[e]
- }
- return t
- }, e.prototype.getImage = function (t, e, r, n) {
- var i = this.getProjection();
- if (i && n && !Xr(i, n)) {
- if (this.reprojectedImage_) {
- if (this.reprojectedRevision_ == this.getRevision() && Xr(this.reprojectedImage_.getProjection(), n) && this.reprojectedImage_.getResolution() == e && ue(this.reprojectedImage_.getExtent(), t)) return this.reprojectedImage_;
- this.reprojectedImage_.dispose(), this.reprojectedImage_ = null
- }
- return this.reprojectedImage_ = new Ff(i, n, t, e, r, function (t, e, r) {
- return this.getImageInternal(t, e, r, i)
- }.bind(this), this.contextOptions_), this.reprojectedRevision_ = this.getRevision(), this.reprojectedImage_
- }
- return i && (n = i), this.getImageInternal(t, e, r, n)
- }, e.prototype.getImageInternal = function (t, e, r, i) {
- return n()
- }, e.prototype.handleImageChange = function (t) {
- var e = t.target;
- switch (e.getState()) {
- case Ai:
- this.loading = !0, this.dispatchEvent(new Df(kf, e));
- break;
- case ki:
- this.loading = !1, this.dispatchEvent(new Df(jf, e));
- break;
- case ji:
- this.loading = !1, this.dispatchEvent(new Df(Nf, e))
- }
- }, e
- }(Dp), Uf = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Bf = function (t) {
- function e(e) {
- var r = this, n = e || {};
- return (r = t.call(this, {
- attributions: n.attributions,
- imageSmoothing: n.imageSmoothing,
- projection: n.projection,
- resolutions: n.resolutions
- }) || this).crossOrigin_ = void 0 !== n.crossOrigin ? n.crossOrigin : null, r.hidpi_ = void 0 === n.hidpi || n.hidpi, r.url_ = n.url, r.imageLoadFunction_ = void 0 !== n.imageLoadFunction ? n.imageLoadFunction : Gf, r.params_ = n.params || {}, r.image_ = null, r.imageSize_ = [0, 0], r.renderedRevision_ = 0, r.ratio_ = void 0 !== n.ratio ? n.ratio : 1.5, r
- }
-
- return Uf(e, t), e.prototype.getParams = function () {
- return this.params_
- }, e.prototype.getImageInternal = function (t, e, r, n) {
- if (void 0 === this.url_) return null;
- e = this.findNearestResolution(e), r = this.hidpi_ ? r : 1;
- var i = this.image_;
- if (i && this.renderedRevision_ == this.getRevision() && i.getResolution() == e && i.getPixelRatio() == r && te(i.getExtent(), t)) return i;
- var o = {F: "image", FORMAT: "PNG32", TRANSPARENT: !0};
- O(o, this.params_);
- var a = ((t = t.slice())[0] + t[2]) / 2, s = (t[1] + t[3]) / 2;
- if (1 != this.ratio_) {
- var l = this.ratio_ * Pe(t) / 2, u = this.ratio_ * Ee(t) / 2;
- t[0] = a - l, t[1] = s - u, t[2] = a + l, t[3] = s + u
- }
- var c = e / r, h = Math.ceil(Pe(t) / c), p = Math.ceil(Ee(t) / c);
- t[0] = a - c * h / 2, t[2] = a + c * h / 2, t[1] = s - c * p / 2, t[3] = s + c * p / 2, this.imageSize_[0] = h, this.imageSize_[1] = p;
- var f = this.getRequestUrl_(t, this.imageSize_, r, n, o);
- return this.image_ = new Ki(t, e, r, f, this.crossOrigin_, this.imageLoadFunction_), this.renderedRevision_ = this.getRevision(), this.image_.addEventListener(F, this.handleImageChange.bind(this)), this.image_
- }, e.prototype.getImageLoadFunction = function () {
- return this.imageLoadFunction_
- }, e.prototype.getRequestUrl_ = function (t, e, r, n, i) {
- var o = n.getCode().split(":").pop();
- i.SIZE = e[0] + "," + e[1], i.BBOX = t.join(","), i.BBOXSR = o, i.IMAGESR = o, i.DPI = Math.round(90 * r);
- var a = this.url_,
- s = a.replace(/MapServer\/?$/, "MapServer/export").replace(/ImageServer\/?$/, "ImageServer/exportImage");
- return s == a && pt(!1, 50), mc(s, i)
- }, e.prototype.getUrl = function () {
- return this.url_
- }, e.prototype.setImageLoadFunction = function (t) {
- this.image_ = null, this.imageLoadFunction_ = t, this.changed()
- }, e.prototype.setUrl = function (t) {
- t != this.url_ && (this.url_ = t, this.image_ = null, this.changed())
- }, e.prototype.updateParams = function (t) {
- O(this.params_, t), this.image_ = null, this.changed()
- }, e
- }(zf), Vf = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Yf = function (t) {
- function e(e) {
- var r = this, n = e || {};
- return (r = t.call(this, {
- attributions: n.attributions,
- imageSmoothing: n.imageSmoothing,
- projection: n.projection,
- resolutions: n.resolutions,
- state: n.state
- }) || this).canvasFunction_ = n.canvasFunction, r.canvas_ = null, r.renderedRevision_ = 0, r.ratio_ = void 0 !== n.ratio ? n.ratio : 1.5, r
- }
-
- return Vf(e, t), e.prototype.getImageInternal = function (t, e, r, n) {
- e = this.findNearestResolution(e);
- var i = this.canvas_;
- if (i && this.renderedRevision_ == this.getRevision() && i.getResolution() == e && i.getPixelRatio() == r && te(i.getExtent(), t)) return i;
- Me(t = t.slice(), this.ratio_);
- var o = [Pe(t) / e * r, Ee(t) / e * r], a = this.canvasFunction_.call(this, t, e, r, o, n);
- return a && (i = new $i(t, e, r, a)), this.canvas_ = i, this.renderedRevision_ = this.getRevision(), i
- }, e
- }(zf), Wf = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }();
- var qf = function (t) {
- function e(e) {
- var r = t.call(this, {
- imageSmoothing: e.imageSmoothing,
- projection: e.projection,
- resolutions: e.resolutions
- }) || this;
- return r.crossOrigin_ = void 0 !== e.crossOrigin ? e.crossOrigin : null, r.displayDpi_ = void 0 !== e.displayDpi ? e.displayDpi : 96, r.params_ = e.params || {}, r.url_ = e.url, r.imageLoadFunction_ = void 0 !== e.imageLoadFunction ? e.imageLoadFunction : Gf, r.hidpi_ = void 0 === e.hidpi || e.hidpi, r.metersPerUnit_ = void 0 !== e.metersPerUnit ? e.metersPerUnit : 1, r.ratio_ = void 0 !== e.ratio ? e.ratio : 1, r.useOverlay_ = void 0 !== e.useOverlay && e.useOverlay, r.image_ = null, r.renderedRevision_ = 0, r
- }
-
- return Wf(e, t), e.prototype.getParams = function () {
- return this.params_
- }, e.prototype.getImageInternal = function (t, e, r, n) {
- e = this.findNearestResolution(e), r = this.hidpi_ ? r : 1;
- var i = this.image_;
- if (i && this.renderedRevision_ == this.getRevision() && i.getResolution() == e && i.getPixelRatio() == r && te(i.getExtent(), t)) return i;
- 1 != this.ratio_ && Me(t = t.slice(), this.ratio_);
- var o = [Pe(t) / e * r, Ee(t) / e * r];
- if (void 0 !== this.url_) {
- var a = this.getUrl(this.url_, this.params_, t, o, n);
- (i = new Ki(t, e, r, a, this.crossOrigin_, this.imageLoadFunction_)).addEventListener(F, this.handleImageChange.bind(this))
- } else i = null;
- return this.image_ = i, this.renderedRevision_ = this.getRevision(), i
- }, e.prototype.getImageLoadFunction = function () {
- return this.imageLoadFunction_
- }, e.prototype.updateParams = function (t) {
- O(this.params_, t), this.changed()
- }, e.prototype.getUrl = function (t, e, r, n, i) {
- var o = function (t, e, r, n) {
- var i = Pe(t), o = Ee(t), a = e[0], s = e[1], l = .0254 / n;
- return s * i > a * o ? i * r / (a * l) : o * r / (s * l)
- }(r, n, this.metersPerUnit_, this.displayDpi_), a = xe(r), s = {
- OPERATION: this.useOverlay_ ? "GETDYNAMICMAPOVERLAYIMAGE" : "GETMAPIMAGE",
- VERSION: "2.0.0",
- LOCALE: "en",
- CLIENTAGENT: "ol/source/ImageMapGuide source",
- CLIP: "1",
- SETDISPLAYDPI: this.displayDpi_,
- SETDISPLAYWIDTH: Math.round(n[0]),
- SETDISPLAYHEIGHT: Math.round(n[1]),
- SETVIEWSCALE: o,
- SETVIEWCENTERX: a[0],
- SETVIEWCENTERY: a[1]
- };
- return O(s, e), mc(t, s)
- }, e.prototype.setImageLoadFunction = function (t) {
- this.image_ = null, this.imageLoadFunction_ = t, this.changed()
- }, e
- }(zf), Xf = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Zf = function (t) {
- function e(e) {
- var r = this, n = void 0 !== e.crossOrigin ? e.crossOrigin : null,
- i = void 0 !== e.imageLoadFunction ? e.imageLoadFunction : Gf;
- return (r = t.call(this, {
- attributions: e.attributions,
- imageSmoothing: e.imageSmoothing,
- projection: Gr(e.projection)
- }) || this).url_ = e.url, r.imageExtent_ = e.imageExtent, r.image_ = new Ki(r.imageExtent_, void 0, 1, r.url_, n, i), r.imageSize_ = e.imageSize ? e.imageSize : null, r.image_.addEventListener(F, r.handleImageChange.bind(r)), r
- }
-
- return Xf(e, t), e.prototype.getImageExtent = function () {
- return this.imageExtent_
- }, e.prototype.getImageInternal = function (t, e, r, n) {
- return Re(t, this.image_.getExtent()) ? this.image_ : null
- }, e.prototype.getUrl = function () {
- return this.url_
- }, e.prototype.handleImageChange = function (e) {
- if (this.image_.getState() == ki) {
- var r = this.image_.getExtent(), n = this.image_.getImage(), i = void 0, o = void 0;
- this.imageSize_ ? (i = this.imageSize_[0], o = this.imageSize_[1]) : (i = n.width, o = n.height);
- var a = Ee(r) / o, s = Math.ceil(Pe(r) / a);
- if (s != i) {
- var l = uo(s, o);
- O(l, this.getContextOptions());
- var u = l.canvas;
- l.drawImage(n, 0, 0, i, o, 0, 0, u.width, u.height), this.image_.setImage(u)
- }
- }
- t.prototype.handleImageChange.call(this, e)
- }, e
- }(zf), Kf = "carmentaserver", Hf = "geoserver", $f = "mapserver", Jf = "qgis", Qf = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), td = [101, 101], ed = function (t) {
- function e(e) {
- var r = this, n = e || {};
- return (r = t.call(this, {
- attributions: n.attributions,
- imageSmoothing: n.imageSmoothing,
- projection: n.projection,
- resolutions: n.resolutions
- }) || this).crossOrigin_ = void 0 !== n.crossOrigin ? n.crossOrigin : null, r.url_ = n.url, r.imageLoadFunction_ = void 0 !== n.imageLoadFunction ? n.imageLoadFunction : Gf, r.params_ = n.params || {}, r.v13_ = !0, r.updateV13_(), r.serverType_ = n.serverType, r.hidpi_ = void 0 === n.hidpi || n.hidpi, r.image_ = null, r.imageSize_ = [0, 0], r.renderedRevision_ = 0, r.ratio_ = void 0 !== n.ratio ? n.ratio : 1.5, r
- }
-
- return Qf(e, t), e.prototype.getFeatureInfoUrl = function (t, e, r, n) {
- if (void 0 !== this.url_) {
- var i = Gr(r), o = this.getProjection();
- o && o !== i && (e = tc(o, i, t, e), t = Hr(t, i, o));
- var a = Se(t, e, 0, td), s = {
- SERVICE: "WMS",
- VERSION: "1.3.0",
- REQUEST: "GetFeatureInfo",
- FORMAT: "image/png",
- TRANSPARENT: !0,
- QUERY_LAYERS: this.params_.LAYERS
- };
- O(s, this.params_, n);
- var l = Math.floor((t[0] - a[0]) / e), u = Math.floor((a[3] - t[1]) / e);
- return s[this.v13_ ? "I" : "X"] = l, s[this.v13_ ? "J" : "Y"] = u, this.getRequestUrl_(a, td, 1, o || i, s)
- }
- }, e.prototype.getLegendUrl = function (t, e) {
- if (void 0 !== this.url_) {
- var r = {SERVICE: "WMS", VERSION: "1.3.0", REQUEST: "GetLegendGraphic", FORMAT: "image/png"};
- if (void 0 === e || void 0 === e.LAYER) {
- var n = this.params_.LAYERS;
- if (!(!Array.isArray(n) || 1 === n.length)) return;
- r.LAYER = n
- }
- if (void 0 !== t) {
- var i = this.getProjection() ? this.getProjection().getMetersPerUnit() : 1;
- r.SCALE = t * i / 28e-5
- }
- return O(r, e), mc(this.url_, r)
- }
- }, e.prototype.getParams = function () {
- return this.params_
- }, e.prototype.getImageInternal = function (t, e, r, n) {
- if (void 0 === this.url_) return null;
- e = this.findNearestResolution(e), 1 == r || this.hidpi_ && void 0 !== this.serverType_ || (r = 1);
- var i = e / r, o = xe(t), a = Se(o, i, 0, [Math.ceil(Pe(t) / i), Math.ceil(Ee(t) / i)]),
- s = Se(o, i, 0, [Math.ceil(this.ratio_ * Pe(t) / i), Math.ceil(this.ratio_ * Ee(t) / i)]), l = this.image_;
- if (l && this.renderedRevision_ == this.getRevision() && l.getResolution() == e && l.getPixelRatio() == r && te(l.getExtent(), a)) return l;
- var u = {SERVICE: "WMS", VERSION: "1.3.0", REQUEST: "GetMap", FORMAT: "image/png", TRANSPARENT: !0};
- O(u, this.params_), this.imageSize_[0] = Math.round(Pe(s) / i), this.imageSize_[1] = Math.round(Ee(s) / i);
- var c = this.getRequestUrl_(s, this.imageSize_, r, n, u);
- return this.image_ = new Ki(s, e, r, c, this.crossOrigin_, this.imageLoadFunction_), this.renderedRevision_ = this.getRevision(), this.image_.addEventListener(F, this.handleImageChange.bind(this)), this.image_
- }, e.prototype.getImageLoadFunction = function () {
- return this.imageLoadFunction_
- }, e.prototype.getRequestUrl_ = function (t, e, r, n, i) {
- if (pt(void 0 !== this.url_, 9), i[this.v13_ ? "CRS" : "SRS"] = n.getCode(), "STYLES" in this.params_ || (i.STYLES = ""), 1 != r) switch (this.serverType_) {
- case Hf:
- var o = 90 * r + .5 | 0;
- "FORMAT_OPTIONS" in i ? i.FORMAT_OPTIONS += ";dpi:" + o : i.FORMAT_OPTIONS = "dpi:" + o;
- break;
- case $f:
- i.MAP_RESOLUTION = 90 * r;
- break;
- case Kf:
- case Jf:
- i.DPI = 90 * r;
- break;
- default:
- pt(!1, 8)
- }
- i.WIDTH = e[0], i.HEIGHT = e[1];
- var a, s = n.getAxisOrientation();
- return a = this.v13_ && "ne" == s.substr(0, 2) ? [t[1], t[0], t[3], t[2]] : t, i.BBOX = a.join(","), mc(this.url_, i)
- }, e.prototype.getUrl = function () {
- return this.url_
- }, e.prototype.setImageLoadFunction = function (t) {
- this.image_ = null, this.imageLoadFunction_ = t, this.changed()
- }, e.prototype.setUrl = function (t) {
- t != this.url_ && (this.url_ = t, this.image_ = null, this.changed())
- }, e.prototype.updateParams = function (t) {
- O(this.params_, t), this.updateV13_(), this.image_ = null, this.changed()
- }, e.prototype.updateV13_ = function () {
- var t = this.params_.VERSION || "1.3.0";
- this.v13_ = br(t, "1.3") >= 0
- }, e
- }(zf), rd = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(),
- nd = '© <a href="https://www.openstreetmap.org/copyright" target="_blank">OpenStreetMap</a> contributors.',
- id = function (t) {
- function e(e) {
- var r, n = e || {};
- r = void 0 !== n.attributions ? n.attributions : [nd];
- var i = void 0 !== n.crossOrigin ? n.crossOrigin : "anonymous",
- o = void 0 !== n.url ? n.url : "https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png";
- return t.call(this, {
- attributions: r,
- attributionsCollapsible: !1,
- cacheSize: n.cacheSize,
- crossOrigin: i,
- imageSmoothing: n.imageSmoothing,
- maxZoom: void 0 !== n.maxZoom ? n.maxZoom : 19,
- opaque: void 0 === n.opaque || n.opaque,
- reprojectionErrorThreshold: n.reprojectionErrorThreshold,
- tileLoadFunction: n.tileLoadFunction,
- transition: n.transition,
- url: o,
- wrapX: n.wrapX
- }) || this
- }
-
- return rd(e, t), e
- }(Jp), od = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), ad = function (t) {
- function e(e) {
- var r = e || {};
- return t.call(this, r) || this
- }
-
- return od(e, t), e
- }(na), sd = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), ld = function (t) {
- function e(e) {
- var r = t.call(this) || this;
- return r.boundHandleImageChange_ = r.handleImageChange_.bind(r), r.layer_ = e, r.declutterExecutorGroup = null, r
- }
-
- return sd(e, t), e.prototype.getFeatures = function (t) {
- return n()
- }, e.prototype.prepareFrame = function (t) {
- return n()
- }, e.prototype.renderFrame = function (t, e) {
- return n()
- }, e.prototype.loadedTileCallback = function (t, e, r) {
- t[e] || (t[e] = {}), t[e][r.tileCoord.toString()] = r
- }, e.prototype.createLoadedTileFinder = function (t, e, r) {
- return function (n, i) {
- var o = this.loadedTileCallback.bind(this, r, n);
- return t.forEachLoadedTile(e, n, i, o)
- }.bind(this)
- }, e.prototype.forEachFeatureAtCoordinate = function (t, e, r, n, i) {
- }, e.prototype.getDataAtPixel = function (t, e, r) {
- return n()
- }, e.prototype.getLayer = function () {
- return this.layer_
- }, e.prototype.handleFontsChanged = function () {
- }, e.prototype.handleImageChange_ = function (t) {
- t.target.getState() === ki && this.renderIfReadyAndVisible()
- }, e.prototype.loadImage = function (t) {
- var e = t.getState();
- return e != ki && e != ji && t.addEventListener(F, this.boundHandleImageChange_), e == Fi && (t.load(), e = t.getState()), e == ki
- }, e.prototype.renderIfReadyAndVisible = function () {
- var t = this.getLayer();
- t.getVisible() && t.getSourceState() == Qo && t.changed()
- }, e
- }(Q), ud = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), cd = function (t) {
- function e(e) {
- var r = t.call(this, e) || this;
- return r.container = null, r.renderedResolution, r.tempTransform = [1, 0, 0, 1, 0, 0], r.pixelTransform = [1, 0, 0, 1, 0, 0], r.inversePixelTransform = [1, 0, 0, 1, 0, 0], r.context = null, r.containerReused = !1, r
- }
-
- return ud(e, t), e.prototype.useContainer = function (t, e, r) {
- var n, i, o = this.getLayer().getClassName();
- t && "" === t.style.opacity && t.className === o && ((s = t.firstElementChild) instanceof HTMLCanvasElement && (i = s.getContext("2d")));
- if (!i || 0 !== i.canvas.width && i.canvas.style.transform !== e ? this.containerReused && (this.container = null, this.context = null, this.containerReused = !1) : (this.container = t, this.context = i, this.containerReused = !0), !this.container) {
- (n = document.createElement("div")).className = o;
- var a = n.style;
- a.position = "absolute", a.width = "100%", a.height = "100%";
- var s = (i = uo()).canvas;
- n.appendChild(s), (a = s.style).position = "absolute", a.left = "0", a.transformOrigin = "top left", this.container = n, this.context = i
- }
- }, e.prototype.clip = function (t, e, r) {
- var n = e.pixelRatio, i = e.size[0] * n / 2, o = e.size[1] * n / 2, a = e.viewState.rotation, s = Ce(r),
- l = Oe(r), u = be(r), c = _e(r);
- It(e.coordinateToPixelTransform, s), It(e.coordinateToPixelTransform, l), It(e.coordinateToPixelTransform, u), It(e.coordinateToPixelTransform, c), t.save(), Ca(t, -a, i, o), t.beginPath(), t.moveTo(s[0] * n, s[1] * n), t.lineTo(l[0] * n, l[1] * n), t.lineTo(u[0] * n, u[1] * n), t.lineTo(c[0] * n, c[1] * n), t.clip(), Ca(t, a, i, o)
- }, e.prototype.clipUnrotated = function (t, e, r) {
- var n = Ce(r), i = Oe(r), o = be(r), a = _e(r);
- It(e.coordinateToPixelTransform, n), It(e.coordinateToPixelTransform, i), It(e.coordinateToPixelTransform, o), It(e.coordinateToPixelTransform, a);
- var s = this.inversePixelTransform;
- It(s, n), It(s, i), It(s, o), It(s, a), t.save(), t.beginPath(), t.moveTo(Math.round(n[0]), Math.round(n[1])), t.lineTo(Math.round(i[0]), Math.round(i[1])), t.lineTo(Math.round(o[0]), Math.round(o[1])), t.lineTo(Math.round(a[0]), Math.round(a[1])), t.clip()
- }, e.prototype.dispatchRenderEvent_ = function (t, e, r) {
- var n = this.getLayer();
- if (n.hasListener(t)) {
- var i = new la(t, this.inversePixelTransform, r, e);
- n.dispatchEvent(i)
- }
- }, e.prototype.preRender = function (t, e) {
- this.dispatchRenderEvent_(qo, t, e)
- }, e.prototype.postRender = function (t, e) {
- this.dispatchRenderEvent_(Xo, t, e)
- }, e.prototype.getRenderTransform = function (t, e, r, n, i, o, a) {
- var s = i / 2, l = o / 2, u = n / e, c = -u, h = -t[0] + a, p = -t[1];
- return kt(this.tempTransform, s, l, u, c, -r, h, p)
- }, e.prototype.getDataAtPixel = function (t, e, r) {
- var n, i = It(this.inversePixelTransform, t.slice()), o = this.context, a = this.getLayer().getExtent();
- if (a && !Qt(a, It(e.pixelToCoordinateTransform, t.slice()))) return null;
- try {
- var s = Math.round(i[0]), l = Math.round(i[1]), u = document.createElement("canvas"), c = u.getContext("2d");
- u.width = 1, u.height = 1, c.clearRect(0, 0, 1, 1), c.drawImage(o.canvas, s, l, 1, 1, 0, 0, 1, 1), n = c.getImageData(0, 0, 1, 1).data
- } catch (t) {
- return "SecurityError" === t.name ? new Uint8Array : n
- }
- return 0 === n[3] ? null : n
- }, e
- }(ld), hd = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), pd = function (t) {
- function e(e) {
- var r = t.call(this, e) || this;
- return r.image_ = null, r
- }
-
- return hd(e, t), e.prototype.getImage = function () {
- return this.image_ ? this.image_.getImage() : null
- }, e.prototype.prepareFrame = function (t) {
- var e = t.layerStatesArray[t.layerIndex], r = t.pixelRatio, n = t.viewState, i = n.resolution,
- o = this.getLayer().getSource(), a = t.viewHints, s = t.extent;
- if (void 0 !== e.extent && (s = Te(s, on(e.extent, n.projection))), !a[ns] && !a[is] && !Ie(s)) if (o) {
- var l = n.projection, u = o.getImage(s, i, r, l);
- u && this.loadImage(u) && (this.image_ = u)
- } else this.image_ = null;
- return !!this.image_
- }, e.prototype.renderFrame = function (t, e) {
- var r = this.image_, n = r.getExtent(), i = r.getResolution(), o = r.getPixelRatio(),
- a = t.layerStatesArray[t.layerIndex], s = t.pixelRatio, l = t.viewState, u = l.center, c = l.resolution,
- h = t.size, p = s * i / (c * o), f = Math.round(h[0] * s), d = Math.round(h[1] * s), g = l.rotation;
- if (g) {
- var y = Math.round(Math.sqrt(f * f + d * d));
- f = y, d = y
- }
- kt(this.pixelTransform, t.size[0] / 2, t.size[1] / 2, 1 / s, 1 / s, g, -f / 2, -d / 2), jt(this.inversePixelTransform, this.pixelTransform);
- var m = Ra(this.pixelTransform);
- this.useContainer(e, m, a.opacity);
- var v = this.context, _ = v.canvas;
- _.width != f || _.height != d ? (_.width = f, _.height = d) : this.containerReused || v.clearRect(0, 0, f, d);
- var b = !1;
- if (a.extent) {
- var x = on(a.extent, l.projection);
- (b = !te(x, t.extent) && Re(x, t.extent)) && this.clipUnrotated(v, t, x)
- }
- var w = r.getImage(),
- S = kt(this.tempTransform, f / 2, d / 2, p, p, 0, o * (n[0] - u[0]) / i, o * (u[1] - n[3]) / i);
- this.renderedResolution = i * s / o;
- var E = S[4], T = S[5], C = w.width * S[0], P = w.height * S[3];
- if (O(v, this.getLayer().getSource().getContextOptions()), this.preRender(v, t), C >= .5 && P >= .5) {
- var R = a.opacity, I = void 0;
- 1 !== R && (I = this.context.globalAlpha, this.context.globalAlpha = R), this.context.drawImage(w, 0, 0, +w.width, +w.height, Math.round(E), Math.round(T), Math.round(C), Math.round(P)), 1 !== R && (this.context.globalAlpha = I)
- }
- return this.postRender(v, t), b && v.restore(), m !== _.style.transform && (_.style.transform = m), this.container
- }, e
- }(cd), fd = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), dd = function (t) {
- function e(e) {
- return t.call(this, e) || this
- }
-
- return fd(e, t), e.prototype.createRenderer = function () {
- return new pd(this)
- }, e
- }(ad), gd = "preload", yd = "useInterimTilesOnError", md = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), vd = function (t) {
- function e(e) {
- var r = this, n = e || {}, i = O({}, n);
- return delete i.preload, delete i.useInterimTilesOnError, (r = t.call(this, i) || this).setPreload(void 0 !== n.preload ? n.preload : 0), r.setUseInterimTilesOnError(void 0 === n.useInterimTilesOnError || n.useInterimTilesOnError), r
- }
-
- return md(e, t), e.prototype.getPreload = function () {
- return this.get(gd)
- }, e.prototype.setPreload = function (t) {
- this.set(gd, t)
- }, e.prototype.getUseInterimTilesOnError = function () {
- return this.get(yd)
- }, e.prototype.setUseInterimTilesOnError = function (t) {
- this.set(yd, t)
- }, e
- }(na), _d = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), bd = function (t) {
- function e(e) {
- var r = t.call(this, e) || this;
- return r.extentChanged = !0, r.renderedExtent_ = null, r.renderedPixelRatio, r.renderedProjection = null, r.renderedRevision, r.renderedTiles = [], r.newTiles_ = !1, r.tmpExtent = [1 / 0, 1 / 0, -1 / 0, -1 / 0], r.tmpTileRange_ = new _u(0, 0, 0, 0), r
- }
-
- return _d(e, t), e.prototype.isDrawableTile = function (t) {
- var e = this.getLayer(), r = t.getState(), n = e.getUseInterimTilesOnError();
- return r == to || r == ro || r == eo && !n
- }, e.prototype.getTile = function (t, e, r, n) {
- var i = n.pixelRatio, o = n.viewState.projection, a = this.getLayer(), s = a.getSource().getTile(t, e, r, i, o);
- return s.getState() == eo && (a.getUseInterimTilesOnError() ? a.getPreload() > 0 && (this.newTiles_ = !0) : s.setState(to)), this.isDrawableTile(s) || (s = s.getInterimTile()), s
- }, e.prototype.loadedTileCallback = function (e, r, n) {
- return !!this.isDrawableTile(n) && t.prototype.loadedTileCallback.call(this, e, r, n)
- }, e.prototype.prepareFrame = function (t) {
- return !!this.getLayer().getSource()
- }, e.prototype.renderFrame = function (t, e) {
- var r = t.layerStatesArray[t.layerIndex], n = t.viewState, i = n.projection, a = n.resolution, s = n.center,
- l = n.rotation, u = t.pixelRatio, c = this.getLayer(), h = c.getSource(), p = h.getRevision(),
- f = h.getTileGridForProjection(i), g = f.getZForResolution(a, h.zDirection), y = f.getResolution(g),
- m = t.extent, v = r.extent && on(r.extent, i);
- v && (m = Te(m, on(r.extent, i)));
- var _ = h.getTilePixelRatio(u), b = Math.round(t.size[0] * _), x = Math.round(t.size[1] * _);
- if (l) {
- var w = Math.round(Math.sqrt(b * b + x * x));
- b = w, x = w
- }
- var S = y * b / 2 / _, E = y * x / 2 / _, T = [s[0] - S, s[1] - E, s[0] + S, s[1] + E],
- C = f.getTileRangeForExtentAndZ(m, g), P = {};
- P[g] = {};
- var R = this.createLoadedTileFinder(h, i, P), I = this.tmpExtent, L = this.tmpTileRange_;
- this.newTiles_ = !1;
- for (var M = C.minX; M <= C.maxX; ++M) for (var F = C.minY; F <= C.maxY; ++F) {
- var A = this.getTile(g, M, F, t);
- if (this.isDrawableTile(A)) {
- var k = o(this);
- if (A.getState() == to) {
- P[g][A.tileCoord.toString()] = A;
- var j = A.inTransition(k);
- this.newTiles_ || !j && -1 !== this.renderedTiles.indexOf(A) || (this.newTiles_ = !0)
- }
- if (1 === A.getAlpha(k, t.time)) continue
- }
- var N = f.getTileCoordChildTileRange(A.tileCoord, L, I), D = !1;
- N && (D = R(g + 1, N)), D || f.forEachTileCoordParentTileRange(A.tileCoord, R, L, I)
- }
- var G = y / a;
- kt(this.pixelTransform, t.size[0] / 2, t.size[1] / 2, 1 / _, 1 / _, l, -b / 2, -x / 2);
- var z = Ra(this.pixelTransform);
- this.useContainer(e, z, r.opacity);
- var U = this.context, B = U.canvas;
- jt(this.inversePixelTransform, this.pixelTransform), kt(this.tempTransform, b / 2, x / 2, G, G, 0, -b / 2, -x / 2), B.width != b || B.height != x ? (B.width = b, B.height = x) : this.containerReused || U.clearRect(0, 0, b, x), v && this.clipUnrotated(U, t, v), O(U, h.getContextOptions()), this.preRender(U, t), this.renderedTiles.length = 0;
- var V, Y, W, q = Object.keys(P).map(Number);
- q.sort(d), 1 !== r.opacity || this.containerReused && !h.getOpaque(t.viewState.projection) ? (V = [], Y = []) : q = q.reverse();
- for (var X = q.length - 1; X >= 0; --X) {
- var Z = q[X], K = h.getTilePixelSize(Z, u, i), H = f.getResolution(Z) / y, $ = K[0] * H * G, J = K[1] * H * G,
- Q = f.getTileCoordForCoordAndZ(Ce(T), Z), tt = f.getTileCoordExtent(Q),
- et = It(this.tempTransform, [_ * (tt[0] - T[0]) / y, _ * (T[3] - tt[3]) / y]),
- rt = _ * h.getGutterForProjection(i), nt = P[Z];
- for (var it in nt) {
- var ot = (A = nt[it]).tileCoord, at = et[0] - (Q[1] - ot[1]) * $, st = Math.round(at + $),
- lt = et[1] - (Q[2] - ot[2]) * J, ut = Math.round(lt + J), ct = st - (M = Math.round(at)),
- ht = ut - (F = Math.round(lt)), pt = g === Z;
- if (!(j = pt && 1 !== A.getAlpha(o(this), t.time))) if (V) {
- U.save(), W = [M, F, M + ct, F, M + ct, F + ht, M, F + ht];
- for (var ft = 0, dt = V.length; ft < dt; ++ft) if (g !== Z && Z < Y[ft]) {
- var gt = V[ft];
- U.beginPath(), U.moveTo(W[0], W[1]), U.lineTo(W[2], W[3]), U.lineTo(W[4], W[5]), U.lineTo(W[6], W[7]), U.moveTo(gt[6], gt[7]), U.lineTo(gt[4], gt[5]), U.lineTo(gt[2], gt[3]), U.lineTo(gt[0], gt[1]), U.clip()
- }
- V.push(W), Y.push(Z)
- } else U.clearRect(M, F, ct, ht);
- this.drawTileImage(A, t, M, F, ct, ht, rt, pt, r.opacity), V && !j && U.restore(), this.renderedTiles.push(A), this.updateUsedTiles(t.usedTiles, h, A)
- }
- }
- return this.renderedRevision = p, this.renderedResolution = y, this.extentChanged = !this.renderedExtent_ || !ue(this.renderedExtent_, T), this.renderedExtent_ = T, this.renderedPixelRatio = u, this.renderedProjection = i, this.manageTilePyramid(t, h, f, u, i, m, g, c.getPreload()), this.scheduleExpireCache(t, h), this.postRender(U, t), r.extent && U.restore(), z !== B.style.transform && (B.style.transform = z), this.container
- }, e.prototype.drawTileImage = function (t, e, r, n, i, a, s, l, u) {
- var c = this.getTileImage(t);
- if (c) {
- var h = o(this), p = l ? t.getAlpha(h, e.time) : 1, f = u * p, d = f !== this.context.globalAlpha;
- d && (this.context.save(), this.context.globalAlpha = f), this.context.drawImage(c, s, s, c.width - 2 * s, c.height - 2 * s, r, n, i, a), d && this.context.restore(), 1 !== p ? e.animate = !0 : l && t.endTransition(h)
- }
- }, e.prototype.getImage = function () {
- var t = this.context;
- return t ? t.canvas : null
- }, e.prototype.getTileImage = function (t) {
- return t.getImage()
- }, e.prototype.scheduleExpireCache = function (t, e) {
- if (e.canExpireCache()) {
- var r = function (t, e, r) {
- var n = o(t);
- n in r.usedTiles && t.expireCache(r.viewState.projection, r.usedTiles[n])
- }.bind(null, e);
- t.postRenderFunctions.push(r)
- }
- }, e.prototype.updateUsedTiles = function (t, e, r) {
- var n = o(e);
- n in t || (t[n] = {}), t[n][r.getKey()] = !0
- }, e.prototype.manageTilePyramid = function (t, e, r, n, i, a, s, l, u) {
- var c = o(e);
- c in t.wantedTiles || (t.wantedTiles[c] = {});
- var h, p, f, d, g, y, m = t.wantedTiles[c], v = t.tileQueue, _ = 0;
- for (y = r.getMinZoom(); y <= s; ++y) for (p = r.getTileRangeForExtentAndZ(a, y, p), f = r.getResolution(y), d = p.minX; d <= p.maxX; ++d) for (g = p.minY; g <= p.maxY; ++g) s - y <= l ? (++_, (h = e.getTile(y, d, g, n, i)).getState() == Ji && (m[h.getKey()] = !0, v.isKeyQueued(h.getKey()) || v.enqueue([h, c, r.getTileCoordCenter(h.tileCoord), f])), void 0 !== u && u(h)) : e.useTile(y, d, g, i);
- e.updateCacheSize(_, i)
- }, e
- }(cd);
- bd.prototype.getLayer;
- var xd = bd, wd = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Sd = function (t) {
- function e(e) {
- return t.call(this, e) || this
- }
-
- return wd(e, t), e.prototype.createRenderer = function () {
- return new xd(this)
- }, e
- }(vd), Ed = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Td = !0;
- try {
- new ImageData(10, 10)
- } catch (t) {
- Td = !1
- }
- var Cd = document.createElement("canvas").getContext("2d");
-
- function Od(t, e, r) {
- if (Td) return new ImageData(t, e, r);
- var n = Cd.createImageData(e, r);
- return n.data.set(t), n
- }
-
- function Pd(t) {
- var e = !0;
- try {
- new ImageData(10, 10)
- } catch (t) {
- e = !1
- }
-
- function r(t, r, n) {
- return e ? new ImageData(t, r, n) : {data: t, width: r, height: n}
- }
-
- return function (e) {
- var n, i, o = e.buffers, a = e.meta, s = e.imageOps, l = e.width, u = e.height, c = o.length,
- h = o[0].byteLength;
- if (s) {
- var p = new Array(c);
- for (i = 0; i < c; ++i) p[i] = r(new Uint8ClampedArray(o[i]), l, u);
- n = t(p, a).data
- } else {
- n = new Uint8ClampedArray(h);
- var f = new Array(c), d = new Array(c);
- for (i = 0; i < c; ++i) f[i] = new Uint8ClampedArray(o[i]), d[i] = [0, 0, 0, 0];
- for (var g = 0; g < h; g += 4) {
- for (var y = 0; y < c; ++y) {
- var m = f[y];
- d[y][0] = m[g], d[y][1] = m[g + 1], d[y][2] = m[g + 2], d[y][3] = m[g + 3]
- }
- var v = t(d, a);
- n[g] = v[0], n[g + 1] = v[1], n[g + 2] = v[2], n[g + 3] = v[3]
- }
- }
- return n.buffer
- }
- }
-
- function Rd(t, e) {
- var r = Object.keys(t.lib || {}).map((function (e) {
- return "var " + e + " = " + t.lib[e].toString() + ";"
- })).concat(["var __minion__ = (" + Pd.toString() + ")(", t.operation.toString(), ");", 'self.addEventListener("message", function(event) {', " var buffer = __minion__(event.data);", " self.postMessage({buffer: buffer, meta: event.data.meta}, [buffer]);", "});"]),
- n = new Blob(r, {type: "text/javascript"}), i = URL.createObjectURL(n), o = new Worker(i);
- return o.addEventListener("message", e), o
- }
-
- var Id = function (t) {
- function e(e) {
- var r, n = t.call(this) || this;
- n._imageOps = !!e.imageOps;
- var i = [];
- if (r = 0 === e.threads ? 0 : n._imageOps ? 1 : e.threads || 1) for (var o = 0; o < r; ++o) i[o] = Rd(e, n._onWorkerMessage.bind(n, o)); else i[0] = function (t, e) {
- var r = Pd(t.operation), n = !1;
- return {
- postMessage: function (t) {
- setTimeout((function () {
- n || e({data: {buffer: r(t), meta: t.meta}})
- }), 0)
- }, terminate: function () {
- n = !0
- }
- }
- }(e, n._onWorkerMessage.bind(n, 0));
- return n._workers = i, n._queue = [], n._maxQueueLength = e.queue || 1 / 0, n._running = 0, n._dataLookup = {}, n._job = null, n
- }
-
- return Ed(e, t), e.prototype.process = function (t, e, r) {
- this._enqueue({inputs: t, meta: e, callback: r}), this._dispatch()
- }, e.prototype._enqueue = function (t) {
- for (this._queue.push(t); this._queue.length > this._maxQueueLength;) this._queue.shift().callback(null, null)
- }, e.prototype._dispatch = function () {
- if (0 === this._running && this._queue.length > 0) {
- var t = this._queue.shift();
- this._job = t;
- var e = t.inputs[0].width, r = t.inputs[0].height, n = t.inputs.map((function (t) {
- return t.data.buffer
- })), i = this._workers.length;
- if (this._running = i, 1 === i) this._workers[0].postMessage({
- buffers: n,
- meta: t.meta,
- imageOps: this._imageOps,
- width: e,
- height: r
- }, n); else for (var o = t.inputs[0].data.length, a = 4 * Math.ceil(o / 4 / i), s = 0; s < i; ++s) {
- for (var l = s * a, u = [], c = 0, h = n.length; c < h; ++c) u.push(n[c].slice(l, l + a));
- this._workers[s].postMessage({buffers: u, meta: t.meta, imageOps: this._imageOps, width: e, height: r}, u)
- }
- }
- }, e.prototype._onWorkerMessage = function (t, e) {
- this.disposed || (this._dataLookup[t] = e.data, --this._running, 0 === this._running && this._resolveJob())
- }, e.prototype._resolveJob = function () {
- var t, e, r = this._job, n = this._workers.length;
- if (1 === n) t = new Uint8ClampedArray(this._dataLookup[0].buffer), e = this._dataLookup[0].meta; else {
- var i = r.inputs[0].data.length;
- t = new Uint8ClampedArray(i), e = new Array(i);
- for (var o = 4 * Math.ceil(i / 4 / n), a = 0; a < n; ++a) {
- var s = this._dataLookup[a].buffer, l = a * o;
- t.set(new Uint8ClampedArray(s), l), e[a] = this._dataLookup[a].meta
- }
- }
- this._job = null, this._dataLookup = {}, r.callback(null, Od(t, r.inputs[0].width, r.inputs[0].height), e), this._dispatch()
- }, e.prototype.disposeInternal = function () {
- for (var t = 0; t < this._workers.length; ++t) this._workers[t].terminate();
- this._workers.length = 0
- }, e
- }(p), Ld = "beforeoperations", Md = "afteroperations", Fd = "pixel", Ad = "image", kd = function (t) {
- function e(e, r, n) {
- var i = t.call(this, e) || this;
- return i.extent = r.extent, i.resolution = r.viewState.resolution / r.pixelRatio, i.data = n, i
- }
-
- return Ed(e, t), e
- }(c), jd = function (t) {
- function e(e) {
- var r = t.call(this, {projection: null}) || this;
- r.processor_ = null, r.operationType_ = void 0 !== e.operationType ? e.operationType : Fd, r.threads_ = void 0 !== e.threads ? e.threads : 1, r.layers_ = function (t) {
- for (var e = t.length, r = new Array(e), n = 0; n < e; ++n) r[n] = Gd(t[n]);
- return r
- }(e.sources);
- for (var n, i = r.changed.bind(r), o = 0, a = r.layers_.length; o < a; ++o) r.layers_[o].addEventListener(F, i);
- return r.tileQueue_ = new es((function () {
- return 1
- }), r.changed.bind(r)), r.requestedFrameState_, r.renderedImageCanvas_ = null, r.renderedRevision_, r.frameState_ = {
- animate: !1,
- coordinateToPixelTransform: [1, 0, 0, 1, 0, 0],
- declutterTree: null,
- extent: null,
- index: 0,
- layerIndex: 0,
- layerStatesArray: (n = r.layers_, n.map((function (t) {
- return t.getLayerState()
- }))),
- pixelRatio: 1,
- pixelToCoordinateTransform: [1, 0, 0, 1, 0, 0],
- postRenderFunctions: [],
- size: [0, 0],
- tileQueue: r.tileQueue_,
- time: Date.now(),
- usedTiles: {},
- viewState: {rotation: 0},
- viewHints: [],
- wantedTiles: {}
- }, r.setAttributions((function (t) {
- for (var r = [], n = 0, i = e.sources.length; n < i; ++n) {
- var o = e.sources[n], a = (o instanceof Dp ? o : o.getSource()).getAttributions();
- if ("function" == typeof a) {
- var s = a(t);
- r.push.apply(r, s)
- }
- }
- return 0 !== r.length ? r : null
- })), void 0 !== e.operation && r.setOperation(e.operation, e.lib), r
- }
-
- return Ed(e, t), e.prototype.setOperation = function (t, e) {
- this.processor_ && this.processor_.dispose(), this.processor_ = new Id({
- operation: t,
- imageOps: this.operationType_ === Ad,
- queue: 1,
- lib: e,
- threads: this.threads_
- }), this.changed()
- }, e.prototype.updateFrameState_ = function (t, e, r) {
- var n = O({}, this.frameState_);
- n.viewState = O({}, n.viewState);
- var i = xe(t);
- n.extent = t.slice(), n.size[0] = Math.round(Pe(t) / e), n.size[1] = Math.round(Ee(t) / e), n.time = 1 / 0;
- var o = n.viewState;
- return o.center = i, o.projection = r, o.resolution = e, n
- }, e.prototype.allSourcesReady_ = function () {
- for (var t = !0, e = 0, r = this.layers_.length; e < r; ++e) if (this.layers_[e].getSource().getState() !== Qo) {
- t = !1;
- break
- }
- return t
- }, e.prototype.getImage = function (t, e, r, n) {
- if (!this.allSourcesReady_()) return null;
- var i = this.updateFrameState_(t, e, n);
- if (this.requestedFrameState_ = i, this.renderedImageCanvas_) {
- var o = this.renderedImageCanvas_.getResolution(), a = this.renderedImageCanvas_.getExtent();
- e === o && ue(t, a) || (this.renderedImageCanvas_ = null)
- }
- return this.renderedImageCanvas_ && this.getRevision() === this.renderedRevision_ || this.processSources_(), i.tileQueue.loadMoreTiles(16, 16), i.animate && requestAnimationFrame(this.changed.bind(this)), this.renderedImageCanvas_
- }, e.prototype.processSources_ = function () {
- for (var t = this.requestedFrameState_, e = this.layers_.length, r = new Array(e), n = 0; n < e; ++n) {
- t.layerIndex = n;
- var i = Dd(this.layers_[n], t);
- if (!i) return;
- r[n] = i
- }
- var o = {};
- this.dispatchEvent(new kd(Ld, t, o)), this.processor_.process(r, o, this.onWorkerComplete_.bind(this, t))
- }, e.prototype.onWorkerComplete_ = function (t, e, r, n) {
- if (!e && r) {
- var i = t.extent, o = t.viewState.resolution;
- if (o === this.requestedFrameState_.viewState.resolution && ue(i, this.requestedFrameState_.extent)) {
- var a;
- if (this.renderedImageCanvas_) a = this.renderedImageCanvas_.getImage().getContext("2d"); else a = uo(Math.round(Pe(i) / o), Math.round(Ee(i) / o)), this.renderedImageCanvas_ = new $i(i, o, 1, a.canvas);
- a.putImageData(r, 0, 0), this.changed(), this.renderedRevision_ = this.getRevision(), this.dispatchEvent(new kd(Md, t, n))
- }
- }
- }, e.prototype.getImageInternal = function () {
- return null
- }, e.prototype.disposeInternal = function () {
- this.processor_ && this.processor_.dispose(), t.prototype.disposeInternal.call(this)
- }, e
- }(zf);
- jd.prototype.dispose;
- var Nd = null;
-
- function Dd(t, e) {
- var r = t.getRenderer();
- if (!r) throw new Error("Unsupported layer type: " + t);
- if (!r.prepareFrame(e)) return null;
- var n = e.size[0], i = e.size[1];
- if (0 === n || 0 === i) return null;
- var o, a = r.renderFrame(e, null);
- if (a && (o = a.firstElementChild), !(o instanceof HTMLCanvasElement)) throw new Error("Unsupported rendered element: " + o);
- if (o.width === n && o.height === i) return o.getContext("2d").getImageData(0, 0, n, i);
- if (Nd) {
- var s = Nd.canvas;
- s.width !== n || s.height !== i ? Nd = uo(n, i) : Nd.clearRect(0, 0, n, i)
- } else Nd = uo(n, i);
- return Nd.drawImage(o, 0, 0, n, i), Nd.getImageData(0, 0, n, i)
- }
-
- function Gd(t) {
- var e;
- return t instanceof Dp ? t instanceof Bp ? e = new Sd({source: t}) : t instanceof zf && (e = new dd({source: t})) : e = t, e
- }
-
- var zd = jd, Ud = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(),
- Bd = ['Map tiles by <a href="https://stamen.com/" target="_blank">Stamen Design</a>, under <a href="https://creativecommons.org/licenses/by/3.0/" target="_blank">CC BY 3.0</a>.', nd],
- Vd = {
- terrain: {extension: "jpg", opaque: !0},
- "terrain-background": {extension: "jpg", opaque: !0},
- "terrain-labels": {extension: "png", opaque: !1},
- "terrain-lines": {extension: "png", opaque: !1},
- "toner-background": {extension: "png", opaque: !0},
- toner: {extension: "png", opaque: !0},
- "toner-hybrid": {extension: "png", opaque: !1},
- "toner-labels": {extension: "png", opaque: !1},
- "toner-lines": {extension: "png", opaque: !1},
- "toner-lite": {extension: "png", opaque: !0},
- watercolor: {extension: "jpg", opaque: !0}
- }, Yd = {
- terrain: {minZoom: 0, maxZoom: 18},
- toner: {minZoom: 0, maxZoom: 20},
- watercolor: {minZoom: 0, maxZoom: 18}
- }, Wd = function (t) {
- function e(e) {
- var r = e.layer.indexOf("-"), n = -1 == r ? e.layer : e.layer.slice(0, r), i = Yd[n], o = Vd[e.layer],
- a = void 0 !== e.url ? e.url : "https://stamen-tiles-{a-d}.a.ssl.fastly.net/" + e.layer + "/{z}/{x}/{y}." + o.extension;
- return t.call(this, {
- attributions: Bd,
- cacheSize: e.cacheSize,
- crossOrigin: "anonymous",
- imageSmoothing: e.imageSmoothing,
- maxZoom: null != e.maxZoom ? e.maxZoom : i.maxZoom,
- minZoom: null != e.minZoom ? e.minZoom : i.minZoom,
- opaque: o.opaque,
- reprojectionErrorThreshold: e.reprojectionErrorThreshold,
- tileLoadFunction: e.tileLoadFunction,
- transition: e.transition,
- url: a,
- wrapX: e.wrapX
- }) || this
- }
-
- return Ud(e, t), e
- }(Jp), qd = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Xd = function (t) {
- function e(e) {
- var r = this, n = e || {};
- return (r = t.call(this, {
- attributions: n.attributions,
- cacheSize: n.cacheSize,
- crossOrigin: n.crossOrigin,
- imageSmoothing: n.imageSmoothing,
- projection: n.projection,
- reprojectionErrorThreshold: n.reprojectionErrorThreshold,
- tileGrid: n.tileGrid,
- tileLoadFunction: n.tileLoadFunction,
- url: n.url,
- urls: n.urls,
- wrapX: void 0 === n.wrapX || n.wrapX,
- transition: n.transition
- }) || this).params_ = n.params || {}, r.hidpi_ = void 0 === n.hidpi || n.hidpi, r.tmpExtent_ = [1 / 0, 1 / 0, -1 / 0, -1 / 0], r.setKey(r.getKeyForParams_()), r
- }
-
- return qd(e, t), e.prototype.getKeyForParams_ = function () {
- var t = 0, e = [];
- for (var r in this.params_) e[t++] = r + "-" + this.params_[r];
- return e.join("/")
- }, e.prototype.getParams = function () {
- return this.params_
- }, e.prototype.getRequestUrl_ = function (t, e, r, n, i, o) {
- var a = this.urls;
- if (a) {
- var s, l = i.getCode().split(":").pop();
- if (o.SIZE = e[0] + "," + e[1], o.BBOX = r.join(","), o.BBOXSR = l, o.IMAGESR = l, o.DPI = Math.round(o.DPI ? o.DPI * n : 90 * n), 1 == a.length) s = a[0]; else s = a[We(fu(t), a.length)];
- return mc(s.replace(/MapServer\/?$/, "MapServer/export").replace(/ImageServer\/?$/, "ImageServer/exportImage"), o)
- }
- }, e.prototype.getTilePixelRatio = function (t) {
- return this.hidpi_ ? t : 1
- }, e.prototype.updateParams = function (t) {
- O(this.params_, t), this.setKey(this.getKeyForParams_())
- }, e.prototype.tileUrlFunction = function (t, e, r) {
- var n = this.getTileGrid();
- if (n || (n = this.getTileGridForProjection(r)), !(n.getResolutions().length <= t[0])) {
- 1 == e || this.hidpi_ || (e = 1);
- var i = n.getTileCoordExtent(t, this.tmpExtent_), o = Is(n.getTileSize(t[0]), this.tmpSize);
- 1 != e && (o = Rs(o, e, this.tmpSize));
- var a = {F: "image", FORMAT: "PNG32", TRANSPARENT: !0};
- return O(a, this.params_), this.getRequestUrl_(t, o, i, e, r, a)
- }
- }, e
- }(Xp), Zd = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Kd = function (t) {
- function e(e, r, n) {
- var i = t.call(this, e, to) || this;
- return i.tileSize_ = r, i.text_ = n, i.canvas_ = null, i
- }
-
- return Zd(e, t), e.prototype.getImage = function () {
- if (this.canvas_) return this.canvas_;
- var t = this.tileSize_, e = uo(t[0], t[1]);
- return e.strokeStyle = "grey", e.strokeRect(.5, .5, t[0] + .5, t[1] + .5), e.fillStyle = "grey", e.strokeStyle = "white", e.textAlign = "center", e.textBaseline = "middle", e.font = "24px sans-serif", e.lineWidth = 4, e.strokeText(this.text_, t[0] / 2, t[1] / 2, t[0]), e.fillText(this.text_, t[0] / 2, t[1] / 2, t[0]), this.canvas_ = e.canvas, e.canvas
- }, e.prototype.load = function () {
- }, e
- }(lo), Hd = function (t) {
- function e(e) {
- var r = e || {};
- return t.call(this, {
- opaque: !1,
- projection: r.projection,
- tileGrid: r.tileGrid,
- wrapX: void 0 === r.wrapX || r.wrapX,
- zDirection: r.zDirection
- }) || this
- }
-
- return Zd(e, t), e.prototype.getTile = function (t, e, r) {
- var n = cu(t, e, r);
- if (this.tileCache.containsKey(n)) return this.tileCache.get(n);
- var i = Is(this.tileGrid.getTileSize(t)), o = [t, e, r], a = this.getTileCoordForTileUrlFunction(o), s = void 0;
- s = a ? "z:" + a[0] + " x:" + a[1] + " y:" + a[2] : "none";
- var l = new Kd(o, i, s);
- return this.tileCache.set(n, l), l
- }, e
- }(Jp), $d = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Jd = function (t) {
- function e(e) {
- var r = t.call(this, {
- attributions: e.attributions,
- cacheSize: e.cacheSize,
- crossOrigin: e.crossOrigin,
- imageSmoothing: e.imageSmoothing,
- projection: Gr("EPSG:3857"),
- reprojectionErrorThreshold: e.reprojectionErrorThreshold,
- state: Jo,
- tileLoadFunction: e.tileLoadFunction,
- wrapX: void 0 === e.wrapX || e.wrapX,
- transition: e.transition
- }) || this;
- if (r.tileJSON_ = null, r.tileSize_ = e.tileSize, e.url) if (e.jsonp) Au(e.url, r.handleTileJSONResponse.bind(r), r.handleTileJSONError.bind(r)); else {
- var n = new XMLHttpRequest;
- n.addEventListener("load", r.onXHRLoad_.bind(r)), n.addEventListener("error", r.onXHRError_.bind(r)), n.open("GET", e.url), n.send()
- } else e.tileJSON ? r.handleTileJSONResponse(e.tileJSON) : pt(!1, 51);
- return r
- }
-
- return $d(e, t), e.prototype.onXHRLoad_ = function (t) {
- var e = t.target;
- if (!e.status || e.status >= 200 && e.status < 300) {
- var r = void 0;
- try {
- r = JSON.parse(e.responseText)
- } catch (t) {
- return void this.handleTileJSONError()
- }
- this.handleTileJSONResponse(r)
- } else this.handleTileJSONError()
- }, e.prototype.onXHRError_ = function (t) {
- this.handleTileJSONError()
- }, e.prototype.getTileJSON = function () {
- return this.tileJSON_
- }, e.prototype.handleTileJSONResponse = function (t) {
- var e, r = Gr("EPSG:4326"), n = this.getProjection();
- if (void 0 !== t.bounds) {
- var i = Zr(r, n);
- e = Ae(t.bounds, i)
- }
- var o = t.minzoom || 0, a = t.maxzoom || 22,
- s = lc({extent: hc(n), maxZoom: a, minZoom: o, tileSize: this.tileSize_});
- if (this.tileGrid = s, this.tileUrlFunction = fc(t.tiles, s), void 0 !== t.attribution && !this.getAttributions()) {
- var l = void 0 !== e ? e : r.getExtent();
- this.setAttributions((function (e) {
- return Re(l, e.extent) ? [t.attribution] : null
- }))
- }
- this.tileJSON_ = t, this.setState(Qo)
- }, e.prototype.handleTileJSONError = function () {
- this.setState(ta)
- }, e
- }(Xp), Qd = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), tg = function (t) {
- function e(e) {
- var r = this, n = e || {}, i = n.params || {}, o = !("TRANSPARENT" in i) || i.TRANSPARENT;
- return (r = t.call(this, {
- attributions: n.attributions,
- cacheSize: n.cacheSize,
- crossOrigin: n.crossOrigin,
- imageSmoothing: n.imageSmoothing,
- opaque: !o,
- projection: n.projection,
- reprojectionErrorThreshold: n.reprojectionErrorThreshold,
- tileClass: n.tileClass,
- tileGrid: n.tileGrid,
- tileLoadFunction: n.tileLoadFunction,
- url: n.url,
- urls: n.urls,
- wrapX: void 0 === n.wrapX || n.wrapX,
- transition: n.transition
- }) || this).gutter_ = void 0 !== n.gutter ? n.gutter : 0, r.params_ = i, r.v13_ = !0, r.serverType_ = n.serverType, r.hidpi_ = void 0 === n.hidpi || n.hidpi, r.tmpExtent_ = [1 / 0, 1 / 0, -1 / 0, -1 / 0], r.updateV13_(), r.setKey(r.getKeyForParams_()), r
- }
-
- return Qd(e, t), e.prototype.getFeatureInfoUrl = function (t, e, r, n) {
- var i = Gr(r), o = this.getProjection(), a = this.getTileGrid();
- a || (a = this.getTileGridForProjection(i));
- var s = a.getZForResolution(e, this.zDirection), l = a.getTileCoordForCoordAndZ(t, s);
- if (!(a.getResolutions().length <= l[0])) {
- var u = a.getResolution(l[0]), c = a.getTileCoordExtent(l, this.tmpExtent_),
- h = Is(a.getTileSize(l[0]), this.tmpSize), p = this.gutter_;
- 0 !== p && (h = Os(h, p, this.tmpSize), c = Ht(c, u * p, c)), o && o !== i && (u = tc(o, i, t, u), c = $r(c, i, o), t = Hr(t, i, o));
- var f = {
- SERVICE: "WMS",
- VERSION: "1.3.0",
- REQUEST: "GetFeatureInfo",
- FORMAT: "image/png",
- TRANSPARENT: !0,
- QUERY_LAYERS: this.params_.LAYERS
- };
- O(f, this.params_, n);
- var d = Math.floor((t[0] - c[0]) / u), g = Math.floor((c[3] - t[1]) / u);
- return f[this.v13_ ? "I" : "X"] = d, f[this.v13_ ? "J" : "Y"] = g, this.getRequestUrl_(l, h, c, 1, o || i, f)
- }
- }, e.prototype.getLegendUrl = function (t, e) {
- if (void 0 !== this.urls[0]) {
- var r = {SERVICE: "WMS", VERSION: "1.3.0", REQUEST: "GetLegendGraphic", FORMAT: "image/png"};
- if (void 0 === e || void 0 === e.LAYER) {
- var n = this.params_.LAYERS;
- if (!(!Array.isArray(n) || 1 === n.length)) return;
- r.LAYER = n
- }
- if (void 0 !== t) {
- var i = this.getProjection() ? this.getProjection().getMetersPerUnit() : 1;
- r.SCALE = t * i / 28e-5
- }
- return O(r, e), mc(this.urls[0], r)
- }
- }, e.prototype.getGutter = function () {
- return this.gutter_
- }, e.prototype.getParams = function () {
- return this.params_
- }, e.prototype.getRequestUrl_ = function (t, e, r, n, i, o) {
- var a = this.urls;
- if (a) {
- if (o.WIDTH = e[0], o.HEIGHT = e[1], o[this.v13_ ? "CRS" : "SRS"] = i.getCode(), "STYLES" in this.params_ || (o.STYLES = ""), 1 != n) switch (this.serverType_) {
- case Hf:
- var s = 90 * n + .5 | 0;
- "FORMAT_OPTIONS" in o ? o.FORMAT_OPTIONS += ";dpi:" + s : o.FORMAT_OPTIONS = "dpi:" + s;
- break;
- case $f:
- o.MAP_RESOLUTION = 90 * n;
- break;
- case Kf:
- case Jf:
- o.DPI = 90 * n;
- break;
- default:
- pt(!1, 52)
- }
- var l, u = i.getAxisOrientation(), c = r;
- if (this.v13_ && "ne" == u.substr(0, 2)) {
- var h = void 0;
- h = r[0], c[0] = r[1], c[1] = h, h = r[2], c[2] = r[3], c[3] = h
- }
- if (o.BBOX = c.join(","), 1 == a.length) l = a[0]; else l = a[We(fu(t), a.length)];
- return mc(l, o)
- }
- }, e.prototype.getTilePixelRatio = function (t) {
- return this.hidpi_ && void 0 !== this.serverType_ ? t : 1
- }, e.prototype.getKeyForParams_ = function () {
- var t = 0, e = [];
- for (var r in this.params_) e[t++] = r + "-" + this.params_[r];
- return e.join("/")
- }, e.prototype.updateParams = function (t) {
- O(this.params_, t), this.updateV13_(), this.setKey(this.getKeyForParams_())
- }, e.prototype.updateV13_ = function () {
- var t = this.params_.VERSION || "1.3.0";
- this.v13_ = br(t, "1.3") >= 0
- }, e.prototype.tileUrlFunction = function (t, e, r) {
- var n = this.getTileGrid();
- if (n || (n = this.getTileGridForProjection(r)), !(n.getResolutions().length <= t[0])) {
- 1 == e || this.hidpi_ && void 0 !== this.serverType_ || (e = 1);
- var i = n.getResolution(t[0]), o = n.getTileCoordExtent(t, this.tmpExtent_),
- a = Is(n.getTileSize(t[0]), this.tmpSize), s = this.gutter_;
- 0 !== s && (a = Os(a, s, this.tmpSize), o = Ht(o, i * s, o)), 1 != e && (a = Rs(a, e, this.tmpSize));
- var l = {SERVICE: "WMS", VERSION: "1.3.0", REQUEST: "GetMap", FORMAT: "image/png", TRANSPARENT: !0};
- return O(l, this.params_), this.getRequestUrl_(t, a, o, e, r, l)
- }
- }, e
- }(Xp), eg = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), rg = function (t) {
- function e(e, r, n, i, o, a) {
- var s = t.call(this, e, r) || this;
- return s.src_ = n, s.extent_ = i, s.preemptive_ = o, s.grid_ = null, s.keys_ = null, s.data_ = null, s.jsonp_ = a, s
- }
-
- return eg(e, t), e.prototype.getImage = function () {
- return null
- }, e.prototype.getData = function (t) {
- if (!this.grid_ || !this.keys_) return null;
- var e = (t[0] - this.extent_[0]) / (this.extent_[2] - this.extent_[0]),
- r = (t[1] - this.extent_[1]) / (this.extent_[3] - this.extent_[1]),
- n = this.grid_[Math.floor((1 - r) * this.grid_.length)];
- if ("string" != typeof n) return null;
- var i = n.charCodeAt(Math.floor(e * n.length));
- i >= 93 && i--, i >= 35 && i--;
- var o = null;
- if ((i -= 32) in this.keys_) {
- var a = this.keys_[i];
- o = this.data_ && a in this.data_ ? this.data_[a] : a
- }
- return o
- }, e.prototype.forDataAtCoordinate = function (t, e, r) {
- this.state == ro && !0 === r ? (this.state = Ji, K(this, F, (function (r) {
- e(this.getData(t))
- }), this), this.loadInternal_()) : !0 === r ? setTimeout(function () {
- e(this.getData(t))
- }.bind(this), 0) : e(this.getData(t))
- }, e.prototype.getKey = function () {
- return this.src_
- }, e.prototype.handleError_ = function () {
- this.state = eo, this.changed()
- }, e.prototype.handleLoad_ = function (t) {
- this.grid_ = t.grid, this.keys_ = t.keys, this.data_ = t.data, this.state = to, this.changed()
- }, e.prototype.loadInternal_ = function () {
- if (this.state == Ji) if (this.state = Qi, this.jsonp_) Au(this.src_, this.handleLoad_.bind(this), this.handleError_.bind(this)); else {
- var t = new XMLHttpRequest;
- t.addEventListener("load", this.onXHRLoad_.bind(this)), t.addEventListener("error", this.onXHRError_.bind(this)), t.open("GET", this.src_), t.send()
- }
- }, e.prototype.onXHRLoad_ = function (t) {
- var e = t.target;
- if (!e.status || e.status >= 200 && e.status < 300) {
- var r = void 0;
- try {
- r = JSON.parse(e.responseText)
- } catch (t) {
- return void this.handleError_()
- }
- this.handleLoad_(r)
- } else this.handleError_()
- }, e.prototype.onXHRError_ = function (t) {
- this.handleError_()
- }, e.prototype.load = function () {
- this.preemptive_ ? this.loadInternal_() : this.setState(ro)
- }, e
- }(lo), ng = function (t) {
- function e(e) {
- var r = t.call(this, {projection: Gr("EPSG:3857"), state: Jo}) || this;
- if (r.preemptive_ = void 0 === e.preemptive || e.preemptive, r.tileUrlFunction_ = gc, r.template_ = void 0, r.jsonp_ = e.jsonp || !1, e.url) if (r.jsonp_) Au(e.url, r.handleTileJSONResponse.bind(r), r.handleTileJSONError.bind(r)); else {
- var n = new XMLHttpRequest;
- n.addEventListener("load", r.onXHRLoad_.bind(r)), n.addEventListener("error", r.onXHRError_.bind(r)), n.open("GET", e.url), n.send()
- } else e.tileJSON ? r.handleTileJSONResponse(e.tileJSON) : pt(!1, 51);
- return r
- }
-
- return eg(e, t), e.prototype.onXHRLoad_ = function (t) {
- var e = t.target;
- if (!e.status || e.status >= 200 && e.status < 300) {
- var r = void 0;
- try {
- r = JSON.parse(e.responseText)
- } catch (t) {
- return void this.handleTileJSONError()
- }
- this.handleTileJSONResponse(r)
- } else this.handleTileJSONError()
- }, e.prototype.onXHRError_ = function (t) {
- this.handleTileJSONError()
- }, e.prototype.getTemplate = function () {
- return this.template_
- }, e.prototype.forDataAtCoordinateAndResolution = function (t, e, r, n) {
- if (this.tileGrid) {
- var i = this.tileGrid.getZForResolution(e, this.zDirection), o = this.tileGrid.getTileCoordForCoordAndZ(t, i);
- this.getTile(o[0], o[1], o[2], 1, this.getProjection()).forDataAtCoordinate(t, r, n)
- } else !0 === n ? setTimeout((function () {
- r(null)
- }), 0) : r(null)
- }, e.prototype.handleTileJSONError = function () {
- this.setState(ta)
- }, e.prototype.handleTileJSONResponse = function (t) {
- var e, r = Gr("EPSG:4326"), n = this.getProjection();
- if (void 0 !== t.bounds) {
- var i = Zr(r, n);
- e = Ae(t.bounds, i)
- }
- var o = t.minzoom || 0, a = t.maxzoom || 22, s = lc({extent: hc(n), maxZoom: a, minZoom: o});
- this.tileGrid = s, this.template_ = t.template;
- var l = t.grids;
- if (l) {
- if (this.tileUrlFunction_ = fc(l, s), void 0 !== t.attribution) {
- var u = void 0 !== e ? e : r.getExtent();
- this.setAttributions((function (e) {
- return Re(u, e.extent) ? [t.attribution] : null
- }))
- }
- this.setState(Qo)
- } else this.setState(ta)
- }, e.prototype.getTile = function (t, e, r, n, i) {
- var o = cu(t, e, r);
- if (this.tileCache.containsKey(o)) return this.tileCache.get(o);
- var a = [t, e, r], s = this.getTileCoordForTileUrlFunction(a, i), l = this.tileUrlFunction_(s, n, i),
- u = new rg(a, void 0 !== l ? Ji : ro, void 0 !== l ? l : "", this.tileGrid.getTileCoordExtent(a), this.preemptive_, this.jsonp_);
- return this.tileCache.set(o, u), u
- }, e.prototype.useTile = function (t, e, r) {
- var n = cu(t, e, r);
- this.tileCache.containsKey(n) && this.tileCache.get(n)
- }, e
- }(Bp), ig = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), og = function (t) {
- function e(e) {
- var r = this, n = e.projection || "EPSG:3857", i = e.extent || hc(n), o = e.tileGrid || lc({
- extent: i,
- maxResolution: e.maxResolution,
- maxZoom: void 0 !== e.maxZoom ? e.maxZoom : 22,
- minZoom: e.minZoom,
- tileSize: e.tileSize || 512
- });
- return (r = t.call(this, {
- attributions: e.attributions,
- attributionsCollapsible: e.attributionsCollapsible,
- cacheSize: e.cacheSize,
- opaque: !1,
- projection: n,
- state: e.state,
- tileGrid: o,
- tileLoadFunction: e.tileLoadFunction ? e.tileLoadFunction : ag,
- tileUrlFunction: e.tileUrlFunction,
- url: e.url,
- urls: e.urls,
- wrapX: void 0 === e.wrapX || e.wrapX,
- transition: e.transition,
- zDirection: void 0 === e.zDirection ? 1 : e.zDirection
- }) || this).format_ = e.format ? e.format : null, r.loadingTiles_ = {}, r.sourceTileCache = new yu(r.tileCache.highWaterMark), r.overlaps_ = null == e.overlaps || e.overlaps, r.tileClass = e.tileClass ? e.tileClass : Eu, r.tileGrids_ = {}, r
- }
-
- return ig(e, t), e.prototype.getFeaturesInExtent = function (t) {
- var e = [], r = this.tileCache;
- if (0 === r.getCount()) return e;
- var n = pu(r.peekFirstKey())[0], i = this.tileGrid;
- return r.forEach((function (r) {
- if (r.tileCoord[0] === n && r.getState() === to) for (var o = r.getSourceTiles(), a = 0, s = o.length; a < s; ++a) {
- var l = o[a], u = l.tileCoord;
- if (Re(t, i.getTileCoordExtent(u))) {
- var c = l.getFeatures();
- if (c) for (var h = 0, p = c.length; h < p; ++h) {
- var f = c[h], d = f.getGeometry();
- Re(t, d.getExtent()) && e.push(f)
- }
- }
- }
- })), e
- }, e.prototype.getOverlaps = function () {
- return this.overlaps_
- }, e.prototype.clear = function () {
- this.tileCache.clear(), this.sourceTileCache.clear()
- }, e.prototype.expireCache = function (e, r) {
- t.prototype.expireCache.call(this, e, r), this.sourceTileCache.expireCache({})
- }, e.prototype.getSourceTiles = function (t, e, r) {
- var n = r.wrappedTileCoord, i = this.getTileGridForProjection(e), o = i.getTileCoordExtent(n), a = n[0],
- s = i.getResolution(a);
- Ht(o, -s, o);
- var l = this.tileGrid, u = l.getExtent();
- u && Te(o, u, o);
- var c, h, p, f = l.getZForResolution(s, 1), d = l.getMinZoom(), g = r.sourceTiles;
- if (g && g.length > 0 && g[0].tileCoord[0] === f) c = g, h = !0, p = f; else {
- c = [], p = f + 1;
- do {
- --p, h = !0, l.forEachTileCoord(o, p, function (n) {
- var i, o = this.tileUrlFunction(n, t, e);
- if (void 0 !== o) if (this.sourceTileCache.containsKey(o)) {
- var a = (i = this.sourceTileCache.get(o)).getState();
- if (a === to || a === eo || a === ro) return void c.push(i)
- } else p === f && ((i = new this.tileClass(n, Ji, o, this.format_, this.tileLoadFunction)).extent = l.getTileCoordExtent(n), i.projection = e, i.resolution = l.getResolution(n[0]), this.sourceTileCache.set(o, i), i.addEventListener(F, this.handleTileChange.bind(this)), i.load());
- h = h && i && i.getState() === to, i && i.getState() !== ro && r.getState() === Ji && (r.loadingSourceTiles++, i.addEventListener(F, (function t() {
- var e = i.getState(), n = i.getKey();
- if (e === to || e === eo) {
- e === to ? (i.removeEventListener(F, t), r.loadingSourceTiles--, delete r.errorSourceTileKeys[n]) : e === eo && (r.errorSourceTileKeys[n] = !0);
- var o = Object.keys(r.errorSourceTileKeys).length;
- r.loadingSourceTiles - o == 0 && (r.hifi = 0 === o, r.sourceZ = f, r.setState(to))
- }
- })))
- }.bind(this)), h || (c.length = 0)
- } while (!h && p > d)
- }
- return r.getState() === Ji && r.setState(Qi), h && (r.hifi = f === p, r.sourceZ = p, r.getState() < to ? r.setState(to) : g && b(c, g) || (r.sourceTiles = c)), c
- }, e.prototype.getTile = function (t, e, r, n, i) {
- var o, a = cu(t, e, r), s = this.getKey();
- if (this.tileCache.containsKey(a) && (o = this.tileCache.get(a)).key === s) return o;
- var l = [t, e, r], u = this.getTileCoordForTileUrlFunction(l, i), c = this.getTileGrid().getExtent(),
- h = this.getTileGridForProjection(i);
- if (u && c) {
- var p = h.getTileCoordExtent(u);
- Ht(p, -h.getResolution(t), p), Re(c, p) || (u = null)
- }
- var f = !0;
- if (null !== u) {
- var d = this.tileGrid, g = h.getResolution(t), y = d.getZForResolution(g, 1), m = h.getTileCoordExtent(u);
- Ht(m, -g, m), d.forEachTileCoord(m, y, function (t) {
- f = f && !this.tileUrlFunction(t, n, i)
- }.bind(this))
- }
- var v = new wu(l, f ? ro : Ji, u, this.getSourceTiles.bind(this, n, i));
- return v.key = s, o ? (v.interimTile = o, v.refreshInterimChain(), this.tileCache.replace(a, v)) : this.tileCache.set(a, v), v
- }, e.prototype.getTileGridForProjection = function (t) {
- var e = t.getCode(), r = this.tileGrids_[e];
- if (!r) {
- var n = this.tileGrid;
- r = cc(t, void 0, n ? n.getTileSize(n.getMinZoom()) : void 0), this.tileGrids_[e] = r
- }
- return r
- }, e.prototype.getTilePixelRatio = function (t) {
- return t
- }, e.prototype.getTilePixelSize = function (t, e, r) {
- var n = Is(this.getTileGridForProjection(r).getTileSize(t), this.tmpSize);
- return [Math.round(n[0] * e), Math.round(n[1] * e)]
- }, e.prototype.updateCacheSize = function (e, r) {
- t.prototype.updateCacheSize.call(this, 2 * e, r)
- }, e
- }(Yp);
-
- function ag(t, e) {
- t.setLoader((function (r, n, i) {
- Lu(e, t.getFormat(), r, n, i, t.onLoad.bind(t), t.onError.bind(t))
- }))
- }
-
- var sg = "KVP", lg = "REST", ug = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), cg = function (t) {
- function e(e) {
- var r = this, n = void 0 !== e.requestEncoding ? e.requestEncoding : sg, i = e.tileGrid, o = e.urls;
- return void 0 === o && void 0 !== e.url && (o = yc(e.url)), (r = t.call(this, {
- attributions: e.attributions,
- cacheSize: e.cacheSize,
- crossOrigin: e.crossOrigin,
- imageSmoothing: e.imageSmoothing,
- projection: e.projection,
- reprojectionErrorThreshold: e.reprojectionErrorThreshold,
- tileClass: e.tileClass,
- tileGrid: i,
- tileLoadFunction: e.tileLoadFunction,
- tilePixelRatio: e.tilePixelRatio,
- urls: o,
- wrapX: void 0 !== e.wrapX && e.wrapX,
- transition: e.transition
- }) || this).version_ = void 0 !== e.version ? e.version : "1.0.0", r.format_ = void 0 !== e.format ? e.format : "image/jpeg", r.dimensions_ = void 0 !== e.dimensions ? e.dimensions : {}, r.layer_ = e.layer, r.matrixSet_ = e.matrixSet, r.style_ = e.style, r.requestEncoding_ = n, r.setKey(r.getKeyForDimensions_()), o && o.length > 0 && (r.tileUrlFunction = dc(o.map(r.createFromWMTSTemplate.bind(r)))), r
- }
-
- return ug(e, t), e.prototype.setUrls = function (t) {
- this.urls = t;
- var e = t.join("\n");
- this.setTileUrlFunction(dc(t.map(this.createFromWMTSTemplate.bind(this))), e)
- }, e.prototype.getDimensions = function () {
- return this.dimensions_
- }, e.prototype.getFormat = function () {
- return this.format_
- }, e.prototype.getLayer = function () {
- return this.layer_
- }, e.prototype.getMatrixSet = function () {
- return this.matrixSet_
- }, e.prototype.getRequestEncoding = function () {
- return this.requestEncoding_
- }, e.prototype.getStyle = function () {
- return this.style_
- }, e.prototype.getVersion = function () {
- return this.version_
- }, e.prototype.getKeyForDimensions_ = function () {
- var t = 0, e = [];
- for (var r in this.dimensions_) e[t++] = r + "-" + this.dimensions_[r];
- return e.join("/")
- }, e.prototype.updateDimensions = function (t) {
- O(this.dimensions_, t), this.setKey(this.getKeyForDimensions_())
- }, e.prototype.createFromWMTSTemplate = function (t) {
- var e = this.requestEncoding_, r = {layer: this.layer_, style: this.style_, tilematrixset: this.matrixSet_};
- e == sg && O(r, {
- Service: "WMTS",
- Request: "GetTile",
- Version: this.version_,
- Format: this.format_
- }), t = e == sg ? mc(t, r) : t.replace(/\{(\w+?)\}/g, (function (t, e) {
- return e.toLowerCase() in r ? r[e.toLowerCase()] : t
- }));
- var n = this.tileGrid, i = this.dimensions_;
- return function (r, o, a) {
- if (r) {
- var s = {TileMatrix: n.getMatrixId(r[0]), TileCol: r[1], TileRow: r[2]};
- O(s, i);
- var l = t;
- return l = e == sg ? mc(l, s) : l.replace(/\{(\w+?)\}/g, (function (t, e) {
- return s[e]
- }))
- }
- }
- }, e
- }(Xp);
- var hg = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), pg = "GENERATE_BUFFERS", fg = function (t) {
- function e(e, r) {
- var n = t.call(this, e) || this, i = r || {};
- return n.helper = new gh({
- postProcesses: i.postProcesses,
- uniforms: i.uniforms
- }), void 0 !== i.className && (n.helper.getCanvas().className = i.className), n
- }
-
- return hg(e, t), e.prototype.disposeInternal = function () {
- this.helper.dispose(), t.prototype.disposeInternal.call(this)
- }, e.prototype.getShaderCompileErrors = function () {
- return this.helper.getShaderCompileErrors()
- }, e.prototype.dispatchRenderEvent_ = function (t, e) {
- var r = this.getLayer();
- if (r.hasListener(t)) {
- var n = new la(t, null, e, null);
- r.dispatchEvent(n)
- }
- }, e.prototype.preRender = function (t) {
- this.dispatchRenderEvent_(qo, t)
- }, e.prototype.postRender = function (t) {
- this.dispatchRenderEvent_(Xo, t)
- }, e
- }(ld), dg = [], gg = {vertexPosition: 0, indexPosition: 0};
-
- function yg(t, e, r, n, i) {
- t[e + 0] = r, t[e + 1] = n, t[e + 2] = i
- }
-
- function mg(t, e) {
- var r = e || [];
- return r[0] = Math.floor(t / 256 / 256 / 256) / 255, r[1] = Math.floor(t / 256 / 256) % 256 / 255, r[2] = Math.floor(t / 256) % 256 / 255, r[3] = t % 256 / 255, r
- }
-
- function vg(t) {
- var e = 0;
- return e += Math.round(256 * t[0] * 256 * 256 * 255), e += Math.round(256 * t[1] * 256 * 255), e += Math.round(256 * t[2] * 255), e += Math.round(255 * t[3])
- }
-
- var _g = fg, bg = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), xg = "renderOrder", wg = function (t) {
- function e(e) {
- var r = this, n = e || {}, i = O({}, n);
- return delete i.style, delete i.renderBuffer, delete i.updateWhileAnimating, delete i.updateWhileInteracting, (r = t.call(this, i) || this).declutter_ = void 0 !== n.declutter && n.declutter, r.renderBuffer_ = void 0 !== n.renderBuffer ? n.renderBuffer : 100, r.style_ = null, r.styleFunction_ = void 0, r.setStyle(n.style), r.updateWhileAnimating_ = void 0 !== n.updateWhileAnimating && n.updateWhileAnimating, r.updateWhileInteracting_ = void 0 !== n.updateWhileInteracting && n.updateWhileInteracting, r
- }
-
- return bg(e, t), e.prototype.getDeclutter = function () {
- return this.declutter_
- }, e.prototype.getFeatures = function (e) {
- return t.prototype.getFeatures.call(this, e)
- }, e.prototype.getRenderBuffer = function () {
- return this.renderBuffer_
- }, e.prototype.getRenderOrder = function () {
- return this.get(xg)
- }, e.prototype.getStyle = function () {
- return this.style_
- }, e.prototype.getStyleFunction = function () {
- return this.styleFunction_
- }, e.prototype.getUpdateWhileAnimating = function () {
- return this.updateWhileAnimating_
- }, e.prototype.getUpdateWhileInteracting = function () {
- return this.updateWhileInteracting_
- }, e.prototype.renderDeclutter = function (t) {
- t.declutterTree || (t.declutterTree = new Pp.a(9)), this.getRenderer().renderDeclutter(t)
- }, e.prototype.setRenderOrder = function (t) {
- this.set(xg, t)
- }, e.prototype.setStyle = function (t) {
- this.style_ = void 0 !== t ? t : _p, this.styleFunction_ = null === t ? void 0 : mp(this.style_), this.changed()
- }, e
- }(na), Sg = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Eg = function (t) {
- function e(e, r) {
- var n = this, i = r.uniforms || {}, a = [1, 0, 0, 1, 0, 0];
- i[ah] = a, (n = t.call(this, e, {
- className: r.className,
- uniforms: i,
- postProcesses: r.postProcesses
- }) || this).sourceRevision_ = -1, n.verticesBuffer_ = new Qc(34962, 35048), n.hitVerticesBuffer_ = new Qc(34962, 35048), n.indicesBuffer_ = new Qc(34963, 35048), n.program_ = n.helper.getProgram(r.fragmentShader, r.vertexShader), n.hitDetectionEnabled_ = !(!r.hitFragmentShader || !r.hitVertexShader), n.hitProgram_ = n.hitDetectionEnabled_ && n.helper.getProgram(r.hitFragmentShader, r.hitVertexShader);
- var s = r.attributes ? r.attributes.map((function (t) {
- return {name: "a_" + t.name, size: 1, type: ph.FLOAT}
- })) : [];
- n.attributes = [{name: "a_position", size: 2, type: ph.FLOAT}, {
- name: "a_index",
- size: 1,
- type: ph.FLOAT
- }].concat(s), n.hitDetectionAttributes = [{name: "a_position", size: 2, type: ph.FLOAT}, {
- name: "a_index",
- size: 1,
- type: ph.FLOAT
- }, {name: "a_hitColor", size: 4, type: ph.FLOAT}, {
- name: "a_featureUid",
- size: 1,
- type: ph.FLOAT
- }].concat(s), n.customAttributes = r.attributes ? r.attributes : [], n.previousExtent_ = [1 / 0, 1 / 0, -1 / 0, -1 / 0], n.currentTransform_ = a, n.renderTransform_ = [1, 0, 0, 1, 0, 0], n.invertRenderTransform_ = [1, 0, 0, 1, 0, 0], n.renderInstructions_ = new Float32Array(0), n.hitRenderInstructions_ = new Float32Array(0), n.hitRenderTarget_ = n.hitDetectionEnabled_ && new mh(n.helper), n.worker_ = new Worker(Hc), n.worker_.addEventListener("message", function (t) {
- var e = t.data;
- if (e.type === pg) {
- var r = e.projectionTransform;
- e.hitDetection ? (this.hitVerticesBuffer_.fromArrayBuffer(e.vertexBuffer), this.helper.flushBufferData(this.hitVerticesBuffer_)) : (this.verticesBuffer_.fromArrayBuffer(e.vertexBuffer), this.helper.flushBufferData(this.verticesBuffer_)), this.indicesBuffer_.fromArrayBuffer(e.indexBuffer), this.helper.flushBufferData(this.indicesBuffer_), this.renderTransform_ = r, jt(this.invertRenderTransform_, this.renderTransform_), e.hitDetection ? this.hitRenderInstructions_ = new Float32Array(t.data.renderInstructions) : this.renderInstructions_ = new Float32Array(t.data.renderInstructions), this.getLayer().changed()
- }
- }.bind(n)), n.featureCache_ = {}, n.featureCount_ = 0;
- var l = n.getLayer().getSource();
- return n.sourceListenKeys_ = [Z(l, ef, n.handleSourceFeatureAdded_, n), Z(l, rf, n.handleSourceFeatureChanged_, n), Z(l, of, n.handleSourceFeatureDelete_, n), Z(l, nf, n.handleSourceFeatureClear_, n)], l.forEachFeature(function (t) {
- this.featureCache_[o(t)] = {
- feature: t,
- properties: t.getProperties(),
- geometry: t.getGeometry()
- }, this.featureCount_++
- }.bind(n)), n
- }
-
- return Sg(e, t), e.prototype.handleSourceFeatureAdded_ = function (t) {
- var e = t.feature;
- this.featureCache_[o(e)] = {
- feature: e,
- properties: e.getProperties(),
- geometry: e.getGeometry()
- }, this.featureCount_++
- }, e.prototype.handleSourceFeatureChanged_ = function (t) {
- var e = t.feature;
- this.featureCache_[o(e)] = {feature: e, properties: e.getProperties(), geometry: e.getGeometry()}
- }, e.prototype.handleSourceFeatureDelete_ = function (t) {
- var e = t.feature;
- delete this.featureCache_[o(e)], this.featureCount_--
- }, e.prototype.handleSourceFeatureClear_ = function () {
- this.featureCache_ = {}, this.featureCount_ = 0
- }, e.prototype.renderFrame = function (t) {
- this.preRender(t);
- var e = this.indicesBuffer_.getSize();
- this.helper.drawElements(0, e), this.helper.finalizeDraw(t);
- var r = this.helper.getCanvas(), n = t.layerStatesArray[t.layerIndex].opacity;
- return n !== parseFloat(r.style.opacity) && (r.style.opacity = String(n)), this.hitDetectionEnabled_ && (this.renderHitDetection(t), this.hitRenderTarget_.clearCachedData()), this.postRender(t), r
- }, e.prototype.prepareFrame = function (t) {
- var e = this.getLayer(), r = e.getSource(), n = t.viewState, i = !t.viewHints[ns] && !t.viewHints[is],
- o = !ue(this.previousExtent_, t.extent), a = this.sourceRevision_ < r.getRevision();
- if (a && (this.sourceRevision_ = r.getRevision()), i && (o || a)) {
- var s = n.projection, l = n.resolution, u = e instanceof wg ? e.getRenderBuffer() : 0,
- c = Ht(t.extent, u * l);
- r.loadFeatures(c, l, s), this.rebuildBuffers_(t), this.previousExtent_ = t.extent.slice()
- }
- return this.helper.makeProjectionTransform(t, this.currentTransform_), Ot(this.currentTransform_, this.invertRenderTransform_), this.helper.useProgram(this.program_), this.helper.prepareDraw(t), this.helper.bindBuffer(this.verticesBuffer_), this.helper.bindBuffer(this.indicesBuffer_), this.helper.enableAttributes(this.attributes), !0
- }, e.prototype.rebuildBuffers_ = function (t) {
- var e = [1, 0, 0, 1, 0, 0];
- this.helper.makeProjectionTransform(t, e);
- var r, n, i = (2 + this.customAttributes.length) * this.featureCount_;
- if (this.renderInstructions_ && this.renderInstructions_.length === i || (this.renderInstructions_ = new Float32Array(i)), this.hitDetectionEnabled_) {
- var o = (7 + this.customAttributes.length) * this.featureCount_;
- this.hitRenderInstructions_ && this.hitRenderInstructions_.length === o || (this.hitRenderInstructions_ = new Float32Array(o))
- }
- var a, s = [], l = [], u = 0, c = 0;
- for (var h in this.featureCache_) if ((n = (r = this.featureCache_[h]).geometry) && n.getType() === bt.POINT) {
- s[0] = n.getFlatCoordinates()[0], s[1] = n.getFlatCoordinates()[1], It(e, s), a = mg(c + 6, l), this.renderInstructions_[u++] = s[0], this.renderInstructions_[u++] = s[1], this.hitDetectionEnabled_ && (this.hitRenderInstructions_[c++] = s[0], this.hitRenderInstructions_[c++] = s[1], this.hitRenderInstructions_[c++] = a[0], this.hitRenderInstructions_[c++] = a[1], this.hitRenderInstructions_[c++] = a[2], this.hitRenderInstructions_[c++] = a[3], this.hitRenderInstructions_[c++] = Number(h));
- for (var p = void 0, f = 0; f < this.customAttributes.length; f++) p = this.customAttributes[f].callback(r.feature, r.properties), this.renderInstructions_[u++] = p, this.hitDetectionEnabled_ && (this.hitRenderInstructions_[c++] = p)
- }
- var d = {
- type: pg,
- renderInstructions: this.renderInstructions_.buffer,
- customAttributesCount: this.customAttributes.length
- };
- if (d.projectionTransform = e, this.worker_.postMessage(d, [this.renderInstructions_.buffer]), this.renderInstructions_ = null, this.hitDetectionEnabled_) {
- var g = {
- type: pg,
- renderInstructions: this.hitRenderInstructions_.buffer,
- customAttributesCount: 5 + this.customAttributes.length
- };
- g.projectionTransform = e, g.hitDetection = !0, this.worker_.postMessage(g, [this.hitRenderInstructions_.buffer]), this.hitRenderInstructions_ = null
- }
- }, e.prototype.forEachFeatureAtCoordinate = function (t, e, r, n, i) {
- if (pt(this.hitDetectionEnabled_, 66), this.hitRenderInstructions_) {
- var o = It(e.coordinateToPixelTransform, t.slice()), a = this.hitRenderTarget_.readPixel(o[0] / 2, o[1] / 2),
- s = vg([a[0] / 255, a[1] / 255, a[2] / 255, a[3] / 255]), l = this.hitRenderInstructions_[s],
- u = Math.floor(l).toString(), c = this.getLayer().getSource().getFeatureByUid(u);
- return c ? n(c, this.getLayer(), null) : void 0
- }
- }, e.prototype.renderHitDetection = function (t) {
- if (this.hitVerticesBuffer_.getSize()) {
- this.hitRenderTarget_.setSize([Math.floor(t.size[0] / 2), Math.floor(t.size[1] / 2)]), this.helper.useProgram(this.hitProgram_), this.helper.prepareDrawToRenderTarget(t, this.hitRenderTarget_, !0), this.helper.bindBuffer(this.hitVerticesBuffer_), this.helper.bindBuffer(this.indicesBuffer_), this.helper.enableAttributes(this.hitDetectionAttributes);
- var e = this.indicesBuffer_.getSize();
- this.helper.drawElements(0, e)
- }
- }, e.prototype.disposeInternal = function () {
- this.worker_.terminate(), this.layer_ = null, this.sourceListenKeys_.forEach((function (t) {
- H(t)
- })), this.sourceListenKeys_ = null, t.prototype.disposeInternal.call(this)
- }, e
- }(_g), Tg = {
- BEGIN_GEOMETRY: 0,
- BEGIN_PATH: 1,
- CIRCLE: 2,
- CLOSE_PATH: 3,
- CUSTOM: 4,
- DRAW_CHARS: 5,
- DRAW_IMAGE: 6,
- END_GEOMETRY: 7,
- FILL: 8,
- MOVE_TO_LINE_TO: 9,
- SET_FILL_STYLE: 10,
- SET_STROKE_STYLE: 11,
- STROKE: 12
- }, Cg = [Tg.FILL], Og = [Tg.STROKE], Pg = [Tg.BEGIN_PATH], Rg = [Tg.CLOSE_PATH], Ig = Tg, Lg = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Mg = function (t) {
- function e(e, r, n, i) {
- var o = t.call(this) || this;
- return o.tolerance = e, o.maxExtent = r, o.pixelRatio = i, o.maxLineWidth = 0, o.resolution = n, o.beginGeometryInstruction1_ = null, o.beginGeometryInstruction2_ = null, o.bufferedMaxExtent_ = null, o.instructions = [], o.coordinates = [], o.tmpCoordinate_ = [], o.hitDetectionInstructions = [], o.state = {}, o
- }
-
- return Lg(e, t), e.prototype.applyPixelRatio = function (t) {
- var e = this.pixelRatio;
- return 1 == e ? t : t.map((function (t) {
- return t * e
- }))
- }, e.prototype.appendFlatPointCoordinates = function (t, e) {
- for (var r = this.getBufferedMaxExtent(), n = this.tmpCoordinate_, i = this.coordinates, o = i.length, a = 0, s = t.length; a < s; a += e) n[0] = t[a], n[1] = t[a + 1], Qt(r, n) && (i[o++] = n[0], i[o++] = n[1]);
- return o
- }, e.prototype.appendFlatLineCoordinates = function (t, e, r, n, i, o) {
- var a = this.coordinates, s = a.length, l = this.getBufferedMaxExtent();
- o && (e += n);
- var u, c, h, p = t[e], f = t[e + 1], d = this.tmpCoordinate_, g = !0;
- for (u = e + n; u < r; u += n) d[0] = t[u], d[1] = t[u + 1], (h = re(l, d)) !== c ? (g && (a[s++] = p, a[s++] = f, g = !1), a[s++] = d[0], a[s++] = d[1]) : h === Yt ? (a[s++] = d[0], a[s++] = d[1], g = !1) : g = !0, p = d[0], f = d[1], c = h;
- return (i && g || u === e + n) && (a[s++] = p, a[s++] = f), s
- }, e.prototype.drawCustomCoordinates_ = function (t, e, r, n, i) {
- for (var o = 0, a = r.length; o < a; ++o) {
- var s = r[o], l = this.appendFlatLineCoordinates(t, e, s, n, !1, !1);
- i.push(l), e = s
- }
- return e
- }, e.prototype.drawCustom = function (t, e, r) {
- this.beginGeometry(t, e);
- var n, i, o, a, s, l = t.getType(), u = t.getStride(), c = this.coordinates.length;
- if (l == bt.MULTI_POLYGON) {
- n = t.getOrientedFlatCoordinates(), a = [];
- var h = t.getEndss();
- s = 0;
- for (var p = 0, f = h.length; p < f; ++p) {
- var d = [];
- s = this.drawCustomCoordinates_(n, s, h[p], u, d), a.push(d)
- }
- this.instructions.push([Ig.CUSTOM, c, a, t, r, Gn])
- } else l == bt.POLYGON || l == bt.MULTI_LINE_STRING ? (o = [], n = l == bt.POLYGON ? t.getOrientedFlatCoordinates() : t.getFlatCoordinates(), s = this.drawCustomCoordinates_(n, 0, t.getEnds(), u, o), this.instructions.push([Ig.CUSTOM, c, o, t, r, Dn])) : l == bt.LINE_STRING || l == bt.CIRCLE ? (n = t.getFlatCoordinates(), i = this.appendFlatLineCoordinates(n, 0, n.length, u, !1, !1), this.instructions.push([Ig.CUSTOM, c, i, t, r, Nn])) : l == bt.MULTI_POINT ? (n = t.getFlatCoordinates(), (i = this.appendFlatPointCoordinates(n, u)) > c && this.instructions.push([Ig.CUSTOM, c, i, t, r, Nn])) : l == bt.POINT && (n = t.getFlatCoordinates(), this.coordinates.push(n[0], n[1]), i = this.coordinates.length, this.instructions.push([Ig.CUSTOM, c, i, t, r]));
- this.endGeometry(e)
- }, e.prototype.beginGeometry = function (t, e) {
- this.beginGeometryInstruction1_ = [Ig.BEGIN_GEOMETRY, e, 0, t], this.instructions.push(this.beginGeometryInstruction1_), this.beginGeometryInstruction2_ = [Ig.BEGIN_GEOMETRY, e, 0, t], this.hitDetectionInstructions.push(this.beginGeometryInstruction2_)
- }, e.prototype.finish = function () {
- return {
- instructions: this.instructions,
- hitDetectionInstructions: this.hitDetectionInstructions,
- coordinates: this.coordinates
- }
- }, e.prototype.reverseHitDetectionInstructions = function () {
- var t, e = this.hitDetectionInstructions;
- e.reverse();
- var r, n, i = e.length, o = -1;
- for (t = 0; t < i; ++t) (n = (r = e[t])[0]) == Ig.END_GEOMETRY ? o = t : n == Ig.BEGIN_GEOMETRY && (r[2] = t, m(this.hitDetectionInstructions, o, t), o = -1)
- }, e.prototype.setFillStrokeStyle = function (t, e) {
- var r = this.state;
- if (t) {
- var n = t.getColor();
- r.fillStyle = Tu(n || "#000")
- } else r.fillStyle = void 0;
- if (e) {
- var i = e.getColor();
- r.strokeStyle = Tu(i || "#000");
- var o = e.getLineCap();
- r.lineCap = void 0 !== o ? o : "round";
- var a = e.getLineDash();
- r.lineDash = a ? a.slice() : pa;
- var s = e.getLineDashOffset();
- r.lineDashOffset = s || 0;
- var l = e.getLineJoin();
- r.lineJoin = void 0 !== l ? l : "round";
- var u = e.getWidth();
- r.lineWidth = void 0 !== u ? u : 1;
- var c = e.getMiterLimit();
- r.miterLimit = void 0 !== c ? c : 10, r.lineWidth > this.maxLineWidth && (this.maxLineWidth = r.lineWidth, this.bufferedMaxExtent_ = null)
- } else r.strokeStyle = void 0, r.lineCap = void 0, r.lineDash = null, r.lineDashOffset = void 0, r.lineJoin = void 0, r.lineWidth = void 0, r.miterLimit = void 0
- }, e.prototype.createFill = function (t) {
- var e = t.fillStyle, r = [Ig.SET_FILL_STYLE, e];
- return "string" != typeof e && r.push(!0), r
- }, e.prototype.applyStroke = function (t) {
- this.instructions.push(this.createStroke(t))
- }, e.prototype.createStroke = function (t) {
- return [Ig.SET_STROKE_STYLE, t.strokeStyle, t.lineWidth * this.pixelRatio, t.lineCap, t.lineJoin, t.miterLimit, this.applyPixelRatio(t.lineDash), t.lineDashOffset * this.pixelRatio]
- }, e.prototype.updateFillStyle = function (t, e) {
- var r = t.fillStyle;
- "string" == typeof r && t.currentFillStyle == r || (void 0 !== r && this.instructions.push(e.call(this, t)), t.currentFillStyle = r)
- }, e.prototype.updateStrokeStyle = function (t, e) {
- var r = t.strokeStyle, n = t.lineCap, i = t.lineDash, o = t.lineDashOffset, a = t.lineJoin, s = t.lineWidth,
- l = t.miterLimit;
- (t.currentStrokeStyle != r || t.currentLineCap != n || i != t.currentLineDash && !b(t.currentLineDash, i) || t.currentLineDashOffset != o || t.currentLineJoin != a || t.currentLineWidth != s || t.currentMiterLimit != l) && (void 0 !== r && e.call(this, t), t.currentStrokeStyle = r, t.currentLineCap = n, t.currentLineDash = i, t.currentLineDashOffset = o, t.currentLineJoin = a, t.currentLineWidth = s, t.currentMiterLimit = l)
- }, e.prototype.endGeometry = function (t) {
- this.beginGeometryInstruction1_[2] = this.instructions.length, this.beginGeometryInstruction1_ = null, this.beginGeometryInstruction2_[2] = this.hitDetectionInstructions.length, this.beginGeometryInstruction2_ = null;
- var e = [Ig.END_GEOMETRY, t];
- this.instructions.push(e), this.hitDetectionInstructions.push(e)
- }, e.prototype.getBufferedMaxExtent = function () {
- if (!this.bufferedMaxExtent_ && (this.bufferedMaxExtent_ = $t(this.maxExtent), this.maxLineWidth > 0)) {
- var t = this.resolution * (this.maxLineWidth + 1) / 2;
- Ht(this.bufferedMaxExtent_, t, this.bufferedMaxExtent_)
- }
- return this.bufferedMaxExtent_
- }, e
- }(ku), Fg = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Ag = function (t) {
- function e(e, r, n, i) {
- var o = t.call(this, e, r, n, i) || this;
- return o.hitDetectionImage_ = null, o.image_ = null, o.imagePixelRatio_ = void 0, o.anchorX_ = void 0, o.anchorY_ = void 0, o.height_ = void 0, o.opacity_ = void 0, o.originX_ = void 0, o.originY_ = void 0, o.rotateWithView_ = void 0, o.rotation_ = void 0, o.scale_ = void 0, o.width_ = void 0, o.declutterImageWithText_ = void 0, o
- }
-
- return Fg(e, t), e.prototype.drawPoint = function (t, e) {
- if (this.image_) {
- this.beginGeometry(t, e);
- var r = t.getFlatCoordinates(), n = t.getStride(), i = this.coordinates.length,
- o = this.appendFlatPointCoordinates(r, n);
- this.instructions.push([Ig.DRAW_IMAGE, i, o, this.image_, this.anchorX_ * this.imagePixelRatio_, this.anchorY_ * this.imagePixelRatio_, Math.ceil(this.height_ * this.imagePixelRatio_), this.opacity_, this.originX_, this.originY_, this.rotateWithView_, this.rotation_, [this.scale_[0] * this.pixelRatio / this.imagePixelRatio_, this.scale_[1] * this.pixelRatio / this.imagePixelRatio_], Math.ceil(this.width_ * this.imagePixelRatio_), this.declutterImageWithText_]), this.hitDetectionInstructions.push([Ig.DRAW_IMAGE, i, o, this.hitDetectionImage_, this.anchorX_, this.anchorY_, this.height_, this.opacity_, this.originX_, this.originY_, this.rotateWithView_, this.rotation_, this.scale_, this.width_, this.declutterImageWithText_]), this.endGeometry(e)
- }
- }, e.prototype.drawMultiPoint = function (t, e) {
- if (this.image_) {
- this.beginGeometry(t, e);
- var r = t.getFlatCoordinates(), n = t.getStride(), i = this.coordinates.length,
- o = this.appendFlatPointCoordinates(r, n);
- this.instructions.push([Ig.DRAW_IMAGE, i, o, this.image_, this.anchorX_ * this.imagePixelRatio_, this.anchorY_ * this.imagePixelRatio_, Math.ceil(this.height_ * this.imagePixelRatio_), this.opacity_, this.originX_, this.originY_, this.rotateWithView_, this.rotation_, [this.scale_[0] * this.pixelRatio / this.imagePixelRatio_, this.scale_[1] * this.pixelRatio / this.imagePixelRatio_], Math.ceil(this.width_ * this.imagePixelRatio_), this.declutterImageWithText_]), this.hitDetectionInstructions.push([Ig.DRAW_IMAGE, i, o, this.hitDetectionImage_, this.anchorX_, this.anchorY_, this.height_, this.opacity_, this.originX_, this.originY_, this.rotateWithView_, this.rotation_, this.scale_, this.width_, this.declutterImageWithText_]), this.endGeometry(e)
- }
- }, e.prototype.finish = function () {
- return this.reverseHitDetectionInstructions(), this.anchorX_ = void 0, this.anchorY_ = void 0, this.hitDetectionImage_ = null, this.image_ = null, this.imagePixelRatio_ = void 0, this.height_ = void 0, this.scale_ = void 0, this.opacity_ = void 0, this.originX_ = void 0, this.originY_ = void 0, this.rotateWithView_ = void 0, this.rotation_ = void 0, this.width_ = void 0, t.prototype.finish.call(this)
- }, e.prototype.setImageStyle = function (t, e) {
- var r = t.getAnchor(), n = t.getSize(), i = t.getHitDetectionImage(), o = t.getImage(this.pixelRatio),
- a = t.getOrigin();
- this.imagePixelRatio_ = t.getPixelRatio(this.pixelRatio), this.anchorX_ = r[0], this.anchorY_ = r[1], this.hitDetectionImage_ = i, this.image_ = o, this.height_ = n[1], this.opacity_ = t.getOpacity(), this.originX_ = a[0], this.originY_ = a[1], this.rotateWithView_ = t.getRotateWithView(), this.rotation_ = t.getRotation(), this.scale_ = t.getScaleArray(), this.width_ = n[0], this.declutterImageWithText_ = e
- }, e
- }(Mg), kg = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), jg = function (t) {
- function e(e, r, n, i) {
- return t.call(this, e, r, n, i) || this
- }
-
- return kg(e, t), e.prototype.drawFlatCoordinates_ = function (t, e, r, n) {
- var i = this.coordinates.length, o = this.appendFlatLineCoordinates(t, e, r, n, !1, !1),
- a = [Ig.MOVE_TO_LINE_TO, i, o];
- return this.instructions.push(a), this.hitDetectionInstructions.push(a), r
- }, e.prototype.drawLineString = function (t, e) {
- var r = this.state, n = r.strokeStyle, i = r.lineWidth;
- if (void 0 !== n && void 0 !== i) {
- this.updateStrokeStyle(r, this.applyStroke), this.beginGeometry(t, e), this.hitDetectionInstructions.push([Ig.SET_STROKE_STYLE, r.strokeStyle, r.lineWidth, r.lineCap, r.lineJoin, r.miterLimit, r.lineDash, r.lineDashOffset], Pg);
- var o = t.getFlatCoordinates(), a = t.getStride();
- this.drawFlatCoordinates_(o, 0, o.length, a), this.hitDetectionInstructions.push(Og), this.endGeometry(e)
- }
- }, e.prototype.drawMultiLineString = function (t, e) {
- var r = this.state, n = r.strokeStyle, i = r.lineWidth;
- if (void 0 !== n && void 0 !== i) {
- this.updateStrokeStyle(r, this.applyStroke), this.beginGeometry(t, e), this.hitDetectionInstructions.push([Ig.SET_STROKE_STYLE, r.strokeStyle, r.lineWidth, r.lineCap, r.lineJoin, r.miterLimit, r.lineDash, r.lineDashOffset], Pg);
- for (var o = t.getEnds(), a = t.getFlatCoordinates(), s = t.getStride(), l = 0, u = 0, c = o.length; u < c; ++u) l = this.drawFlatCoordinates_(a, l, o[u], s);
- this.hitDetectionInstructions.push(Og), this.endGeometry(e)
- }
- }, e.prototype.finish = function () {
- var e = this.state;
- return null != e.lastStroke && e.lastStroke != this.coordinates.length && this.instructions.push(Og), this.reverseHitDetectionInstructions(), this.state = null, t.prototype.finish.call(this)
- }, e.prototype.applyStroke = function (e) {
- null != e.lastStroke && e.lastStroke != this.coordinates.length && (this.instructions.push(Og), e.lastStroke = this.coordinates.length), e.lastStroke = 0, t.prototype.applyStroke.call(this, e), this.instructions.push(Pg)
- }, e
- }(Mg), Ng = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Dg = function (t) {
- function e(e, r, n, i) {
- return t.call(this, e, r, n, i) || this
- }
-
- return Ng(e, t), e.prototype.drawFlatCoordinatess_ = function (t, e, r, n) {
- var i = this.state, o = void 0 !== i.fillStyle, a = void 0 !== i.strokeStyle, s = r.length;
- this.instructions.push(Pg), this.hitDetectionInstructions.push(Pg);
- for (var l = 0; l < s; ++l) {
- var u = r[l], c = this.coordinates.length, h = this.appendFlatLineCoordinates(t, e, u, n, !0, !a),
- p = [Ig.MOVE_TO_LINE_TO, c, h];
- this.instructions.push(p), this.hitDetectionInstructions.push(p), a && (this.instructions.push(Rg), this.hitDetectionInstructions.push(Rg)), e = u
- }
- return o && (this.instructions.push(Cg), this.hitDetectionInstructions.push(Cg)), a && (this.instructions.push(Og), this.hitDetectionInstructions.push(Og)), e
- }, e.prototype.drawCircle = function (t, e) {
- var r = this.state, n = r.fillStyle, i = r.strokeStyle;
- if (void 0 !== n || void 0 !== i) {
- this.setFillStrokeStyles_(), this.beginGeometry(t, e), void 0 !== r.fillStyle && this.hitDetectionInstructions.push([Ig.SET_FILL_STYLE, "#000"]), void 0 !== r.strokeStyle && this.hitDetectionInstructions.push([Ig.SET_STROKE_STYLE, r.strokeStyle, r.lineWidth, r.lineCap, r.lineJoin, r.miterLimit, r.lineDash, r.lineDashOffset]);
- var o = t.getFlatCoordinates(), a = t.getStride(), s = this.coordinates.length;
- this.appendFlatLineCoordinates(o, 0, o.length, a, !1, !1);
- var l = [Ig.CIRCLE, s];
- this.instructions.push(Pg, l), this.hitDetectionInstructions.push(Pg, l), void 0 !== r.fillStyle && (this.instructions.push(Cg), this.hitDetectionInstructions.push(Cg)), void 0 !== r.strokeStyle && (this.instructions.push(Og), this.hitDetectionInstructions.push(Og)), this.endGeometry(e)
- }
- }, e.prototype.drawPolygon = function (t, e) {
- var r = this.state, n = r.fillStyle, i = r.strokeStyle;
- if (void 0 !== n || void 0 !== i) {
- this.setFillStrokeStyles_(), this.beginGeometry(t, e), void 0 !== r.fillStyle && this.hitDetectionInstructions.push([Ig.SET_FILL_STYLE, "#000"]), void 0 !== r.strokeStyle && this.hitDetectionInstructions.push([Ig.SET_STROKE_STYLE, r.strokeStyle, r.lineWidth, r.lineCap, r.lineJoin, r.miterLimit, r.lineDash, r.lineDashOffset]);
- var o = t.getEnds(), a = t.getOrientedFlatCoordinates(), s = t.getStride();
- this.drawFlatCoordinatess_(a, 0, o, s), this.endGeometry(e)
- }
- }, e.prototype.drawMultiPolygon = function (t, e) {
- var r = this.state, n = r.fillStyle, i = r.strokeStyle;
- if (void 0 !== n || void 0 !== i) {
- this.setFillStrokeStyles_(), this.beginGeometry(t, e), void 0 !== r.fillStyle && this.hitDetectionInstructions.push([Ig.SET_FILL_STYLE, "#000"]), void 0 !== r.strokeStyle && this.hitDetectionInstructions.push([Ig.SET_STROKE_STYLE, r.strokeStyle, r.lineWidth, r.lineCap, r.lineJoin, r.miterLimit, r.lineDash, r.lineDashOffset]);
- for (var o = t.getEndss(), a = t.getOrientedFlatCoordinates(), s = t.getStride(), l = 0, u = 0, c = o.length; u < c; ++u) l = this.drawFlatCoordinatess_(a, l, o[u], s);
- this.endGeometry(e)
- }
- }, e.prototype.finish = function () {
- this.reverseHitDetectionInstructions(), this.state = null;
- var e = this.tolerance;
- if (0 !== e) for (var r = this.coordinates, n = 0, i = r.length; n < i; ++n) r[n] = Fn(r[n], e);
- return t.prototype.finish.call(this)
- }, e.prototype.setFillStrokeStyles_ = function () {
- var t = this.state;
- void 0 !== t.fillStyle && this.updateFillStyle(t, this.createFill), void 0 !== t.strokeStyle && this.updateStrokeStyle(t, this.applyStroke)
- }, e
- }(Mg);
-
- function Gg(t, e, r, n, i) {
- var o, a, s, l, u, c, h, p, f, d = r, g = r, y = 0, m = 0, v = r;
- for (o = r; o < n; o += i) {
- var _ = e[o], b = e[o + 1];
- void 0 !== l && (p = _ - l, f = b - u, s = Math.sqrt(p * p + f * f), void 0 !== c && (m += a, Math.acos((c * p + h * f) / (a * s)) > t && (m > y && (y = m, d = v, g = o), m = 0, v = o - i)), a = s, c = p, h = f), l = _, u = b
- }
- return (m += s) > y ? [v, o] : [d, g]
- }
-
- var zg = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Ug = {
- left: 0,
- end: 0,
- center: .5,
- right: 1,
- start: 1,
- top: 0,
- middle: .5,
- hanging: .2,
- alphabetic: .8,
- ideographic: .8,
- bottom: 1
- }, Bg = function (t) {
- function e(e, r, n, i) {
- var o = t.call(this, e, r, n, i) || this;
- return o.labels_ = null, o.text_ = "", o.textOffsetX_ = 0, o.textOffsetY_ = 0, o.textRotateWithView_ = void 0, o.textRotation_ = 0, o.textFillState_ = null, o.fillStates = {}, o.textStrokeState_ = null, o.strokeStates = {}, o.textState_ = {}, o.textStates = {}, o.textKey_ = "", o.fillKey_ = "", o.strokeKey_ = "", o.declutterImageWithText_ = void 0, o
- }
-
- return zg(e, t), e.prototype.finish = function () {
- var e = t.prototype.finish.call(this);
- return e.textStates = this.textStates, e.fillStates = this.fillStates, e.strokeStates = this.strokeStates, e
- }, e.prototype.drawText = function (t, e) {
- var r = this.textFillState_, n = this.textStrokeState_, i = this.textState_;
- if ("" !== this.text_ && i && (r || n)) {
- var o = this.coordinates, a = o.length, s = t.getType(), l = null, u = t.getStride();
- if (i.placement !== Ep || s != bt.LINE_STRING && s != bt.MULTI_LINE_STRING && s != bt.POLYGON && s != bt.MULTI_POLYGON) {
- var c = i.overflow ? null : [];
- switch (s) {
- case bt.POINT:
- case bt.MULTI_POINT:
- l = t.getFlatCoordinates();
- break;
- case bt.LINE_STRING:
- l = t.getFlatMidpoint();
- break;
- case bt.CIRCLE:
- l = t.getCenter();
- break;
- case bt.MULTI_LINE_STRING:
- l = t.getFlatMidpoints(), u = 2;
- break;
- case bt.POLYGON:
- l = t.getFlatInteriorPoint(), i.overflow || c.push(l[2] / this.resolution), u = 3;
- break;
- case bt.MULTI_POLYGON:
- var h = t.getFlatInteriorPoints();
- l = [];
- for (x = 0, w = h.length; x < w; x += 3) i.overflow || c.push(h[x + 2] / this.resolution), l.push(h[x], h[x + 1]);
- if (0 === l.length) return;
- u = 2
- }
- if ((R = this.appendFlatPointCoordinates(l, u)) === a) return;
- this.saveTextStates_(), (i.backgroundFill || i.backgroundStroke) && (this.setFillStrokeStyle(i.backgroundFill, i.backgroundStroke), i.backgroundFill && (this.updateFillStyle(this.state, this.createFill), this.hitDetectionInstructions.push(this.createFill(this.state))), i.backgroundStroke && (this.updateStrokeStyle(this.state, this.applyStroke), this.hitDetectionInstructions.push(this.createStroke(this.state)))), this.beginGeometry(t, e);
- var p = i.padding;
- if (p != fa && (i.scale[0] < 0 || i.scale[1] < 0)) {
- var f = i.padding[0], d = i.padding[1], g = i.padding[2], y = i.padding[3];
- i.scale[0] < 0 && (d = -d, y = -y), i.scale[1] < 0 && (f = -f, g = -g), p = [f, d, g, y]
- }
- var m = this.pixelRatio;
- this.instructions.push([Ig.DRAW_IMAGE, a, R, null, NaN, NaN, NaN, 1, 0, 0, this.textRotateWithView_, this.textRotation_, [1, 1], NaN, this.declutterImageWithText_, p == fa ? fa : p.map((function (t) {
- return t * m
- })), !!i.backgroundFill, !!i.backgroundStroke, this.text_, this.textKey_, this.strokeKey_, this.fillKey_, this.textOffsetX_, this.textOffsetY_, c]);
- var v = 1 / m;
- this.hitDetectionInstructions.push([Ig.DRAW_IMAGE, a, R, null, NaN, NaN, NaN, 1, 0, 0, this.textRotateWithView_, this.textRotation_, [v, v], NaN, this.declutterImageWithText_, p, !!i.backgroundFill, !!i.backgroundStroke, this.text_, this.textKey_, this.strokeKey_, this.fillKey_, this.textOffsetX_, this.textOffsetY_, c]), this.endGeometry(e)
- } else {
- if (!Re(this.getBufferedMaxExtent(), t.getExtent())) return;
- var _ = void 0;
- if (l = t.getFlatCoordinates(), s == bt.LINE_STRING) _ = [l.length]; else if (s == bt.MULTI_LINE_STRING) _ = t.getEnds(); else if (s == bt.POLYGON) _ = t.getEnds().slice(0, 1); else if (s == bt.MULTI_POLYGON) {
- var b = t.getEndss();
- _ = [];
- for (var x = 0, w = b.length; x < w; ++x) _.push(b[x][0])
- }
- this.beginGeometry(t, e);
- for (var S = i.textAlign, E = 0, T = void 0, C = 0, O = _.length; C < O; ++C) {
- if (null == S) {
- var P = Gg(i.maxAngle, l, E, _[C], u);
- E = P[0], T = P[1]
- } else T = _[C];
- for (var x = E; x < T; x += u) o.push(l[x], l[x + 1]);
- var R = o.length;
- E = _[C], this.drawChars_(a, R), a = R
- }
- this.endGeometry(e)
- }
- }
- }, e.prototype.saveTextStates_ = function () {
- var t = this.textStrokeState_, e = this.textState_, r = this.textFillState_, n = this.strokeKey_;
- t && (n in this.strokeStates || (this.strokeStates[n] = {
- strokeStyle: t.strokeStyle,
- lineCap: t.lineCap,
- lineDashOffset: t.lineDashOffset,
- lineWidth: t.lineWidth,
- lineJoin: t.lineJoin,
- miterLimit: t.miterLimit,
- lineDash: t.lineDash
- }));
- var i = this.textKey_;
- i in this.textStates || (this.textStates[i] = {
- font: e.font,
- textAlign: e.textAlign || "center",
- textBaseline: e.textBaseline || "middle",
- scale: e.scale
- });
- var o = this.fillKey_;
- r && (o in this.fillStates || (this.fillStates[o] = {fillStyle: r.fillStyle}))
- }, e.prototype.drawChars_ = function (t, e) {
- var r = this.textStrokeState_, n = this.textState_, i = this.strokeKey_, o = this.textKey_, a = this.fillKey_;
- this.saveTextStates_();
- var s = this.pixelRatio, l = Ug[n.textBaseline], u = this.textOffsetY_ * s, c = this.text_,
- h = r ? r.lineWidth * Math.abs(n.scale[0]) / 2 : 0;
- this.instructions.push([Ig.DRAW_CHARS, t, e, l, n.overflow, a, n.maxAngle, s, u, i, h * s, c, o, 1]), this.hitDetectionInstructions.push([Ig.DRAW_CHARS, t, e, l, n.overflow, a, n.maxAngle, 1, u, i, h, c, o, 1 / s])
- }, e.prototype.setTextStyle = function (t, e) {
- var r, n, i;
- if (t) {
- var a = t.getFill();
- a ? ((n = this.textFillState_) || (n = {}, this.textFillState_ = n), n.fillStyle = Tu(a.getColor() || "#000")) : (n = null, this.textFillState_ = n);
- var s = t.getStroke();
- if (s) {
- (i = this.textStrokeState_) || (i = {}, this.textStrokeState_ = i);
- var l = s.getLineDash(), u = s.getLineDashOffset(), c = s.getWidth(), h = s.getMiterLimit();
- i.lineCap = s.getLineCap() || "round", i.lineDash = l ? l.slice() : pa, i.lineDashOffset = void 0 === u ? 0 : u, i.lineJoin = s.getLineJoin() || "round", i.lineWidth = void 0 === c ? 1 : c, i.miterLimit = void 0 === h ? 10 : h, i.strokeStyle = Tu(s.getColor() || "#000")
- } else i = null, this.textStrokeState_ = i;
- r = this.textState_;
- var p = t.getFont() || "10px sans-serif";
- ba(p);
- var f = t.getScaleArray();
- r.overflow = t.getOverflow(), r.font = p, r.maxAngle = t.getMaxAngle(), r.placement = t.getPlacement(), r.textAlign = t.getTextAlign(), r.textBaseline = t.getTextBaseline() || "middle", r.backgroundFill = t.getBackgroundFill(), r.backgroundStroke = t.getBackgroundStroke(), r.padding = t.getPadding() || fa, r.scale = void 0 === f ? [1, 1] : f;
- var d = t.getOffsetX(), g = t.getOffsetY(), y = t.getRotateWithView(), m = t.getRotation();
- this.text_ = t.getText() || "", this.textOffsetX_ = void 0 === d ? 0 : d, this.textOffsetY_ = void 0 === g ? 0 : g, this.textRotateWithView_ = void 0 !== y && y, this.textRotation_ = void 0 === m ? 0 : m, this.strokeKey_ = i ? ("string" == typeof i.strokeStyle ? i.strokeStyle : o(i.strokeStyle)) + i.lineCap + i.lineDashOffset + "|" + i.lineWidth + i.lineJoin + i.miterLimit + "[" + i.lineDash.join() + "]" : "", this.textKey_ = r.font + r.scale + (r.textAlign || "?") + (r.textBaseline || "?"), this.fillKey_ = n ? "string" == typeof n.fillStyle ? n.fillStyle : "|" + o(n.fillStyle) : ""
- } else this.text_ = "";
- this.declutterImageWithText_ = e
- }, e
- }(Mg), Vg = {Circle: Dg, Default: Mg, Image: Ag, LineString: jg, Polygon: Dg, Text: Bg}, Yg = function () {
- function t(t, e, r, n) {
- this.tolerance_ = t, this.maxExtent_ = e, this.pixelRatio_ = n, this.resolution_ = r, this.buildersByZIndex_ = {}
- }
-
- return t.prototype.finish = function () {
- var t = {};
- for (var e in this.buildersByZIndex_) {
- t[e] = t[e] || {};
- var r = this.buildersByZIndex_[e];
- for (var n in r) {
- var i = r[n].finish();
- t[e][n] = i
- }
- }
- return t
- }, t.prototype.getBuilder = function (t, e) {
- var r = void 0 !== t ? t.toString() : "0", n = this.buildersByZIndex_[r];
- void 0 === n && (n = {}, this.buildersByZIndex_[r] = n);
- var i = n[e];
- void 0 === i && (i = new (0, Vg[e])(this.tolerance_, this.maxExtent_, this.resolution_, this.pixelRatio_), n[e] = i);
- return i
- }, t
- }();
-
- function Wg(t, e, r, n, i, o, a, s, l, u, c, h) {
- var p = t[e], f = t[e + 1], d = 0, g = 0, y = 0, m = 0;
-
- function v() {
- d = p, g = f, p = t[e += n], f = t[e + 1], m += y, y = Math.sqrt((p - d) * (p - d) + (f - g) * (f - g))
- }
-
- do {
- v()
- } while (e < r - n && m + y < o);
- for (var _ = (o - m) / y, b = qe(d, p, _), x = qe(g, f, _), w = e - n, S = m, E = o + s * l(u, i, c); e < r - n && m + y < E;) v();
- var T, C = qe(d, p, _ = (E - m) / y), O = qe(g, f, _);
- if (h) {
- var P = [b, x, C, O];
- un(P, 0, 4, 2, h, P, P), T = P[0] > P[2]
- } else T = b > C;
- var R, I = Math.PI, L = [], M = w + n === e;
- if (y = 0, m = S, p = t[e = w], f = t[e + 1], M) {
- v();
- var F = Math.atan2(f - g, p - d);
- T && (F += F > 0 ? -I : I);
- var A = (C + b) / 2, k = (O + x) / 2;
- return L[0] = [A, k, (E - o) / 2, F, i], L
- }
- for (var j = 0, N = i.length; j < N;) {
- v();
- var D = Math.atan2(f - g, p - d);
- if (T && (D += D > 0 ? -I : I), void 0 !== R) {
- var G = D - R;
- if (G += G > I ? -2 * I : G < -I ? 2 * I : 0, Math.abs(G) > a) return null
- }
- R = D;
- for (var z = j, U = 0; j < N; ++j) {
- var B = s * l(u, i[T ? N - j - 1 : j], c);
- if (e + n < r && m + y < o + U + B / 2) break;
- U += B
- }
- if (j !== z) {
- var V = T ? i.substring(N - z, N - j) : i.substring(z, j);
- A = qe(d, p, _ = (o + U / 2 - m) / y), k = qe(g, f, _);
- L.push([A, k, U / 2, D, V]), o += U
- }
- }
- return L
- }
-
- function qg(t, e, r, n) {
- for (var i = t[e], o = t[e + 1], a = 0, s = e + n; s < r; s += n) {
- var l = t[s], u = t[s + 1];
- a += Math.sqrt((l - i) * (l - i) + (u - o) * (u - o)), i = l, o = u
- }
- return a
- }
-
- var Xg = [1 / 0, 1 / 0, -1 / 0, -1 / 0], Zg = [], Kg = [], Hg = [], $g = [];
-
- function Jg(t) {
- return t[3].declutterBox
- }
-
- var Qg = new RegExp("[" + String.fromCharCode(1425) + "-" + String.fromCharCode(2303) + String.fromCharCode(64285) + "-" + String.fromCharCode(65023) + String.fromCharCode(65136) + "-" + String.fromCharCode(65276) + String.fromCharCode(67584) + "-" + String.fromCharCode(69631) + String.fromCharCode(124928) + "-" + String.fromCharCode(126975) + "]");
-
- function ty(t, e) {
- return "start" !== e && "end" !== e || Qg.test(t) || (e = "start" === e ? "left" : "right"), Ug[e]
- }
-
- var ey = function () {
- function t(t, e, r, n, i) {
- this.overlaps = r, this.pixelRatio = e, this.resolution = t, this.alignFill_, this.instructions = n.instructions, this.coordinates = n.coordinates, this.coordinateCache_ = {}, this.renderBuffer_ = i, this.renderedTransform_ = [1, 0, 0, 1, 0, 0], this.hitDetectionInstructions = n.hitDetectionInstructions, this.pixelCoordinates_ = null, this.viewRotation_ = 0, this.fillStates = n.fillStates || {}, this.strokeStates = n.strokeStates || {}, this.textStates = n.textStates || {}, this.widths_ = {}, this.labels_ = {}
- }
-
- return t.prototype.createLabel = function (t, e, r, n) {
- var i = t + e + r + n;
- if (this.labels_[i]) return this.labels_[i];
- var o = n ? this.strokeStates[n] : null, a = r ? this.fillStates[r] : null, s = this.textStates[e],
- l = this.pixelRatio, u = [s.scale[0] * l, s.scale[1] * l], c = ty(t, s.textAlign || "center"),
- h = n && o.lineWidth ? o.lineWidth : 0, p = t.split("\n"), f = p.length, d = [], g = Ta(s.font, p, d),
- y = xa(s.font), m = g + h, v = [], _ = (m + 2) * u[0], b = (y * f + h) * u[1], x = {
- width: _ < 0 ? Math.floor(_) : Math.ceil(_),
- height: b < 0 ? Math.floor(b) : Math.ceil(b),
- contextInstructions: v
- };
- (1 == u[0] && 1 == u[1] || v.push("scale", u), v.push("font", s.font), n) && (v.push("strokeStyle", o.strokeStyle), v.push("lineWidth", h), v.push("lineCap", o.lineCap), v.push("lineJoin", o.lineJoin), v.push("miterLimit", o.miterLimit), (Yi ? OffscreenCanvasRenderingContext2D : CanvasRenderingContext2D).prototype.setLineDash && (v.push("setLineDash", [o.lineDash]), v.push("lineDashOffset", o.lineDashOffset)));
- r && v.push("fillStyle", a.fillStyle), v.push("textBaseline", "middle"), v.push("textAlign", "center");
- var w, S = .5 - c, E = c * m + S * h;
- if (n) for (w = 0; w < f; ++w) v.push("strokeText", [p[w], E + S * d[w], .5 * (h + y) + w * y]);
- if (r) for (w = 0; w < f; ++w) v.push("fillText", [p[w], E + S * d[w], .5 * (h + y) + w * y]);
- return this.labels_[i] = x, x
- }, t.prototype.replayTextBackground_ = function (t, e, r, n, i, o, a) {
- t.beginPath(), t.moveTo.apply(t, e), t.lineTo.apply(t, r), t.lineTo.apply(t, n), t.lineTo.apply(t, i), t.lineTo.apply(t, e), o && (this.alignFill_ = o[2], this.fill_(t)), a && (this.setStrokeStyle_(t, a), t.stroke())
- }, t.prototype.calculateImageOrLabelDimensions_ = function (t, e, r, n, i, o, a, s, l, u, c, h, p, f, d, g) {
- var y, m = r - (a *= h[0]), v = n - (s *= h[1]), _ = i + l > t ? t - l : i, b = o + u > e ? e - u : o,
- x = f[3] + _ * h[0] + f[1], w = f[0] + b * h[1] + f[2], S = m - f[3], E = v - f[0];
- return (d || 0 !== c) && (Zg[0] = S, $g[0] = S, Zg[1] = E, Kg[1] = E, Kg[0] = S + x, Hg[0] = Kg[0], Hg[1] = E + w, $g[1] = Hg[1]), 0 !== c ? (It(y = kt([1, 0, 0, 1, 0, 0], r, n, 1, 1, c, -r, -n), Zg), It(y, Kg), It(y, Hg), It(y, $g), ie(Math.min(Zg[0], Kg[0], Hg[0], $g[0]), Math.min(Zg[1], Kg[1], Hg[1], $g[1]), Math.max(Zg[0], Kg[0], Hg[0], $g[0]), Math.max(Zg[1], Kg[1], Hg[1], $g[1]), Xg)) : ie(Math.min(S, S + x), Math.min(E, E + w), Math.max(S, S + x), Math.max(E, E + w), Xg), p && (m = Math.round(m), v = Math.round(v)), {
- drawImageX: m,
- drawImageY: v,
- drawImageW: _,
- drawImageH: b,
- originX: l,
- originY: u,
- declutterBox: {minX: Xg[0], minY: Xg[1], maxX: Xg[2], maxY: Xg[3], value: g},
- canvasTransform: y,
- scale: h
- }
- }, t.prototype.replayImageOrLabel_ = function (t, e, r, n, i, o, a) {
- var s = !(!o && !a), l = n.declutterBox, u = t.canvas, c = a ? a[2] * n.scale[0] / 2 : 0;
- return l.minX - c <= u.width / e && l.maxX + c >= 0 && l.minY - c <= u.height / e && l.maxY + c >= 0 && (s && this.replayTextBackground_(t, Zg, Kg, Hg, $g, o, a), Oa(t, n.canvasTransform, i, r, n.originX, n.originY, n.drawImageW, n.drawImageH, n.drawImageX, n.drawImageY, n.scale)), !0
- }, t.prototype.fill_ = function (t) {
- if (this.alignFill_) {
- var e = It(this.renderedTransform_, [0, 0]), r = 512 * this.pixelRatio;
- t.save(), t.translate(e[0] % r, e[1] % r), t.rotate(this.viewRotation_)
- }
- t.fill(), this.alignFill_ && t.restore()
- }, t.prototype.setStrokeStyle_ = function (t, e) {
- t.strokeStyle = e[1], t.lineWidth = e[2], t.lineCap = e[3], t.lineJoin = e[4], t.miterLimit = e[5], t.setLineDash && (t.lineDashOffset = e[7], t.setLineDash(e[6]))
- }, t.prototype.drawLabelWithPointPlacement_ = function (t, e, r, n) {
- var i = this.textStates[e], o = this.createLabel(t, e, n, r), a = this.strokeStates[r], s = this.pixelRatio,
- l = ty(t, i.textAlign || "center"), u = Ug[i.textBaseline || "middle"],
- c = a && a.lineWidth ? a.lineWidth : 0;
- return {
- label: o,
- anchorX: l * (o.width / s - 2 * i.scale[0]) + 2 * (.5 - l) * c,
- anchorY: u * o.height / s + 2 * (.5 - u) * c
- }
- }, t.prototype.execute_ = function (t, e, r, n, i, o, a, s) {
- var l;
- this.pixelCoordinates_ && b(r, this.renderedTransform_) ? l = this.pixelCoordinates_ : (this.pixelCoordinates_ || (this.pixelCoordinates_ = []), l = ln(this.coordinates, 0, this.coordinates.length, 2, r, this.pixelCoordinates_), Rt(this.renderedTransform_, r));
- for (var u, c, h, p, f, d, g, y, m, v, _, x, w, S, E, T, C = 0, O = n.length, P = 0, R = 0, I = 0, L = null, M = null, F = this.coordinateCache_, A = this.viewRotation_, k = Math.round(1e12 * Math.atan2(-r[1], r[0])) / 1e12, j = {
- context: t,
- pixelRatio: this.pixelRatio,
- resolution: this.resolution,
- rotation: A
- }, N = this.instructions != n || this.overlaps ? 0 : 200; C < O;) {
- var D = n[C];
- switch (D[0]) {
- case Ig.BEGIN_GEOMETRY:
- w = D[1], T = D[3], w.getGeometry() ? void 0 === a || Re(a, T.getExtent()) ? ++C : C = D[2] + 1 : C = D[2];
- break;
- case Ig.BEGIN_PATH:
- R > N && (this.fill_(t), R = 0), I > N && (t.stroke(), I = 0), R || I || (t.beginPath(), p = NaN, f = NaN), ++C;
- break;
- case Ig.CIRCLE:
- var G = l[P = D[1]], z = l[P + 1], U = l[P + 2] - G, B = l[P + 3] - z, V = Math.sqrt(U * U + B * B);
- t.moveTo(G + V, z), t.arc(G, z, V, 0, 2 * Math.PI, !0), ++C;
- break;
- case Ig.CLOSE_PATH:
- t.closePath(), ++C;
- break;
- case Ig.CUSTOM:
- P = D[1], u = D[2];
- var Y = D[3], W = D[4], q = 6 == D.length ? D[5] : void 0;
- j.geometry = Y, j.feature = w, C in F || (F[C] = []);
- var X = F[C];
- q ? q(l, P, u, 2, X) : (X[0] = l[P], X[1] = l[P + 1], X.length = 2), W(X, j), ++C;
- break;
- case Ig.DRAW_IMAGE:
- P = D[1], u = D[2], y = D[3], c = D[4], h = D[5];
- var Z = D[6], K = D[7], H = D[8], $ = D[9], J = D[10], Q = D[11], tt = D[12], et = D[13], rt = D[14];
- if (!y && D.length >= 19) {
- m = D[18], v = D[19], _ = D[20], x = D[21];
- var nt = this.drawLabelWithPointPlacement_(m, v, _, x);
- y = nt.label, D[3] = y;
- var it = D[22];
- c = (nt.anchorX - it) * this.pixelRatio, D[4] = c;
- var ot = D[23];
- h = (nt.anchorY - ot) * this.pixelRatio, D[5] = h, Z = y.height, D[6] = Z, et = y.width, D[13] = et
- }
- var at = void 0;
- D.length > 24 && (at = D[24]);
- var st = void 0, lt = void 0, ut = void 0;
- D.length > 16 ? (st = D[15], lt = D[16], ut = D[17]) : (st = fa, lt = !1, ut = !1), J && k ? Q += A : J || k || (Q -= A);
- for (var ct = 0; P < u; P += 2) if (!(at && at[ct++] < et / this.pixelRatio)) {
- var ht = [t, e, y, Dt = this.calculateImageOrLabelDimensions_(y.width, y.height, l[P], l[P + 1], et, Z, c, h, H, $, Q, tt, i, st, lt || ut, w), K, lt ? L : null, ut ? M : null],
- pt = void 0, ft = void 0;
- if (s && rt) {
- if (!rt[P]) {
- rt[P] = ht;
- continue
- }
- if (pt = rt[P], delete rt[P], ft = Jg(pt), s.collides(ft)) continue
- }
- s && s.collides(Dt.declutterBox) || (pt && (s && s.insert(ft), this.replayImageOrLabel_.apply(this, pt)), s && s.insert(Dt.declutterBox), this.replayImageOrLabel_.apply(this, ht))
- }
- ++C;
- break;
- case Ig.DRAW_CHARS:
- var dt = D[1], gt = D[2], yt = D[3], mt = D[4];
- x = D[5];
- var vt = D[6], _t = D[7], bt = D[8];
- _ = D[9];
- var xt = D[10];
- m = D[11], v = D[12];
- var wt = [D[13], D[13]], St = this.textStates[v], Et = St.font, Tt = [St.scale[0] * _t, St.scale[1] * _t],
- Ct = void 0;
- Et in this.widths_ ? Ct = this.widths_[Et] : (Ct = {}, this.widths_[Et] = Ct);
- var Ot = qg(l, dt, gt, 2), Pt = Math.abs(Tt[0]) * Ea(Et, m, Ct);
- if (mt || Pt <= Ot) {
- var It = this.textStates[v].textAlign,
- Lt = Wg(l, dt, gt, 2, m, (Ot - Pt) * Ug[It], vt, Math.abs(Tt[0]), Ea, Et, Ct, k ? 0 : this.viewRotation_);
- t:if (Lt) {
- var Mt = [], Ft = void 0, At = void 0, kt = void 0, jt = void 0, Nt = void 0;
- if (_) for (Ft = 0, At = Lt.length; Ft < At; ++Ft) {
- kt = (Nt = Lt[Ft])[4], jt = this.createLabel(kt, v, "", _), c = Nt[2] + (Tt[0] < 0 ? -xt : xt), h = yt * jt.height + 2 * (.5 - yt) * xt * Tt[1] / Tt[0] - bt;
- var Dt = this.calculateImageOrLabelDimensions_(jt.width, jt.height, Nt[0], Nt[1], jt.width, jt.height, c, h, 0, 0, Nt[3], wt, !1, fa, !1, w);
- if (s && s.collides(Dt.declutterBox)) break t;
- Mt.push([t, e, jt, Dt, 1, null, null])
- }
- if (x) for (Ft = 0, At = Lt.length; Ft < At; ++Ft) {
- kt = (Nt = Lt[Ft])[4], jt = this.createLabel(kt, v, x, ""), c = Nt[2], h = yt * jt.height - bt;
- Dt = this.calculateImageOrLabelDimensions_(jt.width, jt.height, Nt[0], Nt[1], jt.width, jt.height, c, h, 0, 0, Nt[3], wt, !1, fa, !1, w);
- if (s && s.collides(Dt.declutterBox)) break t;
- Mt.push([t, e, jt, Dt, 1, null, null])
- }
- s && s.load(Mt.map(Jg));
- for (var Gt = 0, zt = Mt.length; Gt < zt; ++Gt) this.replayImageOrLabel_.apply(this, Mt[Gt])
- }
- }
- ++C;
- break;
- case Ig.END_GEOMETRY:
- if (void 0 !== o) {
- var Ut = o(w = D[1], T);
- if (Ut) return Ut
- }
- ++C;
- break;
- case Ig.FILL:
- N ? R++ : this.fill_(t), ++C;
- break;
- case Ig.MOVE_TO_LINE_TO:
- for (P = D[1], u = D[2], S = l[P], g = (E = l[P + 1]) + .5 | 0, (d = S + .5 | 0) === p && g === f || (t.moveTo(S, E), p = d, f = g), P += 2; P < u; P += 2) d = (S = l[P]) + .5 | 0, g = (E = l[P + 1]) + .5 | 0, P != u - 2 && d === p && g === f || (t.lineTo(S, E), p = d, f = g);
- ++C;
- break;
- case Ig.SET_FILL_STYLE:
- L = D, this.alignFill_ = D[2], R && (this.fill_(t), R = 0, I && (t.stroke(), I = 0)), t.fillStyle = D[1], ++C;
- break;
- case Ig.SET_STROKE_STYLE:
- M = D, I && (t.stroke(), I = 0), this.setStrokeStyle_(t, D), ++C;
- break;
- case Ig.STROKE:
- N ? I++ : t.stroke(), ++C;
- break;
- default:
- ++C
- }
- }
- R && this.fill_(t), I && t.stroke()
- }, t.prototype.execute = function (t, e, r, n, i, o) {
- this.viewRotation_ = n, this.execute_(t, e, r, this.instructions, i, void 0, void 0, o)
- }, t.prototype.executeHitDetection = function (t, e, r, n, i) {
- return this.viewRotation_ = r, this.execute_(t, 1, e, this.hitDetectionInstructions, !0, n, i)
- }, t
- }(), ry = [Bu, Du, Uu, zu, Vu, Gu], ny = function () {
- function t(t, e, r, n, i, o) {
- this.maxExtent_ = t, this.overlaps_ = n, this.pixelRatio_ = r, this.resolution_ = e, this.renderBuffer_ = o, this.executorsByZIndex_ = {}, this.hitDetectionContext_ = null, this.hitDetectionTransform_ = [1, 0, 0, 1, 0, 0], this.createExecutors_(i)
- }
-
- return t.prototype.clip = function (t, e) {
- var r = this.getClipCoords(e);
- t.beginPath(), t.moveTo(r[0], r[1]), t.lineTo(r[2], r[3]), t.lineTo(r[4], r[5]), t.lineTo(r[6], r[7]), t.clip()
- }, t.prototype.createExecutors_ = function (t) {
- for (var e in t) {
- var r = this.executorsByZIndex_[e];
- void 0 === r && (r = {}, this.executorsByZIndex_[e] = r);
- var n = t[e], i = [this.renderBuffer_ || 0, this.renderBuffer_ || 0];
- for (var o in n) {
- var a = n[o];
- r[o] = new ey(this.resolution_, this.pixelRatio_, this.overlaps_, a, i)
- }
- }
- }, t.prototype.hasExecutors = function (t) {
- for (var e in this.executorsByZIndex_) for (var r = this.executorsByZIndex_[e], n = 0, i = t.length; n < i; ++n) if (t[n] in r) return !0;
- return !1
- }, t.prototype.forEachFeatureAtCoordinate = function (t, e, r, n, i, o) {
- var a = 2 * (n = Math.round(n)) + 1,
- s = kt(this.hitDetectionTransform_, n + .5, n + .5, 1 / e, -1 / e, -r, -t[0], -t[1]),
- l = !this.hitDetectionContext_;
- l && (this.hitDetectionContext_ = uo(a, a));
- var u, c = this.hitDetectionContext_;
- c.canvas.width !== a || c.canvas.height !== a ? (c.canvas.width = a, c.canvas.height = a) : l || c.clearRect(0, 0, a, a), void 0 !== this.renderBuffer_ && (pe(u = [1 / 0, 1 / 0, -1 / 0, -1 / 0], t), Ht(u, e * (this.renderBuffer_ + n), u));
- var h, p = oy(n);
-
- function f(t, e) {
- for (var r = c.getImageData(0, 0, a, a).data, s = 0, l = p.length; s < l; s++) if (r[p[s]] > 0) {
- if (!o || h !== zu && h !== Vu || -1 !== o.indexOf(t)) {
- var u = (p[s] - 3) / 4, f = n - u % a, d = n - (u / a | 0), g = i(t, e, f * f + d * d);
- if (g) return g
- }
- c.clearRect(0, 0, a, a);
- break
- }
- }
-
- var g, y, m, v, _, b = Object.keys(this.executorsByZIndex_).map(Number);
- for (b.sort(d), g = b.length - 1; g >= 0; --g) {
- var x = b[g].toString();
- for (m = this.executorsByZIndex_[x], y = ry.length - 1; y >= 0; --y) if (void 0 !== (v = m[h = ry[y]]) && (_ = v.executeHitDetection(c, s, r, f, u))) return _
- }
- }, t.prototype.getClipCoords = function (t) {
- var e = this.maxExtent_;
- if (!e) return null;
- var r = e[0], n = e[1], i = e[2], o = e[3], a = [r, n, r, o, i, o, i, n];
- return ln(a, 0, 8, 2, t, a), a
- }, t.prototype.isEmpty = function () {
- return I(this.executorsByZIndex_)
- }, t.prototype.execute = function (t, e, r, n, i, o, a) {
- var s = Object.keys(this.executorsByZIndex_).map(Number);
- s.sort(d), this.maxExtent_ && (t.save(), this.clip(t, r));
- var l, u, c, h, p, f, g = o || ry;
- for (a && s.reverse(), l = 0, u = s.length; l < u; ++l) {
- var y = s[l].toString();
- for (p = this.executorsByZIndex_[y], c = 0, h = g.length; c < h; ++c) {
- void 0 !== (f = p[g[c]]) && f.execute(t, e, r, n, i, a)
- }
- }
- this.maxExtent_ && t.restore()
- }, t
- }(), iy = {};
-
- function oy(t) {
- if (void 0 !== iy[t]) return iy[t];
- for (var e = 2 * t + 1, r = t * t, n = new Array(r + 1), i = 0; i <= t; ++i) for (var o = 0; o <= t; ++o) {
- var a = i * i + o * o;
- if (a > r) break;
- var s = n[a];
- s || (s = [], n[a] = s), s.push(4 * ((t + i) * e + (t + o)) + 3), i > 0 && s.push(4 * ((t - i) * e + (t + o)) + 3), o > 0 && (s.push(4 * ((t + i) * e + (t - o)) + 3), i > 0 && s.push(4 * ((t - i) * e + (t - o)) + 3))
- }
- for (var l = [], u = (i = 0, n.length); i < u; ++i) n[i] && l.push.apply(l, n[i]);
- return iy[t] = l, l
- }
-
- var ay = ny;
-
- function sy(t, e, r, n, i, o, a) {
- var s = uo(t[0] / 2, t[1] / 2);
- s.imageSmoothingEnabled = !1;
- for (var l = s.canvas, u = new Nu(s, .5, i, null, a), c = r.length, h = Math.floor(16777215 / c), p = {}, f = 1; f <= c; ++f) {
- var g = r[f - 1], y = g.getStyleFunction() || n;
- if (n) {
- var m = y(g, o);
- if (m) {
- Array.isArray(m) || (m = [m]);
- for (var v = "#" + ("000000" + (f * h).toString(16)).slice(-6), _ = 0, b = m.length; _ < b; ++_) {
- var x = m[_], w = x.clone(), S = w.getFill();
- S && S.setColor(v);
- var E = w.getStroke();
- E && E.setColor(v), w.setText(void 0);
- var T = x.getImage();
- if (T) {
- var C = T.getImageSize();
- if (!C) continue;
- var O = document.createElement("canvas");
- O.width = C[0], O.height = C[1];
- var P = O.getContext("2d", {alpha: !1});
- P.fillStyle = v;
- var R = P.canvas;
- P.fillRect(0, 0, R.width, R.height), uo(C ? C[0] : R.width, C ? C[1] : R.height).drawImage(R, 0, 0), w.setImage(new dp({
- img: R,
- imgSize: C,
- anchor: T.getAnchor(),
- anchorXUnits: np,
- anchorYUnits: np,
- offset: T.getOrigin(),
- size: T.getSize(),
- opacity: T.getOpacity(),
- scale: T.getScale(),
- rotation: T.getRotation(),
- rotateWithView: T.getRotateWithView()
- }))
- }
- var I = Number(w.getZIndex());
- (A = p[I]) || (A = {}, p[I] = A, A[bt.POLYGON] = [], A[bt.CIRCLE] = [], A[bt.LINE_STRING] = [], A[bt.POINT] = []);
- var L = w.getGeometryFunction()(g);
- L && Re(i, L.getExtent()) && A[L.getType().replace("Multi", "")].push(L, w)
- }
- }
- }
- }
- for (var M = Object.keys(p).map(Number).sort(d), F = (f = 0, M.length); f < F; ++f) {
- var A = p[M[f]];
- for (var k in A) {
- var j = A[k];
- for (_ = 0, b = j.length; _ < b; _ += 2) {
- u.setStyle(j[_ + 1]);
- for (var N = 0, D = e.length; N < D; ++N) u.setTransform(e[N]), u.drawGeometry(j[_])
- }
- }
- }
- return s.getImageData(0, 0, l.width, l.height)
- }
-
- function ly(t, e, r) {
- var n = [];
- if (r) {
- var i = 4 * (Math.round(t[0] / 2) + Math.round(t[1] / 2) * r.width), o = r.data[i], a = r.data[i + 1],
- s = r.data[i + 2] + 256 * (a + 256 * o), l = Math.floor(16777215 / e.length);
- s && s % l == 0 && n.push(e[s / l - 1])
- }
- return n
- }
-
- var uy = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), cy = function (t) {
- function e(e) {
- var r = t.call(this, e) || this;
- return r.boundHandleStyleImageChange_ = r.handleStyleImageChange_.bind(r), r.animatingOrInteracting_, r.dirty_ = !1, r.hitDetectionImageData_ = null, r.renderedFeatures_ = null, r.renderedRevision_ = -1, r.renderedResolution_ = NaN, r.renderedExtent_ = [1 / 0, 1 / 0, -1 / 0, -1 / 0], r.renderedRotation_, r.renderedCenter_ = null, r.renderedProjection_ = null, r.renderedRenderOrder_ = null, r.replayGroup_ = null, r.replayGroupChanged = !0, r.declutterExecutorGroup = null, r.clipping = !0, r
- }
-
- return uy(e, t), e.prototype.useContainer = function (e, r, n) {
- n < 1 && (e = null), t.prototype.useContainer.call(this, e, r, n)
- }, e.prototype.renderWorlds = function (t, e, r) {
- var n = e.extent, i = e.viewState, o = i.center, a = i.resolution, s = i.projection, l = i.rotation,
- u = s.getExtent(), c = this.getLayer().getSource(), h = e.pixelRatio, p = e.viewHints, f = !(p[ns] || p[is]),
- d = this.context, g = Math.round(e.size[0] * h), y = Math.round(e.size[1] * h),
- m = c.getWrapX() && s.canWrapX(), v = m ? Pe(u) : null, _ = m ? Math.ceil((n[2] - u[2]) / v) + 1 : 1,
- b = m ? Math.floor((n[0] - u[0]) / v) : 0;
- do {
- var x = this.getRenderTransform(o, a, l, h, g, y, b * v);
- t.execute(d, 1, x, l, f, void 0, r)
- } while (++b < _)
- }, e.prototype.renderDeclutter = function (t) {
- this.declutterExecutorGroup && this.renderWorlds(this.declutterExecutorGroup, t, t.declutterTree)
- }, e.prototype.renderFrame = function (t, e) {
- var r = t.pixelRatio, n = t.layerStatesArray[t.layerIndex];
- Ft(this.pixelTransform, 1 / r, 1 / r), jt(this.inversePixelTransform, this.pixelTransform);
- var i = Dt(this.pixelTransform);
- this.useContainer(e, i, n.opacity);
- var o = this.context, a = o.canvas, s = this.replayGroup_, l = this.declutterExecutorGroup;
- if ((!s || s.isEmpty()) && (!l || l.isEmpty())) return !this.containerReused && a.width > 0 && (a.width = 0), this.container;
- var u = Math.round(t.size[0] * r), c = Math.round(t.size[1] * r);
- a.width != u || a.height != c ? (a.width = u, a.height = c, a.style.transform !== i && (a.style.transform = i)) : this.containerReused || o.clearRect(0, 0, u, c), this.preRender(o, t);
- var h = t.viewState, p = h.projection, f = !1;
- if (n.extent && this.clipping) {
- var d = on(n.extent, p);
- (f = !te(d, t.extent) && Re(d, t.extent)) && this.clipUnrotated(o, t, d)
- }
- this.renderWorlds(s, t), f && o.restore(), this.postRender(o, t);
- var g = n.opacity, y = this.container;
- return g !== parseFloat(y.style.opacity) && (y.style.opacity = 1 === g ? "" : String(g)), this.renderedRotation_ !== h.rotation && (this.renderedRotation_ = h.rotation, this.hitDetectionImageData_ = null), this.container
- }, e.prototype.getFeatures = function (t) {
- return new Promise(function (e) {
- if (!this.hitDetectionImageData_ && !this.animatingOrInteracting_) {
- var r = [this.context.canvas.width, this.context.canvas.height];
- It(this.pixelTransform, r);
- var n = this.renderedCenter_, i = this.renderedResolution_, o = this.renderedRotation_,
- a = this.renderedProjection_, s = this.renderedExtent_, l = this.getLayer(), u = [], c = r[0] / 2,
- h = r[1] / 2;
- u.push(this.getRenderTransform(n, i, o, .5, c, h, 0).slice());
- var p = l.getSource(), f = a.getExtent();
- if (p.getWrapX() && a.canWrapX() && !te(f, s)) {
- for (var d = s[0], g = Pe(f), y = 0, m = void 0; d < f[0];) m = g * --y, u.push(this.getRenderTransform(n, i, o, .5, c, h, m).slice()), d += g;
- for (y = 0, d = s[2]; d > f[2];) m = g * ++y, u.push(this.getRenderTransform(n, i, o, .5, c, h, m).slice()), d -= g
- }
- this.hitDetectionImageData_ = sy(r, u, this.renderedFeatures_, l.getStyleFunction(), s, i, o)
- }
- e(ly(t, this.renderedFeatures_, this.hitDetectionImageData_))
- }.bind(this))
- }, e.prototype.forEachFeatureAtCoordinate = function (t, e, r, n, i) {
- var a = this;
- if (this.replayGroup_) {
- var s, l = e.viewState.resolution, u = e.viewState.rotation, c = this.getLayer(), h = {},
- p = function (t, e, r) {
- var a = o(t), s = h[a];
- if (s) {
- if (!0 !== s && r < s.distanceSq) {
- if (0 === r) return h[a] = !0, i.splice(i.lastIndexOf(s), 1), n(t, c, e);
- s.geometry = e, s.distanceSq = r
- }
- } else {
- if (0 === r) return h[a] = !0, n(t, c, e);
- i.push(h[a] = {feature: t, layer: c, geometry: e, distanceSq: r, callback: n})
- }
- }, f = [this.replayGroup_];
- return this.declutterExecutorGroup && f.push(this.declutterExecutorGroup), f.some((function (n) {
- return s = n.forEachFeatureAtCoordinate(t, l, u, r, p, n === a.declutterExecutorGroup ? e.declutterTree.all().map((function (t) {
- return t.value
- })) : null)
- })), s
- }
- }, e.prototype.handleFontsChanged = function () {
- var t = this.getLayer();
- t.getVisible() && this.replayGroup_ && t.changed()
- }, e.prototype.handleStyleImageChange_ = function (t) {
- this.renderIfReadyAndVisible()
- }, e.prototype.prepareFrame = function (t) {
- var e = this.getLayer(), r = e.getSource();
- if (!r) return !1;
- var n = t.viewHints[ns], i = t.viewHints[is], o = e.getUpdateWhileAnimating(),
- a = e.getUpdateWhileInteracting();
- if (!this.dirty_ && !o && n || !a && i) return this.animatingOrInteracting_ = !0, !0;
- this.animatingOrInteracting_ = !1;
- var s = t.extent, l = t.viewState, u = l.projection, c = l.resolution, h = t.pixelRatio, p = e.getRevision(),
- f = e.getRenderBuffer(), d = e.getRenderOrder();
- void 0 === d && (d = Wu);
- var g = l.center.slice(), y = Ht(s, f * c), m = [y.slice()], v = u.getExtent();
- if (r.getWrapX() && u.canWrapX() && !te(v, t.extent)) {
- var _ = Pe(v), b = Math.max(Pe(y) / 2, _);
- y[0] = v[0] - b, y[2] = v[2] + b, Fr(g, u);
- var x = ke(m[0], u);
- x[0] < v[0] && x[2] < v[2] ? m.push([x[0] + _, x[1], x[2] + _, x[3]]) : x[0] > v[0] && x[2] > v[2] && m.push([x[0] - _, x[1], x[2] - _, x[3]])
- }
- if (!this.dirty_ && this.renderedResolution_ == c && this.renderedRevision_ == p && this.renderedRenderOrder_ == d && te(this.renderedExtent_, y)) return this.replayGroupChanged = !1, !0;
- this.replayGroup_ = null, this.dirty_ = !1;
- var w, S = new Yg(Xu(c, h), y, c, h);
- this.getLayer().getDeclutter() && (w = new Yg(Xu(c, h), y, c, h));
- var E, T = tn();
- if (T) {
- for (var C = 0, O = m.length; C < O; ++C) r.loadFeatures(nn(m[C], u), c, T);
- E = Zr(T, u)
- } else for (C = 0, O = m.length; C < O; ++C) r.loadFeatures(m[C], c, u);
- var P = qu(c, h), R = function (t) {
- var r, n = t.getStyleFunction() || e.getStyleFunction();
- if (n && (r = n(t, c)), r) {
- var i = this.renderFeature(t, P, r, S, E, w);
- this.dirty_ = this.dirty_ || i
- }
- }.bind(this), I = nn(y, u), L = r.getFeaturesInExtent(I);
- d && L.sort(d);
- for (C = 0, O = L.length; C < O; ++C) R(L[C]);
- this.renderedFeatures_ = L;
- var M = S.finish(), F = new ay(y, c, h, r.getOverlaps(), M, e.getRenderBuffer());
- return w && (this.declutterExecutorGroup = new ay(y, c, h, r.getOverlaps(), w.finish(), e.getRenderBuffer())), this.renderedResolution_ = c, this.renderedRevision_ = p, this.renderedRenderOrder_ = d, this.renderedExtent_ = y, this.renderedCenter_ = g, this.renderedProjection_ = u, this.replayGroup_ = F, this.hitDetectionImageData_ = null, this.replayGroupChanged = !0, !0
- }, e.prototype.renderFeature = function (t, e, r, n, i, o) {
- if (!r) return !1;
- var a = !1;
- if (Array.isArray(r)) for (var s = 0, l = r.length; s < l; ++s) a = Zu(n, t, r[s], e, this.boundHandleStyleImageChange_, i, o) || a; else a = Zu(n, t, r, e, this.boundHandleStyleImageChange_, i, o);
- return a
- }, e
- }(cd), hy = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), py = function (t) {
- function e(e) {
- var r = t.call(this, e) || this;
- return r.vectorRenderer_ = new cy(e), r.layerImageRatio_ = e.getImageRatio(), r.coordinateToVectorPixelTransform_ = [1, 0, 0, 1, 0, 0], r.renderedPixelToCoordinateTransform_ = null, r
- }
-
- return hy(e, t), e.prototype.disposeInternal = function () {
- this.vectorRenderer_.dispose(), t.prototype.disposeInternal.call(this)
- }, e.prototype.getFeatures = function (t) {
- if (this.vectorRenderer_) {
- var e = It(this.coordinateToVectorPixelTransform_, It(this.renderedPixelToCoordinateTransform_, t.slice()));
- return this.vectorRenderer_.getFeatures(e)
- }
- return new Promise((function (t, e) {
- t([])
- }))
- }, e.prototype.handleFontsChanged = function () {
- this.vectorRenderer_.handleFontsChanged()
- }, e.prototype.prepareFrame = function (t) {
- var e = t.pixelRatio, r = t.viewState, n = r.resolution, i = t.viewHints, o = this.vectorRenderer_,
- a = t.extent;
- 1 !== this.layerImageRatio_ && Me(a = a.slice(0), this.layerImageRatio_);
- var s = Pe(a) / n, l = Ee(a) / n;
- if (!i[ns] && !i[is] && !Ie(a)) {
- o.useContainer(null, null, 1);
- var u = o.context, c = O({}, t, {
- declutterTree: new Pp.a(9),
- extent: a,
- size: [s, l],
- viewState: O({}, t.viewState, {rotation: 0})
- }), h = new $i(a, n, e, u.canvas, (function (t) {
- o.prepareFrame(c) && o.replayGroupChanged && (o.clipping = !1, o.renderFrame(c, null), o.renderDeclutter(c), t())
- }));
- h.addEventListener(F, function () {
- if (h.getState() === ki) {
- this.image_ = h;
- var t = h.getResolution(), n = h.getPixelRatio(), i = t * e / n;
- this.renderedResolution = i, this.coordinateToVectorPixelTransform_ = kt(this.coordinateToVectorPixelTransform_, s / 2, l / 2, 1 / i, -1 / i, 0, -r.center[0], -r.center[1])
- }
- }.bind(this)), h.load()
- }
- return this.image_ && (this.renderedPixelToCoordinateTransform_ = t.pixelToCoordinateTransform.slice()), !!this.image_
- }, e.prototype.preRender = function () {
- }, e.prototype.postRender = function () {
- }, e.prototype.renderDeclutter = function () {
- }, e.prototype.forEachFeatureAtCoordinate = function (e, r, n, i, o) {
- return this.vectorRenderer_ ? this.vectorRenderer_.forEachFeatureAtCoordinate(e, r, n, i, o) : t.prototype.forEachFeatureAtCoordinate.call(this, e, r, n, i, o)
- }, e
- }(pd), fy = "image", dy = "hybrid", gy = "vector", yy = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), my = {image: [Bu, Du, Uu, zu, Vu], hybrid: [Bu, Uu], vector: []},
- vy = {image: [Gu], hybrid: [zu, Vu, Gu], vector: [Bu, Du, Uu, zu, Vu, Gu]}, _y = function (t) {
- function e(e) {
- var r = t.call(this, e) || this;
- return r.boundHandleStyleImageChange_ = r.handleStyleImageChange_.bind(r), r.dirty_ = !1, r.renderedLayerRevision_, r.renderedPixelToCoordinateTransform_ = null, r.renderedRotation_, r.renderTileImageQueue_ = {}, r.tileListenerKeys_ = {}, r.tmpTransform_ = [1, 0, 0, 1, 0, 0], r
- }
-
- return yy(e, t), e.prototype.prepareTile = function (t, e, r, n) {
- var i, a = o(t), s = t.getState();
- return (s === to && t.hifi || s === eo) && a in this.tileListenerKeys_ && (H(this.tileListenerKeys_[a]), delete this.tileListenerKeys_[a]), s !== to && s !== eo || (this.updateExecutorGroup_(t, e, r), this.tileImageNeedsRender_(t, e, r) && (i = !0, n && (this.renderTileImageQueue_[a] = t))), i
- }, e.prototype.getTile = function (e, r, n, i) {
- var a = i.pixelRatio, s = i.viewState, l = s.resolution, u = s.projection, c = this.getLayer(),
- h = c.getSource().getTile(e, r, n, a, u);
- if (h.getState() < to) {
- h.wantedResolution = l;
- var p = o(h);
- if (!(p in this.tileListenerKeys_)) {
- var f = Z(h, F, this.prepareTile.bind(this, h, a, u, !0));
- this.tileListenerKeys_[p] = f
- }
- } else {
- var d = i.viewHints;
- !!(d[ns] || d[is]) && h.wantedResolution || (h.wantedResolution = l), this.prepareTile(h, a, u, !1) && c.getRenderMode() !== gy && this.renderTileImage_(h, i)
- }
- return t.prototype.getTile.call(this, e, r, n, i)
- }, e.prototype.isDrawableTile = function (e) {
- var r = this.getLayer();
- return t.prototype.isDrawableTile.call(this, e) && (r.getRenderMode() === gy ? o(r) in e.executorGroups : e.hasContext(r))
- }, e.prototype.getTileImage = function (t) {
- return t.getImage(this.getLayer())
- }, e.prototype.prepareFrame = function (e) {
- var r = this.getLayer().getRevision();
- return this.renderedLayerRevision_ != r && (this.renderedTiles.length = 0), this.renderedLayerRevision_ = r, t.prototype.prepareFrame.call(this, e)
- }, e.prototype.updateExecutorGroup_ = function (t, e, r) {
- var n = this.getLayer(), i = n.getRevision(), a = n.getRenderOrder() || null, s = t.wantedResolution,
- l = t.getReplayState(n);
- if (l.dirty || l.renderedResolution !== s || l.renderedRevision != i || l.renderedRenderOrder != a || l.renderedZ !== t.sourceZ) {
- var u = n.getSource(), c = n.getDeclutter(), h = u.getTileGrid(),
- p = u.getTileGridForProjection(r).getTileCoordExtent(t.wrappedTileCoord), f = u.getSourceTiles(e, r, t),
- d = o(n);
- delete t.hitDetectionImageData[d], t.executorGroups[d] = [], c && (t.declutterExecutorGroups[d] = []);
- for (var g = function (r, i) {
- var o = f[r];
- if (o.getState() != to) return "continue";
- var g = o.tileCoord, m = h.getTileCoordExtent(g), v = Te(p, m),
- _ = ue(m, v) ? null : Ht(v, n.getRenderBuffer() * s, y.tmpExtent);
- l.dirty = !1;
- var b = new Yg(0, v, s, e), x = c ? new Yg(0, v, s, e) : void 0, w = qu(s, e), S = function (t) {
- var e, r = t.getStyleFunction() || n.getStyleFunction();
- if (r && (e = r(t, s)), e) {
- var i = this.renderFeature(t, w, e, b, x);
- this.dirty_ = this.dirty_ || i, l.dirty = l.dirty || i
- }
- }, E = o.getFeatures();
- a && a !== l.renderedRenderOrder && E.sort(a);
- for (var T = 0, C = E.length; T < C; ++T) {
- var O = E[T];
- _ && !Re(_, O.getGeometry().getExtent()) || S.call(y, O)
- }
- var P = b.finish(), R = n.getRenderMode() !== gy && c && 1 === f.length ? null : v,
- I = new ay(R, s, e, u.getOverlaps(), P, n.getRenderBuffer());
- if (t.executorGroups[d].push(I), x) {
- var L = new ay(R, s, e, u.getOverlaps(), x.finish(), n.getRenderBuffer());
- t.declutterExecutorGroups[d].push(L)
- }
- }, y = this, m = 0, v = f.length; m < v; ++m) g(m);
- l.renderedRevision = i, l.renderedZ = t.sourceZ, l.renderedRenderOrder = a, l.renderedResolution = s
- }
- }, e.prototype.forEachFeatureAtCoordinate = function (t, e, r, n, i) {
- var a = e.viewState.resolution, s = e.viewState.rotation;
- r = null == r ? 0 : r;
- var l = this.getLayer(), u = l.getSource().getTileGridForProjection(e.viewState.projection), c = Kt([t]);
- Ht(c, a * r, c);
- for (var h, p = {}, f = function (t, e, r) {
- var a = t.getId();
- void 0 === a && (a = o(t));
- var s = p[a];
- if (s) {
- if (!0 !== s && r < s.distanceSq) {
- if (0 === r) return p[a] = !0, i.splice(i.lastIndexOf(s), 1), n(t, l, e);
- s.geometry = e, s.distanceSq = r
- }
- } else {
- if (0 === r) return p[a] = !0, n(t, l, e);
- i.push(p[a] = {feature: t, layer: l, geometry: e, distanceSq: r, callback: n})
- }
- }, d = this.renderedTiles, g = function (n, i) {
- var p = d[n];
- if (!Re(u.getTileCoordExtent(p.wrappedTileCoord), c)) return "continue";
- var g = o(l), y = [p.executorGroups[g]], m = p.declutterExecutorGroups[g];
- m && y.push(m), y.some((function (n) {
- for (var i = n === m ? e.declutterTree.all().map((function (t) {
- return t.value
- })) : null, o = 0, l = n.length; o < l; ++o) {
- var u = n[o];
- if (h = u.forEachFeatureAtCoordinate(t, a, s, r, f, i)) return !0
- }
- }))
- }, y = 0, m = d.length; !h && y < m; ++y) g(y);
- return h
- }, e.prototype.getFeatures = function (t) {
- return new Promise(function (e, r) {
- for (var n, i = this.getLayer(), a = o(i), s = i.getSource(), l = this.renderedProjection, u = l.getExtent(), c = this.renderedResolution, h = s.getTileGridForProjection(l), p = It(this.renderedPixelToCoordinateTransform_, t.slice()), f = h.getTileCoordForCoordAndResolution(p, c), d = 0, g = this.renderedTiles.length; d < g; ++d) if (f.toString() === this.renderedTiles[d].tileCoord.toString()) {
- if ((n = this.renderedTiles[d]).getState() === to && n.hifi) {
- var y = h.getTileCoordExtent(n.tileCoord);
- s.getWrapX() && l.canWrapX() && !te(u, y) && Fr(p, l);
- break
- }
- n = void 0
- }
- if (!n || n.loadingSourceTiles > 0) e([]); else {
- var m = Ce(h.getTileCoordExtent(n.wrappedTileCoord)), v = [(p[0] - m[0]) / c, (m[1] - p[1]) / c],
- _ = n.getSourceTiles().reduce((function (t, e) {
- return t.concat(e.getFeatures())
- }), []), b = n.hitDetectionImageData[a];
- if (!b && !this.animatingOrInteracting_) {
- var x = Is(h.getTileSize(h.getZForResolution(c))), w = [x[0] / 2, x[1] / 2], S = this.renderedRotation_;
- b = sy(x, [this.getRenderTransform(h.getTileCoordCenter(n.wrappedTileCoord), c, 0, .5, w[0], w[1], 0)], _, i.getStyleFunction(), h.getTileCoordExtent(n.wrappedTileCoord), n.getReplayState(i).renderedResolution, S), n.hitDetectionImageData[a] = b
- }
- e(ly(v, _, b))
- }
- }.bind(this))
- }, e.prototype.handleFontsChanged = function () {
- P(this.renderTileImageQueue_);
- var t = this.getLayer();
- t.getVisible() && void 0 !== this.renderedLayerRevision_ && t.changed()
- }, e.prototype.handleStyleImageChange_ = function (t) {
- this.renderIfReadyAndVisible()
- }, e.prototype.renderDeclutter = function (t) {
- for (var e = t.viewHints, r = !(e[ns] || e[is]), n = this.renderedTiles, i = 0, a = n.length; i < a; ++i) {
- var s = n[i], l = s.declutterExecutorGroups[o(this.getLayer())];
- if (l) for (var u = l.length - 1; u >= 0; --u) l[u].execute(this.context, 1, this.getTileRenderTransform(s, t), t.viewState.rotation, r, void 0, t.declutterTree)
- }
- }, e.prototype.getTileRenderTransform = function (t, e) {
- var r = e.pixelRatio, n = e.viewState, i = n.center, o = n.resolution, a = n.rotation, s = e.size,
- l = Math.round(s[0] * r), u = Math.round(s[1] * r),
- c = this.getLayer().getSource().getTileGridForProjection(e.viewState.projection), h = t.tileCoord,
- p = c.getTileCoordExtent(t.wrappedTileCoord), f = c.getTileCoordExtent(h, this.tmpExtent)[0] - p[0];
- return Ot(Mt(this.inversePixelTransform.slice(), 1 / r, 1 / r), this.getRenderTransform(i, o, a, r, l, u, f))
- }, e.prototype.renderFrame = function (e, r) {
- var n = e.viewHints, i = !(n[ns] || n[is]);
- this.renderQueuedTileImages_(i, e), t.prototype.renderFrame.call(this, e, r), this.renderedPixelToCoordinateTransform_ = e.pixelToCoordinateTransform.slice(), this.renderedRotation_ = e.viewState.rotation;
- var a = this.getLayer(), s = a.getRenderMode();
- if (s === fy) return this.container;
- var l = a.getSource(), u = e.usedTiles[o(l)];
- for (var c in this.renderTileImageQueue_) u && c in u || delete this.renderTileImageQueue_[c];
- for (var h = this.context, p = vy[s], f = e.viewState.rotation, d = this.renderedTiles, g = [], y = [], m = d.length - 1; m >= 0; --m) for (var v = d[m], _ = this.getTileRenderTransform(v, e), b = v.executorGroups[o(a)], x = !1, w = 0, S = b.length; w < S; ++w) {
- var E = b[w];
- if (E.hasExecutors(p)) {
- var T = v.tileCoord[0], C = void 0;
- if (!x && (C = E.getClipCoords(_))) {
- h.save();
- for (var O = 0, P = g.length; O < P; ++O) {
- var R = g[O];
- T < y[O] && (h.beginPath(), h.moveTo(C[0], C[1]), h.lineTo(C[2], C[3]), h.lineTo(C[4], C[5]), h.lineTo(C[6], C[7]), h.moveTo(R[6], R[7]), h.lineTo(R[4], R[5]), h.lineTo(R[2], R[3]), h.lineTo(R[0], R[1]), h.clip())
- }
- }
- E.execute(h, 1, _, f, i, p), !x && C && (h.restore(), g.push(C), y.push(T), x = !0)
- }
- }
- return this.container
- }, e.prototype.renderQueuedTileImages_ = function (t, e) {
- for (var r in this.renderTileImageQueue_) {
- if (!t && Date.now() - e.time > 8) {
- e.animate = !0;
- break
- }
- var n = this.renderTileImageQueue_[r];
- delete this.renderTileImageQueue_[r], this.renderTileImage_(n, e)
- }
- }, e.prototype.renderFeature = function (t, e, r, n, i) {
- if (!r) return !1;
- var o = !1;
- if (Array.isArray(r)) for (var a = 0, s = r.length; a < s; ++a) o = Zu(n, t, r[a], e, this.boundHandleStyleImageChange_, void 0, i) || o; else o = Zu(n, t, r, e, this.boundHandleStyleImageChange_, void 0, i);
- return o
- }, e.prototype.tileImageNeedsRender_ = function (t, e, r) {
- var n = this.getLayer(), i = t.getReplayState(n), o = n.getRevision(), a = t.sourceZ, s = t.wantedResolution;
- return i.renderedTileResolution !== s || i.renderedTileRevision !== o || i.renderedTileZ !== a
- }, e.prototype.renderTileImage_ = function (t, e) {
- var r = this.getLayer(), n = t.getReplayState(r), i = r.getRevision(), a = t.executorGroups[o(r)];
- n.renderedTileRevision = i, n.renderedTileZ = t.sourceZ;
- var s = t.wrappedTileCoord, l = s[0], u = r.getSource(), c = e.pixelRatio, h = e.viewState.projection,
- p = u.getTileGridForProjection(h), f = p.getResolution(t.tileCoord[0]),
- d = e.pixelRatio / t.wantedResolution * f, g = p.getResolution(l), y = t.getContext(r);
- c = Math.round(Math.max(c, d / c));
- var m = u.getTilePixelSize(l, c, h);
- y.canvas.width = m[0], y.canvas.height = m[1];
- var v = c / d;
- if (1 !== v) {
- var _ = Ct(this.tmpTransform_);
- Mt(_, v, v), y.setTransform.apply(y, _)
- }
- var b = p.getTileCoordExtent(s, this.tmpExtent), x = d / g, w = Ct(this.tmpTransform_);
- Mt(w, x, -x), At(w, -b[0], -b[3]);
- for (var S = 0, E = a.length; S < E; ++S) {
- a[S].execute(y, v, w, 0, !0, my[r.getRenderMode()])
- }
- n.renderedTileResolution = t.wantedResolution
- }, e
- }(xd);
-
- function by(t, e, r, n, i, o, a) {
- var s, l, u = (r - e) / n;
- if (1 === u) s = e; else if (2 === u) s = e, l = i; else if (0 !== u) {
- for (var c = t[e], h = t[e + 1], p = 0, d = [0], g = e + n; g < r; g += n) {
- var y = t[g], m = t[g + 1];
- p += Math.sqrt((y - c) * (y - c) + (m - h) * (m - h)), d.push(p), c = y, h = m
- }
- var v = i * p, _ = f(d, v);
- _ < 0 ? (l = (v - d[-_ - 2]) / (d[-_ - 1] - d[-_ - 2]), s = e + (-_ - 2) * n) : s = e + _ * n
- }
- var b = a > 1 ? a : 2, x = o || new Array(b);
- for (g = 0; g < b; ++g) x[g] = void 0 === s ? NaN : void 0 === l ? t[s + g] : qe(t[s + g], t[s + n + g], l);
- return x
- }
-
- function xy(t, e, r, n, i, o) {
- if (r == e) return null;
- var a;
- if (i < t[e + n - 1]) return o ? ((a = t.slice(e, e + n))[n - 1] = i, a) : null;
- if (t[r - 1] < i) return o ? ((a = t.slice(r - n, r))[n - 1] = i, a) : null;
- if (i == t[e + n - 1]) return t.slice(e, e + n);
- for (var s = e / n, l = r / n; s < l;) {
- var u = s + l >> 1;
- i < t[(u + 1) * n - 1] ? l = u : s = u + 1
- }
- var c = t[s * n - 1];
- if (i == c) return t.slice((s - 1) * n, (s - 1) * n + n);
- var h = (i - c) / (t[(s + 1) * n - 1] - c);
- a = [];
- for (var p = 0; p < n - 1; ++p) a.push(qe(t[(s - 1) * n + p], t[s * n + p], h));
- return a.push(i), a
- }
-
- function wy(t, e, r, n, i, o, a) {
- if (a) return xy(t, e, r[r.length - 1], n, i, o);
- var s;
- if (i < t[n - 1]) return o ? ((s = t.slice(0, n))[n - 1] = i, s) : null;
- if (t[t.length - 1] < i) return o ? ((s = t.slice(t.length - n))[n - 1] = i, s) : null;
- for (var l = 0, u = r.length; l < u; ++l) {
- var c = r[l];
- if (e != c) {
- if (i < t[e + n - 1]) return null;
- if (i <= t[c - 1]) return xy(t, e, c, n, i, !1);
- e = c
- }
- }
- return null
- }
-
- function Sy(t, e, r, n) {
- for (var i = [], o = [1 / 0, 1 / 0, -1 / 0, -1 / 0], a = 0, s = r.length; a < s; ++a) {
- var l = r[a];
- o = le(t, e, l[0], n), i.push((o[0] + o[2]) / 2, (o[1] + o[3]) / 2), e = l[l.length - 1]
- }
- return i
- }
-
- var Ey = [1, 0, 0, 1, 0, 0], Ty = function () {
- function t(t, e, r, n, i) {
- this.extent_, this.id_ = i, this.type_ = t, this.flatCoordinates_ = e, this.flatInteriorPoints_ = null, this.flatMidpoints_ = null, this.ends_ = r, this.properties_ = n
- }
-
- return t.prototype.get = function (t) {
- return this.properties_[t]
- }, t.prototype.getExtent = function () {
- return this.extent_ || (this.extent_ = this.type_ === bt.POINT ? ae(this.flatCoordinates_) : le(this.flatCoordinates_, 0, this.flatCoordinates_.length, 2)), this.extent_
- }, t.prototype.getFlatInteriorPoint = function () {
- if (!this.flatInteriorPoints_) {
- var t = xe(this.getExtent());
- this.flatInteriorPoints_ = $n(this.flatCoordinates_, 0, this.ends_, 2, t, 0)
- }
- return this.flatInteriorPoints_
- }, t.prototype.getFlatInteriorPoints = function () {
- if (!this.flatInteriorPoints_) {
- var t = Sy(this.flatCoordinates_, 0, this.ends_, 2);
- this.flatInteriorPoints_ = Jn(this.flatCoordinates_, 0, this.ends_, 2, t)
- }
- return this.flatInteriorPoints_
- }, t.prototype.getFlatMidpoint = function () {
- return this.flatMidpoints_ || (this.flatMidpoints_ = by(this.flatCoordinates_, 0, this.flatCoordinates_.length, 2, .5)), this.flatMidpoints_
- }, t.prototype.getFlatMidpoints = function () {
- if (!this.flatMidpoints_) {
- this.flatMidpoints_ = [];
- for (var t = this.flatCoordinates_, e = 0, r = this.ends_, n = 0, i = r.length; n < i; ++n) {
- var o = r[n], a = by(t, e, o, 2, .5);
- v(this.flatMidpoints_, a), e = o
- }
- }
- return this.flatMidpoints_
- }, t.prototype.getId = function () {
- return this.id_
- }, t.prototype.getOrientedFlatCoordinates = function () {
- return this.flatCoordinates_
- }, t.prototype.getGeometry = function () {
- return this
- }, t.prototype.getSimplifiedGeometry = function (t) {
- return this
- }, t.prototype.simplifyTransformed = function (t, e) {
- return this
- }, t.prototype.getProperties = function () {
- return this.properties_
- }, t.prototype.getStride = function () {
- return 2
- }, t.prototype.getStyleFunction = function () {
- }, t.prototype.getType = function () {
- return this.type_
- }, t.prototype.transform = function (t) {
- var e = (t = Gr(t)).getExtent(), r = t.getWorldExtent();
- if (e && r) {
- var n = Ee(r) / Ee(e);
- kt(Ey, r[0], r[3], n, -n, 0, 0, 0), ln(this.flatCoordinates_, 0, this.flatCoordinates_.length, 2, Ey, this.flatCoordinates_)
- }
- }, t.prototype.getEnds = function () {
- return this.ends_
- }, t
- }();
- Ty.prototype.getEndss = Ty.prototype.getEnds, Ty.prototype.getFlatCoordinates = Ty.prototype.getOrientedFlatCoordinates;
- var Cy = Ty;
- var Oy = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Py = function (t) {
- function e(e, r) {
- var n = t.call(this) || this;
- return n.flatMidpoint_ = null, n.flatMidpointRevision_ = -1, n.maxDelta_ = -1, n.maxDeltaRevision_ = -1, void 0 === r || Array.isArray(e[0]) ? n.setCoordinates(e, r) : n.setFlatCoordinates(r, e), n
- }
-
- return Oy(e, t), e.prototype.appendCoordinate = function (t) {
- this.flatCoordinates ? v(this.flatCoordinates, t) : this.flatCoordinates = t.slice(), this.changed()
- }, e.prototype.clone = function () {
- var t = new e(this.flatCoordinates.slice(), this.layout);
- return t.applyProperties(this), t
- }, e.prototype.closestPointXY = function (t, e, r, n) {
- return n < Jt(this.getExtent(), t, e) ? n : (this.maxDeltaRevision_ != this.getRevision() && (this.maxDelta_ = Math.sqrt(bn(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, 0)), this.maxDeltaRevision_ = this.getRevision()), Sn(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, this.maxDelta_, !1, t, e, r, n))
- }, e.prototype.forEachSegment = function (t) {
- return Qn(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, t)
- }, e.prototype.getCoordinateAtM = function (t, e) {
- if (this.layout != vt && this.layout != _t) return null;
- var r = void 0 !== e && e;
- return xy(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, t, r)
- }, e.prototype.getCoordinates = function () {
- return Nn(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride)
- }, e.prototype.getCoordinateAt = function (t, e) {
- return by(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, t, e, this.stride)
- }, e.prototype.getLength = function () {
- return qg(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride)
- }, e.prototype.getFlatMidpoint = function () {
- return this.flatMidpointRevision_ != this.getRevision() && (this.flatMidpoint_ = this.getCoordinateAt(.5, this.flatMidpoint_), this.flatMidpointRevision_ = this.getRevision()), this.flatMidpoint_
- }, e.prototype.getSimplifiedGeometryInternal = function (t) {
- var r = [];
- return r.length = In(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, t, r, 0), new e(r, yt)
- }, e.prototype.getType = function () {
- return bt.LINE_STRING
- }, e.prototype.intersectsExtent = function (t) {
- return ti(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, t)
- }, e.prototype.setCoordinates = function (t, e) {
- this.setLayout(e, t, 1), this.flatCoordinates || (this.flatCoordinates = []), this.flatCoordinates.length = On(this.flatCoordinates, 0, t, this.stride), this.changed()
- }, e
- }(vn), Ry = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Iy = function (t) {
- function e(e) {
- return t.call(this, e) || this
- }
-
- return Ry(e, t), e.prototype.createRenderer = function () {
- return new cy(this)
- }, e
- }(wg);
-
- function Ly(t, e, r) {
- for (var n, i, o, a, s, l, u = [], c = t(0), h = t(1), p = e(c), f = e(h), d = [h, c], g = [f, p], y = [1, 0], m = {}, v = 1e5; --v > 0 && y.length > 0;) o = y.pop(), c = d.pop(), p = g.pop(), (l = o.toString()) in m || (u.push(p[0], p[1]), m[l] = !0), a = y.pop(), h = d.pop(), f = g.pop(), ze((i = e(n = t(s = (o + a) / 2)))[0], i[1], p[0], p[1], f[0], f[1]) < r ? (u.push(f[0], f[1]), m[l = a.toString()] = !0) : (y.push(a, s, s, o), g.push(f, i, i, p), d.push(h, n, n, c));
- return u
- }
-
- function My(t, e, r, n, i) {
- return Ly((function (n) {
- return [t, e + (r - e) * n]
- }), Kr(Gr("EPSG:4326"), n), i)
- }
-
- function Fy(t, e, r, n, i) {
- return Ly((function (n) {
- return [e + (r - e) * n, t]
- }), Kr(Gr("EPSG:4326"), n), i)
- }
-
- var Ay = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), ky = new gp({color: "rgba(0,0,0,0.2)"}),
- jy = [90, 45, 30, 20, 10, 5, 2, 1, .5, .2, .1, .05, .01, .005, .002, .001], Ny = function (t) {
- function e(e) {
- var r = this, n = e || {}, i = O({updateWhileAnimating: !0, updateWhileInteracting: !0, renderBuffer: 0}, n);
- return delete i.maxLines, delete i.strokeStyle, delete i.targetSize, delete i.showLabels, delete i.lonLabelFormatter, delete i.latLabelFormatter, delete i.lonLabelPosition, delete i.latLabelPosition, delete i.lonLabelStyle, delete i.latLabelStyle, delete i.intervals, (r = t.call(this, i) || this).projection_ = null, r.maxLat_ = 1 / 0, r.maxLon_ = 1 / 0, r.minLat_ = -1 / 0, r.minLon_ = -1 / 0, r.maxX_ = 1 / 0, r.maxY_ = 1 / 0, r.minX_ = -1 / 0, r.minY_ = -1 / 0, r.targetSize_ = void 0 !== n.targetSize ? n.targetSize : 100, r.maxLines_ = void 0 !== n.maxLines ? n.maxLines : 100, r.meridians_ = [], r.parallels_ = [], r.strokeStyle_ = void 0 !== n.strokeStyle ? n.strokeStyle : ky, r.fromLonLatTransform_ = void 0, r.toLonLatTransform_ = void 0, r.projectionCenterLonLat_ = null, r.bottomLeft_ = null, r.bottomRight_ = null, r.topLeft_ = null, r.topRight_ = null, r.meridiansLabels_ = null, r.parallelsLabels_ = null, n.showLabels && (r.lonLabelFormatter_ = null == n.lonLabelFormatter ? Er.bind(r, "EW") : n.lonLabelFormatter, r.latLabelFormatter_ = null == n.latLabelFormatter ? Er.bind(r, "NS") : n.latLabelFormatter, r.lonLabelPosition_ = null == n.lonLabelPosition ? 0 : n.lonLabelPosition, r.latLabelPosition_ = null == n.latLabelPosition ? 1 : n.latLabelPosition, r.lonLabelStyleBase_ = new wp({
- text: void 0 !== n.lonLabelStyle ? n.lonLabelStyle.clone() : new Tp({
- font: "12px Calibri,sans-serif",
- textBaseline: "bottom",
- fill: new ep({color: "rgba(0,0,0,1)"}),
- stroke: new gp({color: "rgba(255,255,255,1)", width: 3})
- })
- }), r.lonLabelStyle_ = function (t) {
- var e = t.get("graticule_label");
- return this.lonLabelStyleBase_.getText().setText(e), this.lonLabelStyleBase_
- }.bind(r), r.latLabelStyleBase_ = new wp({
- text: void 0 !== n.latLabelStyle ? n.latLabelStyle.clone() : new Tp({
- font: "12px Calibri,sans-serif",
- textAlign: "right",
- fill: new ep({color: "rgba(0,0,0,1)"}),
- stroke: new gp({color: "rgba(255,255,255,1)", width: 3})
- })
- }), r.latLabelStyle_ = function (t) {
- var e = t.get("graticule_label");
- return this.latLabelStyleBase_.getText().setText(e), this.latLabelStyleBase_
- }.bind(r), r.meridiansLabels_ = [], r.parallelsLabels_ = [], r.addEventListener(Xo, r.drawLabels_.bind(r))), r.intervals_ = void 0 !== n.intervals ? n.intervals : jy, r.setSource(new hf({
- loader: r.loaderFunction.bind(r),
- strategy: r.strategyFunction.bind(r),
- features: new ht,
- overlaps: !1,
- useSpatialIndex: !1,
- wrapX: n.wrapX
- })), r.featurePool_ = [], r.lineStyle_ = new wp({stroke: r.strokeStyle_}), r.loadedExtent_ = null, r.renderedExtent_ = null, r.setRenderOrder(null), r
- }
-
- return Ay(e, t), e.prototype.strategyFunction = function (t, e) {
- var r = t.slice();
- return this.projection_ && this.getSource().getWrapX() && ke(r, this.projection_), this.loadedExtent_ && (ce(this.loadedExtent_, r, e) ? r = this.loadedExtent_.slice() : this.getSource().removeLoadedExtent(this.loadedExtent_)), [r]
- }, e.prototype.loaderFunction = function (t, e, r) {
- this.loadedExtent_ = t;
- var n = this.getSource(), i = Te(this.getExtent() || [-1 / 0, -1 / 0, 1 / 0, 1 / 0], t);
- if (!(this.renderedExtent_ && ue(this.renderedExtent_, i) || (this.renderedExtent_ = i, Ie(i)))) {
- var o = xe(i), a = e * e / 4;
- (!this.projection_ || !Xr(this.projection_, r)) && this.updateProjectionInfo_(r), this.createGraticule_(i, o, e, a);
- var s, l = this.meridians_.length + this.parallels_.length;
- for (this.meridiansLabels_ && (l += this.meridians_.length), this.parallelsLabels_ && (l += this.parallels_.length); l > this.featurePool_.length;) s = new gt, this.featurePool_.push(s);
- var u = n.getFeaturesCollection();
- u.clear();
- var c, h, p = 0;
- for (c = 0, h = this.meridians_.length; c < h; ++c) (s = this.featurePool_[p++]).setGeometry(this.meridians_[c]), s.setStyle(this.lineStyle_), u.push(s);
- for (c = 0, h = this.parallels_.length; c < h; ++c) (s = this.featurePool_[p++]).setGeometry(this.parallels_[c]), s.setStyle(this.lineStyle_), u.push(s)
- }
- }, e.prototype.addMeridian_ = function (t, e, r, n, i, o) {
- var a = this.getMeridian_(t, e, r, n, o);
- if (Re(a.getExtent(), i)) {
- if (this.meridiansLabels_) {
- var s = this.lonLabelFormatter_(t);
- o in this.meridiansLabels_ ? this.meridiansLabels_[o].text = s : this.meridiansLabels_[o] = {
- geom: new qn([]),
- text: s
- }
- }
- this.meridians_[o++] = a
- }
- return o
- }, e.prototype.addParallel_ = function (t, e, r, n, i, o) {
- var a = this.getParallel_(t, e, r, n, o);
- if (Re(a.getExtent(), i)) {
- if (this.parallelsLabels_) {
- var s = this.latLabelFormatter_(t);
- o in this.parallelsLabels_ ? this.parallelsLabels_[o].text = s : this.parallelsLabels_[o] = {
- geom: new qn([]),
- text: s
- }
- }
- this.parallels_[o++] = a
- }
- return o
- }, e.prototype.drawLabels_ = function (t) {
- var e = t.frameState.viewState.rotation, r = t.frameState.extent, n = xe(r), i = r;
- if (e) {
- var o = Pe(r), a = Ee(r), s = Math.abs(Math.cos(e)), l = Math.abs(Math.sin(e)),
- u = (l * a - s * o) / (l * l - s * s), c = (l * o - s * a) / (l * l - s * s);
- i = [n[0] - u / 2, n[1] - c / 2, n[0] + u / 2, n[1] + c / 2]
- }
- var h = 0, p = 0, f = this.latLabelPosition_ < .5, d = this.projection_.getExtent(), g = Pe(d);
- this.getSource().getWrapX() && this.projection_.canWrapX() && !te(d, r) && (h = Math.floor((r[0] - d[0]) / g), p = Math.ceil((r[2] - d[2]) / g), f = f !== Math.abs(e) > Math.PI / 2);
- for (var y = Ku(t), m = h; m <= p; ++m) {
- var v = this.meridians_.length + this.parallels_.length, _ = void 0, b = void 0, x = void 0, w = void 0;
- if (this.meridiansLabels_) for (b = 0, x = this.meridiansLabels_.length; b < x; ++b) {
- var S = this.meridians_[b];
- if (e || 0 !== m) (E = S.clone()).translate(m * g, 0), E.rotate(-e, n), (w = this.getMeridianPoint_(E, i, b)).rotate(e, n); else w = this.getMeridianPoint_(S, r, b);
- (_ = this.featurePool_[v++]).setGeometry(w), _.set("graticule_label", this.meridiansLabels_[b].text), y.drawFeature(_, this.lonLabelStyle_(_))
- }
- if (this.parallelsLabels_ && (m === h && f || m === p && !f)) for (b = 0, x = this.parallels_.length; b < x; ++b) {
- var E;
- S = this.parallels_[b];
- if (e || 0 !== m) (E = S.clone()).translate(m * g, 0), E.rotate(-e, n), (w = this.getParallelPoint_(E, i, b)).rotate(e, n); else w = this.getParallelPoint_(S, r, b);
- (_ = this.featurePool_[v++]).setGeometry(w), _.set("graticule_label", this.parallelsLabels_[b].text), y.drawFeature(_, this.latLabelStyle_(_))
- }
- }
- }, e.prototype.createGraticule_ = function (t, e, r, n) {
- var i = this.getInterval_(r);
- if (-1 == i) return this.meridians_.length = 0, this.parallels_.length = 0, this.meridiansLabels_ && (this.meridiansLabels_.length = 0), void (this.parallelsLabels_ && (this.parallelsLabels_.length = 0));
- var o = !1, a = this.projection_.getExtent(), s = Pe(a);
- this.getSource().getWrapX() && this.projection_.canWrapX() && !te(a, t) && (Pe(t) >= s ? (t[0] = a[0], t[2] = a[2]) : o = !0);
- var l = [Ne(e[0], this.minX_, this.maxX_), Ne(e[1], this.minY_, this.maxY_)], u = this.toLonLatTransform_(l);
- isNaN(u[1]) && (u[1] = Math.abs(this.maxLat_) >= Math.abs(this.minLat_) ? this.maxLat_ : this.minLat_);
- var c, h, p, f, d = Ne(u[0], this.minLon_, this.maxLon_), g = Ne(u[1], this.minLat_, this.maxLat_),
- y = this.maxLines_, m = t;
- o || (m = [Ne(t[0], this.minX_, this.maxX_), Ne(t[1], this.minY_, this.maxY_), Ne(t[2], this.minX_, this.maxX_), Ne(t[3], this.minY_, this.maxY_)]);
- var v = Ae(m, this.toLonLatTransform_, void 0, 8), _ = v[3], b = v[2], x = v[1], w = v[0];
- if (o || (Qt(m, this.bottomLeft_) && (w = this.minLon_, x = this.minLat_), Qt(m, this.bottomRight_) && (b = this.maxLon_, x = this.minLat_), Qt(m, this.topLeft_) && (w = this.minLon_, _ = this.maxLat_), Qt(m, this.topRight_) && (b = this.maxLon_, _ = this.maxLat_), _ = Ne(_, g, this.maxLat_), b = Ne(b, d, this.maxLon_), x = Ne(x, this.minLat_, g), w = Ne(w, this.minLon_, d)), f = Ne(d = Math.floor(d / i) * i, this.minLon_, this.maxLon_), h = this.addMeridian_(f, x, _, n, t, 0), c = 0, o) for (; (f -= i) >= w && c++ < y;) h = this.addMeridian_(f, x, _, n, t, h); else for (; f != this.minLon_ && c++ < y;) f = Math.max(f - i, this.minLon_), h = this.addMeridian_(f, x, _, n, t, h);
- if (f = Ne(d, this.minLon_, this.maxLon_), c = 0, o) for (; (f += i) <= b && c++ < y;) h = this.addMeridian_(f, x, _, n, t, h); else for (; f != this.maxLon_ && c++ < y;) f = Math.min(f + i, this.maxLon_), h = this.addMeridian_(f, x, _, n, t, h);
- for (this.meridians_.length = h, this.meridiansLabels_ && (this.meridiansLabels_.length = h), p = Ne(g = Math.floor(g / i) * i, this.minLat_, this.maxLat_), h = this.addParallel_(p, w, b, n, t, 0), c = 0; p != this.minLat_ && c++ < y;) p = Math.max(p - i, this.minLat_), h = this.addParallel_(p, w, b, n, t, h);
- for (p = Ne(g, this.minLat_, this.maxLat_), c = 0; p != this.maxLat_ && c++ < y;) p = Math.min(p + i, this.maxLat_), h = this.addParallel_(p, w, b, n, t, h);
- this.parallels_.length = h, this.parallelsLabels_ && (this.parallelsLabels_.length = h)
- }, e.prototype.getInterval_ = function (t) {
- for (var e = this.projectionCenterLonLat_[0], r = this.projectionCenterLonLat_[1], n = -1, i = Math.pow(this.targetSize_ * t, 2), o = [], a = [], s = 0, l = this.intervals_.length; s < l; ++s) {
- var u = Ne(this.intervals_[s] / 2, 0, 90), c = Ne(r, -90 + u, 90 - u);
- if (o[0] = e - u, o[1] = c - u, a[0] = e + u, a[1] = c + u, this.fromLonLatTransform_(o, o), this.fromLonLatTransform_(a, a), Math.pow(a[0] - o[0], 2) + Math.pow(a[1] - o[1], 2) <= i) break;
- n = this.intervals_[s]
- }
- return n
- }, e.prototype.getMeridian_ = function (t, e, r, n, i) {
- var o = My(t, e, r, this.projection_, n), a = this.meridians_[i];
- return a ? (a.setFlatCoordinates(yt, o), a.changed()) : (a = new Py(o, yt), this.meridians_[i] = a), a
- }, e.prototype.getMeridianPoint_ = function (t, e, r) {
- var n = t.getFlatCoordinates(), i = 1, o = n.length - 1;
- n[i] > n[o] && (i = o, o = 1);
- var a = Math.max(e[1], n[i]), s = Math.min(e[3], n[o]),
- l = Ne(e[1] + Math.abs(e[1] - e[3]) * this.lonLabelPosition_, a, s),
- u = [n[i - 1] + (n[o - 1] - n[i - 1]) * (l - n[i]) / (n[o] - n[i]), l], c = this.meridiansLabels_[r].geom;
- return c.setCoordinates(u), c
- }, e.prototype.getMeridians = function () {
- return this.meridians_
- }, e.prototype.getParallel_ = function (t, e, r, n, i) {
- var o = Fy(t, e, r, this.projection_, n), a = this.parallels_[i];
- return a ? (a.setFlatCoordinates(yt, o), a.changed()) : a = new Py(o, yt), a
- }, e.prototype.getParallelPoint_ = function (t, e, r) {
- var n = t.getFlatCoordinates(), i = 0, o = n.length - 2;
- n[i] > n[o] && (i = o, o = 0);
- var a = Math.max(e[0], n[i]), s = Math.min(e[2], n[o]),
- l = Ne(e[0] + Math.abs(e[0] - e[2]) * this.latLabelPosition_, a, s),
- u = [l, n[i + 1] + (n[o + 1] - n[i + 1]) * (l - n[i]) / (n[o] - n[i])], c = this.parallelsLabels_[r].geom;
- return c.setCoordinates(u), c
- }, e.prototype.getParallels = function () {
- return this.parallels_
- }, e.prototype.updateProjectionInfo_ = function (t) {
- var e = Gr("EPSG:4326"), r = t.getWorldExtent();
- this.maxLat_ = r[3], this.maxLon_ = r[2], this.minLat_ = r[1], this.minLon_ = r[0];
- var n = Kr(t, e);
- if (this.minLon_ < this.maxLon_) this.toLonLatTransform_ = n; else {
- var i = this.minLon_ + this.maxLon_ / 2;
- this.maxLon_ += 360, this.toLonLatTransform_ = function (t, e, r) {
- for (var o = r || 2, a = n(t, e, o), s = 0, l = a.length; s < l; s += o) a[s] < i && (a[s] += 360);
- return a
- }
- }
- this.fromLonLatTransform_ = Kr(e, t);
- var o = Ae([this.minLon_, this.minLat_, this.maxLon_, this.maxLat_], this.fromLonLatTransform_, void 0, 8);
- this.minX_ = o[0], this.maxX_ = o[2], this.minY_ = o[1], this.maxY_ = o[3], this.bottomLeft_ = this.fromLonLatTransform_([this.minLon_, this.minLat_]), this.bottomRight_ = this.fromLonLatTransform_([this.maxLon_, this.minLat_]), this.topLeft_ = this.fromLonLatTransform_([this.minLon_, this.maxLat_]), this.topRight_ = this.fromLonLatTransform_([this.maxLon_, this.maxLat_]), this.projectionCenterLonLat_ = this.toLonLatTransform_(xe(t.getExtent())), isNaN(this.projectionCenterLonLat_[1]) && (this.projectionCenterLonLat_[1] = Math.abs(this.maxLat_) >= Math.abs(this.minLat_) ? this.maxLat_ : this.minLat_), this.projection_ = t
- }, e
- }(Iy), Dy = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Gy = "blur", zy = "gradient", Uy = "radius", By = ["#00f", "#0ff", "#0f0", "#ff0", "#f00"];
- var Vy = function (t) {
- function e(e) {
- var r = this, n = e || {}, i = O({}, n);
- delete i.gradient, delete i.radius, delete i.blur, delete i.weight, (r = t.call(this, i) || this).gradient_ = null, r.addEventListener(it(zy), r.handleGradientChanged_), r.setGradient(n.gradient ? n.gradient : By), r.setBlur(void 0 !== n.blur ? n.blur : 15), r.setRadius(void 0 !== n.radius ? n.radius : 8);
- var o = n.weight ? n.weight : "weight";
- return r.weightFunction_ = "string" == typeof o ? function (t) {
- return t.get(o)
- } : o, r.setRenderOrder(null), r
- }
-
- return Dy(e, t), e.prototype.getBlur = function () {
- return this.get(Gy)
- }, e.prototype.getGradient = function () {
- return this.get(zy)
- }, e.prototype.getRadius = function () {
- return this.get(Uy)
- }, e.prototype.handleGradientChanged_ = function () {
- this.gradient_ = function (t) {
- for (var e = uo(1, 256), r = e.createLinearGradient(0, 0, 1, 256), n = 1 / (t.length - 1), i = 0, o = t.length; i < o; ++i) r.addColorStop(i * n, t[i]);
- return e.fillStyle = r, e.fillRect(0, 0, 1, 256), e.canvas
- }(this.getGradient())
- }, e.prototype.setBlur = function (t) {
- this.set(Gy, t)
- }, e.prototype.setGradient = function (t) {
- this.set(zy, t)
- }, e.prototype.setRadius = function (t) {
- this.set(Uy, t)
- }, e.prototype.createRenderer = function () {
- return new Eg(this, {
- className: this.getClassName(),
- attributes: [{
- name: "weight", callback: function (t) {
- var e = this.weightFunction_(t);
- return void 0 !== e ? Ne(e, 0, 1) : 1
- }.bind(this)
- }],
- vertexShader: "\n precision mediump float;\n uniform mat4 u_projectionMatrix;\n uniform mat4 u_offsetScaleMatrix;\n uniform float u_size;\n attribute vec2 a_position;\n attribute float a_index;\n attribute float a_weight;\n\n varying vec2 v_texCoord;\n varying float v_weight;\n\n void main(void) {\n mat4 offsetMatrix = u_offsetScaleMatrix;\n float offsetX = a_index == 0.0 || a_index == 3.0 ? -u_size / 2.0 : u_size / 2.0;\n float offsetY = a_index == 0.0 || a_index == 1.0 ? -u_size / 2.0 : u_size / 2.0;\n vec4 offsets = offsetMatrix * vec4(offsetX, offsetY, 0.0, 0.0);\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0) + offsets;\n float u = a_index == 0.0 || a_index == 3.0 ? 0.0 : 1.0;\n float v = a_index == 0.0 || a_index == 1.0 ? 0.0 : 1.0;\n v_texCoord = vec2(u, v);\n v_weight = a_weight;\n }",
- fragmentShader: "\n precision mediump float;\n uniform float u_blurSlope;\n\n varying vec2 v_texCoord;\n varying float v_weight;\n\n void main(void) {\n vec2 texCoord = v_texCoord * 2.0 - vec2(1.0, 1.0);\n float sqRadius = texCoord.x * texCoord.x + texCoord.y * texCoord.y;\n float value = (1.0 - sqrt(sqRadius)) * u_blurSlope;\n float alpha = smoothstep(0.0, 1.0, value) * v_weight;\n gl_FragColor = vec4(alpha, alpha, alpha, alpha);\n }",
- hitVertexShader: "\n precision mediump float;\n uniform mat4 u_projectionMatrix;\n uniform mat4 u_offsetScaleMatrix;\n uniform float u_size;\n attribute vec2 a_position;\n attribute float a_index;\n attribute float a_weight;\n attribute vec4 a_hitColor;\n\n varying vec2 v_texCoord;\n varying float v_weight;\n varying vec4 v_hitColor;\n\n void main(void) {\n mat4 offsetMatrix = u_offsetScaleMatrix;\n float offsetX = a_index == 0.0 || a_index == 3.0 ? -u_size / 2.0 : u_size / 2.0;\n float offsetY = a_index == 0.0 || a_index == 1.0 ? -u_size / 2.0 : u_size / 2.0;\n vec4 offsets = offsetMatrix * vec4(offsetX, offsetY, 0.0, 0.0);\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0) + offsets;\n float u = a_index == 0.0 || a_index == 3.0 ? 0.0 : 1.0;\n float v = a_index == 0.0 || a_index == 1.0 ? 0.0 : 1.0;\n v_texCoord = vec2(u, v);\n v_hitColor = a_hitColor;\n v_weight = a_weight;\n }",
- hitFragmentShader: "\n precision mediump float;\n uniform float u_blurSlope;\n\n varying vec2 v_texCoord;\n varying float v_weight;\n varying vec4 v_hitColor;\n\n void main(void) {\n vec2 texCoord = v_texCoord * 2.0 - vec2(1.0, 1.0);\n float sqRadius = texCoord.x * texCoord.x + texCoord.y * texCoord.y;\n float value = (1.0 - sqrt(sqRadius)) * u_blurSlope;\n float alpha = smoothstep(0.0, 1.0, value) * v_weight;\n if (alpha < 0.05) {\n discard;\n }\n\n gl_FragColor = v_hitColor;\n }",
- uniforms: {
- u_size: function () {
- return 2 * (this.get(Uy) + this.get(Gy))
- }.bind(this), u_blurSlope: function () {
- return this.get(Uy) / Math.max(1, this.get(Gy))
- }.bind(this)
- },
- postProcesses: [{
- fragmentShader: "\n precision mediump float;\n\n uniform sampler2D u_image;\n uniform sampler2D u_gradientTexture;\n\n varying vec2 v_texCoord;\n\n void main() {\n vec4 color = texture2D(u_image, v_texCoord);\n gl_FragColor.a = color.a;\n gl_FragColor.rgb = texture2D(u_gradientTexture, vec2(0.5, color.a)).rgb;\n gl_FragColor.rgb *= gl_FragColor.a;\n }",
- uniforms: {
- u_gradientTexture: function () {
- return this.gradient_
- }.bind(this)
- }
- }]
- })
- }, e.prototype.renderDeclutter = function () {
- }, e
- }(Iy), Yy = function () {
- function t() {
- this.dataProjection = null, this.defaultFeatureProjection = null
- }
-
- return t.prototype.getReadOptions = function (t, e) {
- var r;
- if (e) {
- var n = e.dataProjection ? Gr(e.dataProjection) : this.readProjection(t);
- e.extent && n && n.getUnits() === St.TILE_PIXELS && (n = Gr(n)).setWorldExtent(e.extent), r = {
- dataProjection: n,
- featureProjection: e.featureProjection
- }
- }
- return this.adaptOptions(r)
- }, t.prototype.adaptOptions = function (t) {
- return O({dataProjection: this.dataProjection, featureProjection: this.defaultFeatureProjection}, t)
- }, t.prototype.getType = function () {
- return n()
- }, t.prototype.readFeature = function (t, e) {
- return n()
- }, t.prototype.readFeatures = function (t, e) {
- return n()
- }, t.prototype.readGeometry = function (t, e) {
- return n()
- }, t.prototype.readProjection = function (t) {
- return n()
- }, t.prototype.writeFeature = function (t, e) {
- return n()
- }, t.prototype.writeFeatures = function (t, e) {
- return n()
- }, t.prototype.writeGeometry = function (t, e) {
- return n()
- }, t
- }();
-
- function Wy(t, e, r) {
- var n, i = r ? Gr(r.featureProjection) : null, o = r ? Gr(r.dataProjection) : null;
- if (n = i && o && !Xr(i, o) ? (e ? t.clone() : t).transform(e ? i : o, e ? o : i) : t, e && r && void 0 !== r.decimals) {
- var a = Math.pow(10, r.decimals);
- n === t && (n = t.clone()), n.applyTransform((function (t) {
- for (var e = 0, r = t.length; e < r; ++e) t[e] = Math.round(t[e] * a) / a;
- return t
- }))
- }
- return n
- }
-
- function qy(t, e) {
- var r = e ? Gr(e.featureProjection) : null, n = e ? Gr(e.dataProjection) : null;
- return r && n && !Xr(r, n) ? $r(t, n, r) : t
- }
-
- var Xy = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Zy = function (t) {
- function e(e, r, n) {
- var i = t.call(this) || this;
- if (i.ends_ = [], i.maxDelta_ = -1, i.maxDeltaRevision_ = -1, Array.isArray(e[0])) i.setCoordinates(e, r); else if (void 0 !== r && n) i.setFlatCoordinates(r, e), i.ends_ = n; else {
- for (var o = i.getLayout(), a = e, s = [], l = [], u = 0, c = a.length; u < c; ++u) {
- var h = a[u];
- 0 === u && (o = h.getLayout()), v(s, h.getFlatCoordinates()), l.push(s.length)
- }
- i.setFlatCoordinates(o, s), i.ends_ = l
- }
- return i
- }
-
- return Xy(e, t), e.prototype.appendLineString = function (t) {
- this.flatCoordinates ? v(this.flatCoordinates, t.getFlatCoordinates().slice()) : this.flatCoordinates = t.getFlatCoordinates().slice(), this.ends_.push(this.flatCoordinates.length), this.changed()
- }, e.prototype.clone = function () {
- var t = new e(this.flatCoordinates.slice(), this.layout, this.ends_.slice());
- return t.applyProperties(this), t
- }, e.prototype.closestPointXY = function (t, e, r, n) {
- return n < Jt(this.getExtent(), t, e) ? n : (this.maxDeltaRevision_ != this.getRevision() && (this.maxDelta_ = Math.sqrt(xn(this.flatCoordinates, 0, this.ends_, this.stride, 0)), this.maxDeltaRevision_ = this.getRevision()), En(this.flatCoordinates, 0, this.ends_, this.stride, this.maxDelta_, !1, t, e, r, n))
- }, e.prototype.getCoordinateAtM = function (t, e, r) {
- if (this.layout != vt && this.layout != _t || 0 === this.flatCoordinates.length) return null;
- var n = void 0 !== e && e, i = void 0 !== r && r;
- return wy(this.flatCoordinates, 0, this.ends_, this.stride, t, n, i)
- }, e.prototype.getCoordinates = function () {
- return Dn(this.flatCoordinates, 0, this.ends_, this.stride)
- }, e.prototype.getEnds = function () {
- return this.ends_
- }, e.prototype.getLineString = function (t) {
- return t < 0 || this.ends_.length <= t ? null : new Py(this.flatCoordinates.slice(0 === t ? 0 : this.ends_[t - 1], this.ends_[t]), this.layout)
- }, e.prototype.getLineStrings = function () {
- for (var t = this.flatCoordinates, e = this.ends_, r = this.layout, n = [], i = 0, o = 0, a = e.length; o < a; ++o) {
- var s = e[o], l = new Py(t.slice(i, s), r);
- n.push(l), i = s
- }
- return n
- }, e.prototype.getFlatMidpoints = function () {
- for (var t = [], e = this.flatCoordinates, r = 0, n = this.ends_, i = this.stride, o = 0, a = n.length; o < a; ++o) {
- var s = n[o];
- v(t, by(e, r, s, i, .5)), r = s
- }
- return t
- }, e.prototype.getSimplifiedGeometryInternal = function (t) {
- var r = [], n = [];
- return r.length = Ln(this.flatCoordinates, 0, this.ends_, this.stride, t, r, 0, n), new e(r, yt, n)
- }, e.prototype.getType = function () {
- return bt.MULTI_LINE_STRING
- }, e.prototype.intersectsExtent = function (t) {
- return ei(this.flatCoordinates, 0, this.ends_, this.stride, t)
- }, e.prototype.setCoordinates = function (t, e) {
- this.setLayout(e, t, 2), this.flatCoordinates || (this.flatCoordinates = []);
- var r = Pn(this.flatCoordinates, 0, t, this.stride, this.ends_);
- this.flatCoordinates.length = 0 === r.length ? 0 : r[r.length - 1], this.changed()
- }, e
- }(vn), Ky = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Hy = function (t) {
- function e(e, r) {
- var n = t.call(this) || this;
- return r && !Array.isArray(e[0]) ? n.setFlatCoordinates(r, e) : n.setCoordinates(e, r), n
- }
-
- return Ky(e, t), e.prototype.appendPoint = function (t) {
- this.flatCoordinates ? v(this.flatCoordinates, t.getFlatCoordinates()) : this.flatCoordinates = t.getFlatCoordinates().slice(), this.changed()
- }, e.prototype.clone = function () {
- var t = new e(this.flatCoordinates.slice(), this.layout);
- return t.applyProperties(this), t
- }, e.prototype.closestPointXY = function (t, e, r, n) {
- if (n < Jt(this.getExtent(), t, e)) return n;
- for (var i = this.flatCoordinates, o = this.stride, a = 0, s = i.length; a < s; a += o) {
- var l = Ue(t, e, i[a], i[a + 1]);
- if (l < n) {
- n = l;
- for (var u = 0; u < o; ++u) r[u] = i[a + u];
- r.length = o
- }
- }
- return n
- }, e.prototype.getCoordinates = function () {
- return Nn(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride)
- }, e.prototype.getPoint = function (t) {
- var e = this.flatCoordinates ? this.flatCoordinates.length / this.stride : 0;
- return t < 0 || e <= t ? null : new qn(this.flatCoordinates.slice(t * this.stride, (t + 1) * this.stride), this.layout)
- }, e.prototype.getPoints = function () {
- for (var t = this.flatCoordinates, e = this.layout, r = this.stride, n = [], i = 0, o = t.length; i < o; i += r) {
- var a = new qn(t.slice(i, i + r), e);
- n.push(a)
- }
- return n
- }, e.prototype.getType = function () {
- return bt.MULTI_POINT
- }, e.prototype.intersectsExtent = function (t) {
- for (var e = this.flatCoordinates, r = this.stride, n = 0, i = e.length; n < i; n += r) {
- if (ee(t, e[n], e[n + 1])) return !0
- }
- return !1
- }, e.prototype.setCoordinates = function (t, e) {
- this.setLayout(e, t, 1), this.flatCoordinates || (this.flatCoordinates = []), this.flatCoordinates.length = On(this.flatCoordinates, 0, t, this.stride), this.changed()
- }, e
- }(vn), $y = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Jy = function (t) {
- function e(e, r, n) {
- var i = t.call(this) || this;
- if (i.endss_ = [], i.flatInteriorPointsRevision_ = -1, i.flatInteriorPoints_ = null, i.maxDelta_ = -1, i.maxDeltaRevision_ = -1, i.orientedRevision_ = -1, i.orientedFlatCoordinates_ = null, !n && !Array.isArray(e[0])) {
- for (var o = i.getLayout(), a = e, s = [], l = [], u = 0, c = a.length; u < c; ++u) {
- var h = a[u];
- 0 === u && (o = h.getLayout());
- for (var p = s.length, f = h.getEnds(), d = 0, g = f.length; d < g; ++d) f[d] += p;
- v(s, h.getFlatCoordinates()), l.push(f)
- }
- r = o, e = s, n = l
- }
- return void 0 !== r && n ? (i.setFlatCoordinates(r, e), i.endss_ = n) : i.setCoordinates(e, r), i
- }
-
- return $y(e, t), e.prototype.appendPolygon = function (t) {
- var e;
- if (this.flatCoordinates) {
- var r = this.flatCoordinates.length;
- v(this.flatCoordinates, t.getFlatCoordinates());
- for (var n = 0, i = (e = t.getEnds().slice()).length; n < i; ++n) e[n] += r
- } else this.flatCoordinates = t.getFlatCoordinates().slice(), e = t.getEnds().slice(), this.endss_.push();
- this.endss_.push(e), this.changed()
- }, e.prototype.clone = function () {
- for (var t = this.endss_.length, r = new Array(t), n = 0; n < t; ++n) r[n] = this.endss_[n].slice();
- var i = new e(this.flatCoordinates.slice(), this.layout, r);
- return i.applyProperties(this), i
- }, e.prototype.closestPointXY = function (t, e, r, n) {
- return n < Jt(this.getExtent(), t, e) ? n : (this.maxDeltaRevision_ != this.getRevision() && (this.maxDelta_ = Math.sqrt(wn(this.flatCoordinates, 0, this.endss_, this.stride, 0)), this.maxDeltaRevision_ = this.getRevision()), Tn(this.getOrientedFlatCoordinates(), 0, this.endss_, this.stride, this.maxDelta_, !0, t, e, r, n))
- }, e.prototype.containsXY = function (t, e) {
- return Hn(this.getOrientedFlatCoordinates(), 0, this.endss_, this.stride, t, e)
- }, e.prototype.getArea = function () {
- return Bn(this.getOrientedFlatCoordinates(), 0, this.endss_, this.stride)
- }, e.prototype.getCoordinates = function (t) {
- var e;
- return void 0 !== t ? ci(e = this.getOrientedFlatCoordinates().slice(), 0, this.endss_, this.stride, t) : e = this.flatCoordinates, Gn(e, 0, this.endss_, this.stride)
- }, e.prototype.getEndss = function () {
- return this.endss_
- }, e.prototype.getFlatInteriorPoints = function () {
- if (this.flatInteriorPointsRevision_ != this.getRevision()) {
- var t = Sy(this.flatCoordinates, 0, this.endss_, this.stride);
- this.flatInteriorPoints_ = Jn(this.getOrientedFlatCoordinates(), 0, this.endss_, this.stride, t), this.flatInteriorPointsRevision_ = this.getRevision()
- }
- return this.flatInteriorPoints_
- }, e.prototype.getInteriorPoints = function () {
- return new Hy(this.getFlatInteriorPoints().slice(), vt)
- }, e.prototype.getOrientedFlatCoordinates = function () {
- if (this.orientedRevision_ != this.getRevision()) {
- var t = this.flatCoordinates;
- li(t, 0, this.endss_, this.stride) ? this.orientedFlatCoordinates_ = t : (this.orientedFlatCoordinates_ = t.slice(), this.orientedFlatCoordinates_.length = ci(this.orientedFlatCoordinates_, 0, this.endss_, this.stride)), this.orientedRevision_ = this.getRevision()
- }
- return this.orientedFlatCoordinates_
- }, e.prototype.getSimplifiedGeometryInternal = function (t) {
- var r = [], n = [];
- return r.length = jn(this.flatCoordinates, 0, this.endss_, this.stride, Math.sqrt(t), r, 0, n), new e(r, yt, n)
- }, e.prototype.getPolygon = function (t) {
- if (t < 0 || this.endss_.length <= t) return null;
- var e;
- if (0 === t) e = 0; else {
- var r = this.endss_[t - 1];
- e = r[r.length - 1]
- }
- var n = this.endss_[t].slice(), i = n[n.length - 1];
- if (0 !== e) for (var o = 0, a = n.length; o < a; ++o) n[o] -= e;
- return new fi(this.flatCoordinates.slice(e, i), this.layout, n)
- }, e.prototype.getPolygons = function () {
- for (var t = this.layout, e = this.flatCoordinates, r = this.endss_, n = [], i = 0, o = 0, a = r.length; o < a; ++o) {
- var s = r[o].slice(), l = s[s.length - 1];
- if (0 !== i) for (var u = 0, c = s.length; u < c; ++u) s[u] -= i;
- var h = new fi(e.slice(i, l), t, s);
- n.push(h), i = l
- }
- return n
- }, e.prototype.getType = function () {
- return bt.MULTI_POLYGON
- }, e.prototype.intersectsExtent = function (t) {
- return ii(this.getOrientedFlatCoordinates(), 0, this.endss_, this.stride, t)
- }, e.prototype.setCoordinates = function (t, e) {
- this.setLayout(e, t, 3), this.flatCoordinates || (this.flatCoordinates = []);
- var r = Rn(this.flatCoordinates, 0, t, this.stride, this.endss_);
- if (0 === r.length) this.flatCoordinates.length = 0; else {
- var n = r[r.length - 1];
- this.flatCoordinates.length = 0 === n.length ? 0 : n[n.length - 1]
- }
- this.changed()
- }, e
- }(vn), Qy = r(5), tm = r.n(Qy), em = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }();
-
- function rm(t, e, r) {
- if (3 === t) {
- var n = {keys: [], values: [], features: []}, i = r.readVarint() + r.pos;
- r.readFields(nm, n, i), n.length = n.features.length, n.length && (e[n.name] = n)
- }
- }
-
- function nm(t, e, r) {
- if (15 === t) e.version = r.readVarint(); else if (1 === t) e.name = r.readString(); else if (5 === t) e.extent = r.readVarint(); else if (2 === t) e.features.push(r.pos); else if (3 === t) e.keys.push(r.readString()); else if (4 === t) {
- for (var n = null, i = r.readVarint() + r.pos; r.pos < i;) n = 1 === (t = r.readVarint() >> 3) ? r.readString() : 2 === t ? r.readFloat() : 3 === t ? r.readDouble() : 4 === t ? r.readVarint64() : 5 === t ? r.readVarint() : 6 === t ? r.readSVarint() : 7 === t ? r.readBoolean() : null;
- e.values.push(n)
- }
- }
-
- function im(t, e, r) {
- if (1 == t) e.id = r.readVarint(); else if (2 == t) for (var n = r.readVarint() + r.pos; r.pos < n;) {
- var i = e.layer.keys[r.readVarint()], o = e.layer.values[r.readVarint()];
- e.properties[i] = o
- } else 3 == t ? e.type = r.readVarint() : 4 == t && (e.geometry = r.pos)
- }
-
- function om(t, e, r) {
- t.pos = e.features[r];
- var n = t.readVarint() + t.pos, i = {layer: e, type: 0, properties: {}};
- return t.readFields(im, i, n), i
- }
-
- var am = function (t) {
- function e(e) {
- var r = t.call(this) || this, n = e || {};
- return r.dataProjection = new je({
- code: "",
- units: St.TILE_PIXELS
- }), r.featureClass_ = n.featureClass ? n.featureClass : Cy, r.geometryName_ = n.geometryName, r.layerName_ = n.layerName ? n.layerName : "layer", r.layers_ = n.layers ? n.layers : null, r.idProperty_ = n.idProperty, r
- }
-
- return em(e, t), e.prototype.readRawGeometry_ = function (t, e, r, n) {
- t.pos = e.geometry;
- for (var i = t.readVarint() + t.pos, o = 1, a = 0, s = 0, l = 0, u = 0, c = 0; t.pos < i;) {
- if (!a) {
- var h = t.readVarint();
- o = 7 & h, a = h >> 3
- }
- a--, 1 === o || 2 === o ? (s += t.readSVarint(), l += t.readSVarint(), 1 === o && u > c && (n.push(u), c = u), r.push(s, l), u += 2) : 7 === o ? u > c && (r.push(r[c], r[c + 1]), u += 2) : pt(!1, 59)
- }
- u > c && (n.push(u), c = u)
- }, e.prototype.createFeature_ = function (t, e, r) {
- var n, i = e.type;
- if (0 === i) return null;
- var o, a = e.properties;
- this.idProperty_ ? (o = a[this.idProperty_], delete a[this.idProperty_]) : o = e.id, a[this.layerName_] = e.layer.name;
- var s = [], l = [];
- this.readRawGeometry_(t, e, s, l);
- var u = function (t, e) {
- var r;
- 1 === t ? r = 1 === e ? bt.POINT : bt.MULTI_POINT : 2 === t ? r = 1 === e ? bt.LINE_STRING : bt.MULTI_LINE_STRING : 3 === t && (r = bt.POLYGON);
- return r
- }(i, l.length);
- if (this.featureClass_ === Cy) (n = new this.featureClass_(u, s, l, a, o)).transform(r.dataProjection); else {
- var c = void 0;
- if (u == bt.POLYGON) {
- for (var h = [], p = 0, f = 0, d = 0, g = l.length; d < g; ++d) {
- var y = l[d];
- if (ai(s, p, y, 2)) {
- if (0 === h.length) continue;
- h[h.length - 1].push(l[f])
- } else h.push(l.slice(f, d + 1));
- f = d + 1, p = y
- }
- c = h.length > 1 ? new Jy(s, yt, h) : new fi(s, yt, l)
- } else c = u === bt.POINT ? new qn(s, yt) : u === bt.LINE_STRING ? new Py(s, yt) : u === bt.POLYGON ? new fi(s, yt, l) : u === bt.MULTI_POINT ? new Hy(s, yt) : u === bt.MULTI_LINE_STRING ? new Zy(s, yt, l) : null;
- n = new (0, this.featureClass_), this.geometryName_ && n.setGeometryName(this.geometryName_);
- var m = Wy(c, !1, r);
- n.setGeometry(m), n.setId(o), n.setProperties(a, !0)
- }
- return n
- }, e.prototype.getType = function () {
- return Cu
- }, e.prototype.readFeatures = function (t, e) {
- var r = this.layers_, n = this.adaptOptions(e), i = Gr(n.dataProjection);
- i.setWorldExtent(n.extent), n.dataProjection = i;
- var o = new tm.a(t), a = o.readFields(rm, {}), s = [];
- for (var l in a) if (!r || -1 != r.indexOf(l)) {
- var u = a[l], c = u ? [0, 0, u.extent, u.extent] : null;
- i.setExtent(c);
- for (var h = 0, p = u.length; h < p; ++h) {
- var f = om(o, u, h);
- s.push(this.createFeature_(o, f, n))
- }
- }
- return s
- }, e.prototype.readProjection = function (t) {
- return this.dataProjection
- }, e.prototype.setLayers = function (t) {
- this.layers_ = t
- }, e
- }(Yy), sm = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), lm = function (t) {
- function e(e) {
- var r = this, n = e || {}, i = O({}, n);
- delete i.preload, delete i.useInterimTilesOnError, r = t.call(this, i) || this;
- var o = n.renderMode || dy;
- return pt(null == o || o == fy || o == dy || o == gy, 28), r.renderMode_ = o, r.setPreload(n.preload ? n.preload : 0), r.setUseInterimTilesOnError(void 0 === n.useInterimTilesOnError || n.useInterimTilesOnError), r
- }
-
- return sm(e, t), e.prototype.createRenderer = function () {
- return new _y(this)
- }, e.prototype.getFeatures = function (e) {
- return t.prototype.getFeatures.call(this, e)
- }, e.prototype.getRenderMode = function () {
- return this.renderMode_
- }, e.prototype.getPreload = function () {
- return this.get(gd)
- }, e.prototype.getUseInterimTilesOnError = function () {
- return this.get(yd)
- }, e.prototype.setPreload = function (t) {
- this.set(gd, t)
- }, e.prototype.setUseInterimTilesOnError = function (t) {
- this.set(yd, t)
- }, e
- }(wg), um = r(2), cm = r.n(um), hm = r(0);
- "function" == typeof Object.assign && Object.assign;
-
- function pm(t) {
- return t * Math.PI / 180
- }
-
- var fm = function () {
- for (var t = [], e = 78271.51696402048; t.length <= 24; e /= 2) t.push(e);
- return t
- }();
-
- function dm(t, e) {
- if ("undefined" != typeof WorkerGlobalScope && self instanceof WorkerGlobalScope && "undefined" != typeof OffscreenCanvas) return new OffscreenCanvas(t, e);
- var r = document.createElement("canvas");
- return r.width = t, r.height = e, r
- }
-
- var gm, ym = Array(256).join(" ");
-
- function mm(t, e) {
- if (e >= .05) {
- for (var r = "", n = t.split("\n"), i = ym.slice(0, Math.round(e / .1)), o = 0, a = n.length; o < a; ++o) o > 0 && (r += "\n"), r += n[o].split("").join(i);
- return r
- }
- return t
- }
-
- function vm() {
- return gm || (gm = dm(1, 1).getContext("2d")), gm
- }
-
- function _m(t, e) {
- return vm().measureText(t).width + (t.length - 1) * e
- }
-
- var bm = {};
- ga && Z(ga, k, (function () {
- bm = {}
- }));
- var xm, wm, Sm = hm.e.isFunction, Em = hm.e.convertFunction, Tm = hm.c.isExpression,
- Cm = hm.c.createPropertyExpression,
- Om = {Point: 1, MultiPoint: 1, LineString: 2, MultiLineString: 2, Polygon: 3, MultiPolygon: 3}, Pm = {
- center: [.5, .5],
- left: [0, .5],
- right: [1, .5],
- top: [.5, 0],
- bottom: [.5, 1],
- "top-left": [0, 0],
- "top-right": [1, 0],
- "bottom-left": [0, 1],
- "bottom-right": [1, 1]
- }, Rm = {}, Im = {zoom: 0}, Lm = {};
-
- function Mm(t, e, r, n, i) {
- var o = t.id;
- Lm[o] || (Lm[o] = {});
- var a = Lm[o];
- if (!a[r]) {
- var s = (t[e] || Rm)[r], l = hm.f[e + "_" + t.type][r];
- void 0 === s && (s = l.default);
- var u = Tm(s);
- if (!u && Sm(s) && (s = Em(s, l), u = !0), u) {
- var c = function (t, e) {
- var r = Cm(t, e);
- if ("error" === r.result) throw new Error(r.value.map((function (t) {
- return t.key + ": " + t.message
- })).join(", "));
- return r.value
- }(s, l);
- a[r] = c.evaluate.bind(c)
- } else "color" == l.type && (s = hm.a.parse(s)), a[r] = function () {
- return s
- }
- }
- return Im.zoom = n, a[r](Im, i)
- }
-
- var Fm = {};
-
- function Am(t, e) {
- if (t) {
- if (0 === t.a || 0 === e) return;
- var r = t.a;
- return e = void 0 === e ? 1 : e, "rgba(" + Math.round(255 * t.r / r) + "," + Math.round(255 * t.g / r) + "," + Math.round(255 * t.b / r) + "," + r * e + ")"
- }
- return t
- }
-
- var km = /^([^]*)\{(.*)\}([^]*)$/;
-
- function jm(t, e) {
- var r;
- do {
- if (r = t.match(km)) {
- var n = e[r[2]] || "";
- t = r[1] + n + r[3]
- }
- } while (r);
- return t
- }
-
- var Nm = !1;
- var Dm = function (t, e, r, n, i, o, a) {
- if (void 0 === n && (n = fm), "string" == typeof e && (e = JSON.parse(e)), 8 != e.version) throw new Error("glStyle version 8 required.");
- var s, l;
- if (o) if ("undefined" != typeof Image) {
- var u = new Image;
- u.crossOrigin = "anonymous", u.onload = function () {
- s = u, l = [u.width, u.height], t.changed(), u.onload = null
- }, u.src = o
- } else if ("undefined" != typeof WorkerGlobalScope && self instanceof WorkerGlobalScope) {
- var c = self;
- c.postMessage({action: "loadImage", src: o}), c.addEventListener("message", (function (t) {
- "imageLoaded" === t.data.action && t.data.src === o && (s = t.data.image, l = [s.width, s.height])
- }))
- }
- for (var h, p = Object(hm.b)(e.layers), f = {}, d = [], g = 0, y = p.length; g < y; ++g) {
- var m = p[g], v = m.id;
- if ("string" == typeof r && m.source == r || -1 !== r.indexOf(v)) {
- var _ = m["source-layer"];
- if (!h) {
- h = m.source;
- var b = e.sources[h];
- if (!b) throw new Error('Source "' + h + '" is not defined');
- var x = b.type;
- if ("vector" !== x && "geojson" !== x) throw new Error('Source "' + h + '" is not of type "vector" or "geojson", but "' + x + '"')
- }
- var w = f[_];
- w || (w = f[_] = []), w.push({layer: m, index: g}), d.push(v)
- }
- delete Lm[v], delete Fm[v]
- }
- var S = new gp, E = new ep, T = {}, C = {}, O = [], P = function (t, e) {
- var r = t.getProperties(), o = f[r.layer];
- if (o) {
- var u = n.indexOf(e);
- -1 == u && (u = function (t, e) {
- for (var r = 0, n = e.length; r < n; ++r) {
- if (e[r] < t && r + 1 < n) {
- var i = e[r] / e[r + 1];
- return r + Math.log(e[r] / t) / Math.log(i)
- }
- }
- return n - 1
- }(e, n));
- for (var c, h = Om[t.getGeometry().getType()], p = {properties: r, type: h}, d = -1, g = function (n, f) {
- var g = o[n], y = g.layer, m = y.id, v = y.layout || Rm, _ = y.paint || Rm;
- if ("none" === v.visibility || "minzoom" in y && u < y.minzoom || "maxzoom" in y && u >= y.maxzoom) return "continue";
- var b = y.filter;
- if (!b || function (t, e, r, n) {
- return t in Fm || (Fm[t] = Object(hm.d)(e).filter), Im.zoom = n, Fm[t](Im, r)
- }(m, b, p, u)) {
- c = y;
- var x = void 0, w = void 0, P = void 0, R = void 0, I = void 0, L = void 0, M = g.index;
- if (3 == h && ("fill" == y.type || "fill-extrusion" == y.type)) if (w = Mm(y, "paint", y.type + "-opacity", u, p), y.type + "-pattern" in _) {
- var F = Mm(y, "paint", y.type + "-pattern", u, p);
- if (F) {
- var A = "string" == typeof F ? jm(F, r) : F.toString();
- if (s && i && i[A]) {
- ++d, (L = O[d]) && L.getFill() && !L.getStroke() && !L.getText() || (L = O[d] = new wp({fill: new ep})), P = L.getFill(), L.setZIndex(M);
- var k = C[ut = A + "." + w];
- if (!k) (pt = (ht = dm((ct = i[A]).width, ct.height)).getContext("2d")).globalAlpha = w, pt.drawImage(s, ct.x, ct.y, ct.width, ct.height, 0, 0, ct.width, ct.height), k = pt.createPattern(ht, "repeat"), C[ut] = k;
- P.setColor(k)
- }
- }
- } else (x = Am(Mm(y, "paint", y.type + "-color", u, p), w)) && (y.type + "-outline-color" in _ && (I = Am(Mm(y, "paint", y.type + "-outline-color", u, p), w)), I || (I = x), ++d, (L = O[d]) && L.getFill() && L.getStroke() && !L.getText() || (L = O[d] = new wp({
- fill: new ep,
- stroke: new gp
- })), (P = L.getFill()).setColor(x), (R = L.getStroke()).setColor(I), R.setWidth(1), L.setZIndex(M));
- if (1 != h && "line" == y.type) {
- x = !("line-pattern" in _) && "line-color" in _ ? Am(Mm(y, "paint", "line-color", u, p), Mm(y, "paint", "line-opacity", u, p)) : void 0;
- var j = Mm(y, "paint", "line-width", u, p);
- x && j > 0 && (++d, (L = O[d]) && L.getStroke() && !L.getFill() && !L.getText() || (L = O[d] = new wp({stroke: new gp})), (R = L.getStroke()).setLineCap(Mm(y, "layout", "line-cap", u, p)), R.setLineJoin(Mm(y, "layout", "line-join", u, p)), R.setMiterLimit(Mm(y, "layout", "line-miter-limit", u, p)), R.setColor(x), R.setWidth(j), R.setLineDash(_["line-dasharray"] ? Mm(y, "paint", "line-dasharray", u, p).map((function (t) {
- return t * j
- })) : null), L.setZIndex(M))
- }
- var N = !1, D = null, G = 0, z = void 0, U = void 0, B = void 0;
- if ((1 == h || 2 == h) && "icon-image" in v) {
- var V = Mm(y, "layout", "icon-image", u, p);
- if (V) {
- z = "string" == typeof V ? jm(V, r) : V.toString();
- var Y = void 0;
- if (s && i && i[z]) {
- var W = Mm(y, "layout", "icon-rotation-alignment", u, p);
- if (2 == h) {
- var q = t.getGeometry();
- if (q.getFlatMidpoint || q.getFlatMidpoints) {
- var X = q.getExtent();
- if (Math.sqrt(Math.max(Math.pow((X[2] - X[0]) / e, 2), Math.pow((X[3] - X[1]) / e, 2))) > 150) {
- var Z = "MultiLineString" === q.getType() ? q.getFlatMidpoints() : q.getFlatMidpoint();
- if (wm || (wm = new Cy("Point", xm = [NaN, NaN], [], {}, null)), Y = wm, xm[0] = Z[0], xm[1] = Z[1], "line" === (Mt = Mm(y, "layout", "symbol-placement", u, p)) && "map" === W) for (var K = q.getStride(), H = q.getFlatCoordinates(), $ = 0, J = H.length - K; $ < J; $ += K) {
- var Q = H[$], tt = H[$ + 1], et = H[$ + K], rt = H[$ + K + 1], nt = Math.min(Q, et),
- it = Math.min(tt, rt), ot = Math.max(Q, et), at = Math.max(tt, rt);
- if (Z[0] >= nt && Z[0] <= ot && Z[1] >= it && Z[1] <= at) {
- G = Math.atan2(tt - rt, et - Q);
- break
- }
- }
- }
- }
- }
- if (2 !== h || Y) {
- ++d, (L = O[d]) && L.getImage() && !L.getFill() && !L.getStroke() || (L = O[d] = new wp), L.setGeometry(Y);
- var st = Mm(y, "layout", "icon-size", u, p),
- lt = void 0 !== _["icon-color"] ? Mm(y, "paint", "icon-color", u, p) : null, ut = z + "." + st;
- if (null !== lt && (ut += "." + lt), !(U = T[ut])) {
- var ct = i[z];
- if (null !== lt) {
- var ht, pt;
- (pt = (ht = dm(ct.width, ct.height)).getContext("2d")).drawImage(s, ct.x, ct.y, ct.width, ct.height, 0, 0, ct.width, ct.height);
- for (var ft = pt.getImageData(0, 0, ht.width, ht.height), dt = 0, gt = ft.data.length; dt < gt; dt += 4) {
- var yt = lt.a;
- 0 !== yt && (ft.data[dt] = 255 * lt.r / yt, ft.data[dt + 1] = 255 * lt.g / yt, ft.data[dt + 2] = 255 * lt.b / yt), ft.data[dt + 3] = yt
- }
- pt.putImageData(ft, 0, 0), U = T[ut] = new dp({
- img: ht,
- imgSize: [ht.width, ht.height],
- scale: st / ct.pixelRatio
- })
- } else U = T[ut] = new dp({
- img: s,
- imgSize: l,
- size: [ct.width, ct.height],
- offset: [ct.x, ct.y],
- rotateWithView: "map" === W,
- scale: st / ct.pixelRatio
- })
- }
- U.setRotation(G + pm(Mm(y, "layout", "icon-rotate", u, p))), U.setOpacity(Mm(y, "paint", "icon-opacity", u, p)), U.setAnchor(Pm[Mm(y, "layout", "icon-anchor", u, p)]), L.setImage(U), D = L.getText(), L.setText(void 0), L.setZIndex(M), N = !0, B = !1
- } else B = !0
- }
- }
- }
- if (1 == h && "circle-radius" in _) {
- ++d, (L = O[d]) && L.getImage() && !L.getFill() && !L.getStroke() || (L = O[d] = new wp);
- var mt = Mm(y, "paint", "circle-radius", u, p),
- vt = Am(Mm(y, "paint", "circle-stroke-color", u, p), Mm(y, "paint", "circle-stroke-opacity", u, p)),
- _t = Am(Mm(y, "paint", "circle-color", u, p), Mm(y, "paint", "circle-opacity", u, p)),
- bt = Mm(y, "paint", "circle-stroke-width", u, p), xt = mt + "." + vt + "." + _t + "." + bt;
- (U = T[xt]) || (U = T[xt] = new tp({
- radius: mt,
- stroke: vt && bt > 0 ? new gp({width: bt, color: vt}) : void 0,
- fill: _t ? new ep({color: _t}) : void 0
- })), L.setImage(U), D = L.getText(), L.setText(void 0), L.setGeometry(void 0), L.setZIndex(M), N = !0
- }
- var wt = void 0;
- if ("text-field" in v) wt = jm(Mm(y, "layout", "text-field", u, p).toString(), r).trim(), w = Mm(y, "paint", "text-opacity", u, p);
- if (wt && w && !B) {
- N || (++d, (L = O[d]) && L.getText() && !L.getFill() && !L.getStroke() || (L = O[d] = new wp), L.setImage(void 0), L.setGeometry(void 0)), L.getText() || L.setText(D || new Tp({padding: [2, 2, 2, 2]})), D = L.getText();
- var St = Math.round(Mm(y, "layout", "text-size", u, p)), Et = Mm(y, "layout", "text-font", u, p),
- Tt = Mm(y, "layout", "text-line-height", u, p), Ct = cm()(a ? a(Et) : Et, St, Tt),
- Ot = v["text-transform"];
- "uppercase" == Ot ? wt = wt.toUpperCase() : "lowercase" == Ot && (wt = wt.toLowerCase());
- var Pt = Mm(y, "layout", "text-max-width", u, p), Rt = Mm(y, "layout", "text-letter-spacing", u, p),
- It = 2 == h ? mm(wt, Rt) : function t(e, r, n, i) {
- if (-1 !== e.indexOf("\n")) {
- for (var o = e.split("\n"), a = [], s = 0, l = o.length; s < l; ++s) a.push(t(o[s], r, n, i));
- return a.join("\n")
- }
- var u = n + "," + r + "," + e + "," + i, c = bm[u];
- if (!c) {
- var h = e.split(" ");
- if (h.length > 1) {
- var p = vm();
- p.font = r;
- var f = p.measureText("M").width * n, d = "";
- for (a = [], s = 0, l = h.length; s < l; ++s) {
- var g = h[s], y = d + (d ? " " : "") + g;
- _m(y, i) <= f ? d = y : (d && a.push(d), d = g)
- }
- d && a.push(d);
- for (s = 0, l = a.length; s < l && l > 1; ++s) {
- var m = a[s];
- if (_m(m, i) < .35 * f) {
- var v = s > 0 ? _m(a[s - 1], i) : 1 / 0, _ = s < l - 1 ? _m(a[s + 1], i) : 1 / 0;
- a.splice(s, 1), l -= 1, v < _ ? (a[s - 1] += " " + m, s -= 1) : a[s] = m + " " + a[s]
- }
- }
- for (s = 0, l = a.length - 1; s < l; ++s) {
- var b = a[s], x = a[s + 1];
- if (_m(b, i) > .7 * f && _m(x, i) < .6 * f) {
- var w = b.split(" "), S = w.pop();
- _m(S, i) < .2 * f && (a[s] = w.join(" "), a[s + 1] = S + " " + x), l -= 1
- }
- }
- c = a.join("\n")
- } else c = e;
- c = mm(c, i), bm[u] = c
- }
- return c
- }(wt, Ct, Pt, Rt);
- D.setText(It), D.setFont(Ct), D.setRotation(pm(Mm(y, "layout", "text-rotate", u, p)));
- var Lt = Mm(y, "layout", "text-anchor", u, p),
- Mt = N || 1 == h ? "point" : Mm(y, "layout", "symbol-placement", u, p);
- D.setPlacement(Mt);
- var Ft = Mm(y, "paint", "text-halo-width", u, p), At = Mm(y, "layout", "text-offset", u, p),
- kt = Mm(y, "paint", "text-translate", u, p), jt = 0, Nt = 0;
- if ("point" == Mt) {
- var Dt = "center";
- -1 !== Lt.indexOf("left") ? (Dt = "left", Nt = Ft) : -1 !== Lt.indexOf("right") && (Dt = "right", Nt = -Ft), D.setTextAlign(Dt);
- var Gt = Mm(y, "layout", "text-rotation-alignment", u, p);
- D.setRotateWithView("map" == Gt)
- } else D.setMaxAngle(pm(Mm(y, "layout", "text-max-angle", u, p)) * wt.length / It.length), D.setTextAlign(), D.setRotateWithView(!1);
- var zt = "middle";
- 0 == Lt.indexOf("bottom") ? (zt = "bottom", jt = -Ft - .5 * (Tt - 1) * St) : 0 == Lt.indexOf("top") && (zt = "top", jt = Ft + .5 * (Tt - 1) * St), D.setTextBaseline(zt), D.setOffsetX(At[0] * St + Nt + kt[0]), D.setOffsetY(At[1] * St + jt + kt[1]), E.setColor(Am(Mm(y, "paint", "text-color", u, p), w)), D.setFill(E);
- var Ut = Am(Mm(y, "paint", "text-halo-color", u, p), w);
- if (Ut) {
- S.setColor(Ut), Ft *= 2;
- var Bt = .5 * St;
- S.setWidth(Ft <= Bt ? Ft : Bt), D.setStroke(S)
- } else D.setStroke(void 0);
- var Vt = Mm(y, "layout", "text-padding", u, p), Yt = D.getPadding();
- Vt !== Yt[0] && (Yt[0] = Yt[1] = Yt[2] = Yt[3] = Vt), L.setZIndex(M)
- }
- }
- }, y = 0, m = o.length; y < m; ++y) g(y);
- return d > -1 ? (O.length = d + 1, Nm && ("function" == typeof t.set ? t.set("mapbox-layer", c) : t.getProperties()["mapbox-layer"] = c), O) : void 0
- }
- };
- return t.setStyle(P), t.set("mapbox-source", h), t.set("mapbox-layers", d), P
- }, Gm = r(6), zm = r.n(Gm), Um = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }();
-
- function Bm(t) {
- for (var e = [], r = 0, n = t.length; r < n; ++r) e.push(t[r].clone());
- return e
- }
-
- var Vm = function (t) {
- function e(e) {
- var r = t.call(this) || this;
- return r.geometries_ = e || null, r.changeEventsKeys_ = [], r.listenGeometriesChange_(), r
- }
-
- return Um(e, t), e.prototype.unlistenGeometriesChange_ = function () {
- this.changeEventsKeys_.forEach(H), this.changeEventsKeys_.length = 0
- }, e.prototype.listenGeometriesChange_ = function () {
- if (this.geometries_) for (var t = 0, e = this.geometries_.length; t < e; ++t) this.changeEventsKeys_.push(Z(this.geometries_[t], F, this.changed, this))
- }, e.prototype.clone = function () {
- var t = new e(null);
- return t.setGeometries(this.geometries_), t.applyProperties(this), t
- }, e.prototype.closestPointXY = function (t, e, r, n) {
- if (n < Jt(this.getExtent(), t, e)) return n;
- for (var i = this.geometries_, o = 0, a = i.length; o < a; ++o) n = i[o].closestPointXY(t, e, r, n);
- return n
- }, e.prototype.containsXY = function (t, e) {
- for (var r = this.geometries_, n = 0, i = r.length; n < i; ++n) if (r[n].containsXY(t, e)) return !0;
- return !1
- }, e.prototype.computeExtent = function (t) {
- oe(t);
- for (var e = this.geometries_, r = 0, n = e.length; r < n; ++r) he(t, e[r].getExtent());
- return t
- }, e.prototype.getGeometries = function () {
- return Bm(this.geometries_)
- }, e.prototype.getGeometriesArray = function () {
- return this.geometries_
- }, e.prototype.getGeometriesArrayRecursive = function () {
- for (var t = [], e = this.geometries_, r = 0, n = e.length; r < n; ++r) e[r].getType() === this.getType() ? t = t.concat(e[r].getGeometriesArrayRecursive()) : t.push(e[r]);
- return t
- }, e.prototype.getSimplifiedGeometry = function (t) {
- if (this.simplifiedGeometryRevision !== this.getRevision() && (this.simplifiedGeometryMaxMinSquaredTolerance = 0, this.simplifiedGeometryRevision = this.getRevision()), t < 0 || 0 !== this.simplifiedGeometryMaxMinSquaredTolerance && t < this.simplifiedGeometryMaxMinSquaredTolerance) return this;
- for (var r = [], n = this.geometries_, i = !1, o = 0, a = n.length; o < a; ++o) {
- var s = n[o], l = s.getSimplifiedGeometry(t);
- r.push(l), l !== s && (i = !0)
- }
- if (i) {
- var u = new e(null);
- return u.setGeometriesArray(r), u
- }
- return this.simplifiedGeometryMaxMinSquaredTolerance = t, this
- }, e.prototype.getType = function () {
- return bt.GEOMETRY_COLLECTION
- }, e.prototype.intersectsExtent = function (t) {
- for (var e = this.geometries_, r = 0, n = e.length; r < n; ++r) if (e[r].intersectsExtent(t)) return !0;
- return !1
- }, e.prototype.isEmpty = function () {
- return 0 === this.geometries_.length
- }, e.prototype.rotate = function (t, e) {
- for (var r = this.geometries_, n = 0, i = r.length; n < i; ++n) r[n].rotate(t, e);
- this.changed()
- }, e.prototype.scale = function (t, e, r) {
- var n = r;
- n || (n = xe(this.getExtent()));
- for (var i = this.geometries_, o = 0, a = i.length; o < a; ++o) i[o].scale(t, e, n);
- this.changed()
- }, e.prototype.setGeometries = function (t) {
- this.setGeometriesArray(Bm(t))
- }, e.prototype.setGeometriesArray = function (t) {
- this.unlistenGeometriesChange_(), this.geometries_ = t, this.listenGeometriesChange_(), this.changed()
- }, e.prototype.applyTransform = function (t) {
- for (var e = this.geometries_, r = 0, n = e.length; r < n; ++r) e[r].applyTransform(t);
- this.changed()
- }, e.prototype.translate = function (t, e) {
- for (var r = this.geometries_, n = 0, i = r.length; n < i; ++n) r[n].translate(t, e);
- this.changed()
- }, e.prototype.disposeInternal = function () {
- this.unlistenGeometriesChange_(), t.prototype.disposeInternal.call(this)
- }, e
- }(dn), Ym = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }();
-
- function Wm(t) {
- if ("string" == typeof t) {
- var e = JSON.parse(t);
- return e || null
- }
- return null !== t ? t : null
- }
-
- var qm = function (t) {
- function e() {
- return t.call(this) || this
- }
-
- return Ym(e, t), e.prototype.getType = function () {
- return Ou
- }, e.prototype.readFeature = function (t, e) {
- return this.readFeatureFromObject(Wm(t), this.getReadOptions(t, e))
- }, e.prototype.readFeatures = function (t, e) {
- return this.readFeaturesFromObject(Wm(t), this.getReadOptions(t, e))
- }, e.prototype.readFeatureFromObject = function (t, e) {
- return n()
- }, e.prototype.readFeaturesFromObject = function (t, e) {
- return n()
- }, e.prototype.readGeometry = function (t, e) {
- return this.readGeometryFromObject(Wm(t), this.getReadOptions(t, e))
- }, e.prototype.readGeometryFromObject = function (t, e) {
- return n()
- }, e.prototype.readProjection = function (t) {
- return this.readProjectionFromObject(Wm(t))
- }, e.prototype.readProjectionFromObject = function (t) {
- return n()
- }, e.prototype.writeFeature = function (t, e) {
- return JSON.stringify(this.writeFeatureObject(t, e))
- }, e.prototype.writeFeatureObject = function (t, e) {
- return n()
- }, e.prototype.writeFeatures = function (t, e) {
- return JSON.stringify(this.writeFeaturesObject(t, e))
- }, e.prototype.writeFeaturesObject = function (t, e) {
- return n()
- }, e.prototype.writeGeometry = function (t, e) {
- return JSON.stringify(this.writeGeometryObject(t, e))
- }, e.prototype.writeGeometryObject = function (t, e) {
- return n()
- }, e
- }(Yy), Xm = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }();
-
- function Zm(t, e) {
- if (!t) return null;
- var r;
- switch (t.type) {
- case bt.POINT:
- r = function (t) {
- return new qn(t.coordinates)
- }(t);
- break;
- case bt.LINE_STRING:
- r = function (t) {
- return new Py(t.coordinates)
- }(t);
- break;
- case bt.POLYGON:
- r = function (t) {
- return new fi(t.coordinates)
- }(t);
- break;
- case bt.MULTI_POINT:
- r = function (t) {
- return new Hy(t.coordinates)
- }(t);
- break;
- case bt.MULTI_LINE_STRING:
- r = function (t) {
- return new Zy(t.coordinates)
- }(t);
- break;
- case bt.MULTI_POLYGON:
- r = function (t) {
- return new Jy(t.coordinates)
- }(t);
- break;
- case bt.GEOMETRY_COLLECTION:
- r = function (t, e) {
- var r = t.geometries.map((function (t) {
- return Zm(t, e)
- }));
- return new Vm(r)
- }(t);
- break;
- default:
- throw new Error("Unsupported GeoJSON type: " + t.type)
- }
- return Wy(r, !1, e)
- }
-
- function Km(t, e) {
- var r, n = (t = Wy(t, !0, e)).getType();
- switch (n) {
- case bt.POINT:
- r = function (t, e) {
- return {type: "Point", coordinates: t.getCoordinates()}
- }(t);
- break;
- case bt.LINE_STRING:
- r = function (t, e) {
- return {type: "LineString", coordinates: t.getCoordinates()}
- }(t);
- break;
- case bt.POLYGON:
- r = function (t, e) {
- var r;
- e && (r = e.rightHanded);
- return {type: "Polygon", coordinates: t.getCoordinates(r)}
- }(t, e);
- break;
- case bt.MULTI_POINT:
- r = function (t, e) {
- return {type: "MultiPoint", coordinates: t.getCoordinates()}
- }(t);
- break;
- case bt.MULTI_LINE_STRING:
- r = function (t, e) {
- return {type: "MultiLineString", coordinates: t.getCoordinates()}
- }(t);
- break;
- case bt.MULTI_POLYGON:
- r = function (t, e) {
- var r;
- e && (r = e.rightHanded);
- return {type: "MultiPolygon", coordinates: t.getCoordinates(r)}
- }(t, e);
- break;
- case bt.GEOMETRY_COLLECTION:
- r = function (t, e) {
- return {
- type: "GeometryCollection", geometries: t.getGeometriesArray().map((function (t) {
- var r = O({}, e);
- return delete r.featureProjection, Km(t, r)
- }))
- }
- }(t, e);
- break;
- case bt.CIRCLE:
- r = {type: "GeometryCollection", geometries: []};
- break;
- default:
- throw new Error("Unsupported geometry type: " + n)
- }
- return r
- }
-
- var Hm, $m = function (t) {
- function e(e) {
- var r = this, n = e || {};
- return (r = t.call(this) || this).dataProjection = Gr(n.dataProjection ? n.dataProjection : "EPSG:4326"), n.featureProjection && (r.defaultFeatureProjection = Gr(n.featureProjection)), r.geometryName_ = n.geometryName, r.extractGeometryName_ = n.extractGeometryName, r
- }
-
- return Xm(e, t), e.prototype.readFeatureFromObject = function (t, e) {
- var r = null,
- n = Zm((r = "Feature" === t.type ? t : {type: "Feature", geometry: t, properties: null}).geometry, e),
- i = new gt;
- return this.geometryName_ ? i.setGeometryName(this.geometryName_) : this.extractGeometryName_ && "geometry_name" in r !== void 0 && i.setGeometryName(r.geometry_name), i.setGeometry(n), "id" in r && i.setId(r.id), r.properties && i.setProperties(r.properties, !0), i
- }, e.prototype.readFeaturesFromObject = function (t, e) {
- var r = null;
- if ("FeatureCollection" === t.type) {
- r = [];
- for (var n = t.features, i = 0, o = n.length; i < o; ++i) r.push(this.readFeatureFromObject(n[i], e))
- } else r = [this.readFeatureFromObject(t, e)];
- return r
- }, e.prototype.readGeometryFromObject = function (t, e) {
- return Zm(t, e)
- }, e.prototype.readProjectionFromObject = function (t) {
- var e, r = t.crs;
- return r ? "name" == r.type ? e = Gr(r.properties.name) : "EPSG" === r.type ? e = Gr("EPSG:" + r.properties.code) : pt(!1, 36) : e = this.dataProjection, e
- }, e.prototype.writeFeatureObject = function (t, e) {
- e = this.adaptOptions(e);
- var r = {type: "Feature", geometry: null, properties: null}, n = t.getId();
- if (void 0 !== n && (r.id = n), !t.hasProperties()) return r;
- var i = t.getProperties(), o = t.getGeometry();
- return o && (r.geometry = Km(o, e), delete i[t.getGeometryName()]), I(i) || (r.properties = i), r
- }, e.prototype.writeFeaturesObject = function (t, e) {
- e = this.adaptOptions(e);
- for (var r = [], n = 0, i = t.length; n < i; ++n) r.push(this.writeFeatureObject(t[n], e));
- return {type: "FeatureCollection", features: r}
- }, e.prototype.writeGeometryObject = function (t, e) {
- return Km(t, this.adaptOptions(e))
- }, e
- }(qm), Jm = /font-family: ?([^;]*);/, Qm = /("|')/g;
-
- function tv(t) {
- if (!Hm) {
- Hm = {};
- for (var e = document.styleSheets, r = 0, n = e.length; r < n; ++r) {
- var i = e[r];
- try {
- var o = i.rules || i.cssRules;
- if (o) for (var a = 0, s = o.length; a < s; ++a) {
- var l = o[a];
- if (5 == l.type) {
- var u = l.cssText.match(Jm);
- Hm[u[1].replace(Qm, "")] = !0
- }
- }
- } catch (t) {
- }
- }
- }
- return t in Hm
- }
-
- var ev = {}, rv = zm.a.getNames();
-
- function nv(t) {
- var e = t.toString();
- if (e in ev) return t;
- for (var r = t.map((function (t) {
- var e = cm()(t, 1).split(" ");
- return [e.slice(3).join(" ").replace(/"/g, ""), e[1] + e[0]]
- })), n = 0, i = r.length; n < i; ++n) {
- var o = r[n], a = o[0];
- if (!tv(a) && -1 !== rv.indexOf(a)) {
- var s = "https://fonts.googleapis.com/css?family=" + a.replace(/ /g, "+") + ":" + o[1];
- if (!document.querySelector('link[href="' + s + '"]')) {
- var l = document.createElement("link");
- l.href = s, l.rel = "stylesheet", document.head.appendChild(l)
- }
- }
- }
- return ev[e] = !0, t
- }
-
- var iv = /^(.*)(\?.*)$/;
-
- function ov(t, e) {
- return e && 0 === t.indexOf(".") && (t = e + t), t
- }
-
- function av(t, e, r) {
- var n = (t = ov(t, e)).match(iv);
- return n ? n[1] + r + (n.length > 2 ? n[2] : "") : t + r
- }
-
- function sv(t, e, r, n, i) {
- return new Promise((function (o, a) {
- if ("object" != typeof e && (e = JSON.parse(e)), 8 != e.version) return a(new Error("glStyle version 8 required."));
- if (!(t instanceof Iy || t instanceof lm)) return a(new Error("Can only apply to VectorLayer or VectorTileLayer"));
- var s, l, u;
-
- function c() {
- u || e.sprite && !s ? u ? (t.setStyle(u), o()) : a(new Error("Something went wrong trying to apply style.")) : (u = Dm(t, e, r, i, s, l, nv), t.getStyle() ? o() : a(new Error("Nothing to show for source [" + r + "]")))
- }
-
- if (e.sprite) {
- var h = .5 == (window.devicePixelRatio >= 1.5 ? .5 : 1) ? "@2x" : "", p = av(e.sprite, n, h + ".json");
- fetch(p, {credentials: "same-origin"}).then((function (t) {
- return t.ok || "" === h ? t : (p = av(e.sprite, n, ".json"), fetch(p, {credentials: "same-origin"}))
- })).then((function (t) {
- if (t.ok) return t.json();
- a(new Error("Problem fetching sprite from " + p + ": " + t.statusText))
- })).then((function (t) {
- if (void 0 === t) return a(new Error("No sprites found."));
- s = t, l = av(e.sprite, n, h + ".png"), c()
- })).catch((function (t) {
- a(new Error("Sprites cannot be loaded: " + p + ": " + t.message))
- }))
- } else c()
- }))
- }
-
- new $m;
- var lv = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }();
-
- function uv(t) {
- return 0 !== t.indexOf("mapbox://") ? "" : t.slice("mapbox://".length)
- }
-
- function cv(t, e) {
- var r = uv(t);
- if (!r) return t;
- if (0 !== r.indexOf("sprites/")) throw new Error("unexpected sprites url: " + t);
- return "https://api.mapbox.com/styles/v1/" + r.slice("sprites/".length) + "/sprite?access_token=" + e
- }
-
- function hv(t, e) {
- var r = uv(t);
- if (!r) return t;
- if (0 !== r.indexOf("fonts/")) throw new Error("unexpected fonts url: " + t);
- return "https://api.mapbox.com/fonts/v1/" + r.slice("fonts/".length) + "/0-255.pbf?access_token=" + e
- }
-
- function pv(t, e) {
- var r = uv(t);
- if (!r) return t;
- if (0 !== r.indexOf("styles/")) throw new Error("unexpected style url: " + t);
- return "https://api.mapbox.com/styles/v1/" + r.slice("styles/".length) + "?&access_token=" + e
- }
-
- function fv(t, e) {
- var r = uv(t);
- return r ? "https://{a-d}.tiles.mapbox.com/v4/" + r + "/{z}/{x}/{y}.vector.pbf?access_token=" + e : t
- }
-
- var dv = function (t) {
- function e(e) {
- var r = t.call(this, A) || this;
- return r.error = e, r
- }
-
- return lv(e, t), e
- }(c), gv = "vector", yv = function (t) {
- function e(e) {
- var r = this, n = !("declutter" in e) || e.declutter, i = new og({state: Jo, format: new am});
- return (r = t.call(this, {
- source: i,
- declutter: n,
- className: e.className,
- opacity: e.opacity,
- visible: e.visible,
- zIndex: e.zIndex,
- minResolution: e.minResolution,
- maxResolution: e.maxResolution,
- minZoom: e.minZoom,
- maxZoom: e.maxZoom,
- renderOrder: e.renderOrder,
- renderBuffer: e.renderBuffer,
- renderMode: e.renderMode,
- map: e.map,
- updateWhileAnimating: e.updateWhileAnimating,
- updateWhileInteracting: e.updateWhileInteracting,
- preload: e.preload,
- useInterimTilesOnError: e.useInterimTilesOnError
- }) || this).sourceId = e.source, r.layers = e.layers, r.accessToken = e.accessToken, r.fetchStyle(e.styleUrl), r
- }
-
- return lv(e, t), e.prototype.fetchStyle = function (t) {
- var e = this, r = pv(t, this.accessToken);
- fetch(r).then((function (t) {
- if (!t.ok) throw new Error("unexpected response when fetching style: " + t.status);
- return t.json()
- })).then((function (t) {
- e.onStyleLoad(t)
- })).catch((function (t) {
- e.handleError(t)
- }))
- }, e.prototype.onStyleLoad = function (t) {
- var e, r, n = this;
- if (this.layers) {
- for (var i = {}, o = 0; o < t.layers.length; ++o) {
- var a = t.layers[o];
- a.source && (i[a.id] = a.source)
- }
- var s = void 0;
- for (o = 0; o < this.layers.length; ++o) {
- var l = i[this.layers[o]];
- if (!l) return void this.handleError(new Error("could not find source for " + this.layers[o]));
- if (s) {
- if (s !== l) return void this.handleError(new Error("layers can only use a single source, found " + s + " and " + l))
- } else s = l
- }
- e = s, r = this.layers
- } else r = e = this.sourceId;
- r || (r = e = Object.keys(t.sources)[0]), t.sprite && (t.sprite = cv(t.sprite, this.accessToken)), t.glyphs && (t.glyphs = hv(t.glyphs, this.accessToken));
- var u = t.sources[e];
- if (u.type === gv) {
- var c = this.getSource();
- c.setUrl(fv(u.url, this.accessToken)), sv(this, t, r).then((function () {
- c.setState(Qo)
- })).catch((function (t) {
- n.handleError(t)
- }))
- } else this.handleError(new Error("only works for vector sources, found " + u.type))
- }, e.prototype.handleError = function (t) {
- this.dispatchEvent(new dv(t)), this.getSource().setState(ta)
- }, e
- }(lm), mv = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), vv = function (t) {
- function e(e) {
- var r = this, n = e || {}, i = O({}, n);
- return delete i.imageRatio, (r = t.call(this, i) || this).imageRatio_ = void 0 !== n.imageRatio ? n.imageRatio : 1, r
- }
-
- return mv(e, t), e.prototype.getImageRatio = function () {
- return this.imageRatio_
- }, e.prototype.createRenderer = function () {
- return new py(this)
- }, e
- }(wg), _v = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), bv = function (t) {
- function e(e) {
- var r = this, n = O({}, e);
- return (r = t.call(this, n) || this).parseResult_ = Wh(e.style), r.hitDetectionDisabled_ = !!e.disableHitDetection, r
- }
-
- return _v(e, t), e.prototype.createRenderer = function () {
- return new Eg(this, {
- className: this.getClassName(),
- vertexShader: this.parseResult_.builder.getSymbolVertexShader(),
- fragmentShader: this.parseResult_.builder.getSymbolFragmentShader(),
- hitVertexShader: !this.hitDetectionDisabled_ && this.parseResult_.builder.getSymbolVertexShader(!0),
- hitFragmentShader: !this.hitDetectionDisabled_ && this.parseResult_.builder.getSymbolFragmentShader(!0),
- uniforms: this.parseResult_.uniforms,
- attributes: this.parseResult_.attributes
- })
- }, e.prototype.disposeInternal = function () {
- this.getRenderer().disposeInternal(), t.prototype.disposeInternal.call(this)
- }, e
- }(na), xv = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), wv = "addfeatures", Sv = function (t) {
- function e(e, r, n, i) {
- var o = t.call(this, e) || this;
- return o.features = n, o.file = r, o.projection = i, o
- }
-
- return xv(e, t), e
- }(c), Ev = function (t) {
- function e(e) {
- var r = this, n = e || {};
- (r = t.call(this, {handleEvent: S}) || this).readAsBuffer_ = !1, r.formats_ = [];
- for (var i = n.formatConstructors ? n.formatConstructors : [], o = 0, a = i.length; o < a; ++o) {
- var s = i[o];
- "function" == typeof s && (s = new s), r.formats_.push(s), r.readAsBuffer_ = r.readAsBuffer_ || s.getType() === Cu
- }
- return r.projection_ = n.projection ? Gr(n.projection) : null, r.dropListenKeys_ = null, r.source_ = n.source || null, r.target = n.target ? n.target : null, r
- }
-
- return xv(e, t), e.prototype.handleResult_ = function (t, e) {
- var r, n = e.target.result, i = this.getMap(), o = this.projection_;
- o || (o = i.getView().getProjection());
- for (var a = this.formats_, s = 0, l = a.length; s < l; ++s) {
- var u = a[s], c = n;
- this.readAsBuffer_ && u.getType() !== Cu && (void 0 === r && (r = (new TextDecoder).decode(n)), c = r);
- var h = this.tryReadFeatures_(u, c, {featureProjection: o});
- if (h && h.length > 0) {
- this.source_ && (this.source_.clear(), this.source_.addFeatures(h)), this.dispatchEvent(new Sv(wv, t, h, o));
- break
- }
- }
- }, e.prototype.registerListeners_ = function () {
- var t = this.getMap();
- if (t) {
- var e = this.target ? this.target : t.getViewport();
- this.dropListenKeys_ = [Z(e, U, this.handleDrop, this), Z(e, G, this.handleStop, this), Z(e, z, this.handleStop, this), Z(e, U, this.handleStop, this)]
- }
- }, e.prototype.setActive = function (e) {
- !this.getActive() && e && this.registerListeners_(), this.getActive() && !e && this.unregisterListeners_(), t.prototype.setActive.call(this, e)
- }, e.prototype.setMap = function (e) {
- this.unregisterListeners_(), t.prototype.setMap.call(this, e), this.getActive() && this.registerListeners_()
- }, e.prototype.tryReadFeatures_ = function (t, e, r) {
- try {
- return t.readFeatures(e, r)
- } catch (t) {
- return null
- }
- }, e.prototype.unregisterListeners_ = function () {
- this.dropListenKeys_ && (this.dropListenKeys_.forEach(H), this.dropListenKeys_ = null)
- }, e.prototype.handleDrop = function (t) {
- for (var e = t.dataTransfer.files, r = 0, n = e.length; r < n; ++r) {
- var i = e.item(r), o = new FileReader;
- o.addEventListener(Y, this.handleResult_.bind(this, i)), this.readAsBuffer_ ? o.readAsArrayBuffer(i) : o.readAsText(i)
- }
- }, e.prototype.handleStop = function (t) {
- t.stopPropagation(), t.preventDefault(), t.dataTransfer.dropEffect = "copy"
- }, e
- }(qs), Tv = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Cv = function (t) {
- function e(e) {
- var r = this, n = e || {};
- return (r = t.call(this, n) || this).condition_ = n.condition ? n.condition : ll, r.lastAngle_ = void 0, r.lastMagnitude_ = void 0, r.lastScaleDelta_ = 0, r.duration_ = void 0 !== n.duration ? n.duration : 400, r
- }
-
- return Tv(e, t), e.prototype.handleDragEvent = function (t) {
- if (cl(t)) {
- var e = t.map, r = e.getSize(), n = t.pixel, i = n[0] - r[0] / 2, o = r[1] / 2 - n[1], a = Math.atan2(o, i),
- s = Math.sqrt(i * i + o * o), l = e.getView();
- if (void 0 !== this.lastAngle_) {
- var u = this.lastAngle_ - a;
- l.adjustRotationInternal(u)
- }
- this.lastAngle_ = a, void 0 !== this.lastMagnitude_ && l.adjustResolutionInternal(this.lastMagnitude_ / s), void 0 !== this.lastMagnitude_ && (this.lastScaleDelta_ = this.lastMagnitude_ / s), this.lastMagnitude_ = s
- }
- }, e.prototype.handleUpEvent = function (t) {
- if (!cl(t)) return !0;
- var e = t.map.getView(), r = this.lastScaleDelta_ > 1 ? 1 : -1;
- return e.endInteraction(this.duration_, r), this.lastScaleDelta_ = 0, !1
- }, e.prototype.handleDownEvent = function (t) {
- return !!cl(t) && (!!this.condition_(t) && (t.map.getView().beginInteraction(), this.lastAngle_ = void 0, this.lastMagnitude_ = void 0, !0))
- }, e
- }($s), Ov = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Pv = function (t) {
- function e(e, r, n) {
- var i = t.call(this) || this;
- if (void 0 !== n && void 0 === r) i.setFlatCoordinates(n, e); else {
- var o = r || 0;
- i.setCenterAndRadius(e, o, n)
- }
- return i
- }
-
- return Ov(e, t), e.prototype.clone = function () {
- var t = new e(this.flatCoordinates.slice(), void 0, this.layout);
- return t.applyProperties(this), t
- }, e.prototype.closestPointXY = function (t, e, r, n) {
- var i = this.flatCoordinates, o = t - i[0], a = e - i[1], s = o * o + a * a;
- if (s < n) {
- if (0 === s) for (var l = 0; l < this.stride; ++l) r[l] = i[l]; else {
- var u = this.getRadius() / Math.sqrt(s);
- r[0] = i[0] + u * o, r[1] = i[1] + u * a;
- for (l = 2; l < this.stride; ++l) r[l] = i[l]
- }
- return r.length = this.stride, s
- }
- return n
- }, e.prototype.containsXY = function (t, e) {
- var r = this.flatCoordinates, n = t - r[0], i = e - r[1];
- return n * n + i * i <= this.getRadiusSquared_()
- }, e.prototype.getCenter = function () {
- return this.flatCoordinates.slice(0, this.stride)
- }, e.prototype.computeExtent = function (t) {
- var e = this.flatCoordinates, r = e[this.stride] - e[0];
- return ie(e[0] - r, e[1] - r, e[0] + r, e[1] + r, t)
- }, e.prototype.getRadius = function () {
- return Math.sqrt(this.getRadiusSquared_())
- }, e.prototype.getRadiusSquared_ = function () {
- var t = this.flatCoordinates[this.stride] - this.flatCoordinates[0],
- e = this.flatCoordinates[this.stride + 1] - this.flatCoordinates[1];
- return t * t + e * e
- }, e.prototype.getType = function () {
- return bt.CIRCLE
- }, e.prototype.intersectsExtent = function (t) {
- if (Re(t, this.getExtent())) {
- var e = this.getCenter();
- return t[0] <= e[0] && t[2] >= e[0] || (t[1] <= e[1] && t[3] >= e[1] || me(t, this.intersectsCoordinate.bind(this)))
- }
- return !1
- }, e.prototype.setCenter = function (t) {
- var e = this.stride, r = this.flatCoordinates[e] - this.flatCoordinates[0], n = t.slice();
- n[e] = n[0] + r;
- for (var i = 1; i < e; ++i) n[e + i] = t[i];
- this.setFlatCoordinates(this.layout, n), this.changed()
- }, e.prototype.setCenterAndRadius = function (t, e, r) {
- this.setLayout(r, t, 0), this.flatCoordinates || (this.flatCoordinates = []);
- var n = this.flatCoordinates, i = Cn(n, 0, t, this.stride);
- n[i++] = n[0] + e;
- for (var o = 1, a = this.stride; o < a; ++o) n[i++] = n[o];
- n.length = i, this.changed()
- }, e.prototype.getCoordinates = function () {
- return null
- }, e.prototype.setCoordinates = function (t, e) {
- }, e.prototype.setRadius = function (t) {
- this.flatCoordinates[this.stride] = this.flatCoordinates[0] + t, this.changed()
- }, e.prototype.rotate = function (t, e) {
- var r = this.getCenter(), n = this.getStride();
- this.setCenter(un(r, 0, r.length, n, t, e, r)), this.changed()
- }, e.prototype.translate = function (t, e) {
- var r = this.getCenter(), n = this.getStride();
- this.setCenter(hn(r, 0, r.length, n, t, e, r)), this.changed()
- }, e
- }(vn);
- Pv.prototype.transform;
- var Rv = Pv, Iv = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Lv = "Point", Mv = "LineString", Fv = "Polygon", Av = "Circle", kv = "drawstart", jv = "drawend",
- Nv = "drawabort", Dv = function (t) {
- function e(e, r) {
- var n = t.call(this, e) || this;
- return n.feature = r, n
- }
-
- return Iv(e, t), e
- }(c);
- var Gv = function (t) {
- function e(e) {
- var r = this, n = e;
- n.stopDown || (n.stopDown = E), (r = t.call(this, n) || this).shouldHandle_ = !1, r.downPx_ = null, r.downTimeout_, r.lastDragTime_, r.pointerType_, r.freehand_ = !1, r.source_ = e.source ? e.source : null, r.features_ = e.features ? e.features : null, r.snapTolerance_ = e.snapTolerance ? e.snapTolerance : 12, r.type_ = e.type, r.mode_ = function (t) {
- var e;
- t === bt.POINT || t === bt.MULTI_POINT ? e = Lv : t === bt.LINE_STRING || t === bt.MULTI_LINE_STRING ? e = Mv : t === bt.POLYGON || t === bt.MULTI_POLYGON ? e = Fv : t === bt.CIRCLE && (e = Av);
- return e
- }(r.type_), r.stopClick_ = !!e.stopClick, r.minPoints_ = e.minPoints ? e.minPoints : r.mode_ === Fv ? 3 : 2, r.maxPoints_ = r.mode_ === Av ? 2 : e.maxPoints ? e.maxPoints : 1 / 0, r.finishCondition_ = e.finishCondition ? e.finishCondition : S;
- var i, o = e.geometryFunction;
- if (!o) {
- var a, s = r.mode_;
- if (s === Av) o = function (t, e, r) {
- var n = e || new Rv([NaN, NaN]), i = rn(t[0], r), o = Rr(i, rn(t[t.length - 1], r));
- n.setCenterAndRadius(i, Math.sqrt(o));
- var a = tn();
- return a && n.transform(r, a), n
- }; else s === Lv ? a = qn : s === Mv ? a = Py : s === Fv && (a = fi), o = function (t, e, r) {
- return e ? s === Fv ? t[0].length ? e.setCoordinates([t[0].concat([t[0][0]])]) : e.setCoordinates([]) : e.setCoordinates(t) : e = new a(t), e
- }
- }
- return r.geometryFunction_ = o, r.dragVertexDelay_ = void 0 !== e.dragVertexDelay ? e.dragVertexDelay : 500, r.finishCoordinate_ = null, r.sketchFeature_ = null, r.sketchPoint_ = null, r.sketchCoords_ = null, r.sketchLine_ = null, r.sketchLineCoords_ = null, r.squaredClickTolerance_ = e.clickTolerance ? e.clickTolerance * e.clickTolerance : 36, r.overlay_ = new Iy({
- source: new hf({
- useSpatialIndex: !1,
- wrapX: !!e.wrapX && e.wrapX
- }), style: e.style ? e.style : (i = bp(), function (t, e) {
- return i[t.getGeometry().getType()]
- }), updateWhileInteracting: !0
- }), r.geometryName_ = e.geometryName, r.condition_ = e.condition ? e.condition : sl, r.freehandCondition_, e.freehand ? r.freehandCondition_ = nl : r.freehandCondition_ = e.freehandCondition ? e.freehandCondition : ll, r.addEventListener(it(Bs), r.updateState_), r
- }
-
- return Iv(e, t), e.prototype.setMap = function (e) {
- t.prototype.setMap.call(this, e), this.updateState_()
- }, e.prototype.getOverlay = function () {
- return this.overlay_
- }, e.prototype.handleEvent = function (e) {
- e.originalEvent.type === j && e.originalEvent.preventDefault(), this.freehand_ = this.mode_ !== Lv && this.freehandCondition_(e);
- var r = e.type === Ga.POINTERMOVE, n = !0;
- !this.freehand_ && this.lastDragTime_ && e.type === Ga.POINTERDRAG && (Date.now() - this.lastDragTime_ >= this.dragVertexDelay_ ? (this.downPx_ = e.pixel, this.shouldHandle_ = !this.freehand_, r = !0) : this.lastDragTime_ = void 0, this.shouldHandle_ && void 0 !== this.downTimeout_ && (clearTimeout(this.downTimeout_), this.downTimeout_ = void 0));
- return this.freehand_ && e.type === Ga.POINTERDRAG && null !== this.sketchFeature_ ? (this.addToDrawing_(e.coordinate), n = !1) : this.freehand_ && e.type === Ga.POINTERDOWN ? n = !1 : r && this.getPointerCount() < 2 ? (n = e.type === Ga.POINTERMOVE) && this.freehand_ ? (this.handlePointerMove_(e), this.shouldHandle_ && e.originalEvent.preventDefault()) : ("mouse" === e.originalEvent.pointerType || e.type === Ga.POINTERDRAG && void 0 === this.downTimeout_) && this.handlePointerMove_(e) : e.type === Ga.DBLCLICK && (n = !1), t.prototype.handleEvent.call(this, e) && n
- }, e.prototype.handleDownEvent = function (t) {
- return this.shouldHandle_ = !this.freehand_, this.freehand_ ? (this.downPx_ = t.pixel, this.finishCoordinate_ || this.startDrawing_(t.coordinate), !0) : this.condition_(t) ? (this.lastDragTime_ = Date.now(), this.downTimeout_ = setTimeout(function () {
- this.handlePointerMove_(new Da(Ga.POINTERMOVE, t.map, t.originalEvent, !1, t.frameState))
- }.bind(this), this.dragVertexDelay_), this.downPx_ = t.pixel, !0) : (this.lastDragTime_ = void 0, !1)
- }, e.prototype.handleUpEvent = function (t) {
- var e = !0;
- if (0 === this.getPointerCount()) if (this.downTimeout_ && (clearTimeout(this.downTimeout_), this.downTimeout_ = void 0), this.handlePointerMove_(t), this.shouldHandle_) {
- switch (!0) {
- case!this.finishCoordinate_:
- if (this.startDrawing_(t.coordinate), this.mode_ !== Lv) break;
- case this.freehand_ || this.atFinish_(t.pixel) && this.finishCondition_(t):
- this.finishDrawing();
- break;
- case!this.freehand_:
- this.addToDrawing_(t.coordinate)
- }
- e = !1
- } else this.freehand_ && this.abortDrawing();
- return !e && this.stopClick_ && t.originalEvent.stopPropagation(), e
- }, e.prototype.handlePointerMove_ = function (t) {
- if (this.pointerType_ = t.originalEvent.pointerType, this.downPx_ && (!this.freehand_ && this.shouldHandle_ || this.freehand_ && !this.shouldHandle_)) {
- var e = this.downPx_, r = t.pixel, n = e[0] - r[0], i = e[1] - r[1], o = n * n + i * i;
- if (this.shouldHandle_ = this.freehand_ ? o > this.squaredClickTolerance_ : o <= this.squaredClickTolerance_, !this.shouldHandle_) return
- }
- this.finishCoordinate_ ? this.modifyDrawing_(t.coordinate) : this.createOrUpdateSketchPoint_(t)
- }, e.prototype.atFinish_ = function (t) {
- var e = !1;
- if (this.sketchFeature_) {
- var r = !1, n = [this.finishCoordinate_], i = this.mode_;
- if (i === Lv) e = !0; else if (i === Av) e = 2 === this.sketchCoords_.length; else if (i === Mv) r = this.sketchCoords_.length > this.minPoints_; else if (i === Fv) {
- var o = this.sketchCoords_;
- r = o[0].length > this.minPoints_, n = [o[0][0], o[0][o[0].length - 2]]
- }
- if (r) for (var a = this.getMap(), s = 0, l = n.length; s < l; s++) {
- var u = n[s], c = a.getPixelFromCoordinate(u), h = t[0] - c[0], p = t[1] - c[1],
- f = this.freehand_ ? 1 : this.snapTolerance_;
- if (e = Math.sqrt(h * h + p * p) <= f) {
- this.finishCoordinate_ = u;
- break
- }
- }
- }
- return e
- }, e.prototype.createOrUpdateSketchPoint_ = function (t) {
- var e = t.coordinate.slice();
- this.sketchPoint_ ? this.sketchPoint_.getGeometry().setCoordinates(e) : (this.sketchPoint_ = new gt(new qn(e)), this.updateSketchFeatures_())
- }, e.prototype.createOrUpdateCustomSketchLine_ = function (t) {
- this.sketchLine_ || (this.sketchLine_ = new gt);
- var e = t.getLinearRing(0), r = this.sketchLine_.getGeometry();
- r ? (r.setFlatCoordinates(e.getLayout(), e.getFlatCoordinates()), r.changed()) : (r = new Py(e.getFlatCoordinates(), e.getLayout()), this.sketchLine_.setGeometry(r))
- }, e.prototype.startDrawing_ = function (t) {
- var e = this.getMap().getView().getProjection();
- this.finishCoordinate_ = t, this.mode_ === Lv ? this.sketchCoords_ = t.slice() : this.mode_ === Fv ? (this.sketchCoords_ = [[t.slice(), t.slice()]], this.sketchLineCoords_ = this.sketchCoords_[0]) : this.sketchCoords_ = [t.slice(), t.slice()], this.sketchLineCoords_ && (this.sketchLine_ = new gt(new Py(this.sketchLineCoords_)));
- var r = this.geometryFunction_(this.sketchCoords_, void 0, e);
- this.sketchFeature_ = new gt, this.geometryName_ && this.sketchFeature_.setGeometryName(this.geometryName_), this.sketchFeature_.setGeometry(r), this.updateSketchFeatures_(), this.dispatchEvent(new Dv(kv, this.sketchFeature_))
- }, e.prototype.modifyDrawing_ = function (t) {
- var e, r, n = this.getMap(), i = this.sketchFeature_.getGeometry(), o = n.getView().getProjection();
- (this.mode_ === Lv ? r = this.sketchCoords_ : this.mode_ === Fv ? (r = (e = this.sketchCoords_[0])[e.length - 1], this.atFinish_(n.getPixelFromCoordinate(t)) && (t = this.finishCoordinate_.slice())) : r = (e = this.sketchCoords_)[e.length - 1], r[0] = t[0], r[1] = t[1], this.geometryFunction_(this.sketchCoords_, i, o), this.sketchPoint_) && this.sketchPoint_.getGeometry().setCoordinates(t);
- if (i.getType() === bt.POLYGON && this.mode_ !== Fv) this.createOrUpdateCustomSketchLine_(i); else if (this.sketchLineCoords_) {
- this.sketchLine_.getGeometry().setCoordinates(this.sketchLineCoords_)
- }
- this.updateSketchFeatures_()
- }, e.prototype.addToDrawing_ = function (t) {
- var e, r, n = this.sketchFeature_.getGeometry(), i = this.getMap().getView().getProjection(), o = this.mode_;
- o === Mv || o === Av ? (this.finishCoordinate_ = t.slice(), (r = this.sketchCoords_).length >= this.maxPoints_ && (this.freehand_ ? r.pop() : e = !0), r.push(t.slice()), this.geometryFunction_(r, n, i)) : o === Fv && ((r = this.sketchCoords_[0]).length >= this.maxPoints_ && (this.freehand_ ? r.pop() : e = !0), r.push(t.slice()), e && (this.finishCoordinate_ = r[0]), this.geometryFunction_(this.sketchCoords_, n, i)), this.updateSketchFeatures_(), e && this.finishDrawing()
- }, e.prototype.removeLastPoint = function () {
- if (this.sketchFeature_) {
- var t, e = this.sketchFeature_.getGeometry(), r = this.getMap().getView().getProjection(), n = this.mode_;
- if (n === Mv || n === Av) {
- if ((t = this.sketchCoords_).splice(-2, 1), t.length >= 2) {
- this.finishCoordinate_ = t[t.length - 2].slice();
- var i = this.finishCoordinate_.slice();
- t[t.length - 1] = i, this.sketchPoint_.setGeometry(new qn(i))
- }
- this.geometryFunction_(t, e, r), e.getType() === bt.POLYGON && this.sketchLine_ && this.createOrUpdateCustomSketchLine_(e)
- } else if (n === Fv) {
- (t = this.sketchCoords_[0]).splice(-2, 1);
- var o = this.sketchLine_.getGeometry();
- if (t.length >= 2) {
- i = t[t.length - 2].slice();
- t[t.length - 1] = i, this.sketchPoint_.setGeometry(new qn(i))
- }
- o.setCoordinates(t), this.geometryFunction_(this.sketchCoords_, e, r)
- }
- 1 === t.length && this.abortDrawing(), this.updateSketchFeatures_()
- }
- }, e.prototype.finishDrawing = function () {
- var t = this.abortDrawing_();
- if (t) {
- var e = this.sketchCoords_, r = t.getGeometry(), n = this.getMap().getView().getProjection();
- this.mode_ === Mv ? (e.pop(), this.geometryFunction_(e, r, n)) : this.mode_ === Fv && (e[0].pop(), this.geometryFunction_(e, r, n), e = r.getCoordinates()), this.type_ === bt.MULTI_POINT ? t.setGeometry(new Hy([e])) : this.type_ === bt.MULTI_LINE_STRING ? t.setGeometry(new Zy([e])) : this.type_ === bt.MULTI_POLYGON && t.setGeometry(new Jy([e])), this.dispatchEvent(new Dv(jv, t)), this.features_ && this.features_.push(t), this.source_ && this.source_.addFeature(t)
- }
- }, e.prototype.abortDrawing_ = function () {
- this.finishCoordinate_ = null;
- var t = this.sketchFeature_;
- return this.sketchFeature_ = null, this.sketchPoint_ = null, this.sketchLine_ = null, this.overlay_.getSource().clear(!0), t
- }, e.prototype.abortDrawing = function () {
- var t = this.abortDrawing_();
- t && this.dispatchEvent(new Dv(Nv, t))
- }, e.prototype.appendCoordinates = function (t) {
- var e, r = this.mode_, n = !this.sketchFeature_;
- if (n && this.startDrawing_(t[0]), r === Mv || r === Av) e = this.sketchCoords_; else {
- if (r !== Fv) return;
- e = this.sketchCoords_ && this.sketchCoords_.length ? this.sketchCoords_[0] : []
- }
- n && e.shift(), e.pop();
- for (var i = 0; i < t.length; i++) this.addToDrawing_(t[i]);
- var o = t[t.length - 1];
- this.addToDrawing_(o), this.modifyDrawing_(o)
- }, e.prototype.extend = function (t) {
- var e = t.getGeometry();
- this.sketchFeature_ = t, this.sketchCoords_ = e.getCoordinates();
- var r = this.sketchCoords_[this.sketchCoords_.length - 1];
- this.finishCoordinate_ = r.slice(), this.sketchCoords_.push(r.slice()), this.sketchPoint_ = new gt(new qn(r)), this.updateSketchFeatures_(), this.dispatchEvent(new Dv(kv, this.sketchFeature_))
- }, e.prototype.updateSketchFeatures_ = function () {
- var t = [];
- this.sketchFeature_ && t.push(this.sketchFeature_), this.sketchLine_ && t.push(this.sketchLine_), this.sketchPoint_ && t.push(this.sketchPoint_);
- var e = this.overlay_.getSource();
- e.clear(!0), e.addFeatures(t)
- }, e.prototype.updateState_ = function () {
- var t = this.getMap(), e = this.getActive();
- t && e || this.abortDrawing(), this.overlay_.setMap(e ? t : null)
- }, e
- }($s), zv = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Uv = "extentchanged", Bv = function (t) {
- function e(e) {
- var r = t.call(this, Uv) || this;
- return r.extent = e, r
- }
-
- return zv(e, t), e
- }(c);
-
- function Vv() {
- var t = bp();
- return function (e, r) {
- return t[bt.POINT]
- }
- }
-
- function Yv(t) {
- return function (e) {
- return Kt([t, e])
- }
- }
-
- function Wv(t, e) {
- return t[0] == e[0] ? function (r) {
- return Kt([t, [r[0], e[1]]])
- } : t[1] == e[1] ? function (r) {
- return Kt([t, [e[0], r[1]]])
- } : null
- }
-
- var qv = function (t) {
- function e(e) {
- var r, n = this, i = e || {};
- return (n = t.call(this, i) || this).condition_ = i.condition ? i.condition : nl, n.extent_ = null, n.pointerHandler_ = null, n.pixelTolerance_ = void 0 !== i.pixelTolerance ? i.pixelTolerance : 10, n.snappedToVertex_ = !1, n.extentFeature_ = null, n.vertexFeature_ = null, e || (e = {}), n.extentOverlay_ = new Iy({
- source: new hf({
- useSpatialIndex: !1,
- wrapX: !!e.wrapX
- }), style: e.boxStyle ? e.boxStyle : (r = bp(), function (t, e) {
- return r[bt.POLYGON]
- }), updateWhileAnimating: !0, updateWhileInteracting: !0
- }), n.vertexOverlay_ = new Iy({
- source: new hf({useSpatialIndex: !1, wrapX: !!e.wrapX}),
- style: e.pointerStyle ? e.pointerStyle : Vv(),
- updateWhileAnimating: !0,
- updateWhileInteracting: !0
- }), e.extent && n.setExtent(e.extent), n
- }
-
- return zv(e, t), e.prototype.snapToVertex_ = function (t, e) {
- var r = e.getCoordinateFromPixelInternal(t), n = this.getExtentInternal();
- if (n) {
- var i = function (t) {
- return [[[t[0], t[1]], [t[0], t[3]]], [[t[0], t[3]], [t[2], t[3]]], [[t[2], t[3]], [t[2], t[1]]], [[t[2], t[1]], [t[0], t[1]]]]
- }(n);
- i.sort((function (t, e) {
- return Lr(r, t) - Lr(r, e)
- }));
- var o = i[0], a = Sr(r, o), s = e.getPixelFromCoordinateInternal(a);
- if (Ir(t, s) <= this.pixelTolerance_) {
- var l = e.getPixelFromCoordinateInternal(o[0]), u = e.getPixelFromCoordinateInternal(o[1]), c = Rr(s, l),
- h = Rr(s, u), p = Math.sqrt(Math.min(c, h));
- return this.snappedToVertex_ = p <= this.pixelTolerance_, this.snappedToVertex_ && (a = c > h ? o[1] : o[0]), a
- }
- }
- return null
- }, e.prototype.handlePointerMove_ = function (t) {
- var e = t.pixel, r = t.map, n = this.snapToVertex_(e, r);
- n || (n = r.getCoordinateFromPixelInternal(e)), this.createOrUpdatePointerFeature_(n)
- }, e.prototype.createOrUpdateExtentFeature_ = function (t) {
- var e = this.extentFeature_;
- return e ? t ? e.setGeometry(gi(t)) : e.setGeometry(void 0) : (e = new gt(t ? gi(t) : {}), this.extentFeature_ = e, this.extentOverlay_.getSource().addFeature(e)), e
- }, e.prototype.createOrUpdatePointerFeature_ = function (t) {
- var e = this.vertexFeature_;
- e ? e.getGeometry().setCoordinates(t) : (e = new gt(new qn(t)), this.vertexFeature_ = e, this.vertexOverlay_.getSource().addFeature(e));
- return e
- }, e.prototype.handleEvent = function (e) {
- return !e.originalEvent || !this.condition_(e) || (e.type != Ga.POINTERMOVE || this.handlingDownUpSequence || this.handlePointerMove_(e), t.prototype.handleEvent.call(this, e), !1)
- }, e.prototype.handleDownEvent = function (t) {
- var e = t.pixel, r = t.map, n = this.getExtentInternal(), i = this.snapToVertex_(e, r), o = function (t) {
- var e = null, r = null;
- return t[0] == n[0] ? e = n[2] : t[0] == n[2] && (e = n[0]), t[1] == n[1] ? r = n[3] : t[1] == n[3] && (r = n[1]), null !== e && null !== r ? [e, r] : null
- };
- if (i && n) {
- var a = i[0] == n[0] || i[0] == n[2] ? i[0] : null, s = i[1] == n[1] || i[1] == n[3] ? i[1] : null;
- null !== a && null !== s ? this.pointerHandler_ = Yv(o(i)) : null !== a ? this.pointerHandler_ = Wv(o([a, n[1]]), o([a, n[3]])) : null !== s && (this.pointerHandler_ = Wv(o([n[0], s]), o([n[2], s])))
- } else i = r.getCoordinateFromPixelInternal(e), this.setExtent([i[0], i[1], i[0], i[1]]), this.pointerHandler_ = Yv(i);
- return !0
- }, e.prototype.handleDragEvent = function (t) {
- if (this.pointerHandler_) {
- var e = t.coordinate;
- this.setExtent(this.pointerHandler_(e)), this.createOrUpdatePointerFeature_(e)
- }
- }, e.prototype.handleUpEvent = function (t) {
- this.pointerHandler_ = null;
- var e = this.getExtentInternal();
- return e && 0 !== ve(e) || this.setExtent(null), !1
- }, e.prototype.setMap = function (e) {
- this.extentOverlay_.setMap(e), this.vertexOverlay_.setMap(e), t.prototype.setMap.call(this, e)
- }, e.prototype.getExtent = function () {
- return nn(this.getExtentInternal(), this.getMap().getView().getProjection())
- }, e.prototype.getExtentInternal = function () {
- return this.extent_
- }, e.prototype.setExtent = function (t) {
- this.extent_ = t || null, this.createOrUpdateExtentFeature_(t), this.dispatchEvent(new Bv(this.extent_))
- }, e
- }($s), Xv = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Zv = [0, 0, 0, 0], Kv = [], Hv = "modifystart", $v = "modifyend", Jv = function (t) {
- function e(e, r, n) {
- var i = t.call(this, e) || this;
- return i.features = r, i.mapBrowserEvent = n, i
- }
-
- return Xv(e, t), e
- }(c);
-
- function Qv(t, e) {
- return t.index - e.index
- }
-
- function t_(t, e, r) {
- var n = e.geometry;
- if (n.getType() === bt.CIRCLE) {
- var i = n;
- if (1 === e.index) {
- var o = tn();
- o && (i = i.clone().transform(o, r));
- var a = Rr(i.getCenter(), rn(t, r)), s = Math.sqrt(a) - i.getRadius();
- return s * s
- }
- }
- var l = rn(t, r);
- return Kv[0] = rn(e.segment[0], r), Kv[1] = rn(e.segment[1], r), Lr(l, Kv)
- }
-
- function e_(t, e, r) {
- var n = e.geometry;
- if (n.getType() === bt.CIRCLE && 1 === e.index) {
- var i = n, o = tn();
- return o && (i = i.clone().transform(o, r)), en(i.getClosestPoint(rn(t, r)), r)
- }
- var a = rn(t, r);
- return Kv[0] = rn(e.segment[0], r), Kv[1] = rn(e.segment[1], r), en(Sr(a, Kv), r)
- }
-
- var r_ = function (t) {
- function e(e) {
- var r, n, i = t.call(this, e) || this;
- if (i.boundHandleFeatureChange_ = i.handleFeatureChange_.bind(i), i.condition_ = e.condition ? e.condition : hl, i.defaultDeleteCondition_ = function (t) {
- return Qs(t) && al(t)
- }, i.deleteCondition_ = e.deleteCondition ? e.deleteCondition : i.defaultDeleteCondition_, i.insertVertexCondition_ = e.insertVertexCondition ? e.insertVertexCondition : nl, i.vertexFeature_ = null, i.vertexSegments_ = null, i.lastPixel_ = [0, 0], i.ignoreNextSingleClick_ = !1, i.featuresBeingModified_ = null, i.rBush_ = new Rp, i.pixelTolerance_ = void 0 !== e.pixelTolerance ? e.pixelTolerance : 10, i.snappedToVertex_ = !1, i.changingFeature_ = !1, i.dragSegments_ = [], i.overlay_ = new Iy({
- source: new hf({
- useSpatialIndex: !1,
- wrapX: !!e.wrapX
- }), style: e.style ? e.style : (r = bp(), function (t, e) {
- return r[bt.POINT]
- }), updateWhileAnimating: !0, updateWhileInteracting: !0
- }), i.SEGMENT_WRITERS_ = {
- Point: i.writePointGeometry_.bind(i),
- LineString: i.writeLineStringGeometry_.bind(i),
- LinearRing: i.writeLineStringGeometry_.bind(i),
- Polygon: i.writePolygonGeometry_.bind(i),
- MultiPoint: i.writeMultiPointGeometry_.bind(i),
- MultiLineString: i.writeMultiLineStringGeometry_.bind(i),
- MultiPolygon: i.writeMultiPolygonGeometry_.bind(i),
- Circle: i.writeCircleGeometry_.bind(i),
- GeometryCollection: i.writeGeometryCollectionGeometry_.bind(i)
- }, i.source_ = null, i.hitDetection_ = null, e.features ? n = e.features : e.source && (i.source_ = e.source, n = new ht(i.source_.getFeatures()), i.source_.addEventListener(ef, i.handleSourceAdd_.bind(i)), i.source_.addEventListener(of, i.handleSourceRemove_.bind(i))), !n) throw new Error("The modify interaction requires features, a source or a layer");
- return e.hitDetection && (i.hitDetection_ = e.hitDetection), i.features_ = n, i.features_.forEach(i.addFeature_.bind(i)), i.features_.addEventListener(at, i.handleFeatureAdd_.bind(i)), i.features_.addEventListener(st, i.handleFeatureRemove_.bind(i)), i.lastPointerEvent_ = null, i.delta_ = [0, 0], i
- }
-
- return Xv(e, t), e.prototype.addFeature_ = function (t) {
- var e = t.getGeometry();
- if (e) {
- var r = this.SEGMENT_WRITERS_[e.getType()];
- r && r(t, e)
- }
- var n = this.getMap();
- n && n.isRendered() && this.getActive() && this.handlePointerAtPixel_(this.lastPixel_, n), t.addEventListener(F, this.boundHandleFeatureChange_)
- }, e.prototype.willModifyFeatures_ = function (t, e) {
- if (!this.featuresBeingModified_) {
- this.featuresBeingModified_ = new ht;
- for (var r = this.featuresBeingModified_.getArray(), n = 0, i = e.length; n < i; ++n) {
- var o = e[n][0].feature;
- -1 === r.indexOf(o) && this.featuresBeingModified_.push(o)
- }
- this.dispatchEvent(new Jv(Hv, this.featuresBeingModified_, t))
- }
- }, e.prototype.removeFeature_ = function (t) {
- this.removeFeatureSegmentData_(t), this.vertexFeature_ && 0 === this.features_.getLength() && (this.overlay_.getSource().removeFeature(this.vertexFeature_), this.vertexFeature_ = null), t.removeEventListener(F, this.boundHandleFeatureChange_)
- }, e.prototype.removeFeatureSegmentData_ = function (t) {
- var e = this.rBush_, r = [];
- e.forEach((function (e) {
- t === e.feature && r.push(e)
- }));
- for (var n = r.length - 1; n >= 0; --n) {
- for (var i = r[n], o = this.dragSegments_.length - 1; o >= 0; --o) this.dragSegments_[o][0] === i && this.dragSegments_.splice(o, 1);
- e.remove(i)
- }
- }, e.prototype.setActive = function (e) {
- this.vertexFeature_ && !e && (this.overlay_.getSource().removeFeature(this.vertexFeature_), this.vertexFeature_ = null), t.prototype.setActive.call(this, e)
- }, e.prototype.setMap = function (e) {
- this.overlay_.setMap(e), t.prototype.setMap.call(this, e)
- }, e.prototype.getOverlay = function () {
- return this.overlay_
- }, e.prototype.handleSourceAdd_ = function (t) {
- t.feature && this.features_.push(t.feature)
- }, e.prototype.handleSourceRemove_ = function (t) {
- t.feature && this.features_.remove(t.feature)
- }, e.prototype.handleFeatureAdd_ = function (t) {
- this.addFeature_(t.element)
- }, e.prototype.handleFeatureChange_ = function (t) {
- if (!this.changingFeature_) {
- var e = t.target;
- this.removeFeature_(e), this.addFeature_(e)
- }
- }, e.prototype.handleFeatureRemove_ = function (t) {
- var e = t.element;
- this.removeFeature_(e)
- }, e.prototype.writePointGeometry_ = function (t, e) {
- var r = e.getCoordinates(), n = {feature: t, geometry: e, segment: [r, r]};
- this.rBush_.insert(e.getExtent(), n)
- }, e.prototype.writeMultiPointGeometry_ = function (t, e) {
- for (var r = e.getCoordinates(), n = 0, i = r.length; n < i; ++n) {
- var o = r[n], a = {feature: t, geometry: e, depth: [n], index: n, segment: [o, o]};
- this.rBush_.insert(e.getExtent(), a)
- }
- }, e.prototype.writeLineStringGeometry_ = function (t, e) {
- for (var r = e.getCoordinates(), n = 0, i = r.length - 1; n < i; ++n) {
- var o = r.slice(n, n + 2), a = {feature: t, geometry: e, index: n, segment: o};
- this.rBush_.insert(Kt(o), a)
- }
- }, e.prototype.writeMultiLineStringGeometry_ = function (t, e) {
- for (var r = e.getCoordinates(), n = 0, i = r.length; n < i; ++n) for (var o = r[n], a = 0, s = o.length - 1; a < s; ++a) {
- var l = o.slice(a, a + 2), u = {feature: t, geometry: e, depth: [n], index: a, segment: l};
- this.rBush_.insert(Kt(l), u)
- }
- }, e.prototype.writePolygonGeometry_ = function (t, e) {
- for (var r = e.getCoordinates(), n = 0, i = r.length; n < i; ++n) for (var o = r[n], a = 0, s = o.length - 1; a < s; ++a) {
- var l = o.slice(a, a + 2), u = {feature: t, geometry: e, depth: [n], index: a, segment: l};
- this.rBush_.insert(Kt(l), u)
- }
- }, e.prototype.writeMultiPolygonGeometry_ = function (t, e) {
- for (var r = e.getCoordinates(), n = 0, i = r.length; n < i; ++n) for (var o = r[n], a = 0, s = o.length; a < s; ++a) for (var l = o[a], u = 0, c = l.length - 1; u < c; ++u) {
- var h = l.slice(u, u + 2), p = {feature: t, geometry: e, depth: [a, n], index: u, segment: h};
- this.rBush_.insert(Kt(h), p)
- }
- }, e.prototype.writeCircleGeometry_ = function (t, e) {
- var r = e.getCenter(), n = {feature: t, geometry: e, index: 0, segment: [r, r]},
- i = {feature: t, geometry: e, index: 1, segment: [r, r]}, o = [n, i];
- n.featureSegments = o, i.featureSegments = o, this.rBush_.insert(ae(r), n);
- var a = e, s = tn();
- if (s && this.getMap()) {
- var l = this.getMap().getView().getProjection();
- a = yi(a = a.clone().transform(s, l)).transform(l, s)
- }
- this.rBush_.insert(a.getExtent(), i)
- }, e.prototype.writeGeometryCollectionGeometry_ = function (t, e) {
- for (var r = e.getGeometriesArray(), n = 0; n < r.length; ++n) {
- var i = r[n];
- (0, this.SEGMENT_WRITERS_[i.getType()])(t, i)
- }
- }, e.prototype.createOrUpdateVertexFeature_ = function (t, e, r) {
- var n = this.vertexFeature_;
- n ? n.getGeometry().setCoordinates(t) : (n = new gt(new qn(t)), this.vertexFeature_ = n, this.overlay_.getSource().addFeature(n));
- return n.set("features", e), n.set("geometries", r), n
- }, e.prototype.handleEvent = function (e) {
- return !e.originalEvent || (this.lastPointerEvent_ = e, e.map.getView().getInteracting() || e.type != Ga.POINTERMOVE || this.handlingDownUpSequence || this.handlePointerMove_(e), this.vertexFeature_ && this.deleteCondition_(e) && (r = !(e.type != Ga.SINGLECLICK || !this.ignoreNextSingleClick_) || this.removePoint()), e.type == Ga.SINGLECLICK && (this.ignoreNextSingleClick_ = !1), t.prototype.handleEvent.call(this, e) && !r);
- var r
- }, e.prototype.handleDragEvent = function (t) {
- this.ignoreNextSingleClick_ = !1, this.willModifyFeatures_(t, this.dragSegments_);
- for (var e = [t.coordinate[0] + this.delta_[0], t.coordinate[1] + this.delta_[1]], r = [], n = [], i = 0, o = this.dragSegments_.length; i < o; ++i) {
- var a = this.dragSegments_[i], s = a[0], l = s.feature;
- -1 === r.indexOf(l) && r.push(l);
- var u = s.geometry;
- -1 === n.indexOf(u) && n.push(u);
- for (var c = s.depth, h = void 0, p = s.segment, f = a[1]; e.length < u.getStride();) e.push(p[f][e.length]);
- switch (u.getType()) {
- case bt.POINT:
- h = e, p[0] = e, p[1] = e;
- break;
- case bt.MULTI_POINT:
- (h = u.getCoordinates())[s.index] = e, p[0] = e, p[1] = e;
- break;
- case bt.LINE_STRING:
- (h = u.getCoordinates())[s.index + f] = e, p[f] = e;
- break;
- case bt.MULTI_LINE_STRING:
- case bt.POLYGON:
- (h = u.getCoordinates())[c[0]][s.index + f] = e, p[f] = e;
- break;
- case bt.MULTI_POLYGON:
- (h = u.getCoordinates())[c[1]][c[0]][s.index + f] = e, p[f] = e;
- break;
- case bt.CIRCLE:
- if (p[0] = e, p[1] = e, 0 === s.index) this.changingFeature_ = !0, u.setCenter(e), this.changingFeature_ = !1; else {
- this.changingFeature_ = !0;
- var d = t.map.getView().getProjection(), g = Ir(rn(u.getCenter(), d), rn(e, d)), y = tn();
- if (y) {
- var m = u.clone().transform(y, d);
- m.setRadius(g), g = m.transform(d, y).getRadius()
- }
- u.setRadius(g), this.changingFeature_ = !1
- }
- }
- h && this.setGeometryCoordinates_(u, h)
- }
- this.createOrUpdateVertexFeature_(e, r, n)
- }, e.prototype.handleDownEvent = function (t) {
- if (!this.condition_(t)) return !1;
- var e = t.coordinate;
- this.handlePointerAtPixel_(t.pixel, t.map, e), this.dragSegments_.length = 0, this.featuresBeingModified_ = null;
- var r = this.vertexFeature_;
- if (r) {
- var n = t.map.getView().getProjection(), i = [], a = r.getGeometry().getCoordinates(), s = Kt([a]),
- l = this.rBush_.getInExtent(s), u = {};
- l.sort(Qv);
- for (var c = 0, h = l.length; c < h; ++c) {
- var p = l[c], f = p.segment, d = o(p.geometry), g = p.depth;
- if (g && (d += "-" + g.join("-")), u[d] || (u[d] = new Array(2)), p.geometry.getType() !== bt.CIRCLE || 1 !== p.index) if (!Cr(f[0], a) || u[d][0]) if (!Cr(f[1], a) || u[d][1]) o(f) in this.vertexSegments_ && !u[d][0] && !u[d][1] && this.insertVertexCondition_(t) && i.push(p); else {
- if ((p.geometry.getType() === bt.LINE_STRING || p.geometry.getType() === bt.MULTI_LINE_STRING) && u[d][0] && 0 === u[d][0].index) continue;
- this.dragSegments_.push([p, 1]), u[d][1] = p
- } else this.dragSegments_.push([p, 0]), u[d][0] = p; else Cr(e_(e, p, n), a) && !u[d][0] && (this.dragSegments_.push([p, 0]), u[d][0] = p)
- }
- i.length && this.willModifyFeatures_(t, [i]);
- for (var y = i.length - 1; y >= 0; --y) this.insertVertex_(i[y], a)
- }
- return !!this.vertexFeature_
- }, e.prototype.handleUpEvent = function (t) {
- for (var e = this.dragSegments_.length - 1; e >= 0; --e) {
- var r = this.dragSegments_[e][0], n = r.geometry;
- if (n.getType() === bt.CIRCLE) {
- var i = n.getCenter(), o = r.featureSegments[0], a = r.featureSegments[1];
- o.segment[0] = i, o.segment[1] = i, a.segment[0] = i, a.segment[1] = i, this.rBush_.update(ae(i), o);
- var s = n, l = tn();
- if (l) {
- var u = t.map.getView().getProjection();
- s = yi(s = s.clone().transform(l, u)).transform(u, l)
- }
- this.rBush_.update(s.getExtent(), a)
- } else this.rBush_.update(Kt(r.segment), r)
- }
- return this.featuresBeingModified_ && (this.dispatchEvent(new Jv($v, this.featuresBeingModified_, t)), this.featuresBeingModified_ = null), !1
- }, e.prototype.handlePointerMove_ = function (t) {
- this.lastPixel_ = t.pixel, this.handlePointerAtPixel_(t.pixel, t.map, t.coordinate)
- }, e.prototype.handlePointerAtPixel_ = function (t, e, r) {
- var n, i, a = this, s = r || e.getCoordinateFromPixel(t), l = e.getView().getProjection();
- if (this.hitDetection_) {
- var u = "object" == typeof this.hitDetection_ ? function (t) {
- return t === a.hitDetection_
- } : void 0;
- e.forEachFeatureAtPixel(t, (function (t, e, r) {
- if ((r = r || t.getGeometry()).getType() === bt.POINT) {
- i = r;
- var o = r.getCoordinates();
- n = [{feature: t, geometry: r, segment: [o, o]}]
- }
- return !0
- }), {layerFilter: u})
- }
- if (!n) {
- var c = nn(Ht(on(ae(s, Zv), l), e.getView().getResolution() * this.pixelTolerance_, Zv), l);
- n = this.rBush_.getInExtent(c)
- }
- if (n && n.length > 0) {
- var h = n.sort((function (t, e) {
- return t_(s, t, l) - t_(s, e, l)
- }))[0], p = h.segment, f = e_(s, h, l), d = e.getPixelFromCoordinate(f), g = Ir(t, d);
- if (i || g <= this.pixelTolerance_) {
- var y = {};
- if (y[o(p)] = !0, this.delta_[0] = f[0] - s[0], this.delta_[1] = f[1] - s[1], h.geometry.getType() === bt.CIRCLE && 1 === h.index) this.snappedToVertex_ = !0, this.createOrUpdateVertexFeature_(f, [h.feature], [h.geometry]); else {
- var m = e.getPixelFromCoordinate(p[0]), v = e.getPixelFromCoordinate(p[1]), _ = Rr(d, m), b = Rr(d, v);
- g = Math.sqrt(Math.min(_, b)), this.snappedToVertex_ = g <= this.pixelTolerance_, this.snappedToVertex_ && (f = _ > b ? p[1] : p[0]), this.createOrUpdateVertexFeature_(f, [h.feature], [h.geometry]);
- var x = {};
- x[o(h.geometry)] = !0;
- for (var w = 1, S = n.length; w < S; ++w) {
- var E = n[w].segment;
- if (!(Cr(p[0], E[0]) && Cr(p[1], E[1]) || Cr(p[0], E[1]) && Cr(p[1], E[0]))) break;
- var T = o(n[w].geometry);
- T in x || (x[T] = !0, y[o(E)] = !0)
- }
- }
- return void (this.vertexSegments_ = y)
- }
- }
- this.vertexFeature_ && (this.overlay_.getSource().removeFeature(this.vertexFeature_), this.vertexFeature_ = null)
- }, e.prototype.insertVertex_ = function (t, e) {
- for (var r, n = t.segment, i = t.feature, o = t.geometry, a = t.depth, s = t.index; e.length < o.getStride();) e.push(0);
- switch (o.getType()) {
- case bt.MULTI_LINE_STRING:
- case bt.POLYGON:
- (r = o.getCoordinates())[a[0]].splice(s + 1, 0, e);
- break;
- case bt.MULTI_POLYGON:
- (r = o.getCoordinates())[a[1]][a[0]].splice(s + 1, 0, e);
- break;
- case bt.LINE_STRING:
- (r = o.getCoordinates()).splice(s + 1, 0, e);
- break;
- default:
- return
- }
- this.setGeometryCoordinates_(o, r);
- var l = this.rBush_;
- l.remove(t), this.updateSegmentIndices_(o, s, a, 1);
- var u = {segment: [n[0], e], feature: i, geometry: o, depth: a, index: s};
- l.insert(Kt(u.segment), u), this.dragSegments_.push([u, 1]);
- var c = {segment: [e, n[1]], feature: i, geometry: o, depth: a, index: s + 1};
- l.insert(Kt(c.segment), c), this.dragSegments_.push([c, 0]), this.ignoreNextSingleClick_ = !0
- }, e.prototype.removePoint = function () {
- if (this.lastPointerEvent_ && this.lastPointerEvent_.type != Ga.POINTERDRAG) {
- var t = this.lastPointerEvent_;
- this.willModifyFeatures_(t, this.dragSegments_);
- var e = this.removeVertex_();
- return this.dispatchEvent(new Jv($v, this.featuresBeingModified_, t)), this.featuresBeingModified_ = null, e
- }
- return !1
- }, e.prototype.removeVertex_ = function () {
- var t, e, r, n, i, a, s, l, u, c, h, p = this.dragSegments_, f = {}, d = !1;
- for (i = p.length - 1; i >= 0; --i) h = o((c = (r = p[i])[0]).feature), c.depth && (h += "-" + c.depth.join("-")), h in f || (f[h] = {}), 0 === r[1] ? (f[h].right = c, f[h].index = c.index) : 1 == r[1] && (f[h].left = c, f[h].index = c.index + 1);
- for (h in f) {
- switch (u = f[h].right, s = f[h].left, (l = (a = f[h].index) - 1) < 0 && (l = 0), t = e = (n = (c = void 0 !== s ? s : u).geometry).getCoordinates(), d = !1, n.getType()) {
- case bt.MULTI_LINE_STRING:
- e[c.depth[0]].length > 2 && (e[c.depth[0]].splice(a, 1), d = !0);
- break;
- case bt.LINE_STRING:
- e.length > 2 && (e.splice(a, 1), d = !0);
- break;
- case bt.MULTI_POLYGON:
- t = t[c.depth[1]];
- case bt.POLYGON:
- (t = t[c.depth[0]]).length > 4 && (a == t.length - 1 && (a = 0), t.splice(a, 1), d = !0, 0 === a && (t.pop(), t.push(t[0]), l = t.length - 1))
- }
- if (d) {
- this.setGeometryCoordinates_(n, e);
- var g = [];
- if (void 0 !== s && (this.rBush_.remove(s), g.push(s.segment[0])), void 0 !== u && (this.rBush_.remove(u), g.push(u.segment[1])), void 0 !== s && void 0 !== u) {
- var y = {depth: c.depth, feature: c.feature, geometry: c.geometry, index: l, segment: g};
- this.rBush_.insert(Kt(y.segment), y)
- }
- this.updateSegmentIndices_(n, a, c.depth, -1), this.vertexFeature_ && (this.overlay_.getSource().removeFeature(this.vertexFeature_), this.vertexFeature_ = null), p.length = 0
- }
- }
- return d
- }, e.prototype.setGeometryCoordinates_ = function (t, e) {
- this.changingFeature_ = !0, t.setCoordinates(e), this.changingFeature_ = !1
- }, e.prototype.updateSegmentIndices_ = function (t, e, r, n) {
- this.rBush_.forEachInExtent(t.getExtent(), (function (i) {
- i.geometry === t && (void 0 === r || void 0 === i.depth || b(i.depth, r)) && i.index > e && (i.index += n)
- }))
- }, e
- }($s), n_ = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), i_ = "select", o_ = function (t) {
- function e(e, r, n, i) {
- var o = t.call(this, e) || this;
- return o.selected = r, o.deselected = n, o.mapBrowserEvent = i, o
- }
-
- return n_(e, t), e
- }(c), a_ = {};
- var s_ = function (t) {
- function e(e) {
- var r, n, i = t.call(this) || this, o = e || {};
- if (i.boundAddFeature_ = i.addFeature_.bind(i), i.boundRemoveFeature_ = i.removeFeature_.bind(i), i.condition_ = o.condition ? o.condition : al, i.addCondition_ = o.addCondition ? o.addCondition : ol, i.removeCondition_ = o.removeCondition ? o.removeCondition : ol, i.toggleCondition_ = o.toggleCondition ? o.toggleCondition : ll, i.multi_ = !!o.multi && o.multi, i.filter_ = o.filter ? o.filter : S, i.hitTolerance_ = o.hitTolerance ? o.hitTolerance : 0, i.style_ = void 0 !== o.style ? o.style : (v((r = bp())[bt.POLYGON], r[bt.LINE_STRING]), v(r[bt.GEOMETRY_COLLECTION], r[bt.LINE_STRING]), function (t) {
- return t.getGeometry() ? r[t.getGeometry().getType()] : null
- }), i.features_ = o.features || new ht, o.layers) if ("function" == typeof o.layers) n = o.layers; else {
- var a = o.layers;
- n = function (t) {
- return g(a, t)
- }
- } else n = S;
- return i.layerFilter_ = n, i.featureLayerAssociation_ = {}, i
- }
-
- return n_(e, t), e.prototype.addFeatureLayerAssociation_ = function (t, e) {
- this.featureLayerAssociation_[o(t)] = e
- }, e.prototype.getFeatures = function () {
- return this.features_
- }, e.prototype.getHitTolerance = function () {
- return this.hitTolerance_
- }, e.prototype.getLayer = function (t) {
- return this.featureLayerAssociation_[o(t)]
- }, e.prototype.setHitTolerance = function (t) {
- this.hitTolerance_ = t
- }, e.prototype.setMap = function (e) {
- this.getMap() && this.style_ && this.features_.forEach(this.restorePreviousStyle_.bind(this)), t.prototype.setMap.call(this, e), e ? (this.features_.addEventListener(at, this.boundAddFeature_), this.features_.addEventListener(st, this.boundRemoveFeature_), this.style_ && this.features_.forEach(this.applySelectedStyle_.bind(this))) : (this.features_.removeEventListener(at, this.boundAddFeature_), this.features_.removeEventListener(st, this.boundRemoveFeature_))
- }, e.prototype.addFeature_ = function (t) {
- var e = t.element;
- this.style_ && this.applySelectedStyle_(e)
- }, e.prototype.removeFeature_ = function (t) {
- var e = t.element;
- this.style_ && this.restorePreviousStyle_(e)
- }, e.prototype.getStyle = function () {
- return this.style_
- }, e.prototype.applySelectedStyle_ = function (t) {
- var e = o(t);
- e in a_ || (a_[e] = t.getStyle()), t.setStyle(this.style_)
- }, e.prototype.restorePreviousStyle_ = function (t) {
- for (var r = this.getMap().getInteractions().getArray(), n = r.length - 1; n >= 0; --n) {
- var i = r[n];
- if (i !== this && i instanceof e && i.getStyle() && -1 !== i.getFeatures().getArray().lastIndexOf(t)) return void t.setStyle(i.getStyle())
- }
- var a = o(t);
- t.setStyle(a_[a]), delete a_[a]
- }, e.prototype.removeFeatureLayerAssociation_ = function (t) {
- delete this.featureLayerAssociation_[o(t)]
- }, e.prototype.handleEvent = function (t) {
- if (!this.condition_(t)) return !0;
- var e = this.addCondition_(t), r = this.removeCondition_(t), n = this.toggleCondition_(t), i = !e && !r && !n,
- o = t.map, a = this.getFeatures(), s = [], l = [];
- if (i) {
- P(this.featureLayerAssociation_), o.forEachFeatureAtPixel(t.pixel, function (t, e) {
- if (this.filter_(t, e)) return l.push(t), this.addFeatureLayerAssociation_(t, e), !this.multi_
- }.bind(this), {layerFilter: this.layerFilter_, hitTolerance: this.hitTolerance_});
- for (var u = a.getLength() - 1; u >= 0; --u) {
- var c = a.item(u), h = l.indexOf(c);
- h > -1 ? l.splice(h, 1) : (a.remove(c), s.push(c))
- }
- 0 !== l.length && a.extend(l)
- } else {
- o.forEachFeatureAtPixel(t.pixel, function (t, i) {
- if (this.filter_(t, i)) return !e && !n || g(a.getArray(), t) ? (r || n) && g(a.getArray(), t) && (s.push(t), this.removeFeatureLayerAssociation_(t)) : (l.push(t), this.addFeatureLayerAssociation_(t, i)), !this.multi_
- }.bind(this), {layerFilter: this.layerFilter_, hitTolerance: this.hitTolerance_});
- for (var p = s.length - 1; p >= 0; --p) a.remove(s[p]);
- a.extend(l)
- }
- return (l.length > 0 || s.length > 0) && this.dispatchEvent(new o_(i_, l, s, t)), !0
- }, e
- }(qs), l_ = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }();
-
- function u_(t) {
- return t.feature ? t.feature : t.element ? t.element : void 0
- }
-
- var c_ = [], h_ = function (t) {
- function e(e) {
- var r = this, n = e || {}, i = n;
- return i.handleDownEvent || (i.handleDownEvent = S), i.stopDown || (i.stopDown = E), (r = t.call(this, i) || this).source_ = n.source ? n.source : null, r.vertex_ = void 0 === n.vertex || n.vertex, r.edge_ = void 0 === n.edge || n.edge, r.features_ = n.features ? n.features : null, r.featuresListenerKeys_ = [], r.featureChangeListenerKeys_ = {}, r.indexedFeaturesExtents_ = {}, r.pendingFeatures_ = {}, r.pixelTolerance_ = void 0 !== n.pixelTolerance ? n.pixelTolerance : 10, r.rBush_ = new Rp, r.SEGMENT_WRITERS_ = {
- Point: r.writePointGeometry_.bind(r),
- LineString: r.writeLineStringGeometry_.bind(r),
- LinearRing: r.writeLineStringGeometry_.bind(r),
- Polygon: r.writePolygonGeometry_.bind(r),
- MultiPoint: r.writeMultiPointGeometry_.bind(r),
- MultiLineString: r.writeMultiLineStringGeometry_.bind(r),
- MultiPolygon: r.writeMultiPolygonGeometry_.bind(r),
- GeometryCollection: r.writeGeometryCollectionGeometry_.bind(r),
- Circle: r.writeCircleGeometry_.bind(r)
- }, r
- }
-
- return l_(e, t), e.prototype.addFeature = function (t, e) {
- var r = void 0 === e || e, n = o(t), i = t.getGeometry();
- if (i) {
- var a = this.SEGMENT_WRITERS_[i.getType()];
- a && (this.indexedFeaturesExtents_[n] = i.getExtent([1 / 0, 1 / 0, -1 / 0, -1 / 0]), a(t, i))
- }
- r && (this.featureChangeListenerKeys_[n] = Z(t, F, this.handleFeatureChange_, this))
- }, e.prototype.forEachFeatureAdd_ = function (t) {
- this.addFeature(t)
- }, e.prototype.forEachFeatureRemove_ = function (t) {
- this.removeFeature(t)
- }, e.prototype.getFeatures_ = function () {
- var t;
- return this.features_ ? t = this.features_ : this.source_ && (t = this.source_.getFeatures()), t
- }, e.prototype.handleEvent = function (e) {
- var r = this.snapTo(e.pixel, e.coordinate, e.map);
- return r.snapped && (e.coordinate = r.vertex.slice(0, 2), e.pixel = r.vertexPixel), t.prototype.handleEvent.call(this, e)
- }, e.prototype.handleFeatureAdd_ = function (t) {
- var e = u_(t);
- this.addFeature(e)
- }, e.prototype.handleFeatureRemove_ = function (t) {
- var e = u_(t);
- this.removeFeature(e)
- }, e.prototype.handleFeatureChange_ = function (t) {
- var e = t.target;
- if (this.handlingDownUpSequence) {
- var r = o(e);
- r in this.pendingFeatures_ || (this.pendingFeatures_[r] = e)
- } else this.updateFeature_(e)
- }, e.prototype.handleUpEvent = function (t) {
- var e = R(this.pendingFeatures_);
- return e.length && (e.forEach(this.updateFeature_.bind(this)), this.pendingFeatures_ = {}), !1
- }, e.prototype.removeFeature = function (t, e) {
- var r = void 0 === e || e, n = o(t), i = this.indexedFeaturesExtents_[n];
- if (i) {
- var a = this.rBush_, s = [];
- a.forEachInExtent(i, (function (e) {
- t === e.feature && s.push(e)
- }));
- for (var l = s.length - 1; l >= 0; --l) a.remove(s[l])
- }
- r && (H(this.featureChangeListenerKeys_[n]), delete this.featureChangeListenerKeys_[n])
- }, e.prototype.setMap = function (e) {
- var r = this.getMap(), n = this.featuresListenerKeys_, i = this.getFeatures_();
- r && (n.forEach(H), n.length = 0, i.forEach(this.forEachFeatureRemove_.bind(this))), t.prototype.setMap.call(this, e), e && (this.features_ ? n.push(Z(this.features_, at, this.handleFeatureAdd_, this), Z(this.features_, st, this.handleFeatureRemove_, this)) : this.source_ && n.push(Z(this.source_, ef, this.handleFeatureAdd_, this), Z(this.source_, of, this.handleFeatureRemove_, this)), i.forEach(this.forEachFeatureAdd_.bind(this)))
- }, e.prototype.snapTo = function (t, e, r) {
- var n = Kt([r.getCoordinateFromPixel([t[0] - this.pixelTolerance_, t[1] + this.pixelTolerance_]), r.getCoordinateFromPixel([t[0] + this.pixelTolerance_, t[1] - this.pixelTolerance_])]),
- i = this.rBush_.getInExtent(n);
- this.vertex_ && !this.edge_ && (i = i.filter((function (t) {
- return t.feature.getGeometry().getType() !== bt.CIRCLE
- })));
- var o = !1, a = null, s = null;
- if (0 === i.length) return {snapped: o, vertex: a, vertexPixel: s};
- for (var l, u = r.getView().getProjection(), c = rn(e, u), h = 1 / 0, p = 0; p < i.length; ++p) {
- var f = i[p];
- c_[0] = rn(f.segment[0], u), c_[1] = rn(f.segment[1], u);
- var d = Lr(c, c_);
- d < h && (l = f, h = d)
- }
- var g = l.segment;
- if (this.vertex_ && !this.edge_) {
- var y = r.getPixelFromCoordinate(g[0]), m = r.getPixelFromCoordinate(g[1]), v = Rr(t, y), _ = Rr(t, m);
- Math.sqrt(Math.min(v, _)) <= this.pixelTolerance_ && (o = !0, a = v > _ ? g[1] : g[0], s = r.getPixelFromCoordinate(a))
- } else if (this.edge_) {
- var b = l.feature.getGeometry().getType() === bt.CIRCLE;
- if (b) {
- var x = l.feature.getGeometry(), w = tn();
- w && (x = x.clone().transform(w, u)), a = en(wr(c, x), u)
- } else c_[0] = rn(g[0], u), c_[1] = rn(g[1], u), a = en(Sr(c, c_), u);
- if (Ir(t, s = r.getPixelFromCoordinate(a)) <= this.pixelTolerance_ && (o = !0, this.vertex_ && !b)) {
- y = r.getPixelFromCoordinate(g[0]), m = r.getPixelFromCoordinate(g[1]), v = Rr(s, y), _ = Rr(s, m);
- Math.sqrt(Math.min(v, _)) <= this.pixelTolerance_ && (a = v > _ ? g[1] : g[0], s = r.getPixelFromCoordinate(a))
- }
- }
- return o && (s = [Math.round(s[0]), Math.round(s[1])]), {snapped: o, vertex: a, vertexPixel: s}
- }, e.prototype.updateFeature_ = function (t) {
- this.removeFeature(t, !1), this.addFeature(t, !1)
- }, e.prototype.writeCircleGeometry_ = function (t, e) {
- var r = this.getMap().getView().getProjection(), n = e, i = tn();
- i && (n = n.clone().transform(i, r));
- var o = yi(n);
- i && o.transform(r, i);
- for (var a = o.getCoordinates()[0], s = 0, l = a.length - 1; s < l; ++s) {
- var u = a.slice(s, s + 2), c = {feature: t, segment: u};
- this.rBush_.insert(Kt(u), c)
- }
- }, e.prototype.writeGeometryCollectionGeometry_ = function (t, e) {
- for (var r = e.getGeometriesArray(), n = 0; n < r.length; ++n) {
- var i = this.SEGMENT_WRITERS_[r[n].getType()];
- i && i(t, r[n])
- }
- }, e.prototype.writeLineStringGeometry_ = function (t, e) {
- for (var r = e.getCoordinates(), n = 0, i = r.length - 1; n < i; ++n) {
- var o = r.slice(n, n + 2), a = {feature: t, segment: o};
- this.rBush_.insert(Kt(o), a)
- }
- }, e.prototype.writeMultiLineStringGeometry_ = function (t, e) {
- for (var r = e.getCoordinates(), n = 0, i = r.length; n < i; ++n) for (var o = r[n], a = 0, s = o.length - 1; a < s; ++a) {
- var l = o.slice(a, a + 2), u = {feature: t, segment: l};
- this.rBush_.insert(Kt(l), u)
- }
- }, e.prototype.writeMultiPointGeometry_ = function (t, e) {
- for (var r = e.getCoordinates(), n = 0, i = r.length; n < i; ++n) {
- var o = r[n], a = {feature: t, segment: [o, o]};
- this.rBush_.insert(e.getExtent(), a)
- }
- }, e.prototype.writeMultiPolygonGeometry_ = function (t, e) {
- for (var r = e.getCoordinates(), n = 0, i = r.length; n < i; ++n) for (var o = r[n], a = 0, s = o.length; a < s; ++a) for (var l = o[a], u = 0, c = l.length - 1; u < c; ++u) {
- var h = l.slice(u, u + 2), p = {feature: t, segment: h};
- this.rBush_.insert(Kt(h), p)
- }
- }, e.prototype.writePointGeometry_ = function (t, e) {
- var r = e.getCoordinates(), n = {feature: t, segment: [r, r]};
- this.rBush_.insert(e.getExtent(), n)
- }, e.prototype.writePolygonGeometry_ = function (t, e) {
- for (var r = e.getCoordinates(), n = 0, i = r.length; n < i; ++n) for (var o = r[n], a = 0, s = o.length - 1; a < s; ++a) {
- var l = o.slice(a, a + 2), u = {feature: t, segment: l};
- this.rBush_.insert(Kt(l), u)
- }
- }, e
- }($s), p_ = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), f_ = "translatestart", d_ = "translating", g_ = "translateend", y_ = function (t) {
- function e(e, r, n, i, o) {
- var a = t.call(this, e) || this;
- return a.features = r, a.coordinate = n, a.startCoordinate = i, a.mapBrowserEvent = o, a
- }
-
- return p_(e, t), e
- }(c), m_ = function (t) {
- function e(e) {
- var r, n = this, i = e || {};
- if ((n = t.call(this, i) || this).lastCoordinate_ = null, n.startCoordinate_ = null, n.features_ = void 0 !== i.features ? i.features : null, i.layers) if ("function" == typeof i.layers) r = i.layers; else {
- var o = i.layers;
- r = function (t) {
- return g(o, t)
- }
- } else r = S;
- return n.layerFilter_ = r, n.filter_ = i.filter ? i.filter : S, n.hitTolerance_ = i.hitTolerance ? i.hitTolerance : 0, n.lastFeature_ = null, n.addEventListener(it(Bs), n.handleActiveChanged_), n
- }
-
- return p_(e, t), e.prototype.handleDownEvent = function (t) {
- if (this.lastFeature_ = this.featuresAtPixel_(t.pixel, t.map), !this.lastCoordinate_ && this.lastFeature_) {
- this.startCoordinate_ = t.coordinate, this.lastCoordinate_ = t.coordinate, this.handleMoveEvent(t);
- var e = this.features_ || new ht([this.lastFeature_]);
- return this.dispatchEvent(new y_(f_, e, t.coordinate, this.startCoordinate_, t)), !0
- }
- return !1
- }, e.prototype.handleUpEvent = function (t) {
- if (this.lastCoordinate_) {
- this.lastCoordinate_ = null, this.handleMoveEvent(t);
- var e = this.features_ || new ht([this.lastFeature_]);
- return this.dispatchEvent(new y_(g_, e, t.coordinate, this.startCoordinate_, t)), this.startCoordinate_ = null, !0
- }
- return !1
- }, e.prototype.handleDragEvent = function (t) {
- if (this.lastCoordinate_) {
- var e = t.coordinate, r = e[0] - this.lastCoordinate_[0], n = e[1] - this.lastCoordinate_[1],
- i = this.features_ || new ht([this.lastFeature_]);
- i.forEach((function (t) {
- var e = t.getGeometry();
- e.translate(r, n), t.setGeometry(e)
- })), this.lastCoordinate_ = e, this.dispatchEvent(new y_(d_, i, e, this.startCoordinate_, t))
- }
- }, e.prototype.handleMoveEvent = function (t) {
- var e = t.map.getViewport();
- this.featuresAtPixel_(t.pixel, t.map) ? (e.classList.remove(this.lastCoordinate_ ? "ol-grab" : "ol-grabbing"), e.classList.add(this.lastCoordinate_ ? "ol-grabbing" : "ol-grab")) : e.classList.remove("ol-grab", "ol-grabbing")
- }, e.prototype.featuresAtPixel_ = function (t, e) {
- return e.forEachFeatureAtPixel(t, function (t, e) {
- if (this.filter_(t, e) && (!this.features_ || g(this.features_.getArray(), t))) return t
- }.bind(this), {layerFilter: this.layerFilter_, hitTolerance: this.hitTolerance_})
- }, e.prototype.getHitTolerance = function () {
- return this.hitTolerance_
- }, e.prototype.setHitTolerance = function (t) {
- this.hitTolerance_ = t
- }, e.prototype.setMap = function (e) {
- var r = this.getMap();
- t.prototype.setMap.call(this, e), this.updateState_(r)
- }, e.prototype.handleActiveChanged_ = function () {
- this.updateState_(null)
- }, e.prototype.updateState_ = function (t) {
- var e = this.getMap(), r = this.getActive();
- e && r || (e = e || t) && e.getViewport().classList.remove("ol-grab", "ol-grabbing")
- }, e
- }($s);
-
- function v_(t, e, r, n, i, o) {
- var a, s;
- void 0 !== i ? (a = i, s = void 0 !== o ? o : 0) : (a = [], s = 0);
- for (var l = e; l < r;) {
- var u = t[l++];
- a[s++] = t[l++], a[s++] = u;
- for (var c = 2; c < n; ++c) a[s++] = t[l++]
- }
- return a.length = s, a
- }
-
- var __ = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), b_ = {};
- b_[bt.POINT] = function (t) {
- var e;
- e = void 0 !== t.m && void 0 !== t.z ? new qn([t.x, t.y, t.z, t.m], _t) : void 0 !== t.z ? new qn([t.x, t.y, t.z], mt) : void 0 !== t.m ? new qn([t.x, t.y, t.m], vt) : new qn([t.x, t.y]);
- return e
- }, b_[bt.LINE_STRING] = function (t) {
- var e = S_(t);
- return new Py(t.paths[0], e)
- }, b_[bt.POLYGON] = function (t) {
- var e = S_(t);
- return new fi(t.rings, e)
- }, b_[bt.MULTI_POINT] = function (t) {
- var e = S_(t);
- return new Hy(t.points, e)
- }, b_[bt.MULTI_LINE_STRING] = function (t) {
- var e = S_(t);
- return new Zy(t.paths, e)
- }, b_[bt.MULTI_POLYGON] = function (t) {
- var e = S_(t);
- return new Jy(t.rings, e)
- };
- var x_ = {};
-
- function w_(t, e) {
- var r, n, i;
- if (!t) return null;
- if ("number" == typeof t.x && "number" == typeof t.y) i = bt.POINT; else if (t.points) i = bt.MULTI_POINT; else if (t.paths) {
- i = 1 === t.paths.length ? bt.LINE_STRING : bt.MULTI_LINE_STRING
- } else if (t.rings) {
- var o = t, a = S_(o), s = function (t, e) {
- var r, n, i = [], o = [], a = [];
- for (r = 0, n = t.length; r < n; ++r) {
- i.length = 0, On(i, 0, t[r], e.length), ai(i, 0, i.length, e.length) ? o.push([t[r]]) : a.push(t[r])
- }
- for (; a.length;) {
- var s = a.shift(), l = !1;
- for (r = o.length - 1; r >= 0; r--) {
- var u = o[r][0];
- if (te(new Yn(u).getExtent(), new Yn(s).getExtent())) {
- o[r].push(s), l = !0;
- break
- }
- }
- l || o.push([s.reverse()])
- }
- return o
- }(o.rings, a);
- 1 === s.length ? (i = bt.POLYGON, t = O({}, t, ((r = {}).rings = s[0], r))) : (i = bt.MULTI_POLYGON, t = O({}, t, ((n = {}).rings = s, n)))
- }
- return Wy((0, b_[i])(t), !1, e)
- }
-
- function S_(t) {
- var e = yt;
- return !0 === t.hasZ && !0 === t.hasM ? e = _t : !0 === t.hasZ ? e = mt : !0 === t.hasM && (e = vt), e
- }
-
- function E_(t) {
- var e = t.getLayout();
- return {hasZ: e === mt || e === _t, hasM: e === vt || e === _t}
- }
-
- function T_(t, e) {
- return (0, x_[t.getType()])(Wy(t, !0, e), e)
- }
-
- x_[bt.POINT] = function (t, e) {
- var r, n = t.getCoordinates(), i = t.getLayout();
- i === mt ? r = {x: n[0], y: n[1], z: n[2]} : i === vt ? r = {x: n[0], y: n[1], m: n[2]} : i === _t ? r = {
- x: n[0],
- y: n[1],
- z: n[2],
- m: n[3]
- } : i === yt ? r = {x: n[0], y: n[1]} : pt(!1, 34);
- return r
- }, x_[bt.LINE_STRING] = function (t, e) {
- var r = E_(t);
- return {hasZ: r.hasZ, hasM: r.hasM, paths: [t.getCoordinates()]}
- }, x_[bt.POLYGON] = function (t, e) {
- var r = E_(t);
- return {hasZ: r.hasZ, hasM: r.hasM, rings: t.getCoordinates(!1)}
- }, x_[bt.MULTI_POINT] = function (t, e) {
- var r = E_(t);
- return {hasZ: r.hasZ, hasM: r.hasM, points: t.getCoordinates()}
- }, x_[bt.MULTI_LINE_STRING] = function (t, e) {
- var r = E_(t);
- return {hasZ: r.hasZ, hasM: r.hasM, paths: t.getCoordinates()}
- }, x_[bt.MULTI_POLYGON] = function (t, e) {
- for (var r = E_(t), n = t.getCoordinates(!1), i = [], o = 0; o < n.length; o++) for (var a = n[o].length - 1; a >= 0; a--) i.push(n[o][a]);
- return {hasZ: r.hasZ, hasM: r.hasM, rings: i}
- };
- var C_ = function (t) {
- function e(e) {
- var r = this, n = e || {};
- return (r = t.call(this) || this).geometryName_ = n.geometryName, r
- }
-
- return __(e, t), e.prototype.readFeatureFromObject = function (t, e, r) {
- var n = t, i = w_(n.geometry, e), o = new gt;
- if (this.geometryName_ && o.setGeometryName(this.geometryName_), o.setGeometry(i), n.attributes) {
- o.setProperties(n.attributes, !0);
- var a = n.attributes[r];
- void 0 !== a && o.setId(a)
- }
- return o
- }, e.prototype.readFeaturesFromObject = function (t, e) {
- var r = e || {};
- if (t.features) {
- for (var n = [], i = t.features, o = 0, a = i.length; o < a; ++o) n.push(this.readFeatureFromObject(i[o], r, t.objectIdFieldName));
- return n
- }
- return [this.readFeatureFromObject(t, r)]
- }, e.prototype.readGeometryFromObject = function (t, e) {
- return w_(t, e)
- }, e.prototype.readProjectionFromObject = function (t) {
- return t.spatialReference && void 0 !== t.spatialReference.wkid ? Gr("EPSG:" + t.spatialReference.wkid) : null
- }, e.prototype.writeGeometryObject = function (t, e) {
- return T_(t, this.adaptOptions(e))
- }, e.prototype.writeFeatureObject = function (t, e) {
- e = this.adaptOptions(e);
- var r = {};
- if (!t.hasProperties()) return r.attributes = {}, r;
- var n = t.getProperties(), i = t.getGeometry();
- if (i) {
- r.geometry = T_(i, e);
- var o = e && (e.dataProjection || e.featureProjection);
- o && (r.geometry.spatialReference = {wkid: Number(Gr(o).getCode().split(":").pop())}), delete n[t.getGeometryName()]
- }
- return I(n) ? r.attributes = {} : r.attributes = n, r
- }, e.prototype.writeFeaturesObject = function (t, e) {
- e = this.adaptOptions(e);
- for (var r = [], n = 0, i = t.length; n < i; ++n) r.push(this.writeFeatureObject(t[n], e));
- return {features: r}
- }, e
- }(qm), O_ = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), P_ = function (t) {
- function e() {
- var e = t.call(this) || this;
- return e.xmlSerializer_ = Wc(), e
- }
-
- return O_(e, t), e.prototype.getType = function () {
- return Ru
- }, e.prototype.readFeature = function (t, e) {
- if (t) {
- if ("string" == typeof t) {
- var r = Pc(t);
- return this.readFeatureFromDocument(r, e)
- }
- return Cc(t) ? this.readFeatureFromDocument(t, e) : this.readFeatureFromNode(t, e)
- }
- return null
- }, e.prototype.readFeatureFromDocument = function (t, e) {
- var r = this.readFeaturesFromDocument(t, e);
- return r.length > 0 ? r[0] : null
- }, e.prototype.readFeatureFromNode = function (t, e) {
- return null
- }, e.prototype.readFeatures = function (t, e) {
- if (t) {
- if ("string" == typeof t) {
- var r = Pc(t);
- return this.readFeaturesFromDocument(r, e)
- }
- return Cc(t) ? this.readFeaturesFromDocument(t, e) : this.readFeaturesFromNode(t, e)
- }
- return []
- }, e.prototype.readFeaturesFromDocument = function (t, e) {
- for (var r = [], n = t.firstChild; n; n = n.nextSibling) n.nodeType == Node.ELEMENT_NODE && v(r, this.readFeaturesFromNode(n, e));
- return r
- }, e.prototype.readFeaturesFromNode = function (t, e) {
- return n()
- }, e.prototype.readGeometry = function (t, e) {
- if (t) {
- if ("string" == typeof t) {
- var r = Pc(t);
- return this.readGeometryFromDocument(r, e)
- }
- return Cc(t) ? this.readGeometryFromDocument(t, e) : this.readGeometryFromNode(t, e)
- }
- return null
- }, e.prototype.readGeometryFromDocument = function (t, e) {
- return null
- }, e.prototype.readGeometryFromNode = function (t, e) {
- return null
- }, e.prototype.readProjection = function (t) {
- if (t) {
- if ("string" == typeof t) {
- var e = Pc(t);
- return this.readProjectionFromDocument(e)
- }
- return Cc(t) ? this.readProjectionFromDocument(t) : this.readProjectionFromNode(t)
- }
- return null
- }, e.prototype.readProjectionFromDocument = function (t) {
- return this.dataProjection
- }, e.prototype.readProjectionFromNode = function (t) {
- return this.dataProjection
- }, e.prototype.writeFeature = function (t, e) {
- var r = this.writeFeatureNode(t, e);
- return this.xmlSerializer_.serializeToString(r)
- }, e.prototype.writeFeatureNode = function (t, e) {
- return null
- }, e.prototype.writeFeatures = function (t, e) {
- var r = this.writeFeaturesNode(t, e);
- return this.xmlSerializer_.serializeToString(r)
- }, e.prototype.writeFeaturesNode = function (t, e) {
- return null
- }, e.prototype.writeGeometry = function (t, e) {
- var r = this.writeGeometryNode(t, e);
- return this.xmlSerializer_.serializeToString(r)
- }, e.prototype.writeGeometryNode = function (t, e) {
- return null
- }, e
- }(Yy), R_ = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), I_ = "http://www.opengis.net/gml", L_ = /^[\s\xa0]*$/, M_ = function (t) {
- function e(e) {
- var r = t.call(this) || this, n = e || {};
- return r.featureType = n.featureType, r.featureNS = n.featureNS, r.srsName = n.srsName, r.schemaLocation = "", r.FEATURE_COLLECTION_PARSERS = {}, r.FEATURE_COLLECTION_PARSERS[r.namespace] = {
- featureMember: Ic(r.readFeaturesInternal),
- featureMembers: Lc(r.readFeaturesInternal)
- }, r
- }
-
- return R_(e, t), e.prototype.readFeaturesInternal = function (t, e) {
- var r = t.localName, n = null;
- if ("FeatureCollection" == r) n = Uc([], this.FEATURE_COLLECTION_PARSERS, t, e, this); else if ("featureMembers" == r || "featureMember" == r || "member" == r) {
- var i = e[0], o = i.featureType, a = i.featureNS;
- if (!o && t.childNodes) {
- o = [], a = {};
- for (var s = 0, l = t.childNodes.length; s < l; ++s) {
- var u = t.childNodes[s];
- if (1 === u.nodeType) {
- var c = u.nodeName.split(":").pop();
- if (-1 === o.indexOf(c)) {
- var h = "", p = 0, f = u.namespaceURI;
- for (var d in a) {
- if (a[d] === f) {
- h = d;
- break
- }
- ++p
- }
- h || (a[h = "p" + p] = f), o.push(h + ":" + c)
- }
- }
- }
- "featureMember" != r && (i.featureType = o, i.featureNS = a)
- }
- if ("string" == typeof a) {
- var g = a;
- (a = {}).p0 = g
- }
- var y = {}, m = Array.isArray(o) ? o : [o];
- for (var v in a) {
- var _ = {};
- for (s = 0, l = m.length; s < l; ++s) {
- (-1 === m[s].indexOf(":") ? "p0" : m[s].split(":")[0]) === v && (_[m[s].split(":").pop()] = "featureMembers" == r ? Ic(this.readFeatureElement, this) : Lc(this.readFeatureElement, this))
- }
- y[a[v]] = _
- }
- n = Uc("featureMember" == r || "member" == r ? void 0 : [], y, t, e)
- }
- return null === n && (n = []), n
- }, e.prototype.readGeometryElement = function (t, e) {
- var r = e[0];
- r.srsName = t.firstElementChild.getAttribute("srsName"), r.srsDimension = t.firstElementChild.getAttribute("srsDimension");
- var n = Uc(null, this.GEOMETRY_PARSERS, t, e, this);
- return n ? Array.isArray(n) ? qy(n, r) : Wy(n, !1, r) : void 0
- }, e.prototype.readFeatureElementInternal = function (t, e, r) {
- for (var n, i = {}, o = t.firstElementChild; o; o = o.nextElementSibling) {
- var a = void 0, s = o.localName;
- 0 === o.childNodes.length || 1 === o.childNodes.length && (3 === o.firstChild.nodeType || 4 === o.firstChild.nodeType) ? (a = Ec(o, !1), L_.test(a) && (a = void 0)) : (r && (a = this.readGeometryElement(o, e)), a ? "boundedBy" !== s && (n = s) : a = this.readFeatureElementInternal(o, e, !1)), i[s] ? (i[s] instanceof Array || (i[s] = [i[s]]), i[s].push(a)) : i[s] = a;
- var l = o.attributes.length;
- if (l > 0) {
- i[s] = {_content_: i[s]};
- for (var u = 0; u < l; u++) {
- var c = o.attributes[u].name;
- i[s][c] = o.attributes[u].value
- }
- }
- }
- if (r) {
- var h = new gt(i);
- n && h.setGeometryName(n);
- var p = t.getAttribute("fid") || Oc(t, this.namespace, "id");
- return p && h.setId(p), h
- }
- return i
- }, e.prototype.readFeatureElement = function (t, e) {
- return this.readFeatureElementInternal(t, e, !0)
- }, e.prototype.readPoint = function (t, e) {
- var r = this.readFlatCoordinatesFromNode(t, e);
- if (r) return new qn(r, mt)
- }, e.prototype.readMultiPoint = function (t, e) {
- var r = Uc([], this.MULTIPOINT_PARSERS, t, e, this);
- return r ? new Hy(r) : void 0
- }, e.prototype.readMultiLineString = function (t, e) {
- var r = Uc([], this.MULTILINESTRING_PARSERS, t, e, this);
- if (r) return new Zy(r)
- }, e.prototype.readMultiPolygon = function (t, e) {
- var r = Uc([], this.MULTIPOLYGON_PARSERS, t, e, this);
- if (r) return new Jy(r)
- }, e.prototype.pointMemberParser = function (t, e) {
- zc(this.POINTMEMBER_PARSERS, t, e, this)
- }, e.prototype.lineStringMemberParser = function (t, e) {
- zc(this.LINESTRINGMEMBER_PARSERS, t, e, this)
- }, e.prototype.polygonMemberParser = function (t, e) {
- zc(this.POLYGONMEMBER_PARSERS, t, e, this)
- }, e.prototype.readLineString = function (t, e) {
- var r = this.readFlatCoordinatesFromNode(t, e);
- return r ? new Py(r, mt) : void 0
- }, e.prototype.readFlatLinearRing = function (t, e) {
- var r = Uc(null, this.GEOMETRY_FLAT_COORDINATES_PARSERS, t, e, this);
- return r || void 0
- }, e.prototype.readLinearRing = function (t, e) {
- var r = this.readFlatCoordinatesFromNode(t, e);
- if (r) return new Yn(r, mt)
- }, e.prototype.readPolygon = function (t, e) {
- var r = Uc([null], this.FLAT_LINEAR_RINGS_PARSERS, t, e, this);
- if (r && r[0]) {
- var n, i = r[0], o = [i.length], a = void 0;
- for (a = 1, n = r.length; a < n; ++a) v(i, r[a]), o.push(i.length);
- return new fi(i, mt, o)
- }
- }, e.prototype.readFlatCoordinatesFromNode = function (t, e) {
- return Uc(null, this.GEOMETRY_FLAT_COORDINATES_PARSERS, t, e, this)
- }, e.prototype.readGeometryFromNode = function (t, e) {
- var r = this.readGeometryElement(t, [this.getReadOptions(t, e || {})]);
- return r || null
- }, e.prototype.readFeaturesFromNode = function (t, e) {
- var r = {featureType: this.featureType, featureNS: this.featureNS};
- return e && O(r, this.getReadOptions(t, e)), this.readFeaturesInternal(t, [r]) || []
- }, e.prototype.readProjectionFromNode = function (t) {
- return Gr(this.srsName ? this.srsName : t.firstElementChild.getAttribute("srsName"))
- }, e
- }(P_);
- M_.prototype.namespace = I_, M_.prototype.FLAT_LINEAR_RINGS_PARSERS = {"http://www.opengis.net/gml": {}}, M_.prototype.GEOMETRY_FLAT_COORDINATES_PARSERS = {"http://www.opengis.net/gml": {}}, M_.prototype.GEOMETRY_PARSERS = {"http://www.opengis.net/gml": {}}, M_.prototype.MULTIPOINT_PARSERS = {
- "http://www.opengis.net/gml": {
- pointMember: Ic(M_.prototype.pointMemberParser),
- pointMembers: Ic(M_.prototype.pointMemberParser)
- }
- }, M_.prototype.MULTILINESTRING_PARSERS = {
- "http://www.opengis.net/gml": {
- lineStringMember: Ic(M_.prototype.lineStringMemberParser),
- lineStringMembers: Ic(M_.prototype.lineStringMemberParser)
- }
- }, M_.prototype.MULTIPOLYGON_PARSERS = {
- "http://www.opengis.net/gml": {
- polygonMember: Ic(M_.prototype.polygonMemberParser),
- polygonMembers: Ic(M_.prototype.polygonMemberParser)
- }
- }, M_.prototype.POINTMEMBER_PARSERS = {"http://www.opengis.net/gml": {Point: Ic(M_.prototype.readFlatCoordinatesFromNode)}}, M_.prototype.LINESTRINGMEMBER_PARSERS = {"http://www.opengis.net/gml": {LineString: Ic(M_.prototype.readLineString)}}, M_.prototype.POLYGONMEMBER_PARSERS = {"http://www.opengis.net/gml": {Polygon: Ic(M_.prototype.readPolygon)}}, M_.prototype.RING_PARSERS = {"http://www.opengis.net/gml": {LinearRing: Lc(M_.prototype.readFlatLinearRing)}};
- var F_ = M_;
-
- function A_(t) {
- return k_(Ec(t, !1))
- }
-
- function k_(t) {
- var e = /^\s*(true|1)|(false|0)\s*$/.exec(t);
- return e ? void 0 !== e[1] || !1 : void 0
- }
-
- function j_(t) {
- var e = Ec(t, !1), r = Date.parse(e);
- return isNaN(r) ? void 0 : r / 1e3
- }
-
- function N_(t) {
- return D_(Ec(t, !1))
- }
-
- function D_(t) {
- var e = /^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)\s*$/i.exec(t);
- return e ? parseFloat(e[1]) : void 0
- }
-
- function G_(t) {
- return z_(Ec(t, !1))
- }
-
- function z_(t) {
- var e = /^\s*(\d+)\s*$/.exec(t);
- return e ? parseInt(e[1], 10) : void 0
- }
-
- function U_(t) {
- return Ec(t, !1).trim()
- }
-
- function B_(t, e) {
- X_(t, e ? "1" : "0")
- }
-
- function V_(t, e) {
- t.appendChild(Xc().createCDATASection(e))
- }
-
- function Y_(t, e) {
- var r = new Date(1e3 * e),
- n = r.getUTCFullYear() + "-" + _r(r.getUTCMonth() + 1, 2) + "-" + _r(r.getUTCDate(), 2) + "T" + _r(r.getUTCHours(), 2) + ":" + _r(r.getUTCMinutes(), 2) + ":" + _r(r.getUTCSeconds(), 2) + "Z";
- t.appendChild(Xc().createTextNode(n))
- }
-
- function W_(t, e) {
- var r = e.toPrecision();
- t.appendChild(Xc().createTextNode(r))
- }
-
- function q_(t, e) {
- var r = e.toString();
- t.appendChild(Xc().createTextNode(r))
- }
-
- function X_(t, e) {
- t.appendChild(Xc().createTextNode(e))
- }
-
- var Z_ = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), K_ = {
- MultiLineString: "lineStringMember",
- MultiCurve: "curveMember",
- MultiPolygon: "polygonMember",
- MultiSurface: "surfaceMember"
- }, H_ = function (t) {
- function e(e) {
- var r = this, n = e || {};
- return (r = t.call(this, n) || this).FEATURE_COLLECTION_PARSERS[I_].featureMember = Ic(r.readFeaturesInternal), r.schemaLocation = n.schemaLocation ? n.schemaLocation : "http://www.opengis.net/gml http://schemas.opengis.net/gml/2.1.2/feature.xsd", r
- }
-
- return Z_(e, t), e.prototype.readFlatCoordinates = function (t, e) {
- var r = Ec(t, !1).replace(/^\s*|\s*$/g, ""), n = e[0].srsName, i = "enu";
- if (n) {
- var o = Gr(n);
- o && (i = o.getAxisOrientation())
- }
- for (var a = r.trim().split(/\s+/), s = [], l = 0, u = a.length; l < u; l++) {
- var c = a[l].split(/,+/), h = parseFloat(c[0]), p = parseFloat(c[1]),
- f = 3 === c.length ? parseFloat(c[2]) : 0;
- "en" === i.substr(0, 2) ? s.push(h, p, f) : s.push(p, h, f)
- }
- return s
- }, e.prototype.readBox = function (t, e) {
- var r = Uc([null], this.BOX_PARSERS_, t, e, this);
- return ie(r[1][0], r[1][1], r[1][3], r[1][4])
- }, e.prototype.innerBoundaryIsParser = function (t, e) {
- var r = Uc(void 0, this.RING_PARSERS, t, e, this);
- r && e[e.length - 1].push(r)
- }, e.prototype.outerBoundaryIsParser = function (t, e) {
- var r = Uc(void 0, this.RING_PARSERS, t, e, this);
- r && (e[e.length - 1][0] = r)
- }, e.prototype.GEOMETRY_NODE_FACTORY_ = function (t, e, r) {
- var n, i = e[e.length - 1], o = i.multiSurface, a = i.surface, s = i.multiCurve;
- return Array.isArray(t) ? n = "Envelope" : "MultiPolygon" === (n = t.getType()) && !0 === o ? n = "MultiSurface" : "Polygon" === n && !0 === a ? n = "Surface" : "MultiLineString" === n && !0 === s && (n = "MultiCurve"), Sc("http://www.opengis.net/gml", n)
- }, e.prototype.writeFeatureElement = function (t, e, r) {
- var n = e.getId();
- n && t.setAttribute("fid", n);
- var i = r[r.length - 1], o = i.featureNS, a = e.getGeometryName();
- i.serializers || (i.serializers = {}, i.serializers[o] = {});
- var s = [], l = [];
- if (e.hasProperties()) {
- var u = e.getProperties();
- for (var c in u) {
- var h = u[c];
- null !== h && (s.push(c), l.push(h), c == a || "function" == typeof h.getSimplifiedGeometry ? c in i.serializers[o] || (i.serializers[o][c] = Ac(this.writeGeometryElement, this)) : c in i.serializers[o] || (i.serializers[o][c] = Ac(X_)))
- }
- }
- var p = O({}, i);
- p.node = t, Vc(p, i.serializers, jc(void 0, o), l, r, s)
- }, e.prototype.writeCurveOrLineString = function (t, e, r) {
- var n = r[r.length - 1].srsName;
- if ("LineStringSegment" !== t.nodeName && n && t.setAttribute("srsName", n), "LineString" === t.nodeName || "LineStringSegment" === t.nodeName) {
- var i = this.createCoordinatesNode_(t.namespaceURI);
- t.appendChild(i), this.writeCoordinates_(i, e, r)
- } else if ("Curve" === t.nodeName) {
- var o = Sc(t.namespaceURI, "segments");
- t.appendChild(o), this.writeCurveSegments_(o, e, r)
- }
- }, e.prototype.writeLineStringOrCurveMember = function (t, e, r) {
- var n = this.GEOMETRY_NODE_FACTORY_(e, r);
- n && (t.appendChild(n), this.writeCurveOrLineString(n, e, r))
- }, e.prototype.writeMultiCurveOrLineString = function (t, e, r) {
- var n = r[r.length - 1], i = n.hasZ, o = n.srsName, a = n.curve;
- o && t.setAttribute("srsName", o);
- var s = e.getLineStrings();
- Vc({
- node: t,
- hasZ: i,
- srsName: o,
- curve: a
- }, this.LINESTRINGORCURVEMEMBER_SERIALIZERS, this.MULTIGEOMETRY_MEMBER_NODE_FACTORY_, s, r, void 0, this)
- }, e.prototype.writeGeometryElement = function (t, e, r) {
- var n, i = r[r.length - 1], o = O({}, i);
- o.node = t, n = Array.isArray(e) ? qy(e, i) : Wy(e, !0, i), Vc(o, this.GEOMETRY_SERIALIZERS, this.GEOMETRY_NODE_FACTORY_, [n], r, void 0, this)
- }, e.prototype.createCoordinatesNode_ = function (t) {
- var e = Sc(t, "coordinates");
- return e.setAttribute("decimal", "."), e.setAttribute("cs", ","), e.setAttribute("ts", " "), e
- }, e.prototype.writeCoordinates_ = function (t, e, r) {
- for (var n = r[r.length - 1], i = n.hasZ, o = n.srsName, a = e.getCoordinates(), s = a.length, l = new Array(s), u = 0; u < s; ++u) {
- var c = a[u];
- l[u] = this.getCoords_(c, o, i)
- }
- X_(t, l.join(" "))
- }, e.prototype.writeCurveSegments_ = function (t, e, r) {
- var n = Sc(t.namespaceURI, "LineStringSegment");
- t.appendChild(n), this.writeCurveOrLineString(n, e, r)
- }, e.prototype.writeSurfaceOrPolygon = function (t, e, r) {
- var n = r[r.length - 1], i = n.hasZ, o = n.srsName;
- if ("PolygonPatch" !== t.nodeName && o && t.setAttribute("srsName", o), "Polygon" === t.nodeName || "PolygonPatch" === t.nodeName) {
- var a = e.getLinearRings();
- Vc({node: t, hasZ: i, srsName: o}, this.RING_SERIALIZERS, this.RING_NODE_FACTORY_, a, r, void 0, this)
- } else if ("Surface" === t.nodeName) {
- var s = Sc(t.namespaceURI, "patches");
- t.appendChild(s), this.writeSurfacePatches_(s, e, r)
- }
- }, e.prototype.RING_NODE_FACTORY_ = function (t, e, r) {
- var n = e[e.length - 1], i = n.node, o = n.exteriorWritten;
- return void 0 === o && (n.exteriorWritten = !0), Sc(i.namespaceURI, void 0 !== o ? "innerBoundaryIs" : "outerBoundaryIs")
- }, e.prototype.writeSurfacePatches_ = function (t, e, r) {
- var n = Sc(t.namespaceURI, "PolygonPatch");
- t.appendChild(n), this.writeSurfaceOrPolygon(n, e, r)
- }, e.prototype.writeRing = function (t, e, r) {
- var n = Sc(t.namespaceURI, "LinearRing");
- t.appendChild(n), this.writeLinearRing(n, e, r)
- }, e.prototype.getCoords_ = function (t, e, r) {
- var n = "enu";
- e && (n = Gr(e).getAxisOrientation());
- var i = "en" === n.substr(0, 2) ? t[0] + "," + t[1] : t[1] + "," + t[0];
- r && (i += "," + (t[2] || 0));
- return i
- }, e.prototype.writePoint = function (t, e, r) {
- var n = r[r.length - 1], i = n.hasZ, o = n.srsName;
- o && t.setAttribute("srsName", o);
- var a = this.createCoordinatesNode_(t.namespaceURI);
- t.appendChild(a);
- var s = e.getCoordinates();
- X_(a, this.getCoords_(s, o, i))
- }, e.prototype.writeMultiPoint = function (t, e, r) {
- var n = r[r.length - 1], i = n.hasZ, o = n.srsName;
- o && t.setAttribute("srsName", o);
- var a = e.getPoints();
- Vc({node: t, hasZ: i, srsName: o}, this.POINTMEMBER_SERIALIZERS, jc("pointMember"), a, r, void 0, this)
- }, e.prototype.writePointMember = function (t, e, r) {
- var n = Sc(t.namespaceURI, "Point");
- t.appendChild(n), this.writePoint(n, e, r)
- }, e.prototype.writeLinearRing = function (t, e, r) {
- var n = r[r.length - 1].srsName;
- n && t.setAttribute("srsName", n);
- var i = this.createCoordinatesNode_(t.namespaceURI);
- t.appendChild(i), this.writeCoordinates_(i, e, r)
- }, e.prototype.writeMultiSurfaceOrPolygon = function (t, e, r) {
- var n = r[r.length - 1], i = n.hasZ, o = n.srsName, a = n.surface;
- o && t.setAttribute("srsName", o);
- var s = e.getPolygons();
- Vc({
- node: t,
- hasZ: i,
- srsName: o,
- surface: a
- }, this.SURFACEORPOLYGONMEMBER_SERIALIZERS, this.MULTIGEOMETRY_MEMBER_NODE_FACTORY_, s, r, void 0, this)
- }, e.prototype.writeSurfaceOrPolygonMember = function (t, e, r) {
- var n = this.GEOMETRY_NODE_FACTORY_(e, r);
- n && (t.appendChild(n), this.writeSurfaceOrPolygon(n, e, r))
- }, e.prototype.writeEnvelope = function (t, e, r) {
- var n = r[r.length - 1].srsName;
- n && t.setAttribute("srsName", n);
- var i = [e[0] + " " + e[1], e[2] + " " + e[3]];
- Vc({node: t}, this.ENVELOPE_SERIALIZERS, Nc, i, r, ["lowerCorner", "upperCorner"], this)
- }, e.prototype.MULTIGEOMETRY_MEMBER_NODE_FACTORY_ = function (t, e, r) {
- var n = e[e.length - 1].node;
- return Sc("http://www.opengis.net/gml", K_[n.nodeName])
- }, e
- }(F_);
- H_.prototype.GEOMETRY_FLAT_COORDINATES_PARSERS = {"http://www.opengis.net/gml": {coordinates: Lc(H_.prototype.readFlatCoordinates)}}, H_.prototype.FLAT_LINEAR_RINGS_PARSERS = {
- "http://www.opengis.net/gml": {
- innerBoundaryIs: H_.prototype.innerBoundaryIsParser,
- outerBoundaryIs: H_.prototype.outerBoundaryIsParser
- }
- }, H_.prototype.BOX_PARSERS_ = {"http://www.opengis.net/gml": {coordinates: Ic(H_.prototype.readFlatCoordinates)}}, H_.prototype.GEOMETRY_PARSERS = {
- "http://www.opengis.net/gml": {
- Point: Lc(F_.prototype.readPoint),
- MultiPoint: Lc(F_.prototype.readMultiPoint),
- LineString: Lc(F_.prototype.readLineString),
- MultiLineString: Lc(F_.prototype.readMultiLineString),
- LinearRing: Lc(F_.prototype.readLinearRing),
- Polygon: Lc(F_.prototype.readPolygon),
- MultiPolygon: Lc(F_.prototype.readMultiPolygon),
- Box: Lc(H_.prototype.readBox)
- }
- }, H_.prototype.GEOMETRY_SERIALIZERS = {
- "http://www.opengis.net/gml": {
- Curve: Ac(H_.prototype.writeCurveOrLineString),
- MultiCurve: Ac(H_.prototype.writeMultiCurveOrLineString),
- Point: Ac(H_.prototype.writePoint),
- MultiPoint: Ac(H_.prototype.writeMultiPoint),
- LineString: Ac(H_.prototype.writeCurveOrLineString),
- MultiLineString: Ac(H_.prototype.writeMultiCurveOrLineString),
- LinearRing: Ac(H_.prototype.writeLinearRing),
- Polygon: Ac(H_.prototype.writeSurfaceOrPolygon),
- MultiPolygon: Ac(H_.prototype.writeMultiSurfaceOrPolygon),
- Surface: Ac(H_.prototype.writeSurfaceOrPolygon),
- MultiSurface: Ac(H_.prototype.writeMultiSurfaceOrPolygon),
- Envelope: Ac(H_.prototype.writeEnvelope)
- }
- }, H_.prototype.LINESTRINGORCURVEMEMBER_SERIALIZERS = {
- "http://www.opengis.net/gml": {
- lineStringMember: Ac(H_.prototype.writeLineStringOrCurveMember),
- curveMember: Ac(H_.prototype.writeLineStringOrCurveMember)
- }
- }, H_.prototype.RING_SERIALIZERS = {
- "http://www.opengis.net/gml": {
- outerBoundaryIs: Ac(H_.prototype.writeRing),
- innerBoundaryIs: Ac(H_.prototype.writeRing)
- }
- }, H_.prototype.POINTMEMBER_SERIALIZERS = {"http://www.opengis.net/gml": {pointMember: Ac(H_.prototype.writePointMember)}}, H_.prototype.SURFACEORPOLYGONMEMBER_SERIALIZERS = {
- "http://www.opengis.net/gml": {
- surfaceMember: Ac(H_.prototype.writeSurfaceOrPolygonMember),
- polygonMember: Ac(H_.prototype.writeSurfaceOrPolygonMember)
- }
- }, H_.prototype.ENVELOPE_SERIALIZERS = {"http://www.opengis.net/gml": {lowerCorner: Ac(X_), upperCorner: Ac(X_)}};
- var $_ = H_, J_ = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), Q_ = {
- MultiLineString: "lineStringMember",
- MultiCurve: "curveMember",
- MultiPolygon: "polygonMember",
- MultiSurface: "surfaceMember"
- }, tb = function (t) {
- function e(e) {
- var r = this, n = e || {};
- return (r = t.call(this, n) || this).surface_ = void 0 !== n.surface && n.surface, r.curve_ = void 0 !== n.curve && n.curve, r.multiCurve_ = void 0 === n.multiCurve || n.multiCurve, r.multiSurface_ = void 0 === n.multiSurface || n.multiSurface, r.schemaLocation = n.schemaLocation ? n.schemaLocation : "http://www.opengis.net/gml http://schemas.opengis.net/gml/3.1.1/profiles/gmlsfProfile/1.0.0/gmlsf.xsd", r.hasZ = void 0 !== n.hasZ && n.hasZ, r
- }
-
- return J_(e, t), e.prototype.readMultiCurve = function (t, e) {
- var r = Uc([], this.MULTICURVE_PARSERS, t, e, this);
- return r ? new Zy(r) : void 0
- }, e.prototype.readMultiSurface = function (t, e) {
- var r = Uc([], this.MULTISURFACE_PARSERS, t, e, this);
- if (r) return new Jy(r)
- }, e.prototype.curveMemberParser = function (t, e) {
- zc(this.CURVEMEMBER_PARSERS, t, e, this)
- }, e.prototype.surfaceMemberParser = function (t, e) {
- zc(this.SURFACEMEMBER_PARSERS, t, e, this)
- }, e.prototype.readPatch = function (t, e) {
- return Uc([null], this.PATCHES_PARSERS, t, e, this)
- }, e.prototype.readSegment = function (t, e) {
- return Uc([null], this.SEGMENTS_PARSERS, t, e, this)
- }, e.prototype.readPolygonPatch = function (t, e) {
- return Uc([null], this.FLAT_LINEAR_RINGS_PARSERS, t, e, this)
- }, e.prototype.readLineStringSegment = function (t, e) {
- return Uc([null], this.GEOMETRY_FLAT_COORDINATES_PARSERS, t, e, this)
- }, e.prototype.interiorParser = function (t, e) {
- var r = Uc(void 0, this.RING_PARSERS, t, e, this);
- r && e[e.length - 1].push(r)
- }, e.prototype.exteriorParser = function (t, e) {
- var r = Uc(void 0, this.RING_PARSERS, t, e, this);
- r && (e[e.length - 1][0] = r)
- }, e.prototype.readSurface = function (t, e) {
- var r = Uc([null], this.SURFACE_PARSERS, t, e, this);
- if (r && r[0]) {
- var n, i = r[0], o = [i.length], a = void 0;
- for (a = 1, n = r.length; a < n; ++a) v(i, r[a]), o.push(i.length);
- return new fi(i, mt, o)
- }
- }, e.prototype.readCurve = function (t, e) {
- var r = Uc([null], this.CURVE_PARSERS, t, e, this);
- return r ? new Py(r, mt) : void 0
- }, e.prototype.readEnvelope = function (t, e) {
- var r = Uc([null], this.ENVELOPE_PARSERS, t, e, this);
- return ie(r[1][0], r[1][1], r[2][0], r[2][1])
- }, e.prototype.readFlatPos = function (t, e) {
- for (var r, n = Ec(t, !1), i = /^\s*([+\-]?\d*\.?\d+(?:[eE][+\-]?\d+)?)\s*/, o = []; r = i.exec(n);) o.push(parseFloat(r[1])), n = n.substr(r[0].length);
- if ("" === n) {
- var a = e[0].srsName, s = "enu";
- if (a) s = Gr(a).getAxisOrientation();
- if ("neu" === s) {
- var l, u = void 0;
- for (u = 0, l = o.length; u < l; u += 3) {
- var c = o[u], h = o[u + 1];
- o[u] = h, o[u + 1] = c
- }
- }
- var p = o.length;
- if (2 == p && o.push(0), 0 !== p) return o
- }
- }, e.prototype.readFlatPosList = function (t, e) {
- var r = Ec(t, !1).replace(/^\s*|\s*$/g, ""), n = e[0], i = n.srsName, o = n.srsDimension, a = "enu";
- i && (a = Gr(i).getAxisOrientation());
- var s, l, u, c = r.split(/\s+/), h = 2;
- t.getAttribute("srsDimension") ? h = z_(t.getAttribute("srsDimension")) : t.getAttribute("dimension") ? h = z_(t.getAttribute("dimension")) : t.parentNode.getAttribute("srsDimension") ? h = z_(t.parentNode.getAttribute("srsDimension")) : o && (h = z_(o));
- for (var p = [], f = 0, d = c.length; f < d; f += h) s = parseFloat(c[f]), l = parseFloat(c[f + 1]), u = 3 === h ? parseFloat(c[f + 2]) : 0, "en" === a.substr(0, 2) ? p.push(s, l, u) : p.push(l, s, u);
- return p
- }, e.prototype.writePos_ = function (t, e, r) {
- var n = r[r.length - 1], i = n.hasZ, o = i ? "3" : "2";
- t.setAttribute("srsDimension", o);
- var a = n.srsName, s = "enu";
- a && (s = Gr(a).getAxisOrientation());
- var l, u = e.getCoordinates();
- (l = "en" === s.substr(0, 2) ? u[0] + " " + u[1] : u[1] + " " + u[0], i) && (l += " " + (u[2] || 0));
- X_(t, l)
- }, e.prototype.getCoords_ = function (t, e, r) {
- var n = "enu";
- e && (n = Gr(e).getAxisOrientation());
- var i = "en" === n.substr(0, 2) ? t[0] + " " + t[1] : t[1] + " " + t[0];
- r && (i += " " + (t[2] || 0));
- return i
- }, e.prototype.writePosList_ = function (t, e, r) {
- var n = r[r.length - 1], i = n.hasZ, o = i ? "3" : "2";
- t.setAttribute("srsDimension", o);
- for (var a, s = n.srsName, l = e.getCoordinates(), u = l.length, c = new Array(u), h = 0; h < u; ++h) a = l[h], c[h] = this.getCoords_(a, s, i);
- X_(t, c.join(" "))
- }, e.prototype.writePoint = function (t, e, r) {
- var n = r[r.length - 1].srsName;
- n && t.setAttribute("srsName", n);
- var i = Sc(t.namespaceURI, "pos");
- t.appendChild(i), this.writePos_(i, e, r)
- }, e.prototype.writeEnvelope = function (t, e, r) {
- var n = r[r.length - 1].srsName;
- n && t.setAttribute("srsName", n);
- var i = [e[0] + " " + e[1], e[2] + " " + e[3]];
- Vc({node: t}, this.ENVELOPE_SERIALIZERS, Nc, i, r, ["lowerCorner", "upperCorner"], this)
- }, e.prototype.writeLinearRing = function (t, e, r) {
- var n = r[r.length - 1].srsName;
- n && t.setAttribute("srsName", n);
- var i = Sc(t.namespaceURI, "posList");
- t.appendChild(i), this.writePosList_(i, e, r)
- }, e.prototype.RING_NODE_FACTORY_ = function (t, e, r) {
- var n = e[e.length - 1], i = n.node, o = n.exteriorWritten;
- return void 0 === o && (n.exteriorWritten = !0), Sc(i.namespaceURI, void 0 !== o ? "interior" : "exterior")
- }, e.prototype.writeSurfaceOrPolygon = function (t, e, r) {
- var n = r[r.length - 1], i = n.hasZ, o = n.srsName;
- if ("PolygonPatch" !== t.nodeName && o && t.setAttribute("srsName", o), "Polygon" === t.nodeName || "PolygonPatch" === t.nodeName) {
- var a = e.getLinearRings();
- Vc({node: t, hasZ: i, srsName: o}, this.RING_SERIALIZERS, this.RING_NODE_FACTORY_, a, r, void 0, this)
- } else if ("Surface" === t.nodeName) {
- var s = Sc(t.namespaceURI, "patches");
- t.appendChild(s), this.writeSurfacePatches_(s, e, r)
- }
- }, e.prototype.writeCurveOrLineString = function (t, e, r) {
- var n = r[r.length - 1].srsName;
- if ("LineStringSegment" !== t.nodeName && n && t.setAttribute("srsName", n), "LineString" === t.nodeName || "LineStringSegment" === t.nodeName) {
- var i = Sc(t.namespaceURI, "posList");
- t.appendChild(i), this.writePosList_(i, e, r)
- } else if ("Curve" === t.nodeName) {
- var o = Sc(t.namespaceURI, "segments");
- t.appendChild(o), this.writeCurveSegments_(o, e, r)
- }
- }, e.prototype.writeMultiSurfaceOrPolygon = function (t, e, r) {
- var n = r[r.length - 1], i = n.hasZ, o = n.srsName, a = n.surface;
- o && t.setAttribute("srsName", o);
- var s = e.getPolygons();
- Vc({
- node: t,
- hasZ: i,
- srsName: o,
- surface: a
- }, this.SURFACEORPOLYGONMEMBER_SERIALIZERS, this.MULTIGEOMETRY_MEMBER_NODE_FACTORY_, s, r, void 0, this)
- }, e.prototype.writeMultiPoint = function (t, e, r) {
- var n = r[r.length - 1], i = n.srsName, o = n.hasZ;
- i && t.setAttribute("srsName", i);
- var a = e.getPoints();
- Vc({node: t, hasZ: o, srsName: i}, this.POINTMEMBER_SERIALIZERS, jc("pointMember"), a, r, void 0, this)
- }, e.prototype.writeMultiCurveOrLineString = function (t, e, r) {
- var n = r[r.length - 1], i = n.hasZ, o = n.srsName, a = n.curve;
- o && t.setAttribute("srsName", o);
- var s = e.getLineStrings();
- Vc({
- node: t,
- hasZ: i,
- srsName: o,
- curve: a
- }, this.LINESTRINGORCURVEMEMBER_SERIALIZERS, this.MULTIGEOMETRY_MEMBER_NODE_FACTORY_, s, r, void 0, this)
- }, e.prototype.writeRing = function (t, e, r) {
- var n = Sc(t.namespaceURI, "LinearRing");
- t.appendChild(n), this.writeLinearRing(n, e, r)
- }, e.prototype.writeSurfaceOrPolygonMember = function (t, e, r) {
- var n = this.GEOMETRY_NODE_FACTORY_(e, r);
- n && (t.appendChild(n), this.writeSurfaceOrPolygon(n, e, r))
- }, e.prototype.writePointMember = function (t, e, r) {
- var n = Sc(t.namespaceURI, "Point");
- t.appendChild(n), this.writePoint(n, e, r)
- }, e.prototype.writeLineStringOrCurveMember = function (t, e, r) {
- var n = this.GEOMETRY_NODE_FACTORY_(e, r);
- n && (t.appendChild(n), this.writeCurveOrLineString(n, e, r))
- }, e.prototype.writeSurfacePatches_ = function (t, e, r) {
- var n = Sc(t.namespaceURI, "PolygonPatch");
- t.appendChild(n), this.writeSurfaceOrPolygon(n, e, r)
- }, e.prototype.writeCurveSegments_ = function (t, e, r) {
- var n = Sc(t.namespaceURI, "LineStringSegment");
- t.appendChild(n), this.writeCurveOrLineString(n, e, r)
- }, e.prototype.writeGeometryElement = function (t, e, r) {
- var n, i = r[r.length - 1], o = O({}, i);
- o.node = t, n = Array.isArray(e) ? qy(e, i) : Wy(e, !0, i), Vc(o, this.GEOMETRY_SERIALIZERS, this.GEOMETRY_NODE_FACTORY_, [n], r, void 0, this)
- }, e.prototype.writeFeatureElement = function (t, e, r) {
- var n = e.getId();
- n && t.setAttribute("fid", n);
- var i = r[r.length - 1], o = i.featureNS, a = e.getGeometryName();
- i.serializers || (i.serializers = {}, i.serializers[o] = {});
- var s = [], l = [];
- if (e.hasProperties()) {
- var u = e.getProperties();
- for (var c in u) {
- var h = u[c];
- null !== h && (s.push(c), l.push(h), c == a || "function" == typeof h.getSimplifiedGeometry ? c in i.serializers[o] || (i.serializers[o][c] = Ac(this.writeGeometryElement, this)) : c in i.serializers[o] || (i.serializers[o][c] = Ac(X_)))
- }
- }
- var p = O({}, i);
- p.node = t, Vc(p, i.serializers, jc(void 0, o), l, r, s)
- }, e.prototype.writeFeatureMembers_ = function (t, e, r) {
- var n = r[r.length - 1], i = n.featureType, o = n.featureNS, a = {};
- a[o] = {}, a[o][i] = Ac(this.writeFeatureElement, this);
- var s = O({}, n);
- s.node = t, Vc(s, a, jc(i, o), e, r)
- }, e.prototype.MULTIGEOMETRY_MEMBER_NODE_FACTORY_ = function (t, e, r) {
- var n = e[e.length - 1].node;
- return Sc(this.namespace, Q_[n.nodeName])
- }, e.prototype.GEOMETRY_NODE_FACTORY_ = function (t, e, r) {
- var n, i = e[e.length - 1], o = i.multiSurface, a = i.surface, s = i.curve, l = i.multiCurve;
- return Array.isArray(t) ? n = "Envelope" : "MultiPolygon" === (n = t.getType()) && !0 === o ? n = "MultiSurface" : "Polygon" === n && !0 === a ? n = "Surface" : "LineString" === n && !0 === s ? n = "Curve" : "MultiLineString" === n && !0 === l && (n = "MultiCurve"), Sc(this.namespace, n)
- }, e.prototype.writeGeometryNode = function (t, e) {
- e = this.adaptOptions(e);
- var r = Sc(this.namespace, "geom"), n = {
- node: r,
- hasZ: this.hasZ,
- srsName: this.srsName,
- curve: this.curve_,
- surface: this.surface_,
- multiSurface: this.multiSurface_,
- multiCurve: this.multiCurve_
- };
- return e && O(n, e), this.writeGeometryElement(r, t, [n]), r
- }, e.prototype.writeFeaturesNode = function (t, e) {
- e = this.adaptOptions(e);
- var r = Sc(this.namespace, "featureMembers");
- r.setAttributeNS(wc, "xsi:schemaLocation", this.schemaLocation);
- var n = {
- srsName: this.srsName,
- hasZ: this.hasZ,
- curve: this.curve_,
- surface: this.surface_,
- multiSurface: this.multiSurface_,
- multiCurve: this.multiCurve_,
- featureNS: this.featureNS,
- featureType: this.featureType
- };
- return e && O(n, e), this.writeFeatureMembers_(r, t, [n]), r
- }, e
- }(F_);
- tb.prototype.GEOMETRY_FLAT_COORDINATES_PARSERS = {
- "http://www.opengis.net/gml": {
- pos: Lc(tb.prototype.readFlatPos),
- posList: Lc(tb.prototype.readFlatPosList),
- coordinates: Lc($_.prototype.readFlatCoordinates)
- }
- }, tb.prototype.FLAT_LINEAR_RINGS_PARSERS = {
- "http://www.opengis.net/gml": {
- interior: tb.prototype.interiorParser,
- exterior: tb.prototype.exteriorParser
- }
- }, tb.prototype.GEOMETRY_PARSERS = {
- "http://www.opengis.net/gml": {
- Point: Lc(F_.prototype.readPoint),
- MultiPoint: Lc(F_.prototype.readMultiPoint),
- LineString: Lc(F_.prototype.readLineString),
- MultiLineString: Lc(F_.prototype.readMultiLineString),
- LinearRing: Lc(F_.prototype.readLinearRing),
- Polygon: Lc(F_.prototype.readPolygon),
- MultiPolygon: Lc(F_.prototype.readMultiPolygon),
- Surface: Lc(tb.prototype.readSurface),
- MultiSurface: Lc(tb.prototype.readMultiSurface),
- Curve: Lc(tb.prototype.readCurve),
- MultiCurve: Lc(tb.prototype.readMultiCurve),
- Envelope: Lc(tb.prototype.readEnvelope)
- }
- }, tb.prototype.MULTICURVE_PARSERS = {
- "http://www.opengis.net/gml": {
- curveMember: Ic(tb.prototype.curveMemberParser),
- curveMembers: Ic(tb.prototype.curveMemberParser)
- }
- }, tb.prototype.MULTISURFACE_PARSERS = {
- "http://www.opengis.net/gml": {
- surfaceMember: Ic(tb.prototype.surfaceMemberParser),
- surfaceMembers: Ic(tb.prototype.surfaceMemberParser)
- }
- }, tb.prototype.CURVEMEMBER_PARSERS = {
- "http://www.opengis.net/gml": {
- LineString: Ic(F_.prototype.readLineString),
- Curve: Ic(tb.prototype.readCurve)
- }
- }, tb.prototype.SURFACEMEMBER_PARSERS = {
- "http://www.opengis.net/gml": {
- Polygon: Ic(F_.prototype.readPolygon),
- Surface: Ic(tb.prototype.readSurface)
- }
- }, tb.prototype.SURFACE_PARSERS = {"http://www.opengis.net/gml": {patches: Lc(tb.prototype.readPatch)}}, tb.prototype.CURVE_PARSERS = {"http://www.opengis.net/gml": {segments: Lc(tb.prototype.readSegment)}}, tb.prototype.ENVELOPE_PARSERS = {
- "http://www.opengis.net/gml": {
- lowerCorner: Ic(tb.prototype.readFlatPosList),
- upperCorner: Ic(tb.prototype.readFlatPosList)
- }
- }, tb.prototype.PATCHES_PARSERS = {"http://www.opengis.net/gml": {PolygonPatch: Lc(tb.prototype.readPolygonPatch)}}, tb.prototype.SEGMENTS_PARSERS = {"http://www.opengis.net/gml": {LineStringSegment: Lc(tb.prototype.readLineStringSegment)}}, tb.prototype.writeFeatures, tb.prototype.RING_SERIALIZERS = {
- "http://www.opengis.net/gml": {
- exterior: Ac(tb.prototype.writeRing),
- interior: Ac(tb.prototype.writeRing)
- }
- }, tb.prototype.ENVELOPE_SERIALIZERS = {
- "http://www.opengis.net/gml": {
- lowerCorner: Ac(X_),
- upperCorner: Ac(X_)
- }
- }, tb.prototype.SURFACEORPOLYGONMEMBER_SERIALIZERS = {
- "http://www.opengis.net/gml": {
- surfaceMember: Ac(tb.prototype.writeSurfaceOrPolygonMember),
- polygonMember: Ac(tb.prototype.writeSurfaceOrPolygonMember)
- }
- }, tb.prototype.POINTMEMBER_SERIALIZERS = {"http://www.opengis.net/gml": {pointMember: Ac(tb.prototype.writePointMember)}}, tb.prototype.LINESTRINGORCURVEMEMBER_SERIALIZERS = {
- "http://www.opengis.net/gml": {
- lineStringMember: Ac(tb.prototype.writeLineStringOrCurveMember),
- curveMember: Ac(tb.prototype.writeLineStringOrCurveMember)
- }
- }, tb.prototype.GEOMETRY_SERIALIZERS = {
- "http://www.opengis.net/gml": {
- Curve: Ac(tb.prototype.writeCurveOrLineString),
- MultiCurve: Ac(tb.prototype.writeMultiCurveOrLineString),
- Point: Ac(tb.prototype.writePoint),
- MultiPoint: Ac(tb.prototype.writeMultiPoint),
- LineString: Ac(tb.prototype.writeCurveOrLineString),
- MultiLineString: Ac(tb.prototype.writeMultiCurveOrLineString),
- LinearRing: Ac(tb.prototype.writeLinearRing),
- Polygon: Ac(tb.prototype.writeSurfaceOrPolygon),
- MultiPolygon: Ac(tb.prototype.writeMultiSurfaceOrPolygon),
- Surface: Ac(tb.prototype.writeSurfaceOrPolygon),
- MultiSurface: Ac(tb.prototype.writeMultiSurfaceOrPolygon),
- Envelope: Ac(tb.prototype.writeEnvelope)
- }
- };
- var eb = tb, rb = eb;
- rb.prototype.writeFeatures, rb.prototype.writeFeaturesNode;
- var nb = rb, ib = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), ob = function (t) {
- function e(e) {
- var r = this, n = e || {};
- return (r = t.call(this, n) || this).schemaLocation = n.schemaLocation ? n.schemaLocation : r.namespace + " http://schemas.opengis.net/gml/3.2.1/gml.xsd", r
- }
-
- return ib(e, t), e
- }(eb);
- ob.prototype.namespace = "http://www.opengis.net/gml/3.2", ob.prototype.GEOMETRY_FLAT_COORDINATES_PARSERS = {
- "http://www.opengis.net/gml/3.2": {
- pos: Lc(eb.prototype.readFlatPos),
- posList: Lc(eb.prototype.readFlatPosList),
- coordinates: Lc($_.prototype.readFlatCoordinates)
- }
- }, ob.prototype.FLAT_LINEAR_RINGS_PARSERS = {
- "http://www.opengis.net/gml/3.2": {
- interior: eb.prototype.interiorParser,
- exterior: eb.prototype.exteriorParser
- }
- }, ob.prototype.GEOMETRY_PARSERS = {
- "http://www.opengis.net/gml/3.2": {
- Point: Lc(F_.prototype.readPoint),
- MultiPoint: Lc(F_.prototype.readMultiPoint),
- LineString: Lc(F_.prototype.readLineString),
- MultiLineString: Lc(F_.prototype.readMultiLineString),
- LinearRing: Lc(F_.prototype.readLinearRing),
- Polygon: Lc(F_.prototype.readPolygon),
- MultiPolygon: Lc(F_.prototype.readMultiPolygon),
- Surface: Lc(ob.prototype.readSurface),
- MultiSurface: Lc(eb.prototype.readMultiSurface),
- Curve: Lc(ob.prototype.readCurve),
- MultiCurve: Lc(eb.prototype.readMultiCurve),
- Envelope: Lc(ob.prototype.readEnvelope)
- }
- }, ob.prototype.MULTICURVE_PARSERS = {
- "http://www.opengis.net/gml/3.2": {
- curveMember: Ic(eb.prototype.curveMemberParser),
- curveMembers: Ic(eb.prototype.curveMemberParser)
- }
- }, ob.prototype.MULTISURFACE_PARSERS = {
- "http://www.opengis.net/gml/3.2": {
- surfaceMember: Ic(eb.prototype.surfaceMemberParser),
- surfaceMembers: Ic(eb.prototype.surfaceMemberParser)
- }
- }, ob.prototype.CURVEMEMBER_PARSERS = {
- "http://www.opengis.net/gml/3.2": {
- LineString: Ic(F_.prototype.readLineString),
- Curve: Ic(eb.prototype.readCurve)
- }
- }, ob.prototype.SURFACEMEMBER_PARSERS = {
- "http://www.opengis.net/gml/3.2": {
- Polygon: Ic(F_.prototype.readPolygon),
- Surface: Ic(eb.prototype.readSurface)
- }
- }, ob.prototype.SURFACE_PARSERS = {"http://www.opengis.net/gml/3.2": {patches: Lc(eb.prototype.readPatch)}}, ob.prototype.CURVE_PARSERS = {"http://www.opengis.net/gml/3.2": {segments: Lc(eb.prototype.readSegment)}}, ob.prototype.ENVELOPE_PARSERS = {
- "http://www.opengis.net/gml/3.2": {
- lowerCorner: Ic(eb.prototype.readFlatPosList),
- upperCorner: Ic(eb.prototype.readFlatPosList)
- }
- }, ob.prototype.PATCHES_PARSERS = {"http://www.opengis.net/gml/3.2": {PolygonPatch: Lc(eb.prototype.readPolygonPatch)}}, ob.prototype.SEGMENTS_PARSERS = {"http://www.opengis.net/gml/3.2": {LineStringSegment: Lc(eb.prototype.readLineStringSegment)}}, ob.prototype.MULTIPOINT_PARSERS = {
- "http://www.opengis.net/gml/3.2": {
- pointMember: Ic(F_.prototype.pointMemberParser),
- pointMembers: Ic(F_.prototype.pointMemberParser)
- }
- }, ob.prototype.MULTILINESTRING_PARSERS = {
- "http://www.opengis.net/gml/3.2": {
- lineStringMember: Ic(F_.prototype.lineStringMemberParser),
- lineStringMembers: Ic(F_.prototype.lineStringMemberParser)
- }
- }, ob.prototype.MULTIPOLYGON_PARSERS = {
- "http://www.opengis.net/gml/3.2": {
- polygonMember: Ic(F_.prototype.polygonMemberParser),
- polygonMembers: Ic(F_.prototype.polygonMemberParser)
- }
- }, ob.prototype.POINTMEMBER_PARSERS = {"http://www.opengis.net/gml/3.2": {Point: Ic(F_.prototype.readFlatCoordinatesFromNode)}}, ob.prototype.LINESTRINGMEMBER_PARSERS = {"http://www.opengis.net/gml/3.2": {LineString: Ic(F_.prototype.readLineString)}}, ob.prototype.POLYGONMEMBER_PARSERS = {"http://www.opengis.net/gml/3.2": {Polygon: Ic(F_.prototype.readPolygon)}}, ob.prototype.RING_PARSERS = {"http://www.opengis.net/gml/3.2": {LinearRing: Lc(F_.prototype.readFlatLinearRing)}}, ob.prototype.RING_SERIALIZERS = {
- "http://www.opengis.net/gml/3.2": {
- exterior: Ac(eb.prototype.writeRing),
- interior: Ac(eb.prototype.writeRing)
- }
- }, ob.prototype.ENVELOPE_SERIALIZERS = {
- "http://www.opengis.net/gml/3.2": {
- lowerCorner: Ac(X_),
- upperCorner: Ac(X_)
- }
- }, ob.prototype.SURFACEORPOLYGONMEMBER_SERIALIZERS = {
- "http://www.opengis.net/gml/3.2": {
- surfaceMember: Ac(eb.prototype.writeSurfaceOrPolygonMember),
- polygonMember: Ac(eb.prototype.writeSurfaceOrPolygonMember)
- }
- }, ob.prototype.POINTMEMBER_SERIALIZERS = {"http://www.opengis.net/gml/3.2": {pointMember: Ac(eb.prototype.writePointMember)}}, ob.prototype.LINESTRINGORCURVEMEMBER_SERIALIZERS = {
- "http://www.opengis.net/gml/3.2": {
- lineStringMember: Ac(eb.prototype.writeLineStringOrCurveMember),
- curveMember: Ac(eb.prototype.writeLineStringOrCurveMember)
- }
- }, ob.prototype.GEOMETRY_SERIALIZERS = {
- "http://www.opengis.net/gml/3.2": {
- Curve: Ac(eb.prototype.writeCurveOrLineString),
- MultiCurve: Ac(eb.prototype.writeMultiCurveOrLineString),
- Point: Ac(ob.prototype.writePoint),
- MultiPoint: Ac(eb.prototype.writeMultiPoint),
- LineString: Ac(eb.prototype.writeCurveOrLineString),
- MultiLineString: Ac(eb.prototype.writeMultiCurveOrLineString),
- LinearRing: Ac(eb.prototype.writeLinearRing),
- Polygon: Ac(eb.prototype.writeSurfaceOrPolygon),
- MultiPolygon: Ac(eb.prototype.writeMultiSurfaceOrPolygon),
- Surface: Ac(eb.prototype.writeSurfaceOrPolygon),
- MultiSurface: Ac(eb.prototype.writeMultiSurfaceOrPolygon),
- Envelope: Ac(eb.prototype.writeEnvelope)
- }
- };
- var ab = ob, sb = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), lb = [null, "http://www.topografix.com/GPX/1/0", "http://www.topografix.com/GPX/1/1"],
- ub = {rte: Nb, trk: Db, wpt: Gb}, cb = Gc(lb, {rte: Ic(Nb), trk: Ic(Db), wpt: Ic(Gb)}),
- hb = Gc(lb, {text: Fc(U_, "linkText"), type: Fc(U_, "linkType")}), pb = Gc(lb, {
- rte: Ac((function (t, e, r) {
- var n = r[0], i = e.getProperties(), o = {node: t};
- o.properties = i;
- var a = e.getGeometry();
- if (a.getType() == bt.LINE_STRING) {
- var s = Wy(a, !0, n);
- o.geometryLayout = s.getLayout(), i.rtept = s.getCoordinates()
- }
- var l = r[r.length - 1].node, u = wb[l.namespaceURI], c = Dc(i, u);
- Vc(o, Sb, Nc, c, r, u)
- })), trk: Ac((function (t, e, r) {
- var n = r[0], i = e.getProperties(), o = {node: t};
- o.properties = i;
- var a = e.getGeometry();
- if (a.getType() == bt.MULTI_LINE_STRING) {
- var s = Wy(a, !0, n);
- i.trkseg = s.getLineStrings()
- }
- var l = r[r.length - 1].node, u = Tb[l.namespaceURI], c = Dc(i, u);
- Vc(o, Cb, Nc, c, r, u)
- })), wpt: Ac((function (t, e, r) {
- var n = r[0], i = r[r.length - 1];
- i.properties = e.getProperties();
- var o = e.getGeometry();
- if (o.getType() == bt.POINT) {
- var a = Wy(o, !0, n);
- i.geometryLayout = a.getLayout(), Ub(t, a.getCoordinates(), r)
- }
- }))
- }), fb = function (t) {
- function e(e) {
- var r = t.call(this) || this, n = e || {};
- return r.dataProjection = Gr("EPSG:4326"), r.readExtensions_ = n.readExtensions, r
- }
-
- return sb(e, t), e.prototype.handleReadExtensions_ = function (t) {
- t || (t = []);
- for (var e = 0, r = t.length; e < r; ++e) {
- var n = t[e];
- if (this.readExtensions_) {
- var i = n.get("extensionsNode_") || null;
- this.readExtensions_(n, i)
- }
- n.set("extensionsNode_", void 0)
- }
- }, e.prototype.readFeatureFromNode = function (t, e) {
- if (!g(lb, t.namespaceURI)) return null;
- var r = ub[t.localName];
- if (!r) return null;
- var n = r(t, [this.getReadOptions(t, e)]);
- return n ? (this.handleReadExtensions_([n]), n) : null
- }, e.prototype.readFeaturesFromNode = function (t, e) {
- if (!g(lb, t.namespaceURI)) return [];
- if ("gpx" == t.localName) {
- var r = Uc([], cb, t, [this.getReadOptions(t, e)]);
- return r ? (this.handleReadExtensions_(r), r) : []
- }
- return []
- }, e.prototype.writeFeaturesNode = function (t, e) {
- e = this.adaptOptions(e);
- var r = Sc("http://www.topografix.com/GPX/1/1", "gpx");
- return r.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:xsi", wc), r.setAttributeNS(wc, "xsi:schemaLocation", "http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd"), r.setAttribute("version", "1.1"), r.setAttribute("creator", "OpenLayers"), Vc({node: r}, pb, Mb, t, [e]), r
- }, e
- }(P_), db = Gc(lb, {
- name: Fc(U_),
- cmt: Fc(U_),
- desc: Fc(U_),
- src: Fc(U_),
- link: kb,
- number: Fc(G_),
- extensions: jb,
- type: Fc(U_),
- rtept: function (t, e) {
- var r = Uc({}, gb, t, e);
- if (r) {
- var n = e[e.length - 1], i = n.flatCoordinates, o = n.layoutOptions;
- Fb(i, o, t, r)
- }
- }
- }), gb = Gc(lb, {ele: Fc(N_), time: Fc(j_)}), yb = Gc(lb, {
- name: Fc(U_),
- cmt: Fc(U_),
- desc: Fc(U_),
- src: Fc(U_),
- link: kb,
- number: Fc(G_),
- type: Fc(U_),
- extensions: jb,
- trkseg: function (t, e) {
- var r = e[e.length - 1];
- zc(mb, t, e);
- var n = r.flatCoordinates;
- r.ends.push(n.length)
- }
- }), mb = Gc(lb, {
- trkpt: function (t, e) {
- var r = Uc({}, vb, t, e);
- if (r) {
- var n = e[e.length - 1], i = n.flatCoordinates, o = n.layoutOptions;
- Fb(i, o, t, r)
- }
- }
- }), vb = Gc(lb, {ele: Fc(N_), time: Fc(j_)}), _b = Gc(lb, {
- ele: Fc(N_),
- time: Fc(j_),
- magvar: Fc(N_),
- geoidheight: Fc(N_),
- name: Fc(U_),
- cmt: Fc(U_),
- desc: Fc(U_),
- src: Fc(U_),
- link: kb,
- sym: Fc(U_),
- type: Fc(U_),
- fix: Fc(U_),
- sat: Fc(G_),
- hdop: Fc(N_),
- vdop: Fc(N_),
- pdop: Fc(N_),
- ageofdgpsdata: Fc(N_),
- dgpsid: Fc(G_),
- extensions: jb
- }), bb = ["text", "type"], xb = Gc(lb, {text: Ac(X_), type: Ac(X_)}),
- wb = Gc(lb, ["name", "cmt", "desc", "src", "link", "number", "type", "rtept"]), Sb = Gc(lb, {
- name: Ac(X_),
- cmt: Ac(X_),
- desc: Ac(X_),
- src: Ac(X_),
- link: Ac(zb),
- number: Ac(q_),
- type: Ac(X_),
- rtept: kc(Ac(Ub))
- }), Eb = Gc(lb, ["ele", "time"]), Tb = Gc(lb, ["name", "cmt", "desc", "src", "link", "number", "type", "trkseg"]),
- Cb = Gc(lb, {
- name: Ac(X_),
- cmt: Ac(X_),
- desc: Ac(X_),
- src: Ac(X_),
- link: Ac(zb),
- number: Ac(q_),
- type: Ac(X_),
- trkseg: kc(Ac((function (t, e, r) {
- var n = {node: t};
- n.geometryLayout = e.getLayout(), n.properties = {}, Vc(n, Pb, Ob, e.getCoordinates(), r)
- })))
- }), Ob = jc("trkpt"), Pb = Gc(lb, {trkpt: Ac(Ub)}),
- Rb = Gc(lb, ["ele", "time", "magvar", "geoidheight", "name", "cmt", "desc", "src", "link", "sym", "type", "fix", "sat", "hdop", "vdop", "pdop", "ageofdgpsdata", "dgpsid"]),
- Ib = Gc(lb, {
- ele: Ac(W_),
- time: Ac(Y_),
- magvar: Ac(W_),
- geoidheight: Ac(W_),
- name: Ac(X_),
- cmt: Ac(X_),
- desc: Ac(X_),
- src: Ac(X_),
- link: Ac(zb),
- sym: Ac(X_),
- type: Ac(X_),
- fix: Ac(X_),
- sat: Ac(q_),
- hdop: Ac(W_),
- vdop: Ac(W_),
- pdop: Ac(W_),
- ageofdgpsdata: Ac(W_),
- dgpsid: Ac(q_)
- }), Lb = {Point: "wpt", LineString: "rte", MultiLineString: "trk"};
-
- function Mb(t, e, r) {
- var n = t.getGeometry();
- if (n) {
- var i = Lb[n.getType()];
- if (i) return Sc(e[e.length - 1].node.namespaceURI, i)
- }
- }
-
- function Fb(t, e, r, n) {
- return t.push(parseFloat(r.getAttribute("lon")), parseFloat(r.getAttribute("lat"))), "ele" in n ? (t.push(n.ele), delete n.ele, e.hasZ = !0) : t.push(0), "time" in n ? (t.push(n.time), delete n.time, e.hasM = !0) : t.push(0), t
- }
-
- function Ab(t, e, r) {
- var n = yt, i = 2;
- if (t.hasZ && t.hasM ? (n = _t, i = 4) : t.hasZ ? (n = mt, i = 3) : t.hasM && (n = vt, i = 3), 4 !== i) {
- for (var o = 0, a = e.length / 4; o < a; o++) e[o * i] = e[4 * o], e[o * i + 1] = e[4 * o + 1], t.hasZ && (e[o * i + 2] = e[4 * o + 2]), t.hasM && (e[o * i + 2] = e[4 * o + 3]);
- if (e.length = e.length / 4 * i, r) for (o = 0, a = r.length; o < a; o++) r[o] = r[o] / 4 * i
- }
- return n
- }
-
- function kb(t, e) {
- var r = e[e.length - 1], n = t.getAttribute("href");
- null !== n && (r.link = n), zc(hb, t, e)
- }
-
- function jb(t, e) {
- e[e.length - 1].extensionsNode_ = t
- }
-
- function Nb(t, e) {
- var r = e[0], n = Uc({flatCoordinates: [], layoutOptions: {}}, db, t, e);
- if (n) {
- var i = n.flatCoordinates;
- delete n.flatCoordinates;
- var o = n.layoutOptions;
- delete n.layoutOptions;
- var a = Ab(o, i), s = new Py(i, a);
- Wy(s, !1, r);
- var l = new gt(s);
- return l.setProperties(n, !0), l
- }
- }
-
- function Db(t, e) {
- var r = e[0], n = Uc({flatCoordinates: [], ends: [], layoutOptions: {}}, yb, t, e);
- if (n) {
- var i = n.flatCoordinates;
- delete n.flatCoordinates;
- var o = n.ends;
- delete n.ends;
- var a = n.layoutOptions;
- delete n.layoutOptions;
- var s = Ab(a, i, o), l = new Zy(i, s, o);
- Wy(l, !1, r);
- var u = new gt(l);
- return u.setProperties(n, !0), u
- }
- }
-
- function Gb(t, e) {
- var r = e[0], n = Uc({}, _b, t, e);
- if (n) {
- var i = {}, o = Fb([], i, t, n), a = Ab(i, o), s = new qn(o, a);
- Wy(s, !1, r);
- var l = new gt(s);
- return l.setProperties(n, !0), l
- }
- }
-
- function zb(t, e, r) {
- t.setAttribute("href", e);
- var n = r[r.length - 1].properties, i = [n.linkText, n.linkType];
- Vc({node: t}, xb, Nc, i, r, bb)
- }
-
- function Ub(t, e, r) {
- var n = r[r.length - 1], i = n.node.namespaceURI, o = n.properties;
- switch (t.setAttributeNS(null, "lat", String(e[1])), t.setAttributeNS(null, "lon", String(e[0])), n.geometryLayout) {
- case _t:
- 0 !== e[3] && (o.time = e[3]);
- case mt:
- 0 !== e[2] && (o.ele = e[2]);
- break;
- case vt:
- 0 !== e[2] && (o.time = e[2])
- }
- var a = "rtept" == t.nodeName ? Eb[i] : Rb[i], s = Dc(o, a);
- Vc({node: t, properties: o}, Ib, Nc, s, r, a)
- }
-
- var Bb = fb, Vb = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }();
-
- function Yb(t) {
- return "string" == typeof t ? t : ""
- }
-
- var Wb, qb, Xb, Zb, Kb, Hb, $b, Jb = function (t) {
- function e() {
- return t.call(this) || this
- }
-
- return Vb(e, t), e.prototype.getType = function () {
- return Pu
- }, e.prototype.readFeature = function (t, e) {
- return this.readFeatureFromText(Yb(t), this.adaptOptions(e))
- }, e.prototype.readFeatureFromText = function (t, e) {
- return n()
- }, e.prototype.readFeatures = function (t, e) {
- return this.readFeaturesFromText(Yb(t), this.adaptOptions(e))
- }, e.prototype.readFeaturesFromText = function (t, e) {
- return n()
- }, e.prototype.readGeometry = function (t, e) {
- return this.readGeometryFromText(Yb(t), this.adaptOptions(e))
- }, e.prototype.readGeometryFromText = function (t, e) {
- return n()
- }, e.prototype.readProjection = function (t) {
- return this.readProjectionFromText(Yb(t))
- }, e.prototype.readProjectionFromText = function (t) {
- return this.dataProjection
- }, e.prototype.writeFeature = function (t, e) {
- return this.writeFeatureText(t, this.adaptOptions(e))
- }, e.prototype.writeFeatureText = function (t, e) {
- return n()
- }, e.prototype.writeFeatures = function (t, e) {
- return this.writeFeaturesText(t, this.adaptOptions(e))
- }, e.prototype.writeFeaturesText = function (t, e) {
- return n()
- }, e.prototype.writeGeometry = function (t, e) {
- return this.writeGeometryText(t, this.adaptOptions(e))
- }, e.prototype.writeGeometryText = function (t, e) {
- return n()
- }, e
- }(Yy), Qb = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), tx = "barometric", ex = "gps", rx = "none",
- nx = /^B(\d{2})(\d{2})(\d{2})(\d{2})(\d{5})([NS])(\d{3})(\d{5})([EW])([AV])(\d{5})(\d{5})/,
- ix = /^H.([A-Z]{3}).*?:(.*)/, ox = /^HFDTE(\d{2})(\d{2})(\d{2})/, ax = /\r\n|\r|\n/, sx = function (t) {
- function e(e) {
- var r = t.call(this) || this, n = e || {};
- return r.dataProjection = Gr("EPSG:4326"), r.altitudeMode_ = n.altitudeMode ? n.altitudeMode : rx, r
- }
-
- return Qb(e, t), e.prototype.readFeatureFromText = function (t, e) {
- var r, n, i = this.altitudeMode_, o = t.split(ax), a = {}, s = [], l = 2e3, u = 0, c = 1, h = -1;
- for (r = 0, n = o.length; r < n; ++r) {
- var p = o[r], f = void 0;
- if ("B" == p.charAt(0)) {
- if (f = nx.exec(p)) {
- var d = parseInt(f[1], 10), g = parseInt(f[2], 10), y = parseInt(f[3], 10),
- m = parseInt(f[4], 10) + parseInt(f[5], 10) / 6e4;
- "S" == f[6] && (m = -m);
- var v = parseInt(f[7], 10) + parseInt(f[8], 10) / 6e4;
- if ("W" == f[9] && (v = -v), s.push(v, m), i != rx) {
- var _ = void 0;
- _ = i == ex ? parseInt(f[11], 10) : i == tx ? parseInt(f[12], 10) : 0, s.push(_)
- }
- var b = Date.UTC(l, u, c, d, g, y);
- b < h && (b = Date.UTC(l, u, c + 1, d, g, y)), s.push(b / 1e3), h = b
- }
- } else "H" == p.charAt(0) && ((f = ox.exec(p)) ? (c = parseInt(f[1], 10), u = parseInt(f[2], 10) - 1, l = 2e3 + parseInt(f[3], 10)) : (f = ix.exec(p)) && (a[f[1]] = f[2].trim()))
- }
- if (0 === s.length) return null;
- var x = new Py(s, i == rx ? vt : _t), w = new gt(Wy(x, !1, e));
- return w.setProperties(a, !0), w
- }, e.prototype.readFeaturesFromText = function (t, e) {
- var r = this.readFeatureFromText(t, e);
- return r ? [r] : []
- }, e
- }(Jb), lx = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), ux = ["http://www.google.com/kml/ext/2.2"],
- cx = [null, "http://earth.google.com/kml/2.0", "http://earth.google.com/kml/2.1", "http://earth.google.com/kml/2.2", "http://www.opengis.net/kml/2.2"],
- hx = {fraction: rp, pixels: np, insetPixels: np}, px = Gc(cx, {
- ExtendedData: sw,
- Region: lw,
- MultiGeometry: Fc(Jx, "geometry"),
- LineString: Fc(Kx, "geometry"),
- LinearRing: Fc(Hx, "geometry"),
- Point: Fc(Qx, "geometry"),
- Polygon: Fc(ew, "geometry"),
- Style: Fc(nw),
- StyleMap: function (t, e) {
- var r = kx.call(this, t, e);
- if (!r) return;
- var n = e[e.length - 1];
- Array.isArray(r) ? n.Style = r : "string" == typeof r ? n.styleUrl = r : pt(!1, 38)
- },
- address: Fc(U_),
- description: Fc(U_),
- name: Fc(U_),
- open: Fc(A_),
- phoneNumber: Fc(U_),
- styleUrl: Fc(Mx),
- visibility: Fc(A_)
- }, Gc(ux, {
- MultiTrack: Fc((function (t, e) {
- var r = Uc([], Bx, t, e);
- if (!r) return;
- return new Zy(r)
- }), "geometry"), Track: Fc(Yx, "geometry")
- })), fx = Gc(cx, {
- ExtendedData: sw, Region: lw, Link: function (t, e) {
- zc(dx, t, e)
- }, address: Fc(U_), description: Fc(U_), name: Fc(U_), open: Fc(A_), phoneNumber: Fc(U_), visibility: Fc(A_)
- }), dx = Gc(cx, {href: Fc(Lx)}), gx = Gc(cx, {
- LatLonAltBox: function (t, e) {
- var r = Uc({}, hw, t, e);
- if (!r) return;
- var n = e[e.length - 1], i = [parseFloat(r.west), parseFloat(r.south), parseFloat(r.east), parseFloat(r.north)];
- n.extent = i, n.altitudeMode = r.altitudeMode, n.minAltitude = parseFloat(r.minAltitude), n.maxAltitude = parseFloat(r.maxAltitude)
- }, Lod: function (t, e) {
- var r = Uc({}, pw, t, e);
- if (!r) return;
- var n = e[e.length - 1];
- n.minLodPixels = parseFloat(r.minLodPixels), n.maxLodPixels = parseFloat(r.maxLodPixels), n.minFadeExtent = parseFloat(r.minFadeExtent), n.maxFadeExtent = parseFloat(r.maxFadeExtent)
- }
- }), yx = Gc(cx, ["Document", "Placemark"]), mx = Gc(cx, {
- Document: Ac((function (t, e, r) {
- Vc({node: t}, mw, vw, e, r, void 0, this)
- })), Placemark: Ac(Bw)
- }), vx = null;
- var _x, bx = null;
- var xx, wx = null;
- var Sx = null;
- var Ex = null;
- var Tx, Cx = null;
-
- function Ox(t) {
- return t
- }
-
- var Px = function (t) {
- function e(e) {
- var r = t.call(this) || this, n = e || {};
- return Cx || (vx = new ep({color: Wb = [255, 255, 255, 1]}), bx = new dp({
- anchor: qb = [20, 2],
- anchorOrigin: ip,
- anchorXUnits: Xb = np,
- anchorYUnits: Zb = np,
- crossOrigin: "anonymous",
- rotation: 0,
- scale: $b = .5,
- size: Kb = [64, 64],
- src: Hb = "https://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png"
- }), _x = "NO_IMAGE", wx = new gp({color: Wb, width: 1}), xx = new gp({
- color: [51, 51, 51, 1],
- width: 2
- }), Sx = new Tp({font: "bold 16px Helvetica", fill: vx, stroke: xx, scale: .8}), Ex = new wp({
- fill: vx,
- image: bx,
- text: Sx,
- stroke: wx,
- zIndex: 0
- }), Cx = [Ex]), r.dataProjection = Gr("EPSG:4326"), r.defaultStyle_ = n.defaultStyle ? n.defaultStyle : Cx, r.extractStyles_ = void 0 === n.extractStyles || n.extractStyles, r.writeStyles_ = void 0 === n.writeStyles || n.writeStyles, r.sharedStyles_ = {}, r.showPointNames_ = void 0 === n.showPointNames || n.showPointNames, r.crossOrigin_ = void 0 !== n.crossOrigin ? n.crossOrigin : "anonymous", r.iconUrlFunction_ = n.iconUrlFunction ? n.iconUrlFunction : Ox, r
- }
-
- return lx(e, t), e.prototype.readDocumentOrFolder_ = function (t, e) {
- var r = Uc([], Gc(cx, {
- Document: Rc(this.readDocumentOrFolder_, this),
- Folder: Rc(this.readDocumentOrFolder_, this),
- Placemark: Ic(this.readPlacemark_, this),
- Style: this.readSharedStyle_.bind(this),
- StyleMap: this.readSharedStyleMap_.bind(this)
- }), t, e, this);
- return r || void 0
- }, e.prototype.readPlacemark_ = function (t, e) {
- var r = Uc({geometry: null}, px, t, e, this);
- if (r) {
- var n = new gt, i = t.getAttribute("id");
- null !== i && n.setId(i);
- var o = e[0], a = r.geometry;
- if (a && Wy(a, !1, o), n.setGeometry(a), delete r.geometry, this.extractStyles_) {
- var s = function (t, e, r, n, i) {
- return function (o, a) {
- var s = i, l = "", u = [];
- if (s) {
- var c = o.getGeometry();
- if (c) {
- var h = c.getType();
- s = h === bt.GEOMETRY_COLLECTION ? (u = c.getGeometriesArrayRecursive().filter((function (t) {
- var e = t.getType();
- return e === bt.POINT || e === bt.MULTI_POINT
- }))).length > 0 : h === bt.POINT || h === bt.MULTI_POINT
- }
- }
- s && (l = o.get("name"), (s = s && !!l) && l.search(/&[^&]+;/) > -1 && (Tx || (Tx = document.createElement("textarea")), Tx.innerHTML = l, l = Tx.value));
- var p = r;
- if (t ? p = t : e && (p = function t(e, r, n) {
- return Array.isArray(e) ? e : "string" == typeof e ? t(n[e], r, n) : r
- }(e, r, n)), s) {
- var f = function (t, e) {
- var r = [0, 0], n = "start", i = t.getImage();
- if (i) {
- var o = i.getImageSize();
- if (null === o && (o = Kb), 2 == o.length) {
- var a = i.getScaleArray();
- r[0] = a[0] * o[0] / 2, r[1] = -a[1] * o[1] / 2, n = "left"
- }
- }
- var s = t.getText();
- s ? ((s = s.clone()).setFont(s.getFont() || Sx.getFont()), s.setScale(s.getScale() || Sx.getScale()), s.setFill(s.getFill() || Sx.getFill()), s.setStroke(s.getStroke() || xx)) : s = Sx.clone();
- return s.setText(e), s.setOffsetX(r[0]), s.setOffsetY(r[1]), s.setTextAlign(n), new wp({
- image: i,
- text: s
- })
- }(p[0], l);
- return u.length > 0 ? (f.setGeometry(new Vm(u)), [f, new wp({
- geometry: p[0].getGeometry(),
- image: null,
- fill: p[0].getFill(),
- stroke: p[0].getStroke(),
- text: null
- })].concat(p.slice(1))) : f
- }
- return p
- }
- }(r.Style, r.styleUrl, this.defaultStyle_, this.sharedStyles_, this.showPointNames_);
- n.setStyle(s)
- }
- return delete r.Style, n.setProperties(r, !0), n
- }
- }, e.prototype.readSharedStyle_ = function (t, e) {
- var r = t.getAttribute("id");
- if (null !== r) {
- var n = nw.call(this, t, e);
- if (n) {
- var i = void 0, o = t.baseURI;
- if (o && "about:blank" != o || (o = window.location.href), o) i = new URL("#" + r, o).href; else i = "#" + r;
- this.sharedStyles_[i] = n
- }
- }
- }, e.prototype.readSharedStyleMap_ = function (t, e) {
- var r = t.getAttribute("id");
- if (null !== r) {
- var n = kx.call(this, t, e);
- if (n) {
- var i, o = t.baseURI;
- if (o && "about:blank" != o || (o = window.location.href), o) i = new URL("#" + r, o).href; else i = "#" + r;
- this.sharedStyles_[i] = n
- }
- }
- }, e.prototype.readFeatureFromNode = function (t, e) {
- if (!g(cx, t.namespaceURI)) return null;
- var r = this.readPlacemark_(t, [this.getReadOptions(t, e)]);
- return r || null
- }, e.prototype.readFeaturesFromNode = function (t, e) {
- if (!g(cx, t.namespaceURI)) return [];
- var r, n = t.localName;
- if ("Document" == n || "Folder" == n) return (r = this.readDocumentOrFolder_(t, [this.getReadOptions(t, e)])) || [];
- if ("Placemark" == n) {
- var i = this.readPlacemark_(t, [this.getReadOptions(t, e)]);
- return i ? [i] : []
- }
- if ("kml" == n) {
- r = [];
- for (var o = t.firstElementChild; o; o = o.nextElementSibling) {
- var a = this.readFeaturesFromNode(o, e);
- a && v(r, a)
- }
- return r
- }
- return []
- }, e.prototype.readName = function (t) {
- if (t) {
- if ("string" == typeof t) {
- var e = Pc(t);
- return this.readNameFromDocument(e)
- }
- return Cc(t) ? this.readNameFromDocument(t) : this.readNameFromNode(t)
- }
- }, e.prototype.readNameFromDocument = function (t) {
- for (var e = t.firstChild; e; e = e.nextSibling) if (e.nodeType == Node.ELEMENT_NODE) {
- var r = this.readNameFromNode(e);
- if (r) return r
- }
- }, e.prototype.readNameFromNode = function (t) {
- for (var e = t.firstElementChild; e; e = e.nextElementSibling) if (g(cx, e.namespaceURI) && "name" == e.localName) return U_(e);
- for (e = t.firstElementChild; e; e = e.nextElementSibling) {
- var r = e.localName;
- if (g(cx, e.namespaceURI) && ("Document" == r || "Folder" == r || "Placemark" == r || "kml" == r)) {
- var n = this.readNameFromNode(e);
- if (n) return n
- }
- }
- }, e.prototype.readNetworkLinks = function (t) {
- var e = [];
- if ("string" == typeof t) {
- var r = Pc(t);
- v(e, this.readNetworkLinksFromDocument(r))
- } else Cc(t) ? v(e, this.readNetworkLinksFromDocument(t)) : v(e, this.readNetworkLinksFromNode(t));
- return e
- }, e.prototype.readNetworkLinksFromDocument = function (t) {
- for (var e = [], r = t.firstChild; r; r = r.nextSibling) r.nodeType == Node.ELEMENT_NODE && v(e, this.readNetworkLinksFromNode(r));
- return e
- }, e.prototype.readNetworkLinksFromNode = function (t) {
- for (var e = [], r = t.firstElementChild; r; r = r.nextElementSibling) if (g(cx, r.namespaceURI) && "NetworkLink" == r.localName) {
- var n = Uc({}, fx, r, []);
- e.push(n)
- }
- for (r = t.firstElementChild; r; r = r.nextElementSibling) {
- var i = r.localName;
- !g(cx, r.namespaceURI) || "Document" != i && "Folder" != i && "kml" != i || v(e, this.readNetworkLinksFromNode(r))
- }
- return e
- }, e.prototype.readRegion = function (t) {
- var e = [];
- if ("string" == typeof t) {
- var r = Pc(t);
- v(e, this.readRegionFromDocument(r))
- } else Cc(t) ? v(e, this.readRegionFromDocument(t)) : v(e, this.readRegionFromNode(t));
- return e
- }, e.prototype.readRegionFromDocument = function (t) {
- for (var e = [], r = t.firstChild; r; r = r.nextSibling) r.nodeType == Node.ELEMENT_NODE && v(e, this.readRegionFromNode(r));
- return e
- }, e.prototype.readRegionFromNode = function (t) {
- for (var e = [], r = t.firstElementChild; r; r = r.nextElementSibling) if (g(cx, r.namespaceURI) && "Region" == r.localName) {
- var n = Uc({}, gx, r, []);
- e.push(n)
- }
- for (r = t.firstElementChild; r; r = r.nextElementSibling) {
- var i = r.localName;
- !g(cx, r.namespaceURI) || "Document" != i && "Folder" != i && "kml" != i || v(e, this.readRegionFromNode(r))
- }
- return e
- }, e.prototype.writeFeaturesNode = function (t, e) {
- e = this.adaptOptions(e);
- var r = Sc(cx[4], "kml"), n = "http://www.w3.org/2000/xmlns/";
- r.setAttributeNS(n, "xmlns:gx", ux[0]), r.setAttributeNS(n, "xmlns:xsi", wc), r.setAttributeNS(wc, "xsi:schemaLocation", "http://www.opengis.net/kml/2.2 https://developers.google.com/kml/schema/kml22gx.xsd");
- var i = {node: r}, o = {};
- t.length > 1 ? o.Document = t : 1 == t.length && (o.Placemark = t[0]);
- var a = yx[r.namespaceURI], s = Dc(o, a);
- return Vc(i, mx, Nc, s, [e], a, this), r
- }, e
- }(P_);
-
- function Rx(t) {
- var e = Ec(t, !1), r = /^\s*#?\s*([0-9A-Fa-f]{8})\s*$/.exec(e);
- if (r) {
- var n = r[1];
- return [parseInt(n.substr(6, 2), 16), parseInt(n.substr(4, 2), 16), parseInt(n.substr(2, 2), 16), parseInt(n.substr(0, 2), 16) / 255]
- }
- }
-
- function Ix(t) {
- var e = Ec(t, !1), r = [];
- e = e.replace(/\s*,\s*/g, ",");
- for (var n, i = /^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?),([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s+|,|$)(?:([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s+|$))?\s*/i; n = i.exec(e);) {
- var o = parseFloat(n[1]), a = parseFloat(n[2]), s = n[3] ? parseFloat(n[3]) : 0;
- r.push(o, a, s), e = e.substr(n[0].length)
- }
- if ("" === e) return r
- }
-
- function Lx(t) {
- var e = Ec(t, !1).trim(), r = t.baseURI;
- return r && "about:blank" != r || (r = window.location.href), r ? new URL(e, r).href : e
- }
-
- function Mx(t) {
- var e = Ec(t, !1).trim().replace(/^(?!.*#)/, "#"), r = t.baseURI;
- return r && "about:blank" != r || (r = window.location.href), r ? new URL(e, r).href : e
- }
-
- function Fx(t) {
- return N_(t)
- }
-
- var Ax = Gc(cx, {
- Pair: function (t, e) {
- var r = Uc({}, uw, t, e, this);
- if (!r) return;
- var n = r.key;
- if (n && "normal" == n) {
- var i = r.styleUrl;
- i && (e[e.length - 1] = i);
- var o = r.Style;
- o && (e[e.length - 1] = o)
- }
- }
- });
-
- function kx(t, e) {
- return Uc(void 0, Ax, t, e, this)
- }
-
- var jx = Gc(cx, {
- Icon: Fc((function (t, e) {
- var r = Uc({}, Wx, t, e);
- return r || null
- })), color: Fc(Rx), heading: Fc(N_), hotSpot: Fc((function (t) {
- var e, r = t.getAttribute("xunits"), n = t.getAttribute("yunits");
- return e = "insetPixels" !== r ? "insetPixels" !== n ? ip : ap : "insetPixels" !== n ? op : sp, {
- x: parseFloat(t.getAttribute("x")),
- xunits: hx[r],
- y: parseFloat(t.getAttribute("y")),
- yunits: hx[n],
- origin: e
- }
- })), scale: Fc(Fx)
- });
- var Nx = Gc(cx, {color: Fc(Rx), scale: Fc(Fx)});
- var Dx = Gc(cx, {color: Fc(Rx), width: Fc(N_)});
- var Gx = Gc(cx, {color: Fc(Rx), fill: Fc(A_), outline: Fc(A_)});
- var zx = Gc(cx, {coordinates: Lc(Ix)});
-
- function Ux(t, e) {
- return Uc(null, zx, t, e)
- }
-
- var Bx = Gc(ux, {Track: Ic(Yx)});
- var Vx = Gc(cx, {
- when: function (t, e) {
- var r = e[e.length - 1].whens, n = Ec(t, !1), i = Date.parse(n);
- r.push(isNaN(i) ? 0 : i)
- }
- }, Gc(ux, {
- coord: function (t, e) {
- var r = e[e.length - 1].flatCoordinates, n = Ec(t, !1),
- i = /^\s*([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s*$/i.exec(n);
- if (i) {
- var o = parseFloat(i[1]), a = parseFloat(i[2]), s = parseFloat(i[3]);
- r.push(o, a, s, 0)
- } else r.push(0, 0, 0, 0)
- }
- }));
-
- function Yx(t, e) {
- var r = Uc({flatCoordinates: [], whens: []}, Vx, t, e);
- if (r) {
- for (var n = r.flatCoordinates, i = r.whens, o = 0, a = Math.min(n.length, i.length); o < a; ++o) n[4 * o + 3] = i[o];
- return new Py(n, _t)
- }
- }
-
- var Wx = Gc(cx, {href: Fc(Lx)}, Gc(ux, {x: Fc(N_), y: Fc(N_), w: Fc(N_), h: Fc(N_)}));
- var qx = Gc(cx, {coordinates: Lc(Ix)});
-
- function Xx(t, e) {
- return Uc(null, qx, t, e)
- }
-
- var Zx = Gc(cx, {extrude: Fc(A_), tessellate: Fc(A_), altitudeMode: Fc(U_)});
-
- function Kx(t, e) {
- var r = Uc({}, Zx, t, e), n = Xx(t, e);
- if (n) {
- var i = new Py(n, mt);
- return i.setProperties(r, !0), i
- }
- }
-
- function Hx(t, e) {
- var r = Uc({}, Zx, t, e), n = Xx(t, e);
- if (n) {
- var i = new fi(n, mt, [n.length]);
- return i.setProperties(r, !0), i
- }
- }
-
- var $x = Gc(cx, {LineString: Ic(Kx), LinearRing: Ic(Hx), MultiGeometry: Ic(Jx), Point: Ic(Qx), Polygon: Ic(ew)});
-
- function Jx(t, e) {
- var r, n = Uc([], $x, t, e);
- if (!n) return null;
- if (0 === n.length) return new Vm(n);
- for (var i = !0, o = n[0].getType(), a = 1, s = n.length; a < s; ++a) if (n[a].getType() != o) {
- i = !1;
- break
- }
- if (i) {
- var l = void 0, u = void 0;
- if (o == bt.POINT) {
- var c = n[0];
- l = c.getLayout(), u = c.getFlatCoordinates();
- for (a = 1, s = n.length; a < s; ++a) v(u, n[a].getFlatCoordinates());
- iw(r = new Hy(u, l), n)
- } else o == bt.LINE_STRING ? iw(r = new Zy(n), n) : o == bt.POLYGON ? iw(r = new Jy(n), n) : o == bt.GEOMETRY_COLLECTION ? r = new Vm(n) : pt(!1, 37)
- } else r = new Vm(n);
- return r
- }
-
- function Qx(t, e) {
- var r = Uc({}, Zx, t, e), n = Xx(t, e);
- if (n) {
- var i = new qn(n, mt);
- return i.setProperties(r, !0), i
- }
- }
-
- var tw = Gc(cx, {
- innerBoundaryIs: function (t, e) {
- var r = Uc(void 0, fw, t, e);
- if (r) {
- e[e.length - 1].push(r)
- }
- }, outerBoundaryIs: function (t, e) {
- var r = Uc(void 0, dw, t, e);
- if (r) {
- e[e.length - 1][0] = r
- }
- }
- });
-
- function ew(t, e) {
- var r = Uc({}, Zx, t, e), n = Uc([null], tw, t, e);
- if (n && n[0]) {
- for (var i = n[0], o = [i.length], a = 1, s = n.length; a < s; ++a) v(i, n[a]), o.push(i.length);
- var l = new fi(i, mt, o);
- return l.setProperties(r, !0), l
- }
- }
-
- var rw = Gc(cx, {
- IconStyle: function (t, e) {
- var r = Uc({}, jx, t, e);
- if (r) {
- var n, i, o, a, s = e[e.length - 1], l = "Icon" in r ? r.Icon : {},
- u = !("Icon" in r) || Object.keys(l).length > 0, c = l.href;
- c ? n = c : u && (n = Hb);
- var h, p = ip, f = r.hotSpot;
- f ? (i = [f.x, f.y], o = f.xunits, a = f.yunits, p = f.origin) : n === Hb ? (i = qb, o = Xb, a = Zb) : /^http:\/\/maps\.(?:google|gstatic)\.com\//.test(n) && (i = [.5, 0], o = rp, a = rp);
- var d, g = l.x, y = l.y;
- void 0 !== g && void 0 !== y && (h = [g, y]);
- var m, v = l.w, _ = l.h;
- void 0 !== v && void 0 !== _ && (d = [v, _]);
- var b = r.heading;
- void 0 !== b && (m = Ye(b));
- var x = r.scale, w = r.color;
- if (u) {
- n == Hb && (d = Kb, void 0 === x && (x = $b));
- var S = new dp({
- anchor: i,
- anchorOrigin: p,
- anchorXUnits: o,
- anchorYUnits: a,
- crossOrigin: this.crossOrigin_,
- offset: h,
- offsetOrigin: ip,
- rotation: m,
- scale: x,
- size: d,
- src: this.iconUrlFunction_(n),
- color: w
- });
- s.imageStyle = S
- } else s.imageStyle = _x
- }
- }, LabelStyle: function (t, e) {
- var r = Uc({}, Nx, t, e);
- if (r) {
- var n = e[e.length - 1], i = new Tp({fill: new ep({color: "color" in r ? r.color : Wb}), scale: r.scale});
- n.textStyle = i
- }
- }, LineStyle: function (t, e) {
- var r = Uc({}, Dx, t, e);
- if (r) {
- var n = e[e.length - 1], i = new gp({color: "color" in r ? r.color : Wb, width: "width" in r ? r.width : 1});
- n.strokeStyle = i
- }
- }, PolyStyle: function (t, e) {
- var r = Uc({}, Gx, t, e);
- if (r) {
- var n = e[e.length - 1], i = new ep({color: "color" in r ? r.color : Wb});
- n.fillStyle = i;
- var o = r.fill;
- void 0 !== o && (n.fill = o);
- var a = r.outline;
- void 0 !== a && (n.outline = a)
- }
- }
- });
-
- function nw(t, e) {
- var r = Uc({}, rw, t, e, this);
- if (!r) return null;
- var n, i = "fillStyle" in r ? r.fillStyle : vx, o = r.fill;
- void 0 === o || o || (i = null), "imageStyle" in r ? r.imageStyle != _x && (n = r.imageStyle) : n = bx;
- var a = "textStyle" in r ? r.textStyle : Sx, s = "strokeStyle" in r ? r.strokeStyle : wx, l = r.outline;
- return void 0 === l || l ? [new wp({
- fill: i,
- image: n,
- stroke: s,
- text: a,
- zIndex: void 0
- })] : [new wp({
- geometry: function (t) {
- var e = t.getGeometry(), r = e.getType();
- return r === bt.GEOMETRY_COLLECTION ? new Vm(e.getGeometriesArrayRecursive().filter((function (t) {
- var e = t.getType();
- return e !== bt.POLYGON && e !== bt.MULTI_POLYGON
- }))) : r !== bt.POLYGON && r !== bt.MULTI_POLYGON ? e : void 0
- }, fill: i, image: n, stroke: s, text: a, zIndex: void 0
- }), new wp({
- geometry: function (t) {
- var e = t.getGeometry(), r = e.getType();
- return r === bt.GEOMETRY_COLLECTION ? new Vm(e.getGeometriesArrayRecursive().filter((function (t) {
- var e = t.getType();
- return e === bt.POLYGON || e === bt.MULTI_POLYGON
- }))) : r === bt.POLYGON || r === bt.MULTI_POLYGON ? e : void 0
- }, fill: i, stroke: null, zIndex: void 0
- })]
- }
-
- function iw(t, e) {
- var r, n, i, o = e.length, a = new Array(e.length), s = new Array(e.length), l = new Array(e.length);
- r = !1, n = !1, i = !1;
- for (var u = 0; u < o; ++u) {
- var c = e[u];
- a[u] = c.get("extrude"), s[u] = c.get("tessellate"), l[u] = c.get("altitudeMode"), r = r || void 0 !== a[u], n = n || void 0 !== s[u], i = i || l[u]
- }
- r && t.set("extrude", a), n && t.set("tessellate", s), i && t.set("altitudeMode", l)
- }
-
- var ow = Gc(cx, {displayName: Fc(U_), value: Fc(U_)});
- var aw = Gc(cx, {
- Data: function (t, e) {
- var r = t.getAttribute("name");
- zc(ow, t, e);
- var n = e[e.length - 1];
- r && n.displayName ? n[r] = {
- value: n.value, displayName: n.displayName, toString: function () {
- return n.value
- }
- } : null !== r ? n[r] = n.value : null !== n.displayName && (n[n.displayName] = n.value), delete n.value
- }, SchemaData: function (t, e) {
- zc(cw, t, e)
- }
- });
-
- function sw(t, e) {
- zc(aw, t, e)
- }
-
- function lw(t, e) {
- zc(gx, t, e)
- }
-
- var uw = Gc(cx, {Style: Fc(nw), key: Fc(U_), styleUrl: Fc(Mx)});
- var cw = Gc(cx, {
- SimpleData: function (t, e) {
- var r = t.getAttribute("name");
- if (null !== r) {
- var n = U_(t);
- e[e.length - 1][r] = n
- }
- }
- });
- var hw = Gc(cx, {
- altitudeMode: Fc(U_),
- minAltitude: Fc(N_),
- maxAltitude: Fc(N_),
- north: Fc(N_),
- south: Fc(N_),
- east: Fc(N_),
- west: Fc(N_)
- });
- var pw = Gc(cx, {minLodPixels: Fc(N_), maxLodPixels: Fc(N_), minFadeExtent: Fc(N_), maxFadeExtent: Fc(N_)});
- var fw = Gc(cx, {LinearRing: Lc(Ux)});
- var dw = Gc(cx, {LinearRing: Lc(Ux)});
-
- function gw(t, e) {
- for (var r = Oo(e), n = [255 * (4 == r.length ? r[3] : 1), r[2], r[1], r[0]], i = 0; i < 4; ++i) {
- var o = Math.floor(n[i]).toString(16);
- n[i] = 1 == o.length ? "0" + o : o
- }
- X_(t, n.join(""))
- }
-
- var yw = Gc(cx, {
- Data: Ac((function (t, e, r) {
- t.setAttribute("name", e.name);
- var n = {node: t}, i = e.value;
- "object" == typeof i ? (null !== i && i.displayName && Vc(n, yw, Nc, [i.displayName], r, ["displayName"]), null !== i && i.value && Vc(n, yw, Nc, [i.value], r, ["value"])) : Vc(n, yw, Nc, [i], r, ["value"])
- })), value: Ac((function (t, e) {
- X_(t, e)
- })), displayName: Ac((function (t, e) {
- V_(t, e)
- }))
- });
- var mw = Gc(cx, {Placemark: Ac(Bw)}), vw = function (t, e, r) {
- return Sc(e[e.length - 1].node.namespaceURI, "Placemark")
- };
- var _w = jc("Data");
- var bw = Gc(cx, ["href"], Gc(ux, ["x", "y", "w", "h"])),
- xw = Gc(cx, {href: Ac(X_)}, Gc(ux, {x: Ac(W_), y: Ac(W_), w: Ac(W_), h: Ac(W_)})), ww = function (t, e, r) {
- return Sc(ux[0], "gx:" + r)
- };
- var Sw = Gc(cx, ["scale", "heading", "Icon", "color", "hotSpot"]), Ew = Gc(cx, {
- Icon: Ac((function (t, e, r) {
- var n = {node: t}, i = r[r.length - 1].node, o = bw[i.namespaceURI], a = Dc(e, o);
- Vc(n, xw, Nc, a, r, o), a = Dc(e, o = bw[ux[0]]), Vc(n, xw, ww, a, r, o)
- })), color: Ac(gw), heading: Ac(W_), hotSpot: Ac((function (t, e) {
- t.setAttribute("x", String(e.x)), t.setAttribute("y", String(e.y)), t.setAttribute("xunits", e.xunits), t.setAttribute("yunits", e.yunits)
- })), scale: Ac(Jw)
- });
- var Tw = Gc(cx, ["color", "scale"]), Cw = Gc(cx, {color: Ac(gw), scale: Ac(Jw)});
- var Ow = Gc(cx, ["color", "width"]), Pw = Gc(cx, {color: Ac(gw), width: Ac(W_)});
- var Rw = {
- Point: "Point",
- LineString: "LineString",
- LinearRing: "LinearRing",
- Polygon: "Polygon",
- MultiPoint: "MultiGeometry",
- MultiLineString: "MultiGeometry",
- MultiPolygon: "MultiGeometry",
- GeometryCollection: "MultiGeometry"
- }, Iw = function (t, e, r) {
- if (t) return Sc(e[e.length - 1].node.namespaceURI, Rw[t.getType()])
- }, Lw = jc("Point"), Mw = jc("LineString"), Fw = jc("LinearRing"), Aw = jc("Polygon"),
- kw = Gc(cx, {LineString: Ac(Ww), Point: Ac(Ww), Polygon: Ac(Hw), GeometryCollection: Ac(jw)});
-
- function jw(t, e, r) {
- var n, i = {node: t}, o = e.getType(), a = [];
- o === bt.GEOMETRY_COLLECTION ? (e.getGeometriesArrayRecursive().forEach((function (t) {
- var e = t.getType();
- e === bt.MULTI_POINT ? a = a.concat(t.getPoints()) : e === bt.MULTI_LINE_STRING ? a = a.concat(t.getLineStrings()) : e === bt.MULTI_POLYGON ? a = a.concat(t.getPolygons()) : e === bt.POINT || e === bt.LINE_STRING || e === bt.POLYGON ? a.push(t) : pt(!1, 39)
- })), n = Iw) : o === bt.MULTI_POINT ? (a = e.getPoints(), n = Lw) : o === bt.MULTI_LINE_STRING ? (a = e.getLineStrings(), n = Mw) : o === bt.MULTI_POLYGON ? (a = e.getPolygons(), n = Aw) : pt(!1, 39), Vc(i, kw, n, a, r)
- }
-
- var Nw = Gc(cx, {LinearRing: Ac(Ww)});
-
- function Dw(t, e, r) {
- Vc({node: t}, Nw, Fw, [e], r)
- }
-
- var Gw = Gc(cx, {
- ExtendedData: Ac((function (t, e, r) {
- for (var n = {node: t}, i = e.names, o = e.values, a = i.length, s = 0; s < a; s++) Vc(n, yw, _w, [{
- name: i[s],
- value: o[s]
- }], r)
- })),
- MultiGeometry: Ac(jw),
- LineString: Ac(Ww),
- LinearRing: Ac(Ww),
- Point: Ac(Ww),
- Polygon: Ac(Hw),
- Style: Ac((function (t, e, r) {
- var n = {node: t}, i = {};
- if (e.pointStyles.length) {
- var o = e.pointStyles[0].getText();
- o && (i.LabelStyle = o);
- var a = e.pointStyles[0].getImage();
- a && "function" == typeof a.getSrc && (i.IconStyle = a)
- }
- if (e.lineStyles.length) {
- (s = e.lineStyles[0].getStroke()) && (i.LineStyle = s)
- }
- if (e.polyStyles.length) {
- var s;
- (s = e.polyStyles[0].getStroke()) && !i.LineStyle && (i.LineStyle = s), i.PolyStyle = e.polyStyles[0]
- }
- var l = r[r.length - 1].node, u = Qw[l.namespaceURI], c = Dc(i, u);
- Vc(n, tS, Nc, c, r, u)
- })),
- address: Ac(X_),
- description: Ac(X_),
- name: Ac(X_),
- open: Ac(B_),
- phoneNumber: Ac(X_),
- styleUrl: Ac(X_),
- visibility: Ac(B_)
- }), zw = Gc(cx, ["name", "open", "visibility", "address", "phoneNumber", "description", "styleUrl", "Style"]),
- Uw = jc("ExtendedData");
-
- function Bw(t, e, r) {
- var n = {node: t};
- e.getId() && t.setAttribute("id", e.getId());
- var i = e.getProperties(),
- o = {address: 1, description: 1, name: 1, open: 1, phoneNumber: 1, styleUrl: 1, visibility: 1};
- o[e.getGeometryName()] = 1;
- var a = Object.keys(i || {}).sort().filter((function (t) {
- return !o[t]
- })), s = e.getStyleFunction();
- if (s) {
- var l = s(e, 0);
- if (l) {
- var u = Array.isArray(l) ? l : [l], c = u;
- if (e.getGeometry() && (c = u.filter((function (t) {
- var r = t.getGeometryFunction()(e);
- if (r) {
- var n = r.getType();
- return n === bt.GEOMETRY_COLLECTION ? r.getGeometriesArrayRecursive().filter((function (t) {
- var e = t.getType();
- return e === bt.POINT || e === bt.MULTI_POINT
- })).length : n === bt.POINT || n === bt.MULTI_POINT
- }
- }))), this.writeStyles_) {
- var h = u, p = u;
- e.getGeometry() && (h = u.filter((function (t) {
- var r = t.getGeometryFunction()(e);
- if (r) {
- var n = r.getType();
- return n === bt.GEOMETRY_COLLECTION ? r.getGeometriesArrayRecursive().filter((function (t) {
- var e = t.getType();
- return e === bt.LINE_STRING || e === bt.MULTI_LINE_STRING
- })).length : n === bt.LINE_STRING || n === bt.MULTI_LINE_STRING
- }
- })), p = u.filter((function (t) {
- var r = t.getGeometryFunction()(e);
- if (r) {
- var n = r.getType();
- return n === bt.GEOMETRY_COLLECTION ? r.getGeometriesArrayRecursive().filter((function (t) {
- var e = t.getType();
- return e === bt.POLYGON || e === bt.MULTI_POLYGON
- })).length : n === bt.POLYGON || n === bt.MULTI_POLYGON
- }
- }))), i.Style = {pointStyles: c, lineStyles: h, polyStyles: p}
- }
- if (c.length && void 0 === i.name) {
- var f = c[0].getText();
- f && (i.name = f.getText())
- }
- }
- }
- var d = r[r.length - 1].node, g = zw[d.namespaceURI], y = Dc(i, g);
- if (Vc(n, Gw, Nc, y, r, g), a.length > 0) {
- var m = Dc(i, a);
- Vc(n, Gw, Uw, [{names: a, values: m}], r)
- }
- var v = r[0], _ = e.getGeometry();
- _ && (_ = Wy(_, !0, v)), Vc(n, Gw, Iw, [_], r)
- }
-
- var Vw = Gc(cx, ["extrude", "tessellate", "altitudeMode", "coordinates"]), Yw = Gc(cx, {
- extrude: Ac(B_), tessellate: Ac(B_), altitudeMode: Ac(X_), coordinates: Ac((function (t, e, r) {
- var n, i = r[r.length - 1], o = i.layout, a = i.stride;
- o == yt || o == vt ? n = 2 : o == mt || o == _t ? n = 3 : pt(!1, 34);
- var s = e.length, l = "";
- if (s > 0) {
- l += e[0];
- for (var u = 1; u < n; ++u) l += "," + e[u];
- for (var c = a; c < s; c += a) {
- l += " " + e[c];
- for (u = 1; u < n; ++u) l += "," + e[c + u]
- }
- }
- X_(t, l)
- }))
- });
-
- function Ww(t, e, r) {
- var n = e.getFlatCoordinates(), i = {node: t};
- i.layout = e.getLayout(), i.stride = e.getStride();
- var o = e.getProperties();
- o.coordinates = n;
- var a = r[r.length - 1].node, s = Vw[a.namespaceURI], l = Dc(o, s);
- Vc(i, Yw, Nc, l, r, s)
- }
-
- var qw = Gc(cx, ["color", "fill", "outline"]), Xw = Gc(cx, {outerBoundaryIs: Ac(Dw), innerBoundaryIs: Ac(Dw)}),
- Zw = jc("innerBoundaryIs"), Kw = jc("outerBoundaryIs");
-
- function Hw(t, e, r) {
- var n = e.getLinearRings(), i = n.shift(), o = {node: t};
- Vc(o, Xw, Zw, n, r), Vc(o, Xw, Kw, [i], r)
- }
-
- var $w = Gc(cx, {color: Ac(gw), fill: Ac(B_), outline: Ac(B_)});
-
- function Jw(t, e) {
- W_(t, Math.round(1e6 * e) / 1e6)
- }
-
- var Qw = Gc(cx, ["IconStyle", "LabelStyle", "LineStyle", "PolyStyle"]), tS = Gc(cx, {
- IconStyle: Ac((function (t, e, r) {
- var n = {node: t}, i = {}, o = e.getSrc(), a = e.getSize(), s = e.getImageSize(), l = {href: o};
- if (a) {
- l.w = a[0], l.h = a[1];
- var u = e.getAnchor(), c = e.getOrigin();
- if (c && s && 0 !== c[0] && c[1] !== a[1] && (l.x = c[0], l.y = s[1] - (c[1] + a[1])), u && (u[0] !== a[0] / 2 || u[1] !== a[1] / 2)) {
- var h = {x: u[0], xunits: np, y: a[1] - u[1], yunits: np};
- i.hotSpot = h
- }
- }
- i.Icon = l;
- var p = e.getScale();
- 1 !== p && (i.scale = p);
- var f = e.getRotation();
- 0 !== f && (i.heading = f);
- var d = e.getColor();
- d && (i.color = d);
- var g = r[r.length - 1].node, y = Sw[g.namespaceURI], m = Dc(i, y);
- Vc(n, Ew, Nc, m, r, y)
- })), LabelStyle: Ac((function (t, e, r) {
- var n = {node: t}, i = {}, o = e.getFill();
- o && (i.color = o.getColor());
- var a = e.getScale();
- a && 1 !== a && (i.scale = a);
- var s = r[r.length - 1].node, l = Tw[s.namespaceURI], u = Dc(i, l);
- Vc(n, Cw, Nc, u, r, l)
- })), LineStyle: Ac((function (t, e, r) {
- var n = {node: t}, i = {color: e.getColor(), width: Number(e.getWidth()) || 1}, o = r[r.length - 1].node,
- a = Ow[o.namespaceURI], s = Dc(i, a);
- Vc(n, Pw, Nc, s, r, a)
- })), PolyStyle: Ac((function (t, e, r) {
- var n = {node: t}, i = e.getFill(), o = e.getStroke(),
- a = {color: i ? i.getColor() : void 0, fill: !!i && void 0, outline: !!o && void 0}, s = r[r.length - 1].node,
- l = qw[s.namespaceURI], u = Dc(a, l);
- Vc(n, $w, Nc, u, r, l)
- }))
- });
- var eS = Px, rS = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), nS = [null], iS = Gc(nS, {
- nd: function (t, e) {
- e[e.length - 1].ndrefs.push(t.getAttribute("ref"))
- }, tag: lS
- }), oS = Gc(nS, {
- node: function (t, e) {
- var r = e[0], n = e[e.length - 1], i = t.getAttribute("id"),
- o = [parseFloat(t.getAttribute("lon")), parseFloat(t.getAttribute("lat"))];
- n.nodes[i] = o;
- var a = Uc({tags: {}}, sS, t, e);
- if (!I(a.tags)) {
- var s = new qn(o);
- Wy(s, !1, r);
- var l = new gt(s);
- l.setId(i), l.setProperties(a.tags, !0), n.features.push(l)
- }
- }, way: function (t, e) {
- var r = Uc({id: t.getAttribute("id"), ndrefs: [], tags: {}}, iS, t, e);
- e[e.length - 1].ways.push(r)
- }
- }), aS = function (t) {
- function e() {
- var e = t.call(this) || this;
- return e.dataProjection = Gr("EPSG:4326"), e
- }
-
- return rS(e, t), e.prototype.readFeaturesFromNode = function (t, e) {
- var r = this.getReadOptions(t, e);
- if ("osm" == t.localName) {
- for (var n = Uc({nodes: {}, ways: [], features: []}, oS, t, [r]), i = 0; i < n.ways.length; i++) {
- for (var o = n.ways[i], a = [], s = 0, l = o.ndrefs.length; s < l; s++) {
- v(a, n.nodes[o.ndrefs[s]])
- }
- var u = void 0;
- Wy(u = o.ndrefs[0] == o.ndrefs[o.ndrefs.length - 1] ? new fi(a, yt, [a.length]) : new Py(a, yt), !1, r);
- var c = new gt(u);
- c.setId(o.id), c.setProperties(o.tags, !0), n.features.push(c)
- }
- if (n.features) return n.features
- }
- return []
- }, e
- }(P_), sS = Gc(nS, {tag: lS});
-
- function lS(t, e) {
- e[e.length - 1].tags[t.getAttribute("k")] = t.getAttribute("v")
- }
-
- var uS = aS, cS = function () {
- function t() {
- }
-
- return t.prototype.read = function (t) {
- if (t) {
- if ("string" == typeof t) {
- var e = Pc(t);
- return this.readFromDocument(e)
- }
- return Cc(t) ? this.readFromDocument(t) : this.readFromNode(t)
- }
- return null
- }, t.prototype.readFromDocument = function (t) {
- for (var e = t.firstChild; e; e = e.nextSibling) if (e.nodeType == Node.ELEMENT_NODE) return this.readFromNode(e);
- return null
- }, t.prototype.readFromNode = function (t) {
- }, t
- }();
-
- function hS(t) {
- return t.getAttributeNS("http://www.w3.org/1999/xlink", "href")
- }
-
- var pS = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), fS = [null, "http://www.opengis.net/ows/1.1"], dS = Gc(fS, {
- ServiceIdentification: Fc((function (t, e) {
- return Uc({}, OS, t, e)
- })), ServiceProvider: Fc((function (t, e) {
- return Uc({}, PS, t, e)
- })), OperationsMetadata: Fc((function (t, e) {
- return Uc({}, SS, t, e)
- }))
- }), gS = function (t) {
- function e() {
- return t.call(this) || this
- }
-
- return pS(e, t), e.prototype.readFromNode = function (t) {
- var e = Uc({}, dS, t, []);
- return e || null
- }, e
- }(cS), yS = Gc(fS, {
- DeliveryPoint: Fc(U_),
- City: Fc(U_),
- AdministrativeArea: Fc(U_),
- PostalCode: Fc(U_),
- Country: Fc(U_),
- ElectronicMailAddress: Fc(U_)
- }), mS = Gc(fS, {
- Value: Mc((function (t, e) {
- return U_(t)
- }))
- }), vS = Gc(fS, {
- AllowedValues: Fc((function (t, e) {
- return Uc({}, mS, t, e)
- }))
- }), _S = Gc(fS, {
- Phone: Fc((function (t, e) {
- return Uc({}, ES, t, e)
- })), Address: Fc((function (t, e) {
- return Uc({}, yS, t, e)
- }))
- }), bS = Gc(fS, {
- HTTP: Fc((function (t, e) {
- return Uc({}, xS, t, e)
- }))
- }), xS = Gc(fS, {
- Get: Mc((function (t, e) {
- var r = hS(t);
- if (!r) return;
- return Uc({href: r}, TS, t, e)
- })), Post: void 0
- }), wS = Gc(fS, {
- DCP: Fc((function (t, e) {
- return Uc({}, bS, t, e)
- }))
- }), SS = Gc(fS, {
- Operation: function (t, e) {
- var r = t.getAttribute("name"), n = Uc({}, wS, t, e);
- if (!n) return;
- e[e.length - 1][r] = n
- }
- }), ES = Gc(fS, {Voice: Fc(U_), Facsimile: Fc(U_)}), TS = Gc(fS, {
- Constraint: Mc((function (t, e) {
- var r = t.getAttribute("name");
- if (!r) return;
- return Uc({name: r}, vS, t, e)
- }))
- }), CS = Gc(fS, {
- IndividualName: Fc(U_), PositionName: Fc(U_), ContactInfo: Fc((function (t, e) {
- return Uc({}, _S, t, e)
- }))
- }), OS = Gc(fS, {
- Abstract: Fc(U_),
- AccessConstraints: Fc(U_),
- Fees: Fc(U_),
- Title: Fc(U_),
- ServiceTypeVersion: Fc(U_),
- ServiceType: Fc(U_)
- }), PS = Gc(fS, {
- ProviderName: Fc(U_), ProviderSite: Fc(hS), ServiceContact: Fc((function (t, e) {
- return Uc({}, CS, t, e)
- }))
- });
- var RS = gS, IS = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }();
-
- function LS(t, e, r) {
- var n, i = r || 1e5, o = new Array(e);
- for (n = 0; n < e; ++n) o[n] = 0;
- for (var a = 0, s = t.length; a < s;) for (n = 0; n < e; ++n, ++a) {
- var l = t[a], u = l - o[n];
- o[n] = l, t[a] = u
- }
- return FS(t, i)
- }
-
- function MS(t, e, r) {
- var n, i = r || 1e5, o = new Array(e);
- for (n = 0; n < e; ++n) o[n] = 0;
- for (var a = AS(t, i), s = 0, l = a.length; s < l;) for (n = 0; n < e; ++n, ++s) o[n] += a[s], a[s] = o[n];
- return a
- }
-
- function FS(t, e) {
- for (var r = e || 1e5, n = 0, i = t.length; n < i; ++n) t[n] = Math.round(t[n] * r);
- return kS(t)
- }
-
- function AS(t, e) {
- for (var r = e || 1e5, n = jS(t), i = 0, o = n.length; i < o; ++i) n[i] /= r;
- return n
- }
-
- function kS(t) {
- for (var e = 0, r = t.length; e < r; ++e) {
- var n = t[e];
- t[e] = n < 0 ? ~(n << 1) : n << 1
- }
- return NS(t)
- }
-
- function jS(t) {
- for (var e = DS(t), r = 0, n = e.length; r < n; ++r) {
- var i = e[r];
- e[r] = 1 & i ? ~(i >> 1) : i >> 1
- }
- return e
- }
-
- function NS(t) {
- for (var e = "", r = 0, n = t.length; r < n; ++r) e += GS(t[r]);
- return e
- }
-
- function DS(t) {
- for (var e = [], r = 0, n = 0, i = 0, o = t.length; i < o; ++i) {
- var a = t.charCodeAt(i) - 63;
- r |= (31 & a) << n, a < 32 ? (e.push(r), r = 0, n = 0) : n += 5
- }
- return e
- }
-
- function GS(t) {
- for (var e, r = ""; t >= 32;) e = 63 + (32 | 31 & t), r += String.fromCharCode(e), t >>= 5;
- return e = t + 63, r += String.fromCharCode(e)
- }
-
- var zS = function (t) {
- function e(e) {
- var r = t.call(this) || this, n = e || {};
- return r.dataProjection = Gr("EPSG:4326"), r.factor_ = n.factor ? n.factor : 1e5, r.geometryLayout_ = n.geometryLayout ? n.geometryLayout : yt, r
- }
-
- return IS(e, t), e.prototype.readFeatureFromText = function (t, e) {
- var r = this.readGeometryFromText(t, e);
- return new gt(r)
- }, e.prototype.readFeaturesFromText = function (t, e) {
- return [this.readFeatureFromText(t, e)]
- }, e.prototype.readGeometryFromText = function (t, e) {
- var r = yn(this.geometryLayout_), n = MS(t, r, this.factor_);
- v_(n, 0, n.length, r, n);
- var i = Nn(n, 0, n.length, r);
- return Wy(new Py(i, this.geometryLayout_), !1, this.adaptOptions(e))
- }, e.prototype.writeFeatureText = function (t, e) {
- var r = t.getGeometry();
- return r ? this.writeGeometryText(r, e) : (pt(!1, 40), "")
- }, e.prototype.writeFeaturesText = function (t, e) {
- return this.writeFeatureText(t[0], e)
- }, e.prototype.writeGeometryText = function (t, e) {
- var r = (t = Wy(t, !0, this.adaptOptions(e))).getFlatCoordinates(), n = t.getStride();
- return v_(r, 0, r.length, n, r), LS(r, n, this.factor_)
- }, e
- }(Jb), US = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), BS = function (t) {
- function e(e) {
- var r = t.call(this) || this, n = e || {};
- return r.layerName_ = n.layerName, r.layers_ = n.layers ? n.layers : null, r.dataProjection = Gr(n.dataProjection ? n.dataProjection : "EPSG:4326"), r
- }
-
- return US(e, t), e.prototype.readFeaturesFromObject = function (t, e) {
- if ("Topology" == t.type) {
- var r = t, n = void 0, i = null, o = null;
- r.transform && (i = (n = r.transform).scale, o = n.translate);
- var a = r.arcs;
- n && function (t, e, r) {
- for (var n = 0, i = t.length; n < i; ++n) XS(t[n], e, r)
- }(a, i, o);
- var s = [], l = r.objects, u = this.layerName_, c = void 0;
- for (var h in l) this.layers_ && -1 == this.layers_.indexOf(h) || ("GeometryCollection" === l[h].type ? (c = l[h], s.push.apply(s, WS(c, a, i, o, u, h, e))) : (c = l[h], s.push(qS(c, a, i, o, u, h, e))));
- return s
- }
- return []
- }, e.prototype.readProjectionFromObject = function (t) {
- return this.dataProjection
- }, e
- }(qm), VS = {
- Point: function (t, e, r) {
- var n = t.coordinates;
- e && r && ZS(n, e, r);
- return new qn(n)
- }, LineString: function (t, e) {
- var r = YS(t.arcs, e);
- return new Py(r)
- }, Polygon: function (t, e) {
- for (var r = [], n = 0, i = t.arcs.length; n < i; ++n) r[n] = YS(t.arcs[n], e);
- return new fi(r)
- }, MultiPoint: function (t, e, r) {
- var n = t.coordinates;
- if (e && r) for (var i = 0, o = n.length; i < o; ++i) ZS(n[i], e, r);
- return new Hy(n)
- }, MultiLineString: function (t, e) {
- for (var r = [], n = 0, i = t.arcs.length; n < i; ++n) r[n] = YS(t.arcs[n], e);
- return new Zy(r)
- }, MultiPolygon: function (t, e) {
- for (var r = [], n = 0, i = t.arcs.length; n < i; ++n) {
- for (var o = t.arcs[n], a = [], s = 0, l = o.length; s < l; ++s) a[s] = YS(o[s], e);
- r[n] = a
- }
- return new Jy(r)
- }
- };
-
- function YS(t, e) {
- for (var r, n, i = [], o = 0, a = t.length; o < a; ++o) r = t[o], o > 0 && i.pop(), n = r >= 0 ? e[r] : e[~r].slice().reverse(), i.push.apply(i, n);
- for (var s = 0, l = i.length; s < l; ++s) i[s] = i[s].slice();
- return i
- }
-
- function WS(t, e, r, n, i, o, a) {
- for (var s = t.geometries, l = [], u = 0, c = s.length; u < c; ++u) l[u] = qS(s[u], e, r, n, i, o, a);
- return l
- }
-
- function qS(t, e, r, n, i, o, a) {
- var s, l = t.type, u = VS[l];
- s = "Point" === l || "MultiPoint" === l ? u(t, r, n) : u(t, e);
- var c = new gt;
- c.setGeometry(Wy(s, !1, a)), void 0 !== t.id && c.setId(t.id);
- var h = t.properties;
- return i && (h || (h = {}), h[i] = o), h && c.setProperties(h, !0), c
- }
-
- function XS(t, e, r) {
- for (var n = 0, i = 0, o = 0, a = t.length; o < a; ++o) {
- var s = t[o];
- n += s[0], i += s[1], s[0] = n, s[1] = i, ZS(s, e, r)
- }
- }
-
- function ZS(t, e, r) {
- t[0] = t[0] * e[0] + r[0], t[1] = t[1] * e[1] + r[1]
- }
-
- var KS = BS, HS = function () {
- function t(t) {
- this.tagName_ = t
- }
-
- return t.prototype.getTagName = function () {
- return this.tagName_
- }, t
- }(), $S = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), JS = function (t) {
- function e(e, r) {
- var n = t.call(this, e) || this;
- return n.conditions = r, pt(n.conditions.length >= 2, 57), n
- }
-
- return $S(e, t), e
- }(HS), QS = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), tE = function (t) {
- function e(e) {
- return t.call(this, "And", Array.prototype.slice.call(arguments)) || this
- }
-
- return QS(e, t), e
- }(JS), eE = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), rE = function (t) {
- function e(e, r, n) {
- var i = t.call(this, "BBOX") || this;
- if (i.geometryName = e, i.extent = r, 4 !== r.length) throw new Error("Expected an extent with four values ([minX, minY, maxX, maxY])");
- return i.srsName = n, i
- }
-
- return eE(e, t), e
- }(HS), nE = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), iE = function (t) {
- function e(e, r, n, i) {
- var o = t.call(this, e) || this;
- return o.geometryName = r || "the_geom", o.geometry = n, o.srsName = i, o
- }
-
- return nE(e, t), e
- }(HS), oE = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), aE = function (t) {
- function e(e, r, n) {
- return t.call(this, "Contains", e, r, n) || this
- }
-
- return oE(e, t), e
- }(iE), sE = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), lE = function (t) {
- function e(e, r, n, i, o) {
- var a = t.call(this, "DWithin", e, r, o) || this;
- return a.distance = n, a.unit = i, a
- }
-
- return sE(e, t), e
- }(iE), uE = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), cE = function (t) {
- function e(e, r, n) {
- return t.call(this, "Disjoint", e, r, n) || this
- }
-
- return uE(e, t), e
- }(iE), hE = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), pE = function (t) {
- function e(e, r) {
- var n = t.call(this, e) || this;
- return n.propertyName = r, n
- }
-
- return hE(e, t), e
- }(HS), fE = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), dE = function (t) {
- function e(e, r, n) {
- var i = t.call(this, "During", e) || this;
- return i.begin = r, i.end = n, i
- }
-
- return fE(e, t), e
- }(pE), gE = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), yE = function (t) {
- function e(e, r, n, i) {
- var o = t.call(this, e, r) || this;
- return o.expression = n, o.matchCase = i, o
- }
-
- return gE(e, t), e
- }(pE), mE = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), vE = function (t) {
- function e(e, r, n) {
- return t.call(this, "PropertyIsEqualTo", e, r, n) || this
- }
-
- return mE(e, t), e
- }(yE), _E = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), bE = function (t) {
- function e(e, r) {
- return t.call(this, "PropertyIsGreaterThan", e, r) || this
- }
-
- return _E(e, t), e
- }(yE), xE = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), wE = function (t) {
- function e(e, r) {
- return t.call(this, "PropertyIsGreaterThanOrEqualTo", e, r) || this
- }
-
- return xE(e, t), e
- }(yE), SE = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), EE = function (t) {
- function e(e, r, n) {
- return t.call(this, "Intersects", e, r, n) || this
- }
-
- return SE(e, t), e
- }(iE), TE = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), CE = function (t) {
- function e(e, r, n) {
- var i = t.call(this, "PropertyIsBetween", e) || this;
- return i.lowerBoundary = r, i.upperBoundary = n, i
- }
-
- return TE(e, t), e
- }(pE), OE = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), PE = function (t) {
- function e(e, r, n, i, o, a) {
- var s = t.call(this, "PropertyIsLike", e) || this;
- return s.pattern = r, s.wildCard = void 0 !== n ? n : "*", s.singleChar = void 0 !== i ? i : ".", s.escapeChar = void 0 !== o ? o : "!", s.matchCase = a, s
- }
-
- return OE(e, t), e
- }(pE), RE = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), IE = function (t) {
- function e(e) {
- return t.call(this, "PropertyIsNull", e) || this
- }
-
- return RE(e, t), e
- }(pE), LE = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), ME = function (t) {
- function e(e, r) {
- return t.call(this, "PropertyIsLessThan", e, r) || this
- }
-
- return LE(e, t), e
- }(yE), FE = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), AE = function (t) {
- function e(e, r) {
- return t.call(this, "PropertyIsLessThanOrEqualTo", e, r) || this
- }
-
- return FE(e, t), e
- }(yE), kE = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), jE = function (t) {
- function e(e) {
- var r = t.call(this, "Not") || this;
- return r.condition = e, r
- }
-
- return kE(e, t), e
- }(HS), NE = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), DE = function (t) {
- function e(e, r, n) {
- return t.call(this, "PropertyIsNotEqualTo", e, r, n) || this
- }
-
- return NE(e, t), e
- }(yE), GE = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), zE = function (t) {
- function e(e) {
- return t.call(this, "Or", Array.prototype.slice.call(arguments)) || this
- }
-
- return GE(e, t), e
- }(JS), UE = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), BE = function (t) {
- function e(e) {
- var r = t.call(this, "ResourceId") || this;
- return r.rid = e, r
- }
-
- return UE(e, t), e
- }(HS), VE = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), YE = function (t) {
- function e(e, r, n) {
- return t.call(this, "Within", e, r, n) || this
- }
-
- return VE(e, t), e
- }(iE);
-
- function WE(t) {
- var e = [null].concat(Array.prototype.slice.call(arguments));
- return new (Function.prototype.bind.apply(tE, e))
- }
-
- function qE(t, e, r) {
- return new rE(t, e, r)
- }
-
- var XE = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), ZE = {
- "http://www.opengis.net/gml": {boundedBy: Fc(F_.prototype.readGeometryElement, "bounds")},
- "http://www.opengis.net/wfs/2.0": {member: Ic(F_.prototype.readFeaturesInternal)}
- }, KE = {
- "http://www.opengis.net/wfs": {totalInserted: Fc(G_), totalUpdated: Fc(G_), totalDeleted: Fc(G_)},
- "http://www.opengis.net/wfs/2.0": {totalInserted: Fc(G_), totalUpdated: Fc(G_), totalDeleted: Fc(G_)}
- }, HE = {
- "http://www.opengis.net/wfs": {
- TransactionSummary: Fc(sT, "transactionSummary"),
- InsertResults: Fc(hT, "insertIds")
- },
- "http://www.opengis.net/wfs/2.0": {
- TransactionSummary: Fc(sT, "transactionSummary"),
- InsertResults: Fc(hT, "insertIds")
- }
- }, $E = {
- "http://www.opengis.net/wfs": {PropertyName: Ac(X_)},
- "http://www.opengis.net/wfs/2.0": {PropertyName: Ac(X_)}
- }, JE = {
- "http://www.opengis.net/wfs": {
- Insert: Ac(pT),
- Update: Ac(yT),
- Delete: Ac(gT),
- Property: Ac(mT),
- Native: Ac(vT)
- },
- "http://www.opengis.net/wfs/2.0": {
- Insert: Ac(pT),
- Update: Ac(yT),
- Delete: Ac(gT),
- Property: Ac(mT),
- Native: Ac(vT)
- }
- }, QE = "http://www.w3.org/2000/xmlns/", tT = {
- "2.0.0": "http://www.opengis.net/ogc/1.1",
- "1.1.0": "http://www.opengis.net/ogc",
- "1.0.0": "http://www.opengis.net/ogc"
- }, eT = {
- "2.0.0": "http://www.opengis.net/wfs/2.0",
- "1.1.0": "http://www.opengis.net/wfs",
- "1.0.0": "http://www.opengis.net/wfs"
- }, rT = {
- "2.0.0": "http://www.opengis.net/fes/2.0",
- "1.1.0": "http://www.opengis.net/fes",
- "1.0.0": "http://www.opengis.net/fes"
- }, nT = {
- "2.0.0": "http://www.opengis.net/wfs/2.0 http://schemas.opengis.net/wfs/2.0/wfs.xsd",
- "1.1.0": "http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd",
- "1.0.0": "http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/wfs.xsd"
- }, iT = {"2.0.0": ab, "1.1.0": eb, "1.0.0": $_}, oT = function (t) {
- function e(e) {
- var r = t.call(this) || this, n = e || {};
- return r.version_ = n.version ? n.version : "1.1.0", r.featureType_ = n.featureType, r.featureNS_ = n.featureNS, r.gmlFormat_ = n.gmlFormat ? n.gmlFormat : new iT[r.version_], r.schemaLocation_ = n.schemaLocation ? n.schemaLocation : nT[r.version_], r
- }
-
- return XE(e, t), e.prototype.getFeatureType = function () {
- return this.featureType_
- }, e.prototype.setFeatureType = function (t) {
- this.featureType_ = t
- }, e.prototype.readFeaturesFromNode = function (t, e) {
- var r = {node: t};
- O(r, {featureType: this.featureType_, featureNS: this.featureNS_}), O(r, this.getReadOptions(t, e || {}));
- var n = [r],
- i = Uc([], "2.0.0" === this.version_ ? ZE : this.gmlFormat_.FEATURE_COLLECTION_PARSERS, t, n, this.gmlFormat_);
- return i || (i = []), i
- }, e.prototype.readTransactionResponse = function (t) {
- if (t) {
- if ("string" == typeof t) {
- var e = Pc(t);
- return this.readTransactionResponseFromDocument(e)
- }
- return Cc(t) ? this.readTransactionResponseFromDocument(t) : this.readTransactionResponseFromNode(t)
- }
- }, e.prototype.readFeatureCollectionMetadata = function (t) {
- if (t) {
- if ("string" == typeof t) {
- var e = Pc(t);
- return this.readFeatureCollectionMetadataFromDocument(e)
- }
- return Cc(t) ? this.readFeatureCollectionMetadataFromDocument(t) : this.readFeatureCollectionMetadataFromNode(t)
- }
- }, e.prototype.readFeatureCollectionMetadataFromDocument = function (t) {
- for (var e = t.firstChild; e; e = e.nextSibling) if (e.nodeType == Node.ELEMENT_NODE) return this.readFeatureCollectionMetadataFromNode(e)
- }, e.prototype.readFeatureCollectionMetadataFromNode = function (t) {
- var e = {}, r = z_(t.getAttribute("numberOfFeatures"));
- return e.numberOfFeatures = r, Uc(e, ZE, t, [], this.gmlFormat_)
- }, e.prototype.readTransactionResponseFromDocument = function (t) {
- for (var e = t.firstChild; e; e = e.nextSibling) if (e.nodeType == Node.ELEMENT_NODE) return this.readTransactionResponseFromNode(e)
- }, e.prototype.readTransactionResponseFromNode = function (t) {
- return Uc({}, HE, t, [])
- }, e.prototype.writeGetFeature = function (t) {
- var e = this, r = Sc(eT[this.version_], "GetFeature");
- r.setAttribute("service", "WFS"), r.setAttribute("version", this.version_), t.handle && r.setAttribute("handle", t.handle), t.outputFormat && r.setAttribute("outputFormat", t.outputFormat), void 0 !== t.maxFeatures && r.setAttribute("maxFeatures", String(t.maxFeatures)), t.resultType && r.setAttribute("resultType", t.resultType), void 0 !== t.startIndex && r.setAttribute("startIndex", String(t.startIndex)), void 0 !== t.count && r.setAttribute("count", String(t.count)), void 0 !== t.viewParams && r.setAttribute("viewParams", t.viewParams), r.setAttributeNS(wc, "xsi:schemaLocation", this.schemaLocation_);
- var n = {node: r};
- if (O(n, {
- version: this.version_,
- srsName: t.srsName,
- featureNS: t.featureNS ? t.featureNS : this.featureNS_,
- featurePrefix: t.featurePrefix,
- propertyNames: t.propertyNames ? t.propertyNames : []
- }), pt(Array.isArray(t.featureTypes), 11), "string" == typeof t.featureTypes[0]) {
- var i = t.filter;
- t.bbox && (pt(t.geometryName, 12), i = this.combineBboxAndFilter(t.geometryName, t.bbox, t.srsName, i)), O(n, {
- geometryName: t.geometryName,
- filter: i
- }), jT(r, t.featureTypes, [n])
- } else t.featureTypes.forEach((function (i) {
- var o = e.combineBboxAndFilter(i.geometryName, i.bbox, t.srsName, t.filter);
- O(n, {geometryName: i.geometryName, filter: o}), jT(r, [i.name], [n])
- }));
- return r
- }, e.prototype.combineBboxAndFilter = function (t, e, r, n) {
- var i = qE(t, e, r);
- return n ? WE(n, i) : i
- }, e.prototype.writeTransaction = function (t, e, r, n) {
- var i, o = [], a = n.version ? n.version : this.version_, s = Sc(eT[a], "Transaction");
- s.setAttribute("service", "WFS"), s.setAttribute("version", a), n && (i = n.gmlOptions ? n.gmlOptions : {}, n.handle && s.setAttribute("handle", n.handle)), s.setAttributeNS(wc, "xsi:schemaLocation", nT[a]);
- var l = function (t, e, r, n) {
- var i, o = n.featurePrefix ? n.featurePrefix : "feature";
- "1.0.0" === r ? i = 2 : "1.1.0" === r ? i = 3 : "2.0.0" === r && (i = 3.2);
- return O({node: t}, {
- version: r,
- featureNS: n.featureNS,
- featureType: n.featureType,
- featurePrefix: o,
- gmlVersion: i,
- hasZ: n.hasZ,
- srsName: n.srsName
- }, e)
- }(s, i, a, n);
- return t && aT("Insert", t, o, l), e && aT("Update", e, o, l), r && aT("Delete", r, o, l), n.nativeElements && aT("Native", n.nativeElements, o, l), s
- }, e.prototype.readProjectionFromDocument = function (t) {
- for (var e = t.firstChild; e; e = e.nextSibling) if (e.nodeType == Node.ELEMENT_NODE) return this.readProjectionFromNode(e);
- return null
- }, e.prototype.readProjectionFromNode = function (t) {
- if (t.firstElementChild && t.firstElementChild.firstElementChild) for (var e = (t = t.firstElementChild.firstElementChild).firstElementChild; e; e = e.nextElementSibling) if (0 !== e.childNodes.length && (1 !== e.childNodes.length || 3 !== e.firstChild.nodeType)) {
- var r = [{}];
- return this.gmlFormat_.readGeometryElement(e, r), Gr(r.pop().srsName)
- }
- return null
- }, e
- }(P_);
-
- function aT(t, e, r, n) {
- Vc(n, JE, jc(t), e, r)
- }
-
- function sT(t, e) {
- return Uc({}, KE, t, e)
- }
-
- var lT = {
- "http://www.opengis.net/ogc": {
- FeatureId: Ic((function (t, e) {
- return t.getAttribute("fid")
- }))
- }, "http://www.opengis.net/ogc/1.1": {
- FeatureId: Ic((function (t, e) {
- return t.getAttribute("fid")
- }))
- }
- };
-
- function uT(t, e) {
- zc(lT, t, e)
- }
-
- var cT = {"http://www.opengis.net/wfs": {Feature: uT}, "http://www.opengis.net/wfs/2.0": {Feature: uT}};
-
- function hT(t, e) {
- return Uc([], cT, t, e)
- }
-
- function pT(t, e, r) {
- var n = r[r.length - 1], i = n.featureType, o = n.featureNS, a = n.gmlVersion, s = Sc(o, i);
- t.appendChild(s), 2 === a ? $_.prototype.writeFeatureElement(s, e, r) : 3 === a ? eb.prototype.writeFeatureElement(s, e, r) : ab.prototype.writeFeatureElement(s, e, r)
- }
-
- function fT(t, e, r) {
- var n = r[r.length - 1].version, i = tT[n], o = Sc(i, "Filter"), a = Sc(i, "FeatureId");
- o.appendChild(a), a.setAttribute("fid", e), t.appendChild(o)
- }
-
- function dT(t, e) {
- var r = (t = t || "feature") + ":";
- return 0 === e.indexOf(r) ? e : r + e
- }
-
- function gT(t, e, r) {
- var n = r[r.length - 1];
- pt(void 0 !== e.getId(), 26);
- var i = n.featureType, o = n.featurePrefix, a = n.featureNS, s = dT(o, i);
- t.setAttribute("typeName", s), t.setAttributeNS(QE, "xmlns:" + o, a);
- var l = e.getId();
- void 0 !== l && fT(t, l, r)
- }
-
- function yT(t, e, r) {
- var n = r[r.length - 1];
- pt(void 0 !== e.getId(), 27);
- var i = n.version, o = n.featureType, a = n.featurePrefix, s = n.featureNS, l = dT(a, o), u = e.getGeometryName();
- t.setAttribute("typeName", l), t.setAttributeNS(QE, "xmlns:" + a, s);
- var c = e.getId();
- if (void 0 !== c) {
- for (var h = e.getKeys(), p = [], f = 0, d = h.length; f < d; f++) {
- var g = e.get(h[f]);
- if (void 0 !== g) {
- var y = h[f];
- g && "function" == typeof g.getSimplifiedGeometry && (y = u), p.push({name: y, value: g})
- }
- }
- Vc({
- version: i,
- gmlVersion: n.gmlVersion,
- node: t,
- hasZ: n.hasZ,
- srsName: n.srsName
- }, JE, jc("Property"), p, r), fT(t, c, r)
- }
- }
-
- function mT(t, e, r) {
- var n = r[r.length - 1], i = n.version, o = eT[i], a = Sc(o, "Name"), s = n.gmlVersion;
- if (t.appendChild(a), X_(a, e.name), void 0 !== e.value && null !== e.value) {
- var l = Sc(o, "Value");
- t.appendChild(l), e.value && "function" == typeof e.value.getSimplifiedGeometry ? 2 === s ? $_.prototype.writeGeometryElement(l, e.value, r) : 3 === s ? eb.prototype.writeGeometryElement(l, e.value, r) : ab.prototype.writeGeometryElement(l, e.value, r) : X_(l, e.value)
- }
- }
-
- function vT(t, e, r) {
- e.vendorId && t.setAttribute("vendorId", e.vendorId), void 0 !== e.safeToIgnore && t.setAttribute("safeToIgnore", String(e.safeToIgnore)), void 0 !== e.value && X_(t, e.value)
- }
-
- var _T = {
- "http://www.opengis.net/wfs": {Query: Ac(bT)},
- "http://www.opengis.net/wfs/2.0": {Query: Ac(bT)},
- "http://www.opengis.net/ogc": {
- During: Ac(TT),
- And: Ac(CT),
- Or: Ac(CT),
- Not: Ac(OT),
- BBOX: Ac(wT),
- Contains: Ac(ST),
- Intersects: Ac(ST),
- Within: Ac(ST),
- DWithin: Ac(ET),
- PropertyIsEqualTo: Ac(PT),
- PropertyIsNotEqualTo: Ac(PT),
- PropertyIsLessThan: Ac(PT),
- PropertyIsLessThanOrEqualTo: Ac(PT),
- PropertyIsGreaterThan: Ac(PT),
- PropertyIsGreaterThanOrEqualTo: Ac(PT),
- PropertyIsNull: Ac(RT),
- PropertyIsBetween: Ac(IT),
- PropertyIsLike: Ac(LT)
- },
- "http://www.opengis.net/fes/2.0": {
- During: Ac(TT),
- And: Ac(CT),
- Or: Ac(CT),
- Not: Ac(OT),
- BBOX: Ac(wT),
- Contains: Ac(ST),
- Disjoint: Ac(ST),
- Intersects: Ac(ST),
- ResourceId: Ac((function (t, e, r) {
- t.setAttribute("rid", e.rid)
- })),
- Within: Ac(ST),
- DWithin: Ac(ET),
- PropertyIsEqualTo: Ac(PT),
- PropertyIsNotEqualTo: Ac(PT),
- PropertyIsLessThan: Ac(PT),
- PropertyIsLessThanOrEqualTo: Ac(PT),
- PropertyIsGreaterThan: Ac(PT),
- PropertyIsGreaterThanOrEqualTo: Ac(PT),
- PropertyIsNull: Ac(RT),
- PropertyIsBetween: Ac(IT),
- PropertyIsLike: Ac(LT)
- }
- };
-
- function bT(t, e, r) {
- var n, i, o = r[r.length - 1], a = o.version, s = o.featurePrefix, l = o.featureNS, u = o.propertyNames,
- c = o.srsName;
- n = s ? dT(s, e) : e, i = "2.0.0" === a ? "typeNames" : "typeName", t.setAttribute(i, n), c && t.setAttribute("srsName", c), l && t.setAttributeNS(QE, "xmlns:" + s, l);
- var h = O({}, o);
- h.node = t, Vc(h, $E, jc("PropertyName"), u, r);
- var p = o.filter;
- if (p) {
- var f = Sc(NT(a), "Filter");
- t.appendChild(f), xT(f, p, r)
- }
- }
-
- function xT(t, e, r) {
- var n = r[r.length - 1], i = {node: t};
- O(i, {context: n}), Vc(i, _T, jc(e.getTagName()), [e], r)
- }
-
- function wT(t, e, r) {
- var n = r[r.length - 1], i = n.context.version;
- n.srsName = e.srsName;
- var o = iT[i];
- AT(i, t, e.geometryName), o.prototype.writeGeometryElement(t, e.extent, r)
- }
-
- function ST(t, e, r) {
- var n = r[r.length - 1], i = n.context.version;
- n.srsName = e.srsName;
- var o = iT[i];
- AT(i, t, e.geometryName), o.prototype.writeGeometryElement(t, e.geometry, r)
- }
-
- function ET(t, e, r) {
- var n = r[r.length - 1].context.version;
- ST(t, e, r);
- var i = Sc(NT(n), "Distance");
- X_(i, e.distance.toString()), "2.0.0" === n ? i.setAttribute("uom", e.unit) : i.setAttribute("units", e.unit), t.appendChild(i)
- }
-
- function TT(t, e, r) {
- var n = r[r.length - 1].context.version;
- MT(rT[n], "ValueReference", t, e.propertyName);
- var i = Sc(I_, "TimePeriod");
- t.appendChild(i);
- var o = Sc(I_, "begin");
- i.appendChild(o), kT(o, e.begin);
- var a = Sc(I_, "end");
- i.appendChild(a), kT(a, e.end)
- }
-
- function CT(t, e, r) {
- var n = r[r.length - 1].context, i = {node: t};
- O(i, {context: n});
- for (var o = e.conditions, a = 0, s = o.length; a < s; ++a) {
- var l = o[a];
- Vc(i, _T, jc(l.getTagName()), [l], r)
- }
- }
-
- function OT(t, e, r) {
- var n = r[r.length - 1].context, i = {node: t};
- O(i, {context: n});
- var o = e.condition;
- Vc(i, _T, jc(o.getTagName()), [o], r)
- }
-
- function PT(t, e, r) {
- var n = r[r.length - 1].context.version;
- void 0 !== e.matchCase && t.setAttribute("matchCase", e.matchCase.toString()), AT(n, t, e.propertyName), FT(n, t, "" + e.expression)
- }
-
- function RT(t, e, r) {
- AT(r[r.length - 1].context.version, t, e.propertyName)
- }
-
- function IT(t, e, r) {
- var n = r[r.length - 1].context.version, i = NT(n);
- AT(n, t, e.propertyName);
- var o = Sc(i, "LowerBoundary");
- t.appendChild(o), FT(n, o, "" + e.lowerBoundary);
- var a = Sc(i, "UpperBoundary");
- t.appendChild(a), FT(n, a, "" + e.upperBoundary)
- }
-
- function LT(t, e, r) {
- var n = r[r.length - 1].context.version;
- t.setAttribute("wildCard", e.wildCard), t.setAttribute("singleChar", e.singleChar), t.setAttribute("escapeChar", e.escapeChar), void 0 !== e.matchCase && t.setAttribute("matchCase", e.matchCase.toString()), AT(n, t, e.propertyName), FT(n, t, "" + e.pattern)
- }
-
- function MT(t, e, r, n) {
- var i = Sc(t, e);
- X_(i, n), r.appendChild(i)
- }
-
- function FT(t, e, r) {
- MT(NT(t), "Literal", e, r)
- }
-
- function AT(t, e, r) {
- "2.0.0" === t ? MT(rT[t], "ValueReference", e, r) : MT(tT[t], "PropertyName", e, r)
- }
-
- function kT(t, e) {
- var r = Sc(I_, "TimeInstant");
- t.appendChild(r);
- var n = Sc(I_, "timePosition");
- r.appendChild(n), X_(n, e)
- }
-
- function jT(t, e, r) {
- var n = r[r.length - 1], i = O({}, n);
- i.node = t, Vc(i, _T, jc("Query"), e, r)
- }
-
- function NT(t) {
- return "2.0.0" === t ? rT[t] : tT[t]
- }
-
- var DT = oT, GT = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), zT = {POINT: qn, LINESTRING: Py, POLYGON: fi, MULTIPOINT: Hy, MULTILINESTRING: Zy, MULTIPOLYGON: Jy}, UT = 1,
- BT = 2, VT = 3, YT = 4, WT = 5, qT = 6, XT = {};
- for (var ZT in bt) XT[ZT] = bt[ZT].toUpperCase();
- var KT = function () {
- function t(t) {
- this.wkt = t, this.index_ = -1
- }
-
- return t.prototype.isAlpha_ = function (t) {
- return t >= "a" && t <= "z" || t >= "A" && t <= "Z"
- }, t.prototype.isNumeric_ = function (t, e) {
- return t >= "0" && t <= "9" || "." == t && !(void 0 !== e && e)
- }, t.prototype.isWhiteSpace_ = function (t) {
- return " " == t || "\t" == t || "\r" == t || "\n" == t
- }, t.prototype.nextChar_ = function () {
- return this.wkt.charAt(++this.index_)
- }, t.prototype.nextToken = function () {
- var t, e = this.nextChar_(), r = this.index_, n = e;
- if ("(" == e) t = BT; else if ("," == e) t = WT; else if (")" == e) t = VT; else if (this.isNumeric_(e) || "-" == e) t = YT, n = this.readNumber_(); else if (this.isAlpha_(e)) t = UT, n = this.readText_(); else {
- if (this.isWhiteSpace_(e)) return this.nextToken();
- if ("" !== e) throw new Error("Unexpected character: " + e);
- t = qT
- }
- return {position: r, value: n, type: t}
- }, t.prototype.readNumber_ = function () {
- var t, e = this.index_, r = !1, n = !1;
- do {
- "." == t ? r = !0 : "e" != t && "E" != t || (n = !0), t = this.nextChar_()
- } while (this.isNumeric_(t, r) || !n && ("e" == t || "E" == t) || n && ("-" == t || "+" == t));
- return parseFloat(this.wkt.substring(e, this.index_--))
- }, t.prototype.readText_ = function () {
- var t, e = this.index_;
- do {
- t = this.nextChar_()
- } while (this.isAlpha_(t));
- return this.wkt.substring(e, this.index_--).toUpperCase()
- }, t
- }(), HT = function () {
- function t(t) {
- this.lexer_ = t, this.token_, this.layout_ = yt
- }
-
- return t.prototype.consume_ = function () {
- this.token_ = this.lexer_.nextToken()
- }, t.prototype.isTokenType = function (t) {
- return this.token_.type == t
- }, t.prototype.match = function (t) {
- var e = this.isTokenType(t);
- return e && this.consume_(), e
- }, t.prototype.parse = function () {
- return this.consume_(), this.parseGeometry_()
- }, t.prototype.parseGeometryLayout_ = function () {
- var t = yt, e = this.token_;
- if (this.isTokenType(UT)) {
- var r = e.value;
- "Z" === r ? t = mt : "M" === r ? t = vt : "ZM" === r && (t = _t), t !== yt && this.consume_()
- }
- return t
- }, t.prototype.parseGeometryCollectionText_ = function () {
- if (this.match(BT)) {
- var t = [];
- do {
- t.push(this.parseGeometry_())
- } while (this.match(WT));
- if (this.match(VT)) return t
- } else if (this.isEmptyGeometry_()) return [];
- throw new Error(this.formatErrorMessage_())
- }, t.prototype.parsePointText_ = function () {
- if (this.match(BT)) {
- var t = this.parsePoint_();
- if (this.match(VT)) return t
- } else if (this.isEmptyGeometry_()) return null;
- throw new Error(this.formatErrorMessage_())
- }, t.prototype.parseLineStringText_ = function () {
- if (this.match(BT)) {
- var t = this.parsePointList_();
- if (this.match(VT)) return t
- } else if (this.isEmptyGeometry_()) return [];
- throw new Error(this.formatErrorMessage_())
- }, t.prototype.parsePolygonText_ = function () {
- if (this.match(BT)) {
- var t = this.parseLineStringTextList_();
- if (this.match(VT)) return t
- } else if (this.isEmptyGeometry_()) return [];
- throw new Error(this.formatErrorMessage_())
- }, t.prototype.parseMultiPointText_ = function () {
- if (this.match(BT)) {
- var t = void 0;
- if (t = this.token_.type == BT ? this.parsePointTextList_() : this.parsePointList_(), this.match(VT)) return t
- } else if (this.isEmptyGeometry_()) return [];
- throw new Error(this.formatErrorMessage_())
- }, t.prototype.parseMultiLineStringText_ = function () {
- if (this.match(BT)) {
- var t = this.parseLineStringTextList_();
- if (this.match(VT)) return t
- } else if (this.isEmptyGeometry_()) return [];
- throw new Error(this.formatErrorMessage_())
- }, t.prototype.parseMultiPolygonText_ = function () {
- if (this.match(BT)) {
- var t = this.parsePolygonTextList_();
- if (this.match(VT)) return t
- } else if (this.isEmptyGeometry_()) return [];
- throw new Error(this.formatErrorMessage_())
- }, t.prototype.parsePoint_ = function () {
- for (var t = [], e = this.layout_.length, r = 0; r < e; ++r) {
- var n = this.token_;
- if (!this.match(YT)) break;
- t.push(n.value)
- }
- if (t.length == e) return t;
- throw new Error(this.formatErrorMessage_())
- }, t.prototype.parsePointList_ = function () {
- for (var t = [this.parsePoint_()]; this.match(WT);) t.push(this.parsePoint_());
- return t
- }, t.prototype.parsePointTextList_ = function () {
- for (var t = [this.parsePointText_()]; this.match(WT);) t.push(this.parsePointText_());
- return t
- }, t.prototype.parseLineStringTextList_ = function () {
- for (var t = [this.parseLineStringText_()]; this.match(WT);) t.push(this.parseLineStringText_());
- return t
- }, t.prototype.parsePolygonTextList_ = function () {
- for (var t = [this.parsePolygonText_()]; this.match(WT);) t.push(this.parsePolygonText_());
- return t
- }, t.prototype.isEmptyGeometry_ = function () {
- var t = this.isTokenType(UT) && "EMPTY" == this.token_.value;
- return t && this.consume_(), t
- }, t.prototype.formatErrorMessage_ = function () {
- return "Unexpected `" + this.token_.value + "` at position " + this.token_.position + " in `" + this.lexer_.wkt + "`"
- }, t.prototype.parseGeometry_ = function () {
- var t = this.token_;
- if (this.match(UT)) {
- var e = t.value;
- if (this.layout_ = this.parseGeometryLayout_(), "GEOMETRYCOLLECTION" == e) {
- var r = this.parseGeometryCollectionText_();
- return new Vm(r)
- }
- var n = zT[e];
- if (!n) throw new Error("Invalid geometry type: " + e);
- var i = void 0;
- switch (e) {
- case"POINT":
- i = this.parsePointText_();
- break;
- case"LINESTRING":
- i = this.parseLineStringText_();
- break;
- case"POLYGON":
- i = this.parsePolygonText_();
- break;
- case"MULTIPOINT":
- i = this.parseMultiPointText_();
- break;
- case"MULTILINESTRING":
- i = this.parseMultiLineStringText_();
- break;
- case"MULTIPOLYGON":
- i = this.parseMultiPolygonText_();
- break;
- default:
- throw new Error("Invalid geometry type: " + e)
- }
- return i || (i = n === zT.POINT ? [NaN, NaN] : []), new n(i, this.layout_)
- }
- throw new Error(this.formatErrorMessage_())
- }, t
- }(), $T = function (t) {
- function e(e) {
- var r = t.call(this) || this, n = e || {};
- return r.splitCollection_ = void 0 !== n.splitCollection && n.splitCollection, r
- }
-
- return GT(e, t), e.prototype.parse_ = function (t) {
- var e = new KT(t);
- return new HT(e).parse()
- }, e.prototype.readFeatureFromText = function (t, e) {
- var r = this.readGeometryFromText(t, e);
- if (r) {
- var n = new gt;
- return n.setGeometry(r), n
- }
- return null
- }, e.prototype.readFeaturesFromText = function (t, e) {
- for (var r = [], n = this.readGeometryFromText(t, e), i = [], o = 0, a = (r = this.splitCollection_ && n.getType() == bt.GEOMETRY_COLLECTION ? n.getGeometriesArray() : [n]).length; o < a; ++o) {
- var s = new gt;
- s.setGeometry(r[o]), i.push(s)
- }
- return i
- }, e.prototype.readGeometryFromText = function (t, e) {
- var r = this.parse_(t);
- return r ? Wy(r, !1, e) : null
- }, e.prototype.writeFeatureText = function (t, e) {
- var r = t.getGeometry();
- return r ? this.writeGeometryText(r, e) : ""
- }, e.prototype.writeFeaturesText = function (t, e) {
- if (1 == t.length) return this.writeFeatureText(t[0], e);
- for (var r = [], n = 0, i = t.length; n < i; ++n) r.push(t[n].getGeometry());
- var o = new Vm(r);
- return this.writeGeometryText(o, e)
- }, e.prototype.writeGeometryText = function (t, e) {
- return rC(Wy(t, !0, e))
- }, e
- }(Jb);
-
- function JT(t) {
- var e = t.getCoordinates();
- return 0 === e.length ? "" : e.join(" ")
- }
-
- function QT(t) {
- for (var e = t.getCoordinates(), r = [], n = 0, i = e.length; n < i; ++n) r.push(e[n].join(" "));
- return r.join(",")
- }
-
- function tC(t) {
- for (var e = [], r = t.getLinearRings(), n = 0, i = r.length; n < i; ++n) e.push("(" + QT(r[n]) + ")");
- return e.join(",")
- }
-
- var eC = {
- Point: JT, LineString: QT, Polygon: tC, MultiPoint: function (t) {
- for (var e = [], r = t.getPoints(), n = 0, i = r.length; n < i; ++n) e.push("(" + JT(r[n]) + ")");
- return e.join(",")
- }, MultiLineString: function (t) {
- for (var e = [], r = t.getLineStrings(), n = 0, i = r.length; n < i; ++n) e.push("(" + QT(r[n]) + ")");
- return e.join(",")
- }, MultiPolygon: function (t) {
- for (var e = [], r = t.getPolygons(), n = 0, i = r.length; n < i; ++n) e.push("(" + tC(r[n]) + ")");
- return e.join(",")
- }, GeometryCollection: function (t) {
- for (var e = [], r = t.getGeometries(), n = 0, i = r.length; n < i; ++n) e.push(rC(r[n]));
- return e.join(",")
- }
- };
-
- function rC(t) {
- var e = t.getType(), r = (0, eC[e])(t);
- if (e = e.toUpperCase(), "function" == typeof t.getFlatCoordinates) {
- var n = function (t) {
- var e = t.getLayout(), r = "";
- return e !== mt && e !== _t || (r += "Z"), e !== vt && e !== _t || (r += "M"), r
- }(t);
- n.length > 0 && (e += " " + n)
- }
- return 0 === r.length ? e + " EMPTY" : e + "(" + r + ")"
- }
-
- var nC = $T, iC = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), oC = [null, "http://www.opengis.net/wms"], aC = Gc(oC, {
- Service: Fc((function (t, e) {
- return Uc({}, uC, t, e)
- })), Capability: Fc((function (t, e) {
- return Uc({}, sC, t, e)
- }))
- }), sC = Gc(oC, {
- Request: Fc((function (t, e) {
- return Uc({}, mC, t, e)
- })), Exception: Fc((function (t, e) {
- return Uc([], fC, t, e)
- })), Layer: Fc((function (t, e) {
- var r = Uc({}, dC, t, e);
- if (void 0 === r.Layer) return Object.assign(r, EC(t, e));
- return r
- }))
- }), lC = function (t) {
- function e() {
- var e = t.call(this) || this;
- return e.version = void 0, e
- }
-
- return iC(e, t), e.prototype.readFromNode = function (t) {
- this.version = t.getAttribute("version").trim();
- var e = Uc({version: this.version}, aC, t, []);
- return e || null
- }, e
- }(cS), uC = Gc(oC, {
- Name: Fc(U_),
- Title: Fc(U_),
- Abstract: Fc(U_),
- KeywordList: Fc(PC),
- OnlineResource: Fc(hS),
- ContactInformation: Fc((function (t, e) {
- return Uc({}, cC, t, e)
- })),
- Fees: Fc(U_),
- AccessConstraints: Fc(U_),
- LayerLimit: Fc(G_),
- MaxWidth: Fc(G_),
- MaxHeight: Fc(G_)
- }), cC = Gc(oC, {
- ContactPersonPrimary: Fc((function (t, e) {
- return Uc({}, hC, t, e)
- })), ContactPosition: Fc(U_), ContactAddress: Fc((function (t, e) {
- return Uc({}, pC, t, e)
- })), ContactVoiceTelephone: Fc(U_), ContactFacsimileTelephone: Fc(U_), ContactElectronicMailAddress: Fc(U_)
- }), hC = Gc(oC, {ContactPerson: Fc(U_), ContactOrganization: Fc(U_)}), pC = Gc(oC, {
- AddressType: Fc(U_),
- Address: Fc(U_),
- City: Fc(U_),
- StateOrProvince: Fc(U_),
- PostCode: Fc(U_),
- Country: Fc(U_)
- }), fC = Gc(oC, {Format: Ic(U_)}), dC = Gc(oC, {
- Name: Fc(U_),
- Title: Fc(U_),
- Abstract: Fc(U_),
- KeywordList: Fc(PC),
- CRS: Mc(U_),
- EX_GeographicBoundingBox: Fc((function (t, e) {
- var r = Uc({}, yC, t, e);
- if (!r) return;
- var n = r.westBoundLongitude, i = r.southBoundLatitude, o = r.eastBoundLongitude, a = r.northBoundLatitude;
- if (void 0 === n || void 0 === i || void 0 === o || void 0 === a) return;
- return [n, i, o, a]
- })),
- BoundingBox: Mc((function (t, e) {
- var r = [D_(t.getAttribute("minx")), D_(t.getAttribute("miny")), D_(t.getAttribute("maxx")), D_(t.getAttribute("maxy"))],
- n = [D_(t.getAttribute("resx")), D_(t.getAttribute("resy"))];
- return {crs: t.getAttribute("CRS"), extent: r, res: n}
- })),
- Dimension: Mc((function (t, e) {
- return {
- name: t.getAttribute("name"),
- units: t.getAttribute("units"),
- unitSymbol: t.getAttribute("unitSymbol"),
- default: t.getAttribute("default"),
- multipleValues: k_(t.getAttribute("multipleValues")),
- nearestValue: k_(t.getAttribute("nearestValue")),
- current: k_(t.getAttribute("current")),
- values: U_(t)
- }
- })),
- Attribution: Fc((function (t, e) {
- return Uc({}, gC, t, e)
- })),
- AuthorityURL: Mc((function (t, e) {
- var r = TC(t, e);
- if (r) return r.name = t.getAttribute("name"), r;
- return
- })),
- Identifier: Mc(U_),
- MetadataURL: Mc((function (t, e) {
- var r = TC(t, e);
- if (r) return r.type = t.getAttribute("type"), r;
- return
- })),
- DataURL: Mc(TC),
- FeatureListURL: Mc(TC),
- Style: Mc((function (t, e) {
- return Uc({}, xC, t, e)
- })),
- MinScaleDenominator: Fc(N_),
- MaxScaleDenominator: Fc(N_),
- Layer: Mc(EC)
- }), gC = Gc(oC, {Title: Fc(U_), OnlineResource: Fc(hS), LogoURL: Fc(OC)}), yC = Gc(oC, {
- westBoundLongitude: Fc(N_),
- eastBoundLongitude: Fc(N_),
- southBoundLatitude: Fc(N_),
- northBoundLatitude: Fc(N_)
- }), mC = Gc(oC, {GetCapabilities: Fc(CC), GetMap: Fc(CC), GetFeatureInfo: Fc(CC)}), vC = Gc(oC, {
- Format: Mc(U_), DCPType: Mc((function (t, e) {
- return Uc({}, _C, t, e)
- }))
- }), _C = Gc(oC, {
- HTTP: Fc((function (t, e) {
- return Uc({}, bC, t, e)
- }))
- }), bC = Gc(oC, {Get: Fc(TC), Post: Fc(TC)}), xC = Gc(oC, {
- Name: Fc(U_),
- Title: Fc(U_),
- Abstract: Fc(U_),
- LegendURL: Mc(OC),
- StyleSheetURL: Fc(TC),
- StyleURL: Fc(TC)
- }), wC = Gc(oC, {Format: Fc(U_), OnlineResource: Fc(hS)}), SC = Gc(oC, {Keyword: Ic(U_)});
-
- function EC(t, e) {
- var r = e[e.length - 1], n = Uc({}, dC, t, e);
- if (n) {
- var i = k_(t.getAttribute("queryable"));
- void 0 === i && (i = r.queryable), n.queryable = void 0 !== i && i;
- var o = z_(t.getAttribute("cascaded"));
- void 0 === o && (o = r.cascaded), n.cascaded = o;
- var a = k_(t.getAttribute("opaque"));
- void 0 === a && (a = r.opaque), n.opaque = void 0 !== a && a;
- var s = k_(t.getAttribute("noSubsets"));
- void 0 === s && (s = r.noSubsets), n.noSubsets = void 0 !== s && s;
- var l = D_(t.getAttribute("fixedWidth"));
- l || (l = r.fixedWidth), n.fixedWidth = l;
- var u = D_(t.getAttribute("fixedHeight"));
- u || (u = r.fixedHeight), n.fixedHeight = u;
- ["Style", "CRS", "AuthorityURL"].forEach((function (t) {
- if (t in r) {
- var e = n[t] || [];
- n[t] = e.concat(r[t])
- }
- }));
- return ["EX_GeographicBoundingBox", "BoundingBox", "Dimension", "Attribution", "MinScaleDenominator", "MaxScaleDenominator"].forEach((function (t) {
- if (!(t in n)) {
- var e = r[t];
- n[t] = e
- }
- })), n
- }
- }
-
- function TC(t, e) {
- return Uc({}, wC, t, e)
- }
-
- function CC(t, e) {
- return Uc({}, vC, t, e)
- }
-
- function OC(t, e) {
- var r = TC(t, e);
- if (r) {
- var n = [z_(t.getAttribute("width")), z_(t.getAttribute("height"))];
- return r.size = n, r
- }
- }
-
- function PC(t, e) {
- return Uc([], SC, t, e)
- }
-
- var RC = lC, IC = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), LC = function (t) {
- function e(e) {
- var r = t.call(this) || this, n = e || {};
- return r.featureNS_ = "http://mapserver.gis.umn.edu/mapserver", r.gmlFormat_ = new $_, r.layers_ = n.layers ? n.layers : null, r
- }
-
- return IC(e, t), e.prototype.getLayers = function () {
- return this.layers_
- }, e.prototype.setLayers = function (t) {
- this.layers_ = t
- }, e.prototype.readFeatures_ = function (t, e) {
- t.setAttribute("namespaceURI", this.featureNS_);
- var r = t.localName, n = [];
- if (0 === t.childNodes.length) return n;
- if ("msGMLOutput" == r) for (var i = 0, o = t.childNodes.length; i < o; i++) {
- var a = t.childNodes[i];
- if (a.nodeType === Node.ELEMENT_NODE) {
- var s = a, l = e[0], u = s.localName.replace("_layer", "");
- if (!this.layers_ || g(this.layers_, u)) {
- var c = u + "_feature";
- l.featureType = c, l.featureNS = this.featureNS_;
- var h = {};
- h[c] = Ic(this.gmlFormat_.readFeatureElement, this.gmlFormat_);
- var p = Gc([l.featureNS, null], h);
- s.setAttribute("namespaceURI", this.featureNS_);
- var f = Uc([], p, s, e, this.gmlFormat_);
- f && v(n, f)
- }
- }
- }
- if ("FeatureCollection" == r) {
- var d = Uc([], this.gmlFormat_.FEATURE_COLLECTION_PARSERS, t, [{}], this.gmlFormat_);
- d && (n = d)
- }
- return n
- }, e.prototype.readFeaturesFromNode = function (t, e) {
- var r = {};
- return e && O(r, this.getReadOptions(t, e)), this.readFeatures_(t, [r])
- }, e
- }(P_), MC = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), FC = [null, "http://www.opengis.net/wmts/1.0"], AC = [null, "http://www.opengis.net/ows/1.1"], kC = Gc(FC, {
- Contents: Fc((function (t, e) {
- return Uc({}, NC, t, e)
- }))
- }), jC = function (t) {
- function e() {
- var e = t.call(this) || this;
- return e.owsParser_ = new RS, e
- }
-
- return MC(e, t), e.prototype.readFromNode = function (t) {
- var e = t.getAttribute("version");
- e && (e = e.trim());
- var r = this.owsParser_.readFromNode(t);
- return r ? (r.version = e, (r = Uc(r, kC, t, [])) || null) : null
- }, e
- }(cS), NC = Gc(FC, {
- Layer: Mc((function (t, e) {
- return Uc({}, DC, t, e)
- })), TileMatrixSet: Mc((function (t, e) {
- return Uc({}, WC, t, e)
- }))
- }), DC = Gc(FC, {
- Style: Mc((function (t, e) {
- var r = Uc({}, GC, t, e);
- if (!r) return;
- var n = "true" === t.getAttribute("isDefault");
- return r.isDefault = n, r
- })), Format: Mc(U_), TileMatrixSetLink: Mc((function (t, e) {
- return Uc({}, zC, t, e)
- })), Dimension: Mc((function (t, e) {
- return Uc({}, VC, t, e)
- })), ResourceURL: Mc((function (t, e) {
- var r = t.getAttribute("format"), n = t.getAttribute("template"), i = t.getAttribute("resourceType"), o = {};
- r && (o.format = r);
- n && (o.template = n);
- i && (o.resourceType = i);
- return o
- }))
- }, Gc(AC, {
- Title: Fc(U_), Abstract: Fc(U_), WGS84BoundingBox: Fc((function (t, e) {
- var r = Uc([], YC, t, e);
- if (2 != r.length) return;
- return Kt(r)
- })), Identifier: Fc(U_)
- })), GC = Gc(FC, {
- LegendURL: Mc((function (t, e) {
- var r = {};
- return r.format = t.getAttribute("format"), r.href = hS(t), r
- }))
- }, Gc(AC, {Title: Fc(U_), Identifier: Fc(U_)})), zC = Gc(FC, {
- TileMatrixSet: Fc(U_), TileMatrixSetLimits: Fc((function (t, e) {
- return Uc([], UC, t, e)
- }))
- }), UC = Gc(FC, {
- TileMatrixLimits: Ic((function (t, e) {
- return Uc({}, BC, t, e)
- }))
- }),
- BC = Gc(FC, {TileMatrix: Fc(U_), MinTileRow: Fc(G_), MaxTileRow: Fc(G_), MinTileCol: Fc(G_), MaxTileCol: Fc(G_)}),
- VC = Gc(FC, {Default: Fc(U_), Value: Mc(U_)}, Gc(AC, {Identifier: Fc(U_)})),
- YC = Gc(AC, {LowerCorner: Ic(XC), UpperCorner: Ic(XC)}), WC = Gc(FC, {
- WellKnownScaleSet: Fc(U_), TileMatrix: Mc((function (t, e) {
- return Uc({}, qC, t, e)
- }))
- }, Gc(AC, {SupportedCRS: Fc(U_), Identifier: Fc(U_)})), qC = Gc(FC, {
- TopLeftCorner: Fc(XC),
- ScaleDenominator: Fc(N_),
- TileWidth: Fc(G_),
- TileHeight: Fc(G_),
- MatrixWidth: Fc(G_),
- MatrixHeight: Fc(G_)
- }, Gc(AC, {Identifier: Fc(U_)}));
-
- function XC(t, e) {
- var r = U_(t).split(/\s+/);
- if (r && 2 == r.length) {
- var n = +r[0], i = +r[1];
- if (!isNaN(n) && !isNaN(i)) return [n, i]
- }
- }
-
- var ZC = jC, KC = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), HC = ["fullscreenchange", "webkitfullscreenchange", "MSFullscreenChange"], $C = "enterfullscreen",
- JC = "leavefullscreen";
-
- function QC() {
- var t = document.body;
- return !!(t.webkitRequestFullscreen || t.msRequestFullscreen && document.msFullscreenEnabled || t.requestFullscreen && document.fullscreenEnabled)
- }
-
- function tO() {
- return !!(document.webkitIsFullScreen || document.msFullscreenElement || document.fullscreenElement)
- }
-
- function eO(t) {
- t.requestFullscreen ? t.requestFullscreen() : t.msRequestFullscreen ? t.msRequestFullscreen() : t.webkitRequestFullscreen && t.webkitRequestFullscreen()
- }
-
- var rO = function (t) {
- function e(e) {
- var r = this, n = e || {};
- (r = t.call(this, {
- element: document.createElement("div"),
- target: n.target
- }) || this).cssClassName_ = void 0 !== n.className ? n.className : "ol-full-screen", r.activeClassName_ = void 0 !== n.activeClassName ? n.activeClassName.split(" ") : [r.cssClassName_ + "-true"], r.inactiveClassName_ = void 0 !== n.inactiveClassName ? n.inactiveClassName.split(" ") : [r.cssClassName_ + "-false"];
- var i = void 0 !== n.label ? n.label : "⤢";
- r.labelNode_ = "string" == typeof i ? document.createTextNode(i) : i;
- var o = void 0 !== n.labelActive ? n.labelActive : "×";
- r.labelActiveNode_ = "string" == typeof o ? document.createTextNode(o) : o, r.button_ = document.createElement("button");
- var a = n.tipLabel ? n.tipLabel : "Toggle full-screen";
- r.setClassName_(r.button_, tO()), r.button_.setAttribute("type", "button"), r.button_.title = a, r.button_.appendChild(r.labelNode_), r.button_.addEventListener(N, r.handleClick_.bind(r), !1);
- var s = r.cssClassName_ + " ol-unselectable ol-control " + (QC() ? "" : "ol-unsupported"), l = r.element;
- return l.className = s, l.appendChild(r.button_), r.keys_ = void 0 !== n.keys && n.keys, r.source_ = n.source, r
- }
-
- return KC(e, t), e.prototype.handleClick_ = function (t) {
- t.preventDefault(), this.handleFullScreen_()
- }, e.prototype.handleFullScreen_ = function () {
- if (QC()) {
- var t = this.getMap();
- if (t) if (tO()) document.exitFullscreen ? document.exitFullscreen() : document.msExitFullscreen ? document.msExitFullscreen() : document.webkitExitFullscreen && document.webkitExitFullscreen(); else {
- var e = void 0;
- e = this.source_ ? "string" == typeof this.source_ ? document.getElementById(this.source_) : this.source_ : t.getTargetElement(), this.keys_ ? function (t) {
- t.webkitRequestFullscreen ? t.webkitRequestFullscreen() : eO(t)
- }(e) : eO(e)
- }
- }
- }, e.prototype.handleFullScreenChange_ = function () {
- var t = this.getMap();
- tO() ? (this.setClassName_(this.button_, !0), po(this.labelActiveNode_, this.labelNode_), this.dispatchEvent($C)) : (this.setClassName_(this.button_, !1), po(this.labelNode_, this.labelActiveNode_), this.dispatchEvent(JC)), t && t.updateSize()
- }, e.prototype.setClassName_ = function (t, e) {
- var r, n, i, o = this.activeClassName_, a = this.inactiveClassName_, s = e ? o : a;
- (r = t.classList).remove.apply(r, o), (n = t.classList).remove.apply(n, a), (i = t.classList).add.apply(i, s)
- }, e.prototype.setMap = function (e) {
- if (t.prototype.setMap.call(this, e), e) for (var r = 0, n = HC.length; r < n; ++r) this.listenerKeys.push(Z(document, HC[r], this.handleFullScreenChange_, this))
- }, e
- }(As), nO = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), iO = function (t) {
- function e(e) {
- var r = this, n = e || {}, i = document.createElement("div");
- return i.className = void 0 !== n.className ? n.className : "ol-mouse-position", (r = t.call(this, {
- element: i,
- render: n.render,
- target: n.target
- }) || this).addEventListener(it("projection"), r.handleProjectionChanged_), n.coordinateFormat && r.setCoordinateFormat(n.coordinateFormat), n.projection && r.setProjection(n.projection), r.undefinedHTML_ = void 0 !== n.undefinedHTML ? n.undefinedHTML : " ", r.renderOnMouseOut_ = !!r.undefinedHTML_, r.renderedHTML_ = i.innerHTML, r.mapProjection_ = null, r.transform_ = null, r
- }
-
- return nO(e, t), e.prototype.handleProjectionChanged_ = function () {
- this.transform_ = null
- }, e.prototype.getCoordinateFormat = function () {
- return this.get("coordinateFormat")
- }, e.prototype.getProjection = function () {
- return this.get("projection")
- }, e.prototype.handleMouseMove = function (t) {
- var e = this.getMap();
- this.updateHTML_(e.getEventPixel(t))
- }, e.prototype.handleMouseOut = function (t) {
- this.updateHTML_(null)
- }, e.prototype.setMap = function (e) {
- if (t.prototype.setMap.call(this, e), e) {
- var r = e.getViewport();
- this.listenerKeys.push(Z(r, za, this.handleMouseMove, this)), this.renderOnMouseOut_ && this.listenerKeys.push(Z(r, Va, this.handleMouseOut, this))
- }
- }, e.prototype.setCoordinateFormat = function (t) {
- this.set("coordinateFormat", t)
- }, e.prototype.setProjection = function (t) {
- this.set("projection", Gr(t))
- }, e.prototype.updateHTML_ = function (t) {
- var e = this.undefinedHTML_;
- if (t && this.mapProjection_) {
- if (!this.transform_) {
- var r = this.getProjection();
- this.transform_ = r ? Zr(this.mapProjection_, r) : jr
- }
- var n = this.getMap().getCoordinateFromPixelInternal(t);
- if (n) {
- var i = tn();
- i && (this.transform_ = Zr(this.mapProjection_, i)), this.transform_(n, n);
- var o = this.getCoordinateFormat();
- e = o ? o(n) : n.toString()
- }
- }
- this.renderedHTML_ && e === this.renderedHTML_ || (this.element.innerHTML = e, this.renderedHTML_ = e)
- }, e.prototype.render = function (t) {
- var e = t.frameState;
- e ? this.mapProjection_ != e.viewState.projection && (this.mapProjection_ = e.viewState.projection, this.transform_ = null) : this.mapProjection_ = null
- }, e
- }(As), oO = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), aO = function (t) {
- function e() {
- return null !== t && t.apply(this, arguments) || this
- }
-
- return oO(e, t), e.prototype.createRenderer = function () {
- return new La(this)
- }, e
- }(Ms), sO = function (t) {
- function e(e) {
- var r = this, n = e || {};
- (r = t.call(this, {
- element: document.createElement("div"),
- render: n.render,
- target: n.target
- }) || this).boundHandleRotationChanged_ = r.handleRotationChanged_.bind(r), r.collapsed_ = void 0 === n.collapsed || n.collapsed, r.collapsible_ = void 0 === n.collapsible || n.collapsible, r.collapsible_ || (r.collapsed_ = !1), r.rotateWithView_ = void 0 !== n.rotateWithView && n.rotateWithView, r.viewExtent_ = void 0;
- var i = void 0 !== n.className ? n.className : "ol-overviewmap",
- o = void 0 !== n.tipLabel ? n.tipLabel : "Overview map",
- a = void 0 !== n.collapseLabel ? n.collapseLabel : "«";
- "string" == typeof a ? (r.collapseLabel_ = document.createElement("span"), r.collapseLabel_.textContent = a) : r.collapseLabel_ = a;
- var s = void 0 !== n.label ? n.label : "»";
- "string" == typeof s ? (r.label_ = document.createElement("span"), r.label_.textContent = s) : r.label_ = s;
- var l = r.collapsible_ && !r.collapsed_ ? r.collapseLabel_ : r.label_, u = document.createElement("button");
- u.setAttribute("type", "button"), u.title = o, u.appendChild(l), u.addEventListener(N, r.handleClick_.bind(r), !1), r.ovmapDiv_ = document.createElement("div"), r.ovmapDiv_.className = "ol-overviewmap-map", r.view_ = n.view, r.ovmap_ = new aO({view: n.view});
- var c = r.ovmap_;
- n.layers && n.layers.forEach((function (t) {
- c.addLayer(t)
- }));
- var h = document.createElement("div");
- h.className = "ol-overviewmap-box", h.style.boxSizing = "border-box", r.boxOverlay_ = new su({
- position: [0, 0],
- positioning: Hl,
- element: h
- }), r.ovmap_.addOverlay(r.boxOverlay_);
- var p = i + " ol-unselectable ol-control" + (r.collapsed_ && r.collapsible_ ? " ol-collapsed" : "") + (r.collapsible_ ? "" : " ol-uncollapsible"),
- f = r.element;
- f.className = p, f.appendChild(r.ovmapDiv_), f.appendChild(u);
- var d = r, g = r.boxOverlay_, y = r.boxOverlay_.getElement(), m = function (t) {
- var e, r = {clientX: (e = t).clientX, clientY: e.clientY}, n = c.getEventCoordinateInternal(r);
- g.setPosition(n)
- }, v = function (t) {
- var e = c.getEventCoordinateInternal(t);
- d.getMap().getView().setCenterInternal(e), window.removeEventListener("mousemove", m), window.removeEventListener("mouseup", v)
- };
- return y.addEventListener("mousedown", (function () {
- window.addEventListener("mousemove", m), window.addEventListener("mouseup", v)
- })), r
- }
-
- return oO(e, t), e.prototype.setMap = function (e) {
- var r = this.getMap();
- if (e !== r) {
- if (r) {
- var n = r.getView();
- n && this.unbindView_(n), this.ovmap_.setTarget(null)
- }
- if (t.prototype.setMap.call(this, e), e) {
- this.ovmap_.setTarget(this.ovmapDiv_), this.listenerKeys.push(Z(e, h, this.handleMapPropertyChange_, this));
- var i = e.getView();
- i && (this.bindView_(i), i.isDef() && (this.ovmap_.updateSize(), this.resetExtent_()))
- }
- }
- }, e.prototype.handleMapPropertyChange_ = function (t) {
- if (t.key === Ja) {
- var e = t.oldValue;
- e && this.unbindView_(e);
- var r = this.getMap().getView();
- this.bindView_(r)
- }
- }, e.prototype.bindView_ = function (t) {
- if (!this.view_) {
- var e = new Cs({projection: t.getProjection()});
- this.ovmap_.setView(e)
- }
- t.addEventListener(it(ss), this.boundHandleRotationChanged_), this.handleRotationChanged_()
- }, e.prototype.unbindView_ = function (t) {
- t.removeEventListener(it(ss), this.boundHandleRotationChanged_)
- }, e.prototype.handleRotationChanged_ = function () {
- this.rotateWithView_ && this.ovmap_.getView().setRotation(this.getMap().getView().getRotation())
- }, e.prototype.validateExtent_ = function () {
- var t = this.getMap(), e = this.ovmap_;
- if (t.isRendered() && e.isRendered()) {
- var r = t.getSize(), n = t.getView().calculateExtentInternal(r);
- if (!this.viewExtent_ || !ue(n, this.viewExtent_)) {
- this.viewExtent_ = n;
- var i = e.getSize(), o = e.getView().calculateExtentInternal(i),
- a = e.getPixelFromCoordinateInternal(Ce(n)), s = e.getPixelFromCoordinateInternal(be(n)),
- l = Math.abs(a[0] - s[0]), u = Math.abs(a[1] - s[1]), c = i[0], h = i[1];
- l < .1 * c || u < .1 * h || l > .75 * c || u > .75 * h ? this.resetExtent_() : te(o, n) || this.recenter_()
- }
- }
- }, e.prototype.resetExtent_ = function () {
- var t = this.getMap(), e = this.ovmap_, r = t.getSize(), n = t.getView().calculateExtentInternal(r),
- i = e.getView(), o = Math.log(7.5) / Math.LN2;
- Me(n, 1 / (.1 * Math.pow(2, o / 2))), i.fitInternal(gi(n))
- }, e.prototype.recenter_ = function () {
- var t = this.getMap(), e = this.ovmap_, r = t.getView();
- e.getView().setCenterInternal(r.getCenterInternal())
- }, e.prototype.updateBox_ = function () {
- var t = this.getMap(), e = this.ovmap_;
- if (t.isRendered() && e.isRendered()) {
- var r = t.getSize(), n = t.getView(), i = e.getView(), o = this.rotateWithView_ ? 0 : -n.getRotation(),
- a = this.boxOverlay_, s = this.boxOverlay_.getElement(), l = n.getCenterInternal(), u = n.getResolution(),
- c = i.getResolution(), h = r[0] * u / c, p = r[1] * u / c;
- if (a.setPosition(l), s) {
- s.style.width = h + "px", s.style.height = p + "px";
- var f = "rotate(" + o + "rad)";
- s.style.transform = f
- }
- }
- }, e.prototype.handleClick_ = function (t) {
- t.preventDefault(), this.handleToggle_()
- }, e.prototype.handleToggle_ = function () {
- this.element.classList.toggle("ol-collapsed"), this.collapsed_ ? po(this.collapseLabel_, this.label_) : po(this.label_, this.collapseLabel_), this.collapsed_ = !this.collapsed_;
- var t = this.ovmap_;
- if (!this.collapsed_) {
- if (t.isRendered()) return this.viewExtent_ = void 0, void t.render();
- t.updateSize(), this.resetExtent_(), K(t, qa, (function (t) {
- this.updateBox_()
- }), this)
- }
- }, e.prototype.getCollapsible = function () {
- return this.collapsible_
- }, e.prototype.setCollapsible = function (t) {
- this.collapsible_ !== t && (this.collapsible_ = t, this.element.classList.toggle("ol-uncollapsible"), !t && this.collapsed_ && this.handleToggle_())
- }, e.prototype.setCollapsed = function (t) {
- this.collapsible_ && this.collapsed_ !== t && this.handleToggle_()
- }, e.prototype.getCollapsed = function () {
- return this.collapsed_
- }, e.prototype.getRotateWithView = function () {
- return this.rotateWithView_
- }, e.prototype.setRotateWithView = function (t) {
- this.rotateWithView_ !== t && (this.rotateWithView_ = t, 0 !== this.getMap().getView().getRotation() && (this.rotateWithView_ ? this.handleRotationChanged_() : this.ovmap_.getView().setRotation(0), this.viewExtent_ = void 0, this.validateExtent_(), this.updateBox_()))
- }, e.prototype.getOverviewMap = function () {
- return this.ovmap_
- }, e.prototype.render = function (t) {
- this.validateExtent_(), this.updateBox_()
- }, e
- }(As), lO = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), uO = "degrees", cO = "imperial", hO = "nautical", pO = "metric", fO = "us", dO = [1, 2, 5], gO = function (t) {
- function e(e) {
- var r = this, n = e || {}, i = void 0 !== n.className ? n.className : n.bar ? "ol-scale-bar" : "ol-scale-line";
- return (r = t.call(this, {
- element: document.createElement("div"),
- render: n.render,
- target: n.target
- }) || this).innerElement_ = document.createElement("div"), r.innerElement_.className = i + "-inner", r.element.className = i + " ol-unselectable", r.element.appendChild(r.innerElement_), r.viewState_ = null, r.minWidth_ = void 0 !== n.minWidth ? n.minWidth : 64, r.renderedVisible_ = !1, r.renderedWidth_ = void 0, r.renderedHTML_ = "", r.addEventListener(it("units"), r.handleUnitsChanged_), r.setUnits(n.units || pO), r.scaleBar_ = n.bar || !1, r.scaleBarSteps_ = n.steps || 4, r.scaleBarText_ = n.text || !1, r.dpi_ = n.dpi || void 0, r
- }
-
- return lO(e, t), e.prototype.getUnits = function () {
- return this.get("units")
- }, e.prototype.handleUnitsChanged_ = function () {
- this.updateElement_()
- }, e.prototype.setUnits = function (t) {
- this.set("units", t)
- }, e.prototype.setDpi = function (t) {
- this.dpi_ = t
- }, e.prototype.updateElement_ = function () {
- var t = this.viewState_;
- if (t) {
- var e = t.center, r = t.projection, n = this.getUnits(), i = n == uO ? St.DEGREES : St.METERS,
- o = zr(r, t.resolution, e, i), a = this.minWidth_ * (this.dpi_ || 25.4 / .28) / (25.4 / .28), s = a * o,
- l = "";
- if (n == uO) {
- var u = wt[St.DEGREES];
- (s *= u) < u / 60 ? (l = "″", o *= 3600) : s < u ? (l = "′", o *= 60) : l = "°"
- } else n == cO ? s < .9144 ? (l = "in", o /= .0254) : s < 1609.344 ? (l = "ft", o /= .3048) : (l = "mi", o /= 1609.344) : n == hO ? (o /= 1852, l = "nm") : n == pO ? s < .001 ? (l = "μm", o *= 1e6) : s < 1 ? (l = "mm", o *= 1e3) : s < 1e3 ? l = "m" : (l = "km", o /= 1e3) : n == fO ? s < .9144 ? (l = "in", o *= 39.37) : s < 1609.344 ? (l = "ft", o /= .30480061) : (l = "mi", o /= 1609.3472) : pt(!1, 33);
- for (var c, h, p, f, d = 3 * Math.floor(Math.log(a * o) / Math.log(10)); ;) {
- p = Math.floor(d / 3);
- var g = Math.pow(10, p);
- if (c = dO[(d % 3 + 3) % 3] * g, h = Math.round(c / o), isNaN(h)) return this.element.style.display = "none", void (this.renderedVisible_ = !1);
- if (h >= a) break;
- ++d
- }
- f = this.scaleBar_ ? this.createScaleBar(h, c, l) : c.toFixed(p < 0 ? -p : 0) + " " + l, this.renderedHTML_ != f && (this.innerElement_.innerHTML = f, this.renderedHTML_ = f), this.renderedWidth_ != h && (this.innerElement_.style.width = h + "px", this.renderedWidth_ = h), this.renderedVisible_ || (this.element.style.display = "", this.renderedVisible_ = !0)
- } else this.renderedVisible_ && (this.element.style.display = "none", this.renderedVisible_ = !1)
- }, e.prototype.createScaleBar = function (t, e, r) {
- for (var n = "1 : " + Math.round(this.getScaleForResolution()).toLocaleString(), i = [], o = t / this.scaleBarSteps_, a = "#ffffff", s = 0; s < this.scaleBarSteps_; s++) 0 === s && i.push(this.createMarker("absolute", s)), i.push('<div><div class="ol-scale-singlebar" style="width: ' + o + "px;background-color: " + a + ';"></div>' + this.createMarker("relative", s) + (s % 2 == 0 || 2 === this.scaleBarSteps_ ? this.createStepText(s, t, !1, e, r) : "") + "</div>"), s === this.scaleBarSteps_ - 1 && i.push(this.createStepText(s + 1, t, !0, e, r)), a = "#ffffff" === a ? "#000000" : "#ffffff";
- return '<div style="display: flex;">' + (this.scaleBarText_ ? '<div class="ol-scale-text" style="width: ' + t + 'px;">' + n + "</div>" : "") + i.join("") + "</div>"
- }, e.prototype.createMarker = function (t, e) {
- return '<div class="ol-scale-step-marker" style="position: ' + t + ";top: " + ("absolute" === t ? 3 : -10) + 'px;"></div>'
- }, e.prototype.createStepText = function (t, e, r, n, i) {
- var o = (0 === t ? 0 : Math.round(n / this.scaleBarSteps_ * t * 100) / 100) + (0 === t ? "" : " " + i);
- return '<div class="ol-scale-step-text" style="margin-left: ' + (0 === t ? -3 : e / this.scaleBarSteps_ * -1) + "px;text-align: " + (0 === t ? "left" : "center") + "; min-width: " + (0 === t ? 0 : e / this.scaleBarSteps_ * 2) + "px;left: " + (r ? e + "px" : "unset") + ';">' + o + "</div>"
- }, e.prototype.getScaleForResolution = function () {
- var t = zr(this.viewState_.projection, this.viewState_.resolution, this.viewState_.center),
- e = this.dpi_ || 25.4 / .28, r = this.viewState_.projection.getMetersPerUnit();
- return parseFloat(t.toString()) * r * (1e3 / 25.4) * e
- }, e.prototype.render = function (t) {
- var e = t.frameState;
- this.viewState_ = e ? e.viewState : null, this.updateElement_()
- }, e
- }(As), yO = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), mO = 0, vO = 1, _O = function (t) {
- function e(e) {
- var r = this, n = e || {};
- (r = t.call(this, {
- element: document.createElement("div"),
- render: n.render
- }) || this).dragListenerKeys_ = [], r.currentResolution_ = void 0, r.direction_ = mO, r.dragging_, r.heightLimit_ = 0, r.widthLimit_ = 0, r.startX_, r.startY_, r.thumbSize_ = null, r.sliderInitialized_ = !1, r.duration_ = void 0 !== n.duration ? n.duration : 200;
- var i = void 0 !== n.className ? n.className : "ol-zoomslider", o = document.createElement("button");
- o.setAttribute("type", "button"), o.className = i + "-thumb ol-unselectable";
- var a = r.element;
- return a.className = i + " ol-unselectable ol-control", a.appendChild(o), a.addEventListener(Ua, r.handleDraggerStart_.bind(r), !1), a.addEventListener(za, r.handleDraggerDrag_.bind(r), !1), a.addEventListener(Ba, r.handleDraggerEnd_.bind(r), !1), a.addEventListener(N, r.handleContainerClick_.bind(r), !1), o.addEventListener(N, u, !1), r
- }
-
- return yO(e, t), e.prototype.setMap = function (e) {
- t.prototype.setMap.call(this, e), e && e.render()
- }, e.prototype.initSlider_ = function () {
- var t = this.element, e = t.offsetWidth, r = t.offsetHeight;
- if (0 === e && 0 === r) return this.sliderInitialized_ = !1;
- var n = t.firstElementChild, i = getComputedStyle(n),
- o = n.offsetWidth + parseFloat(i.marginRight) + parseFloat(i.marginLeft),
- a = n.offsetHeight + parseFloat(i.marginTop) + parseFloat(i.marginBottom);
- return this.thumbSize_ = [o, a], e > r ? (this.direction_ = vO, this.widthLimit_ = e - o) : (this.direction_ = mO, this.heightLimit_ = r - a), this.sliderInitialized_ = !0
- }, e.prototype.handleContainerClick_ = function (t) {
- var e = this.getMap().getView(),
- r = this.getRelativePosition_(t.offsetX - this.thumbSize_[0] / 2, t.offsetY - this.thumbSize_[1] / 2),
- n = this.getResolutionForPosition_(r), i = e.getConstrainedZoom(e.getZoomForResolution(n));
- e.animateInternal({zoom: i, duration: this.duration_, easing: io})
- }, e.prototype.handleDraggerStart_ = function (t) {
- if (!this.dragging_ && t.target === this.element.firstElementChild) {
- var e = this.element.firstElementChild;
- if (this.getMap().getView().beginInteraction(), this.startX_ = t.clientX - parseFloat(e.style.left), this.startY_ = t.clientY - parseFloat(e.style.top), this.dragging_ = !0, 0 === this.dragListenerKeys_.length) {
- var r = this.handleDraggerDrag_, n = this.handleDraggerEnd_, i = this.getMap().getOwnerDocument();
- this.dragListenerKeys_.push(Z(i, za, r, this), Z(i, Ba, n, this))
- }
- }
- }, e.prototype.handleDraggerDrag_ = function (t) {
- if (this.dragging_) {
- var e = t.clientX - this.startX_, r = t.clientY - this.startY_, n = this.getRelativePosition_(e, r);
- this.currentResolution_ = this.getResolutionForPosition_(n), this.getMap().getView().setResolution(this.currentResolution_)
- }
- }, e.prototype.handleDraggerEnd_ = function (t) {
- this.dragging_ && (this.getMap().getView().endInteraction(), this.dragging_ = !1, this.startX_ = void 0, this.startY_ = void 0, this.dragListenerKeys_.forEach(H), this.dragListenerKeys_.length = 0)
- }, e.prototype.setThumbPosition_ = function (t) {
- var e = this.getPositionForResolution_(t), r = this.element.firstElementChild;
- this.direction_ == vO ? r.style.left = this.widthLimit_ * e + "px" : r.style.top = this.heightLimit_ * e + "px"
- }, e.prototype.getRelativePosition_ = function (t, e) {
- return Ne(this.direction_ === vO ? t / this.widthLimit_ : e / this.heightLimit_, 0, 1)
- }, e.prototype.getResolutionForPosition_ = function (t) {
- return this.getMap().getView().getResolutionForValueFunction()(1 - t)
- }, e.prototype.getPositionForResolution_ = function (t) {
- return Ne(1 - this.getMap().getView().getValueForResolutionFunction()(t), 0, 1)
- }, e.prototype.render = function (t) {
- if (t.frameState && (this.sliderInitialized_ || this.initSlider_())) {
- var e = t.frameState.viewState.resolution;
- this.currentResolution_ = e, this.setThumbPosition_(e)
- }
- }, e
- }(As), bO = function () {
- var t = function (e, r) {
- return (t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) {
- t.__proto__ = e
- } || function (t, e) {
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r])
- })(e, r)
- };
- return function (e, r) {
- function n() {
- this.constructor = e
- }
-
- t(e, r), e.prototype = null === r ? Object.create(r) : (n.prototype = r.prototype, new n)
- }
- }(), xO = function (t) {
- function e(e) {
- var r = this, n = e || {};
- (r = t.call(this, {
- element: document.createElement("div"),
- target: n.target
- }) || this).extent = n.extent ? n.extent : null;
- var i = void 0 !== n.className ? n.className : "ol-zoom-extent", o = void 0 !== n.label ? n.label : "E",
- a = void 0 !== n.tipLabel ? n.tipLabel : "Fit to extent", s = document.createElement("button");
- s.setAttribute("type", "button"), s.title = a, s.appendChild("string" == typeof o ? document.createTextNode(o) : o), s.addEventListener(N, r.handleClick_.bind(r), !1);
- var l = i + " ol-unselectable ol-control", u = r.element;
- return u.className = l, u.appendChild(s), r
- }
-
- return bO(e, t), e.prototype.handleClick_ = function (t) {
- t.preventDefault(), this.handleZoomToExtent()
- }, e.prototype.handleZoomToExtent = function () {
- var t = this.getMap().getView(), e = this.extent ? this.extent : t.getProjection().getExtent();
- t.fitInternal(gi(e))
- }, e
- }(As), wO = {};
- wO.AssertionError = l || {}, wO.Collection = ht || {}, wO.Collection.CollectionEvent = ct || {}, wO.Disposable = p || {}, wO.Feature = gt || {}, wO.Feature.createStyleFunction = dt || {}, wO.Geolocation = Ii || {}, wO.Image = Ki || {}, wO.Image.listenImage = Zi || {}, wO.ImageBase = Mi || {}, wO.ImageCanvas = $i || {}, wO.ImageTile = vo || {}, wO.Kinetic = _o || {}, wO.Map = Wl || {}, wO.MapBrowserEvent = Da || {}, wO.MapBrowserEventHandler = Wa || {}, wO.MapEvent = ja || {}, wO.Object = ot || {}, wO.Object.ObjectEvent = et || {}, wO.Object.getChangeEventType = it || {}, wO.Observable = Q || {}, wO.Observable.unByKey = J || {}, wO.Overlay = su || {}, wO.PluggableMap = Ms || {}, wO.Tile = lo || {}, wO.TileCache = yu || {}, wO.TileQueue = es || {}, wO.TileQueue.getTilePriority = rs || {}, wO.TileRange = _u || {}, wO.TileRange.createOrUpdate = vu || {}, wO.VectorRenderTile = wu || {}, wO.VectorTile = Eu || {}, wO.View = Cs || {}, wO.View.createCenterConstraint = xs || {}, wO.View.createResolutionConstraint = ws || {}, wO.View.createRotationConstraint = Ss || {}, wO.View.isNoopAnimation = Es || {}, wO.array = {}, wO.array.binarySearch = f || {}, wO.array.equals = b || {}, wO.array.extend = v || {}, wO.array.find = _ || {}, wO.array.findIndex = x || {}, wO.array.includes = g || {}, wO.array.isSorted = w || {}, wO.array.linearFindNearest = y || {}, wO.array.numberSafeCompareFunction = d || {}, wO.array.remove = function (t, e) {
- var r = t.indexOf(e), n = r > -1;
- return n && t.splice(r, 1), n
- } || {}, wO.array.reverseSubArray = m || {}, wO.array.stableSort = function (t, e) {
- var r, n = t.length, i = Array(t.length);
- for (r = 0; r < n; r++) i[r] = {index: r, value: t[r]};
- for (i.sort((function (t, r) {
- return e(t.value, r.value) || t.index - r.index
- })), r = 0; r < t.length; r++) t[r] = i[r].value
- } || {}, wO.asserts = {}, wO.asserts.assert = pt || {}, wO.centerconstraint = {}, wO.centerconstraint.createExtent = ls || {}, wO.centerconstraint.none = us || {}, wO.color = {}, wO.color.asArray = Oo || {}, wO.color.asString = wo || {}, wO.color.fromString = Co || {}, wO.color.isStringColor = Io || {}, wO.color.normalize = Po || {}, wO.color.toString = Ro || {}, wO.colorlike = {}, wO.colorlike.asColorLike = Tu || {}, wO.control = {}, wO.control.Attribution = js || {}, wO.control.Control = As || {}, wO.control.FullScreen = rO || {}, wO.control.MousePosition = iO || {}, wO.control.OverviewMap = sO || {}, wO.control.Rotate = Ds || {}, wO.control.ScaleLine = gO || {}, wO.control.Zoom = zs || {}, wO.control.ZoomSlider = _O || {}, wO.control.ZoomToExtent = xO || {}, wO.control.defaults = Us || {}, wO.coordinate = {}, wO.coordinate.add = xr || {}, wO.coordinate.closestOnCircle = wr || {}, wO.coordinate.closestOnSegment = Sr || {}, wO.coordinate.createStringXY = function (t) {
- return function (e) {
- return Mr(e, t)
- }
- } || {}, wO.coordinate.degreesToStringHDMS = Er || {}, wO.coordinate.distance = Ir || {}, wO.coordinate.equals = Cr || {}, wO.coordinate.format = Tr || {}, wO.coordinate.getWorldsAway = Ar || {}, wO.coordinate.rotate = Or || {}, wO.coordinate.scale = Pr || {}, wO.coordinate.squaredDistance = Rr || {}, wO.coordinate.squaredDistanceToSegment = Lr || {}, wO.coordinate.toStringHDMS = function (t, e) {
- return t ? Er("NS", t[1], e) + " " + Er("EW", t[0], e) : ""
- } || {}, wO.coordinate.toStringXY = Mr || {}, wO.coordinate.wrapX = Fr || {}, wO.css = {}, wO.css.CLASS_COLLAPSED = "ol-collapsed", wO.css.CLASS_CONTROL = "ol-control", wO.css.CLASS_HIDDEN = "ol-hidden", wO.css.CLASS_SELECTABLE = "ol-selectable", wO.css.CLASS_UNSELECTABLE = "ol-unselectable", wO.css.CLASS_UNSUPPORTED = "ol-unsupported", wO.css.getFontParameters = ha || {},wO.dom = {},wO.dom.createCanvasContext2D = uo || {},wO.dom.outerHeight = ho || {},wO.dom.outerWidth = co || {},wO.dom.removeChildren = go || {},wO.dom.removeNode = fo || {},wO.dom.replaceChildren = yo || {},wO.dom.replaceNode = po || {},wO.easing = {},wO.easing.easeIn = no || {},wO.easing.easeOut = io || {},wO.easing.inAndOut = oo || {},wO.easing.linear = ao || {},wO.easing.upAndDown = function (t) {
- return t < .5 ? oo(2 * t) : 1 - oo(2 * (t - .5))
- } || {},wO.events = {},wO.events.Event = c || {},wO.events.Event.preventDefault = function (t) {
- t.preventDefault()
- } || {},wO.events.Event.stopPropagation = u || {},wO.events.Target = M || {},wO.events.condition = {},wO.events.condition.all = Js || {},wO.events.condition.altKeyOnly = Qs || {},wO.events.condition.altShiftKeysOnly = tl || {},wO.events.condition.always = nl || {},wO.events.condition.click = function (t) {
- return t.type == Ga.CLICK
- } || {},wO.events.condition.doubleClick = function (t) {
- return t.type == Ga.DBLCLICK
- } || {},wO.events.condition.focus = el || {},wO.events.condition.focusWithTabindex = rl || {},wO.events.condition.mouseActionButton = il || {},wO.events.condition.mouseOnly = cl || {},wO.events.condition.never = ol || {},wO.events.condition.noModifierKeys = sl || {},wO.events.condition.penOnly = function (t) {
- var e = t.originalEvent;
- return pt(void 0 !== e, 56), "pen" === e.pointerType
- } || {},wO.events.condition.platformModifierKeyOnly = function (t) {
- var e = t.originalEvent;
- return !e.altKey && (Bi ? e.metaKey : e.ctrlKey) && !e.shiftKey
- } || {},wO.events.condition.pointerMove = function (t) {
- return "pointermove" == t.type
- } || {},wO.events.condition.primaryAction = hl || {},wO.events.condition.shiftKeyOnly = ll || {},wO.events.condition.singleClick = al || {},wO.events.condition.targetNotEditable = ul || {},wO.events.condition.touchOnly = function (t) {
- var e = t.originalEvent;
- return pt(void 0 !== e, 56), "touch" === e.pointerType
- } || {},wO.events.listen = Z || {},wO.events.listenOnce = K || {},wO.events.unlistenByKey = H || {},wO.extent = {},wO.extent.applyTransform = Ae || {},wO.extent.approximatelyEquals = ce || {},wO.extent.boundingExtent = Kt || {},wO.extent.buffer = Ht || {},wO.extent.clone = $t || {},wO.extent.closestSquaredDistanceXY = Jt || {},wO.extent.containsCoordinate = Qt || {},wO.extent.containsExtent = te || {},wO.extent.containsXY = ee || {},wO.extent.coordinateRelationship = re || {},wO.extent.createEmpty = ne || {},wO.extent.createOrUpdate = ie || {},wO.extent.createOrUpdateEmpty = oe || {},wO.extent.createOrUpdateFromCoordinate = ae || {},wO.extent.createOrUpdateFromCoordinates = se || {},wO.extent.createOrUpdateFromFlatCoordinates = le || {},wO.extent.createOrUpdateFromRings = function (t, e) {
- return ge(oe(e), t)
- } || {},wO.extent.equals = ue || {},wO.extent.extend = he || {},wO.extent.extendCoordinate = pe || {},wO.extent.extendCoordinates = fe || {},wO.extent.extendFlatCoordinates = de || {},wO.extent.extendRings = ge || {},wO.extent.extendXY = ye || {},wO.extent.forEachCorner = me || {},wO.extent.getArea = ve || {},wO.extent.getBottomLeft = _e || {},wO.extent.getBottomRight = be || {},wO.extent.getCenter = xe || {},wO.extent.getCorner = we || {},wO.extent.getEnlargedArea = function (t, e) {
- var r = Math.min(t[0], e[0]), n = Math.min(t[1], e[1]);
- return (Math.max(t[2], e[2]) - r) * (Math.max(t[3], e[3]) - n)
- } || {},wO.extent.getForViewAndSize = Se || {},wO.extent.getHeight = Ee || {},wO.extent.getIntersection = Te || {},wO.extent.getIntersectionArea = function (t, e) {
- return ve(Te(t, e))
- } || {},wO.extent.getMargin = function (t) {
- return Pe(t) + Ee(t)
- } || {},wO.extent.getSize = function (t) {
- return [t[2] - t[0], t[3] - t[1]]
- } || {},wO.extent.getTopLeft = Ce || {},wO.extent.getTopRight = Oe || {},wO.extent.getWidth = Pe || {},wO.extent.intersects = Re || {},wO.extent.intersectsSegment = Fe || {},wO.extent.isEmpty = Ie || {},wO.extent.returnOrUpdate = Le || {},wO.extent.scaleFromCenter = Me || {},wO.extent.wrapX = ke || {},wO.featureloader = {},wO.featureloader.loadFeaturesXhr = Lu || {},wO.featureloader.setWithCredentials = function (t) {
- Iu = t
- } || {},wO.featureloader.xhr = Mu || {},wO.format = {},wO.format.EsriJSON = C_ || {},wO.format.Feature = Yy || {},wO.format.Feature.transformExtentWithOptions = qy || {},wO.format.Feature.transformGeometryWithOptions = Wy || {},wO.format.GML = nb || {},wO.format.GML2 = $_ || {},wO.format.GML3 = eb || {},wO.format.GML32 = ab || {},wO.format.GMLBase = F_ || {},wO.format.GMLBase.GMLNS = I_,wO.format.GPX = Bb || {},wO.format.GeoJSON = $m || {},wO.format.IGC = sx || {},wO.format.IIIFInfo = Pf || {},wO.format.JSONFeature = qm || {},wO.format.KML = eS || {},wO.format.KML.getDefaultFillStyle = function () {
- return vx
- } || {},wO.format.KML.getDefaultImageStyle = function () {
- return bx
- } || {},wO.format.KML.getDefaultStrokeStyle = function () {
- return wx
- } || {},wO.format.KML.getDefaultStyle = function () {
- return Ex
- } || {},wO.format.KML.getDefaultStyleArray = function () {
- return Cx
- } || {},wO.format.KML.getDefaultTextStyle = function () {
- return Sx
- } || {},wO.format.KML.readFlatCoordinates = Ix || {},wO.format.MVT = am || {},wO.format.OSMXML = uS || {},wO.format.OWS = RS || {},wO.format.Polyline = zS || {},wO.format.Polyline.decodeDeltas = MS || {},wO.format.Polyline.decodeFloats = AS || {},wO.format.Polyline.decodeSignedIntegers = jS || {},wO.format.Polyline.decodeUnsignedIntegers = DS || {},wO.format.Polyline.encodeDeltas = LS || {},wO.format.Polyline.encodeFloats = FS || {},wO.format.Polyline.encodeSignedIntegers = kS || {},wO.format.Polyline.encodeUnsignedInteger = GS || {},wO.format.Polyline.encodeUnsignedIntegers = NS || {},wO.format.TextFeature = Jb || {},wO.format.TopoJSON = KS || {},wO.format.WFS = DT || {},wO.format.WFS.writeFilter = function (t, e) {
- var r = Sc(tT[e], "Filter"), n = {node: r};
- return O(n, {version: e, filter: t}), xT(r, t, [n]), r
- } || {},wO.format.WKT = nC || {},wO.format.WMSCapabilities = RC || {},wO.format.WMSGetFeatureInfo = LC || {},wO.format.WMTSCapabilities = ZC || {},wO.format.XLink = {},wO.format.XLink.readHref = hS || {},wO.format.XML = cS || {},wO.format.XMLFeature = P_ || {},wO.format.filter = {},wO.format.filter.And = tE || {},wO.format.filter.Bbox = rE || {},wO.format.filter.Comparison = pE || {},wO.format.filter.ComparisonBinary = yE || {},wO.format.filter.Contains = aE || {},wO.format.filter.DWithin = lE || {},wO.format.filter.Disjoint = cE || {},wO.format.filter.During = dE || {},wO.format.filter.EqualTo = vE || {},wO.format.filter.Filter = HS || {},wO.format.filter.GreaterThan = bE || {},wO.format.filter.GreaterThanOrEqualTo = wE || {},wO.format.filter.Intersects = EE || {},wO.format.filter.IsBetween = CE || {},wO.format.filter.IsLike = PE || {},wO.format.filter.IsNull = IE || {},wO.format.filter.LessThan = ME || {},wO.format.filter.LessThanOrEqualTo = AE || {},wO.format.filter.LogicalNary = JS || {},wO.format.filter.Not = jE || {},wO.format.filter.NotEqualTo = DE || {},wO.format.filter.Or = zE || {},wO.format.filter.ResourceId = BE || {},wO.format.filter.Spatial = iE || {},wO.format.filter.Within = YE || {},wO.format.filter.and = WE || {},wO.format.filter.bbox = qE || {},wO.format.filter.between = function (t, e, r) {
- return new CE(t, e, r)
- } || {},wO.format.filter.contains = function (t, e, r) {
- return new aE(t, e, r)
- } || {},wO.format.filter.disjoint = function (t, e, r) {
- return new cE(t, e, r)
- } || {},wO.format.filter.during = function (t, e, r) {
- return new dE(t, e, r)
- } || {},wO.format.filter.dwithin = function (t, e, r, n, i) {
- return new lE(t, e, r, n, i)
- } || {},wO.format.filter.equalTo = function (t, e, r) {
- return new vE(t, e, r)
- } || {},wO.format.filter.greaterThan = function (t, e) {
- return new bE(t, e)
- } || {},wO.format.filter.greaterThanOrEqualTo = function (t, e) {
- return new wE(t, e)
- } || {},wO.format.filter.intersects = function (t, e, r) {
- return new EE(t, e, r)
- } || {},wO.format.filter.isNull = function (t) {
- return new IE(t)
- } || {},wO.format.filter.lessThan = function (t, e) {
- return new ME(t, e)
- } || {},wO.format.filter.lessThanOrEqualTo = function (t, e) {
- return new AE(t, e)
- } || {},wO.format.filter.like = function (t, e, r, n, i, o) {
- return new PE(t, e, r, n, i, o)
- } || {},wO.format.filter.not = function (t) {
- return new jE(t)
- } || {},wO.format.filter.notEqualTo = function (t, e, r) {
- return new DE(t, e, r)
- } || {},wO.format.filter.or = function (t) {
- var e = [null].concat(Array.prototype.slice.call(arguments));
- return new (Function.prototype.bind.apply(zE, e))
- } || {},wO.format.filter.resourceId = function (t) {
- return new BE(t)
- } || {},wO.format.filter.within = function (t, e, r) {
- return new YE(t, e, r)
- } || {},wO.format.xsd = {},wO.format.xsd.readBoolean = A_ || {},wO.format.xsd.readBooleanString = k_ || {},wO.format.xsd.readDateTime = j_ || {},wO.format.xsd.readDecimal = N_ || {},wO.format.xsd.readDecimalString = D_ || {},wO.format.xsd.readNonNegativeInteger = G_ || {},wO.format.xsd.readNonNegativeIntegerString = z_ || {},wO.format.xsd.readString = U_ || {},wO.format.xsd.writeBooleanTextNode = B_ || {},wO.format.xsd.writeCDATASection = V_ || {},wO.format.xsd.writeDateTimeTextNode = Y_ || {},wO.format.xsd.writeDecimalTextNode = W_ || {},wO.format.xsd.writeNonNegativeIntegerTextNode = q_ || {},wO.format.xsd.writeStringTextNode = X_ || {},wO.functions = {},wO.functions.FALSE = E || {},wO.functions.TRUE = S || {},wO.functions.VOID = T || {},wO.functions.memoizeOne = C || {},wO.geom = {},wO.geom.Circle = Rv || {},wO.geom.Geometry = dn || {},wO.geom.GeometryCollection = Vm || {},wO.geom.LineString = Py || {},wO.geom.LinearRing = Yn || {},wO.geom.MultiLineString = Zy || {},wO.geom.MultiPoint = Hy || {},wO.geom.MultiPolygon = Jy || {},wO.geom.Point = qn || {},wO.geom.Polygon = fi || {},wO.geom.Polygon.circular = di || {},wO.geom.Polygon.fromCircle = yi || {},wO.geom.Polygon.fromExtent = gi || {},wO.geom.Polygon.makeRegular = mi || {},wO.geom.SimpleGeometry = vn || {},wO.geom.SimpleGeometry.getStrideForLayout = yn || {},wO.geom.SimpleGeometry.transformGeom2D = mn || {},wO.geom.flat = {},wO.geom.flat.area = {},wO.geom.flat.area.linearRing = zn || {},wO.geom.flat.area.linearRings = Un || {},wO.geom.flat.area.linearRingss = Bn || {},wO.geom.flat.center = {},wO.geom.flat.center.linearRingss = Sy || {},wO.geom.flat.closest = {},wO.geom.flat.closest.arrayMaxSquaredDelta = xn || {},wO.geom.flat.closest.assignClosestArrayPoint = En || {},wO.geom.flat.closest.assignClosestMultiArrayPoint = Tn || {},wO.geom.flat.closest.assignClosestPoint = Sn || {},wO.geom.flat.closest.maxSquaredDelta = bn || {},wO.geom.flat.closest.multiArrayMaxSquaredDelta = wn || {},wO.geom.flat.contains = {},wO.geom.flat.contains.linearRingContainsExtent = Xn || {},wO.geom.flat.contains.linearRingContainsXY = Zn || {},wO.geom.flat.contains.linearRingsContainsXY = Kn || {},wO.geom.flat.contains.linearRingssContainsXY = Hn || {},wO.geom.flat.deflate = {},wO.geom.flat.deflate.deflateCoordinate = Cn || {},wO.geom.flat.deflate.deflateCoordinates = On || {},wO.geom.flat.deflate.deflateCoordinatesArray = Pn || {},wO.geom.flat.deflate.deflateMultiCoordinatesArray = Rn || {},wO.geom.flat.flip = {},wO.geom.flat.flip.flipXY = v_ || {},wO.geom.flat.geodesic = {},wO.geom.flat.geodesic.greatCircleArc = function (t, e, r, n, i, o) {
- var a = Gr("EPSG:4326"), s = Math.cos(Ye(e)), l = Math.sin(Ye(e)), u = Math.cos(Ye(n)), c = Math.sin(Ye(n)),
- h = Math.cos(Ye(r - t)), p = Math.sin(Ye(r - t)), f = l * c + s * u * h;
- return Ly((function (e) {
- if (1 <= f) return [r, n];
- var i = e * Math.acos(f), o = Math.cos(i), a = Math.sin(i), d = p * u, g = s * c - l * u * h,
- y = Math.atan2(d, g), m = Math.asin(l * o + s * a * Math.cos(y));
- return [Ve(Ye(t) + Math.atan2(Math.sin(y) * a * s, o - l * Math.sin(m))), Ve(m)]
- }), Kr(a, i), o)
- } || {},wO.geom.flat.geodesic.meridian = My || {},wO.geom.flat.geodesic.parallel = Fy || {},wO.geom.flat.inflate = {},wO.geom.flat.inflate.inflateCoordinates = Nn || {},wO.geom.flat.inflate.inflateCoordinatesArray = Dn || {},wO.geom.flat.inflate.inflateMultiCoordinatesArray = Gn || {},wO.geom.flat.interiorpoint = {},wO.geom.flat.interiorpoint.getInteriorPointOfArray = $n || {},wO.geom.flat.interiorpoint.getInteriorPointsOfMultiArray = Jn || {},wO.geom.flat.interpolate = {},wO.geom.flat.interpolate.interpolatePoint = by || {},wO.geom.flat.interpolate.lineStringCoordinateAtM = xy || {},wO.geom.flat.interpolate.lineStringsCoordinateAtM = wy || {},wO.geom.flat.intersectsextent = {},wO.geom.flat.intersectsextent.intersectsLineString = ti || {},wO.geom.flat.intersectsextent.intersectsLineStringArray = ei || {},wO.geom.flat.intersectsextent.intersectsLinearRing = ri || {},wO.geom.flat.intersectsextent.intersectsLinearRingArray = ni || {},wO.geom.flat.intersectsextent.intersectsLinearRingMultiArray = ii || {},wO.geom.flat.length = {},wO.geom.flat.length.lineStringLength = qg || {},wO.geom.flat.length.linearRingLength = function (t, e, r, n) {
- var i = qg(t, e, r, n), o = t[r - n] - t[e], a = t[r - n + 1] - t[e + 1];
- return i += Math.sqrt(o * o + a * a)
- } || {},wO.geom.flat.orient = {},wO.geom.flat.orient.linearRingIsClockwise = ai || {},wO.geom.flat.orient.linearRingsAreOriented = si || {},wO.geom.flat.orient.linearRingssAreOriented = li || {},wO.geom.flat.orient.orientLinearRings = ui || {},wO.geom.flat.orient.orientLinearRingsArray = ci || {},wO.geom.flat.reverse = {},wO.geom.flat.reverse.coordinates = oi || {},wO.geom.flat.segments = {},wO.geom.flat.segments.forEach = Qn || {},wO.geom.flat.simplify = {},wO.geom.flat.simplify.douglasPeucker = In || {},wO.geom.flat.simplify.douglasPeuckerArray = Ln || {},wO.geom.flat.simplify.douglasPeuckerMultiArray = function (t, e, r, n, i, o, a, s) {
- for (var l = 0, u = r.length; l < u; ++l) {
- var c = r[l], h = [];
- a = Ln(t, e, c, n, i, o, a, h), s.push(h), e = c[c.length - 1]
- }
- return a
- } || {},wO.geom.flat.simplify.quantize = An || {},wO.geom.flat.simplify.quantizeArray = kn || {},wO.geom.flat.simplify.quantizeMultiArray = jn || {},wO.geom.flat.simplify.radialDistance = Mn || {},wO.geom.flat.simplify.simplifyLineString = function (t, e, r, n, i, o, a) {
- var s = void 0 !== a ? a : [];
- return o || (r = Mn(t, e, r, n, i, s, 0), t = s, e = 0, n = 2), s.length = In(t, e, r, n, i, s, 0), s
- } || {},wO.geom.flat.simplify.snap = Fn || {},wO.geom.flat.straightchunk = {},wO.geom.flat.straightchunk.matchingChunk = Gg || {},wO.geom.flat.textpath = {},wO.geom.flat.textpath.drawTextOnPath = Wg || {},wO.geom.flat.topology = {},wO.geom.flat.topology.lineStringIsClosed = function (t, e, r, n) {
- var i = r - n;
- return t[e] === t[i] && t[e + 1] === t[i + 1] && (r - e) / n > 3 && !!zn(t, e, r, n)
- } || {},wO.geom.flat.transform = {},wO.geom.flat.transform.rotate = un || {},wO.geom.flat.transform.scale = cn || {},wO.geom.flat.transform.transform2D = ln || {},wO.geom.flat.transform.translate = hn || {},wO.has = {},wO.has.DEVICE_PIXEL_RATIO = Vi || {},wO.has.FIREFOX = Gi || {},wO.has.IMAGE_DECODE = Wi || {},wO.has.MAC = Bi || {},wO.has.PASSIVE_EVENT_LISTENERS = qi || {},wO.has.SAFARI = zi || {},wO.has.WEBKIT = Ui || {},wO.has.WORKER_OFFSCREEN_CANVAS = Yi || {},wO.interaction = {},wO.interaction.DoubleClickZoom = Zs || {},wO.interaction.DragAndDrop = Ev || {},wO.interaction.DragAndDrop.DragAndDropEvent = Sv || {},wO.interaction.DragBox = El || {},wO.interaction.DragBox.DragBoxEvent = Sl || {},wO.interaction.DragPan = fl || {},wO.interaction.DragRotate = gl || {},wO.interaction.DragRotateAndZoom = Cv || {},wO.interaction.DragZoom = Cl || {},wO.interaction.Draw = Gv || {},wO.interaction.Draw.DrawEvent = Dv || {},wO.interaction.Draw.createBox = function () {
- return function (t, e, r) {
- var n = Kt([t[0], t[t.length - 1]].map((function (t) {
- return rn(t, r)
- }))), i = [[_e(n), be(n), Oe(n), Ce(n), _e(n)]], o = e;
- o ? o.setCoordinates(i) : o = new fi(i);
- var a = tn();
- return a && o.transform(r, a), o
- }
- } || {},wO.interaction.Draw.createRegularPolygon = function (t, e) {
- return function (r, n, i) {
- var o = rn(r[0], i), a = rn(r[r.length - 1], i), s = Math.sqrt(Rr(o, a)), l = n || yi(new Rv(o), t), u = e;
- if (!e && 0 !== e) {
- var c = a[0] - o[0], h = a[1] - o[1];
- u = Math.atan2(h, c)
- }
- mi(l, o, s, u);
- var p = tn();
- return p && l.transform(i, p), l
- }
- } || {},wO.interaction.Extent = qv || {},wO.interaction.Extent.ExtentEvent = Bv || {},wO.interaction.Interaction = qs || {},wO.interaction.Interaction.pan = Ys || {},wO.interaction.Interaction.zoomByDelta = Ws || {},wO.interaction.KeyboardPan = Ml || {},wO.interaction.KeyboardZoom = Al || {},wO.interaction.Modify = r_ || {},wO.interaction.Modify.ModifyEvent = Jv || {},wO.interaction.MouseWheelZoom = Dl || {},wO.interaction.PinchRotate = zl || {},wO.interaction.PinchZoom = Bl || {},wO.interaction.Pointer = $s || {},wO.interaction.Pointer.centroid = Hs || {},wO.interaction.Select = s_ || {},wO.interaction.Select.SelectEvent = o_ || {},wO.interaction.Snap = h_ || {},wO.interaction.Translate = m_ || {},wO.interaction.Translate.TranslateEvent = y_ || {},wO.interaction.defaults = Vl || {},wO.layer = {},wO.layer.Base = Wo || {},wO.layer.BaseImage = ad || {},wO.layer.BaseTile = vd || {},wO.layer.BaseVector = wg || {},wO.layer.Graticule = Ny || {},wO.layer.Group = Aa || {},wO.layer.Heatmap = Vy || {},wO.layer.Image = dd || {},wO.layer.Layer = na || {},wO.layer.Layer.inView = ra || {},wO.layer.MapboxVector = yv || {},wO.layer.MapboxVector.getMapboxPath = uv || {},wO.layer.MapboxVector.normalizeGlyphsUrl = hv || {},wO.layer.MapboxVector.normalizeSourceUrl = fv || {},wO.layer.MapboxVector.normalizeSpriteUrl = cv || {},wO.layer.MapboxVector.normalizeStyleUrl = pv || {},wO.layer.Tile = Sd || {},wO.layer.Vector = Iy || {},wO.layer.VectorImage = vv || {},wO.layer.VectorTile = lm || {},wO.layer.WebGLPoints = bv || {},wO.loadingstrategy = {},wO.loadingstrategy.all = Fu || {},wO.loadingstrategy.bbox = function (t, e) {
- return [t]
- } || {},wO.loadingstrategy.tile = function (t) {
- return function (e, r) {
- var n = t.getZForResolution(r), i = t.getTileRangeForExtentAndZ(e, n), o = [], a = [n, 0, 0];
- for (a[1] = i.minX; a[1] <= i.maxX; ++a[1]) for (a[2] = i.minY; a[2] <= i.maxY; ++a[2]) o.push(t.getTileCoordExtent(a));
- return o
- }
- } || {},wO.math = {},wO.math.clamp = Ne || {},wO.math.cosh = De || {},wO.math.lerp = qe || {},wO.math.log2 = Ge || {},wO.math.modulo = We || {},wO.math.solveLinearSystem = Be || {},wO.math.squaredDistance = Ue || {},wO.math.squaredSegmentDistance = ze || {},wO.math.toDegrees = Ve || {},wO.math.toRadians = Ye || {},wO.net = {},wO.net.jsonp = Au || {},wO.obj = {},wO.obj.assign = O || {},wO.obj.clear = P || {},wO.obj.getValues = R || {},wO.obj.isEmpty = I || {},wO.proj = {},wO.proj.Projection = je || {},wO.proj.Units = St || {},wO.proj.Units.METERS_PER_UNIT = wt || {},wO.proj.addCommon = sn || {},wO.proj.addCoordinateTransforms = Wr || {},wO.proj.addEquivalentProjections = Ur || {},wO.proj.addEquivalentTransforms = Br || {},wO.proj.addProjection = Nr || {},wO.proj.addProjections = Dr || {},wO.proj.clearAllProjections = function () {
- lr(), pr()
- } || {},wO.proj.clearUserProjection = function () {
- Jr = null
- } || {},wO.proj.cloneTransform = kr || {},wO.proj.createProjection = Vr || {},wO.proj.createSafeCoordinateTransform = an || {},wO.proj.createTransformFromCoordinateTransform = Yr || {},wO.proj.epsg3857 = {},wO.proj.epsg3857.EXTENT = Ke || {},wO.proj.epsg3857.HALF_SIZE = Ze || {},wO.proj.epsg3857.MAX_SAFE_Y = $e || {},wO.proj.epsg3857.PROJECTIONS = Qe || {},wO.proj.epsg3857.RADIUS = 6378137,wO.proj.epsg3857.WORLD_EXTENT = He || {},wO.proj.epsg3857.fromEPSG4326 = tr || {},wO.proj.epsg3857.toEPSG4326 = er || {},wO.proj.epsg4326 = {},wO.proj.epsg4326.EXTENT = nr || {},wO.proj.epsg4326.METERS_PER_UNIT = ir || {},wO.proj.epsg4326.PROJECTIONS = ar || {},wO.proj.epsg4326.RADIUS = 6378137,wO.proj.equivalent = Xr || {},wO.proj.fromLonLat = qr || {},wO.proj.fromUserCoordinate = rn || {},wO.proj.fromUserExtent = on || {},wO.proj.get = Gr || {},wO.proj.getPointResolution = zr || {},wO.proj.getTransform = Kr || {},wO.proj.getTransformFromProjections = Zr || {},wO.proj.getUserProjection = tn || {},wO.proj.identityTransform = jr || {},wO.proj.proj4 = {},wO.proj.proj4.register = function (t) {
- var e, r, n = Object.keys(t.defs), i = n.length;
- for (e = 0; e < i; ++e) {
- var o = n[e];
- if (!Gr(o)) {
- var a = t.defs(o), s = a.units;
- s || "longlat" !== a.projName || (s = St.DEGREES), Nr(new je({
- code: o,
- axisOrientation: a.axis,
- metersPerUnit: a.to_meter,
- units: s
- }))
- }
- }
- for (e = 0; e < i; ++e) {
- var l = n[e], u = Gr(l);
- for (r = 0; r < i; ++r) {
- var c = n[r], h = Gr(c);
- if (!dr(l, c)) {
- var p = t.defs(l), f = t.defs(c);
- if (p === f) Ur([u, h]); else {
- var d = t(O({}, p, {axis: void 0}), O({}, f, {axis: void 0}));
- Wr(u, h, an(u, h, d.forward), an(h, u, d.inverse))
- }
- }
- }
- }
- } || {},wO.proj.projections = {},wO.proj.projections.add = cr || {},wO.proj.projections.clear = lr || {},wO.proj.projections.get = ur || {},wO.proj.setUserProjection = Qr || {},wO.proj.toLonLat = function (t, e) {
- var r = Hr(t, void 0 !== e ? e : "EPSG:3857", "EPSG:4326"), n = r[0];
- return (n < -180 || n > 180) && (r[0] = We(n + 180, 360) - 180), r
- } || {},wO.proj.toUserCoordinate = en || {},wO.proj.toUserExtent = nn || {},wO.proj.transform = Hr || {},wO.proj.transformExtent = $r || {},wO.proj.transformWithProjections = function (t, e, r) {
- return Zr(e, r)(t)
- } || {},wO.proj.transforms = {},wO.proj.transforms.add = fr || {},wO.proj.transforms.clear = pr || {},wO.proj.transforms.get = dr || {},wO.proj.transforms.remove = function (t, e) {
- var r = t.getCode(), n = e.getCode(), i = hr[r][n];
- return delete hr[r][n], I(hr[r]) && delete hr[r], i
- } || {},wO.proj.useGeographic = function () {
- Qr("EPSG:4326")
- } || {},wO.render = {},wO.render.Box = ml || {},wO.render.Event = la || {},wO.render.Feature = Cy || {},wO.render.VectorContext = ku || {},wO.render.canvas = {},wO.render.canvas.Builder = Mg || {},wO.render.canvas.BuilderGroup = Yg || {},wO.render.canvas.Executor = ey || {},wO.render.canvas.ExecutorGroup = ay || {},wO.render.canvas.ExecutorGroup.getPixelIndexArray = oy || {},wO.render.canvas.ImageBuilder = Ag || {},wO.render.canvas.Immediate = Nu || {},wO.render.canvas.Instruction = Ig || {},wO.render.canvas.Instruction.beginPathInstruction = Pg || {},wO.render.canvas.Instruction.closePathInstruction = Rg || {},wO.render.canvas.Instruction.fillInstruction = Cg || {},wO.render.canvas.Instruction.strokeInstruction = Og || {},wO.render.canvas.LineStringBuilder = jg || {},wO.render.canvas.PolygonBuilder = Dg || {},wO.render.canvas.TextBuilder = Bg || {},wO.render.canvas.checkedFonts = da || {},wO.render.canvas.createTransformString = Ra || {},wO.render.canvas.defaultFillStyle = "#000",wO.render.canvas.defaultFont = "10px sans-serif",wO.render.canvas.defaultLineCap = "round",wO.render.canvas.defaultLineDash = pa || {},wO.render.canvas.defaultLineDashOffset = {},wO.render.canvas.defaultLineJoin = "round",wO.render.canvas.defaultLineWidth = 1,wO.render.canvas.defaultMiterLimit = 10,wO.render.canvas.defaultPadding = fa || {},wO.render.canvas.defaultStrokeStyle = "#000",wO.render.canvas.defaultTextAlign = "center",wO.render.canvas.defaultTextBaseline = "middle",wO.render.canvas.drawImageOrLabel = Oa || {},wO.render.canvas.hitdetect = {},wO.render.canvas.hitdetect.createHitDetectionImageData = sy || {},wO.render.canvas.hitdetect.hitDetect = ly || {},wO.render.canvas.labelCache = ga || {},wO.render.canvas.measureAndCacheTextWidth = Ea || {},wO.render.canvas.measureTextHeight = xa || {},wO.render.canvas.measureTextWidth = Sa || {},wO.render.canvas.measureTextWidths = Ta || {},wO.render.canvas.registerFont = ba || {},wO.render.canvas.rotateAtOffset = Ca || {},wO.render.canvas.textHeights = _a || {},wO.render.getRenderPixel = function (t, e) {
- var r = e.slice(0);
- return It(t.inversePixelTransform.slice(), r), r
- } || {},wO.render.getVectorContext = Ku || {},wO.render.toContext = function (t, e) {
- var r = t.canvas, n = e || {}, i = n.pixelRatio || Vi, o = n.size;
- o && (r.width = o[0] * i, r.height = o[1] * i, r.style.width = o[0] + "px", r.style.height = o[1] + "px");
- var a = [0, 0, r.width, r.height], s = Mt([1, 0, 0, 1, 0, 0], i, i);
- return new Nu(t, i, a, s, 0)
- } || {},wO.renderer = {},wO.renderer.Composite = La || {},wO.renderer.Layer = ld || {},wO.renderer.Map = aa || {},wO.renderer.canvas = {},wO.renderer.canvas.ImageLayer = pd || {},wO.renderer.canvas.Layer = cd || {},wO.renderer.canvas.TileLayer = xd || {},wO.renderer.canvas.VectorImageLayer = py || {},wO.renderer.canvas.VectorLayer = cy || {},wO.renderer.canvas.VectorTileLayer = _y || {},wO.renderer.vector = {},wO.renderer.vector.defaultOrder = Wu || {},wO.renderer.vector.getSquaredTolerance = qu || {},wO.renderer.vector.getTolerance = Xu || {},wO.renderer.vector.renderFeature = Zu || {},wO.renderer.webgl = {},wO.renderer.webgl.Layer = _g || {},wO.renderer.webgl.Layer.colorDecodeId = vg || {},wO.renderer.webgl.Layer.colorEncodeId = mg || {},wO.renderer.webgl.Layer.getBlankImageData = function () {
- var t = document.createElement("canvas").getContext("2d").createImageData(1, 1);
- return t.data[0] = 255, t.data[1] = 255, t.data[2] = 255, t.data[3] = 255, t
- } || {},wO.renderer.webgl.Layer.writePointFeatureToBuffers = function (t, e, r, n, i, o) {
- var a = 3 + i, s = t[e + 0], l = t[e + 1], u = dg;
- u.length = i;
- for (var c = 0; c < u.length; c++) u[c] = t[e + 2 + c];
- var h = o ? o.vertexPosition : 0, p = o ? o.indexPosition : 0, f = h / a;
- return yg(r, h, s, l, 0), u.length && r.set(u, h + 3), yg(r, h += a, s, l, 1), u.length && r.set(u, h + 3), yg(r, h += a, s, l, 2), u.length && r.set(u, h + 3), yg(r, h += a, s, l, 3), u.length && r.set(u, h + 3), h += a, n[p++] = f, n[p++] = f + 1, n[p++] = f + 3, n[p++] = f + 1, n[p++] = f + 2, n[p++] = f + 3, gg.vertexPosition = h, gg.indexPosition = p, gg
- } || {},wO.renderer.webgl.PointsLayer = Eg || {},wO.reproj = {},wO.reproj.Image = Ff || {},wO.reproj.Tile = Mp || {},wO.reproj.Triangulation = Ip || {},wO.reproj.calculateSourceExtentResolution = ec || {},wO.reproj.calculateSourceResolution = tc || {},wO.reproj.common = {},wO.reproj.common.ENABLE_RASTER_REPROJECTION = !0,wO.reproj.common.ERROR_THRESHOLD = .5,wO.reproj.render = rc || {},wO.resolutionconstraint = {},wO.resolutionconstraint.createMinMaxResolution = ds || {},wO.resolutionconstraint.createSnapToPower = fs || {},wO.resolutionconstraint.createSnapToResolutions = ps || {},wO.rotationconstraint = {},wO.rotationconstraint.createSnapToN = ms || {},wO.rotationconstraint.createSnapToZero = vs || {},wO.rotationconstraint.disable = gs || {},wO.rotationconstraint.none = ys || {},wO.size = {},wO.size.buffer = Os || {},wO.size.hasArea = Ps || {},wO.size.scale = Rs || {},wO.size.toSize = Is || {},wO.source = {},wO.source.BingMaps = Hp || {},wO.source.BingMaps.quadKey = Kp || {},wO.source.CartoDB = tf || {},wO.source.Cluster = ff || {},wO.source.IIIF = Lf || {},wO.source.Image = zf || {},wO.source.Image.ImageSourceEvent = Df || {},wO.source.Image.defaultImageLoadFunction = Gf || {},wO.source.ImageArcGISRest = Bf || {},wO.source.ImageCanvas = Yf || {},wO.source.ImageMapGuide = qf || {},wO.source.ImageStatic = Zf || {},wO.source.ImageWMS = ed || {},wO.source.OSM = id || {},wO.source.OSM.ATTRIBUTION = nd,wO.source.Raster = zd || {},wO.source.Raster.Processor = Id || {},wO.source.Raster.RasterSourceEvent = kd || {},wO.source.Raster.newImageData = Od || {},wO.source.Source = Dp || {},wO.source.Stamen = Wd || {},wO.source.Tile = Bp || {},wO.source.Tile.TileSourceEvent = Up || {},wO.source.TileArcGISRest = Xd || {},wO.source.TileDebug = Hd || {},wO.source.TileImage = Xp || {},wO.source.TileJSON = Jd || {},wO.source.TileWMS = tg || {},wO.source.UTFGrid = ng || {},wO.source.UTFGrid.CustomTile = rg || {},wO.source.UrlTile = Yp || {},wO.source.Vector = hf || {},wO.source.Vector.VectorSourceEvent = cf || {},wO.source.VectorTile = og || {},wO.source.VectorTile.defaultLoadFunction = ag || {},wO.source.WMTS = cg || {},wO.source.WMTS.optionsFromCapabilities = function (t, e) {
- var r = _(t.Contents.Layer, (function (t, r, n) {
- return t.Identifier == e.layer
- }));
- if (null === r) return null;
- var n, i = t.Contents.TileMatrixSet;
- (n = r.TileMatrixSetLink.length > 1 ? x(r.TileMatrixSetLink, "projection" in e ? function (t, r, n) {
- var o = _(i, (function (e) {
- return e.Identifier == t.TileMatrixSet
- })).SupportedCRS, a = Gr(o), s = Gr(e.projection);
- return a && s ? Xr(a, s) : o == e.projection
- } : function (t, r, n) {
- return t.TileMatrixSet == e.matrixSet
- }) : 0) < 0 && (n = 0);
- var o = r.TileMatrixSetLink[n].TileMatrixSet, a = r.TileMatrixSetLink[n].TileMatrixSetLimits, s = r.Format[0];
- "format" in e && (s = e.format), (n = x(r.Style, (function (t, r, n) {
- return "style" in e ? t.Title == e.style : t.isDefault
- }))) < 0 && (n = 0);
- var l = r.Style[n].Identifier, u = {};
- "Dimension" in r && r.Dimension.forEach((function (t, e, r) {
- var n = t.Identifier, i = t.Default;
- void 0 === i && (i = t.Value[0]), u[n] = i
- }));
- var c, h = _(t.Contents.TileMatrixSet, (function (t, e, r) {
- return t.Identifier == o
- })), p = h.SupportedCRS;
- if (p && (c = Gr(p)), "projection" in e) {
- var f = Gr(e.projection);
- f && (c && !Xr(f, c) || (c = f))
- }
- var d = "ne" == c.getAxisOrientation().substr(0, 2), y = h.TileMatrix[0],
- m = {MinTileCol: 0, MinTileRow: 0, MaxTileCol: y.MatrixWidth - 1, MaxTileRow: y.MatrixHeight - 1};
- if (a) {
- m = a[a.length - 1];
- var v = _(h.TileMatrix, (function (t) {
- return t.Identifier === m.TileMatrix || h.Identifier + ":" + t.Identifier === m.TileMatrix
- }));
- v && (y = v)
- }
- var b = 28e-5 * y.ScaleDenominator / c.getMetersPerUnit(),
- w = d ? [y.TopLeftCorner[1], y.TopLeftCorner[0]] : y.TopLeftCorner, S = y.TileWidth * b, E = y.TileHeight * b,
- T = [w[0] + S * m.MinTileCol, w[1] - E * (1 + m.MaxTileRow), w[0] + S * (1 + m.MaxTileCol), w[1] - E * m.MinTileRow];
- null === c.getExtent() && c.setExtent(T);
- var C = Kh(h, T, a), O = [], P = e.requestEncoding;
- if (P = void 0 !== P ? P : "", "OperationsMetadata" in t && "GetTile" in t.OperationsMetadata) for (var R = t.OperationsMetadata.GetTile.DCP.HTTP.Get, I = 0, L = R.length; I < L; ++I) if (R[I].Constraint) {
- var M = _(R[I].Constraint, (function (t) {
- return "GetEncoding" == t.name
- })).AllowedValues.Value;
- if ("" === P && (P = M[0]), P !== sg) break;
- g(M, sg) && O.push(R[I].href)
- } else R[I].href && (P = sg, O.push(R[I].href));
- return 0 === O.length && (P = lg, r.ResourceURL.forEach((function (t) {
- "tile" === t.resourceType && (s = t.format, O.push(t.template))
- }))), {
- urls: O,
- layer: e.layer,
- matrixSet: o,
- format: s,
- projection: c,
- requestEncoding: P,
- tileGrid: C,
- style: l,
- dimensions: u,
- wrapX: !1,
- crossOrigin: e.crossOrigin
- }
- } || {},wO.source.XYZ = Jp || {},wO.source.Zoomify = vf || {},wO.source.Zoomify.CustomTile = mf || {},wO.source.common = {},wO.source.common.DEFAULT_WMS_VERSION = "1.3.0",wO.source.common.IMAGE_SMOOTHING_DISABLED = $u || {},wO.sphere = {},wO.sphere.DEFAULT_RADIUS = 6371008.8,wO.sphere.getArea = function t(e, r) {
- var n = r || {}, i = n.radius || 6371008.8, o = n.projection || "EPSG:3857", a = e.getType();
- a !== bt.GEOMETRY_COLLECTION && (e = e.clone().transform(o, "EPSG:4326"));
- var s, l, u, c, h, p, f = 0;
- switch (a) {
- case bt.POINT:
- case bt.MULTI_POINT:
- case bt.LINE_STRING:
- case bt.MULTI_LINE_STRING:
- case bt.LINEAR_RING:
- break;
- case bt.POLYGON:
- for (s = e.getCoordinates(), f = Math.abs(mr(s[0], i)), u = 1, c = s.length; u < c; ++u) f -= Math.abs(mr(s[u], i));
- break;
- case bt.MULTI_POLYGON:
- for (u = 0, c = (s = e.getCoordinates()).length; u < c; ++u) for (l = s[u], f += Math.abs(mr(l[0], i)), h = 1, p = l.length; h < p; ++h) f -= Math.abs(mr(l[h], i));
- break;
- case bt.GEOMETRY_COLLECTION:
- var d = e.getGeometries();
- for (u = 0, c = d.length; u < c; ++u) f += t(d[u], r);
- break;
- default:
- throw new Error("Unsupported geometry type: " + a)
- }
- return f
- } || {},wO.sphere.getDistance = gr || {},wO.sphere.getLength = function t(e, r) {
- var n = r || {}, i = n.radius || 6371008.8, o = n.projection || "EPSG:3857", a = e.getType();
- a !== bt.GEOMETRY_COLLECTION && (e = e.clone().transform(o, "EPSG:4326"));
- var s, l, u, c, h, p, f = 0;
- switch (a) {
- case bt.POINT:
- case bt.MULTI_POINT:
- break;
- case bt.LINE_STRING:
- case bt.LINEAR_RING:
- f = yr(s = e.getCoordinates(), i);
- break;
- case bt.MULTI_LINE_STRING:
- case bt.POLYGON:
- for (u = 0, c = (s = e.getCoordinates()).length; u < c; ++u) f += yr(s[u], i);
- break;
- case bt.MULTI_POLYGON:
- for (u = 0, c = (s = e.getCoordinates()).length; u < c; ++u) for (h = 0, p = (l = s[u]).length; h < p; ++h) f += yr(l[h], i);
- break;
- case bt.GEOMETRY_COLLECTION:
- var d = e.getGeometries();
- for (u = 0, c = d.length; u < c; ++u) f += t(d[u], r);
- break;
- default:
- throw new Error("Unsupported geometry type: " + a)
- }
- return f
- } || {},wO.sphere.offset = vr || {},wO.string = {},wO.string.compareVersions = br || {},wO.string.padNumber = _r || {},wO.structs = {},wO.structs.LRUCache = lu || {},wO.structs.LinkedList = Cp || {},wO.structs.PriorityQueue = Qa || {},wO.structs.PriorityQueue.DROP = 1 / 0,wO.structs.RBush = Rp || {},wO.style = {},wO.style.Circle = tp || {},wO.style.Fill = ep || {},wO.style.Icon = dp || {},wO.style.IconImage = pp || {},wO.style.IconImage.get = hp || {},wO.style.IconImageCache = Fo || {},wO.style.IconImageCache.shared = Ao || {},wO.style.Image = Hh || {},wO.style.LiteralStyle = {},wO.style.RegularShape = Jh || {},wO.style.Stroke = gp || {},wO.style.Style = wp || {},wO.style.Style.createDefaultStyle = _p || {},wO.style.Style.createEditingStyle = bp || {},wO.style.Style.toFunction = mp || {},wO.style.Text = Tp || {},wO.style.expressions = {},wO.style.expressions.Operators = Eh || {},wO.style.expressions.arrayToGlsl = Ph || {},wO.style.expressions.colorToGlsl = Rh || {},wO.style.expressions.expressionToGlsl = Mh || {},wO.style.expressions.getStringNumberEquivalent = Ih || {},wO.style.expressions.getValueType = Th || {},wO.style.expressions.isTypeUnique = Ch || {},wO.style.expressions.numberToGlsl = Oh || {},wO.style.expressions.stringToGlsl = Lh || {},wO.tilecoord = {},wO.tilecoord.createOrUpdate = uu || {},wO.tilecoord.fromKey = pu || {},wO.tilecoord.getKey = hu || {},wO.tilecoord.getKeyZXY = cu || {},wO.tilecoord.hash = fu || {},wO.tilecoord.withinExtentAndZ = du || {},wO.tilegrid = {},wO.tilegrid.TileGrid = ic || {},wO.tilegrid.WMTS = Zh || {},wO.tilegrid.WMTS.createFromCapabilitiesMatrixSet = Kh || {},wO.tilegrid.common = {},wO.tilegrid.common.DEFAULT_MAX_ZOOM = 42,wO.tilegrid.common.DEFAULT_TILE_SIZE = 256,wO.tilegrid.createForExtent = sc || {},wO.tilegrid.createForProjection = cc || {},wO.tilegrid.createXYZ = lc || {},wO.tilegrid.extentFromProjection = hc || {},wO.tilegrid.getForProjection = oc || {},wO.tilegrid.wrapX = ac || {},wO.tileurlfunction = {},wO.tileurlfunction.createFromTemplate = pc || {},wO.tileurlfunction.createFromTemplates = fc || {},wO.tileurlfunction.createFromTileUrlFunctions = dc || {},wO.tileurlfunction.expandUrl = yc || {},wO.tileurlfunction.nullTileUrlFunction = gc || {},wO.transform = {},wO.transform.apply = It || {},wO.transform.compose = kt || {},wO.transform.composeCssTransform = function (t, e, r, n, i, o, a) {
- return Dt(kt([1, 0, 0, 1, 0, 0], t, e, r, n, i, o, a))
- } || {},wO.transform.create = Tt || {},wO.transform.determinant = Nt || {},wO.transform.invert = function (t) {
- return jt(t, t)
- } || {},wO.transform.makeInverse = jt || {},wO.transform.makeScale = Ft || {},wO.transform.multiply = Ot || {},wO.transform.reset = Ct || {},wO.transform.rotate = Lt || {},wO.transform.scale = Mt || {},wO.transform.set = Pt || {},wO.transform.setFromArray = Rt || {},wO.transform.toString = Dt || {},wO.transform.translate = At || {},wO.uri = {},wO.uri.appendParams = mc || {},wO.util = {},wO.util.VERSION = "6.5.0",wO.util.abstract = n || {},wO.util.getUid = o || {},wO.vec = {},wO.vec.mat4 = {},wO.vec.mat4.create = nh || {},wO.vec.mat4.fromTransform = ih || {},wO.webgl = {},wO.webgl.ARRAY_BUFFER = 34962,wO.webgl.Buffer = Qc || {},wO.webgl.Buffer.getArrayClassForType = Jc || {},wO.webgl.DYNAMIC_DRAW = 35048,wO.webgl.ELEMENT_ARRAY_BUFFER = 34963,wO.webgl.FLOAT = 5126,wO.webgl.Helper = gh || {},wO.webgl.Helper.computeAttributesStride = fh || {};
- wO.webgl.PostProcessingPass = rh || {}, wO.webgl.RenderTarget = mh || {}, wO.webgl.STATIC_DRAW = 35044, wO.webgl.STREAM_DRAW = 35040, wO.webgl.ShaderBuilder = {}, wO.webgl.ShaderBuilder.ShaderBuilder = Yh || {}, wO.webgl.ShaderBuilder.parseLiteralStyle = Wh || {}, wO.webgl.UNSIGNED_BYTE = 5121, wO.webgl.UNSIGNED_INT = 5125, wO.webgl.UNSIGNED_SHORT = 5123, wO.webgl.getContext = bc || {}, wO.webgl.getSupportedExtensions = xc || {}, wO.worker = {}, wO.worker.version = {}, wO.worker.webgl = {}, wO.xml = {}, wO.xml.OBJECT_PROPERTY_NODE_FACTORY = Nc || {}, wO.xml.XML_SCHEMA_INSTANCE_URI = wc, wO.xml.createElementNS = Sc || {}, wO.xml.getAllTextContent = Ec || {}, wO.xml.getAllTextContent_ = Tc || {}, wO.xml.getAttributeNS = Oc || {}, wO.xml.getDocument = Xc || {}, wO.xml.getXMLSerializer = Wc || {}, wO.xml.isDocument = Cc || {}, wO.xml.makeArrayExtender = Rc || {}, wO.xml.makeArrayPusher = Ic || {}, wO.xml.makeArraySerializer = kc || {}, wO.xml.makeChildAppender = Ac || {}, wO.xml.makeObjectPropertyPusher = Mc || {}, wO.xml.makeObjectPropertySetter = Fc || {}, wO.xml.makeReplacer = Lc || {}, wO.xml.makeSequence = Dc || {}, wO.xml.makeSimpleNodeFactory = jc || {}, wO.xml.makeStructureNS = Gc || {}, wO.xml.parse = Pc || {}, wO.xml.parseNode = zc || {}, wO.xml.pushParseAndPop = Uc || {}, wO.xml.pushSerializeAndPop = Vc || {}, wO.xml.registerDocument = function (t) {
- qc = t
- } || {}, wO.xml.registerXMLSerializer = function (t) {
- Yc = t
- } || {}, wO.xml.serialize = Bc || {};
- e.default = wO
- }]).default
- }));
- //# sourceMappingURL=ol.js.map
|